zuplo 6.67.32 → 6.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/docs/_index.md +44 -0
- package/docs/ai-gateway/apps.mdx +28 -0
- package/docs/ai-gateway/custom-providers.mdx +54 -0
- package/docs/ai-gateway/getting-started.mdx +224 -0
- package/docs/ai-gateway/guardrails.mdx +65 -0
- package/docs/ai-gateway/integrations/ai-sdk.mdx +109 -0
- package/docs/ai-gateway/integrations/claude-code.mdx +49 -0
- package/docs/ai-gateway/integrations/codex.mdx +78 -0
- package/docs/ai-gateway/integrations/goose.mdx +104 -0
- package/docs/ai-gateway/integrations/langchain.mdx +66 -0
- package/docs/ai-gateway/integrations/openai.mdx +99 -0
- package/docs/ai-gateway/introduction.mdx +85 -0
- package/docs/ai-gateway/managing-apps.mdx +46 -0
- package/docs/ai-gateway/managing-providers.mdx +66 -0
- package/docs/ai-gateway/managing-teams.mdx +63 -0
- package/docs/ai-gateway/policies/akamai-ai-firewall.mdx +125 -0
- package/docs/ai-gateway/policies/comet-opik-tracing.mdx +139 -0
- package/docs/ai-gateway/policies/galileo-tracing.mdx +147 -0
- package/docs/ai-gateway/providers.mdx +32 -0
- package/docs/ai-gateway/teams.mdx +38 -0
- package/docs/ai-gateway/universal-api.mdx +43 -0
- package/docs/ai-gateway/usage-limits.mdx +89 -0
- package/docs/api-management/introduction.md +127 -0
- package/docs/articles/accounts/audit-logs.mdx +227 -0
- package/docs/articles/accounts/billing.mdx +25 -0
- package/docs/articles/accounts/default-api-key.mdx +30 -0
- package/docs/articles/accounts/delete-account.mdx +36 -0
- package/docs/articles/accounts/enterprise-sso.mdx +116 -0
- package/docs/articles/accounts/managing-account-members.mdx +45 -0
- package/docs/articles/accounts/managing-project-members.mdx +37 -0
- package/docs/articles/accounts/members-and-roles.mdx +21 -0
- package/docs/articles/accounts/roles-and-permissions.mdx +115 -0
- package/docs/articles/accounts/zuplo-api-keys.mdx +94 -0
- package/docs/articles/add-api-to-backstage.mdx +216 -0
- package/docs/articles/advanced-path-matching.mdx +139 -0
- package/docs/articles/api-key-administration.mdx +47 -0
- package/docs/articles/api-key-api.mdx +220 -0
- package/docs/articles/api-key-authentication.mdx +195 -0
- package/docs/articles/api-key-buckets.mdx +61 -0
- package/docs/articles/api-key-end-users.mdx +52 -0
- package/docs/articles/api-key-leak-detection.mdx +75 -0
- package/docs/articles/api-key-management.mdx +100 -0
- package/docs/articles/api-key-react-component.mdx +90 -0
- package/docs/articles/api-key-service-limits.mdx +14 -0
- package/docs/articles/archiving-requests-to-storage.mdx +119 -0
- package/docs/articles/branch-based-deployments.mdx +184 -0
- package/docs/articles/bypass-policy-for-testing.mdx +117 -0
- package/docs/articles/check-ip-address.mdx +17 -0
- package/docs/articles/ci-cd-azure/basic-deployment.mdx +49 -0
- package/docs/articles/ci-cd-azure/deploy-and-test.mdx +47 -0
- package/docs/articles/ci-cd-azure/local-testing.mdx +59 -0
- package/docs/articles/ci-cd-azure/multi-stage-deployment.mdx +88 -0
- package/docs/articles/ci-cd-azure/pr-preview-environments.mdx +50 -0
- package/docs/articles/ci-cd-azure/tag-based-releases.mdx +37 -0
- package/docs/articles/ci-cd-bitbucket/basic-deployment.mdx +27 -0
- package/docs/articles/ci-cd-bitbucket/deploy-and-test.mdx +41 -0
- package/docs/articles/ci-cd-bitbucket/local-testing.mdx +34 -0
- package/docs/articles/ci-cd-bitbucket/multi-stage-deployment.mdx +52 -0
- package/docs/articles/ci-cd-bitbucket/pr-preview-environments.mdx +46 -0
- package/docs/articles/ci-cd-bitbucket/tag-based-releases.mdx +27 -0
- package/docs/articles/ci-cd-circleci/basic-deployment.mdx +34 -0
- package/docs/articles/ci-cd-circleci/deploy-and-test.mdx +44 -0
- package/docs/articles/ci-cd-circleci/local-testing.mdx +50 -0
- package/docs/articles/ci-cd-circleci/multi-stage-deployment.mdx +82 -0
- package/docs/articles/ci-cd-circleci/pr-preview-environments.mdx +47 -0
- package/docs/articles/ci-cd-circleci/tag-based-releases.mdx +38 -0
- package/docs/articles/ci-cd-github/basic-deployment.mdx +48 -0
- package/docs/articles/ci-cd-github/cleanup-on-branch-delete.mdx +123 -0
- package/docs/articles/ci-cd-github/deploy-and-test.mdx +82 -0
- package/docs/articles/ci-cd-github/local-testing.mdx +102 -0
- package/docs/articles/ci-cd-github/multi-stage-deployment.mdx +136 -0
- package/docs/articles/ci-cd-github/pr-preview-environments.mdx +106 -0
- package/docs/articles/ci-cd-github/tag-based-releases.mdx +99 -0
- package/docs/articles/ci-cd-gitlab/basic-deployment.mdx +28 -0
- package/docs/articles/ci-cd-gitlab/deploy-and-test.mdx +44 -0
- package/docs/articles/ci-cd-gitlab/local-testing.mdx +39 -0
- package/docs/articles/ci-cd-gitlab/mr-preview-environments.mdx +52 -0
- package/docs/articles/ci-cd-gitlab/multi-stage-deployment.mdx +64 -0
- package/docs/articles/ci-cd-gitlab/tag-based-releases.mdx +28 -0
- package/docs/articles/composite-policy-reference.mdx +284 -0
- package/docs/articles/configuring-auth0-for-mcp-auth.mdx +186 -0
- package/docs/articles/configuring-okta-for-mcp-auth.mdx +208 -0
- package/docs/articles/convert-urls-to-openapi.mdx +62 -0
- package/docs/articles/cors.mdx +447 -0
- package/docs/articles/custom-audit-log-policy.mdx +95 -0
- package/docs/articles/custom-ci-cd-azure.mdx +81 -0
- package/docs/articles/custom-ci-cd-bitbucket.mdx +80 -0
- package/docs/articles/custom-ci-cd-circleci.mdx +78 -0
- package/docs/articles/custom-ci-cd-github.mdx +99 -0
- package/docs/articles/custom-ci-cd-gitlab.mdx +79 -0
- package/docs/articles/custom-ci-cd.mdx +82 -0
- package/docs/articles/custom-code-patterns.md +418 -0
- package/docs/articles/custom-domains.mdx +258 -0
- package/docs/articles/custom-logging-example.mdx +139 -0
- package/docs/articles/ddos-protection.mdx +138 -0
- package/docs/articles/development-options.mdx +49 -0
- package/docs/articles/environment-variables.mdx +134 -0
- package/docs/articles/environments.mdx +143 -0
- package/docs/articles/fastly-zuplo-host-setup.mdx +41 -0
- package/docs/articles/github-deployment-testing.mdx +101 -0
- package/docs/articles/gke-with-upstream-auth-policy.mdx +192 -0
- package/docs/articles/graphql-security.mdx +180 -0
- package/docs/articles/handling-form-data.mdx +61 -0
- package/docs/articles/health-checks.mdx +109 -0
- package/docs/articles/hosting-options.mdx +70 -0
- package/docs/articles/lazy-load-configuration-into-cache.mdx +92 -0
- package/docs/articles/limits.mdx +98 -0
- package/docs/articles/local-development-debugging.mdx +44 -0
- package/docs/articles/local-development-env-variables.mdx +23 -0
- package/docs/articles/local-development-installing-packages.mdx +23 -0
- package/docs/articles/local-development-routes-designer.mdx +27 -0
- package/docs/articles/local-development-services.mdx +40 -0
- package/docs/articles/local-development-troubleshooting.mdx +56 -0
- package/docs/articles/local-development.mdx +81 -0
- package/docs/articles/log-plugin-aws-cloudwatch.mdx +83 -0
- package/docs/articles/log-plugin-datadog.mdx +84 -0
- package/docs/articles/log-plugin-dynatrace.mdx +75 -0
- package/docs/articles/log-plugin-gcp.mdx +75 -0
- package/docs/articles/log-plugin-loki.mdx +136 -0
- package/docs/articles/log-plugin-new-relic.mdx +84 -0
- package/docs/articles/log-plugin-splunk.mdx +104 -0
- package/docs/articles/log-plugin-sumo.mdx +73 -0
- package/docs/articles/log-plugin-vmware-log-insight.mdx +154 -0
- package/docs/articles/log-request-response-data.mdx +398 -0
- package/docs/articles/logging.mdx +115 -0
- package/docs/articles/manual-mcp-oauth-testing.mdx +193 -0
- package/docs/articles/mcp-quickstart.mdx +135 -0
- package/docs/articles/metrics-plugins.mdx +371 -0
- package/docs/articles/migrate-from-apigee.md +408 -0
- package/docs/articles/migrate-from-aws-api-gateway.md +248 -0
- package/docs/articles/migrate-from-azure-apim.md +292 -0
- package/docs/articles/migrate-from-kong.md +300 -0
- package/docs/articles/migration-overview.md +81 -0
- package/docs/articles/monetization/api-access.mdx +69 -0
- package/docs/articles/monetization/billing-models.md +520 -0
- package/docs/articles/monetization/developer-portal.md +167 -0
- package/docs/articles/monetization/features.mdx +98 -0
- package/docs/articles/monetization/index.mdx +113 -0
- package/docs/articles/monetization/meters.mdx +135 -0
- package/docs/articles/monetization/monetization-policy.md +314 -0
- package/docs/articles/monetization/plan-examples.mdx +366 -0
- package/docs/articles/monetization/plans.mdx +266 -0
- package/docs/articles/monetization/pricing-models.mdx +225 -0
- package/docs/articles/monetization/private-plans.md +154 -0
- package/docs/articles/monetization/quickstart.md +355 -0
- package/docs/articles/monetization/rate-cards.mdx +171 -0
- package/docs/articles/monetization/stripe-integration.md +195 -0
- package/docs/articles/monetization/subscription-lifecycle.md +298 -0
- package/docs/articles/monetization/tax-collection.md +166 -0
- package/docs/articles/monetization/troubleshooting.md +272 -0
- package/docs/articles/monetization-custom.mdx +71 -0
- package/docs/articles/monetization-integrations.mdx +104 -0
- package/docs/articles/monitoring-your-gateway.mdx +53 -0
- package/docs/articles/monorepo-deployment.mdx +350 -0
- package/docs/articles/multiple-auth-policies.mdx +81 -0
- package/docs/articles/non-standard-ports.mdx +30 -0
- package/docs/articles/oauth-authentication.mdx +54 -0
- package/docs/articles/openapi-server-urls.mdx +60 -0
- package/docs/articles/openapi.mdx +130 -0
- package/docs/articles/opentelemetry.mdx +250 -0
- package/docs/articles/per-user-rate-limits-using-db.mdx +112 -0
- package/docs/articles/performance-testing.mdx +304 -0
- package/docs/articles/plugin-akamai-api-security.mdx +76 -0
- package/docs/articles/plugin-azure-blob.mdx +73 -0
- package/docs/articles/plugin-azure-event-hubs.mdx +64 -0
- package/docs/articles/plugin-hydrolix-traffic-peak.mdx +147 -0
- package/docs/articles/policies.mdx +33 -0
- package/docs/articles/rename-or-move-project.mdx +39 -0
- package/docs/articles/rick-and-morty-api-developer-portal-example.mdx +23 -0
- package/docs/articles/routing.mdx +193 -0
- package/docs/articles/s3-signed-url-uploads.mdx +521 -0
- package/docs/articles/secure-tunnel.mdx +84 -0
- package/docs/articles/securing-backend-mtls.mdx +268 -0
- package/docs/articles/securing-your-backend.mdx +148 -0
- package/docs/articles/security.mdx +105 -0
- package/docs/articles/sharing-code-across-projects.mdx +412 -0
- package/docs/articles/source-control-setup-azure.mdx +13 -0
- package/docs/articles/source-control-setup-bitbucket.mdx +43 -0
- package/docs/articles/source-control-setup-github.mdx +172 -0
- package/docs/articles/source-control-setup-gitlab.mdx +12 -0
- package/docs/articles/source-control.mdx +80 -0
- package/docs/articles/step-1-setup-basic-gateway-local.mdx +136 -0
- package/docs/articles/step-1-setup-basic-gateway.mdx +118 -0
- package/docs/articles/step-2-add-rate-limiting-local.mdx +126 -0
- package/docs/articles/step-2-add-rate-limiting.mdx +82 -0
- package/docs/articles/step-3-add-api-key-auth-local.mdx +199 -0
- package/docs/articles/step-3-add-api-key-auth.mdx +166 -0
- package/docs/articles/step-4-deploying-to-the-edge.mdx +220 -0
- package/docs/articles/step-5-dynamic-rate-limiting.mdx +167 -0
- package/docs/articles/support.mdx +144 -0
- package/docs/articles/terraform.mdx +114 -0
- package/docs/articles/testing-graphql.mdx +34 -0
- package/docs/articles/testing.mdx +522 -0
- package/docs/articles/troubleshooting-slow-responses.mdx +301 -0
- package/docs/articles/troubleshooting.md +302 -0
- package/docs/articles/tsconfig.mdx +105 -0
- package/docs/articles/tunnel-setup.mdx +195 -0
- package/docs/articles/tunnel-troubleshooting.mdx +50 -0
- package/docs/articles/update-zup-in-github-action.mdx +110 -0
- package/docs/articles/use-openapi-extension-data.mdx +79 -0
- package/docs/articles/users/multifactor-authentication.mdx +64 -0
- package/docs/articles/users/profile.mdx +13 -0
- package/docs/articles/versioning-on-zuplo.mdx +89 -0
- package/docs/articles/waf-ddos-akamai.md +133 -0
- package/docs/articles/waf-ddos-aws-waf-shield.mdx +85 -0
- package/docs/articles/waf-ddos-fastly.mdx +251 -0
- package/docs/articles/waf-ddos.mdx +140 -0
- package/docs/articles/zuplo-waf.mdx +156 -0
- package/docs/ask.mdx +3 -0
- package/docs/cli/authentication.mdx +56 -0
- package/docs/cli/connectivity.mdx +38 -0
- package/docs/cli/create-zuplo-api.mdx +80 -0
- package/docs/cli/delete.mdx +79 -0
- package/docs/cli/deploy.mdx +156 -0
- package/docs/cli/deploy.partial.mdx +46 -0
- package/docs/cli/dev.mdx +115 -0
- package/docs/cli/docs.mdx +66 -0
- package/docs/cli/editor.mdx +50 -0
- package/docs/cli/global-options.mdx +19 -0
- package/docs/cli/init.mdx +74 -0
- package/docs/cli/link.mdx +74 -0
- package/docs/cli/list.mdx +55 -0
- package/docs/cli/mtls-certificate-create.mdx +94 -0
- package/docs/cli/mtls-certificate-delete.mdx +55 -0
- package/docs/cli/mtls-certificate-describe.mdx +55 -0
- package/docs/cli/mtls-certificate-disable.mdx +55 -0
- package/docs/cli/mtls-certificate-list.mdx +47 -0
- package/docs/cli/mtls-certificate-update.mdx +72 -0
- package/docs/cli/openapi-convert.mdx +111 -0
- package/docs/cli/openapi-merge.mdx +138 -0
- package/docs/cli/openapi-merge.partial.mdx +29 -0
- package/docs/cli/openapi-overlay.mdx +123 -0
- package/docs/cli/overview.mdx +78 -0
- package/docs/cli/project-create.mdx +43 -0
- package/docs/cli/source-migrate.mdx +18 -0
- package/docs/cli/source-upgrade.mdx +41 -0
- package/docs/cli/test.mdx +70 -0
- package/docs/cli/test.partial.mdx +7 -0
- package/docs/cli/tunnel-create.mdx +53 -0
- package/docs/cli/tunnel-create.partial.mdx +9 -0
- package/docs/cli/tunnel-delete.mdx +35 -0
- package/docs/cli/tunnel-delete.partial.mdx +9 -0
- package/docs/cli/tunnel-describe.mdx +45 -0
- package/docs/cli/tunnel-describe.partial.mdx +5 -0
- package/docs/cli/tunnel-list.mdx +35 -0
- package/docs/cli/tunnel-list.partial.mdx +9 -0
- package/docs/cli/tunnel-rate-token.partial.mdx +9 -0
- package/docs/cli/tunnel-rotate-token.mdx +39 -0
- package/docs/cli/tunnel-services-describe.mdx +45 -0
- package/docs/cli/tunnel-services-describe.partial.mdx +9 -0
- package/docs/cli/tunnel-services-update.mdx +48 -0
- package/docs/cli/variable-create.mdx +91 -0
- package/docs/cli/variable-create.partial.mdx +5 -0
- package/docs/cli/variable-update.mdx +75 -0
- package/docs/cli/variable-update.partial.mdx +5 -0
- package/docs/concepts/api-keys.md +146 -0
- package/docs/concepts/authentication.mdx +109 -0
- package/docs/concepts/how-zuplo-works.mdx +120 -0
- package/docs/concepts/project-structure.mdx +174 -0
- package/docs/concepts/rate-limiting.md +246 -0
- package/docs/concepts/request-lifecycle.mdx +56 -0
- package/docs/concepts/source-control-and-deployment.mdx +229 -0
- package/docs/conferences/conference-prize-terms.mdx +80 -0
- package/docs/dedicated/akamai/ai-powered-applications.mdx +223 -0
- package/docs/dedicated/akamai/architecture.mdx +280 -0
- package/docs/dedicated/akamai/caching.mdx +212 -0
- package/docs/dedicated/akamai/cdn.mdx +156 -0
- package/docs/dedicated/architecture.mdx +208 -0
- package/docs/dedicated/custom-domains.mdx +31 -0
- package/docs/dedicated/federated-gateways.mdx +80 -0
- package/docs/dedicated/networking.mdx +69 -0
- package/docs/dedicated/overview.mdx +80 -0
- package/docs/dedicated/source-control.mdx +63 -0
- package/docs/dev-portal/dev-portal-create-consumer-on-auth.mdx +134 -0
- package/docs/dev-portal/introduction.mdx +65 -0
- package/docs/dev-portal/local-development.mdx +72 -0
- package/docs/dev-portal/migration.mdx +526 -0
- package/docs/dev-portal/node-modules.mdx +45 -0
- package/docs/dev-portal/updating.mdx +28 -0
- package/docs/dev-portal/zudoku/components/alert.mdx +130 -0
- package/docs/dev-portal/zudoku/components/badge.mdx +70 -0
- package/docs/dev-portal/zudoku/components/button.mdx +132 -0
- package/docs/dev-portal/zudoku/components/callout.mdx +112 -0
- package/docs/dev-portal/zudoku/components/card.mdx +104 -0
- package/docs/dev-portal/zudoku/components/checkbox.mdx +72 -0
- package/docs/dev-portal/zudoku/components/client-only.mdx +79 -0
- package/docs/dev-portal/zudoku/components/code-tabs.mdx +179 -0
- package/docs/dev-portal/zudoku/components/dialog.mdx +167 -0
- package/docs/dev-portal/zudoku/components/head.mdx +199 -0
- package/docs/dev-portal/zudoku/components/icons.mdx +27 -0
- package/docs/dev-portal/zudoku/components/input.mdx +96 -0
- package/docs/dev-portal/zudoku/components/label.mdx +86 -0
- package/docs/dev-portal/zudoku/components/link.mdx +242 -0
- package/docs/dev-portal/zudoku/components/markdown.mdx +151 -0
- package/docs/dev-portal/zudoku/components/mermaid.mdx +81 -0
- package/docs/dev-portal/zudoku/components/playground.mdx +87 -0
- package/docs/dev-portal/zudoku/components/secret.mdx +78 -0
- package/docs/dev-portal/zudoku/components/select.mdx +176 -0
- package/docs/dev-portal/zudoku/components/shadcn.mdx +73 -0
- package/docs/dev-portal/zudoku/components/slider.mdx +108 -0
- package/docs/dev-portal/zudoku/components/slot.mdx +119 -0
- package/docs/dev-portal/zudoku/components/stepper.mdx +138 -0
- package/docs/dev-portal/zudoku/components/switch.mdx +96 -0
- package/docs/dev-portal/zudoku/components/syntax-highlight.mdx +602 -0
- package/docs/dev-portal/zudoku/components/textarea.mdx +78 -0
- package/docs/dev-portal/zudoku/components/tooltip.mdx +195 -0
- package/docs/dev-portal/zudoku/components/typography.mdx +61 -0
- package/docs/dev-portal/zudoku/configuration/ai-assistants.md +64 -0
- package/docs/dev-portal/zudoku/configuration/api-catalog.md +108 -0
- package/docs/dev-portal/zudoku/configuration/api-reference.md +397 -0
- package/docs/dev-portal/zudoku/configuration/authentication-auth0.md +173 -0
- package/docs/dev-portal/zudoku/configuration/authentication-azure-ad.md +238 -0
- package/docs/dev-portal/zudoku/configuration/authentication-clerk.md +110 -0
- package/docs/dev-portal/zudoku/configuration/authentication-firebase.md +61 -0
- package/docs/dev-portal/zudoku/configuration/authentication-pingfederate.md +136 -0
- package/docs/dev-portal/zudoku/configuration/authentication-supabase.md +225 -0
- package/docs/dev-portal/zudoku/configuration/authentication.md +199 -0
- package/docs/dev-portal/zudoku/configuration/build-configuration.mdx +147 -0
- package/docs/dev-portal/zudoku/configuration/docs.md +282 -0
- package/docs/dev-portal/zudoku/configuration/footer.mdx +214 -0
- package/docs/dev-portal/zudoku/configuration/llms.md +89 -0
- package/docs/dev-portal/zudoku/configuration/navigation.mdx +408 -0
- package/docs/dev-portal/zudoku/configuration/overview.md +380 -0
- package/docs/dev-portal/zudoku/configuration/protected-routes.md +149 -0
- package/docs/dev-portal/zudoku/configuration/search.md +169 -0
- package/docs/dev-portal/zudoku/configuration/sentry.mdx +44 -0
- package/docs/dev-portal/zudoku/configuration/site.md +124 -0
- package/docs/dev-portal/zudoku/configuration/slots.mdx +124 -0
- package/docs/dev-portal/zudoku/configuration/vite-config.md +18 -0
- package/docs/dev-portal/zudoku/custom-plugins.md +287 -0
- package/docs/dev-portal/zudoku/customization/colors-theme.mdx +275 -0
- package/docs/dev-portal/zudoku/customization/fonts.md +110 -0
- package/docs/dev-portal/zudoku/extending/events.md +124 -0
- package/docs/dev-portal/zudoku/guides/custom-pages.md +106 -0
- package/docs/dev-portal/zudoku/guides/environment-variables.md +99 -0
- package/docs/dev-portal/zudoku/guides/mermaid.mdx +70 -0
- package/docs/dev-portal/zudoku/guides/navigation-migration.md +87 -0
- package/docs/dev-portal/zudoku/guides/navigation-rules.mdx +197 -0
- package/docs/dev-portal/zudoku/guides/processors.mdx +234 -0
- package/docs/dev-portal/zudoku/guides/static-files.md +55 -0
- package/docs/dev-portal/zudoku/guides/transforming-examples.md +156 -0
- package/docs/dev-portal/zudoku/guides/using-multiple-apis.md +87 -0
- package/docs/dev-portal/zudoku/markdown/admonitions.md +128 -0
- package/docs/dev-portal/zudoku/markdown/code-blocks.md +196 -0
- package/docs/dev-portal/zudoku/markdown/frontmatter.md +172 -0
- package/docs/dev-portal/zudoku/markdown/mdx.md +68 -0
- package/docs/dev-portal/zudoku/markdown/overview.md +275 -0
- package/docs/dev-portal/zudoku/plugins.md +5 -0
- package/docs/dev-portal/zudoku/writing.mdx +72 -0
- package/docs/errors/bad-request.mdx +39 -0
- package/docs/errors/build-error.mdx +45 -0
- package/docs/errors/fatal-project-error.mdx +39 -0
- package/docs/errors/gateway-timeout.mdx +33 -0
- package/docs/errors/get-head-body-error.mdx +41 -0
- package/docs/errors/main-mod-error.mdx +40 -0
- package/docs/errors/no-project-set.mdx +41 -0
- package/docs/errors/not-found.mdx +43 -0
- package/docs/errors/rate-limit-exceeded.mdx +31 -0
- package/docs/errors/schema-validation-failed.mdx +51 -0
- package/docs/errors/system-configuration-error.mdx +44 -0
- package/docs/errors/unauthorized.mdx +50 -0
- package/docs/errors/unknown-error.mdx +42 -0
- package/docs/errors.mdx +14 -0
- package/docs/guides/canary-routing-for-employees.mdx +385 -0
- package/docs/guides/geolocation-backend-routing.mdx +404 -0
- package/docs/guides/modify-openapi-paths.mdx +371 -0
- package/docs/guides/openapi-overlays.mdx +492 -0
- package/docs/guides/overview.mdx +12 -0
- package/docs/guides/user-based-backend-routing.mdx +437 -0
- package/docs/handlers/aws-lambda.mdx +201 -0
- package/docs/handlers/custom-handler.mdx +112 -0
- package/docs/handlers/legacy-dev-portal-handler.mdx +135 -0
- package/docs/handlers/mcp-server.mdx +730 -0
- package/docs/handlers/openapi.mdx +78 -0
- package/docs/handlers/redirect.mdx +115 -0
- package/docs/handlers/system-handlers.mdx +41 -0
- package/docs/handlers/url-forward.mdx +204 -0
- package/docs/handlers/url-rewrite.mdx +224 -0
- package/docs/handlers/websocket-handler.mdx +154 -0
- package/docs/home.mdx +6 -0
- package/docs/managed-edge/overview.md +78 -0
- package/docs/mcp-server/configuration-migration-guide.mdx +344 -0
- package/docs/mcp-server/custom-tools.mdx +487 -0
- package/docs/mcp-server/graphql.mdx +241 -0
- package/docs/mcp-server/introduction.mdx +122 -0
- package/docs/mcp-server/openai-apps-sdk.mdx +160 -0
- package/docs/mcp-server/prompts.mdx +283 -0
- package/docs/mcp-server/resources.mdx +288 -0
- package/docs/mcp-server/testing.mdx +53 -0
- package/docs/mcp-server/tools.mdx +306 -0
- package/docs/policies/_index.md +92 -0
- package/docs/policies/ab-test-inbound/intro.md +8 -0
- package/docs/policies/ab-test-inbound/policy.ts +14 -0
- package/docs/policies/ab-test-inbound/schema.json +27 -0
- package/docs/policies/ab-test-outbound/intro.md +8 -0
- package/docs/policies/ab-test-outbound/policy.ts +26 -0
- package/docs/policies/ab-test-outbound/schema.json +27 -0
- package/docs/policies/acl-policy-inbound/intro.md +5 -0
- package/docs/policies/acl-policy-inbound/policy.ts +32 -0
- package/docs/policies/acl-policy-inbound/schema.json +52 -0
- package/docs/policies/akamai-ai-firewall/schema.json +98 -0
- package/docs/policies/amberflo-metering-inbound/doc.md +183 -0
- package/docs/policies/amberflo-metering-inbound/intro.md +20 -0
- package/docs/policies/amberflo-metering-inbound/schema.json +108 -0
- package/docs/policies/api-key-inbound/doc.md +77 -0
- package/docs/policies/api-key-inbound/intro.md +30 -0
- package/docs/policies/api-key-inbound/schema.json +84 -0
- package/docs/policies/archive-request-aws-s3-inbound/intro.md +4 -0
- package/docs/policies/archive-request-aws-s3-inbound/policy.ts +58 -0
- package/docs/policies/archive-request-aws-s3-inbound/schema.json +68 -0
- package/docs/policies/archive-request-azure-storage-inbound/doc.md +31 -0
- package/docs/policies/archive-request-azure-storage-inbound/intro.md +4 -0
- package/docs/policies/archive-request-azure-storage-inbound/policy.ts +54 -0
- package/docs/policies/archive-request-azure-storage-inbound/schema.json +53 -0
- package/docs/policies/archive-request-gcp-storage-inbound/doc.md +63 -0
- package/docs/policies/archive-request-gcp-storage-inbound/intro.md +4 -0
- package/docs/policies/archive-request-gcp-storage-inbound/policy.ts +68 -0
- package/docs/policies/archive-request-gcp-storage-inbound/schema.json +47 -0
- package/docs/policies/archive-response-aws-s3-outbound/intro.md +2 -0
- package/docs/policies/archive-response-aws-s3-outbound/policy.ts +59 -0
- package/docs/policies/archive-response-aws-s3-outbound/schema.json +68 -0
- package/docs/policies/archive-response-azure-storage-outbound/doc.md +31 -0
- package/docs/policies/archive-response-azure-storage-outbound/intro.md +3 -0
- package/docs/policies/archive-response-azure-storage-outbound/policy.ts +54 -0
- package/docs/policies/archive-response-azure-storage-outbound/schema.json +53 -0
- package/docs/policies/audit-log-inbound/doc.md +78 -0
- package/docs/policies/audit-log-inbound/intro.md +10 -0
- package/docs/policies/audit-log-inbound/schema.json +81 -0
- package/docs/policies/auth0-jwt-auth-inbound/doc.md +125 -0
- package/docs/policies/auth0-jwt-auth-inbound/intro.md +17 -0
- package/docs/policies/auth0-jwt-auth-inbound/schema.json +74 -0
- package/docs/policies/authzen-inbound/doc.md +24 -0
- package/docs/policies/authzen-inbound/intro.md +31 -0
- package/docs/policies/authzen-inbound/schema.json +126 -0
- package/docs/policies/axiomatics-authz-inbound/doc.md +144 -0
- package/docs/policies/axiomatics-authz-inbound/intro.md +11 -0
- package/docs/policies/axiomatics-authz-inbound/schema.json +161 -0
- package/docs/policies/basic-auth-inbound/intro.md +9 -0
- package/docs/policies/basic-auth-inbound/schema.json +99 -0
- package/docs/policies/bot-detection-inbound/intro.md +4 -0
- package/docs/policies/bot-detection-inbound/schema.json +56 -0
- package/docs/policies/brownout-inbound/doc.md +55 -0
- package/docs/policies/brownout-inbound/intro.md +12 -0
- package/docs/policies/brownout-inbound/schema.json +115 -0
- package/docs/policies/caching-inbound/doc.md +209 -0
- package/docs/policies/caching-inbound/intro.md +23 -0
- package/docs/policies/caching-inbound/schema.json +98 -0
- package/docs/policies/change-method-inbound/schema.json +56 -0
- package/docs/policies/clear-headers-inbound/schema.json +59 -0
- package/docs/policies/clear-headers-outbound/schema.json +59 -0
- package/docs/policies/clerk-jwt-auth-inbound/doc.md +85 -0
- package/docs/policies/clerk-jwt-auth-inbound/intro.md +4 -0
- package/docs/policies/clerk-jwt-auth-inbound/schema.json +68 -0
- package/docs/policies/cognito-jwt-auth-inbound/intro.md +7 -0
- package/docs/policies/cognito-jwt-auth-inbound/schema.json +74 -0
- package/docs/policies/comet-opik-tracing-inbound/schema.json +65 -0
- package/docs/policies/complex-rate-limit-inbound/doc.md +20 -0
- package/docs/policies/complex-rate-limit-inbound/intro.md +23 -0
- package/docs/policies/complex-rate-limit-inbound/schema.json +142 -0
- package/docs/policies/composite-inbound/doc.md +69 -0
- package/docs/policies/composite-inbound/intro.md +15 -0
- package/docs/policies/composite-inbound/schema.json +59 -0
- package/docs/policies/composite-outbound/intro.md +6 -0
- package/docs/policies/composite-outbound/schema.json +59 -0
- package/docs/policies/curity-phantom-token-inbound/doc.md +109 -0
- package/docs/policies/curity-phantom-token-inbound/intro.md +3 -0
- package/docs/policies/curity-phantom-token-inbound/schema.json +68 -0
- package/docs/policies/custom-code-inbound/doc.md +267 -0
- package/docs/policies/custom-code-inbound/intro.md +2 -0
- package/docs/policies/custom-code-inbound/schema.json +48 -0
- package/docs/policies/custom-code-outbound/doc.md +235 -0
- package/docs/policies/custom-code-outbound/intro.md +2 -0
- package/docs/policies/custom-code-outbound/schema.json +43 -0
- package/docs/policies/firebase-jwt-inbound/intro.md +6 -0
- package/docs/policies/firebase-jwt-inbound/schema.json +68 -0
- package/docs/policies/formdata-to-json-inbound/schema.json +60 -0
- package/docs/policies/galileo-tracing-inbound/schema.json +65 -0
- package/docs/policies/geo-filter-inbound/doc.md +33 -0
- package/docs/policies/geo-filter-inbound/schema.json +108 -0
- package/docs/policies/graphql-complexity-limit-inbound/doc.md +48 -0
- package/docs/policies/graphql-complexity-limit-inbound/intro.md +2 -0
- package/docs/policies/graphql-complexity-limit-inbound/schema.json +90 -0
- package/docs/policies/graphql-disable-introspection-inbound/doc.md +66 -0
- package/docs/policies/graphql-disable-introspection-inbound/intro.md +15 -0
- package/docs/policies/graphql-disable-introspection-inbound/schema.json +48 -0
- package/docs/policies/graphql-introspection-filter-outbound/doc.md +148 -0
- package/docs/policies/graphql-introspection-filter-outbound/schema.json +79 -0
- package/docs/policies/hmac-auth-inbound/doc.md +30 -0
- package/docs/policies/hmac-auth-inbound/intro.md +10 -0
- package/docs/policies/hmac-auth-inbound/policy.ts +70 -0
- package/docs/policies/hmac-auth-inbound/schema.json +53 -0
- package/docs/policies/http-deprecation-outbound/doc.md +73 -0
- package/docs/policies/http-deprecation-outbound/schema.json +83 -0
- package/docs/policies/ip-restriction-inbound/intro.md +8 -0
- package/docs/policies/ip-restriction-inbound/policy.ts +40 -0
- package/docs/policies/ip-restriction-inbound/schema.json +58 -0
- package/docs/policies/jwt-scopes-inbound/schema.json +59 -0
- package/docs/policies/ldap-auth-inbound/schema.json +56 -0
- package/docs/policies/mock-api-inbound/schema.json +72 -0
- package/docs/policies/moesif-inbound/doc.md +44 -0
- package/docs/policies/moesif-inbound/intro.md +6 -0
- package/docs/policies/moesif-inbound/schema.json +68 -0
- package/docs/policies/monetization-inbound/doc.md +87 -0
- package/docs/policies/monetization-inbound/intro.md +6 -0
- package/docs/policies/monetization-inbound/schema.json +102 -0
- package/docs/policies/mtls-auth-inbound/intro.md +6 -0
- package/docs/policies/mtls-auth-inbound/schema.json +68 -0
- package/docs/policies/okta-fga-authz-inbound/doc.md +181 -0
- package/docs/policies/okta-fga-authz-inbound/intro.md +20 -0
- package/docs/policies/okta-fga-authz-inbound/schema.json +104 -0
- package/docs/policies/okta-jwt-auth-inbound/intro.md +7 -0
- package/docs/policies/okta-jwt-auth-inbound/schema.json +74 -0
- package/docs/policies/open-id-jwt-auth-inbound/doc.md +58 -0
- package/docs/policies/open-id-jwt-auth-inbound/intro.md +30 -0
- package/docs/policies/open-id-jwt-auth-inbound/schema.json +128 -0
- package/docs/policies/openfga-authz-inbound/doc.md +207 -0
- package/docs/policies/openfga-authz-inbound/intro.md +17 -0
- package/docs/policies/openfga-authz-inbound/schema.json +191 -0
- package/docs/policies/openmeter-inbound/doc.md +163 -0
- package/docs/policies/openmeter-inbound/intro.md +18 -0
- package/docs/policies/openmeter-inbound/schema.json +183 -0
- package/docs/policies/prompt-injection-outbound/doc.md +106 -0
- package/docs/policies/prompt-injection-outbound/intro.md +4 -0
- package/docs/policies/prompt-injection-outbound/schema.json +74 -0
- package/docs/policies/propel-auth-jwt-inbound/doc.md +88 -0
- package/docs/policies/propel-auth-jwt-inbound/intro.md +4 -0
- package/docs/policies/propel-auth-jwt-inbound/schema.json +74 -0
- package/docs/policies/query-param-to-header-inbound/doc.md +70 -0
- package/docs/policies/query-param-to-header-inbound/intro.md +5 -0
- package/docs/policies/query-param-to-header-inbound/schema.json +74 -0
- package/docs/policies/quota-inbound/doc.md +235 -0
- package/docs/policies/quota-inbound/intro.md +7 -0
- package/docs/policies/quota-inbound/schema.json +133 -0
- package/docs/policies/rate-limit-inbound/doc.md +78 -0
- package/docs/policies/rate-limit-inbound/intro.md +30 -0
- package/docs/policies/rate-limit-inbound/schema.json +134 -0
- package/docs/policies/rbac-policy-inbound/intro.md +3 -0
- package/docs/policies/rbac-policy-inbound/policy.ts +42 -0
- package/docs/policies/rbac-policy-inbound/schema.json +52 -0
- package/docs/policies/readme-metrics-inbound/doc.md +1 -0
- package/docs/policies/readme-metrics-inbound/intro.md +3 -0
- package/docs/policies/readme-metrics-inbound/schema.json +84 -0
- package/docs/policies/remove-headers-inbound/schema.json +59 -0
- package/docs/policies/remove-headers-outbound/schema.json +59 -0
- package/docs/policies/remove-query-params-inbound/schema.json +59 -0
- package/docs/policies/replace-string-outbound/schema.json +69 -0
- package/docs/policies/request-size-limit-inbound/schema.json +60 -0
- package/docs/policies/request-validation-inbound/doc.md +72 -0
- package/docs/policies/request-validation-inbound/intro.md +24 -0
- package/docs/policies/request-validation-inbound/schema.json +98 -0
- package/docs/policies/require-origin-inbound/intro.md +12 -0
- package/docs/policies/require-origin-inbound/schema.json +65 -0
- package/docs/policies/secret-masking-outbound/doc.md +41 -0
- package/docs/policies/secret-masking-outbound/intro.md +13 -0
- package/docs/policies/secret-masking-outbound/schema.json +65 -0
- package/docs/policies/semantic-cache-inbound/doc.md +63 -0
- package/docs/policies/semantic-cache-inbound/intro.md +4 -0
- package/docs/policies/semantic-cache-inbound/schema.json +179 -0
- package/docs/policies/set-body-inbound/intro.md +7 -0
- package/docs/policies/set-body-inbound/schema.json +56 -0
- package/docs/policies/set-headers-inbound/doc.md +41 -0
- package/docs/policies/set-headers-inbound/intro.md +2 -0
- package/docs/policies/set-headers-inbound/schema.json +83 -0
- package/docs/policies/set-headers-outbound/schema.json +83 -0
- package/docs/policies/set-query-params-inbound/schema.json +83 -0
- package/docs/policies/set-status-outbound/schema.json +62 -0
- package/docs/policies/sleep-inbound/schema.json +56 -0
- package/docs/policies/stripe-webhook-verification-inbound/intro.md +2 -0
- package/docs/policies/stripe-webhook-verification-inbound/schema.json +60 -0
- package/docs/policies/supabase-jwt-auth-inbound/doc.md +29 -0
- package/docs/policies/supabase-jwt-auth-inbound/intro.md +12 -0
- package/docs/policies/supabase-jwt-auth-inbound/schema.json +86 -0
- package/docs/policies/transform-body-inbound/intro.md +8 -0
- package/docs/policies/transform-body-inbound/policy.ts +16 -0
- package/docs/policies/transform-body-inbound/schema.json +27 -0
- package/docs/policies/transform-body-outbound/intro.md +8 -0
- package/docs/policies/transform-body-outbound/policy.ts +19 -0
- package/docs/policies/transform-body-outbound/schema.json +27 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/doc.md +82 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/intro.md +20 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/schema.json +84 -0
- package/docs/policies/upstream-firebase-admin-auth-inbound/intro.md +10 -0
- package/docs/policies/upstream-firebase-admin-auth-inbound/schema.json +68 -0
- package/docs/policies/upstream-firebase-user-auth-inbound/intro.md +2 -0
- package/docs/policies/upstream-firebase-user-auth-inbound/schema.json +113 -0
- package/docs/policies/upstream-gcp-federated-auth-inbound/doc.md +139 -0
- package/docs/policies/upstream-gcp-federated-auth-inbound/intro.md +21 -0
- package/docs/policies/upstream-gcp-federated-auth-inbound/schema.json +96 -0
- package/docs/policies/upstream-gcp-jwt-inbound/intro.md +10 -0
- package/docs/policies/upstream-gcp-jwt-inbound/schema.json +62 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/doc.md +132 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/intro.md +25 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/schema.json +95 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/doc.md +213 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/intro.md +16 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/schema.json +101 -0
- package/docs/policies/validate-json-schema-inbound/doc.md +129 -0
- package/docs/policies/validate-json-schema-inbound/intro.md +7 -0
- package/docs/policies/validate-json-schema-inbound/schema.json +56 -0
- package/docs/policies/web-bot-auth-inbound/doc.md +104 -0
- package/docs/policies/web-bot-auth-inbound/intro.md +16 -0
- package/docs/policies/web-bot-auth-inbound/schema.json +76 -0
- package/docs/policies/xml-to-json-outbound/doc.md +71 -0
- package/docs/policies/xml-to-json-outbound/intro.md +4 -0
- package/docs/policies/xml-to-json-outbound/schema.json +117 -0
- package/docs/programmable-api/audit-log.mdx +74 -0
- package/docs/programmable-api/background-dispatcher.mdx +124 -0
- package/docs/programmable-api/background-loader.mdx +104 -0
- package/docs/programmable-api/cache.mdx +186 -0
- package/docs/programmable-api/compatibility-dates.mdx +201 -0
- package/docs/programmable-api/console-logging.mdx +48 -0
- package/docs/programmable-api/context-data.mdx +127 -0
- package/docs/programmable-api/custom-cors-policy.mdx +64 -0
- package/docs/programmable-api/environment.mdx +328 -0
- package/docs/programmable-api/hooks.mdx +569 -0
- package/docs/programmable-api/http-problems.mdx +385 -0
- package/docs/programmable-api/jwt-service-plugin.mdx +420 -0
- package/docs/programmable-api/logger.mdx +223 -0
- package/docs/programmable-api/memory-zone-read-through-cache.mdx +96 -0
- package/docs/programmable-api/node-modules.mdx +67 -0
- package/docs/programmable-api/not-found-handler.mdx +47 -0
- package/docs/programmable-api/oauth-protected-resource-plugin.mdx +46 -0
- package/docs/programmable-api/overview.mdx +213 -0
- package/docs/programmable-api/problem-response-formatter.mdx +183 -0
- package/docs/programmable-api/request-user.mdx +289 -0
- package/docs/programmable-api/reusing-code.mdx +26 -0
- package/docs/programmable-api/route-raw.mdx +55 -0
- package/docs/programmable-api/runtime-behaviors.mdx +25 -0
- package/docs/programmable-api/runtime-errors.mdx +246 -0
- package/docs/programmable-api/runtime-extensions.mdx +340 -0
- package/docs/programmable-api/safely-clone-a-request-or-response.mdx +57 -0
- package/docs/programmable-api/streaming-zone-cache.mdx +155 -0
- package/docs/programmable-api/web-crypto-apis.mdx +219 -0
- package/docs/programmable-api/web-standard-apis.mdx +109 -0
- package/docs/programmable-api/zone-cache.mdx +131 -0
- package/docs/programmable-api/zp-body-removed.mdx +32 -0
- package/docs/programmable-api/zuplo-context.mdx +414 -0
- package/docs/programmable-api/zuplo-id-token.mdx +90 -0
- package/docs/programmable-api/zuplo-json.mdx +91 -0
- package/docs/programmable-api/zuplo-request.mdx +200 -0
- package/docs/sample-apis.mdx +78 -0
- package/docs/self-hosted/overview.md +60 -0
- package/package.json +6 -5
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Alert
|
|
3
|
+
sidebar_icon: triangle-alert
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { Alert, AlertDescription, AlertTitle } from "zudoku/ui/Alert";
|
|
7
|
+
import { CheckCircle2Icon, TerminalIcon } from "zudoku/icons";
|
|
8
|
+
import { ReactComponentDoc } from "zudoku/ui/ReactComponentDoc";
|
|
9
|
+
|
|
10
|
+
An alert component for displaying important information to users with different severity levels.
|
|
11
|
+
|
|
12
|
+
## Import
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
import { Alert, AlertDescription, AlertTitle } from "zudoku/ui/Alert";
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Components
|
|
19
|
+
|
|
20
|
+
The Alert component consists of several sub-components:
|
|
21
|
+
|
|
22
|
+
- `Alert` - The main container
|
|
23
|
+
- `AlertTitle` - Title for the alert
|
|
24
|
+
- `AlertDescription` - Description content for the alert
|
|
25
|
+
|
|
26
|
+
## Default Alert
|
|
27
|
+
|
|
28
|
+
<Alert className="not-prose">
|
|
29
|
+
<TerminalIcon className="h-4 w-4" />
|
|
30
|
+
<AlertTitle>Heads up!</AlertTitle>
|
|
31
|
+
<AlertDescription>
|
|
32
|
+
You can add components and dependencies to your app using the cli.
|
|
33
|
+
</AlertDescription>
|
|
34
|
+
</Alert>
|
|
35
|
+
|
|
36
|
+
```tsx title="Alert"
|
|
37
|
+
<Alert>
|
|
38
|
+
<TerminalIcon className="h-4 w-4" />
|
|
39
|
+
<AlertTitle>Heads up!</AlertTitle>
|
|
40
|
+
<AlertDescription>
|
|
41
|
+
You can add components and dependencies to your app using the cli.
|
|
42
|
+
</AlertDescription>
|
|
43
|
+
</Alert>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Destructive Alert
|
|
47
|
+
|
|
48
|
+
<Alert variant="destructive">
|
|
49
|
+
<AlertTitle>Error</AlertTitle>
|
|
50
|
+
<AlertDescription>Your session has expired. Please log in again.</AlertDescription>
|
|
51
|
+
</Alert>
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
<Alert variant="destructive">
|
|
55
|
+
<AlertTitle>Error</AlertTitle>
|
|
56
|
+
<AlertDescription>Your session has expired. Please log in again.</AlertDescription>
|
|
57
|
+
</Alert>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Without Title
|
|
61
|
+
|
|
62
|
+
<Alert>
|
|
63
|
+
<TerminalIcon className="h-4 w-4" />
|
|
64
|
+
<AlertDescription>
|
|
65
|
+
You can add components and dependencies to your app using the cli.
|
|
66
|
+
</AlertDescription>
|
|
67
|
+
</Alert>
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
<Alert>
|
|
71
|
+
<TerminalIcon className="h-4 w-4" />
|
|
72
|
+
<AlertDescription>
|
|
73
|
+
You can add components and dependencies to your app using the cli.
|
|
74
|
+
</AlertDescription>
|
|
75
|
+
</Alert>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Without Icon
|
|
79
|
+
|
|
80
|
+
<Alert>
|
|
81
|
+
<AlertTitle>Heads up!</AlertTitle>
|
|
82
|
+
<AlertDescription>
|
|
83
|
+
You can add components and dependencies to your app using the cli.
|
|
84
|
+
</AlertDescription>
|
|
85
|
+
</Alert>
|
|
86
|
+
|
|
87
|
+
```tsx
|
|
88
|
+
<Alert>
|
|
89
|
+
<AlertTitle>Heads up!</AlertTitle>
|
|
90
|
+
<AlertDescription>
|
|
91
|
+
You can add components and dependencies to your app using the cli.
|
|
92
|
+
</AlertDescription>
|
|
93
|
+
</Alert>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Usage Examples
|
|
97
|
+
|
|
98
|
+
### Success Alert
|
|
99
|
+
|
|
100
|
+
<Alert className="border-green-200 bg-green-50 text-green-800 dark:border-green-800 dark:bg-green-950 dark:text-green-400">
|
|
101
|
+
<CheckCircle2Icon className="h-4 w-4" />
|
|
102
|
+
<AlertTitle>Success!</AlertTitle>
|
|
103
|
+
<AlertDescription>Your changes have been saved successfully.</AlertDescription>
|
|
104
|
+
</Alert>
|
|
105
|
+
|
|
106
|
+
```tsx
|
|
107
|
+
<Alert className="border-green-200 bg-green-50 text-green-800 dark:border-green-800 dark:bg-green-950 dark:text-green-400">
|
|
108
|
+
<CheckCircle2Icon className="h-4 w-4" />
|
|
109
|
+
<AlertTitle>Success!</AlertTitle>
|
|
110
|
+
<AlertDescription>Your changes have been saved successfully.</AlertDescription>
|
|
111
|
+
</Alert>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Warning Alert
|
|
115
|
+
|
|
116
|
+
<Alert className="border-yellow-200 bg-yellow-50 text-yellow-800 dark:border-yellow-800 dark:bg-yellow-950 dark:text-yellow-400">
|
|
117
|
+
<AlertTitle>Warning!</AlertTitle>
|
|
118
|
+
<AlertDescription>This action cannot be undone. Please proceed with caution.</AlertDescription>
|
|
119
|
+
</Alert>
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
<Alert className="border-yellow-200 bg-yellow-50 text-yellow-800 dark:border-yellow-800 dark:bg-yellow-950 dark:text-yellow-400">
|
|
123
|
+
<AlertTitle>Warning!</AlertTitle>
|
|
124
|
+
<AlertDescription>This action cannot be undone. Please proceed with caution.</AlertDescription>
|
|
125
|
+
</Alert>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
# Props
|
|
129
|
+
|
|
130
|
+
<ReactComponentDoc component={Alert} />
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Badge
|
|
3
|
+
sidebar_icon: tag
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
A small badge component used to display status information or labels.
|
|
7
|
+
|
|
8
|
+
## Import
|
|
9
|
+
|
|
10
|
+
```tsx
|
|
11
|
+
import { Badge } from "zudoku/ui/Badge";
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Variants
|
|
15
|
+
|
|
16
|
+
### Default
|
|
17
|
+
|
|
18
|
+
<Badge variant="default">Default</Badge>
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
<Badge variant="default">Default</Badge>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Secondary
|
|
25
|
+
|
|
26
|
+
<Badge variant="secondary">Secondary</Badge>
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
<Badge variant="secondary">Secondary</Badge>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Muted
|
|
33
|
+
|
|
34
|
+
<Badge variant="muted">Muted</Badge>
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
<Badge variant="muted">Muted</Badge>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Destructive
|
|
41
|
+
|
|
42
|
+
<Badge variant="destructive">Destructive</Badge>
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
<Badge variant="destructive">Destructive</Badge>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Outline
|
|
49
|
+
|
|
50
|
+
<Badge variant="outline">Outline</Badge>
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
<Badge variant="outline">Outline</Badge>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
Badges are perfect for showing status, categories, or counts:
|
|
59
|
+
|
|
60
|
+
<div className="flex gap-2">
|
|
61
|
+
<Badge variant="default">New</Badge>
|
|
62
|
+
<Badge variant="secondary">Main</Badge>
|
|
63
|
+
<Badge variant="muted">10</Badge>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
<Badge variant="default">New</Badge>
|
|
68
|
+
<Badge variant="secondary">Main</Badge>
|
|
69
|
+
<Badge variant="muted">10</Badge>
|
|
70
|
+
```
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Button
|
|
3
|
+
sidebar_icon: mouse-pointer-click
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { Button } from "zudoku/ui/Button";
|
|
7
|
+
import { PopcornIcon } from "zudoku/icons";
|
|
8
|
+
|
|
9
|
+
A flexible button component with multiple variants and sizes for different use cases.
|
|
10
|
+
|
|
11
|
+
## Import
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { Button } from "zudoku/ui/Button";
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Variants
|
|
18
|
+
|
|
19
|
+
### Default
|
|
20
|
+
|
|
21
|
+
<Button variant="default">Default Button</Button>
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<Button variant="default">Default Button</Button>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Destructive
|
|
28
|
+
|
|
29
|
+
<Button variant="destructive">Delete</Button>
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
<Button variant="destructive">Delete</Button>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Outline
|
|
36
|
+
|
|
37
|
+
<Button variant="outline">Outline Button</Button>
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
<Button variant="outline">Outline Button</Button>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Secondary
|
|
44
|
+
|
|
45
|
+
<Button variant="secondary">Secondary</Button>
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
<Button variant="secondary">Secondary</Button>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Ghost
|
|
52
|
+
|
|
53
|
+
<Button variant="ghost">Ghost Button</Button>
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
<Button variant="ghost">Ghost Button</Button>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Link
|
|
60
|
+
|
|
61
|
+
<Button variant="link">Link Button</Button>
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
<Button variant="link">Link Button</Button>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Sizes
|
|
68
|
+
|
|
69
|
+
### Default Size
|
|
70
|
+
|
|
71
|
+
<Button size="default">Default Size</Button>
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
<Button size="default">Default Size</Button>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Small
|
|
78
|
+
|
|
79
|
+
<Button size="sm">Small Button</Button>
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
<Button size="sm">Small Button</Button>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Large
|
|
86
|
+
|
|
87
|
+
<Button size="lg">Large Button</Button>
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
<Button size="lg">Large Button</Button>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Extra Large
|
|
94
|
+
|
|
95
|
+
<Button size="xl">Extra Large</Button>
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
<Button size="xl">Extra Large</Button>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Icon
|
|
102
|
+
|
|
103
|
+
<Button size="icon">
|
|
104
|
+
<PopcornIcon size={16} />
|
|
105
|
+
</Button>
|
|
106
|
+
|
|
107
|
+
```tsx
|
|
108
|
+
<Button size="icon">
|
|
109
|
+
<PopcornIcon size={16} />
|
|
110
|
+
</Button>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## As Child
|
|
114
|
+
|
|
115
|
+
Use the `asChild` prop to render the button as a different element while maintaining button styling:
|
|
116
|
+
|
|
117
|
+
```tsx
|
|
118
|
+
<Button asChild>
|
|
119
|
+
<a href="/link">Link as Button</a>
|
|
120
|
+
</Button>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Custom Styling
|
|
124
|
+
|
|
125
|
+
The Button component accepts all standard button HTML attributes and can be customized with
|
|
126
|
+
additional className:
|
|
127
|
+
|
|
128
|
+
```tsx
|
|
129
|
+
<Button className="w-full" variant="outline">
|
|
130
|
+
Full Width Button
|
|
131
|
+
</Button>
|
|
132
|
+
```
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Callout
|
|
3
|
+
sidebar_icon: circle-alert
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { Callout } from "zudoku/ui/Callout";
|
|
7
|
+
import { ReactComponentDoc } from "zudoku/ui/ReactComponentDoc";
|
|
8
|
+
|
|
9
|
+
This is a callout component that can be used to draw attention to important information.
|
|
10
|
+
|
|
11
|
+
## Import
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { Callout } from "zudoku/ui/Callout";
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
<ReactComponentDoc component={Callout} />
|
|
18
|
+
|
|
19
|
+
:::tip{title="Hot tip"}
|
|
20
|
+
|
|
21
|
+
There's a shortcut to use callout components in Markdown files:
|
|
22
|
+
[Admonitions](../markdown/admonitions).
|
|
23
|
+
|
|
24
|
+
:::
|
|
25
|
+
|
|
26
|
+
## Note
|
|
27
|
+
|
|
28
|
+
<Callout type="note" title="Hey, listen!">
|
|
29
|
+
This draws attention to important information.
|
|
30
|
+
</Callout>
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<Callout type="note" title="Hey, listen!">
|
|
34
|
+
This draws attention to important information.
|
|
35
|
+
</Callout>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Info
|
|
39
|
+
|
|
40
|
+
<Callout type="info" title="It's safe to use the info">
|
|
41
|
+
This adds info to your content.
|
|
42
|
+
</Callout>
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
<Callout type="info" title="It's safe to use the info">
|
|
46
|
+
This adds info to your content.
|
|
47
|
+
</Callout>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Tip
|
|
51
|
+
|
|
52
|
+
<Callout type="tip" title="You'll be successful">
|
|
53
|
+
If you choose to be.
|
|
54
|
+
</Callout>
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
<Callout type="tip" title="You'll be successful">
|
|
58
|
+
If you choose to be.
|
|
59
|
+
</Callout>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Danger
|
|
63
|
+
|
|
64
|
+
<Callout type="danger" title="But some things are dangerous">
|
|
65
|
+
It's dangerous to go alone, take this.
|
|
66
|
+
</Callout>
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
<Callout type="danger" title="But some things are dangerous">
|
|
70
|
+
It's dangerous to go alone, take this.
|
|
71
|
+
</Callout>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Caution
|
|
75
|
+
|
|
76
|
+
<Callout type="caution" title="So, better show a warning">
|
|
77
|
+
This raises a warning to watch out for.
|
|
78
|
+
</Callout>
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
<Callout type="caution" title="So, better show a warning">
|
|
82
|
+
This raises a warning to watch out for.
|
|
83
|
+
</Callout>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Variations
|
|
87
|
+
|
|
88
|
+
Callouts can be customized by omitting the title or icon:
|
|
89
|
+
|
|
90
|
+
<Callout type="note">Without a title</Callout>
|
|
91
|
+
|
|
92
|
+
<Callout type="note" icon={false} title="Without an icon">
|
|
93
|
+
You can hide the icon while keeping the title
|
|
94
|
+
</Callout>
|
|
95
|
+
|
|
96
|
+
<Callout type="note" icon={false}>
|
|
97
|
+
Or have neither title nor icon
|
|
98
|
+
</Callout>
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
<Callout type="note">
|
|
102
|
+
Without a title
|
|
103
|
+
</Callout>
|
|
104
|
+
|
|
105
|
+
<Callout type="note" icon={false} title="Without an icon">
|
|
106
|
+
You can hide the icon while keeping the title
|
|
107
|
+
</Callout>
|
|
108
|
+
|
|
109
|
+
<Callout type="note" icon={false}>
|
|
110
|
+
Or have neither title nor icon
|
|
111
|
+
</Callout>
|
|
112
|
+
```
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Card
|
|
3
|
+
sidebar_icon: square
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
Card,
|
|
8
|
+
CardContent,
|
|
9
|
+
CardHeader,
|
|
10
|
+
CardTitle,
|
|
11
|
+
CardDescription,
|
|
12
|
+
CardFooter,
|
|
13
|
+
} from "zudoku/ui/Card";
|
|
14
|
+
import { Button } from "zudoku/ui/Button";
|
|
15
|
+
import { Input } from "zudoku/ui/Input";
|
|
16
|
+
import { Label } from "zudoku/ui/Label";
|
|
17
|
+
|
|
18
|
+
A flexible card component with header, content, and footer sections for displaying grouped
|
|
19
|
+
information.
|
|
20
|
+
|
|
21
|
+
## Import
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
import {
|
|
25
|
+
Card,
|
|
26
|
+
CardContent,
|
|
27
|
+
CardDescription,
|
|
28
|
+
CardFooter,
|
|
29
|
+
CardHeader,
|
|
30
|
+
CardTitle,
|
|
31
|
+
} from "zudoku/ui/Card";
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Components
|
|
35
|
+
|
|
36
|
+
The Card component consists of several sub-components:
|
|
37
|
+
|
|
38
|
+
- `Card` - The main container
|
|
39
|
+
- `CardHeader` - Header section with padding
|
|
40
|
+
- `CardTitle` - Styled title for the header
|
|
41
|
+
- `CardDescription` - Muted description text
|
|
42
|
+
- `CardContent` - Main content area
|
|
43
|
+
- `CardFooter` - Footer section for actions
|
|
44
|
+
|
|
45
|
+
## Basic Usage
|
|
46
|
+
|
|
47
|
+
<Card className="w-[350px] not-prose">
|
|
48
|
+
<CardHeader>
|
|
49
|
+
<CardTitle>Card Title</CardTitle>
|
|
50
|
+
<CardDescription>Card Description</CardDescription>
|
|
51
|
+
</CardHeader>
|
|
52
|
+
<CardContent>
|
|
53
|
+
<p>Card content goes here.</p>
|
|
54
|
+
</CardContent>
|
|
55
|
+
</Card>
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<Card className="w-[350px]">
|
|
59
|
+
<CardHeader>
|
|
60
|
+
<CardTitle>Card Title</CardTitle>
|
|
61
|
+
<CardDescription>Card Description</CardDescription>
|
|
62
|
+
</CardHeader>
|
|
63
|
+
<CardContent>
|
|
64
|
+
<p>Card content goes here.</p>
|
|
65
|
+
</CardContent>
|
|
66
|
+
</Card>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## With Footer
|
|
70
|
+
|
|
71
|
+
<Card className="w-[350px] not-prose">
|
|
72
|
+
<CardHeader>
|
|
73
|
+
<CardTitle>Create project</CardTitle>
|
|
74
|
+
<CardDescription>Deploy your new project in one-click.</CardDescription>
|
|
75
|
+
</CardHeader>
|
|
76
|
+
<CardContent>Card content goes here.</CardContent>
|
|
77
|
+
<CardFooter className="flex justify-between">
|
|
78
|
+
<Button variant="outline">Cancel</Button>
|
|
79
|
+
<Button>Deploy</Button>
|
|
80
|
+
</CardFooter>
|
|
81
|
+
</Card>
|
|
82
|
+
|
|
83
|
+
```tsx
|
|
84
|
+
<Card className="w-[350px]">
|
|
85
|
+
<CardHeader>
|
|
86
|
+
<CardTitle>Create project</CardTitle>
|
|
87
|
+
<CardDescription>Deploy your new project in one-click.</CardDescription>
|
|
88
|
+
</CardHeader>
|
|
89
|
+
<CardContent>
|
|
90
|
+
<form>
|
|
91
|
+
<div className="grid w-full items-center gap-4">
|
|
92
|
+
<div className="flex flex-col space-y-1.5">
|
|
93
|
+
<Label htmlFor="name">Name</Label>
|
|
94
|
+
<Input id="name" placeholder="Name of your project" />
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</form>
|
|
98
|
+
</CardContent>
|
|
99
|
+
<CardFooter className="flex justify-between">
|
|
100
|
+
<Button variant="outline">Cancel</Button>
|
|
101
|
+
<Button>Deploy</Button>
|
|
102
|
+
</CardFooter>
|
|
103
|
+
</Card>
|
|
104
|
+
```
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Checkbox
|
|
3
|
+
sidebar_icon: check-square
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { Checkbox } from "zudoku/ui/Checkbox";
|
|
7
|
+
import { Label } from "zudoku/ui/Label";
|
|
8
|
+
|
|
9
|
+
A checkbox component built on Radix UI primitives for boolean input.
|
|
10
|
+
|
|
11
|
+
## Import
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { Checkbox } from "zudoku/ui/Checkbox";
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Basic Usage
|
|
18
|
+
|
|
19
|
+
<Checkbox />
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
<Checkbox />
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## With Label
|
|
26
|
+
|
|
27
|
+
<div className="flex items-center space-x-2">
|
|
28
|
+
<Checkbox id="terms" />
|
|
29
|
+
<Label htmlFor="terms">Accept terms and conditions</Label>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<div className="flex items-center space-x-2">
|
|
34
|
+
<Checkbox id="terms" />
|
|
35
|
+
<Label htmlFor="terms">Accept terms and conditions</Label>
|
|
36
|
+
</div>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Checked State
|
|
40
|
+
|
|
41
|
+
<div className="flex items-center space-x-2">
|
|
42
|
+
<Checkbox id="terms2" defaultChecked />
|
|
43
|
+
<Label htmlFor="terms2">Accept terms and conditions</Label>
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
<div className="flex items-center space-x-2">
|
|
48
|
+
<Checkbox id="terms2" defaultChecked />
|
|
49
|
+
<Label htmlFor="terms2">Accept terms and conditions</Label>
|
|
50
|
+
</div>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Disabled State
|
|
54
|
+
|
|
55
|
+
<div className="flex items-center space-x-2">
|
|
56
|
+
<Checkbox id="terms3" disabled />
|
|
57
|
+
<Label htmlFor="terms3">Accept terms and conditions</Label>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
<div className="flex items-center space-x-2">
|
|
62
|
+
<Checkbox id="terms3" disabled />
|
|
63
|
+
<Label htmlFor="terms3">Accept terms and conditions</Label>
|
|
64
|
+
</div>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Features
|
|
68
|
+
|
|
69
|
+
- **Accessibility**: Full keyboard navigation and screen reader support
|
|
70
|
+
- **Indeterminate State**: Supports indeterminate state for partial selections
|
|
71
|
+
- **Controlled/Uncontrolled**: Can be used with or without state management
|
|
72
|
+
- **Customizable**: Easy to style with className prop
|
|
@@ -0,0 +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 "zudoku/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
|
+
:::
|