@redocly/api-docs 0.2.0-next.1 → 0.2.0-next.10
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/lib/RedocStandalone.d.ts +38 -0
- package/lib/RedocStandalone.js +1 -0
- package/lib/RedoclyApiDocs.js +1 -1
- package/lib/RedoclyApiDocsStandalone.d.ts +2 -0
- package/lib/RedoclyApiDocsStandalone.js +3 -3
- package/lib/adapters/asyncapi/build/navigation.js +1 -1
- package/lib/adapters/asyncapi/items/channel/content.js +1 -1
- package/lib/adapters/asyncapi/items/channel/item.js +1 -1
- package/lib/adapters/asyncapi/items/operation/item.js +1 -1
- package/lib/adapters/asyncapi/items/overview/content.js +1 -1
- package/lib/adapters/graphql/group/utils.js +1 -1
- package/lib/adapters/graphql/utils/createApiItem.js +1 -1
- package/lib/adapters/helpers.d.ts +3 -10
- package/lib/adapters/helpers.js +1 -1
- package/lib/adapters/openapi/build/context.js +1 -1
- package/lib/adapters/openapi/build-code-sample-source.d.ts +1 -1
- package/lib/adapters/openapi/build-code-sample-source.js +1 -1
- package/lib/adapters/openapi/configure/merge-utils.d.ts +1 -1
- package/lib/adapters/openapi/configure/resolve-request-values.js +1 -1
- package/lib/adapters/openapi/group/item.d.ts +0 -3
- package/lib/adapters/openapi/group/item.js +1 -1
- package/lib/adapters/openapi/index.js +1 -1
- package/lib/adapters/openapi/items/operation/content.js +1 -1
- package/lib/adapters/openapi/items/operation/item.d.ts +2 -2
- package/lib/adapters/openapi/items/operation/item.js +1 -1
- package/lib/adapters/openapi/items/overview/content.js +1 -1
- package/lib/adapters/openapi/items/schema/item.js +1 -1
- package/lib/adapters/openapi/store.js +1 -1
- package/lib/adapters/openapi/utils/merge-mock-server.d.ts +2 -2
- package/lib/adapters/rbac.d.ts +14 -0
- package/lib/adapters/rbac.js +1 -0
- package/lib/adapters/utils/descriptionToMarkdown.d.ts +6 -0
- package/lib/adapters/utils/descriptionToMarkdown.js +11 -0
- package/lib/adapters/utils/markdoc.d.ts +8 -1
- package/lib/adapters/utils/markdoc.js +1 -1
- package/lib/components/ErrorBoundary.d.ts +4 -2
- package/lib/components/ErrorBoundary.js +55 -1
- package/lib/components/Header/HeaderItem.js +5 -5
- package/lib/components/Header/HeaderPageActions.d.ts +4 -0
- package/lib/components/Header/HeaderPageActions.js +1 -0
- package/lib/components/Header/PageActions.d.ts +4 -0
- package/lib/components/Header/PageActions.js +11 -0
- package/lib/components/ItemContent/hooks.d.ts +12 -1
- package/lib/components/ItemContent/hooks.js +1 -1
- package/lib/components/ItemContent/sections/BodySection.js +3 -3
- package/lib/components/ItemContent/sections/CallbacksSection.js +4 -4
- package/lib/components/ItemContent/sections/MessagesSection.js +17 -17
- package/lib/components/ItemContent/sections/ResponsesSection.js +7 -7
- package/lib/components/Mcp/McpPrompt.js +1 -1
- package/lib/components/Mcp/McpTool.js +1 -1
- package/lib/components/Mcp/utils.d.ts +1 -1
- package/lib/components/Mcp/utils.js +1 -1
- package/lib/components/Schema/SchemaDescription.js +1 -1
- package/lib/components/Schema/styled.js +5 -5
- package/lib/components/Schema/views/ArrayRenderer.js +1 -1
- package/lib/components/Schema/views/CollapsibleNestedFields.js +1 -1
- package/lib/components/Schema/views/DiscriminatorPropertyRow.js +1 -1
- package/lib/components/Schema/views/Examples.js +1 -1
- package/lib/components/Schema/views/SwitcherRenderer.js +1 -1
- package/lib/components/Search/index.d.ts +15 -0
- package/lib/components/Search/index.js +1 -0
- package/lib/components/Security/SecurityFlowDetail.js +1 -1
- package/lib/components/Security/styled.js +7 -7
- package/lib/components/StickySidebar/FloatingButton.d.ts +1 -0
- package/lib/components/StickySidebar/FloatingButton.js +32 -0
- package/lib/components/StickySidebar/RedoclyAttributionLogo.d.ts +5 -0
- package/lib/components/StickySidebar/RedoclyAttributionLogo.js +1 -0
- package/lib/components/StickySidebar/StickySidebar.js +33 -9
- package/lib/components/common/Breadcrumbs.js +2 -2
- package/lib/components/common/DeepLinkAnchor.js +9 -9
- package/lib/components/common/PanelItem.js +5 -5
- package/lib/components/common/ResponseCodeTabs.js +1 -1
- package/lib/components/common/Tag.js +1 -1
- package/lib/components/common/VendorExtensions.js +1 -1
- package/lib/components/common/ViewNested.js +2 -2
- package/lib/components/graphql/GraphQLFieldView.js +1 -1
- package/lib/components/graphql/RequiresScopesModal.js +3 -3
- package/lib/components/graphql/sections/GraphQLArgsSection.js +1 -1
- package/lib/components/markdoc/SchemaDefinition.js +1 -1
- package/lib/components/markdoc/html/html-jsx-attribute-mapping.d.ts +5 -0
- package/lib/components/markdoc/html/html-jsx-attribute-mapping.js +1 -0
- package/lib/components/markdoc/html/process-html-tokens.d.ts +1 -0
- package/lib/components/markdoc/html/process-html-tokens.js +1 -0
- package/lib/components/markdoc/markdocParser.d.ts +2 -0
- package/lib/components/markdoc/markdocParser.js +1 -1
- package/lib/components/panels/ExampleItem/CallbackPayloadItem.js +2 -2
- package/lib/components/panels/ExampleItem/CodeSampleItem.js +1 -1
- package/lib/components/panels/ExampleItem/PayloadExampleItem.js +2 -2
- package/lib/components/panels/ExampleItem/ResponseExampleItem.js +1 -1
- package/lib/components/panels/ExampleItem/SecuritySchemeSelector.d.ts +9 -0
- package/lib/components/panels/ExampleItem/SecuritySchemeSelector.js +1 -0
- package/lib/components/panels/ExampleItem/ServerDropdown.js +2 -2
- package/lib/components/panels/ExampleItem/generate-request-sample.d.ts +28 -0
- package/lib/components/panels/ExampleItem/generate-request-sample.js +1 -0
- package/lib/components/panels/ExampleItem/selectors.d.ts +5 -2
- package/lib/components/panels/ExampleItem/selectors.js +1 -1
- package/lib/components/panels/ExampleItem/styled.d.ts +2 -49
- package/lib/components/panels/ExampleItem/styled.js +11 -5
- package/lib/components/panels/ExampleItem/useActiveServer.d.ts +17 -0
- package/lib/components/panels/ExampleItem/useActiveServer.js +1 -0
- package/lib/components/panels/ExampleItem/useCodeSampleLanguages.d.ts +23 -0
- package/lib/components/panels/ExampleItem/useCodeSampleLanguages.js +1 -0
- package/lib/components/panels/ExampleItem/useReplayRequestState.d.ts +18 -0
- package/lib/components/panels/ExampleItem/useReplayRequestState.js +1 -0
- package/lib/components/panels/ExampleItem/useTryItFooter.d.ts +3 -0
- package/lib/components/panels/ExampleItem/useTryItFooter.js +7 -0
- package/lib/components/panels/GroupPanelItem.js +1 -1
- package/lib/components/panels/LanguageItem/LanguagePanelItem.js +5 -1
- package/lib/components/panels/LanguageItem/styled.js +17 -14
- package/lib/components/panels/McpExamplePanelItem.js +2 -2
- package/lib/components/panels/McpPanelItem.js +2 -2
- package/lib/components/panels/ServerItem/ServerItem.js +1 -1
- package/lib/components/panels/asyncapi/BrokerItem/BrokerModal.js +1 -1
- package/lib/components/panels/asyncapi/BrokerItem/BrokerPanelItem.js +1 -1
- package/lib/components/panels/asyncapi/MessageBindingItem/MessageBindingItem.js +1 -1
- package/lib/components/panels/shared-panel-styles.js +1 -1
- package/lib/components/panels/styled.js +1 -1
- package/lib/components/pluggable/RedocExample.js +5 -2
- package/lib/components/pluggable/RedocResponseSamples.js +1 -1
- package/lib/hoc/withLicenseGate.d.ts +5 -0
- package/lib/hoc/withLicenseGate.js +1 -0
- package/lib/hoc/withRouter.js +1 -1
- package/lib/hoc/withStoreProvider.d.ts +2 -0
- package/lib/hoc/withStoreProvider.js +1 -1
- package/lib/hooks/deepLinkHash.d.ts +5 -0
- package/lib/hooks/deepLinkHash.js +1 -0
- package/lib/hooks/useApiDocsScroll.js +1 -1
- package/lib/hooks/useCopySpecSlice.d.ts +9 -0
- package/lib/hooks/useCopySpecSlice.js +1 -0
- package/lib/hooks/useDeepLinkSection.js +1 -1
- package/lib/hooks/useInitialTelemetry.d.ts +2 -0
- package/lib/hooks/useInitialTelemetry.js +1 -0
- package/lib/hooks/useLicense.js +1 -1
- package/lib/hooks/useLicenseGate.d.ts +6 -0
- package/lib/hooks/useLicenseGate.js +1 -0
- package/lib/hooks/useRouterHashBridge.d.ts +4 -0
- package/lib/hooks/useRouterHashBridge.js +1 -1
- package/lib/hooks/useScrollSpyUrlSync.js +1 -1
- package/lib/hooks/useUrlHash.d.ts +3 -2
- package/lib/hooks/useUrlHash.js +1 -1
- package/lib/hooks/useUrlHashReassert.d.ts +2 -0
- package/lib/hooks/useUrlHashReassert.js +1 -0
- package/lib/index.d.ts +5 -1
- package/lib/index.js +1 -1
- package/lib/jotai/app.d.ts +6 -0
- package/lib/jotai/app.js +1 -1
- package/lib/jotai/examples.js +1 -1
- package/lib/jotai/itemStore.d.ts +1 -0
- package/lib/jotai/itemStore.js +1 -1
- package/lib/jotai/store.d.ts +4 -0
- package/lib/jotai/store.js +1 -1
- package/lib/options/editionOverrides.d.ts +3 -0
- package/lib/options/editionOverrides.js +1 -0
- package/lib/options/helpers.d.ts +1 -2
- package/lib/options/helpers.js +1 -1
- package/lib/options/normalizeOptions.d.ts +1 -1
- package/lib/options/normalizeOptions.js +1 -1
- package/lib/options/standaloneLayoutVars.d.ts +3 -0
- package/lib/options/standaloneLayoutVars.js +1 -0
- package/lib/otel-semantic-conventions.d.ts +10 -0
- package/lib/otel-semantic-conventions.js +1 -0
- package/lib/pages/ItemPage.js +4 -2
- package/lib/pages/NotFoundPage.js +40 -1
- package/lib/services/code-samples/apply-env-variables.d.ts +8 -0
- package/lib/services/code-samples/apply-env-variables.js +1 -0
- package/lib/services/code-samples/builder.d.ts +8 -5
- package/lib/services/code-samples/builder.js +1 -1
- package/lib/services/code-samples/discriminator.d.ts +16 -10
- package/lib/services/code-samples/discriminator.js +1 -1
- package/lib/services/code-samples/generators/java8.js +2 -2
- package/lib/services/code-samples/language-availability.d.ts +4 -0
- package/lib/services/code-samples/language-availability.js +1 -0
- package/lib/services/code-samples/{replay/normalize-servers.d.ts → normalize-servers.d.ts} +1 -1
- package/lib/services/code-samples/normalize-servers.js +1 -0
- package/lib/services/code-samples/replay/embedded-replay-converter.d.ts +1 -1
- package/lib/services/code-samples/replay/embedded-replay-converter.js +1 -1
- package/lib/services/code-samples/replay/find-operation.d.ts +17 -0
- package/lib/services/code-samples/replay/find-operation.js +1 -0
- package/lib/services/code-samples/replay/from-openapi-document.d.ts +12 -2
- package/lib/services/code-samples/replay/from-openapi-document.js +1 -1
- package/lib/services/code-samples/replay/index.d.ts +1 -1
- package/lib/services/code-samples/replay/index.js +1 -1
- package/lib/services/code-samples/replay/overlay-converter.js +1 -1
- package/lib/services/code-samples/replay/parameter-descriptions.d.ts +7 -0
- package/lib/services/code-samples/replay/parameter-descriptions.js +1 -0
- package/lib/services/code-samples/replay/replay-adapter.d.ts +1 -1
- package/lib/services/code-samples/replay/replay-adapter.js +1 -1
- package/lib/services/code-samples/replay/replay-handler.js +1 -1
- package/lib/services/code-samples/replay/replay-predefined-env.d.ts +1 -2
- package/lib/services/code-samples/replay/replay-predefined-env.js +1 -1
- package/lib/services/code-samples/replay/schema-declared-value.d.ts +2 -0
- package/lib/services/code-samples/replay/schema-declared-value.js +1 -0
- package/lib/services/code-samples/resolvers.js +1 -1
- package/lib/services/code-samples/server-env.d.ts +3 -0
- package/lib/services/code-samples/server-env.js +1 -0
- package/lib/services/code-samples/source.d.ts +3 -3
- package/lib/services/license/check.d.ts +1 -0
- package/lib/services/license/check.js +1 -1
- package/lib/services/operation-samples/index.js +1 -1
- package/lib/services/schema/dialects/jsonSchema.d.ts +5 -1
- package/lib/services/schema/dialects/jsonSchema.js +1 -1
- package/lib/services/schema/propertyTreeBuilder.js +1 -1
- package/lib/services/search/index.d.ts +2 -0
- package/lib/services/search/index.js +1 -0
- package/lib/services/search/indexer/context.d.ts +8 -0
- package/lib/services/search/indexer/context.js +0 -0
- package/lib/services/search/indexer/deep-links.d.ts +12 -0
- package/lib/services/search/indexer/deep-links.js +1 -0
- package/lib/services/search/indexer/extractors/asyncapi.d.ts +8 -0
- package/lib/services/search/indexer/extractors/asyncapi.js +1 -0
- package/lib/services/search/indexer/extractors/body.d.ts +2 -0
- package/lib/services/search/indexer/extractors/body.js +1 -0
- package/lib/services/search/indexer/extractors/callbacks.d.ts +4 -0
- package/lib/services/search/indexer/extractors/callbacks.js +1 -0
- package/lib/services/search/indexer/extractors/context.d.ts +25 -0
- package/lib/services/search/indexer/extractors/context.js +1 -0
- package/lib/services/search/indexer/extractors/examples.d.ts +3 -0
- package/lib/services/search/indexer/extractors/examples.js +1 -0
- package/lib/services/search/indexer/extractors/graphql.d.ts +2 -0
- package/lib/services/search/indexer/extractors/graphql.js +1 -0
- package/lib/services/search/indexer/extractors/heading-sections.d.ts +3 -0
- package/lib/services/search/indexer/extractors/heading-sections.js +1 -0
- package/lib/services/search/indexer/extractors/index.d.ts +12 -0
- package/lib/services/search/indexer/extractors/index.js +1 -0
- package/lib/services/search/indexer/extractors/mcp.d.ts +9 -0
- package/lib/services/search/indexer/extractors/mcp.js +1 -0
- package/lib/services/search/indexer/extractors/named-rows.d.ts +9 -0
- package/lib/services/search/indexer/extractors/named-rows.js +1 -0
- package/lib/services/search/indexer/extractors/panels.d.ts +10 -0
- package/lib/services/search/indexer/extractors/panels.js +1 -0
- package/lib/services/search/indexer/extractors/parameters.d.ts +2 -0
- package/lib/services/search/indexer/extractors/parameters.js +1 -0
- package/lib/services/search/indexer/extractors/responses.d.ts +2 -0
- package/lib/services/search/indexer/extractors/responses.js +1 -0
- package/lib/services/search/indexer/extractors/schema-page.d.ts +9 -0
- package/lib/services/search/indexer/extractors/schema-page.js +1 -0
- package/lib/services/search/indexer/extractors/security.d.ts +4 -0
- package/lib/services/search/indexer/extractors/security.js +1 -0
- package/lib/services/search/indexer/index.d.ts +14 -0
- package/lib/services/search/indexer/index.js +1 -0
- package/lib/services/search/indexer/param.d.ts +7 -0
- package/lib/services/search/indexer/param.js +1 -0
- package/lib/services/search/indexer/places.d.ts +40 -0
- package/lib/services/search/indexer/places.js +1 -0
- package/lib/services/search/indexer/schema-walker.d.ts +29 -0
- package/lib/services/search/indexer/schema-walker.js +1 -0
- package/lib/services/search/indexer/text.d.ts +2 -0
- package/lib/services/search/indexer/text.js +1 -0
- package/lib/services/search/types.d.ts +28 -0
- package/lib/services/search/types.js +0 -0
- package/lib/services/spec-slice/assistant-links.d.ts +9 -0
- package/lib/services/spec-slice/assistant-links.js +5 -0
- package/lib/services/spec-slice/asyncapi-slice.d.ts +5 -0
- package/lib/services/spec-slice/asyncapi-slice.js +1 -0
- package/lib/services/spec-slice/clone-strip.d.ts +1 -0
- package/lib/services/spec-slice/clone-strip.js +1 -0
- package/lib/services/spec-slice/component-closure.d.ts +6 -0
- package/lib/services/spec-slice/component-closure.js +1 -0
- package/lib/services/spec-slice/graphql-slice.d.ts +2 -0
- package/lib/services/spec-slice/graphql-slice.js +1 -0
- package/lib/services/spec-slice/index.d.ts +6 -0
- package/lib/services/spec-slice/index.js +1 -0
- package/lib/services/spec-slice/openapi-slice.d.ts +6 -0
- package/lib/services/spec-slice/openapi-slice.js +1 -0
- package/lib/services/spec-slice/resolve-scope.d.ts +4 -0
- package/lib/services/spec-slice/resolve-scope.js +1 -0
- package/lib/services/spec-slice/types.d.ts +37 -0
- package/lib/services/spec-slice/types.js +0 -0
- package/lib/standalone.d.ts +19 -0
- package/lib/standalone.js +2 -0
- package/lib/standaloneThemeConfig.d.ts +3 -0
- package/lib/standaloneThemeConfig.js +1 -0
- package/lib/telemetry/RedocTelemetry.d.ts +3 -0
- package/lib/telemetry/RedocTelemetry.js +1 -1
- package/lib/telemetry/defaults.d.ts +2 -0
- package/lib/telemetry/defaults.js +1 -0
- package/lib/types/asyncapi.d.ts +2 -1
- package/lib/types/code-samples-config.d.ts +68 -0
- package/lib/types/code-samples-config.js +0 -0
- package/lib/types/common.d.ts +1 -2
- package/lib/types/content.d.ts +6 -4
- package/lib/types/edition-config.d.ts +4 -0
- package/lib/types/edition-config.js +0 -0
- package/lib/types/events.d.ts +2 -2
- package/lib/types/openapi.d.ts +3 -3
- package/lib/types/options.d.ts +24 -88
- package/lib/types/store.d.ts +3 -2
- package/lib/url-compat.d.ts +22 -0
- package/lib/url-compat.js +1 -0
- package/lib/utils/compose.d.ts +1 -0
- package/lib/utils/deep-link.d.ts +2 -1
- package/lib/utils/deep-link.js +1 -1
- package/lib/utils/extract-extensions.js +1 -1
- package/lib/utils/graphql-parse.d.ts +1 -0
- package/lib/utils/graphql-parse.js +1 -0
- package/lib/utils/scroll-anchoring.d.ts +2 -1
- package/lib/utils/x-logo.d.ts +13 -0
- package/lib/utils/x-logo.js +1 -0
- package/lib/yaml-compat.d.ts +7 -0
- package/lib/yaml-compat.js +1 -0
- package/package.json +36 -15
- package/lib/services/code-samples/replay/normalize-servers.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as n,jsxs as d}from"react/jsx-runtime";import{useState as $,useEffect as z,memo as J,useMemo as f,useRef as K}from"react";import{useAtomValue as H}from"jotai";import{Admonition as X}from"@redocly/theme/components/Admonition/Admonition";import{FieldWrapper as Y,FieldNameBox as Z,FieldName as ee,ExpandableFieldBody as ne,PanelAnnotation as F,InlineCode as re}from"./styled.js";import{ViewNested as G}from"./ViewNested.js";import{LazyMount as V}from"../common/LazyMount.js";import{GraphQLTypeViewByName as oe}from"./GraphQLTypeView.js";import{GraphQLReturnTypeDetails as te}from"./GraphQLReturnTypeDetails.js";import{GraphQLArgumentsSection as se}from"./GraphQLArgumentsSection.js";import{RequiresScopesButton as ae}from"./RequiresScopesButton.js";import{renderDescription as ie}from"./renderDescription.js";import{Markdown as pe}from"../common/Markdown.js";import{DeepLinkAnchor as me}from"../common/DeepLinkAnchor.js";import{buildGraphqlSuffix as ce,getDeepLinkId as de,isGraphqlDeepLinkAncestor as le}from"../../utils/deep-link.js";import{useDeepLinkUrl as ue}from"../../hooks/useDeepLinkSection.js";import{useSpecTranslate as he}from"../../hooks/useTranslate.js";import{globalOptionsAtom as ge}from"../../jotai/store.js";import{graphqlTypeLookupAtom as fe}from"../../jotai/graphql.js";import{mergeRequiresScopes as xe}from"../../utils/graphql-scopes.js";import{countNamedTypeFields as Le,isGraphqlFieldExpandable as ye}from"../../utils/graphql-type-expansion.js";import{isWithinExpansionLevel as Te}from"../../utils/expansion.js";import{useMarkdownAdapter as Ee}from"../../
|
|
1
|
+
import{jsx as n,jsxs as d}from"react/jsx-runtime";import{useState as $,useEffect as z,memo as J,useMemo as f,useRef as K}from"react";import{useAtomValue as H}from"jotai";import{Admonition as X}from"@redocly/theme/components/Admonition/Admonition";import{FieldWrapper as Y,FieldNameBox as Z,FieldName as ee,ExpandableFieldBody as ne,PanelAnnotation as F,InlineCode as re}from"./styled.js";import{ViewNested as G}from"./ViewNested.js";import{LazyMount as V}from"../common/LazyMount.js";import{GraphQLTypeViewByName as oe}from"./GraphQLTypeView.js";import{GraphQLReturnTypeDetails as te}from"./GraphQLReturnTypeDetails.js";import{GraphQLArgumentsSection as se}from"./GraphQLArgumentsSection.js";import{RequiresScopesButton as ae}from"./RequiresScopesButton.js";import{renderDescription as ie}from"./renderDescription.js";import{Markdown as pe}from"../common/Markdown.js";import{DeepLinkAnchor as me}from"../common/DeepLinkAnchor.js";import{buildGraphqlSuffix as ce,getDeepLinkId as de,isGraphqlDeepLinkAncestor as le}from"../../utils/deep-link.js";import{useDeepLinkUrl as ue}from"../../hooks/useDeepLinkSection.js";import{useSpecTranslate as he}from"../../hooks/useTranslate.js";import{globalOptionsAtom as ge}from"../../jotai/store.js";import{graphqlTypeLookupAtom as fe}from"../../jotai/graphql.js";import{mergeRequiresScopes as xe}from"../../utils/graphql-scopes.js";import{countNamedTypeFields as Le,isGraphqlFieldExpandable as ye}from"../../utils/graphql-type-expansion.js";import{isWithinExpansionLevel as Te}from"../../utils/expansion.js";import{useMarkdownAdapter as Ee}from"../../contexts/markdownAdapter.js";import{useUrlHash as qe}from"../../hooks/useUrlHash.js";const B=72;function ke({field:e,contrast:x,isArgument:t,fieldExpandLevel:s,parentTypeName:r,parentRequiresScopes:l,expanded:a}){const{fieldExpandLevel:M,schemasExpansionLevel:b}=H(ge),L=H(fe),y=Ee(),o=he(),T=s+1,i=r?`${r}.${e.name}`:e.name,u=qe(),E=K(u);u&&(E.current=u);const p=le(E.current,i),m=Te(s,b,0),[I,q]=$(void 0),[Q,k]=$(void 0);z(()=>{q(void 0),k(void 0)},[a]);const h=I??a??(p||m),w=Q??a??(p||m),A=!!e.deprecationReason,D=f(()=>e.deprecationReason?y.parse(e.deprecationReason)??null:null,[e.deprecationReason,y]),U=!!t&&!!e.required,c=e.args??[],v=c.length>0,_=Le(e.type.name,L)*B,j=c.length*B,R=ye(e,s,M,L),C=!R||!h,N=t?r?`arg-${r}-${e.name}`:`arg-${e.name}`:r?`${r}-${e.name}`:e.name,O=c.map(S=>({name:S.name,required:!!S.required})),P=f(()=>l!==void 0?xe(e.requiresScopes,l):null,[e.requiresScopes,l]),W=f(()=>ce({t:t?"argument":"field",path:i,arg:t?e.name:void 0}),[i,t,e.name]),g=ue(W);return n("div",{id:de(g)??N,children:d(Y,{$showBorder:C,children:[d(Z,{children:[g&&n(me,{to:g,label:`link to ${e.name}`,variant:"field"}),n(ee,{$isDeprecated:A,children:e.name}),n(te,{typeRef:e.type,inline:!v,deprecated:A,required:U})]}),e.defaultValue!==void 0&&d(F,{children:[o("defaultValue","Default"),":"," ",n(re,{children:JSON.stringify(e.defaultValue)})]}),e.description&&n(F,{children:ie(e.description)}),D&&n(X,{type:"warning",name:o("deprecationReason","Deprecation reason"),children:n(pe,{source:D})}),R&&d(ne,{$contrast:!x,children:[v&&n(G,{expanded:w,level:s,expandText:o("arguments.show","Show arguments"),collapseText:o("arguments.hide","Hide arguments"),collapsedArgs:O,onClick:()=>k(!w),children:n(V,{forceMount:p||m,estimatedHeight:j,children:n(se,{args:c,fieldExpandLevel:T,parentName:i,expanded:a})})}),n(G,{expanded:h,level:s,expandText:o("returnTypes.show","Show return type"),collapseText:o("returnTypes.hide","Hide return type"),onClick:()=>q(!h),children:n(V,{forceMount:p||m,estimatedHeight:_,children:n(oe,{typeName:e.type.name,contrast:!x,fieldExpandLevel:T,expanded:a,parentPath:i})})})]}),n(ae,{directive:P})]})})}const ze=J(ke);export{ze as GraphQLFieldView};
|
|
@@ -3,14 +3,14 @@ import{jsx as r,jsxs as a}from"react/jsx-runtime";import{useRef as b,memo as u,F
|
|
|
3
3
|
position: fixed;
|
|
4
4
|
width: 100vw;
|
|
5
5
|
height: 100vh;
|
|
6
|
-
z-index: var(--z-index-popover,
|
|
6
|
+
z-index: var(--z-index-popover, 200);
|
|
7
7
|
left: 0;
|
|
8
8
|
top: 0;
|
|
9
9
|
pointer-events: auto;
|
|
10
10
|
`,B=o.div`
|
|
11
11
|
background: var(--bg-color);
|
|
12
12
|
box-shadow: var(--bg-raised-shadow, 0 8px 32px rgba(0, 0, 0, 0.15));
|
|
13
|
-
border-radius: var(--border-radius-lg
|
|
13
|
+
border-radius: var(--border-radius-lg);
|
|
14
14
|
padding: var(--spacing-lg);
|
|
15
15
|
display: flex;
|
|
16
16
|
flex-direction: column;
|
|
@@ -58,7 +58,7 @@ import{jsx as r,jsxs as a}from"react/jsx-runtime";import{useRef as b,memo as u,F
|
|
|
58
58
|
line-height: var(--line-height-base);
|
|
59
59
|
font-family: var(--font-family-monospaced);
|
|
60
60
|
padding: 0 var(--spacing-xxs, 4px);
|
|
61
|
-
border-radius: var(--border-radius);
|
|
61
|
+
border-radius: var(--tag-border-radius);
|
|
62
62
|
background: var(--tag-bg-color, var(--border-color-secondary));
|
|
63
63
|
color: var(--text-color-secondary);
|
|
64
64
|
`,T=o.p`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Fragment as p,jsx as r,jsxs as u}from"react/jsx-runtime";import{useMemo as v}from"react";import{useAtomValue as s}from"jotai";import{styled as y}from"styled-components";import{Admonition as b}from"@redocly/theme/components/Admonition/Admonition";import{graphqlDirectiveDataAtom as F,graphqlOperationAtom as N,graphqlOperationKey as D,graphqlTypeLookupAtom as E}from"../../../jotai/graphql.js";import{GraphQLFieldView as x}from"../GraphQLFieldView.js";import{renderDescription as R}from"../renderDescription.js";import{Markdown as T}from"../../common/Markdown.js";import{FieldNameBox as S,FieldName as k,PanelAnnotation as q,InlineCode as L}from"../styled.js";import{useSpecTranslate as O}from"../../../hooks/useTranslate.js";import{useCollapsibleEntryKey as w,useExpandableSection as V,useRegisterCollapsibleEntry as j}from"../../../hooks/useExpandableSection.js";import{isGraphqlFieldExpandable as C}from"../../../utils/graphql-type-expansion.js";import{globalOptionsAtom as G}from"../../../jotai/store.js";import{useMarkdownAdapter as M}from"../../../
|
|
1
|
+
import{Fragment as p,jsx as r,jsxs as u}from"react/jsx-runtime";import{useMemo as v}from"react";import{useAtomValue as s}from"jotai";import{styled as y}from"styled-components";import{Admonition as b}from"@redocly/theme/components/Admonition/Admonition";import{graphqlDirectiveDataAtom as F,graphqlOperationAtom as N,graphqlOperationKey as D,graphqlTypeLookupAtom as E}from"../../../jotai/graphql.js";import{GraphQLFieldView as x}from"../GraphQLFieldView.js";import{renderDescription as R}from"../renderDescription.js";import{Markdown as T}from"../../common/Markdown.js";import{FieldNameBox as S,FieldName as k,PanelAnnotation as q,InlineCode as L}from"../styled.js";import{useSpecTranslate as O}from"../../../hooks/useTranslate.js";import{useCollapsibleEntryKey as w,useExpandableSection as V,useRegisterCollapsibleEntry as j}from"../../../hooks/useExpandableSection.js";import{isGraphqlFieldExpandable as C}from"../../../utils/graphql-type-expansion.js";import{globalOptionsAtom as G}from"../../../jotai/store.js";import{useMarkdownAdapter as M}from"../../../contexts/markdownAdapter.js";function ae({node:e}){const{fieldExpandLevel:o}=s(G),d=s(E),a=s(N(D(e.graphqlOperationType,e.graphqlFieldName))),i=!!e.graphqlTypeName&&e.graphqlOperationType==null&&e.graphqlFieldName==null,f=s(F(i?e.graphqlTypeName??"":"")),t=a?.args??null,l=f?.args??null,h=(t?.length?t:l)??null,g=!!h&&h.some(n=>C(n,0,o,d)),m=V(e.variant,g);if(j(w(g?e.variant:void 0),!!m),t&&t.length>0)return r(p,{children:t.map(n=>r(x,{field:n,isArgument:!0,fieldExpandLevel:0,parentTypeName:e.graphqlFieldName,parentRequiresScopes:a?a.requiresScopes??null:void 0,expanded:m},n.name))});if(l&&l.length>0){const n=`@${f?.name}`;return r(p,{children:l.map(A=>r(x,{field:A,isArgument:!0,fieldExpandLevel:0,parentTypeName:n,expanded:m},A.name))})}const c=e.graphqlSchema;return!Array.isArray(c)||c.length===0?r(p,{}):r(p,{children:c.map(n=>r(_,{arg:n},n.name))})}function _({arg:e}){const o=O(),d=!!e.deprecationReason,a=M(),i=v(()=>e.deprecationReason?a.parse(e.deprecationReason)??null:null,[e.deprecationReason,a]);return u(z,{children:[u(S,{children:[r(k,{$isDeprecated:d,children:e.name}),r(B,{children:e.type})]}),e.defaultValue!==void 0&&u(q,{children:[o("defaultValue","Default"),":"," ",r(L,{children:JSON.stringify(e.defaultValue)})]}),e.description!=null&&e.description!==""&&r(q,{children:R(e.description)}),i&&r(b,{type:"warning",name:o("deprecationReason","Deprecation reason"),children:r(T,{source:i})})]})}const z=y.div`
|
|
2
2
|
padding: var(--spacing-base) 0;
|
|
3
3
|
border-bottom: 1px solid var(--border-color-primary);
|
|
4
4
|
`,B=y.span`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Fragment as y,jsx as
|
|
1
|
+
import{Fragment as y,jsx as r,jsxs as v}from"react/jsx-runtime";import{memo as g,useMemo as s}from"react";import{styled as k}from"styled-components";import{useAtomValue as D}from"jotai";import{panelKind as P}from"../../types/common.js";import{refPointerToStoreId as d}from"../../utils/refPointer.js";import{DeepLinkSectionContext as j}from"../../hooks/useDeepLinkSection.js";import{schemaEntryAtom as E}from"../../jotai/schema.js";import{useResolvedExamples as I}from"../ItemContent/hooks.js";import{SchemaView as C}from"../Schema/SchemaView.js";import{Markdown as O}from"../common/Markdown.js";import{ContentWrapper as w}from"../common/ContentWrapper.js";import{SchemaCatalogLink as L}from"../SchemaCatalogLink.js";import{detectJsonSchemaType as T,isPrimitiveLikeSchema as _}from"../../services/schema/propertyBuilder.js";function b(e){const m=e.type||T(e);return!_(e,m)}function A({schemaRef:e,exampleRef:m,showReadOnly:f=!0,showWriteOnly:u=!1}){const t=d(e),a=d(m),n=D(E(t??"")),c=s(()=>a?[a]:void 0,[a]),h=I(t,c,"response","application/json"),S=s(()=>({pathOnly:!0}),[]),p=s(()=>{const o=n?.data,i=o?.description;if(!(!i||typeof i=="string"&&!i.trim()||!o||!b(o)))return i},[n?.data]),l=h.length>0,x=s(()=>!t||!n||!l?void 0:[{children:[{kind:P.RESPONSE,schemaId:t,exampleIds:c,hideHeaderTitle:!0,examples:[]}]}],[t,n,l,c]);return!t||!n?r(y,{}):r("div",{"data-testid":"schema-definition",children:v(w,{panels:x,children:[e&&r(L,{schemaRef:e}),p?r(F,{children:r(O,{source:p})}):null,r(j.Provider,{value:S,children:r(C,{expandByDefault:!0,level:1,schemaId:t,skipReadOnly:!f,skipWriteOnly:!u})})]})})}const X=g(A),F=k.div`
|
|
2
2
|
margin-bottom: var(--spacing-vertical);
|
|
3
3
|
p:last-child {
|
|
4
4
|
margin-bottom: 0;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a={for:"htmlFor",class:"className","accept-charset":"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",allowtransparency:"allowTransparency",autocomplete:"autoComplete",autoplay:"autoPlay",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",classid:"classID",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",crossorigin:"crossOrigin",datetime:"dateTime",enctype:"encType",formaction:"formAction",formenctype:"formEncType",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang","http-equiv":"httpEquiv",inputmode:"inputMode",keyparams:"keyParams",keytype:"keyType",marginheight:"marginHeight",marginwidth:"marginWidth",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",usemap:"useMap",autocapitalize:"autoCapitalize",autocorrect:"autoCorrect",autosave:"autoSave",itemprop:"itemProp",itemscope:"itemScope",itemtype:"itemType",itemid:"itemID",itemref:"itemRef","accent-height":"accentHeight","alignment-baseline":"alignmentBaseline","arabic-form":"arabicForm","baseline-shift":"baselineShift","cap-height":"capHeight","clip-path":"clipPath","clip-rule":"clipRule","color-interpolation":"colorInterpolation","color-interpolation-filters":"colorInterpolationFilters","color-profile":"colorProfile","color-rendering":"colorRendering","dominant-baseline":"dominantBaseline","enable-background":"enableBackground","fill-opacity":"fillOpacity","fill-rule":"fillRule","flood-color":"floodColor","flood-opacity":"floodOpacity","font-family":"fontFamily","font-size":"fontSize","font-size-adjust":"fontSizeAdjust","font-stretch":"fontStretch","font-style":"fontStyle","font-variant":"fontVariant","font-weight":"fontWeight","glyph-name":"glyphName","glyph-orientation-horizontal":"glyphOrientationHorizontal","glyph-orientation-vertical":"glyphOrientationVertical","horiz-adv-x":"horizAdvX","horiz-origin-x":"horizOriginX","image-rendering":"imageRendering","letter-spacing":"letterSpacing","lighting-color":"lightingColor","marker-end":"markerEnd","marker-mid":"markerMid","marker-start":"markerStart","overline-position":"overlinePosition","overline-thickness":"overlineThickness","paint-order":"paintOrder","panose-1":"panose1","pointer-events":"pointerEvents","rendering-intent":"renderingIntent","shape-rendering":"shapeRendering","stop-color":"stopColor","stop-opacity":"stopOpacity","strikethrough-position":"strikethroughPosition","strikethrough-thickness":"strikethroughThickness","stroke-dasharray":"strokeDasharray","stroke-dashoffset":"strokeDashoffset","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","stroke-miterlimit":"strokeMiterlimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-anchor":"textAnchor","text-decoration":"textDecoration","text-rendering":"textRendering","underline-position":"underlinePosition","underline-thickness":"underlineThickness","unicode-bidi":"unicodeBidi","unicode-range":"unicodeRange","units-per-em":"unitsPerEm","v-alphabetic":"vAlphabetic","v-hanging":"vHanging","v-ideographic":"vIdeographic","v-mathematical":"vMathematical","vector-effect":"vectorEffect","vert-adv-y":"vertAdvY","vert-origin-x":"vertOriginX","vert-origin-y":"vertOriginY","word-spacing":"wordSpacing","writing-mode":"writingMode","x-height":"xHeight","xlink:actuate":"xlinkActuate","xlink:arcrole":"xlinkArcrole","xlink:href":"xlinkHref","xlink:role":"xlinkRole","xlink:show":"xlinkShow","xlink:title":"xlinkTitle","xlink:type":"xlinkType","xml:base":"xmlBase","xmlns:xlink":"xmlnsXlink","xml:lang":"xmlLang","xml:space":"xmlSpace"};function s(r,t){const e={};for(const[i,n]of Object.entries(r))switch(i){case"value":t==="input"||t==="textarea"?e.defaultValue=n:e.value=n;break;case"checked":t==="input"?e.defaultChecked=!0:e.checked=n;break;case"style":e.style=c(n);break;default:e[a[i]||i]=n}return e}function l(r){return r.match(/^--/)?r:r.replace(/-[a-z]/g,t=>t[1].toUpperCase())}function c(r){return r.split(";").filter(t=>t.trim().length).reduce((t,e)=>{const i=e.indexOf(":"),n=i===-1?e:e.slice(0,i),o=i===-1?"":e.slice(i+1);return t[l(n.trim())]=o.trim(),t},{})}export{s as getJsxConvertedAttributes};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function processHtmlTokens(tokens: any): any[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Parser as p}from"htmlparser2";import{getJsxConvertedAttributes as i}from"./html-jsx-attribute-mapping.js";function l(r){const e=[],n=[];let o=null;const s=new p({onopentag(t,a){n.push({name:t,token:o}),e.push({type:"tag_open",nesting:1,meta:{tag:"html",attributes:[{type:"attribute",name:"name",value:t},{type:"attribute",name:"attrs",value:i(a,t)}]}})},ontext(t){t?.trim().length>0&&e.push({type:"text",content:t})},onclosetag(){n.pop(),e.push({type:"tag_close",nesting:-1,meta:{tag:"html"}})}});for(const t of r){if(t.type.startsWith("html")){o=t,s.write(t.content);continue}t.type==="inline"&&(t.children=l(t.children)),e.push(t)}for(const t of n)e.push({type:"error",meta:{error:{message:`HTML tag <${t.name}> is not closed, opened at`,location:t?.token?.map?{start:{line:t.token.map[0]},end:{line:t.token.map[1]}}:void 0}}}),e.push({type:"tag_close",nesting:-1,meta:{tag:"html"}});return e}export{l as processHtmlTokens};
|
|
@@ -2,5 +2,7 @@ import type { MarkdownParser } from '../../adapters/utils/parseMarkdown.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* The default Markdoc-based {@link MarkdownParser}, supplied by the standalone build. api-docs core
|
|
4
4
|
* stays free of a markdown engine; callers of `buildItems` pass this in (or their own parser).
|
|
5
|
+
* Raw HTML in the source is tokenized and converted into `{% html %}` tag nodes, so it renders as
|
|
6
|
+
* elements and never leaks markup into extracted text.
|
|
5
7
|
*/
|
|
6
8
|
export declare const markdocParser: MarkdownParser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r from"@markdoc/markdoc";import{sanitizeMarkdownSource as m}from"../../adapters/utils/markdoc.js";import{simplifyAstStructure as s}from"../../adapters/utils/simplifyAstStructure.js";import{processHtmlTokens as i}from"./html/process-html-tokens.js";const e=new r.Tokenizer({html:!0,allowIndentation:!0,allowComments:!0});e.parser.block.ruler.getRules("reference").length=0;const p=(o,t)=>{const n=e.tokenize(m(o,t));return s(r.parse(i(n)))};export{p as markdocParser};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{Fragment as N,jsx as e,jsxs as y}from"react/jsx-runtime";import{useState as u,useContext as L,useEffect as _,useMemo as g,useCallback as B}from"react";import{styled as F}from"styled-components";import{useAtomValue as K}from"jotai";import{CodeBlockPanel as V,StyledCodeBlock as H}from"../styled.js";import{useResolvedExamples as Y,useExampleEntries as $}from"../../ItemContent/hooks.js";import{useBodySamplingSchemaId as O,useMediaTypeContent as R}from"./hooks.js";import{
|
|
1
|
+
import{Fragment as N,jsx as e,jsxs as y}from"react/jsx-runtime";import{useState as u,useContext as L,useEffect as _,useMemo as g,useCallback as B}from"react";import{styled as F}from"styled-components";import{useAtomValue as K}from"jotai";import{CodeBlockPanel as V,StyledCodeBlock as H}from"../styled.js";import{useResolvedExamples as Y,useExampleEntries as $}from"../../ItemContent/hooks.js";import{useBodySamplingSchemaId as O,useMediaTypeContent as R}from"./hooks.js";import{ExampleDescription as U,ExampleSelector as W,MediaTypeSelector as q,PayloadDisplay as z}from"./selectors.js";import{StyledPanelHeader as G}from"./styled.js";import{ServerDropdown as J}from"./ServerDropdown.js";import{LanguageDropdown as Q}from"../LanguageItem/LanguageDropdown.js";import{itemStoreFieldAtom as X}from"../../../jotai/itemStore.js";import{ItemIdContext as Z}from"../../../hooks/useDeepLinkSection.js";import{getSyntaxHighlightLang as ee}from"../../../utils/languages.js";import{useSpecTranslate as ae}from"../../../hooks/useTranslate.js";import{useCopyCodeTelemetry as te}from"../../../hooks/useCopyCodeTelemetry.js";const m="payload",oe=F.div`
|
|
2
2
|
min-width: 0;
|
|
3
3
|
overflow: hidden;
|
|
4
4
|
flex: 1 1 auto;
|
|
5
|
-
`;function
|
|
5
|
+
`;function Ce({node:a}){const x=ae(),h=L(Z)??"",S=K(X({itemId:h,key:"selectedCallback"})),p=a.callbackName,t=a.definitionSamples,C=p!=null&&S===p,{mediaTypes:b,activeMediaType:l,effectiveSchemaId:v,effectiveExampleIds:s,onMediaTypeChange:k}=R(a),E=O(v,l),d=Y(E,s,"response",l),I=$(s),[i,f]=u(0),[n,T]=u(m);_(()=>f(0),[s,l]);const D=d[i]??d[0],P=I[i]?.description,M=g(()=>{const o=[{key:m,lang:"json",title:"Payload"}];if(t)for(const c of t){const A=`x-${c.lang}`;o.push({key:A,lang:c.lang,title:c.label||c.lang})}return o},[t]),r=g(()=>{if(!(n===m||!t))return t.find(o=>`x-${o.lang}`===n)},[n,t]),j=te("response"),w=B(o=>T(o),[]);return C?e(V,{className:"panel-callback-samples",header:()=>y(G,{isExpandable:!1,children:[e(oe,{children:e(J,{servers:a.servers??[],method:(a.httpVerb??"post").toUpperCase(),path:a.path??"Callback"})}),e(Q,{activeTab:n,samples:M,onChange:w})]}),isExpandable:!1,children:r?e(H,{lang:ee(r.lang),source:r.source,header:{className:"code-block-header",controls:{copy:{onClick:j(r.lang)}}}}):y(N,{children:[e(q,{mediaTypes:b,value:l,onChange:k,label:x("contentType","Payload media type")}),e(W,{exampleIds:s,selectedIdx:i,onSelect:f}),e(U,{description:P}),e(z,{payload:D,emptyMessage:"// No callback payload",mediaType:l})]})}):null}export{Ce as CallbackPayloadItem};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Fragment as
|
|
1
|
+
import{Fragment as le,jsx as s,jsxs as j}from"react/jsx-runtime";import{useState as ce,useMemo as V,useCallback as A,useContext as de}from"react";import{useEffect as ue}from"react";import{useAtomValue as I,useSetAtom as ye}from"jotai";import{applyEnvVariables as fe}from"../../../services/code-samples/apply-env-variables.js";import{findExampleIdByKey as he}from"../../../services/code-samples/example-key.js";import{itemStoreAtom as Se,itemStoreFieldAtom as ge}from"../../../jotai/itemStore.js";import{ItemIdContext as xe}from"../../../hooks/useDeepLinkSection.js";import{useSpecTranslate as ve}from"../../../hooks/useTranslate.js";import{CodeBlockPanel as Ce,StyledCodeBlock as Ee}from"../styled.js";import{useResolvedExamples as be}from"../../ItemContent/hooks.js";import{getLangKey as G,getSyntaxHighlightLang as Ie}from"../../../utils/languages.js";import{selectedSecuritySchemeIdxAtom as qe}from"../../../jotai/app.js";import{exampleStoreAtom as Le}from"../../../jotai/examples.js";import{useActiveVariantSchemaId as ke,useSchemaVariantSelection as Te,useMediaTypeContent as Ve}from"./hooks.js";import{useExampleKeyFromHash as Ae}from"../../ItemContent/hooks.js";import{isSequentialMediaType as Be}from"../../../utils/media-type.js";import{isRecord as O}from"../../../adapters/helpers.js";import{updateObjectProperties as Ke}from"../../../adapters/openapi/configure/merge-utils.js";import{useCopyCodeTelemetry as $e}from"../../../hooks/useCopyCodeTelemetry.js";import{VariantPicker as Ne,ExampleDescription as Pe,ExampleSelector as Ue,MediaTypeSelector as Me,PayloadDisplay as Re}from"./selectors.js";import{LanguageDropdown as Fe}from"../LanguageItem/LanguageDropdown.js";import{StyledPanelHeader as we}from"./styled.js";import{ServerDropdown as De}from"./ServerDropdown.js";import{globalOptionsAtom as je}from"../../../jotai/store.js";import{createLanguageSwitchEvent as Ge}from"../../../events/languageSwitch.js";import{createCodeSampleCopyEvent as Oe}from"../../../events/codeSampleCopy.js";import{useActiveServer as We}from"./useActiveServer.js";import{useCodeSampleLanguages as _e,WEBHOOK_LANGUAGE_SAMPLES as W}from"./useCodeSampleLanguages.js";import{useReplayRequestState as He}from"./useReplayRequestState.js";import{useTryItFooter as ze}from"./useTryItFooter.js";import{generateRequestSample as Je}from"./generate-request-sample.js";import{SecuritySchemeSelector as Qe}from"./SecuritySchemeSelector.js";function At({node:a}){const l=I(je),d=ve(),e=a.source,c=I(Le),{mediaTypes:B,activeMediaType:n,effectiveSchemaId:x,effectiveExampleIds:o,onMediaTypeChange:_}=Ve(a),H=a.isWebhook?"response":"request",z=Te(o?.length?void 0:x),J=ke(x),Q=Be(n)?x:J,K=be(Q,o,H,n),q=de(xe)??"",v=ye(Se(q)),X=I(ge({itemId:q,key:"activeExampleKey"}));Ae(q,o);const r=He(e),Y=ze(a);ue(()=>{if(!r.exampleName)return;const t=c[r.exampleName]?.key??r.exampleName;v({activeExampleKey:t})},[r.exampleName,c,v]);const u=`${n}|${o?.join(",")}`,$=he(o,X||void 0,t=>c[t]),N=$?o?.indexOf($)??-1:-1,[C,P]=ce({contentKey:u,idx:0}),f=N>=0?N:C.contentKey===u?C.idx:0;(C.idx!==f||C.contentKey!==u)&&P({contentKey:u,idx:f});const Z=A(t=>{P({contentKey:u,idx:t});const i=o?.[t],g=i?c[i]?.key:void 0;v({activeExampleKey:g??""})},[u,o,c,v]),h=K[f]??K[0],ee=(o?.length??0)>0||!!x,{languages:S,filteredDefinitionSamples:U,activeLanguage:m,setLanguage:M}=_e(a,ee),p=We(a),R=I(qe),F=e.securityGroups,E=o?.[f],b=E?c[E]?.key??E:void 0,y=V(()=>{const t=e.requestValues?.serverBody;return(p.specUrl&&t?.[p.specUrl])??e.requestValues?.body},[p.specUrl,e.requestValues?.body,e.requestValues?.serverBody]),te=V(()=>r.displayBody!==void 0?r.displayBody:y!==void 0?h===void 0?y:O(h)&&O(y)?Ke(h,y):y:h,[r.displayBody,h,y]),oe=V(()=>{if(m==="payload")return"";const t=U?.find(g=>G(g)===m);if(t)return fe(t.source,e.requestValues,p.specUrl);let i;return i=Je({source:e,activeLanguage:m,serverUrl:p.url,activeServerSpecUrl:p.specUrl,mediaType:n,environment:p.environment[0]??{},harRequestValues:r.harRequestValues,securityGroups:F,securityIdx:R,replayBody:r.body,exampleName:b,options:l,resolvers:r.resolvers,translate:d}),i??`// ${d("unsupportedLanguage","Language is not supported.")}`},[m,U,e,p,d,n,r,F,R,b,l]),L=S.find(t=>t.key===m)??S[0],w=a.definitionSamples?.find(t=>G(t)===m),k=w?.lang??L?.lang,ae=k&&Ie(k),D=$e("request"),re=A(t=>()=>{D(t)(),l.events?.codeSamplesCopy?.(Oe({operation:{id:`${e.method}:${e.path}`,path:e.path,httpVerb:e.method,name:`${e.method.toUpperCase()} ${e.path}`},type:"request",lang:t??"",label:L?.title??"",activeMimeName:n??"",activeExampleName:b}))},[D,l.events,e.method,e.path,L,n,b]),se=A(t=>{M(t);const i=(a.isWebhook?W:S).find(g=>g.key===t);l.events?.codeSamplesLanguageSwitch&&i&&l.events.codeSamplesLanguageSwitch(Ge({operation:{id:`${e.method}:${e.path}`,path:e.path,httpVerb:e.method,name:`${e.method.toUpperCase()} ${e.path}`},sample:{lang:i.lang,label:i.title}}))},[M,S,a.isWebhook,l.events,e.method,e.path]),ne=e.method,ie=e.path,T=m==="payload",me=!T&&!!w,pe=(o?.length??0)>0;return s(le,{children:j(Ce,{className:"panel-request-samples",footer:Y,header:()=>j(we,{isExpandable:!1,children:[s(De,{servers:a.servers??[],method:ne,path:ie}),s(Fe,{activeTab:m,samples:a.isWebhook?W:S,onChange:se})]}),isExpandable:!1,children:[s(Qe,{requirements:e.securityGroups}),B.length>1&&s(Me,{mediaTypes:B,value:n,onChange:_,label:T?d("contentType","Payload media type"):d("contentType","Request media type")}),!me&&!pe&&s(Ne,{selection:z}),s(Ue,{exampleIds:o,selectedIdx:f,onSelect:Z}),s(Pe,{description:c[E??""]?.description}),T?s(Re,{payload:te,emptyMessage:`// ${d("noRequestPayload","No request payload")}`,mediaType:n,snippetType:"request"}):s(Ee,{lang:ae,source:oe,header:{className:"code-block-header",controls:{copy:{onClick:re(k)}}}})]})})}export{At as CodeSampleItem};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Fragment as g,jsx as e,jsxs as
|
|
1
|
+
import{Fragment as g,jsx as e,jsxs as h}from"react/jsx-runtime";import{styled as u}from"styled-components";import{useState as E,useEffect as S}from"react";import{PanelHeader as v}from"@redocly/theme/components/Panel/PanelHeader";import{CodeBlockPanel as I}from"../styled.js";import{useResolvedExamples as T,useExampleEntries as P}from"../../ItemContent/hooks.js";import{useBodySamplingSchemaId as M,useSchemaVariantSelection as b,useMediaTypeContent as j}from"./hooks.js";import{VariantPicker as C,ExampleDescription as D,ExampleSelector as _,MediaTypeSelector as k,PayloadDisplay as w}from"./selectors.js";import{useSpecTranslate as B}from"../../../hooks/useTranslate.js";function J({node:n}){const{mediaTypes:r,activeMediaType:s,effectiveSchemaId:l,effectiveExampleIds:a,onMediaTypeChange:m}=j(n),p=B(),d=b(a?.length?void 0:l),c=M(l,s),t=T(c,a,"response",s),f=P(a),[o,i]=E(0);S(()=>i(0),[a,s]);const x=t[o]??t[0],y=f[o]?.description;return t.length===0?e(g,{}):h(I,{className:"panel-response-samples",header:()=>e(F,{isExpandable:!1,children:n.panelLabel??p("payload","Payload")}),isExpandable:!1,children:[e(k,{mediaTypes:r,value:s,onChange:m,label:p("contentType","Payload media type")}),!a?.length&&e(C,{selection:d}),e(_,{exampleIds:a,selectedIdx:o,onSelect:i}),e(D,{description:y}),e(w,{payload:x,emptyMessage:"// No payload sample",mediaType:s})]})}const F=u(v)`
|
|
2
2
|
font-weight: var(--font-weight-regular);
|
|
3
3
|
padding: var(--spacing-sm) var(--spacing-md) var(--spacing-xs);
|
|
4
|
-
`;export{
|
|
4
|
+
`;export{J as PayloadExampleItem};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Fragment as
|
|
1
|
+
import{Fragment as Z,jsx as a,jsxs as $}from"react/jsx-runtime";import{useState as B,useMemo as D,useCallback as F,useContext as ee}from"react";import{useAtom as te,useAtomValue as R,useSetAtom as oe}from"jotai";import{PanelHeaderTitle as ne}from"@redocly/theme/components/Panel/PanelHeaderTitle";import{CodeBlockPanel as se}from"../styled.js";import{findExampleIdByKey as T}from"../../../services/code-samples/example-key.js";import{useResolvedExamples as ae,useExampleEntries as ie}from"../../ItemContent/hooks.js";import{useBodySamplingSchemaId as de,useSchemaVariantSelection as ce}from"./hooks.js";import{useExampleKeyFromHash as pe}from"../../ItemContent/hooks.js";import{activeMediaTypeAtom as me}from"../../../jotai/app.js";import{exampleStoreAtom as re}from"../../../jotai/examples.js";import{itemStoreAtom as le,itemStoreFieldAtom as O}from"../../../jotai/itemStore.js";import{ItemIdContext as ye}from"../../../hooks/useDeepLinkSection.js";import{VariantPicker as fe,ExampleDescription as xe,ExampleSelector as ue,MediaTypeSelector as he,PayloadDisplay as Te}from"./selectors.js";import{ResponsePanelHeader as Ie}from"./styled.js";import{ResponseCodesTabList as ve,ResponseCodeTab as Ce}from"../../common/ResponseCodeTabs.js";import{useSpecTranslate as Se}from"../../../hooks/useTranslate.js";function Ee(n,e,i){if(e===void 0||!n?.length)return;const d=s=>i[s];for(const s of n){for(const[I,v]of Object.entries(s.mediaTypeContent??{}))if(T(v.exampleIds,e,d))return{code:s.code,mediaType:I};if(T(s.exampleIds,e,d))return{code:s.code}}}function _e({node:n}){const{responseCodes:e}=n,i=Se(),d=ee(ye)??"",s=oe(le(d)),I=R(O({itemId:d,key:"activeResponseCode"})),v=R(O({itemId:d,key:"activeExampleKey"})),p=R(re),m=D(()=>Ee(e,n.exampleKey,p),[e,n.exampleKey,p]),f=I||m?.code||e?.[0]?.code,c=e?.find(t=>t.code===f)??e?.[0],r=D(()=>c?.mediaTypeContent?Object.keys(c.mediaTypeContent):c?.mediaTypes??[],[c]),[C,N]=te(me),[V,_]=B(!1),S=m&&m.code===f&&m.mediaType&&r.includes(m.mediaType)?m.mediaType:void 0,u=!V&&S?S:C&&r.includes(C)?C:S??r[0],K=c?.mediaTypeContent?.[u??""],M=!!e?.length,E=K?.schemaId??c?.schemaId??(M?void 0:n.schemaId),o=K?.exampleIds??c?.exampleIds??(M?void 0:n.exampleIds);pe(d,o);const G=!e?.length||!!(E||o?.length),g=r.length>0?u??r[0]:"application/json",L=ce(o?.length?void 0:E),U=de(E,g),k=ae(U,o,"response",g),q=ie(o),h=`${f}|${u}|${o?.join(",")}`,b=T(o,v||void 0,t=>p[t]),j=b?o?.indexOf(b)??-1:-1,A=T(o,n.exampleKey,t=>p[t]),H=A?o?.indexOf(A)??-1:-1,[w,P]=B({}),l=w[h],x=j>=0?j:l?.picked?l.idx:H>=0?H:l?.idx??0;if(!l||l.idx!==x){const t=l?.picked??!1;P(y=>({...y,[h]:{idx:x,picked:t}}))}const z=F(t=>{P(Y=>({...Y,[h]:{idx:t,picked:!0}}));const y=o?.[t],X=y?p[y]?.key:void 0;s({activeExampleKey:X??""})},[h,o,p,s]),J=k[x]??k[0],Q=q[x]?.description,W=F(()=>{if(!(n.hideHeaderTitle&&!e?.length))return $(Ie,{children:[!n.hideHeaderTitle&&a(ne,{children:i("response","Response")}),e&&e.length>0&&a(ve,{children:e.map(t=>{const y=t.code===(f??e[0]?.code);return a(Ce,{type:"button",$active:y,$code:t.code,onClick:()=>s({activeResponseCode:t.code}),children:t.code},t.code)})})]})},[e,f,n.hideHeaderTitle,s,i]);return k.length===0&&!e?.length?a(Z,{}):$(se,{className:"panel-response-samples",header:W,isExpandable:!1,children:[a(he,{mediaTypes:r,value:u,onChange:t=>{_(!0),N(t)},label:i("contentType","Response media type")}),!o?.length&&a(fe,{selection:L}),a(ue,{exampleIds:o,selectedIdx:x,onSelect:z}),a(xe,{description:Q}),a(Te,{payload:J,emptyMessage:G?`// ${i("noResponseExample","No response sample")}`:i("noResponseContent","No content"),mediaType:g})]})}export{_e as ResponseExampleItem};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Picks which OpenAPI `security` AND-group the generated code sample is built
|
|
4
|
+
* against. Renders nothing unless the operation declares more than one group —
|
|
5
|
+
* with a single group there is nothing to choose.
|
|
6
|
+
*/
|
|
7
|
+
export declare function SecuritySchemeSelector({ requirements, }: {
|
|
8
|
+
requirements?: Array<Record<string, string[]>>;
|
|
9
|
+
}): ReactElement | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{useAtom as m}from"jotai";import{selectedSecuritySchemeIdxAtom as n}from"../../../jotai/app.js";import{PanelDropdownSelect as l}from"./selectors.js";import{MediaTypeRow as a}from"./styled.js";function h({requirements:e}){const[c,i]=m(n);return!e||e.length<=1?null:r(a,{children:r(l,{value:String(c),onChange:t=>i(Number(t)),"aria-label":"Security scheme",options:e.map((t,o)=>({key:String(o),value:String(o),label:Object.keys(t).join(" + ")||`Scheme ${o+1}`}))})})}export{h as SecuritySchemeSelector};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as i,jsxs as p}from"react/jsx-runtime";import{useCallback as f,useEffect as P,useMemo as g}from"react";import{useAtom as $,useAtomValue as h}from"jotai";import{styled as S}from"styled-components";import{getOperationColor as D}from"@redocly/theme/core/openapi";import{breakpoints as M}from"@redocly/theme/core/openapi";import{Dropdown as V}from"@redocly/theme/components/Dropdown/Dropdown";import{DropdownMenu as W}from"@redocly/theme/components/Dropdown/DropdownMenu";import{DropdownMenuItem as B}from"@redocly/theme/components/Dropdown/DropdownMenuItem";import{CopyButton as I}from"@redocly/theme/components/Buttons/CopyButton";import{environmentAtom as L,savedEnvironmentNameAtom as O}from"../../../jotai/app.js";import{resolveServerUrl as w}from"../../../services/code-samples/
|
|
1
|
+
import{jsx as i,jsxs as p}from"react/jsx-runtime";import{useCallback as f,useEffect as P,useMemo as g}from"react";import{useAtom as $,useAtomValue as h}from"jotai";import{styled as S}from"styled-components";import{getOperationColor as D}from"@redocly/theme/core/openapi";import{breakpoints as M}from"@redocly/theme/core/openapi";import{Dropdown as V}from"@redocly/theme/components/Dropdown/Dropdown";import{DropdownMenu as W}from"@redocly/theme/components/Dropdown/DropdownMenu";import{DropdownMenuItem as B}from"@redocly/theme/components/Dropdown/DropdownMenuItem";import{CopyButton as I}from"@redocly/theme/components/Buttons/CopyButton";import{environmentAtom as L,savedEnvironmentNameAtom as O}from"../../../jotai/app.js";import{resolveServerUrl as w}from"../../../services/code-samples/normalize-servers.js";import{replaceServerVariables as q}from"../../../services/code-samples/server-variables.js";import{getServerEnvName as T}from"../../../utils/environments.js";import{globalOptionsAtom as _}from"../../../jotai/store.js";import{useTelemetry as H}from"../../../hooks/useTelemetry.js";import{createTargetServerSwitchEvent as R}from"../../../events/serverSwitch.js";import{PanelItem as z}from"../../common/PanelItem.js";import{HttpVerb as U,PathLabel as C,PathWrapper as F,StaticPathWrapper as G}from"./styled.js";function J(o="",n="",t="/"){return o.endsWith(t)&&o!==t&&(o=o.slice(0,-t.length)),n.startsWith(t)&&(n=n.slice(t.length)),!o||!n||o===t?o+n:o+t+n}const K=S(B)`
|
|
2
2
|
padding: calc(var(--spacing-unit) * 1.5) var(--spacing-xs) calc(var(--spacing-unit) * 1.5)
|
|
3
3
|
var(--spacing-lg);
|
|
4
4
|
@media screen and (max-width: ${M.large}) {
|
|
@@ -8,4 +8,4 @@ import{jsx as i,jsxs as p}from"react/jsx-runtime";import{useCallback as f,useEff
|
|
|
8
8
|
:hover {
|
|
9
9
|
background-color: var(--dropdown-menu-item-bg-color-hover);
|
|
10
10
|
}
|
|
11
|
-
`;function gr({servers:o,method:n,path:t}){const[y,s]=$(L),{events:v}=h(_),d=H(),c=y[0],a=h(O),x=!["get","post","put","delete","patch","head","options","trace","query","x-query"].includes(n.toLowerCase()),u=D({httpVerb:n.toLowerCase(),isAdditionalOperation:x}),l=g(()=>o.map(r=>{const e=w(r.url);return{...r,resolvedUrl:q(r),envUrl:e,envName:String(T({...r,url:e}))}}),[o]),N=g(()=>{const r=l.find(e=>e.url===c.server||e.resolvedUrl===c.server||e.envUrl===c.server);return r?r.resolvedUrl:l[0]?.resolvedUrl??""},[c.server,l]);P(()=>{if(!c.server&&l.length>0){const e=(a?l.find(m=>m.envName===a):void 0)??l[0];s({...!a&&{environment:e.envName},environments:{[e.envName]:{server:e.envUrl}}})}},[]);const k=f(r=>{r.stopPropagation()},[]),A=f(r=>()=>{if(o.length<=1)return;const e=r.envName;d.sendSwitchServersClickedMessage([{id:"switchServersButton",object:"button",uri:"urn:redocly:redoc:ui:button:switchServersButton",server:e}]),s({environment:e,environments:{[e]:{server:r.envUrl}}}),v?.targetServerSwitch?.(R({operation:{id:`${n}:${t}`,path:t,httpVerb:n,name:`${n.toUpperCase()} ${t}`},serverUrl:r.url}))},[o.length,s,d,v,n,t]),E=t.includes("{$");if(o.length
|
|
11
|
+
`;function gr({servers:o,method:n,path:t}){const[y,s]=$(L),{events:v}=h(_),d=H(),c=y[0],a=h(O),x=!["get","post","put","delete","patch","head","options","trace","query","x-query"].includes(n.toLowerCase()),u=D({httpVerb:n.toLowerCase(),isAdditionalOperation:x}),l=g(()=>o.map(r=>{const e=w(r.url);return{...r,resolvedUrl:q(r),envUrl:e,envName:String(T({...r,url:e}))}}),[o]),N=g(()=>{const r=l.find(e=>e.url===c.server||e.resolvedUrl===c.server||e.envUrl===c.server);return r?r.resolvedUrl:l[0]?.resolvedUrl??""},[c.server,l]);P(()=>{if(!c.server&&l.length>0){const e=(a?l.find(m=>m.envName===a):void 0)??l[0];s({...!a&&{environment:e.envName},environments:{[e.envName]:{server:e.envUrl}}})}},[]);const k=f(r=>{r.stopPropagation()},[]),A=f(r=>()=>{if(o.length<=1)return;const e=r.envName;d.sendSwitchServersClickedMessage([{id:"switchServersButton",object:"button",uri:"urn:redocly:redoc:ui:button:switchServersButton",server:e}]),s({environment:e,environments:{[e]:{server:r.envUrl}}}),v?.targetServerSwitch?.(R({operation:{id:`${n}:${t}`,path:t,httpVerb:n,name:`${n.toUpperCase()} ${t}`},serverUrl:r.url}))},[o.length,s,d,v,n,t]),E=t.includes("{$");if(o.length===0||E)return p(G,{children:[i(U,{color:u,children:n}),i(C,{children:t})]});const b=p(F,{variant:"ghost",children:[i(U,{color:u,children:n}),i(C,{children:t})]}),j=l.map(r=>{const e=w(r.resolvedUrl),m=J(e,t);return i(K,{onAction:A(r),children:i(z,{header:r.name||r.description||e,title:m,actions:[i(Q,{data:m,toasterPlacement:"left",onCopyClick:k},m)],active:r.resolvedUrl===N,withCheckmark:!0})},r.url)});return i(V,{trigger:b,withArrow:!0,alignment:"start",children:i(W,{children:j})})}export{gr as ServerDropdown};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CodeSampleSource } from '../../../services/code-samples/index.js';
|
|
2
|
+
import type { HARBuildResolvers, HARBuildSelections } from '../../../services/code-samples/index.js';
|
|
3
|
+
import type { ApiDocsOptions } from '../../../types/options.js';
|
|
4
|
+
type GenerateRequestSampleParams = {
|
|
5
|
+
source: CodeSampleSource;
|
|
6
|
+
activeLanguage: string;
|
|
7
|
+
serverUrl: string | undefined;
|
|
8
|
+
/** Raw (templated) spec URL of the active server — keys the env-variable overrides. */
|
|
9
|
+
activeServerSpecUrl: string | undefined;
|
|
10
|
+
mediaType: string | undefined;
|
|
11
|
+
environment: HARBuildSelections['environment'];
|
|
12
|
+
harRequestValues: HARBuildSelections['requestValues'];
|
|
13
|
+
securityGroups: CodeSampleSource['securityGroups'];
|
|
14
|
+
securityIdx: number;
|
|
15
|
+
replayBody: unknown;
|
|
16
|
+
exampleName: string | undefined;
|
|
17
|
+
options: ApiDocsOptions;
|
|
18
|
+
resolvers: HARBuildResolvers;
|
|
19
|
+
translate: (key: string, fallback: string) => string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Builds the generated (non-`x-codeSamples`) request sample for the active
|
|
23
|
+
* language. Excluded from the community edition — only spec-provided samples
|
|
24
|
+
* and the payload view render there. Returns `undefined` for languages
|
|
25
|
+
* without a generator.
|
|
26
|
+
*/
|
|
27
|
+
export declare function generateRequestSample({ source, activeLanguage, serverUrl, activeServerSpecUrl, mediaType, environment, harRequestValues, securityGroups, securityIdx, replayBody, exampleName, options, resolvers, translate, }: GenerateRequestSampleParams): string | undefined;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getGeneratorKey as C}from"../../../utils/languages.js";import{buildCodeSampleHAR as O,tryGenerateCodeSample as y}from"../../../services/code-samples/index.js";import{applyEnvVariables as b}from"../../../services/code-samples/apply-env-variables.js";function P({source:l,activeLanguage:n,serverUrl:o,activeServerSpecUrl:d,mediaType:m,environment:p,harRequestValues:i,securityGroups:e,securityIdx:s,replayBody:u,exampleName:S,options:a,resolvers:c,translate:f}){const h=e?.length?Object.keys(e.length>1?e[s]??e[0]:e[0]):void 0,g=O(l,{serverUrl:o,mediaType:m,environment:p,requestValues:i,activeSecuritySchemeIds:h,replayBody:u,exampleName:S},{skipOptionalParameters:a.codeSamples?.skipOptionalParameters,withOAuth2Call:a.codeSamples?.withOAuth2Call,generatedPayloadSamplesMaxDepth:a.generatedSamplesMaxDepth},c),r=a.codeSamples?.languages?.find(k=>k.key===n),t=y(r?C(r):n,g,r?.options);if(t.kind!=="unsupported-language")return t.kind==="error"?(console.error(t.error),`// ${f("failedToGenerateCodeSample","Failed to generate code sample.")}`):b(t.source,l.requestValues,d)}export{P as generateRequestSample};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import type { ExampleEntry } from '../../../types/store.js';
|
|
2
3
|
import type { SchemaVariantSelection } from './hooks.js';
|
|
3
4
|
export declare function VariantPicker({ selection, label, }: {
|
|
4
5
|
selection?: SchemaVariantSelection;
|
|
@@ -27,10 +28,12 @@ export declare function PanelDropdownSelect({ value, onChange, options, 'aria-la
|
|
|
27
28
|
options: PanelSelectOption[];
|
|
28
29
|
'aria-label'?: string;
|
|
29
30
|
}): ReactElement;
|
|
30
|
-
export declare function
|
|
31
|
+
export declare function ExampleDescription({ description, }: {
|
|
32
|
+
description?: ExampleEntry['description'];
|
|
33
|
+
}): ReactElement | null;
|
|
34
|
+
export declare function PayloadDisplay({ payload, emptyMessage, mediaType, snippetType, }: {
|
|
31
35
|
payload: unknown;
|
|
32
36
|
emptyMessage?: string;
|
|
33
37
|
mediaType?: string;
|
|
34
38
|
snippetType?: 'request' | 'response';
|
|
35
|
-
description?: string;
|
|
36
39
|
}): ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{useAtomValue as d}from"jotai";import{exampleStoreAtom as k}from"../../../jotai/examples.js";import{globalOptionsAtom as v,specTypeAtom as w}from"../../../jotai/store.js";import{useTelemetry as D}from"../../../hooks/useTelemetry.js";import{useCopyCodeTelemetry as E}from"../../../hooks/useCopyCodeTelemetry.js";import{MAX_DISPLAYED_STRING_LENGTH as f}from"../../../constants/rendering.js";import{isJsonLikeMediaType as C,isSequentialMediaType as M,langFromMime as h}from"../../../utils/media-type.js";import{StyledCodeBlock as m,StyledJsonViewer as b}from"../styled.js";import{Markdown as N}from"../../common/Markdown.js";import{DisabledMimeSelect as L,ExampleDescriptionWrap as y,SelectDropdownCheckmarkIcon as A,MediaTypeRow as p,SelectDropdownLabel as x,SelectDropdownMenu as j,SelectDropdownMenuItem as B,SelectDropdownTriggerButton as J,StyledSelectDropdown as O}from"./styled.js";import{DefaultMappingOptionLabel as P}from"../../Schema/views/DefaultMappingOptionLabel.js";import{jsonToXml as V}from"../../../utils/xml.js";import{formUrlEncodeValue as _}from"../../../utils/form-urlencoded.js";import{apiSpecType as H}from"../../../types/common.js";function le({selection:e,label:a}){if(!e)return null;const{options:r,activeIdx:c,onSelect:o,kind:n,optionMeta:s}=e,u=a??(n==="discriminator"?"Discriminator":"Variant");return t(p,{children:t(g,{value:String(c),onChange:l=>o(Number(l)),"aria-label":u,options:r.map((l,i)=>{const S=s[i]?.isDefaultMapping?t(P,{label:l.label}):void 0;return{key:l.key,value:String(i),label:l.label,labelNode:S}})})})}function oe({exampleIds:e,selectedIdx:a,onSelect:r}){const c=d(k),o=d(w),n=D();if(!e||e.length<2)return null;const s=u=>{const l=Number(u),i=e[l];o===H.ASYNCAPI?n.sendSwitchExampleClickedMessage([{id:"switchExampleButton",object:"button",uri:"urn:redocly:redoc:ui:button:switchExampleButton",example:i,numberOfExamples:e.length}]):n.sendExamplesSwitcherClickedMessage([{object:"button",id:"examplesSwitcherButton",uri:"urn:redocly:redoc:ui:button:examplesSwitcherButton",exampleNumber:l,totalExamples:e.length}]),r(l)};return t(p,{children:t(g,{value:String(a),onChange:s,"aria-label":"Example",options:e.map((u,l)=>({key:u,value:String(l),label:c[u]?.summary??`Example ${l+1}`}))})})}function ae({mediaTypes:e,value:a,onChange:r,label:c}){return e.length===0?null:e.length===1?t(p,{children:t(L,{value:e[0],"aria-label":c,disabled:!0,children:t("option",{value:e[0],children:e[0]})})}):t(p,{children:t(g,{value:a,onChange:r,"aria-label":c,options:e.map(o=>({value:o,label:o}))})})}function g({value:e,onChange:a,options:r,"aria-label":c}){const o=r.find(n=>n.value===e)??r[0];return t(O,{withArrow:!0,alignment:"start",portalled:!0,trigger:t(J,{variant:"outlined",size:"small",type:"button","aria-label":c,children:t(x,{children:o?.labelNode??o?.label})}),children:t(j,{children:r.map(n=>t(B,{active:n.value===o?.value,onAction:()=>a(n.value),suffix:n.value===o?.value?t(A,{}):void 0,children:t(x,{children:n.labelNode??n.label})},n.key??n.value))})})}function ie({description:e}){return e?t(y,{children:t(N,{source:e})}):null}function ce({payload:e,emptyMessage:a="// No sample",mediaType:r,snippetType:c="response"}){const{jsonSamplesExpandLevel:o}=d(v),n=E(c);if(e==null)return t(m,{lang:"text",source:a,header:{controls:!1}});const s=M(r),u=C(r);if(u&&!s){const i=typeof e=="string"?F(e)??e:e;return t(b,{data:i,expandLevel:o,maxStringLength:f})}if(typeof e=="object"&&e!==null){if(r?.includes("xml")){const i=V(e);return t(m,{lang:"xml",source:i,highlightedHtml:G(i),header:{className:"code-block-header",controls:{copy:{onClick:n("xml")}}}})}if(q(r))return t(m,{lang:"text",source:_(e),header:{className:"code-block-header",controls:{copy:{onClick:n("text")}}}});if(s||r&&!u){const i=JSON.stringify(e,null,2);return t(m,{lang:h(r),source:i,header:{className:"code-block-header",controls:{copy:{onClick:n(h(r))}}}})}return t(b,{data:e,expandLevel:o,maxStringLength:f})}const l=r?h(r):"text";return t(m,{lang:l,source:String(e),maxDisplayLength:f,header:{className:"code-block-header",controls:{copy:{onClick:n(l)}}}})}function q(e){return!!e&&/x-www-form-urlencoded/i.test(e)}function F(e){const a=e.trim();if(!(!a||!/^[{[]/.test(a)))try{return JSON.parse(a)}catch{return}}function G(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}export{ie as ExampleDescription,oe as ExampleSelector,ae as MediaTypeSelector,g as PanelDropdownSelect,ce as PayloadDisplay,le as VariantPicker};
|
|
@@ -21,55 +21,7 @@ export declare const PathLabel: import("styled-components/dist/types").IStyledCo
|
|
|
21
21
|
export declare const ResponsePanelHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
22
22
|
export declare const MediaTypeRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
23
23
|
export declare const DisabledMimeSelect: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never>>> & string;
|
|
24
|
-
export declare const StyledSelectDropdown: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<{
|
|
25
|
-
trigger: React.ReactNode;
|
|
26
|
-
triggerEvent?: 'click' | 'hover';
|
|
27
|
-
placement?: 'top' | 'bottom';
|
|
28
|
-
alignment?: 'start' | 'end';
|
|
29
|
-
active?: boolean;
|
|
30
|
-
closeOnClick?: boolean;
|
|
31
|
-
dataAttributes?: Record<string, string>;
|
|
32
|
-
className?: string;
|
|
33
|
-
withArrow?: boolean;
|
|
34
|
-
portalled?: boolean;
|
|
35
|
-
onClick?: (event: React.UIEvent) => void;
|
|
36
|
-
onClose?: () => void;
|
|
37
|
-
onOpen?: () => void;
|
|
38
|
-
} & {
|
|
39
|
-
children?: React.ReactNode | undefined;
|
|
40
|
-
} & import("react").RefAttributes<HTMLDivElement>, never> & Partial<Pick<{
|
|
41
|
-
trigger: React.ReactNode;
|
|
42
|
-
triggerEvent?: 'click' | 'hover';
|
|
43
|
-
placement?: 'top' | 'bottom';
|
|
44
|
-
alignment?: 'start' | 'end';
|
|
45
|
-
active?: boolean;
|
|
46
|
-
closeOnClick?: boolean;
|
|
47
|
-
dataAttributes?: Record<string, string>;
|
|
48
|
-
className?: string;
|
|
49
|
-
withArrow?: boolean;
|
|
50
|
-
portalled?: boolean;
|
|
51
|
-
onClick?: (event: React.UIEvent) => void;
|
|
52
|
-
onClose?: () => void;
|
|
53
|
-
onOpen?: () => void;
|
|
54
|
-
} & {
|
|
55
|
-
children?: React.ReactNode | undefined;
|
|
56
|
-
} & import("react").RefAttributes<HTMLDivElement>, never>>> & string & Omit<import("react").ForwardRefExoticComponent<{
|
|
57
|
-
trigger: React.ReactNode;
|
|
58
|
-
triggerEvent?: 'click' | 'hover';
|
|
59
|
-
placement?: 'top' | 'bottom';
|
|
60
|
-
alignment?: 'start' | 'end';
|
|
61
|
-
active?: boolean;
|
|
62
|
-
closeOnClick?: boolean;
|
|
63
|
-
dataAttributes?: Record<string, string>;
|
|
64
|
-
className?: string;
|
|
65
|
-
withArrow?: boolean;
|
|
66
|
-
portalled?: boolean;
|
|
67
|
-
onClick?: (event: React.UIEvent) => void;
|
|
68
|
-
onClose?: () => void;
|
|
69
|
-
onOpen?: () => void;
|
|
70
|
-
} & {
|
|
71
|
-
children?: React.ReactNode | undefined;
|
|
72
|
-
} & import("react").RefAttributes<HTMLDivElement>>, keyof import("react").Component<any, {}, any>>;
|
|
24
|
+
export declare const StyledSelectDropdown: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("@redocly/theme").DropdownProps & import("react").RefAttributes<HTMLDivElement>, never> & Partial<Pick<import("@redocly/theme").DropdownProps & import("react").RefAttributes<HTMLDivElement>, never>>> & string & Omit<import("react").ForwardRefExoticComponent<import("@redocly/theme").DropdownProps & import("react").RefAttributes<HTMLDivElement>>, keyof import("react").Component<any, {}, any>>;
|
|
73
25
|
export declare const SelectDropdownMenu: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("@redocly/theme").DropdownMenuProps & import("styled-components/dist/types").BaseObject, never> & Partial<Pick<import("@redocly/theme").DropdownMenuProps & import("styled-components/dist/types").BaseObject, never>>> & string & Omit<typeof DropdownMenu, keyof import("react").Component<any, {}, any>>;
|
|
74
26
|
export declare const SelectDropdownMenuItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Partial<Pick<import("@redocly/theme").LinkProps, "external" | "target" | "to">> & {
|
|
75
27
|
prefix?: import("react").ReactNode;
|
|
@@ -161,4 +113,5 @@ export declare const SelectDropdownTriggerButton: import("styled-components/dist
|
|
|
161
113
|
}, never>>> & string;
|
|
162
114
|
export declare const VariablesContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
163
115
|
export declare const VariablesTitle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
116
|
+
export declare const ExampleDescriptionWrap: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
164
117
|
export declare const TryItPanelFooter: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{styled as e}from"styled-components";import{PanelHeader as
|
|
1
|
+
import{styled as e}from"styled-components";import{PanelHeader as o}from"@redocly/theme/components/Panel/PanelHeader";import{Tag as a}from"@redocly/theme/components/Tag/Tag";import{Button as r}from"@redocly/theme/components/Button/Button";import{Dropdown as n}from"@redocly/theme/components/Dropdown/Dropdown";import{DropdownMenu as t}from"@redocly/theme/components/Dropdown/DropdownMenu";import{DropdownMenuItem as i}from"@redocly/theme/components/Dropdown/DropdownMenuItem";import{CheckmarkIcon as p}from"@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon";const v=e(o)`
|
|
2
2
|
flex-wrap: nowrap;
|
|
3
3
|
column-gap: var(--spacing-xs);
|
|
4
4
|
padding: var(--spacing-sm) var(--spacing-md) var(--spacing-xs);
|
|
@@ -10,7 +10,7 @@ import{styled as e}from"styled-components";import{PanelHeader as r}from"@redocly
|
|
|
10
10
|
> :last-child {
|
|
11
11
|
flex-shrink: 0;
|
|
12
12
|
}
|
|
13
|
-
`,
|
|
13
|
+
`,x=e(r)`
|
|
14
14
|
display: inline-flex;
|
|
15
15
|
overflow-x: hidden;
|
|
16
16
|
font-weight: var(--font-weight-regular);
|
|
@@ -75,6 +75,10 @@ import{styled as e}from"styled-components";import{PanelHeader as r}from"@redocly
|
|
|
75
75
|
max-width: 100%;
|
|
76
76
|
}
|
|
77
77
|
`,S=e(t)`
|
|
78
|
+
/* The portalled menu wrapper gets the trigger width as an inline min-width;
|
|
79
|
+
width: 0 keeps the menu content from growing the wrapper past it, so the
|
|
80
|
+
menu ends up exactly as wide as the trigger. */
|
|
81
|
+
width: 0;
|
|
78
82
|
min-width: 100%;
|
|
79
83
|
`,P=e(i)`
|
|
80
84
|
--dropdown-menu-item-justify-content: space-between;
|
|
@@ -90,12 +94,12 @@ import{styled as e}from"styled-components";import{PanelHeader as r}from"@redocly
|
|
|
90
94
|
overflow: hidden;
|
|
91
95
|
text-overflow: ellipsis;
|
|
92
96
|
white-space: nowrap;
|
|
93
|
-
`,
|
|
97
|
+
`,T=e(p)`
|
|
94
98
|
width: 16px;
|
|
95
99
|
height: 16px;
|
|
96
100
|
margin-left: auto;
|
|
97
101
|
flex-shrink: 0;
|
|
98
|
-
`,
|
|
102
|
+
`,I=e(r)`
|
|
99
103
|
width: 100%;
|
|
100
104
|
justify-content: space-between;
|
|
101
105
|
background-color: var(--bg-color);
|
|
@@ -120,9 +124,11 @@ import{styled as e}from"styled-components";import{PanelHeader as r}from"@redocly
|
|
|
120
124
|
font-weight: var(--font-weight-semibold);
|
|
121
125
|
color: var(--panel-samples-text-color, #cfd8dc);
|
|
122
126
|
`,C=e.div`
|
|
127
|
+
margin: 0 var(--spacing-md) var(--spacing-sm);
|
|
128
|
+
`,V=e.div`
|
|
123
129
|
display: flex;
|
|
124
130
|
justify-content: flex-end;
|
|
125
131
|
align-items: center;
|
|
126
132
|
border-top: var(--panel-border);
|
|
127
133
|
padding: var(--spacing-xs) var(--spacing-md) var(--spacing-sm) var(--spacing-md);
|
|
128
|
-
`;export{z as DisabledMimeSelect,b as HttpVerb,k as MediaTypeRow,u as PathLabel,
|
|
134
|
+
`;export{z as DisabledMimeSelect,C as ExampleDescriptionWrap,b as HttpVerb,k as MediaTypeRow,u as PathLabel,x as PathWrapper,y as ResponsePanelHeader,T as SelectDropdownCheckmarkIcon,M as SelectDropdownLabel,S as SelectDropdownMenu,P as SelectDropdownMenuItem,I as SelectDropdownTriggerButton,w as StaticPathWrapper,v as StyledPanelHeader,D as StyledSelectDropdown,V as TryItPanelFooter,j as VariablesContainer,H as VariablesTitle};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CodeSamplePanelItem } from '../../../types/content.js';
|
|
2
|
+
type ActiveServer = {
|
|
3
|
+
/** Environment atom value — the first entry holds the active env variables. */
|
|
4
|
+
environment: [Record<string, string>, string];
|
|
5
|
+
/** Variable-substituted URL of the active server. */
|
|
6
|
+
url: string | undefined;
|
|
7
|
+
/** Raw (templated) spec URL — keys `requestValues.serverBody`/`serverEnvVariables`. */
|
|
8
|
+
specUrl: string | undefined;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* The active server for the code-sample panel.
|
|
12
|
+
* `requestValues.serverBody`/`serverEnvVariables` are keyed by the raw
|
|
13
|
+
* (templated) spec server URL, while the environment may hold the
|
|
14
|
+
* variable-substituted URL — keep both forms of the active server.
|
|
15
|
+
*/
|
|
16
|
+
export declare function useActiveServer(node: CodeSamplePanelItem): ActiveServer;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useMemo as c}from"react";import{useAtomValue as l}from"jotai";import{environmentAtom as v}from"../../../jotai/app.js";import{replaceServerVariables as m,serverMatchesUrl as i}from"../../../services/code-samples/server-variables.js";function A(e){const t=e.source,r=l(v);return c(()=>{const s=r[0].server,u=s?e.servers?.find(n=>i(n,s)):void 0;if(s&&u)return{environment:r,url:s,specUrl:u.url};const o=e.servers?.[0];return o?{environment:r,url:m(o),specUrl:o.url}:{environment:r,url:t.servers[0]?.url,specUrl:t.servers[0]?.url}},[r,e.servers,t.servers])}export{A as useActiveServer};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CodeSamplePanelItem } from '../../../types/content.js';
|
|
2
|
+
export declare const PAYLOAD_LANGUAGE: import("../../../index.js").Language;
|
|
3
|
+
export declare const WEBHOOK_LANGUAGE_SAMPLES: {
|
|
4
|
+
key: string;
|
|
5
|
+
lang: string;
|
|
6
|
+
title: string;
|
|
7
|
+
}[];
|
|
8
|
+
type LanguageTab = {
|
|
9
|
+
key: string;
|
|
10
|
+
lang: string;
|
|
11
|
+
title: string;
|
|
12
|
+
};
|
|
13
|
+
type CodeSampleLanguages = {
|
|
14
|
+
/** Language tabs offered for this panel. */
|
|
15
|
+
languages: LanguageTab[];
|
|
16
|
+
/** `x-codeSamples` limited to the configured languages. */
|
|
17
|
+
filteredDefinitionSamples: CodeSamplePanelItem['definitionSamples'];
|
|
18
|
+
activeLanguage: string;
|
|
19
|
+
setLanguage: (key: string) => void;
|
|
20
|
+
};
|
|
21
|
+
/** Which language tabs the code-sample panel offers and which one is active. */
|
|
22
|
+
export declare function useCodeSampleLanguages(node: CodeSamplePanelItem, hasPayloadData: boolean): CodeSampleLanguages;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useMemo as c}from"react";import{useAtom as b}from"jotai";import{filterAvailableLanguages as E}from"../../../services/code-samples/language-availability.js";import{DEFAULT_LANGUAGES as A,getLangKey as y}from"../../../utils/languages.js";import{languageAtom as h}from"../../../jotai/app.js";const l=A.find(n=>n.key==="payload")??A[0],f={key:l.key,lang:l.lang,title:l.label},O=[f];function W(n,u){const[{activeLanguage:L,languages:o},k]=b(h),r=n.isWebhook?"payload":L||"curl",i=n.definitionSamples,s=c(()=>{if(!i?.length)return i;const a=new Set((o??[]).map(t=>t.key));return i.filter(t=>a.has(y(t)))},[i,o]),g=c(()=>{const a=(o??[]).map(({key:e,lang:S,title:G})=>({key:e,lang:S,title:G}));let t=u?a:a.filter(e=>e.key!=="payload");const m=new Set(s?.map(e=>y(e))??[]);n.isWebhook&&(t=t.filter(e=>e.key==="payload"||m.has(e.key)));const p=E(t,m);return p.length?p:[a.find(e=>e.key===f.key)??f]},[u,o,n.isWebhook,s]),d=g.some(a=>a.key===r)?r:g[0]?.key??r;return{languages:g,filteredDefinitionSamples:s,activeLanguage:d,setLanguage:k}}export{l as PAYLOAD_LANGUAGE,O as WEBHOOK_LANGUAGE_SAMPLES,W as useCodeSampleLanguages};
|