@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.
Files changed (302) hide show
  1. package/lib/RedocStandalone.d.ts +38 -0
  2. package/lib/RedocStandalone.js +1 -0
  3. package/lib/RedoclyApiDocs.js +1 -1
  4. package/lib/RedoclyApiDocsStandalone.d.ts +2 -0
  5. package/lib/RedoclyApiDocsStandalone.js +3 -3
  6. package/lib/adapters/asyncapi/build/navigation.js +1 -1
  7. package/lib/adapters/asyncapi/items/channel/content.js +1 -1
  8. package/lib/adapters/asyncapi/items/channel/item.js +1 -1
  9. package/lib/adapters/asyncapi/items/operation/item.js +1 -1
  10. package/lib/adapters/asyncapi/items/overview/content.js +1 -1
  11. package/lib/adapters/graphql/group/utils.js +1 -1
  12. package/lib/adapters/graphql/utils/createApiItem.js +1 -1
  13. package/lib/adapters/helpers.d.ts +3 -10
  14. package/lib/adapters/helpers.js +1 -1
  15. package/lib/adapters/openapi/build/context.js +1 -1
  16. package/lib/adapters/openapi/build-code-sample-source.d.ts +1 -1
  17. package/lib/adapters/openapi/build-code-sample-source.js +1 -1
  18. package/lib/adapters/openapi/configure/merge-utils.d.ts +1 -1
  19. package/lib/adapters/openapi/configure/resolve-request-values.js +1 -1
  20. package/lib/adapters/openapi/group/item.d.ts +0 -3
  21. package/lib/adapters/openapi/group/item.js +1 -1
  22. package/lib/adapters/openapi/index.js +1 -1
  23. package/lib/adapters/openapi/items/operation/content.js +1 -1
  24. package/lib/adapters/openapi/items/operation/item.d.ts +2 -2
  25. package/lib/adapters/openapi/items/operation/item.js +1 -1
  26. package/lib/adapters/openapi/items/overview/content.js +1 -1
  27. package/lib/adapters/openapi/items/schema/item.js +1 -1
  28. package/lib/adapters/openapi/store.js +1 -1
  29. package/lib/adapters/openapi/utils/merge-mock-server.d.ts +2 -2
  30. package/lib/adapters/rbac.d.ts +14 -0
  31. package/lib/adapters/rbac.js +1 -0
  32. package/lib/adapters/utils/descriptionToMarkdown.d.ts +6 -0
  33. package/lib/adapters/utils/descriptionToMarkdown.js +11 -0
  34. package/lib/adapters/utils/markdoc.d.ts +8 -1
  35. package/lib/adapters/utils/markdoc.js +1 -1
  36. package/lib/components/ErrorBoundary.d.ts +4 -2
  37. package/lib/components/ErrorBoundary.js +55 -1
  38. package/lib/components/Header/HeaderItem.js +5 -5
  39. package/lib/components/Header/HeaderPageActions.d.ts +4 -0
  40. package/lib/components/Header/HeaderPageActions.js +1 -0
  41. package/lib/components/Header/PageActions.d.ts +4 -0
  42. package/lib/components/Header/PageActions.js +11 -0
  43. package/lib/components/ItemContent/hooks.d.ts +12 -1
  44. package/lib/components/ItemContent/hooks.js +1 -1
  45. package/lib/components/ItemContent/sections/BodySection.js +3 -3
  46. package/lib/components/ItemContent/sections/CallbacksSection.js +4 -4
  47. package/lib/components/ItemContent/sections/MessagesSection.js +17 -17
  48. package/lib/components/ItemContent/sections/ResponsesSection.js +7 -7
  49. package/lib/components/Mcp/McpPrompt.js +1 -1
  50. package/lib/components/Mcp/McpTool.js +1 -1
  51. package/lib/components/Mcp/utils.d.ts +1 -1
  52. package/lib/components/Mcp/utils.js +1 -1
  53. package/lib/components/Schema/SchemaDescription.js +1 -1
  54. package/lib/components/Schema/styled.js +5 -5
  55. package/lib/components/Schema/views/ArrayRenderer.js +1 -1
  56. package/lib/components/Schema/views/CollapsibleNestedFields.js +1 -1
  57. package/lib/components/Schema/views/DiscriminatorPropertyRow.js +1 -1
  58. package/lib/components/Schema/views/Examples.js +1 -1
  59. package/lib/components/Schema/views/SwitcherRenderer.js +1 -1
  60. package/lib/components/Search/index.d.ts +15 -0
  61. package/lib/components/Search/index.js +1 -0
  62. package/lib/components/Security/SecurityFlowDetail.js +1 -1
  63. package/lib/components/Security/styled.js +7 -7
  64. package/lib/components/StickySidebar/FloatingButton.d.ts +1 -0
  65. package/lib/components/StickySidebar/FloatingButton.js +32 -0
  66. package/lib/components/StickySidebar/RedoclyAttributionLogo.d.ts +5 -0
  67. package/lib/components/StickySidebar/RedoclyAttributionLogo.js +1 -0
  68. package/lib/components/StickySidebar/StickySidebar.js +33 -9
  69. package/lib/components/common/Breadcrumbs.js +2 -2
  70. package/lib/components/common/DeepLinkAnchor.js +9 -9
  71. package/lib/components/common/PanelItem.js +5 -5
  72. package/lib/components/common/ResponseCodeTabs.js +1 -1
  73. package/lib/components/common/Tag.js +1 -1
  74. package/lib/components/common/VendorExtensions.js +1 -1
  75. package/lib/components/common/ViewNested.js +2 -2
  76. package/lib/components/graphql/GraphQLFieldView.js +1 -1
  77. package/lib/components/graphql/RequiresScopesModal.js +3 -3
  78. package/lib/components/graphql/sections/GraphQLArgsSection.js +1 -1
  79. package/lib/components/markdoc/SchemaDefinition.js +1 -1
  80. package/lib/components/markdoc/html/html-jsx-attribute-mapping.d.ts +5 -0
  81. package/lib/components/markdoc/html/html-jsx-attribute-mapping.js +1 -0
  82. package/lib/components/markdoc/html/process-html-tokens.d.ts +1 -0
  83. package/lib/components/markdoc/html/process-html-tokens.js +1 -0
  84. package/lib/components/markdoc/markdocParser.d.ts +2 -0
  85. package/lib/components/markdoc/markdocParser.js +1 -1
  86. package/lib/components/panels/ExampleItem/CallbackPayloadItem.js +2 -2
  87. package/lib/components/panels/ExampleItem/CodeSampleItem.js +1 -1
  88. package/lib/components/panels/ExampleItem/PayloadExampleItem.js +2 -2
  89. package/lib/components/panels/ExampleItem/ResponseExampleItem.js +1 -1
  90. package/lib/components/panels/ExampleItem/SecuritySchemeSelector.d.ts +9 -0
  91. package/lib/components/panels/ExampleItem/SecuritySchemeSelector.js +1 -0
  92. package/lib/components/panels/ExampleItem/ServerDropdown.js +2 -2
  93. package/lib/components/panels/ExampleItem/generate-request-sample.d.ts +28 -0
  94. package/lib/components/panels/ExampleItem/generate-request-sample.js +1 -0
  95. package/lib/components/panels/ExampleItem/selectors.d.ts +5 -2
  96. package/lib/components/panels/ExampleItem/selectors.js +1 -1
  97. package/lib/components/panels/ExampleItem/styled.d.ts +2 -49
  98. package/lib/components/panels/ExampleItem/styled.js +11 -5
  99. package/lib/components/panels/ExampleItem/useActiveServer.d.ts +17 -0
  100. package/lib/components/panels/ExampleItem/useActiveServer.js +1 -0
  101. package/lib/components/panels/ExampleItem/useCodeSampleLanguages.d.ts +23 -0
  102. package/lib/components/panels/ExampleItem/useCodeSampleLanguages.js +1 -0
  103. package/lib/components/panels/ExampleItem/useReplayRequestState.d.ts +18 -0
  104. package/lib/components/panels/ExampleItem/useReplayRequestState.js +1 -0
  105. package/lib/components/panels/ExampleItem/useTryItFooter.d.ts +3 -0
  106. package/lib/components/panels/ExampleItem/useTryItFooter.js +7 -0
  107. package/lib/components/panels/GroupPanelItem.js +1 -1
  108. package/lib/components/panels/LanguageItem/LanguagePanelItem.js +5 -1
  109. package/lib/components/panels/LanguageItem/styled.js +17 -14
  110. package/lib/components/panels/McpExamplePanelItem.js +2 -2
  111. package/lib/components/panels/McpPanelItem.js +2 -2
  112. package/lib/components/panels/ServerItem/ServerItem.js +1 -1
  113. package/lib/components/panels/asyncapi/BrokerItem/BrokerModal.js +1 -1
  114. package/lib/components/panels/asyncapi/BrokerItem/BrokerPanelItem.js +1 -1
  115. package/lib/components/panels/asyncapi/MessageBindingItem/MessageBindingItem.js +1 -1
  116. package/lib/components/panels/shared-panel-styles.js +1 -1
  117. package/lib/components/panels/styled.js +1 -1
  118. package/lib/components/pluggable/RedocExample.js +5 -2
  119. package/lib/components/pluggable/RedocResponseSamples.js +1 -1
  120. package/lib/hoc/withLicenseGate.d.ts +5 -0
  121. package/lib/hoc/withLicenseGate.js +1 -0
  122. package/lib/hoc/withRouter.js +1 -1
  123. package/lib/hoc/withStoreProvider.d.ts +2 -0
  124. package/lib/hoc/withStoreProvider.js +1 -1
  125. package/lib/hooks/deepLinkHash.d.ts +5 -0
  126. package/lib/hooks/deepLinkHash.js +1 -0
  127. package/lib/hooks/useApiDocsScroll.js +1 -1
  128. package/lib/hooks/useCopySpecSlice.d.ts +9 -0
  129. package/lib/hooks/useCopySpecSlice.js +1 -0
  130. package/lib/hooks/useDeepLinkSection.js +1 -1
  131. package/lib/hooks/useInitialTelemetry.d.ts +2 -0
  132. package/lib/hooks/useInitialTelemetry.js +1 -0
  133. package/lib/hooks/useLicense.js +1 -1
  134. package/lib/hooks/useLicenseGate.d.ts +6 -0
  135. package/lib/hooks/useLicenseGate.js +1 -0
  136. package/lib/hooks/useRouterHashBridge.d.ts +4 -0
  137. package/lib/hooks/useRouterHashBridge.js +1 -1
  138. package/lib/hooks/useScrollSpyUrlSync.js +1 -1
  139. package/lib/hooks/useUrlHash.d.ts +3 -2
  140. package/lib/hooks/useUrlHash.js +1 -1
  141. package/lib/hooks/useUrlHashReassert.d.ts +2 -0
  142. package/lib/hooks/useUrlHashReassert.js +1 -0
  143. package/lib/index.d.ts +5 -1
  144. package/lib/index.js +1 -1
  145. package/lib/jotai/app.d.ts +6 -0
  146. package/lib/jotai/app.js +1 -1
  147. package/lib/jotai/examples.js +1 -1
  148. package/lib/jotai/itemStore.d.ts +1 -0
  149. package/lib/jotai/itemStore.js +1 -1
  150. package/lib/jotai/store.d.ts +4 -0
  151. package/lib/jotai/store.js +1 -1
  152. package/lib/options/editionOverrides.d.ts +3 -0
  153. package/lib/options/editionOverrides.js +1 -0
  154. package/lib/options/helpers.d.ts +1 -2
  155. package/lib/options/helpers.js +1 -1
  156. package/lib/options/normalizeOptions.d.ts +1 -1
  157. package/lib/options/normalizeOptions.js +1 -1
  158. package/lib/options/standaloneLayoutVars.d.ts +3 -0
  159. package/lib/options/standaloneLayoutVars.js +1 -0
  160. package/lib/otel-semantic-conventions.d.ts +10 -0
  161. package/lib/otel-semantic-conventions.js +1 -0
  162. package/lib/pages/ItemPage.js +4 -2
  163. package/lib/pages/NotFoundPage.js +40 -1
  164. package/lib/services/code-samples/apply-env-variables.d.ts +8 -0
  165. package/lib/services/code-samples/apply-env-variables.js +1 -0
  166. package/lib/services/code-samples/builder.d.ts +8 -5
  167. package/lib/services/code-samples/builder.js +1 -1
  168. package/lib/services/code-samples/discriminator.d.ts +16 -10
  169. package/lib/services/code-samples/discriminator.js +1 -1
  170. package/lib/services/code-samples/generators/java8.js +2 -2
  171. package/lib/services/code-samples/language-availability.d.ts +4 -0
  172. package/lib/services/code-samples/language-availability.js +1 -0
  173. package/lib/services/code-samples/{replay/normalize-servers.d.ts → normalize-servers.d.ts} +1 -1
  174. package/lib/services/code-samples/normalize-servers.js +1 -0
  175. package/lib/services/code-samples/replay/embedded-replay-converter.d.ts +1 -1
  176. package/lib/services/code-samples/replay/embedded-replay-converter.js +1 -1
  177. package/lib/services/code-samples/replay/find-operation.d.ts +17 -0
  178. package/lib/services/code-samples/replay/find-operation.js +1 -0
  179. package/lib/services/code-samples/replay/from-openapi-document.d.ts +12 -2
  180. package/lib/services/code-samples/replay/from-openapi-document.js +1 -1
  181. package/lib/services/code-samples/replay/index.d.ts +1 -1
  182. package/lib/services/code-samples/replay/index.js +1 -1
  183. package/lib/services/code-samples/replay/overlay-converter.js +1 -1
  184. package/lib/services/code-samples/replay/parameter-descriptions.d.ts +7 -0
  185. package/lib/services/code-samples/replay/parameter-descriptions.js +1 -0
  186. package/lib/services/code-samples/replay/replay-adapter.d.ts +1 -1
  187. package/lib/services/code-samples/replay/replay-adapter.js +1 -1
  188. package/lib/services/code-samples/replay/replay-handler.js +1 -1
  189. package/lib/services/code-samples/replay/replay-predefined-env.d.ts +1 -2
  190. package/lib/services/code-samples/replay/replay-predefined-env.js +1 -1
  191. package/lib/services/code-samples/replay/schema-declared-value.d.ts +2 -0
  192. package/lib/services/code-samples/replay/schema-declared-value.js +1 -0
  193. package/lib/services/code-samples/resolvers.js +1 -1
  194. package/lib/services/code-samples/server-env.d.ts +3 -0
  195. package/lib/services/code-samples/server-env.js +1 -0
  196. package/lib/services/code-samples/source.d.ts +3 -3
  197. package/lib/services/license/check.d.ts +1 -0
  198. package/lib/services/license/check.js +1 -1
  199. package/lib/services/operation-samples/index.js +1 -1
  200. package/lib/services/schema/dialects/jsonSchema.d.ts +5 -1
  201. package/lib/services/schema/dialects/jsonSchema.js +1 -1
  202. package/lib/services/schema/propertyTreeBuilder.js +1 -1
  203. package/lib/services/search/index.d.ts +2 -0
  204. package/lib/services/search/index.js +1 -0
  205. package/lib/services/search/indexer/context.d.ts +8 -0
  206. package/lib/services/search/indexer/context.js +0 -0
  207. package/lib/services/search/indexer/deep-links.d.ts +12 -0
  208. package/lib/services/search/indexer/deep-links.js +1 -0
  209. package/lib/services/search/indexer/extractors/asyncapi.d.ts +8 -0
  210. package/lib/services/search/indexer/extractors/asyncapi.js +1 -0
  211. package/lib/services/search/indexer/extractors/body.d.ts +2 -0
  212. package/lib/services/search/indexer/extractors/body.js +1 -0
  213. package/lib/services/search/indexer/extractors/callbacks.d.ts +4 -0
  214. package/lib/services/search/indexer/extractors/callbacks.js +1 -0
  215. package/lib/services/search/indexer/extractors/context.d.ts +25 -0
  216. package/lib/services/search/indexer/extractors/context.js +1 -0
  217. package/lib/services/search/indexer/extractors/examples.d.ts +3 -0
  218. package/lib/services/search/indexer/extractors/examples.js +1 -0
  219. package/lib/services/search/indexer/extractors/graphql.d.ts +2 -0
  220. package/lib/services/search/indexer/extractors/graphql.js +1 -0
  221. package/lib/services/search/indexer/extractors/heading-sections.d.ts +3 -0
  222. package/lib/services/search/indexer/extractors/heading-sections.js +1 -0
  223. package/lib/services/search/indexer/extractors/index.d.ts +12 -0
  224. package/lib/services/search/indexer/extractors/index.js +1 -0
  225. package/lib/services/search/indexer/extractors/mcp.d.ts +9 -0
  226. package/lib/services/search/indexer/extractors/mcp.js +1 -0
  227. package/lib/services/search/indexer/extractors/named-rows.d.ts +9 -0
  228. package/lib/services/search/indexer/extractors/named-rows.js +1 -0
  229. package/lib/services/search/indexer/extractors/panels.d.ts +10 -0
  230. package/lib/services/search/indexer/extractors/panels.js +1 -0
  231. package/lib/services/search/indexer/extractors/parameters.d.ts +2 -0
  232. package/lib/services/search/indexer/extractors/parameters.js +1 -0
  233. package/lib/services/search/indexer/extractors/responses.d.ts +2 -0
  234. package/lib/services/search/indexer/extractors/responses.js +1 -0
  235. package/lib/services/search/indexer/extractors/schema-page.d.ts +9 -0
  236. package/lib/services/search/indexer/extractors/schema-page.js +1 -0
  237. package/lib/services/search/indexer/extractors/security.d.ts +4 -0
  238. package/lib/services/search/indexer/extractors/security.js +1 -0
  239. package/lib/services/search/indexer/index.d.ts +14 -0
  240. package/lib/services/search/indexer/index.js +1 -0
  241. package/lib/services/search/indexer/param.d.ts +7 -0
  242. package/lib/services/search/indexer/param.js +1 -0
  243. package/lib/services/search/indexer/places.d.ts +40 -0
  244. package/lib/services/search/indexer/places.js +1 -0
  245. package/lib/services/search/indexer/schema-walker.d.ts +29 -0
  246. package/lib/services/search/indexer/schema-walker.js +1 -0
  247. package/lib/services/search/indexer/text.d.ts +2 -0
  248. package/lib/services/search/indexer/text.js +1 -0
  249. package/lib/services/search/types.d.ts +28 -0
  250. package/lib/services/search/types.js +0 -0
  251. package/lib/services/spec-slice/assistant-links.d.ts +9 -0
  252. package/lib/services/spec-slice/assistant-links.js +5 -0
  253. package/lib/services/spec-slice/asyncapi-slice.d.ts +5 -0
  254. package/lib/services/spec-slice/asyncapi-slice.js +1 -0
  255. package/lib/services/spec-slice/clone-strip.d.ts +1 -0
  256. package/lib/services/spec-slice/clone-strip.js +1 -0
  257. package/lib/services/spec-slice/component-closure.d.ts +6 -0
  258. package/lib/services/spec-slice/component-closure.js +1 -0
  259. package/lib/services/spec-slice/graphql-slice.d.ts +2 -0
  260. package/lib/services/spec-slice/graphql-slice.js +1 -0
  261. package/lib/services/spec-slice/index.d.ts +6 -0
  262. package/lib/services/spec-slice/index.js +1 -0
  263. package/lib/services/spec-slice/openapi-slice.d.ts +6 -0
  264. package/lib/services/spec-slice/openapi-slice.js +1 -0
  265. package/lib/services/spec-slice/resolve-scope.d.ts +4 -0
  266. package/lib/services/spec-slice/resolve-scope.js +1 -0
  267. package/lib/services/spec-slice/types.d.ts +37 -0
  268. package/lib/services/spec-slice/types.js +0 -0
  269. package/lib/standalone.d.ts +19 -0
  270. package/lib/standalone.js +2 -0
  271. package/lib/standaloneThemeConfig.d.ts +3 -0
  272. package/lib/standaloneThemeConfig.js +1 -0
  273. package/lib/telemetry/RedocTelemetry.d.ts +3 -0
  274. package/lib/telemetry/RedocTelemetry.js +1 -1
  275. package/lib/telemetry/defaults.d.ts +2 -0
  276. package/lib/telemetry/defaults.js +1 -0
  277. package/lib/types/asyncapi.d.ts +2 -1
  278. package/lib/types/code-samples-config.d.ts +68 -0
  279. package/lib/types/code-samples-config.js +0 -0
  280. package/lib/types/common.d.ts +1 -2
  281. package/lib/types/content.d.ts +6 -4
  282. package/lib/types/edition-config.d.ts +4 -0
  283. package/lib/types/edition-config.js +0 -0
  284. package/lib/types/events.d.ts +2 -2
  285. package/lib/types/openapi.d.ts +3 -3
  286. package/lib/types/options.d.ts +24 -88
  287. package/lib/types/store.d.ts +3 -2
  288. package/lib/url-compat.d.ts +22 -0
  289. package/lib/url-compat.js +1 -0
  290. package/lib/utils/compose.d.ts +1 -0
  291. package/lib/utils/deep-link.d.ts +2 -1
  292. package/lib/utils/deep-link.js +1 -1
  293. package/lib/utils/extract-extensions.js +1 -1
  294. package/lib/utils/graphql-parse.d.ts +1 -0
  295. package/lib/utils/graphql-parse.js +1 -0
  296. package/lib/utils/scroll-anchoring.d.ts +2 -1
  297. package/lib/utils/x-logo.d.ts +13 -0
  298. package/lib/utils/x-logo.js +1 -0
  299. package/lib/yaml-compat.d.ts +7 -0
  300. package/lib/yaml-compat.js +1 -0
  301. package/package.json +36 -15
  302. 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"../../index.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};
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, 1000);
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, 12px);
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"../../../index.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`
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 n,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),r=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=r?.data,i=o?.description;if(!(!i||typeof i=="string"&&!i.trim()||!o||!b(o)))return i},[r?.data]),l=h.length>0,x=s(()=>!t||!r||!l?void 0:[{children:[{kind:P.RESPONSE,schemaId:t,exampleIds:c,headerTitle:"",examples:[]}]}],[t,r,l,c]);return!t||!r?n(y,{}):n("div",{"data-testid":"schema-definition",children:v(w,{panels:x,children:[e&&n(L,{schemaRef:e}),p?n(F,{children:n(O,{source:p})}):null,n(j.Provider,{value:S,children:n(C,{expandByDefault:!0,level:1,schemaId:t,skipReadOnly:!f,skipWriteOnly:!u})})]})})}const X=g(A),F=k.div`
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,5 @@
1
+ export declare function getJsxConvertedAttributes(attrs: {
2
+ [key: string]: string;
3
+ }, tagName?: string): {
4
+ [key: string]: string | boolean | object;
5
+ };
@@ -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 m from"@markdoc/markdoc";import{sanitizeMarkdownSource as t}from"../../adapters/utils/markdoc.js";import{simplifyAstStructure as i}from"../../adapters/utils/simplifyAstStructure.js";const s=(r,o)=>i(m.parse(t(r,o)));export{s as markdocParser};
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{ExampleSelector as U,MediaTypeSelector as W,PayloadDisplay as q}from"./selectors.js";import{StyledPanelHeader as z}from"./styled.js";import{ServerDropdown as G}from"./ServerDropdown.js";import{LanguageDropdown as J}from"../LanguageItem/LanguageDropdown.js";import{itemStoreFieldAtom as Q}from"../../../jotai/itemStore.js";import{ItemIdContext as X}from"../../../hooks/useDeepLinkSection.js";import{getSyntaxHighlightLang as Z}from"../../../utils/languages.js";import{useSpecTranslate as ee}from"../../../hooks/useTranslate.js";import{useCopyCodeTelemetry as ae}from"../../../hooks/useCopyCodeTelemetry.js";const m="payload",te=F.div`
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 Se({node:a}){const x=ee(),h=L(X)??"",S=K(Q({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=ae("response"),w=B(o=>T(o),[]);return C?e(V,{className:"panel-callback-samples",header:()=>y(z,{isExpandable:!1,children:[e(te,{children:e(G,{servers:a.servers??[],method:(a.httpVerb??"post").toUpperCase(),path:a.path??"Callback"})}),e(J,{activeTab:n,samples:M,onChange:w})]}),isExpandable:!1,children:r?e(H,{lang:Z(r.lang),source:r.source,header:{className:"code-block-header",controls:{copy:{onClick:j(r.lang)}}}}):y(N,{children:[e(W,{mediaTypes:b,value:l,onChange:k,label:x("contentType","Payload media type")}),e(U,{exampleIds:s,selectedIdx:i,onSelect:f}),e(q,{payload:D,emptyMessage:"// No callback payload",mediaType:l,description:P})]})}):null}export{Se as CallbackPayloadItem};
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 Oe,jsx as l,jsxs as te}from"react/jsx-runtime";import{useState as Pe,useMemo as p,useCallback as re,useEffect as we}from"react";import{useAtom as ae}from"jotai";import{useAtomValue as U}from"jotai";import{buildCodeSampleHAR as De,tryGenerateCodeSample as $e,mapReplayAtomValuesToHarRequestValues as Be,useCodeSampleResolvers as Me}from"../../../services/code-samples/index.js";import{findExampleIdByKey as Ne}from"../../../services/code-samples/example-key.js";import{exampleStoreAtom as je}from"../../../jotai/examples.js";import{DEFAULT_LANGUAGES as oe,getGeneratorKey as Ge,getLangKey as O,getSyntaxHighlightLang as Fe}from"../../../utils/languages.js";import{useSpecTranslate as We}from"../../../hooks/useTranslate.js";import{CodeBlockPanel as Ke,StyledCodeBlock as _e}from"../styled.js";import{useResolvedExamples as He}from"../../ItemContent/hooks.js";import{languageAtom as ze,environmentAtom as Je,selectedSecuritySchemeIdxAtom as Ye,requestValuesAtom as Qe}from"../../../jotai/app.js";import{useActiveVariantSchemaId as Xe,useSchemaVariantSelection as Ze,useMediaTypeContent as et}from"./hooks.js";import{isSequentialMediaType as tt}from"../../../utils/media-type.js";import{isRecord as se}from"../../../adapters/helpers.js";import{updateObjectProperties as rt}from"../../../adapters/openapi/configure/merge-utils.js";import{useCopyCodeTelemetry as at}from"../../../hooks/useCopyCodeTelemetry.js";import{VariantPicker as ot,ExampleSelector as st,MediaTypeSelector as nt,PanelDropdownSelect as lt,PayloadDisplay as it}from"./selectors.js";import{LanguageDropdown as ct}from"../LanguageItem/LanguageDropdown.js";import{StyledPanelHeader as pt,TryItPanelFooter as mt}from"./styled.js";import{MediaTypeRow as ut}from"./styled.js";import{ServerDropdown as dt}from"./ServerDropdown.js";import{replaceServerVariables as yt,serverMatchesUrl as ft}from"../../../services/code-samples/server-variables.js";import{globalOptionsAtom as ht}from"../../../jotai/store.js";import{createLanguageSwitchEvent as gt}from"../../../events/languageSwitch.js";import{createCodeSampleCopyEvent as St}from"../../../events/codeSampleCopy.js";import{Replay as vt}from"../../Replay/index.js";import{useOpenApiDefinition as bt}from"../../../hoc/withReplayPrefetch.js";import{pickReplayDefinitionDownloadUrl as kt}from"../../../utils/fetch-openapi-definition.js";const G=oe.find(r=>r.key==="payload")??oe[0],ne=[{key:G.key,lang:G.lang,title:G.label}];function er({node:r}){const[{activeLanguage:g,languages:i},S]=ae(ze),s=U(ht),v=We(),le=bt(),P=r.isWebhook?"payload":g||"curl",F=Me(),e=r.source,k=r.definitionSamples,ie=U(Qe),q=U(je),ce=`${e.method.toLowerCase()}:${e.path}`,C=ie[ce],W=C?.activeExampleName,A=typeof W=="string"?W:void 0,{mediaTypes:K,activeMediaType:m,effectiveSchemaId:L,effectiveExampleIds:h,onMediaTypeChange:pe}=et(r),me=r.isWebhook?"response":"request",ue=Ze(L),de=Xe(L),ye=tt(m)?L:de,_=He(ye,h,me,m),[w,H]=Pe(0);we(()=>{const t=A?q[A]?.key??A:void 0,a=Ne(h,t,n=>q[n]),o=a?h?.indexOf(a)??-1:-1;H(o>=0?o:0)},[h,m,A,q]);const V=_[w]??_[0],z=(h?.length??0)>0||!!L,T=p(()=>{if(!k?.length)return k;const t=new Set((i??[]).map(a=>a.key));return k.filter(a=>t.has(O(a)))},[k,i]),y=p(()=>{const t=(i??[]).map(({key:o,lang:n,title:E})=>({key:o,lang:n,title:E}));let a=z?t:t.filter(o=>o.key!=="payload");if(r.isWebhook){const o=new Set(T?.map(n=>O(n))??[]);a=a.filter(n=>n.key==="payload"||o.has(n.key))}return a},[z,i,r.isWebhook,T]),u=p(()=>(y.some(t=>t.key===P)?P:y[0]?.key)??"curl",[y,P]),I=U(Je),{activeServerUrl:J,activeServerSpecUrl:f}=p(()=>{const t=I[0].server,a=t?r.servers?.find(n=>ft(n,t)):void 0;if(t&&a)return{activeServerUrl:t,activeServerSpecUrl:a.url};const o=r.servers?.[0];return o?{activeServerUrl:yt(o),activeServerSpecUrl:o.url}:{activeServerUrl:e.servers[0]?.url,activeServerSpecUrl:e.servers[0]?.url}},[I,r.servers,e.servers]),[D,fe]=ae(Ye),c=e.securityGroups,he=!!(c&&c.length>1),Y=p(()=>{if(!c?.length)return;const t=c.length>1?c[D]??c[0]:c[0];return Object.keys(t)},[c,D]),Q=p(()=>{const t=Be(C??{});return e.requestValues?.security?{...t,security:e.requestValues.security}:t},[C,e.requestValues?.security]),x=C?.body,$=h?.[w],R=$?q[$]?.key??$:void 0,b=p(()=>{const t=e.requestValues?.serverBody;return(f&&t?.[f])??e.requestValues?.body},[f,e.requestValues?.body,e.requestValues?.serverBody]),ge=p(()=>x!==void 0?Vt(x):b!==void 0?V===void 0?b:se(V)&&se(b)?rt(V,b):b:V,[x,V,b]),Se=p(()=>{if(u==="payload")return"";const t=T?.find(d=>O(d)===u);if(t){let d=t.source;const j=e.requestValues?.envVariables,Te=e.requestValues?.serverEnvVariables,Ie={...j,...f&&Te?.[f]};for(const[Re,Ue]of Object.entries(Ie))d=d.replaceAll(`{{${Re}}}`,Ue);return d}const a=De(e,{serverUrl:J,mediaType:m,environment:I[0]??{},requestValues:Q,activeSecuritySchemeIds:Y,replayBody:x,exampleName:R},{skipOptionalParameters:s.codeSamples?.skipOptionalParameters,withOAuth2Call:s.codeSamples?.withOAuth2Call,generatedPayloadSamplesMaxDepth:s.generatedSamplesMaxDepth},F),o=s.codeSamples?.languages?.find(d=>d.key===u),n=$e(o?Ge(o):u,a,o?.options);if(n.kind==="unsupported-language")return`// ${v("unsupportedLanguage","Language is not supported.")}`;if(n.kind==="error")return console.error(n.error),`// ${v("failedToGenerateCodeSample","Failed to generate code sample.")}`;let E=n.source;const Ce=e.requestValues?.envVariables,Ae=e.requestValues?.serverEnvVariables,Le={...Ce,...f&&Ae?.[f]};for(const[d,j]of Object.entries(Le))E=E.replaceAll(`{{${d}}}`,j);return E},[u,T,e,J,f,m,I,s,F,Q,Y,x,R,v]),B=y.find(t=>t.key===u)??y[0],X=k?.find(t=>O(t)===u),M=X?.lang??B?.lang,ve=M&&Fe(M),Z=at("request"),be=re(t=>()=>{Z(t)(),s.events?.codeSamplesCopy?.(St({operation:{id:`${e.method}:${e.path}`,path:e.path,httpVerb:e.method,name:`${e.method.toUpperCase()} ${e.path}`},type:"request",lang:t??"",label:B?.title??"",activeMimeName:m??"",activeExampleName:R}))},[Z,s.events,e.method,e.path,B,m,R]),ke=re(t=>{S(t);const a=(r.isWebhook?ne:y).find(o=>o.key===t);s.events?.codeSamplesLanguageSwitch&&a&&s.events.codeSamplesLanguageSwitch(gt({operation:{id:`${e.method}:${e.path}`,path:e.path,httpVerb:e.method,name:`${e.method.toUpperCase()} ${e.path}`},sample:{lang:a.lang,label:a.title}}))},[S,y,r.isWebhook,s.events,e.method,e.path]),Ve=e.method,xe=e.path,ee=!(s.hideReplay||r.hideReplay)&&!r.isWebhook&&!!(le??kt(s.downloadUrls)),N=u==="payload",Ee=!N&&!!X,qe=p(()=>ee?l(mt,{children:l(vt,{node:r})}):void 0,[ee,r]);return l(Oe,{children:te(Ke,{className:"panel-request-samples",footer:qe,header:()=>te(pt,{isExpandable:!1,children:[l(dt,{servers:r.servers??[],method:Ve,path:xe}),l(ct,{activeTab:u,samples:r.isWebhook?ne:y,onChange:ke})]}),isExpandable:!1,children:[he&&c&&l(xt,{requirements:c,activeIdx:D,onSelect:fe}),K.length>1&&l(nt,{mediaTypes:K,value:m,onChange:pe,label:N?v("contentType","Payload media type"):v("contentType","Request media type")}),!Ee&&l(ot,{selection:ue}),l(st,{exampleIds:h,selectedIdx:w,onSelect:H}),N?l(it,{payload:ge,emptyMessage:`// ${v("noRequestPayload","No request payload")}`,mediaType:m,snippetType:"request"}):l(_e,{lang:ve,source:Se,header:{className:"code-block-header",controls:{copy:{onClick:be(M)}}}})]})})}function Vt(r){if(typeof r!="string")return r;const g=r.trim();if(!g)return r;try{const i=JSON.parse(g);if(i!==null&&typeof i=="object")return i}catch{}return r}function xt({requirements:r,activeIdx:g,onSelect:i}){return l(ut,{children:l(lt,{value:String(g),onChange:S=>i(Number(S)),"aria-label":"Security scheme",options:r.map((S,s)=>({key:String(s),value:String(s),label:Object.keys(S).join(" + ")||`Scheme ${s+1}`}))})})}export{er as CodeSampleItem};
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 S}from"react/jsx-runtime";import{styled as u}from"styled-components";import{useState as E,useEffect as h}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,ExampleSelector as _,MediaTypeSelector as k,PayloadDisplay as w}from"./selectors.js";import{useSpecTranslate as B}from"../../../hooks/useTranslate.js";function G({node:l}){const{mediaTypes:i,activeMediaType:a,effectiveSchemaId:n,effectiveExampleIds:s,onMediaTypeChange:m}=j(l),p=B(),d=b(n),c=M(n,a),t=T(c,s,"response",a),f=P(s),[o,r]=E(0);h(()=>r(0),[s,a]);const x=t[o]??t[0],y=f[o]?.description;return t.length===0?e(g,{}):S(I,{className:"panel-response-samples",header:()=>e(D,{isExpandable:!1,children:l.panelLabel??p("payload","Payload")}),isExpandable:!1,children:[e(k,{mediaTypes:i,value:a,onChange:m,label:p("contentType","Payload media type")}),e(C,{selection:d}),e(_,{exampleIds:s,selectedIdx:o,onSelect:r}),e(w,{payload:x,emptyMessage:"// No payload sample",mediaType:a,description:y})]})}const D=u(v)`
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{G as PayloadExampleItem};
4
+ `;export{J as PayloadExampleItem};
@@ -1 +1 @@
1
- import{Fragment as _,jsx as a,jsxs as R}from"react/jsx-runtime";import{useState as b,useMemo as k,useCallback as $,useEffect as G,useContext as L}from"react";import{useAtom as U,useAtomValue as A,useSetAtom as q}from"jotai";import{PanelHeaderTitle as w}from"@redocly/theme/components/Panel/PanelHeaderTitle";import{CodeBlockPanel as z}from"../styled.js";import{findExampleIdByKey as g}from"../../../services/code-samples/example-key.js";import{useResolvedExamples as J,useExampleEntries as Q}from"../../ItemContent/hooks.js";import{useBodySamplingSchemaId as W,useSchemaVariantSelection as X}from"./hooks.js";import{activeMediaTypeAtom as Y}from"../../../jotai/app.js";import{exampleStoreAtom as Z}from"../../../jotai/examples.js";import{itemStoreAtom as ee,itemStoreFieldAtom as te}from"../../../jotai/itemStore.js";import{ItemIdContext as oe}from"../../../hooks/useDeepLinkSection.js";import{VariantPicker as ne,ExampleSelector as se,MediaTypeSelector as ae,PayloadDisplay as ie}from"./selectors.js";import{ResponsePanelHeader as de}from"./styled.js";import{ResponseCodesTabList as ce,ResponseCodeTab as me}from"../../common/ResponseCodeTabs.js";import{useSpecTranslate as re}from"../../../hooks/useTranslate.js";function pe(t,e,r){if(e===void 0||!t?.length)return;const p=n=>r[n];for(const n of t){for(const[u,d]of Object.entries(n.mediaTypeContent??{}))if(g(d.exampleIds,e,p))return{code:n.code,mediaType:u};if(g(n.exampleIds,e,p))return{code:n.code}}}function ke({node:t}){const{responseCodes:e}=t,r=re(),p=L(oe)??"",n=q(ee(p)),u=A(te({itemId:p,key:"activeResponseCode"})),d=A(Z),c=k(()=>pe(e,t.exampleKey,d),[e,t.exampleKey,d]),l=u||c?.code||e?.[0]?.code,i=e?.find(o=>o.code===l)??e?.[0],m=k(()=>i?.mediaTypeContent?Object.keys(i.mediaTypeContent):i?.mediaTypes??[],[i]),[x,j]=U(Y),[P,K]=b(!1),T=c&&c.code===l&&c.mediaType&&m.includes(c.mediaType)?c.mediaType:void 0,y=!P&&T?T:x&&m.includes(x)?x:T??m[0],E=i?.mediaTypeContent?.[y??""],M=!!e?.length,h=E?.schemaId??i?.schemaId??(M?void 0:t.schemaId),s=E?.exampleIds??i?.exampleIds??(M?void 0:t.exampleIds),B=!e?.length||!!(h||s?.length),I=m.length>0?y??m[0]:"application/json",H=X(h),D=W(h,I),C=J(D,s,"response",I),F=Q(s),[S,f]=b(0);G(()=>{if(!s?.length){f(0);return}const o=g(s,t.exampleKey,v=>d[v]);if(o){f(s.indexOf(o));return}f(0)},[s,y,l,t.exampleKey,d]);const N=C[S]??C[0],O=F[S]?.description,V=$(()=>{if(!(!t.headerTitle&&!e?.length))return R(de,{children:[a(w,{children:t.headerTitle}),e&&e.length>0&&a(ce,{children:e.map(o=>{const v=o.code===(l??e[0]?.code);return a(me,{type:"button",$active:v,$code:o.code,onClick:()=>{n({activeResponseCode:o.code}),f(0)},children:o.code},o.code)})})]})},[e,l,t.headerTitle,n]);return C.length===0&&!e?.length?a(_,{}):R(z,{className:"panel-response-samples",header:V,isExpandable:!1,children:[a(ae,{mediaTypes:m,value:y,onChange:o=>{K(!0),j(o)},label:r("contentType","Response media type")}),a(ne,{selection:H}),a(se,{exampleIds:s,selectedIdx:S,onSelect:f}),a(ie,{payload:N,emptyMessage:B?`// ${r("noResponseExample","No response sample")}`:r("noResponseContent","No content"),mediaType:I,description:O})]})}export{ke as ResponseExampleItem};
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/replay/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)`
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<=1||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};
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 PayloadDisplay({ payload, emptyMessage, mediaType, description, snippetType, }: {
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{Fragment as d,jsx as r,jsxs as p}from"react/jsx-runtime";import{useAtomValue as b}from"jotai";import{exampleStoreAtom as C}from"../../../jotai/examples.js";import{globalOptionsAtom as N,specTypeAtom as D}from"../../../jotai/store.js";import{useTelemetry as E}from"../../../hooks/useTelemetry.js";import{useCopyCodeTelemetry as M}from"../../../hooks/useCopyCodeTelemetry.js";import{MAX_DISPLAYED_STRING_LENGTH as x}from"../../../constants/rendering.js";import{isJsonLikeMediaType as L,isSequentialMediaType as y,langFromMime as S}from"../../../utils/media-type.js";import{StyledCodeBlock as f,StyledJsonViewer as k}from"../styled.js";import{DisabledMimeSelect as A,SelectDropdownCheckmarkIcon as j,MediaTypeRow as h,SelectDropdownLabel as w,SelectDropdownMenu as B,SelectDropdownMenuItem as J,SelectDropdownTriggerButton as O,StyledSelectDropdown as P}from"./styled.js";import{DefaultMappingOptionLabel as _}from"../../Schema/views/DefaultMappingOptionLabel.js";import{jsonToXml as V}from"../../../utils/xml.js";import{formUrlEncodeValue as F}from"../../../utils/form-urlencoded.js";import{apiSpecType as z}from"../../../types/common.js";function ne({selection:e,label:o}){if(!e)return null;const{options:t,activeIdx:c,onSelect:a,kind:n,optionMeta:s}=e,i=o??(n==="discriminator"?"Discriminator":"Variant");return r(h,{children:r(v,{value:String(c),onChange:l=>a(Number(l)),"aria-label":i,options:t.map((l,m)=>{const u=s[m]?.isDefaultMapping?r(_,{label:l.label}):void 0;return{key:l.key,value:String(m),label:l.label,labelNode:u}})})})}function le({exampleIds:e,selectedIdx:o,onSelect:t}){const c=b(C),a=b(D),n=E();if(!e||e.length<2)return null;const s=i=>{const l=Number(i),m=e[l];a===z.ASYNCAPI?n.sendSwitchExampleClickedMessage([{id:"switchExampleButton",object:"button",uri:"urn:redocly:redoc:ui:button:switchExampleButton",example:m,numberOfExamples:e.length}]):n.sendExamplesSwitcherClickedMessage([{object:"button",id:"examplesSwitcherButton",uri:"urn:redocly:redoc:ui:button:examplesSwitcherButton",exampleNumber:l,totalExamples:e.length}]),t(l)};return r(h,{children:r(v,{value:String(o),onChange:s,"aria-label":"Example",options:e.map((i,l)=>({key:i,value:String(l),label:c[i]?.summary??`Example ${l+1}`}))})})}function oe({mediaTypes:e,value:o,onChange:t,label:c}){return e.length===0?null:e.length===1?r(h,{children:r(A,{value:e[0],"aria-label":c,disabled:!0,children:r("option",{value:e[0],children:e[0]})})}):r(h,{children:r(v,{value:o,onChange:t,"aria-label":c,options:e.map(a=>({value:a,label:a}))})})}function v({value:e,onChange:o,options:t,"aria-label":c}){const a=t.find(n=>n.value===e)??t[0];return r(P,{withArrow:!0,alignment:"start",trigger:r(O,{variant:"outlined",size:"small",type:"button","aria-label":c,children:r(w,{children:a?.labelNode??a?.label})}),children:r(B,{children:t.map(n=>r(J,{active:n.value===a?.value,onAction:()=>o(n.value),suffix:n.value===a?.value?r(j,{}):void 0,children:r(w,{children:n.labelNode??n.label})},n.key??n.value))})})}function ae({payload:e,emptyMessage:o="// No sample",mediaType:t,description:c,snippetType:a="response"}){const{jsonSamplesExpandLevel:n}=b(N),s=M(a);if(e==null)return r(f,{lang:"text",source:o,header:{controls:!1}});const i=c?r("div",{style:{fontSize:"var(--font-size-sm)",color:"var(--text-color-secondary)",padding:"var(--spacing-xs) var(--spacing-sm)",borderBottom:"1px solid var(--border-color-primary)"},children:c}):null,l=y(t),m=L(t);if(m&&!l){const u=typeof e=="string"?q(e)??e:e;return p(d,{children:[i,r(k,{data:u,expandLevel:n,maxStringLength:x})]})}if(typeof e=="object"&&e!==null){if(t?.includes("xml")){const u=V(e);return p(d,{children:[i,r(f,{lang:"xml",source:u,highlightedHtml:G(u),header:{className:"code-block-header",controls:{copy:{onClick:s("xml")}}}})]})}if(H(t))return p(d,{children:[i,r(f,{lang:"text",source:F(e),header:{className:"code-block-header",controls:{copy:{onClick:s("text")}}}})]});if(l||t&&!m){const u=JSON.stringify(e,null,2);return p(d,{children:[i,r(f,{lang:S(t),source:u,header:{className:"code-block-header",controls:{copy:{onClick:s(S(t))}}}})]})}return p(d,{children:[i,r(k,{data:e,expandLevel:n,maxStringLength:x})]})}const g=t?S(t):"text";return p(d,{children:[i,r(f,{lang:g,source:String(e),maxDisplayLength:x,header:{className:"code-block-header",controls:{copy:{onClick:s(g)}}}})]})}function H(e){return!!e&&/x-www-form-urlencoded/i.test(e)}function q(e){const o=e.trim();if(!(!o||!/^[{[]/.test(o)))try{return JSON.parse(o)}catch{return}}function G(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}export{le as ExampleSelector,oe as MediaTypeSelector,v as PanelDropdownSelect,ae as PayloadDisplay,ne as VariantPicker};
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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}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 r}from"@redocly/theme/components/Panel/PanelHeader";import{Tag as a}from"@redocly/theme/components/Tag/Tag";import{Button as o}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 d}from"@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon";const x=e(r)`
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
- `,h=e(o)`
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
- `,I=e(d)`
97
+ `,T=e(p)`
94
98
  width: 16px;
95
99
  height: 16px;
96
100
  margin-left: auto;
97
101
  flex-shrink: 0;
98
- `,T=e(o)`
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,h as PathWrapper,y as ResponsePanelHeader,I as SelectDropdownCheckmarkIcon,M as SelectDropdownLabel,S as SelectDropdownMenu,P as SelectDropdownMenuItem,T as SelectDropdownTriggerButton,w as StaticPathWrapper,x as StyledPanelHeader,D as StyledSelectDropdown,C as TryItPanelFooter,j as VariablesContainer,H as VariablesTitle};
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};