@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,86 +1,86 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Label
|
|
3
|
-
sidebar_icon: tag
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Label } from "@lukoweb/apitogo/ui/Label";
|
|
7
|
-
import { Input } from "@lukoweb/apitogo/ui/Input";
|
|
8
|
-
import { Textarea } from "@lukoweb/apitogo/ui/Textarea";
|
|
9
|
-
import { Checkbox } from "@lukoweb/apitogo/ui/Checkbox";
|
|
10
|
-
|
|
11
|
-
A form label component built on Radix UI primitives with proper accessibility support.
|
|
12
|
-
|
|
13
|
-
## Import
|
|
14
|
-
|
|
15
|
-
```tsx
|
|
16
|
-
import { Label } from "@lukoweb/apitogo/ui/Label";
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Basic Usage
|
|
20
|
-
|
|
21
|
-
<Label htmlFor="email">Email</Label>
|
|
22
|
-
|
|
23
|
-
```tsx
|
|
24
|
-
<Label htmlFor="email">Email</Label>
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## With Input
|
|
28
|
-
|
|
29
|
-
<div className="grid w-full max-w-sm items-center gap-1.5">
|
|
30
|
-
<Label htmlFor="email">Email</Label>
|
|
31
|
-
<Input type="email" id="email" placeholder="Email" />
|
|
32
|
-
</div>
|
|
33
|
-
|
|
34
|
-
```tsx
|
|
35
|
-
<div className="grid w-full max-w-sm items-center gap-1.5">
|
|
36
|
-
<Label htmlFor="email">Email</Label>
|
|
37
|
-
<Input type="email" id="email" placeholder="Email" />
|
|
38
|
-
</div>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## With Textarea
|
|
42
|
-
|
|
43
|
-
<div className="grid w-full gap-1.5">
|
|
44
|
-
<Label htmlFor="message">Your message</Label>
|
|
45
|
-
<Textarea placeholder="Type your message here." id="message" />
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
```tsx
|
|
49
|
-
<div className="grid w-full gap-1.5">
|
|
50
|
-
<Label htmlFor="message">Your message</Label>
|
|
51
|
-
<Textarea placeholder="Type your message here." id="message" />
|
|
52
|
-
</div>
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## With Checkbox
|
|
56
|
-
|
|
57
|
-
<div className="flex items-center space-x-2">
|
|
58
|
-
<Checkbox id="terms" />
|
|
59
|
-
<Label
|
|
60
|
-
htmlFor="terms"
|
|
61
|
-
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
62
|
-
>
|
|
63
|
-
Accept terms and conditions
|
|
64
|
-
</Label>
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
```tsx
|
|
68
|
-
<div className="flex items-center space-x-2">
|
|
69
|
-
<Checkbox id="terms" />
|
|
70
|
-
<Label
|
|
71
|
-
htmlFor="terms"
|
|
72
|
-
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
73
|
-
>
|
|
74
|
-
Accept terms and conditions
|
|
75
|
-
</Label>
|
|
76
|
-
</div>
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Accessibility
|
|
80
|
-
|
|
81
|
-
The Label component automatically handles proper accessibility attributes when used with form
|
|
82
|
-
controls:
|
|
83
|
-
|
|
84
|
-
- Associates the label with form controls via `htmlFor` prop
|
|
85
|
-
- Provides screen reader support
|
|
86
|
-
- Enables clicking the label to focus the associated control
|
|
1
|
+
---
|
|
2
|
+
title: Label
|
|
3
|
+
sidebar_icon: tag
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { Label } from "@lukoweb/apitogo/ui/Label";
|
|
7
|
+
import { Input } from "@lukoweb/apitogo/ui/Input";
|
|
8
|
+
import { Textarea } from "@lukoweb/apitogo/ui/Textarea";
|
|
9
|
+
import { Checkbox } from "@lukoweb/apitogo/ui/Checkbox";
|
|
10
|
+
|
|
11
|
+
A form label component built on Radix UI primitives with proper accessibility support.
|
|
12
|
+
|
|
13
|
+
## Import
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { Label } from "@lukoweb/apitogo/ui/Label";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Basic Usage
|
|
20
|
+
|
|
21
|
+
<Label htmlFor="email">Email</Label>
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<Label htmlFor="email">Email</Label>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## With Input
|
|
28
|
+
|
|
29
|
+
<div className="grid w-full max-w-sm items-center gap-1.5">
|
|
30
|
+
<Label htmlFor="email">Email</Label>
|
|
31
|
+
<Input type="email" id="email" placeholder="Email" />
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
<div className="grid w-full max-w-sm items-center gap-1.5">
|
|
36
|
+
<Label htmlFor="email">Email</Label>
|
|
37
|
+
<Input type="email" id="email" placeholder="Email" />
|
|
38
|
+
</div>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## With Textarea
|
|
42
|
+
|
|
43
|
+
<div className="grid w-full gap-1.5">
|
|
44
|
+
<Label htmlFor="message">Your message</Label>
|
|
45
|
+
<Textarea placeholder="Type your message here." id="message" />
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
<div className="grid w-full gap-1.5">
|
|
50
|
+
<Label htmlFor="message">Your message</Label>
|
|
51
|
+
<Textarea placeholder="Type your message here." id="message" />
|
|
52
|
+
</div>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## With Checkbox
|
|
56
|
+
|
|
57
|
+
<div className="flex items-center space-x-2">
|
|
58
|
+
<Checkbox id="terms" />
|
|
59
|
+
<Label
|
|
60
|
+
htmlFor="terms"
|
|
61
|
+
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
62
|
+
>
|
|
63
|
+
Accept terms and conditions
|
|
64
|
+
</Label>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
<div className="flex items-center space-x-2">
|
|
69
|
+
<Checkbox id="terms" />
|
|
70
|
+
<Label
|
|
71
|
+
htmlFor="terms"
|
|
72
|
+
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
73
|
+
>
|
|
74
|
+
Accept terms and conditions
|
|
75
|
+
</Label>
|
|
76
|
+
</div>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Accessibility
|
|
80
|
+
|
|
81
|
+
The Label component automatically handles proper accessibility attributes when used with form
|
|
82
|
+
controls:
|
|
83
|
+
|
|
84
|
+
- Associates the label with form controls via `htmlFor` prop
|
|
85
|
+
- Provides screen reader support
|
|
86
|
+
- Enables clicking the label to focus the associated control
|
package/docs/components/link.mdx
CHANGED
|
@@ -1,242 +1,242 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Link
|
|
3
|
-
sidebar_icon: link
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
A navigation component that provides client-side routing capabilities for internal links and
|
|
7
|
-
external link handling.
|
|
8
|
-
|
|
9
|
-
## Import
|
|
10
|
-
|
|
11
|
-
```tsx
|
|
12
|
-
import { Link } from "@lukoweb/apitogo/components";
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Usage
|
|
16
|
-
|
|
17
|
-
### Basic Internal Link
|
|
18
|
-
|
|
19
|
-
```tsx
|
|
20
|
-
<Link to="/docs/getting-started">Get Started</Link>
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### Link with State
|
|
24
|
-
|
|
25
|
-
```tsx
|
|
26
|
-
<Link to="/profile" state={{ from: "header" }}>
|
|
27
|
-
Profile
|
|
28
|
-
</Link>
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Replace History Entry
|
|
32
|
-
|
|
33
|
-
```tsx
|
|
34
|
-
<Link to="/login" replace>
|
|
35
|
-
Login
|
|
36
|
-
</Link>
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### External Link Behavior
|
|
40
|
-
|
|
41
|
-
```tsx
|
|
42
|
-
<Link to="/docs" reloadDocument>
|
|
43
|
-
Full Page Reload
|
|
44
|
-
</Link>
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Examples
|
|
48
|
-
|
|
49
|
-
### Navigation Menu
|
|
50
|
-
|
|
51
|
-
```tsx
|
|
52
|
-
function Navigation() {
|
|
53
|
-
return (
|
|
54
|
-
<nav>
|
|
55
|
-
<Link to="/">Home</Link>
|
|
56
|
-
<Link to="/docs">Documentation</Link>
|
|
57
|
-
<Link to="/api">API Reference</Link>
|
|
58
|
-
<Link to="/blog">Blog</Link>
|
|
59
|
-
</nav>
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Breadcrumb Navigation
|
|
65
|
-
|
|
66
|
-
```tsx
|
|
67
|
-
function Breadcrumbs({ path }) {
|
|
68
|
-
return (
|
|
69
|
-
<div className="breadcrumbs">
|
|
70
|
-
<Link to="/">Home</Link>
|
|
71
|
-
<span>/</span>
|
|
72
|
-
<Link to="/docs">Docs</Link>
|
|
73
|
-
<span>/</span>
|
|
74
|
-
<span>{path}</span>
|
|
75
|
-
</div>
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Dynamic Links
|
|
81
|
-
|
|
82
|
-
```tsx
|
|
83
|
-
function DocsList({ docs }) {
|
|
84
|
-
return (
|
|
85
|
-
<ul>
|
|
86
|
-
{docs.map((doc) => (
|
|
87
|
-
<li key={doc.id}>
|
|
88
|
-
<Link to={`/docs/${doc.slug}`}>{doc.title}</Link>
|
|
89
|
-
</li>
|
|
90
|
-
))}
|
|
91
|
-
</ul>
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### Conditional Linking
|
|
97
|
-
|
|
98
|
-
```tsx
|
|
99
|
-
function ConditionalLink({ to, disabled, children }) {
|
|
100
|
-
if (disabled) {
|
|
101
|
-
return <span className="disabled-link">{children}</span>;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return <Link to={to}>{children}</Link>;
|
|
105
|
-
}
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## Link Types
|
|
109
|
-
|
|
110
|
-
### Relative Links
|
|
111
|
-
|
|
112
|
-
```tsx
|
|
113
|
-
// Relative to current route
|
|
114
|
-
<Link to="../parent-page">Up one level</Link>
|
|
115
|
-
|
|
116
|
-
// Relative to path
|
|
117
|
-
<Link to="./sibling-page" relative="path">
|
|
118
|
-
Sibling page
|
|
119
|
-
</Link>
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### Absolute Links
|
|
123
|
-
|
|
124
|
-
```tsx
|
|
125
|
-
<Link to="/absolute/path">Absolute Path</Link>
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### Query Parameters
|
|
129
|
-
|
|
130
|
-
```tsx
|
|
131
|
-
<Link to="/search?q=react&type=docs">Search Results</Link>
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### Hash Links
|
|
135
|
-
|
|
136
|
-
```tsx
|
|
137
|
-
<Link to="/docs/api#authentication">Authentication Section</Link>
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## Advanced Usage
|
|
141
|
-
|
|
142
|
-
### With Custom Styling
|
|
143
|
-
|
|
144
|
-
```tsx
|
|
145
|
-
<Link to="/important-page" className="text-blue-600 hover:text-blue-800 underline">
|
|
146
|
-
Important Page
|
|
147
|
-
</Link>
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
### Programmatic Navigation
|
|
151
|
-
|
|
152
|
-
```tsx
|
|
153
|
-
import { useNavigate } from "react-router";
|
|
154
|
-
|
|
155
|
-
function MyComponent() {
|
|
156
|
-
const navigate = useNavigate();
|
|
157
|
-
|
|
158
|
-
const handleClick = () => {
|
|
159
|
-
// Perform some logic
|
|
160
|
-
navigate("/next-page");
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
return (
|
|
164
|
-
<div>
|
|
165
|
-
<Link to="/direct-link">Direct Link</Link>
|
|
166
|
-
<button onClick={handleClick}>Programmatic Navigation</button>
|
|
167
|
-
</div>
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Link with Confirmation
|
|
173
|
-
|
|
174
|
-
```tsx
|
|
175
|
-
function DeleteLink({ itemId }) {
|
|
176
|
-
const handleClick = (e) => {
|
|
177
|
-
if (!confirm("Are you sure you want to delete this item?")) {
|
|
178
|
-
e.preventDefault();
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
|
|
182
|
-
return (
|
|
183
|
-
<Link to={`/items/${itemId}/delete`} onClick={handleClick} className="text-red-600">
|
|
184
|
-
Delete Item
|
|
185
|
-
</Link>
|
|
186
|
-
);
|
|
187
|
-
}
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
## Integration with Button
|
|
191
|
-
|
|
192
|
-
Use the Link component with the Button component's `asChild` prop:
|
|
193
|
-
|
|
194
|
-
```tsx
|
|
195
|
-
<Button asChild variant="outline">
|
|
196
|
-
<Link to="/action">Perform Action</Link>
|
|
197
|
-
</Button>
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
## Accessibility
|
|
201
|
-
|
|
202
|
-
The Link component maintains accessibility best practices:
|
|
203
|
-
|
|
204
|
-
- Proper focus management
|
|
205
|
-
- Keyboard navigation support
|
|
206
|
-
- Screen reader compatibility
|
|
207
|
-
- Semantic HTML structure
|
|
208
|
-
|
|
209
|
-
```tsx
|
|
210
|
-
<Link to="/help" aria-label="Get help and support">
|
|
211
|
-
Help
|
|
212
|
-
</Link>
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
## Performance
|
|
216
|
-
|
|
217
|
-
- **Client-side routing**: No full page reloads for internal navigation
|
|
218
|
-
- **Prefetching**: Intelligent prefetching of linked resources
|
|
219
|
-
- **View transitions**: Smooth transitions between pages (when supported)
|
|
220
|
-
|
|
221
|
-
## Notes
|
|
222
|
-
|
|
223
|
-
:::tip
|
|
224
|
-
|
|
225
|
-
The Link component is optimized for internal navigation and provides the best user experience for
|
|
226
|
-
single-page application routing.
|
|
227
|
-
|
|
228
|
-
:::
|
|
229
|
-
|
|
230
|
-
:::info
|
|
231
|
-
|
|
232
|
-
For external links, use a regular `<a>` tag instead of the Link component to ensure proper external
|
|
233
|
-
navigation behavior.
|
|
234
|
-
|
|
235
|
-
:::
|
|
236
|
-
|
|
237
|
-
:::caution
|
|
238
|
-
|
|
239
|
-
When using `reloadDocument`, the link will perform a full page reload, which may impact performance
|
|
240
|
-
and user experience.
|
|
241
|
-
|
|
242
|
-
:::
|
|
1
|
+
---
|
|
2
|
+
title: Link
|
|
3
|
+
sidebar_icon: link
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
A navigation component that provides client-side routing capabilities for internal links and
|
|
7
|
+
external link handling.
|
|
8
|
+
|
|
9
|
+
## Import
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import { Link } from "@lukoweb/apitogo/components";
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
### Basic Internal Link
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
<Link to="/docs/getting-started">Get Started</Link>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Link with State
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
<Link to="/profile" state={{ from: "header" }}>
|
|
27
|
+
Profile
|
|
28
|
+
</Link>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Replace History Entry
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
<Link to="/login" replace>
|
|
35
|
+
Login
|
|
36
|
+
</Link>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### External Link Behavior
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
<Link to="/docs" reloadDocument>
|
|
43
|
+
Full Page Reload
|
|
44
|
+
</Link>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
|
|
49
|
+
### Navigation Menu
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
function Navigation() {
|
|
53
|
+
return (
|
|
54
|
+
<nav>
|
|
55
|
+
<Link to="/">Home</Link>
|
|
56
|
+
<Link to="/docs">Documentation</Link>
|
|
57
|
+
<Link to="/api">API Reference</Link>
|
|
58
|
+
<Link to="/blog">Blog</Link>
|
|
59
|
+
</nav>
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Breadcrumb Navigation
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
function Breadcrumbs({ path }) {
|
|
68
|
+
return (
|
|
69
|
+
<div className="breadcrumbs">
|
|
70
|
+
<Link to="/">Home</Link>
|
|
71
|
+
<span>/</span>
|
|
72
|
+
<Link to="/docs">Docs</Link>
|
|
73
|
+
<span>/</span>
|
|
74
|
+
<span>{path}</span>
|
|
75
|
+
</div>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Dynamic Links
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
function DocsList({ docs }) {
|
|
84
|
+
return (
|
|
85
|
+
<ul>
|
|
86
|
+
{docs.map((doc) => (
|
|
87
|
+
<li key={doc.id}>
|
|
88
|
+
<Link to={`/docs/${doc.slug}`}>{doc.title}</Link>
|
|
89
|
+
</li>
|
|
90
|
+
))}
|
|
91
|
+
</ul>
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Conditional Linking
|
|
97
|
+
|
|
98
|
+
```tsx
|
|
99
|
+
function ConditionalLink({ to, disabled, children }) {
|
|
100
|
+
if (disabled) {
|
|
101
|
+
return <span className="disabled-link">{children}</span>;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return <Link to={to}>{children}</Link>;
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Link Types
|
|
109
|
+
|
|
110
|
+
### Relative Links
|
|
111
|
+
|
|
112
|
+
```tsx
|
|
113
|
+
// Relative to current route
|
|
114
|
+
<Link to="../parent-page">Up one level</Link>
|
|
115
|
+
|
|
116
|
+
// Relative to path
|
|
117
|
+
<Link to="./sibling-page" relative="path">
|
|
118
|
+
Sibling page
|
|
119
|
+
</Link>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Absolute Links
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
<Link to="/absolute/path">Absolute Path</Link>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Query Parameters
|
|
129
|
+
|
|
130
|
+
```tsx
|
|
131
|
+
<Link to="/search?q=react&type=docs">Search Results</Link>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Hash Links
|
|
135
|
+
|
|
136
|
+
```tsx
|
|
137
|
+
<Link to="/docs/api#authentication">Authentication Section</Link>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Advanced Usage
|
|
141
|
+
|
|
142
|
+
### With Custom Styling
|
|
143
|
+
|
|
144
|
+
```tsx
|
|
145
|
+
<Link to="/important-page" className="text-blue-600 hover:text-blue-800 underline">
|
|
146
|
+
Important Page
|
|
147
|
+
</Link>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Programmatic Navigation
|
|
151
|
+
|
|
152
|
+
```tsx
|
|
153
|
+
import { useNavigate } from "react-router";
|
|
154
|
+
|
|
155
|
+
function MyComponent() {
|
|
156
|
+
const navigate = useNavigate();
|
|
157
|
+
|
|
158
|
+
const handleClick = () => {
|
|
159
|
+
// Perform some logic
|
|
160
|
+
navigate("/next-page");
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
return (
|
|
164
|
+
<div>
|
|
165
|
+
<Link to="/direct-link">Direct Link</Link>
|
|
166
|
+
<button onClick={handleClick}>Programmatic Navigation</button>
|
|
167
|
+
</div>
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Link with Confirmation
|
|
173
|
+
|
|
174
|
+
```tsx
|
|
175
|
+
function DeleteLink({ itemId }) {
|
|
176
|
+
const handleClick = (e) => {
|
|
177
|
+
if (!confirm("Are you sure you want to delete this item?")) {
|
|
178
|
+
e.preventDefault();
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
return (
|
|
183
|
+
<Link to={`/items/${itemId}/delete`} onClick={handleClick} className="text-red-600">
|
|
184
|
+
Delete Item
|
|
185
|
+
</Link>
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Integration with Button
|
|
191
|
+
|
|
192
|
+
Use the Link component with the Button component's `asChild` prop:
|
|
193
|
+
|
|
194
|
+
```tsx
|
|
195
|
+
<Button asChild variant="outline">
|
|
196
|
+
<Link to="/action">Perform Action</Link>
|
|
197
|
+
</Button>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Accessibility
|
|
201
|
+
|
|
202
|
+
The Link component maintains accessibility best practices:
|
|
203
|
+
|
|
204
|
+
- Proper focus management
|
|
205
|
+
- Keyboard navigation support
|
|
206
|
+
- Screen reader compatibility
|
|
207
|
+
- Semantic HTML structure
|
|
208
|
+
|
|
209
|
+
```tsx
|
|
210
|
+
<Link to="/help" aria-label="Get help and support">
|
|
211
|
+
Help
|
|
212
|
+
</Link>
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Performance
|
|
216
|
+
|
|
217
|
+
- **Client-side routing**: No full page reloads for internal navigation
|
|
218
|
+
- **Prefetching**: Intelligent prefetching of linked resources
|
|
219
|
+
- **View transitions**: Smooth transitions between pages (when supported)
|
|
220
|
+
|
|
221
|
+
## Notes
|
|
222
|
+
|
|
223
|
+
:::tip
|
|
224
|
+
|
|
225
|
+
The Link component is optimized for internal navigation and provides the best user experience for
|
|
226
|
+
single-page application routing.
|
|
227
|
+
|
|
228
|
+
:::
|
|
229
|
+
|
|
230
|
+
:::info
|
|
231
|
+
|
|
232
|
+
For external links, use a regular `<a>` tag instead of the Link component to ensure proper external
|
|
233
|
+
navigation behavior.
|
|
234
|
+
|
|
235
|
+
:::
|
|
236
|
+
|
|
237
|
+
:::caution
|
|
238
|
+
|
|
239
|
+
When using `reloadDocument`, the link will perform a full page reload, which may impact performance
|
|
240
|
+
and user experience.
|
|
241
|
+
|
|
242
|
+
:::
|