@lukoweb/apitogo 0.1.24 → 0.1.38
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 +92 -0
- package/cli.js +13 -13
- package/client.d.ts +8 -8
- package/dist/cli/cli.js +1117 -624
- package/dist/declarations/config/config.d.ts +4 -0
- package/dist/declarations/config/loader.d.ts +2 -0
- package/dist/declarations/config/resolve-modules.d.ts +34 -0
- package/dist/declarations/config/validators/InputNavigationSchema.d.ts +7 -7
- package/dist/declarations/config/validators/ModulesSchema.d.ts +417 -0
- package/dist/declarations/config/validators/ZudokuConfig.d.ts +123 -4
- package/dist/declarations/index.d.ts +3 -1
- package/dist/declarations/lib/authentication/components/ProductionUnlockPage.d.ts +1 -0
- package/dist/declarations/lib/authentication/hook.d.ts +3 -19
- package/dist/declarations/lib/authentication/providers/dev-portal-constants.d.ts +16 -0
- package/dist/declarations/lib/authentication/providers/dev-portal-utils.d.ts +9 -0
- package/dist/declarations/lib/authentication/providers/dev-portal.d.ts +39 -0
- package/dist/declarations/lib/authentication/state.d.ts +12 -26
- package/dist/declarations/lib/components/LandingLayout.d.ts +4 -0
- package/dist/declarations/lib/components/index.d.ts +2 -0
- package/dist/declarations/lib/plugins/api-keys/index.d.ts +2 -1
- package/dist/flat-config.d.ts +209 -24
- package/docs/components/alert.mdx +130 -0
- package/docs/components/badge.mdx +70 -0
- package/docs/components/button.mdx +132 -0
- package/docs/components/callout.mdx +112 -0
- package/docs/components/card.mdx +104 -0
- package/docs/components/checkbox.mdx +72 -0
- package/docs/components/client-only.mdx +79 -0
- package/docs/components/code-tabs.mdx +179 -0
- package/docs/components/dialog.mdx +167 -0
- package/docs/components/head.mdx +200 -0
- package/docs/components/icons.mdx +27 -0
- package/docs/components/input.mdx +96 -0
- package/docs/components/label.mdx +86 -0
- package/docs/components/link.mdx +242 -0
- package/docs/components/markdown.mdx +151 -0
- package/docs/components/mermaid.mdx +81 -0
- package/docs/components/playground.mdx +87 -0
- package/docs/components/secret.mdx +79 -0
- package/docs/components/select.mdx +176 -0
- package/docs/components/shadcn.mdx +73 -0
- package/docs/components/slider.mdx +108 -0
- package/docs/components/slot.mdx +119 -0
- package/docs/components/stepper.mdx +138 -0
- package/docs/components/switch.mdx +96 -0
- package/docs/components/syntax-highlight.mdx +602 -0
- package/docs/components/textarea.mdx +78 -0
- package/docs/components/tooltip.mdx +195 -0
- package/docs/components/typography.mdx +61 -0
- package/docs/concepts/auth-provider-api-identities.md +109 -0
- package/docs/configuration/ai-assistants.md +65 -0
- package/docs/configuration/api-catalog.md +109 -0
- package/docs/configuration/api-reference.md +397 -0
- package/docs/configuration/authentication-auth0.md +174 -0
- package/docs/configuration/authentication-azure-ad.md +238 -0
- package/docs/configuration/authentication-clerk.md +110 -0
- package/docs/configuration/authentication-firebase.md +62 -0
- package/docs/configuration/authentication-pingfederate.md +136 -0
- package/docs/configuration/authentication-supabase.md +226 -0
- package/docs/configuration/authentication.md +231 -0
- package/docs/configuration/build-configuration.mdx +147 -0
- package/docs/configuration/docs.md +282 -0
- package/docs/configuration/footer.mdx +214 -0
- package/docs/configuration/llms.md +90 -0
- package/docs/configuration/make-config.mdx +90 -0
- package/docs/configuration/navigation.mdx +422 -0
- package/docs/configuration/overview.md +380 -0
- package/docs/configuration/protected-routes.md +150 -0
- package/docs/configuration/search.md +163 -0
- package/docs/configuration/sentry.mdx +44 -0
- package/docs/configuration/site.md +124 -0
- package/docs/configuration/slots.mdx +125 -0
- package/docs/configuration/vite-config.md +18 -0
- package/docs/custom-plugins.md +285 -0
- package/docs/customization/colors-theme.mdx +276 -0
- package/docs/customization/fonts.md +110 -0
- package/docs/deploy/apache-nginx.md +41 -0
- package/docs/deploy/apitogo.md +139 -0
- package/docs/deploy/cloudflare-pages.md +75 -0
- package/docs/deploy/direct-upload.md +18 -0
- package/docs/deploy/github-pages.md +50 -0
- package/docs/deploy/vercel.md +103 -0
- package/docs/deployment.md +21 -0
- package/docs/extending/events.md +124 -0
- package/docs/guides/custom-pages.md +106 -0
- package/docs/guides/environment-variables.md +99 -0
- package/docs/guides/managing-api-keys-and-identities.md +172 -0
- package/docs/guides/mermaid.mdx +70 -0
- package/docs/guides/navigation-migration.md +87 -0
- package/docs/guides/navigation-rules.mdx +203 -0
- package/docs/guides/processors.mdx +234 -0
- package/docs/guides/static-files.md +55 -0
- package/docs/guides/transforming-examples.md +156 -0
- package/docs/guides/using-multiple-apis.md +87 -0
- package/docs/markdown/admonitions.md +128 -0
- package/docs/markdown/code-blocks.md +196 -0
- package/docs/markdown/frontmatter.md +173 -0
- package/docs/markdown/mdx.md +68 -0
- package/docs/markdown/overview.md +275 -0
- package/docs/plugins.md +5 -0
- package/docs/quickstart.md +87 -0
- package/docs/writing.mdx +72 -0
- package/package.json +170 -116
- package/src/app/ZuploBuildConfig.ts +36 -36
- 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 +118 -118
- package/src/app/entry.server.tsx +160 -160
- package/src/app/env.ts +40 -40
- package/src/app/font.geist.css +73 -73
- package/src/app/main.css +390 -390
- package/src/app/main.tsx +8 -1
- package/src/app/polyfills.ts +47 -47
- package/src/app/processRoutes.tsx +51 -25
- 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/config.ts +32 -0
- package/src/config/create-plugin.ts +71 -71
- package/src/config/file-exists.ts +6 -6
- package/src/config/loader.ts +11 -1
- package/src/config/resolve-modules.ts +260 -0
- package/src/config/validators/BuildSchema.ts +95 -95
- package/src/config/validators/HeaderNavigationSchema.ts +41 -41
- package/src/config/validators/InputNavigationSchema.test-d.ts +178 -178
- package/src/config/validators/InputNavigationSchema.ts +206 -206
- package/src/config/validators/ModulesSchema.ts +312 -0
- package/src/config/validators/ProtectedRoutesSchema.ts +35 -35
- package/src/config/validators/ZudokuConfig.ts +766 -729
- 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 +31 -0
- 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 -31
- package/src/lib/authentication/AuthenticationPlugin.tsx +33 -33
- package/src/lib/authentication/authentication.ts +48 -48
- package/src/lib/authentication/components/OAuthErrorPage.tsx +197 -197
- package/src/lib/authentication/components/ProductionUnlockPage.tsx +27 -0
- package/src/lib/authentication/components/SignOut.tsx +15 -15
- package/src/lib/authentication/constants.ts +1 -1
- package/src/lib/authentication/errors.ts +34 -34
- package/src/lib/authentication/hook.ts +141 -139
- package/src/lib/authentication/providers/auth0.tsx +91 -91
- package/src/lib/authentication/providers/azureb2c.tsx +223 -223
- package/src/lib/authentication/providers/dev-portal-constants.ts +21 -0
- package/src/lib/authentication/providers/dev-portal-utils.ts +107 -0
- package/src/lib/authentication/providers/dev-portal.tsx +270 -0
- 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 +179 -91
- 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/AnchorLink.tsx +24 -24
- 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/ErrorPage.tsx +26 -26
- package/src/lib/components/Footer.tsx +140 -140
- package/src/lib/components/Framed.tsx +51 -51
- package/src/lib/components/Header.tsx +11 -3
- package/src/lib/components/HeaderNavigation.tsx +148 -148
- package/src/lib/components/Heading.tsx +84 -84
- package/src/lib/components/InlineCode.tsx +15 -15
- package/src/lib/components/LandingLayout.tsx +21 -0
- package/src/lib/components/LanguageIcon.tsx +199 -199
- package/src/lib/components/Markdown.tsx +55 -55
- package/src/lib/components/Meta.tsx +46 -46
- package/src/lib/components/MobileTopNavigation.tsx +11 -3
- 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/Slot.tsx +64 -64
- package/src/lib/components/Spinner.tsx +5 -5
- package/src/lib/components/StatusPage.tsx +96 -96
- package/src/lib/components/ThemeSwitch.tsx +49 -49
- package/src/lib/components/Typography.tsx +12 -12
- package/src/lib/components/Zudoku.tsx +106 -106
- 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 +22 -22
- package/src/lib/components/context/ZudokuReactContext.tsx +17 -17
- package/src/lib/components/index.ts +2 -0
- package/src/lib/components/navigation/Navigation.tsx +51 -51
- package/src/lib/components/navigation/NavigationBadge.tsx +48 -48
- package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -28
- package/src/lib/components/navigation/NavigationWrapper.tsx +49 -49
- 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 +11 -1
- package/src/lib/core/ZudokuContext.ts +271 -271
- package/src/lib/core/plugins.ts +138 -138
- 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/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/index.tsx +119 -119
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +33 -33
- package/src/lib/plugins/api-keys/index.tsx +274 -272
- package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -67
- package/src/lib/plugins/custom-pages/index.tsx +32 -32
- 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 +62 -62
- package/src/lib/plugins/openapi/ColorizedParam.tsx +115 -115
- package/src/lib/plugins/openapi/Endpoint.tsx +85 -85
- 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/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/SidecarBox.tsx +57 -57
- 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/NonHighlightedCode.tsx +22 -22
- 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/Headers.tsx +6 -6
- package/src/lib/plugins/openapi/playground/PathParams.tsx +53 -53
- 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/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/ResponseStatusBar.tsx +117 -117
- 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/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/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/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/testing/index.tsx +146 -146
- package/src/lib/ui/Accordion.tsx +55 -55
- 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/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/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 +70 -70
- package/src/lib/util/useScrollToTop.ts +18 -18
- package/src/types.d.ts +57 -53
- package/src/vite/api/SchemaManager.ts +371 -371
- package/src/vite/api/schema-codegen.ts +163 -163
- package/src/vite/config.ts +5 -1
- 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 +93 -0
- package/src/vite/html.ts +54 -54
- package/src/vite/index.ts +2 -2
- 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/plugin-api-keys.ts +6 -1
- package/src/vite/plugin-api.ts +4 -1
- package/src/vite/plugin-auth.ts +5 -1
- package/src/vite/plugin-component.ts +1 -1
- package/src/vite/plugin-config-reload.ts +49 -49
- package/src/vite/plugin-doc-metadata.ts +45 -45
- package/src/vite/plugin-docs.ts +4 -1
- package/src/vite/plugin-metadata.ts +30 -30
- package/src/vite/plugin-modules.ts +144 -0
- package/src/vite/plugin-shiki-register.ts +97 -97
- package/src/vite/plugin-theme.ts +399 -399
- package/src/vite/plugin.ts +2 -0
- 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/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/LICENSE.md +0 -18
- package/dist/declarations/lib/components/navigation/ZudokuLogo.d.ts +0 -6
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Navigation
|
|
3
|
+
sidebar_icon: compass
|
|
4
|
+
description:
|
|
5
|
+
Learn how to configure the navigation in APIToGo, including links, categories, documents, and
|
|
6
|
+
custom pages. Understand the structure of the navigation array and how to use icons, labels, and
|
|
7
|
+
paths.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
import { Book, Code, FileText } from "@lukoweb/apitogo/icons";
|
|
11
|
+
|
|
12
|
+
APIToGo uses a single `navigation` array to control both the top navigation tabs and the sidebar.
|
|
13
|
+
Items at the root of this array appear as tabs, and nested items build the sidebar tree. Navigation
|
|
14
|
+
entries can be links, document references, categories or custom pages.
|
|
15
|
+
|
|
16
|
+
## Basic configuration
|
|
17
|
+
|
|
18
|
+
The navigation is defined using the `navigation` array in the APIToGo config file. Each item can be
|
|
19
|
+
one of several types. At the simplest level you may only have links and categories.
|
|
20
|
+
|
|
21
|
+
```tsx title="apitogo.config.tsx"
|
|
22
|
+
{
|
|
23
|
+
"navigation": [
|
|
24
|
+
{
|
|
25
|
+
"type": "category",
|
|
26
|
+
"label": "Documentation",
|
|
27
|
+
"icon": "book",
|
|
28
|
+
"items": [
|
|
29
|
+
{
|
|
30
|
+
"type": "doc",
|
|
31
|
+
"file": "documentation/introduction",
|
|
32
|
+
"label": "Introduction",
|
|
33
|
+
"icon": "file-text"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"type": "doc",
|
|
37
|
+
"file": "documentation/getting-started",
|
|
38
|
+
"path": "/docs/quick-start",
|
|
39
|
+
"label": "Quick Start"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "link",
|
|
45
|
+
"to": "/api",
|
|
46
|
+
"label": "API Reference",
|
|
47
|
+
"icon": "code",
|
|
48
|
+
"description": "Complete API documentation",
|
|
49
|
+
"badge": {
|
|
50
|
+
"label": "v2.0",
|
|
51
|
+
"color": "blue"
|
|
52
|
+
},
|
|
53
|
+
"display": "always"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Generate navigation automatically
|
|
60
|
+
|
|
61
|
+
Use the CLI command **`apitogo make-config`** to rebuild **`navigation`** and **`redirects`** from
|
|
62
|
+
your Markdown files. See **[Make config (CLI)](./make-config.md)** for full usage, options, and
|
|
63
|
+
behavior (including creating `apitogo.config.tsx` when no config exists, and which settings are left
|
|
64
|
+
untouched).
|
|
65
|
+
|
|
66
|
+
::::caution
|
|
67
|
+
|
|
68
|
+
`make-config` replaces the **values** of the `navigation` and `redirects` arrays. If you rely on a
|
|
69
|
+
fully hand-written navigation, review the generated result before committing it.
|
|
70
|
+
|
|
71
|
+
::::
|
|
72
|
+
|
|
73
|
+
## Navigation Items
|
|
74
|
+
|
|
75
|
+
Navigation items can be of these types: `category`, `doc`, `link`, or `custom-page`.
|
|
76
|
+
|
|
77
|
+
- `link`: A direct link to a page or external URL.
|
|
78
|
+
- `category`: A group of links that can be expanded or collapsed.
|
|
79
|
+
- `doc`: A reference to a document by it's file path: `file`.
|
|
80
|
+
- `custom-pages`: A custom page that is made of a React component, see
|
|
81
|
+
[Custom Pages](../guides/custom-pages.md)
|
|
82
|
+
|
|
83
|
+
### `type: link`
|
|
84
|
+
|
|
85
|
+
`link` is the most basic item, it directly links to a path or URL. Use this for external resources
|
|
86
|
+
or standalone pages.
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"type": "link",
|
|
91
|
+
"label": "Support",
|
|
92
|
+
"to": "/my/api" // or: https://example.com/my-external-link
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
<details>
|
|
97
|
+
<summary>**TypeScript type declaration**</summary>
|
|
98
|
+
```ts
|
|
99
|
+
type NavigationLink = {
|
|
100
|
+
type: "link";
|
|
101
|
+
to: string;
|
|
102
|
+
label: string;
|
|
103
|
+
icon?: string; // Lucide icon name
|
|
104
|
+
description?: string;
|
|
105
|
+
badge?: {
|
|
106
|
+
label: string;
|
|
107
|
+
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray" | "outline";
|
|
108
|
+
};
|
|
109
|
+
display?:
|
|
110
|
+
| "auth"
|
|
111
|
+
| "anon"
|
|
112
|
+
| "always"
|
|
113
|
+
| "hide"
|
|
114
|
+
| ((params: { context: ApitogoContext; auth: UseAuthReturn }) => boolean);
|
|
115
|
+
target?: "_self" | "_blank";
|
|
116
|
+
};
|
|
117
|
+
```
|
|
118
|
+
</details>
|
|
119
|
+
|
|
120
|
+
### `type: category`
|
|
121
|
+
|
|
122
|
+
The `category` type groups related items under a collapsible section. The `label` is the displayed
|
|
123
|
+
text, and the `items` array contains `id`s of documents, links, or other categories.
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"type": "category",
|
|
128
|
+
"label": "Getting Started",
|
|
129
|
+
"collapsible": true, // optional
|
|
130
|
+
"collapsed": false, // optional
|
|
131
|
+
"items": [
|
|
132
|
+
{
|
|
133
|
+
"type": "link",
|
|
134
|
+
"label": "Support",
|
|
135
|
+
"to": "https://support.example.com"
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
<details>
|
|
142
|
+
<summary>**TypeScript type declaration**</summary>
|
|
143
|
+
|
|
144
|
+
```ts
|
|
145
|
+
type NavigationCategory = {
|
|
146
|
+
type: "category";
|
|
147
|
+
icon?: string; // Lucide icon name
|
|
148
|
+
items: Array<NavigationDoc | NavigationLink | NavigationCategory | NavigationCustomPage>;
|
|
149
|
+
label: string;
|
|
150
|
+
collapsible?: boolean;
|
|
151
|
+
collapsed?: boolean;
|
|
152
|
+
link?: string | { type: "doc"; file: string; label?: string };
|
|
153
|
+
display?:
|
|
154
|
+
| "auth"
|
|
155
|
+
| "anon"
|
|
156
|
+
| "always"
|
|
157
|
+
| "hide"
|
|
158
|
+
| ((params: { context: ApitogoContext; auth: UseAuthReturn }) => boolean);
|
|
159
|
+
};
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
</details>
|
|
163
|
+
|
|
164
|
+
### `type: doc`
|
|
165
|
+
|
|
166
|
+
Doc is used to reference markdown files. The `label` is the text that will be displayed, and the
|
|
167
|
+
`file` is the file path associated with a markdown file.
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"type": "doc",
|
|
172
|
+
"label": "Overview",
|
|
173
|
+
"file": "docs/overview"
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
<details>
|
|
178
|
+
<summary>**TypeScript type declaration**</summary>
|
|
179
|
+
|
|
180
|
+
```ts
|
|
181
|
+
type NavigationDoc = {
|
|
182
|
+
type: "doc";
|
|
183
|
+
file: string;
|
|
184
|
+
path?: string;
|
|
185
|
+
icon?: string;
|
|
186
|
+
label?: string;
|
|
187
|
+
badge?: {
|
|
188
|
+
label: string;
|
|
189
|
+
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray" | "outline";
|
|
190
|
+
};
|
|
191
|
+
display?:
|
|
192
|
+
| "auth"
|
|
193
|
+
| "anon"
|
|
194
|
+
| "always"
|
|
195
|
+
| "hide"
|
|
196
|
+
| ((params: { context: ApitogoContext; auth: UseAuthReturn }) => boolean);
|
|
197
|
+
};
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
</details>
|
|
201
|
+
|
|
202
|
+
#### Using shorthands
|
|
203
|
+
|
|
204
|
+
Documents can be referenced as strings (using their file path), which is equivalent to
|
|
205
|
+
`{ "type": "doc", "file": "path" }`:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"navigation": [
|
|
210
|
+
{
|
|
211
|
+
"type": "category",
|
|
212
|
+
"label": "Documentation",
|
|
213
|
+
"icon": "book",
|
|
214
|
+
"items": [
|
|
215
|
+
"documentation/introduction",
|
|
216
|
+
"documentation/getting-started",
|
|
217
|
+
"documentation/installation"
|
|
218
|
+
]
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"type": "link",
|
|
222
|
+
"to": "/api",
|
|
223
|
+
"label": "API Reference",
|
|
224
|
+
"icon": "code"
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
This is much more concise when you don't need custom labels, icons, or other properties for
|
|
231
|
+
individual documents.
|
|
232
|
+
|
|
233
|
+
Learn more in the [Markdown documentation](/docs/markdown/overview)
|
|
234
|
+
|
|
235
|
+
#### Custom paths
|
|
236
|
+
|
|
237
|
+
The `path` property allows you to customize the URL path for a document. By default, APIToGo uses
|
|
238
|
+
the file path to generate the URL, but you can override this behavior by specifying a custom path.
|
|
239
|
+
|
|
240
|
+
### `type: custom-page`
|
|
241
|
+
|
|
242
|
+
Custom pages allow you to create standalone pages that are not tied to a Markdown document. This is
|
|
243
|
+
useful for creating landing pages, dashboards, or any other custom content.
|
|
244
|
+
|
|
245
|
+
```tsx
|
|
246
|
+
{
|
|
247
|
+
type: "custom-page",
|
|
248
|
+
path: "/a-custom-page",
|
|
249
|
+
element: <MyCustomPage />,
|
|
250
|
+
display: "always"
|
|
251
|
+
}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
<details>
|
|
255
|
+
<summary>**TypeScript type declaration**</summary>
|
|
256
|
+
|
|
257
|
+
```ts
|
|
258
|
+
type NavigationCustomPage = {
|
|
259
|
+
type: "custom-page";
|
|
260
|
+
path: string;
|
|
261
|
+
label?: string;
|
|
262
|
+
element: any;
|
|
263
|
+
icon?: string; // Lucide icon name
|
|
264
|
+
badge?: {
|
|
265
|
+
label: string;
|
|
266
|
+
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray" | "outline";
|
|
267
|
+
invert?: boolean;
|
|
268
|
+
};
|
|
269
|
+
display?:
|
|
270
|
+
| "auth"
|
|
271
|
+
| "anon"
|
|
272
|
+
| "always"
|
|
273
|
+
| "hide"
|
|
274
|
+
| ((params: { context: ApitogoContext; auth: UseAuthReturn }) => boolean);
|
|
275
|
+
};
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
</details>
|
|
279
|
+
|
|
280
|
+
## Display Control
|
|
281
|
+
|
|
282
|
+
All navigation items support a `display` property that controls when the item should be visible:
|
|
283
|
+
|
|
284
|
+
- `"always"` (default): Always visible
|
|
285
|
+
- `"auth"`: Only visible when user is authenticated
|
|
286
|
+
- `"anon"`: Only visible when user is not authenticated
|
|
287
|
+
- `"hide"`: Never visible (useful for temporarily hiding items)
|
|
288
|
+
- **callback function**: For custom logic, pass a function that receives `{ context, auth }` and
|
|
289
|
+
returns a boolean
|
|
290
|
+
|
|
291
|
+
```json
|
|
292
|
+
{
|
|
293
|
+
"type": "link",
|
|
294
|
+
"label": "Admin Panel",
|
|
295
|
+
"to": "/admin",
|
|
296
|
+
"display": "auth"
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Custom Display Logic
|
|
301
|
+
|
|
302
|
+
For more complex visibility rules, use a callback function:
|
|
303
|
+
|
|
304
|
+
```tsx
|
|
305
|
+
{
|
|
306
|
+
type: "link",
|
|
307
|
+
label: "Premium Features",
|
|
308
|
+
to: "/premium",
|
|
309
|
+
display: ({ auth }) => {
|
|
310
|
+
// Show only for users with premium role
|
|
311
|
+
return auth.user?.role === "premium";
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
The callback receives:
|
|
317
|
+
|
|
318
|
+
- `context`: The APIToGo runtime context (TypeScript type: `ApitogoContext`)
|
|
319
|
+
- `auth`: The authentication state from `UseAuthReturn`, including `user`, `isAuthenticated`, etc.
|
|
320
|
+
|
|
321
|
+
## Badges
|
|
322
|
+
|
|
323
|
+
Navigation items can display badges with labels and colors. Badges support an optional `invert`
|
|
324
|
+
property for styling:
|
|
325
|
+
|
|
326
|
+
```json
|
|
327
|
+
{
|
|
328
|
+
"type": "doc",
|
|
329
|
+
"file": "api/v2",
|
|
330
|
+
"badge": {
|
|
331
|
+
"label": "Beta",
|
|
332
|
+
"color": "yellow"
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
## Icons
|
|
338
|
+
|
|
339
|
+
Icons can be added to categories and documents by specifying an `icon` property. The value should be
|
|
340
|
+
the name of a [Lucide icon](https://lucide.dev/icons) (e.g., `book` <Book size={16}
|
|
341
|
+
style={{ display: 'inline' }} />, `code` <Code size={16} style={{ display: 'inline' }} />,
|
|
342
|
+
`file-text` <FileText size={16} style={{ display: 'inline' }} />).
|
|
343
|
+
|
|
344
|
+
```json
|
|
345
|
+
{
|
|
346
|
+
"type": "category",
|
|
347
|
+
"label": "Getting Started",
|
|
348
|
+
"icon": "book"
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
They can also be set on individual documents in their front matter:
|
|
353
|
+
|
|
354
|
+
```md
|
|
355
|
+
---
|
|
356
|
+
title: My Document
|
|
357
|
+
sidebar_icon: book
|
|
358
|
+
---
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
## Title & Labels
|
|
362
|
+
|
|
363
|
+
All navigation items can have a `label` property that determines the displayed text. For `doc`
|
|
364
|
+
items, the `label` is optional; if omitted, APIToGo uses the document's `title` from its front
|
|
365
|
+
matter or the first `#` header.
|
|
366
|
+
|
|
367
|
+
To override the navigation label without changing the document's `title`, use the `sidebar_label`
|
|
368
|
+
property in the front matter:
|
|
369
|
+
|
|
370
|
+
```md
|
|
371
|
+
---
|
|
372
|
+
title: My Long Title
|
|
373
|
+
sidebar_label: Short Title
|
|
374
|
+
---
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
In this example, the document's title remains "My Long Title," but the sidebar displays "Short
|
|
378
|
+
Title."
|
|
379
|
+
|
|
380
|
+
## Navigation Rules
|
|
381
|
+
|
|
382
|
+
Plugins generate sidebar navigation automatically (e.g. from OpenAPI tags). Navigation rules let you
|
|
383
|
+
customize that generated sidebar by inserting, modifying, sorting, moving, or removing items. To
|
|
384
|
+
change the top-level tabs themselves, use the `navigation` array directly.
|
|
385
|
+
|
|
386
|
+
```tsx
|
|
387
|
+
navigationRules: [
|
|
388
|
+
{
|
|
389
|
+
type: "sort",
|
|
390
|
+
match: "Shipments",
|
|
391
|
+
by: (a, b) => a.label.localeCompare(b.label),
|
|
392
|
+
},
|
|
393
|
+
],
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
For a practical walkthrough with more examples, see the
|
|
397
|
+
[Navigation Rules](/docs/guides/navigation-rules) guide.
|
|
398
|
+
|
|
399
|
+
### Rule Types
|
|
400
|
+
|
|
401
|
+
Each rule has a `type` and a `match` property that targets a navigation item.
|
|
402
|
+
|
|
403
|
+
| Type | Description |
|
|
404
|
+
| -------- | ------------------------------------------------------------------------- |
|
|
405
|
+
| `insert` | Add items `before` or `after` a matched item |
|
|
406
|
+
| `modify` | Change `label`, `icon`, `badge`, `collapsed`, `collapsible`, or `display` |
|
|
407
|
+
| `remove` | Remove a matched item from the sidebar |
|
|
408
|
+
| `sort` | Sort children of a matched category using a custom comparator |
|
|
409
|
+
| `move` | Relocate a matched item `before` or `after` another item |
|
|
410
|
+
|
|
411
|
+
### Match Syntax
|
|
412
|
+
|
|
413
|
+
The `match` property uses slash-separated segments to target items. The first segment identifies the
|
|
414
|
+
top-level tab by label, and remaining segments navigate into the sidebar tree. Label matching is
|
|
415
|
+
case-insensitive.
|
|
416
|
+
|
|
417
|
+
```json
|
|
418
|
+
match: "Users/Get User"; // by label
|
|
419
|
+
match: "Users/0"; // first item
|
|
420
|
+
match: "Users/-1"; // last item
|
|
421
|
+
match: "Users/Advanced/0"; // mixed nesting
|
|
422
|
+
```
|