@wildo-ai/saas-technical-doc 1.1.4 → 1.1.6

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 (205) hide show
  1. package/dist/esm/build/csp-emit.d.ts.map +1 -1
  2. package/dist/esm/build/load-materialized-frontend-providers.d.ts.map +1 -1
  3. package/dist/esm/companion/application-documentation/application-administration-documentation.d.ts.map +1 -1
  4. package/dist/esm/companion/application-documentation/application-administration-documentation.js.map +1 -1
  5. package/dist/esm/companion/application-documentation/application-authentication-documentation.d.ts.map +1 -1
  6. package/dist/esm/companion/application-documentation/application-connection-documentation.d.ts +37 -0
  7. package/dist/esm/companion/application-documentation/application-connection-documentation.d.ts.map +1 -1
  8. package/dist/esm/companion/application-documentation/application-connection-documentation.js +46 -5
  9. package/dist/esm/companion/application-documentation/application-connection-documentation.js.map +1 -1
  10. package/dist/esm/companion/application-documentation/application-documentation-chapters.d.ts +101 -0
  11. package/dist/esm/companion/application-documentation/application-documentation-chapters.d.ts.map +1 -0
  12. package/dist/esm/companion/application-documentation/application-documentation-chapters.js +205 -0
  13. package/dist/esm/companion/application-documentation/application-documentation-chapters.js.map +1 -0
  14. package/dist/esm/companion/application-documentation/application-domain-documentation.d.ts.map +1 -1
  15. package/dist/esm/companion/application-documentation/application-domain-documentation.js.map +1 -1
  16. package/dist/esm/companion/application-documentation/application-integration-documentation.d.ts.map +1 -1
  17. package/dist/esm/companion/application-documentation/application-integration-documentation.js.map +1 -1
  18. package/dist/esm/companion/application-documentation/application-organization-role-documentation.d.ts.map +1 -1
  19. package/dist/esm/companion/application-documentation/application-organization-role-documentation.js.map +1 -1
  20. package/dist/esm/companion/application-documentation/application-organization-unit-resource-documentation.d.ts.map +1 -1
  21. package/dist/esm/companion/application-documentation/application-organization-unit-resource-documentation.js +3 -0
  22. package/dist/esm/companion/application-documentation/application-organization-unit-resource-documentation.js.map +1 -1
  23. package/dist/esm/companion/application-documentation/docs-api-origin-substitution.d.ts +34 -0
  24. package/dist/esm/companion/application-documentation/docs-api-origin-substitution.d.ts.map +1 -0
  25. package/dist/esm/companion/application-documentation/docs-api-origin-substitution.js +45 -0
  26. package/dist/esm/companion/application-documentation/docs-api-origin-substitution.js.map +1 -0
  27. package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.d.ts +24 -10
  28. package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.d.ts.map +1 -1
  29. package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.js +25 -15
  30. package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.js.map +1 -1
  31. package/dist/esm/companion/application-documentation/technical-documentation-operational-evidence.d.ts.map +1 -1
  32. package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.d.ts +11 -3
  33. package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.d.ts.map +1 -1
  34. package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.js +9 -2
  35. package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.js.map +1 -1
  36. package/dist/esm/companion/application-documentation/technical-documentation-publication-policy.d.ts.map +1 -1
  37. package/dist/esm/companion/application-documentation/technical-documentation-publication-policy.js +10 -4
  38. package/dist/esm/companion/application-documentation/technical-documentation-publication-policy.js.map +1 -1
  39. package/dist/esm/companion/content/application-consumer-documentation-content-loader.d.ts.map +1 -1
  40. package/dist/esm/companion/index.d.ts +2 -0
  41. package/dist/esm/companion/index.d.ts.map +1 -1
  42. package/dist/esm/companion/index.js +2 -0
  43. package/dist/esm/companion/index.js.map +1 -1
  44. package/dist/esm/companion/manual-controller-route-projection.d.ts.map +1 -1
  45. package/dist/esm/companion/manual-controller-route-projection.js.map +1 -1
  46. package/dist/esm/companion/openapi-example-derivation.d.ts +53 -0
  47. package/dist/esm/companion/openapi-example-derivation.d.ts.map +1 -0
  48. package/dist/esm/companion/openapi-example-derivation.js +229 -0
  49. package/dist/esm/companion/openapi-example-derivation.js.map +1 -0
  50. package/dist/esm/companion/openapi-generator.d.ts +8 -4
  51. package/dist/esm/companion/openapi-generator.d.ts.map +1 -1
  52. package/dist/esm/companion/openapi-generator.js +323 -33
  53. package/dist/esm/companion/openapi-generator.js.map +1 -1
  54. package/dist/esm/companion/operation-projection.schemas.d.ts +57 -1
  55. package/dist/esm/companion/operation-projection.schemas.d.ts.map +1 -1
  56. package/dist/esm/companion/operation-projection.schemas.js +29 -0
  57. package/dist/esm/companion/operation-projection.schemas.js.map +1 -1
  58. package/dist/esm/companion/publish-result.types.d.ts.map +1 -1
  59. package/dist/esm/companion/publish-result.types.js.map +1 -1
  60. package/dist/esm/companion/rendering/technical-documentation-authorized-bundle-reader.d.ts.map +1 -1
  61. package/dist/esm/companion/rendering/technical-documentation-docusaurus-renderer.d.ts.map +1 -1
  62. package/dist/esm/companion/rendering/technical-documentation-docusaurus-renderer.js +8 -0
  63. package/dist/esm/companion/rendering/technical-documentation-docusaurus-renderer.js.map +1 -1
  64. package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.d.ts.map +1 -1
  65. package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.js +20 -0
  66. package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.js.map +1 -1
  67. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.d.ts +2 -0
  68. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.d.ts.map +1 -1
  69. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.js +48 -31
  70. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.js.map +1 -1
  71. package/dist/esm/companion/rendering/technical-documentation-render-model.d.ts.map +1 -1
  72. package/dist/esm/companion/rendering/technical-documentation-render-model.js +26 -10
  73. package/dist/esm/companion/rendering/technical-documentation-render-model.js.map +1 -1
  74. package/dist/esm/companion/rendering/technical-documentation-search-index-renderer.d.ts.map +1 -1
  75. package/dist/esm/companion/rendering/technical-documentation-search-index-renderer.js.map +1 -1
  76. package/dist/esm/companion/spec-to-operation-doc.d.ts +52 -10
  77. package/dist/esm/companion/spec-to-operation-doc.d.ts.map +1 -1
  78. package/dist/esm/companion/spec-to-operation-doc.js +125 -7
  79. package/dist/esm/companion/spec-to-operation-doc.js.map +1 -1
  80. package/dist/esm/companion/technical-documentation-asset-path.d.ts.map +1 -1
  81. package/dist/esm/companion/technical-documentation-capture-execution-port.d.ts.map +1 -1
  82. package/dist/esm/companion/technical-documentation-capture-execution-port.js.map +1 -1
  83. package/dist/esm/companion/technical-documentation-diagram-definitions.d.ts.map +1 -1
  84. package/dist/esm/companion/technical-documentation-diagram-definitions.js.map +1 -1
  85. package/dist/esm/companion/technical-documentation-diagram-materializer.d.ts.map +1 -1
  86. package/dist/esm/companion/technical-documentation-diagram-materializer.js.map +1 -1
  87. package/dist/esm/companion/technical-documentation-placeholder-materializer.d.ts.map +1 -1
  88. package/dist/esm/companion/zod-to-openapi.d.ts.map +1 -1
  89. package/dist/esm/companion-exports.d.ts.map +1 -1
  90. package/dist/esm/config/define-tech-doc-config.d.ts.map +1 -1
  91. package/dist/esm/config/index.d.ts.map +1 -1
  92. package/dist/esm/config/wildo-tech-doc-config.schemas.d.ts.map +1 -1
  93. package/dist/esm/config/wildo-tech-doc-config.schemas.js.map +1 -1
  94. package/dist/esm/content/application-consumer-documentation-content-manifest.schemas.d.ts.map +1 -1
  95. package/dist/esm/content/application-consumer-documentation-content.techdoc.d.ts +27 -24
  96. package/dist/esm/content/application-consumer-documentation-content.techdoc.d.ts.map +1 -1
  97. package/dist/esm/content/application-consumer-documentation-content.techdoc.js +205 -82
  98. package/dist/esm/content/application-consumer-documentation-content.techdoc.js.map +1 -1
  99. package/dist/esm/content.exports.d.ts.map +1 -1
  100. package/dist/esm/index.d.ts.map +1 -1
  101. package/dist/esm/openapi/api-reference-link-index.d.ts +3 -0
  102. package/dist/esm/openapi/api-reference-link-index.d.ts.map +1 -1
  103. package/dist/esm/openapi/api-reference-link-index.js +26 -15
  104. package/dist/esm/openapi/api-reference-link-index.js.map +1 -1
  105. package/dist/esm/openapi/api-reference-pages.d.ts +55 -0
  106. package/dist/esm/openapi/api-reference-pages.d.ts.map +1 -0
  107. package/dist/esm/openapi/api-reference-pages.js +229 -0
  108. package/dist/esm/openapi/api-reference-pages.js.map +1 -0
  109. package/dist/esm/openapi/api-reference-search.d.ts +53 -0
  110. package/dist/esm/openapi/api-reference-search.d.ts.map +1 -0
  111. package/dist/esm/openapi/api-reference-search.js +100 -0
  112. package/dist/esm/openapi/api-reference-search.js.map +1 -0
  113. package/dist/esm/openapi/api-reference-targets.d.ts +11 -0
  114. package/dist/esm/openapi/api-reference-targets.d.ts.map +1 -1
  115. package/dist/esm/openapi/api-reference-targets.js +8 -0
  116. package/dist/esm/openapi/api-reference-targets.js.map +1 -1
  117. package/dist/esm/openapi/index.d.ts +2 -0
  118. package/dist/esm/openapi/index.d.ts.map +1 -1
  119. package/dist/esm/openapi/index.js +2 -0
  120. package/dist/esm/openapi/index.js.map +1 -1
  121. package/dist/esm/openapi/openapi-generation-output.schemas.d.ts.map +1 -1
  122. package/dist/esm/openapi-reference-model.exports.d.ts +2 -0
  123. package/dist/esm/openapi-reference-model.exports.d.ts.map +1 -1
  124. package/dist/esm/openapi-reference-model.exports.js +2 -0
  125. package/dist/esm/openapi-reference-model.exports.js.map +1 -1
  126. package/dist/esm/runtime/AuthExchangePage.d.ts +45 -4
  127. package/dist/esm/runtime/AuthExchangePage.d.ts.map +1 -1
  128. package/dist/esm/runtime/AuthExchangePage.js +45 -12
  129. package/dist/esm/runtime/AuthExchangePage.js.map +1 -1
  130. package/dist/esm/runtime/DocsAuthContext.d.ts +2 -2
  131. package/dist/esm/runtime/DocsAuthContext.d.ts.map +1 -1
  132. package/dist/esm/runtime/DocsAuthContext.js +8 -4
  133. package/dist/esm/runtime/DocsAuthContext.js.map +1 -1
  134. package/dist/esm/runtime/DocsFrontendProviders.d.ts +30 -0
  135. package/dist/esm/runtime/DocsFrontendProviders.d.ts.map +1 -0
  136. package/dist/esm/runtime/DocsFrontendProviders.js +39 -0
  137. package/dist/esm/runtime/DocsFrontendProviders.js.map +1 -0
  138. package/dist/esm/runtime/DocsProviderComponent.d.ts +41 -0
  139. package/dist/esm/runtime/DocsProviderComponent.d.ts.map +1 -0
  140. package/dist/esm/runtime/DocsProviderComponent.js +17 -0
  141. package/dist/esm/runtime/DocsProviderComponent.js.map +1 -0
  142. package/dist/esm/runtime/decode-jwt-claims.d.ts.map +1 -1
  143. package/dist/esm/runtime/docs-auth-client.d.ts.map +1 -1
  144. package/dist/esm/runtime/docs-auth-session.schemas.d.ts.map +1 -1
  145. package/dist/esm/runtime/documentation-site-translator.d.ts +53 -0
  146. package/dist/esm/runtime/documentation-site-translator.d.ts.map +1 -0
  147. package/dist/esm/runtime/documentation-site-translator.js +51 -0
  148. package/dist/esm/runtime/documentation-site-translator.js.map +1 -0
  149. package/dist/esm/runtime/frontend-provider-registry.techdoc.d.ts +1 -2
  150. package/dist/esm/runtime/frontend-provider-registry.techdoc.d.ts.map +1 -1
  151. package/dist/esm/runtime/frontend-provider-registry.techdoc.js.map +1 -1
  152. package/dist/esm/runtime/index.d.ts +8 -0
  153. package/dist/esm/runtime/index.d.ts.map +1 -1
  154. package/dist/esm/runtime/index.js +8 -0
  155. package/dist/esm/runtime/index.js.map +1 -1
  156. package/dist/esm/runtime/openapi-reference-conservation.d.ts.map +1 -1
  157. package/dist/esm/runtime/openapi-reference-model.d.ts +30 -0
  158. package/dist/esm/runtime/openapi-reference-model.d.ts.map +1 -1
  159. package/dist/esm/runtime/openapi-reference-model.js +85 -11
  160. package/dist/esm/runtime/openapi-reference-model.js.map +1 -1
  161. package/dist/esm/runtime/openapi-reference-navigation.d.ts +50 -0
  162. package/dist/esm/runtime/openapi-reference-navigation.d.ts.map +1 -0
  163. package/dist/esm/runtime/openapi-reference-navigation.js +46 -0
  164. package/dist/esm/runtime/openapi-reference-navigation.js.map +1 -0
  165. package/dist/esm/runtime/openapi-reference-samples.d.ts +40 -0
  166. package/dist/esm/runtime/openapi-reference-samples.d.ts.map +1 -0
  167. package/dist/esm/runtime/openapi-reference-samples.js +169 -0
  168. package/dist/esm/runtime/openapi-reference-samples.js.map +1 -0
  169. package/dist/esm/runtime/openapi-reference-styles.d.ts +28 -0
  170. package/dist/esm/runtime/openapi-reference-styles.d.ts.map +1 -0
  171. package/dist/esm/runtime/openapi-reference-styles.js +292 -0
  172. package/dist/esm/runtime/openapi-reference-styles.js.map +1 -0
  173. package/dist/esm/runtime/openapi-reference-view.d.ts +40 -5
  174. package/dist/esm/runtime/openapi-reference-view.d.ts.map +1 -1
  175. package/dist/esm/runtime/openapi-reference-view.js +828 -82
  176. package/dist/esm/runtime/openapi-reference-view.js.map +1 -1
  177. package/dist/esm/runtime/openapi-reference-words-context.d.ts +12 -0
  178. package/dist/esm/runtime/openapi-reference-words-context.d.ts.map +1 -0
  179. package/dist/esm/runtime/openapi-reference-words-context.js +30 -0
  180. package/dist/esm/runtime/openapi-reference-words-context.js.map +1 -0
  181. package/dist/esm/runtime/openapi-reference-words.d.ts +205 -0
  182. package/dist/esm/runtime/openapi-reference-words.d.ts.map +1 -0
  183. package/dist/esm/runtime/openapi-reference-words.js +162 -0
  184. package/dist/esm/runtime/openapi-reference-words.js.map +1 -0
  185. package/dist/esm/runtime/provider-component-registry.techdoc.d.ts +31 -0
  186. package/dist/esm/runtime/provider-component-registry.techdoc.d.ts.map +1 -0
  187. package/dist/esm/runtime/provider-component-registry.techdoc.js +35 -0
  188. package/dist/esm/runtime/provider-component-registry.techdoc.js.map +1 -0
  189. package/dist/esm/runtime/use-docs-auth-session.d.ts.map +1 -1
  190. package/dist/esm/runtime/use-docs-frontend-provider-registry.d.ts +1 -0
  191. package/dist/esm/runtime/use-docs-frontend-provider-registry.d.ts.map +1 -1
  192. package/dist/esm/runtime/use-docs-frontend-provider-registry.js +10 -2
  193. package/dist/esm/runtime/use-docs-frontend-provider-registry.js.map +1 -1
  194. package/dist/esm/runtime/use-docs-provider-component.d.ts +29 -0
  195. package/dist/esm/runtime/use-docs-provider-component.d.ts.map +1 -0
  196. package/dist/esm/runtime/use-docs-provider-component.js +42 -0
  197. package/dist/esm/runtime/use-docs-provider-component.js.map +1 -0
  198. package/dist/esm/runtime/use-docs-provider-scripts.d.ts +37 -0
  199. package/dist/esm/runtime/use-docs-provider-scripts.d.ts.map +1 -0
  200. package/dist/esm/runtime/use-docs-provider-scripts.js +47 -0
  201. package/dist/esm/runtime/use-docs-provider-scripts.js.map +1 -0
  202. package/dist/esm/runtime/use-docs-provider-sdks.d.ts.map +1 -1
  203. package/dist/esm/runtime/use-docs-provider-sdks.js.map +1 -1
  204. package/dist/tsconfig.build.tsbuildinfo +1 -1
  205. package/package.json +8 -24
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-reference-view.js","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-view.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Fragment, useEffect, useMemo, useState, type ReactNode } from 'react';\nimport { ApiReferenceSchemaCompositionKind } from './openapi-reference-model';\nimport type {\n ApiReferenceMediaType,\n ApiReferenceExample,\n ApiReferenceModel,\n ApiReferenceParameter,\n ApiReferenceResource,\n ApiReferenceResourceCategory,\n ApiReferenceResponse,\n ApiReferenceSchemaNode,\n ApiReferenceSchemaProperty,\n ApiReferenceSecurityScheme,\n ApiReferenceServer,\n ApiReferenceVariant,\n} from './openapi-reference-model';\n\n/**\n * Generic OpenAPI reference presentation for every generated application.\n *\n * It receives only the ephemeral model derived from verified OpenAPI bytes.\n * Application routes, branding, and document loading remain outside this\n * component; API semantics remain in OpenAPI rather than in React.\n */\nexport function OpenApiReferenceView({ model }: { readonly model: ApiReferenceModel }): ReactNode {\n const [query, setQuery] = useState('');\n const [selectedResourceRef, setSelectedResourceRef] = useState<string | null>(null);\n const [activeFragment, setActiveFragment] = useState(() => currentFragment());\n const resources = useMemo(() => filterResources(model, query), [model, query]);\n const selectedResource = model.resources.find((resource) => resource.resourceRef === selectedResourceRef) ?? null;\n\n useEffect(() => {\n const synchronizeSelection = () => {\n const fragment = currentFragment();\n setActiveFragment(fragment);\n setSelectedResourceRef(findResourceForFragment(model.resources, fragment)?.resourceRef ?? null);\n };\n synchronizeSelection();\n window.addEventListener('hashchange', synchronizeSelection);\n return () => window.removeEventListener('hashchange', synchronizeSelection);\n }, [model]);\n\n /**\n * The browser performs its ordinary fragment jump before React has mounted a\n * resource selected from a deep link. Repeat the jump after that resource is\n * present so resource, family and variant URLs all behave as true deep links.\n */\n useEffect(() => {\n const target = activeFragment.length > 0 ? document.getElementById(activeFragment) : null;\n if (target !== null && typeof target.scrollIntoView === 'function') target.scrollIntoView({ block: 'start' });\n }, [activeFragment, selectedResource]);\n\n return <>\n {model.description !== null ? <OpenApiDocumentDescription description={model.description} /> : null}\n {(model.servers.length > 0 || model.securitySchemes.length > 0)\n ? <ApiConnectionDetails servers={model.servers} securitySchemes={model.securitySchemes} />\n : null}\n <p>{model.operationCount} operations across {model.resources.length} resources.</p>\n <div className=\"margin-bottom--lg\">\n <label htmlFor=\"api-reference-search\">Search this API reference</label>\n <input\n id=\"api-reference-search\"\n className=\"margin-left--sm\"\n type=\"search\"\n aria-describedby=\"api-reference-search-status\"\n value={query}\n onChange={(event) => {\n setQuery(event.target.value);\n clearResourceSelection();\n }}\n placeholder=\"Resource, operation, path, role…\"\n />\n {query.length > 0 ? <button className=\"button button--secondary button--sm margin-left--sm\" type=\"button\" onClick={() => setQuery('')}>Clear</button> : null}\n </div>\n <p id=\"api-reference-search-status\" className=\"margin-bottom--lg\" role=\"status\" aria-live=\"polite\">\n {query.length > 0 ? `${resources.length} matching resource${resources.length === 1 ? '' : 's'}.` : ''}\n </p>\n <details open={selectedResource === null} className=\"margin-bottom--xl\">\n <summary>Browse {resources.length} resource{resources.length === 1 ? '' : 's'}</summary>\n <nav aria-label=\"API resources\">\n {resourceCategoryGroups(resources).map((group) => <section key={group.id} className=\"margin-top--lg\">\n {group.category !== null ? <>\n <h2 id={group.anchorId}>{group.category.label}</h2>\n {group.category.description !== null ? <p>{group.category.description}</p> : null}\n </> : null}\n <ul style={{ display: 'grid', gap: '0.75rem', gridTemplateColumns: 'repeat(auto-fit, minmax(16rem, 1fr))', listStyle: 'none', margin: '1rem 0 0', padding: 0 }}>\n {group.resources.map((resource) => <ResourceCard key={resource.resourceRef} resource={resource} />)}\n </ul>\n </section>)}\n </nav>\n </details>\n {resources.length === 0 ? <p role=\"status\">No resources or operation variants match this search.</p> : null}\n {selectedResource === null && resources.length > 0 ? <p role=\"status\">Select a resource to explore its operation families and variants.</p> : null}\n {selectedResource !== null ? <section key={selectedResource.resourceRef} className=\"margin-bottom--xl\">\n <p><button className=\"button button--secondary button--sm\" type=\"button\" onClick={clearResourceSelection}>All resources</button></p>\n <ResourceReference resource={selectedResource} activeFragment={activeFragment} />\n </section> : null}\n <ComponentSchemaReference schemas={model.componentSchemas} activeFragment={activeFragment} />\n </>;\n}\n\nfunction OpenApiDocumentDescription({ description }: { readonly description: string }): ReactNode {\n const conventionsMarker = '\\n\\n## API conventions';\n const markerIndex = description.indexOf(conventionsMarker);\n const overview = markerIndex === -1 ? description : description.slice(0, markerIndex);\n const conventions = markerIndex === -1 ? null : description.slice(markerIndex + conventionsMarker.length).trim();\n return <section className=\"margin-bottom--lg\" aria-label=\"API overview\">\n <OpenApiCommonMark source={overview} />\n {conventions !== null && conventions.length > 0 ? <details className=\"margin-top--md\">\n <summary><h2 style={{ display: 'inline', fontSize: 'inherit', margin: 0 }}>API conventions</h2></summary>\n <div className=\"margin-top--md\"><OpenApiCommonMark source={conventions} /></div>\n </details> : null}\n </section>;\n}\n\n/**\n * Safe, deliberately small CommonMark presenter for the generator-owned\n * OpenAPI description vocabulary. It supports the headings, paragraphs,\n * unordered lists, strong text and inline code emitted by the generator and\n * never evaluates HTML.\n */\nfunction OpenApiCommonMark({ source }: { readonly source: string }): ReactNode {\n const lines = source.split(/\\r?\\n/);\n const blocks: ReactNode[] = [];\n let index = 0;\n while (index < lines.length) {\n const line = lines[index] ?? '';\n if (line.trim().length === 0) {\n index += 1;\n continue;\n }\n const heading = line.match(/^(#{2,4})\\s+(.+)$/);\n if (heading !== null) {\n const text = heading[2] ?? '';\n blocks.push(heading[1]?.length === 2\n ? <h2 key={`heading:${index}`}><OpenApiInlineCommonMark source={text} /></h2>\n : <h3 key={`heading:${index}`}><OpenApiInlineCommonMark source={text} /></h3>);\n index += 1;\n continue;\n }\n if (line.startsWith('- ')) {\n const items: string[] = [];\n while (index < lines.length && (lines[index] ?? '').startsWith('- ')) {\n items.push((lines[index] ?? '').slice(2));\n index += 1;\n }\n blocks.push(<ul key={`list:${index}`}>{items.map((item, itemIndex) => <li key={`${itemIndex}:${item}`}><OpenApiInlineCommonMark source={item} /></li>)}</ul>);\n continue;\n }\n const paragraph: string[] = [];\n while (index < lines.length) {\n const candidate = lines[index] ?? '';\n if (candidate.trim().length === 0 || /^(#{2,4})\\s+/.test(candidate) || candidate.startsWith('- ')) break;\n paragraph.push(candidate.trim());\n index += 1;\n }\n blocks.push(<p key={`paragraph:${index}`}><OpenApiInlineCommonMark source={paragraph.join(' ')} /></p>);\n }\n return <>{blocks}</>;\n}\n\nfunction OpenApiInlineCommonMark({ source }: { readonly source: string }): ReactNode {\n return <>{source.split(/(\\*\\*[^*]+\\*\\*|`[^`]+`)/g).filter(Boolean).map((part, index) => {\n if (part.startsWith('**') && part.endsWith('**')) return <strong key={`${index}:${part}`}>{part.slice(2, -2)}</strong>;\n if (part.startsWith('`') && part.endsWith('`')) return <code key={`${index}:${part}`}>{part.slice(1, -1)}</code>;\n return <Fragment key={`${index}:${part}`}>{part}</Fragment>;\n })}</>;\n}\n\nfunction ApiConnectionDetails({\n servers,\n securitySchemes,\n}: {\n readonly servers: readonly ApiReferenceServer[];\n readonly securitySchemes: readonly ApiReferenceSecurityScheme[];\n}): ReactNode {\n return <section className=\"card margin-bottom--lg\" aria-labelledby=\"api-connection-details\">\n <div className=\"card__body\">\n <h2 id=\"api-connection-details\">Connection details</h2>\n {servers.length > 0 ? <>\n <h3>Base URLs</h3>\n <ul>{servers.map((server) => <li key={server.url}><code>{server.url}</code>{server.description !== null ? <> — {server.description}</> : null}</li>)}</ul>\n </> : null}\n {securitySchemes.length > 0 ? <>\n <h3>Authentication mechanisms</h3>\n <dl>{securitySchemes.map((securityScheme) => <Fragment key={securityScheme.name}>\n <dt><code>{securityScheme.name}</code></dt>\n <dd>\n <p className=\"margin-bottom--sm\">\n Type: <code>{securityScheme.type}</code>\n {securityScheme.scheme !== null ? <> · Scheme: <code>{securityScheme.scheme}</code></> : null}\n {securityScheme.bearerFormat !== null ? <> · Format: <code>{securityScheme.bearerFormat}</code></> : null}\n {securityScheme.location !== null ? <> · Location: <code>{securityScheme.location}</code></> : null}\n {securityScheme.parameterName !== null ? <> · Name: <code>{securityScheme.parameterName}</code></> : null}\n </p>\n {securityScheme.description !== null ? <p><OpenApiInlineCommonMark source={securityScheme.description} /></p> : null}\n </dd>\n </Fragment>)}</dl>\n </> : null}\n </div>\n </section>;\n}\n\nfunction ResourceCard({ resource }: { readonly resource: ApiReferenceResource }): ReactNode {\n const variantCount = resource.families.reduce((count, family) => count + family.variants.length, 0);\n return <li style={{ border: '1px solid var(--ifm-color-emphasis-300)', borderRadius: '0.5rem', padding: '1rem' }}>\n <a href={`#${resource.anchorId}`}><strong>{resource.label}</strong></a>\n {resource.description !== null ? <p className=\"margin-top--sm margin-bottom--sm\">{resource.description}</p> : null}\n <p className=\"margin-bottom--none text--muted\">{resource.families.length} operation {resource.families.length === 1 ? 'family' : 'families'} · {variantCount} variant{variantCount === 1 ? '' : 's'}</p>\n </li>;\n}\n\n/**\n * Groups only by source-projected category metadata. A document without\n * categories remains usable, but it is never silently bucketed by filenames,\n * labels or a framework-owned guess.\n */\nfunction resourceCategoryGroups(resources: readonly ApiReferenceResource[]): ReadonlyArray<{\n readonly id: string;\n readonly anchorId: string;\n readonly category: ApiReferenceResourceCategory | null;\n readonly resources: readonly ApiReferenceResource[];\n}> {\n const groups = new Map<string, { category: ApiReferenceResourceCategory | null; resources: ApiReferenceResource[] }>();\n for (const resource of resources) {\n const key = resource.category?.id ?? '__uncategorized__';\n const group = groups.get(key) ?? { category: resource.category, resources: [] };\n if (group.category?.label !== resource.category?.label || group.category?.description !== resource.category?.description) {\n throw new Error(`API reference category '${key}' has inconsistent source metadata`);\n }\n group.resources.push(resource);\n groups.set(key, group);\n }\n return [...groups.entries()]\n .map(([id, group]) => ({\n id,\n anchorId: group.category === null ? 'uncategorized-resources' : group.category.anchorId,\n category: group.category,\n resources: group.resources,\n }))\n .sort((left, right) => (left.category?.label ?? '').localeCompare(right.category?.label ?? ''));\n}\n\nfunction ResourceReference({ resource, activeFragment }: { readonly resource: ApiReferenceResource; readonly activeFragment: string }): ReactNode {\n return <>\n <h2 id={resource.anchorId}>{resource.label}</h2>\n {resource.description !== null ? <p>{resource.description}</p> : null}\n {resource.lifecycleRole !== null ? <><h3>Lifecycle</h3><p>{resource.lifecycleRole}</p></> : null}\n {resource.relationships.length > 0 ? <RelationshipSemantics relationships={resource.relationships} /> : null}\n {resource.families.map((family) => <div key={family.familyRef} className=\"card margin-bottom--md\">\n <div className=\"card__body\">\n <h3 id={family.anchorId}>{family.label}</h3>\n <p className=\"text--muted\">{family.variants.length} documented variant{family.variants.length === 1 ? '' : 's'}</p>\n {family.variants.map((variant) => <OperationVariant key={variant.operationId} variant={variant} activeFragment={activeFragment} />)}\n </div>\n </div>)}\n </>;\n}\n\nfunction RelationshipSemantics({ relationships }: { readonly relationships: ApiReferenceResource['relationships'] }): ReactNode {\n return <details className=\"margin-bottom--lg\">\n <summary>Data relationships ({relationships.length})</summary>\n <ul className=\"margin-top--md\">\n {relationships.map((relationship, index) => <li key={`${relationship.relatedResourceName}:${relationship.foreignKeyField ?? 'none'}:${relationship.nature}:${index}`}>\n <strong>{relationship.relatedResourceLabel}</strong>{relationship.foreignKeyField !== null ? <> via <code>{relationship.foreignKeyField}</code></> : null}: {relationship.nature} relationship ({relationship.resourceCardinality} to {relationship.relatedResourceCardinality}); lifecycle: {relationship.lifecycleModel}.\n {relationship.onParentDelete !== null\n ? <> Parent-delete policy: {relationship.onParentDelete.enabled ? `${relationship.onParentDelete.strategy} (${relationship.onParentDelete.mode}, depth ${relationship.onParentDelete.maxDepth})` : 'does not cascade'}.</>\n : null}\n </li>)}\n </ul>\n </details>;\n}\n\nfunction clearResourceSelection(): void {\n if (typeof window !== 'undefined') window.location.hash = '';\n}\n\nfunction findResourceForFragment(resources: ApiReferenceModel['resources'], hash: string): ApiReferenceResource | null {\n const fragment = hash.startsWith('#') ? hash.slice(1) : hash;\n if (fragment.length === 0) return null;\n return resources.find((resource) => resource.anchorId === fragment\n || resource.families.some((family) => family.anchorId === fragment || family.variants.some((variant) => variant.anchorId === fragment\n || variant.requestBody?.anchorId === fragment\n || variant.responses.some((response) => response.anchorId === fragment)))) ?? null;\n}\n\nfunction filterResources(model: ApiReferenceModel, query: string): ApiReferenceModel['resources'] {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (normalizedQuery.length === 0) return model.resources;\n return model.resources.map((resource) => ({\n ...resource,\n families: resource.families.map((family) => ({\n ...family,\n variants: family.variants.filter((variant) => [\n resource.label,\n resource.description ?? '',\n resource.lifecycleRole ?? '',\n ...resource.relationships.flatMap((relationship) => [\n relationship.relatedResourceName,\n relationship.relatedResourceLabel,\n relationship.foreignKeyField ?? '',\n relationship.nature,\n relationship.lifecycleModel,\n relationship.onParentDelete?.strategy ?? '',\n ]),\n family.label,\n variant.summary,\n variant.method,\n variant.path,\n variant.access.authenticationSummary,\n ...variant.access.roleRequirements.flatMap((requirement) => [\n requirement.role,\n requirement.label,\n requirement.businessRole ?? '',\n requirement.authorityBoundary ?? '',\n ]),\n ...variant.securitySchemes,\n ].some((value) => value.toLocaleLowerCase().includes(normalizedQuery))),\n })).filter((family) => family.variants.length > 0),\n })).filter((resource) => resource.families.length > 0);\n}\n\nfunction OperationVariant({ variant, activeFragment }: { readonly variant: ApiReferenceVariant; readonly activeFragment: string }): ReactNode {\n const [isContractOpen, setIsContractOpen] = useState(() => isContractTarget(variant, activeFragment));\n\n useEffect(() => {\n if (isContractTarget(variant, activeFragment)) setIsContractOpen(true);\n }, [activeFragment, variant]);\n\n return <article className=\"margin-bottom--lg\">\n <h4 id={variant.anchorId}>{variant.summary}</h4>\n <p><code>{variant.method}</code> <code>{variant.path}</code></p>\n {variant.description !== null ? <p>{variant.description}</p> : null}\n <p className=\"margin-bottom--sm\">\n <strong>Access:</strong> {variant.access.authenticationSummary}\n {variant.access.roleRequirements.length > 0 ? <> Authorization: any one of {variant.access.roleRequirements.map((requirement, index) => <Fragment key={requirement.role}>\n {index > 0 ? ' or ' : ''}<strong>{requirement.label}</strong> (<code>{requirement.role}</code>)\n </Fragment>)}.</> : null}\n {' '}\n {variant.securitySchemes.length > 0 ? <>Authentication: <code>{variant.securitySchemes.join(' or ')}</code>. </> : null}\n {variant.idempotent !== null ? <>Idempotent: <code>{variant.idempotent ? 'yes' : 'no'}</code>.</> : null}\n </p>\n {variant.access.roleRequirements.some((requirement) => requirement.businessRole !== null || requirement.authorityBoundary !== null) ? <details className=\"margin-bottom--sm\">\n <summary>Role authority details</summary>\n <ul className=\"margin-top--sm\">{variant.access.roleRequirements.map((requirement) => <li key={requirement.role}>\n <strong>{requirement.label}</strong>\n {requirement.businessRole !== null ? <> — {requirement.businessRole}</> : null}\n {requirement.authorityBoundary !== null ? <p className=\"margin-bottom--sm\">Boundary: {requirement.authorityBoundary}</p> : null}\n </li>)}</ul>\n </details> : null}\n <details open={isContractOpen} onToggle={(event) => setIsContractOpen(event.currentTarget.open)}>\n <summary>Request and response contract</summary>\n <div className=\"margin-top--md\">\n <h5>Parameters</h5>\n {variant.parameters.length === 0 ? <p>No parameters.</p> : <ParameterTable parameters={variant.parameters} />}\n {variant.requestBody !== null ? <>\n <h5 id={variant.requestBody.anchorId}>Request body {variant.requestBody.required ? '(required)' : '(optional)'}</h5>\n <RepresentationList mediaTypes={variant.requestBody.mediaTypes} />\n </> : null}\n <h5>Responses</h5>\n {variant.responses.length === 0 ? <p>No response contract was emitted.</p> : variant.responses.map((response) => <ResponseContract key={response.status} response={response} />)}\n </div>\n </details>\n </article>;\n}\n\n/** Opens the native contract disclosure before a request/response fragment is scrolled into view. */\nfunction isContractTarget(variant: ApiReferenceVariant, fragment: string): boolean {\n return variant.requestBody?.anchorId === fragment || variant.responses.some((response) => response.anchorId === fragment);\n}\n\nfunction currentFragment(): string {\n if (typeof window === 'undefined') return '';\n return window.location.hash.startsWith('#') ? window.location.hash.slice(1) : window.location.hash;\n}\n\nfunction ParameterTable({ parameters }: { readonly parameters: readonly ApiReferenceParameter[] }): ReactNode {\n return <div style={{ maxWidth: '100%', overflowX: 'auto' }}>\n <table>\n <thead><tr><th>Name</th><th>Location</th><th>Type</th><th>Required</th><th>Description</th><th>Examples</th></tr></thead>\n <tbody>{parameters.map((parameter) => <tr key={`${parameter.location}:${parameter.name}`}>\n <td><code>{parameter.name}</code></td><td>{parameter.location}</td><td>{parameter.schema === null ? '—' : <SchemaType schema={parameter.schema} />}</td><td>{parameter.required ? 'Yes' : 'No'}</td><td>{parameter.description ?? '—'}</td>\n <td>{parameter.examples.length > 0 ? <Examples examples={parameter.examples} /> : '—'}</td>\n </tr>)}</tbody>\n </table>\n </div>;\n}\n\nfunction ResponseContract({ response }: { readonly response: ApiReferenceResponse }): ReactNode {\n return <section className=\"margin-bottom--md\">\n <p id={response.anchorId} className=\"margin-bottom--sm\"><strong><code>{response.status}</code></strong>{response.description !== null ? ` — ${response.description}` : ''}</p>\n <RepresentationList mediaTypes={response.mediaTypes} />\n </section>;\n}\n\nfunction RepresentationList({ mediaTypes }: { readonly mediaTypes: readonly ApiReferenceMediaType[] }): ReactNode {\n if (mediaTypes.length === 0) return <p>No structured representation.</p>;\n return <ul>{mediaTypes.map((representation) => <li key={representation.mediaType}>\n <code>{representation.mediaType}</code>{representation.schema !== null ? <> — <SchemaType schema={representation.schema} /></> : null}\n {representation.examples.length > 0 ? <Examples examples={representation.examples} /> : null}\n </li>)}</ul>;\n}\n\n/** Presents a schema identity without resolving component references in React. */\nfunction SchemaType({ schema }: { readonly schema: ApiReferenceSchemaNode }): ReactNode {\n if (schema.booleanSchema !== null) return <code>{schema.booleanSchema ? 'any value' : 'no value'}</code>;\n if (schema.referenceName !== null) {\n return schema.referenceAnchorId === null\n ? <code>{schema.referenceName}</code>\n : <a href={`#${schema.referenceAnchorId}`}><code>{schema.referenceName}</code></a>;\n }\n if (schema.types.length > 0) return <code>{schema.types.join(' | ')}</code>;\n if (schema.compositions.length > 0) return <code>{schema.compositions.map((composition) => composition.kind).join(' + ')}</code>;\n return <code>schema</code>;\n}\n\nfunction schemaHasNestedContract(schema: ApiReferenceSchemaNode): boolean {\n return schema.properties.length > 0\n || schema.items !== null\n || schema.compositions.length > 0\n || (schema.additionalProperties !== null && typeof schema.additionalProperties === 'object');\n}\n\nfunction schemaHasContractDetails(schema: ApiReferenceSchemaNode): boolean {\n return schemaHasNestedContract(schema)\n || schema.description !== null\n || schema.format !== null\n || schema.defaultValue !== null\n || schema.constValue !== null\n || schema.enumValues.length > 0\n || schema.constraints.length > 0\n || schema.additionalProperties !== null;\n}\n\n/** Recursively renders only the contract fields carried by the OpenAPI Schema Object. */\nfunction SchemaContract({ schema }: { readonly schema: ApiReferenceSchemaNode }): ReactNode {\n return <div>\n {schema.description !== null ? <p>{schema.description}</p> : null}\n {schema.format !== null ? <p className=\"margin-bottom--sm\"><strong>Format:</strong> <code>{schema.format}</code></p> : null}\n {schema.defaultValue !== null ? <p className=\"margin-bottom--sm\"><strong>Default:</strong> <code>{schema.defaultValue}</code></p> : null}\n {schema.constValue !== null ? <p className=\"margin-bottom--sm\"><strong>Constant:</strong> <code>{schema.constValue}</code></p> : null}\n {schema.constraints.length > 0 ? <dl className=\"margin-bottom--md\">\n {schema.constraints.map((constraint) => <Fragment key={constraint.kind}>\n <dt><code>{constraint.kind}</code></dt><dd><code>{constraint.jsonValue}</code></dd>\n </Fragment>)}\n </dl> : null}\n {schema.enumValues.length > 0 ? <>\n <p className=\"margin-bottom--sm\"><strong>Allowed values</strong></p>\n <ul>{schema.enumValues.map((enumValue) => <li key={enumValue.jsonValue}>\n <code>{enumValue.jsonValue}</code>{enumValue.description !== null ? ` — ${enumValue.description}` : ''}\n </li>)}</ul>\n </> : null}\n {schema.properties.length > 0 ? <>\n <p className=\"margin-bottom--sm\"><strong>Properties</strong></p>\n <ul style={{ listStyle: 'none', paddingInlineStart: '1rem' }}>\n {schema.properties.map((property) => <SchemaProperty key={property.name} property={property} />)}\n </ul>\n </> : null}\n {schema.items !== null ? <details className=\"margin-bottom--sm\">\n <summary>Array items — <SchemaType schema={schema.items} /></summary>\n <div className=\"margin-left--md margin-top--sm\"><SchemaContract schema={schema.items} /></div>\n </details> : null}\n {schema.compositions.map((composition) => <section key={composition.kind} className=\"margin-bottom--md\">\n <p className=\"margin-bottom--sm\"><strong>{schemaCompositionLabel(composition.kind)}</strong></p>\n <ol>{composition.branches.map((branch, index) => <li key={index} className=\"margin-bottom--sm\">\n <SchemaType schema={branch} />\n {schemaHasContractDetails(branch)\n ? <div className=\"margin-left--md margin-top--sm\"><SchemaContract schema={branch} /></div>\n : null}\n </li>)}</ol>\n </section>)}\n {schema.additionalProperties !== null ? <div className=\"margin-bottom--sm\">\n <strong>Additional properties:</strong>{typeof schema.additionalProperties === 'boolean'\n ? ` ${schema.additionalProperties ? 'allowed' : 'not allowed'}`\n : <><span> </span><SchemaType schema={schema.additionalProperties} /><div className=\"margin-left--md\"><SchemaContract schema={schema.additionalProperties} /></div></>}\n </div> : null}\n </div>;\n}\n\nfunction SchemaProperty({ property }: { readonly property: ApiReferenceSchemaProperty }): ReactNode {\n const identity = <><code>{property.name}</code> — <SchemaType schema={property.schema} /> — {property.required ? 'required' : 'optional'}</>;\n return <li className=\"margin-bottom--sm\" style={{ borderLeft: '2px solid var(--ifm-color-emphasis-300)', paddingInlineStart: '0.75rem' }}>\n {schemaHasNestedContract(property.schema)\n ? <details><summary>{identity}</summary><div className=\"margin-top--sm\"><SchemaContract schema={property.schema} /></div></details>\n : <><p className=\"margin-bottom--sm\">{identity}</p><SchemaContract schema={property.schema} /></>}\n </li>;\n}\n\nfunction schemaCompositionLabel(kind: ApiReferenceSchemaCompositionKind): string {\n switch (kind) {\n case ApiReferenceSchemaCompositionKind.ONE_OF: return 'One of';\n case ApiReferenceSchemaCompositionKind.ANY_OF: return 'Any of';\n case ApiReferenceSchemaCompositionKind.ALL_OF: return 'All of';\n }\n}\n\n/** Renders OpenAPI reusable schemas only when a reader explicitly selects one. */\nfunction ComponentSchemaReference({\n schemas,\n activeFragment,\n}: {\n readonly schemas: ApiReferenceModel['componentSchemas'];\n readonly activeFragment: string;\n}): ReactNode {\n const selectedSchema = schemas.find((schema) => schema.anchorId === activeFragment) ?? null;\n return <details className=\"margin-bottom--xl\" open={selectedSchema !== null}>\n <summary>Reusable data models ({schemas.length})</summary>\n {selectedSchema === null ? <p className=\"margin-top--md\">Select a request or response model link to inspect its OpenAPI schema.</p> : <section className=\"margin-top--lg\">\n <h2 id={selectedSchema.anchorId}>{selectedSchema.name}</h2>\n <p><strong>Type:</strong> <span> </span><SchemaType schema={selectedSchema.schema} /></p>\n <SchemaContract schema={selectedSchema.schema} />\n </section>}\n </details>;\n}\n\n/** Renders only OpenAPI-declared examples; this component never invents sample payloads. */\nfunction Examples({ examples }: { readonly examples: readonly ApiReferenceExample[] }): ReactNode {\n return <details className=\"margin-top--sm\">\n <summary>Examples ({examples.length})</summary>\n {examples.map((example) => <div key={example.name} className=\"margin-top--sm\">\n <p className=\"margin-bottom--sm\"><strong>{example.name}</strong>{example.summary !== null ? ` — ${example.summary}` : ''}</p>\n {example.description !== null ? <p className=\"margin-bottom--sm\">{example.description}</p> : null}\n {example.jsonValue !== null ? <pre><code>{example.jsonValue}</code></pre> : null}\n {example.externalValue !== null ? <p className=\"margin-bottom--sm\">External example: <a href={example.externalValue}>{example.externalValue}</a></p> : null}\n {example.jsonValue === null && example.externalValue === null ? <p className=\"margin-bottom--sm\">No inline example value was supplied.</p> : null}\n </div>)}\n </details>;\n}\n"]}
1
+ {"version":3,"file":"openapi-reference-view.js","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-view.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Fragment,\n createContext,\n useContext,\n useEffect,\n useMemo,\n useId,\n useRef,\n useState,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { ApiReferenceSchemaCompositionKind } from './openapi-reference-model';\nimport { ApiReferenceSampleLanguage, buildRequestSamples, responseSamples } from './openapi-reference-samples';\nimport { apiReferenceResourceSlug, type ApiReferenceNavigation } from './openapi-reference-navigation';\nimport { API_REFERENCE_STYLES } from './openapi-reference-styles';\nimport type { ApiReferenceWords } from './openapi-reference-words';\nimport { ApiReferenceWordsProvider, renderList, renderSentence, useReferenceWords } from './openapi-reference-words-context';\nimport { DocumentationListKind } from './documentation-site-translator';\nimport { apiReferencePageHref, apiReferencePageSlugForFragment } from '../openapi/api-reference-pages';\nimport type {\n ApiReferenceErrorScenario,\n ApiReferenceMediaType,\n ApiReferenceExample,\n ApiReferenceFamily,\n ApiReferenceModel,\n ApiReferenceParameter,\n ApiReferenceResource,\n ApiReferenceResourceCategory,\n ApiReferenceResponse,\n ApiReferenceSchemaNode,\n ApiReferenceSchemaProperty,\n ApiReferenceSecurityScheme,\n ApiReferenceServer,\n ApiReferenceVariant,\n} from './openapi-reference-model';\n\n/**\n * The servers and credential schemes a request sample is built from, read once from the document,\n * and the server the reader picked. The choice is shared by every sample on the page.\n */\ninterface ApiDocumentConnection {\n readonly servers: readonly ApiReferenceServer[];\n readonly serverUrl: string | null;\n readonly selectServer: (url: string) => void;\n readonly securitySchemes: readonly ApiReferenceSecurityScheme[];\n}\n\nconst ApiDocumentConnectionContext = createContext<ApiDocumentConnection>({ servers: [], serverUrl: null, selectServer: () => undefined, securitySchemes: [] });\n\n/**\n * What the schema presenters need to show a referenced component IN PLACE: the document's reusable\n * schemas by name, and the component names already being expanded on the current branch.\n *\n * The model keeps a `$ref` as a link on purpose — it preserves the component boundary and keeps\n * recursive schemas finite. The view follows that link for DISPLAY only, so a reader sees the fields\n * of `TasksListResponse` inside the operation instead of having to leave it. A name already on the\n * branch is not expanded again: the second occurrence of a recursive schema stays a link.\n */\ninterface SchemaResolution {\n readonly componentsByName: ReadonlyMap<string, ApiReferenceSchemaNode>;\n readonly expanding: ReadonlySet<string>;\n}\n\nconst SchemaResolutionContext = createContext<SchemaResolution>({ componentsByName: new Map(), expanding: new Set() });\n\n/** The component a reference node names, when it can be shown in place on this branch. */\nfunction expandableReference(schema: ApiReferenceSchemaNode, resolution: SchemaResolution): { readonly name: string; readonly schema: ApiReferenceSchemaNode } | null {\n if (schema.referenceName === null || resolution.expanding.has(schema.referenceName)) return null;\n const resolved = resolution.componentsByName.get(schema.referenceName);\n return resolved === undefined ? null : { name: schema.referenceName, schema: resolved };\n}\n\n/** The schema a presenter should describe: the referenced component when it expands, else the node itself. */\nfunction displayedSchema(schema: ApiReferenceSchemaNode, resolution: SchemaResolution): ApiReferenceSchemaNode {\n return expandableReference(schema, resolution)?.schema ?? schema;\n}\n\n/** A heading whose level follows where it sits: the same operation is an `h3` on its page and an `h4` on the single-page reference. */\nfunction Heading({ level, id, className, children }: { readonly level: number; readonly id?: string; readonly className?: string; readonly children: ReactNode }): ReactNode {\n const Tag = `h${Math.min(Math.max(level, 1), 6)}` as 'h2';\n return <Tag id={id} className={className}>{children}</Tag>;\n}\n\n/**\n * Generic OpenAPI reference presentation for every generated application.\n *\n * It receives only the ephemeral model derived from verified OpenAPI bytes.\n * Application routes, branding, and document loading remain outside this\n * component; API semantics remain in OpenAPI rather than in React.\n */\n/** The stylesheet and the two contexts every reference surface renders inside. */\nfunction ReferenceProviders({ model, words, children }: { readonly model: ApiReferenceModel; readonly words: ApiReferenceWords; readonly children: ReactNode }): ReactNode {\n const schemaResolution = useMemo<SchemaResolution>(() => ({\n componentsByName: new Map(model.componentSchemas.map((component) => [component.name, component.schema])),\n expanding: new Set(),\n }), [model]);\n const [selectedServerUrl, setSelectedServerUrl] = useState<string | null>(null);\n const connection = useMemo<ApiDocumentConnection>(() => ({\n servers: model.servers,\n serverUrl: model.servers.find((server) => server.url === selectedServerUrl)?.url ?? model.servers[0]?.url ?? null,\n selectServer: setSelectedServerUrl,\n securitySchemes: model.securitySchemes,\n }), [model, selectedServerUrl]);\n return <ApiReferenceWordsProvider value={words}><SchemaResolutionContext.Provider value={schemaResolution}><ApiDocumentConnectionContext.Provider value={connection}>\n <style>{API_REFERENCE_STYLES}</style>\n {children}\n </ApiDocumentConnectionContext.Provider></SchemaResolutionContext.Provider></ApiReferenceWordsProvider>;\n}\n\n/* Shell: rail, drawer and sub-bar --------------------------------------------------------------- */\n\nconst RAIL_ID = 'wildo-api-ref-navigation';\n\nfunction MenuIcon(): ReactNode {\n return <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" aria-hidden=\"true\"><path d=\"M4 7h16M4 12h16M4 17h16\" /></svg>;\n}\n\nfunction CloseIcon(): ReactNode {\n return <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\" /></svg>;\n}\n\nfunction ChevronIcon(): ReactNode {\n return <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.4\" strokeLinecap=\"round\" aria-hidden=\"true\"><path d=\"M6 9l6 6 6-6\" /></svg>;\n}\n\n/**\n * The page frame: the navigation rail beside the page content and, on narrower screens, a sticky\n * sub-bar whose Menu button opens the rail as a drawer. Without navigation the content fills the\n * width and no rail or sub-bar is drawn.\n */\nfunction ReferenceShell({\n navigation,\n subbarTitle,\n currentResource,\n activeFragment,\n children,\n}: {\n readonly navigation: ApiReferenceNavigation | null;\n readonly subbarTitle: string;\n readonly currentResource: ApiReferenceResource | null;\n readonly activeFragment: string;\n readonly children: ReactNode;\n}): ReactNode {\n const words = useReferenceWords();\n const [isRailOpen, setIsRailOpen] = useState(false);\n const menuButtonRef = useRef<HTMLButtonElement>(null);\n const railFilterRef = useRef<HTMLInputElement>(null);\n /** Set when the drawer is dismissed (Escape, backdrop, Close), so focus goes back to the Menu button. */\n const returnsFocusToMenu = useRef(false);\n\n /**\n * Focus moves AFTER the render that removes `inert` from the page content: the Menu button sits inside\n * that content, and a browser refuses to focus anything in an inert subtree. Focusing in the same tick\n * as `setIsRailOpen(false)` left focus on the drawer's filter input as it became hidden.\n */\n useEffect(() => {\n if (isRailOpen) {\n railFilterRef.current?.focus();\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n returnsFocusToMenu.current = true;\n setIsRailOpen(false);\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }\n if (returnsFocusToMenu.current) {\n returnsFocusToMenu.current = false;\n menuButtonRef.current?.focus();\n }\n return undefined;\n }, [isRailOpen]);\n\n const closeRail = (): void => {\n returnsFocusToMenu.current = true;\n setIsRailOpen(false);\n };\n\n if (navigation === null) {\n return <div className=\"wildo-api-ref\"><div className=\"wildo-api-ref__shell\"><div className=\"wildo-api-ref__main\">{children}</div></div></div>;\n }\n return <div className={`wildo-api-ref${isRailOpen ? ' wildo-api-ref--rail-open' : ''}`}>\n <div className=\"wildo-api-ref__shell wildo-api-ref__shell--with-rail\">\n <button type=\"button\" className=\"wildo-api-ref__backdrop\" aria-label={words.closeNavigation} tabIndex={-1} onClick={closeRail} />\n <NavigationRail\n navigation={navigation}\n currentResource={currentResource}\n activeFragment={activeFragment}\n filterRef={railFilterRef}\n onClose={closeRail}\n onNavigate={() => setIsRailOpen(false)}\n />\n {/* While the drawer is open, everything behind it is inert, so Tab stays inside the drawer. */}\n <div className=\"wildo-api-ref__main\" inert={isRailOpen || undefined}>\n <div className=\"wildo-api-ref__subbar\">\n <button\n ref={menuButtonRef}\n type=\"button\"\n className=\"wildo-api-ref__icon-button\"\n aria-label={words.openNavigation}\n aria-controls={RAIL_ID}\n aria-expanded={isRailOpen}\n onClick={() => setIsRailOpen(true)}\n ><MenuIcon /></button>\n <span className=\"wildo-api-ref__subbar-title\">{subbarTitle}</span>\n {currentResource !== null && currentResource.families.length > 0\n ? <OperationSwitcher resource={currentResource} activeFragment={activeFragment} />\n : null}\n </div>\n {children}\n </div>\n </div>\n </div>;\n}\n\n/**\n * The left rail: the other sections of the portal, a resource filter, the overview, and every\n * resource by category. The resource being read lists its operation families beneath it.\n */\nfunction NavigationRail({\n navigation,\n currentResource,\n activeFragment,\n filterRef,\n onClose,\n onNavigate,\n}: {\n readonly navigation: ApiReferenceNavigation;\n readonly currentResource: ApiReferenceResource | null;\n readonly activeFragment: string;\n readonly filterRef: { readonly current: HTMLInputElement | null };\n readonly onClose: () => void;\n readonly onNavigate: () => void;\n}): ReactNode {\n const words = useReferenceWords();\n const [query, setQuery] = useState('');\n const normalizedQuery = query.trim().toLocaleLowerCase();\n const categories = useMemo(() => navigation.categories\n .map((category) => ({\n ...category,\n resources: normalizedQuery.length === 0\n ? category.resources\n : category.resources.filter((resource) => resource.label.toLocaleLowerCase().includes(normalizedQuery)\n || (category.label ?? '').toLocaleLowerCase().includes(normalizedQuery)),\n }))\n .filter((category) => category.resources.length > 0), [navigation, normalizedQuery]);\n const matchCount = categories.reduce((count, category) => count + category.resources.length, 0);\n\n return <aside\n id={RAIL_ID}\n className=\"wildo-api-ref__rail\"\n aria-label={words.apiNavigation}\n onClick={(event) => {\n if ((event.target as HTMLElement).closest('a') !== null) onNavigate();\n }}\n >\n <div className=\"wildo-api-ref__rail-head\">\n <strong>{navigation.title}</strong>\n <button type=\"button\" className=\"wildo-api-ref__icon-button\" aria-label={words.closeNavigation} onClick={onClose}><CloseIcon /></button>\n </div>\n {navigation.sections.length > 1 ? <nav aria-label={words.apiSections} className=\"wildo-api-ref__sections\">\n {navigation.sections.map((section) => <a key={section.href} href={section.href} aria-current={section.href === navigation.sectionRootPath ? 'page' : undefined}>{section.label}</a>)}\n </nav> : null}\n <div>\n <label className=\"wildo-api-ref__label\" htmlFor={`${RAIL_ID}-filter`}>{words.filterResources}</label>\n <input\n ref={filterRef as { current: HTMLInputElement | null }}\n id={`${RAIL_ID}-filter`}\n className=\"wildo-api-ref__input\"\n type=\"search\"\n value={query}\n placeholder={words.resourceCount(navigation.resourceCount)}\n onChange={(event) => setQuery(event.target.value)}\n />\n </div>\n <nav aria-label={words.resourcesNavigation}>\n <ul className=\"wildo-api-ref__rail-list\">\n <li><a className=\"wildo-api-ref__rail-link\" href={navigation.sectionRootPath} aria-current={currentResource === null ? 'page' : undefined}>{words.overview}</a></li>\n </ul>\n <div className=\"wildo-api-ref__rail-categories\">\n {categories.length === 0 ? <p className=\"wildo-api-ref__rail-empty\" role=\"status\">{words.noResourceMatches(query)}</p> : null}\n {categories.map((category) => {\n const holdsCurrent = currentResource !== null && category.resources.some((resource) => resource.resourceRef === currentResource.resourceRef);\n return <details key={`${category.id}:${normalizedQuery.length > 0 ? 'filtered' : 'all'}`} className=\"wildo-api-ref__rail-category\" open={normalizedQuery.length > 0 || holdsCurrent}>\n <summary><span>{category.label ?? words.otherResources}</span><span className=\"wildo-api-ref__rail-count\">{category.resources.length}</span></summary>\n <ul className=\"wildo-api-ref__rail-list\">\n {category.resources.map((resource) => {\n const isCurrent = resource.resourceRef === currentResource?.resourceRef;\n return <li key={resource.resourceRef}>\n <a className=\"wildo-api-ref__rail-link\" href={resource.href} aria-current={isCurrent ? 'page' : undefined}>\n <span>{resource.label}</span>\n <span className=\"wildo-api-ref__rail-count\" aria-hidden=\"true\" title={words.operationCount(resource.operationCount)}>{resource.operationCount}</span>\n </a>\n {isCurrent ? <FamilyLinks resource={currentResource} activeFragment={activeFragment} className=\"wildo-api-ref__rail-families\" /> : null}\n </li>;\n })}\n </ul>\n </details>;\n })}\n </div>\n <p className=\"wildo-api-ref__visually-hidden\" role=\"status\">{normalizedQuery.length > 0 ? words.matchingResources(matchCount) : ''}</p>\n </nav>\n </aside>;\n}\n\n/** The method a family is known by: its first canonical variant's. */\nfunction familyMethod(family: ApiReferenceFamily): string {\n return (family.variants.find((variant) => variant.aliasOfPath === null) ?? family.variants[0])?.method ?? '';\n}\n\n/** The family that holds the fragment the reader is on, if any. */\nfunction familyForFragment(resource: ApiReferenceResource, fragment: string): ApiReferenceFamily | null {\n if (fragment.length === 0) return null;\n return resource.families.find((family) => family.anchorId === fragment || family.variants.some((variant) => variantOwnsFragment(variant, fragment))) ?? null;\n}\n\n/** Links to each operation family of `resource`, with its method, marking the one being read. */\nfunction FamilyLinks({\n resource,\n activeFragment,\n className,\n onSelect,\n}: {\n readonly resource: ApiReferenceResource;\n readonly activeFragment: string;\n readonly className: string;\n readonly onSelect?: () => void;\n}): ReactNode {\n const current = familyForFragment(resource, activeFragment);\n return <ul className={className}>\n {resource.families.map((family) => <li key={family.familyRef}>\n <a className=\"wildo-api-ref__rail-link\" href={`#${family.anchorId}`} aria-current={family === current ? 'location' : undefined} onClick={onSelect}>\n <MethodBadge method={familyMethod(family)} small />\n <span>{family.label}</span>\n </a>\n </li>)}\n </ul>;\n}\n\n/**\n * The sub-bar's operation switcher: a button naming the operation being read, opening a list of the\n * resource's operation families. It closes on a choice, on Escape and on a click outside it.\n */\nfunction OperationSwitcher({ resource, activeFragment }: { readonly resource: ApiReferenceResource; readonly activeFragment: string }): ReactNode {\n const words = useReferenceWords();\n const [isOpen, setIsOpen] = useState(false);\n const [query, setQuery] = useState('');\n const containerRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const current = familyForFragment(resource, activeFragment);\n const panelId = `${resource.anchorId}--operations`;\n\n useEffect(() => {\n if (!isOpen) return;\n const onPointerDown = (event: PointerEvent) => {\n if (containerRef.current !== null && !containerRef.current.contains(event.target as Node)) setIsOpen(false);\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n setIsOpen(false);\n buttonRef.current?.focus();\n };\n document.addEventListener('pointerdown', onPointerDown);\n document.addEventListener('keydown', onKeyDown);\n return () => {\n document.removeEventListener('pointerdown', onPointerDown);\n document.removeEventListener('keydown', onKeyDown);\n };\n }, [isOpen]);\n\n const normalizedQuery = query.trim().toLocaleLowerCase();\n const filtered = normalizedQuery.length === 0\n ? resource\n : { ...resource, families: resource.families.filter((family) => family.label.toLocaleLowerCase().includes(normalizedQuery)\n || family.variants.some((variant) => variant.summary.toLocaleLowerCase().includes(normalizedQuery) || variant.path.toLocaleLowerCase().includes(normalizedQuery))) };\n\n return <div ref={containerRef} className=\"wildo-api-ref__switcher\">\n <button\n ref={buttonRef}\n type=\"button\"\n className=\"wildo-api-ref__button\"\n aria-expanded={isOpen}\n aria-controls={panelId}\n onClick={() => setIsOpen((open) => !open)}\n >\n {current !== null ? <><MethodBadge method={familyMethod(current)} small />{current.label}</> : <>{words.operationsSwitcher(resource.families.length)}</>}\n <ChevronIcon />\n </button>\n {isOpen ? <div id={panelId} className=\"wildo-api-ref__switcher-panel\" role=\"group\" aria-label={words.resourceOperations(resource.label)}>\n {resource.families.length > 8 ? <div className=\"wildo-api-ref__switcher-filter\">\n <label className=\"wildo-api-ref__label\" htmlFor={`${panelId}-filter`}>{words.filterOperations(resource.families.length)}</label>\n <input id={`${panelId}-filter`} className=\"wildo-api-ref__input\" type=\"search\" value={query} onChange={(event) => setQuery(event.target.value)} autoFocus />\n </div> : null}\n <FamilyLinks resource={filtered} activeFragment={activeFragment} className=\"wildo-api-ref__switcher-list\" onSelect={() => setIsOpen(false)} />\n </div> : null}\n </div>;\n}\n\n/* Index ---------------------------------------------------------------------------------------- */\n\n/**\n * The section's overview, connection details, search and category grid. `resourceHref` decides where a\n * resource card leads: an anchor on the single-page reference, or the resource's own page.\n */\nfunction ResourceIndex({\n model,\n query,\n onQueryChange,\n resourceHref,\n isOpen,\n collapsible,\n}: {\n readonly model: ApiReferenceModel;\n readonly query: string;\n readonly onQueryChange: (query: string) => void;\n readonly resourceHref: (resource: ApiReferenceResource) => string;\n readonly isOpen: boolean;\n /** The single-page reference folds the grid away once a resource is selected; a section root never does. */\n readonly collapsible: boolean;\n}): ReactNode {\n const words = useReferenceWords();\n const resources = useMemo(() => filterResources(model, query), [model, query]);\n const grid = <nav aria-label={words.apiResources}>\n {resourceCategoryGroups(resources).map((group) => <section key={group.id} className=\"wildo-api-ref__category\">\n {group.category !== null ? <>\n <h2 id={group.anchorId}>{group.category.label}</h2>\n {group.category.description !== null ? <p><OpenApiInlineCommonMark source={group.category.description} /></p> : null}\n </> : null}\n <ul className=\"wildo-api-ref__resource-grid\">\n {group.resources.map((resource) => <ResourceCard key={resource.resourceRef} resource={resource} href={resourceHref(resource)} />)}\n </ul>\n </section>)}\n </nav>;\n return <>\n {model.description !== null ? <OpenApiDocumentDescription description={model.description} /> : null}\n {(model.servers.length > 0 || model.securitySchemes.length > 0)\n ? <ApiConnectionDetails servers={model.servers} securitySchemes={model.securitySchemes} />\n : null}\n <ul className=\"wildo-api-ref__stats\" aria-label={words.referenceSize}>\n <li>{words.resourceCount(model.resources.length)}</li>\n <li>{words.operationCount(model.operationCount)}</li>\n </ul>\n <p className=\"wildo-api-ref__visually-hidden\">{words.referenceSizeSummary(model.operationCount, model.resources.length)}</p>\n <div className=\"wildo-api-ref__search\">\n <div>\n <label className=\"wildo-api-ref__label\" htmlFor=\"api-reference-search\">{words.searchReference}</label>\n <input\n id=\"api-reference-search\"\n className=\"wildo-api-ref__input\"\n type=\"search\"\n aria-describedby=\"api-reference-search-status\"\n value={query}\n onChange={(event) => onQueryChange(event.target.value)}\n placeholder={words.searchPlaceholder}\n />\n </div>\n {query.length > 0 ? <button className=\"wildo-api-ref__button\" type=\"button\" onClick={() => onQueryChange('')}>{words.clearSearch}</button> : null}\n </div>\n <p id=\"api-reference-search-status\" className=\"wildo-api-ref__search-status\" role=\"status\" aria-live=\"polite\">\n {query.length > 0 ? words.matchingResources(resources.length) : ''}\n </p>\n {collapsible\n ? <details open={isOpen} className=\"wildo-api-ref__disclosure\">\n <summary>{words.browseResources(resources.length)}</summary>\n <div>{grid}</div>\n </details>\n : grid}\n {resources.length === 0 ? <p role=\"status\">{words.noSearchMatches}</p> : null}\n </>;\n}\n\n/** The fragment the reader arrived on, tracked across in-page navigation, with the jump repeated once mounted. */\nfunction useActiveFragment(deps: readonly unknown[]): string {\n const [activeFragment, setActiveFragment] = useState(() => currentFragment());\n useEffect(() => {\n const synchronize = () => setActiveFragment(currentFragment());\n window.addEventListener('hashchange', synchronize);\n return () => window.removeEventListener('hashchange', synchronize);\n }, []);\n useEffect(() => {\n const target = activeFragment.length > 0 ? document.getElementById(activeFragment) : null;\n if (target !== null && typeof target.scrollIntoView === 'function') target.scrollIntoView({ block: 'start' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeFragment, ...deps]);\n return activeFragment;\n}\n\n/**\n * The section root when each resource has its own page (#1623): overview, search and the category\n * grid, with each card leading to `<sectionRootPath>/<slug>`.\n *\n * A link written for the single-page reference (`/api#operation-create-task`) still arrives here; the\n * page plan's fragment map says which page now carries that fragment, and the reader is sent there.\n */\nexport function OpenApiReferenceIndexView({\n model,\n words,\n sectionRootPath,\n pageSlugByFragment,\n navigation = null,\n title = null,\n navigate = (href) => window.location.replace(href),\n}: {\n readonly model: ApiReferenceModel;\n /** Every word the reference shows, worded by the site (#1992). */\n readonly words: ApiReferenceWords;\n readonly sectionRootPath: string;\n readonly pageSlugByFragment: Readonly<Record<string, string>>;\n /** The section's rail, built once by the portal (`buildApiReferenceNavigation`); without it no rail is drawn. */\n readonly navigation?: ApiReferenceNavigation | null;\n /** The page's heading; the portal's own page chrome may carry it instead. */\n readonly title?: string | null;\n /** How an old single-page link is sent on; replaces the history entry so Back does not bounce. */\n readonly navigate?: (href: string) => void;\n}): ReactNode {\n const [query, setQuery] = useState('');\n useEffect(() => {\n const fragment = currentFragment();\n if (fragment.length > 0 && apiReferencePageSlugForFragment(fragment, pageSlugByFragment) !== undefined) {\n navigate(apiReferencePageHref(sectionRootPath, fragment, { pageSlugByFragment }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pageSlugByFragment, sectionRootPath]);\n return <ReferenceProviders model={model} words={words}>\n <ReferenceShell navigation={navigation} subbarTitle={title ?? navigation?.title ?? model.title} currentResource={null} activeFragment=\"\">\n <div className=\"wildo-api-ref__page\">\n {title !== null ? <header>\n <p className=\"wildo-api-ref__eyebrow\">{words.contractEyebrow}</p>\n <h1 className=\"wildo-api-ref__title\">{title}</h1>\n <p className=\"wildo-api-ref__lead\">{words.indexLead}</p>\n </header> : null}\n <ResourceIndex\n model={model}\n query={query}\n onQueryChange={setQuery}\n resourceHref={(resource) => `${sectionRootPath}/${apiReferenceResourceSlug(resource)}`}\n isOpen\n collapsible={false}\n />\n </div>\n </ReferenceShell>\n </ReferenceProviders>;\n}\n\n/**\n * One resource's own page (#1623): the resource, its object, its operation families and the reusable\n * schemas its operations reach — everything the page's document slice carries, and nothing else.\n */\nexport function OpenApiResourcePageView({\n model,\n words,\n resourceName,\n sectionRootPath,\n navigation = null,\n}: {\n readonly model: ApiReferenceModel;\n /** Every word the reference shows, worded by the site (#1992). */\n readonly words: ApiReferenceWords;\n readonly resourceName: string;\n readonly sectionRootPath: string;\n /** The section's rail, built once by the portal (`buildApiReferenceNavigation`); without it no rail is drawn. */\n readonly navigation?: ApiReferenceNavigation | null;\n}): ReactNode {\n const resource = model.resources.find((candidate) => candidate.resourceRef === `technical-documentation:resource/${resourceName}`) ?? null;\n const activeFragment = useActiveFragment([resource]);\n return <ReferenceProviders model={model} words={words}>\n <ReferenceShell navigation={navigation} subbarTitle={resource?.label ?? resourceName} currentResource={resource} activeFragment={activeFragment}>\n {resource === null\n ? <div className=\"wildo-api-ref__page\">\n <p><a className=\"wildo-api-ref__button\" href={sectionRootPath}>{words.allResources}</a></p>\n <p role=\"alert\">{words.resourceNotInDocument(resourceName)}</p>\n </div>\n : <ResourceReference\n resource={resource}\n activeFragment={activeFragment}\n level={1}\n breadcrumb={<nav aria-label={words.breadcrumb} className=\"wildo-api-ref__breadcrumb\"><ol>\n <li><a href={sectionRootPath}>{navigation?.title ?? words.allResources}</a></li>\n {resource.category !== null ? <li>{resource.category.label}</li> : null}\n </ol></nav>}\n />}\n <ComponentSchemaReference schemas={model.componentSchemas} activeFragment={activeFragment} />\n </ReferenceShell>\n </ReferenceProviders>;\n}\n\n/**\n * The whole reference on one page, a resource selected by the URL fragment. Used where no per-resource\n * routes exist; a portal with the page plan renders `OpenApiReferenceIndexView` and\n * `OpenApiResourcePageView` instead.\n */\nexport function OpenApiReferenceView({ model, words }: {\n readonly model: ApiReferenceModel;\n /** Every word the reference shows, worded by the site (#1992). */\n readonly words: ApiReferenceWords;\n}): ReactNode {\n const [query, setQuery] = useState('');\n const [selectedResourceRef, setSelectedResourceRef] = useState<string | null>(null);\n const selectedResource = model.resources.find((resource) => resource.resourceRef === selectedResourceRef) ?? null;\n const activeFragment = useActiveFragment([selectedResource]);\n\n useEffect(() => {\n // Following a data-model link keeps the operation the reader came from: a schema belongs to\n // no resource, and deselecting on it used to throw the reader back to the category grid.\n const isComponentSchemaTarget = model.componentSchemas.some((component) => component.anchorId === activeFragment);\n const owner = findResourceForFragment(model.resources, activeFragment);\n setSelectedResourceRef((previous) => owner?.resourceRef ?? (isComponentSchemaTarget ? previous : null));\n }, [model, activeFragment]);\n\n return <ReferenceProviders model={model} words={words}>\n <ReferenceShell navigation={null} subbarTitle={model.title} currentResource={selectedResource} activeFragment={activeFragment}>\n <div className=\"wildo-api-ref__page\">\n <ResourceIndex\n model={model}\n query={query}\n onQueryChange={(value) => {\n setQuery(value);\n clearResourceSelection();\n }}\n resourceHref={(resource) => `#${resource.anchorId}`}\n isOpen={selectedResource === null}\n collapsible\n />\n {selectedResource === null && filterResources(model, query).length > 0 ? <p role=\"status\">{words.selectResourcePrompt}</p> : null}\n {selectedResource !== null ? <p><button className=\"wildo-api-ref__button\" type=\"button\" onClick={clearResourceSelection}>{words.allResources}</button></p> : null}\n </div>\n {selectedResource !== null ? <section key={selectedResource.resourceRef}>\n <ResourceReference resource={selectedResource} activeFragment={activeFragment} level={2} breadcrumb={null} />\n </section> : null}\n <ComponentSchemaReference schemas={model.componentSchemas} activeFragment={activeFragment} />\n </ReferenceShell>\n </ReferenceProviders>;\n}\n\nfunction OpenApiDocumentDescription({ description }: { readonly description: string }): ReactNode {\n const words = useReferenceWords();\n // The generator's own section marker in the document text, not a word shown as chrome.\n const conventionsMarker = '\\n\\n## API conventions';\n const markerIndex = description.indexOf(conventionsMarker);\n const overview = markerIndex === -1 ? description : description.slice(0, markerIndex);\n const conventions = markerIndex === -1 ? null : description.slice(markerIndex + conventionsMarker.length).trim();\n return <section className=\"wildo-api-ref__lead\" aria-label={words.apiOverview}>\n <OpenApiCommonMark source={overview} />\n {conventions !== null && conventions.length > 0 ? <details className=\"wildo-api-ref__disclosure\">\n <summary><h2>{words.apiConventions}</h2></summary>\n <div><OpenApiCommonMark source={conventions} /></div>\n </details> : null}\n </section>;\n}\n\n/**\n * Safe, deliberately small CommonMark presenter for the generator-owned\n * OpenAPI description vocabulary. It supports the headings, paragraphs,\n * unordered lists, strong text and inline code emitted by the generator and\n * never evaluates HTML.\n */\nfunction OpenApiCommonMark({ source }: { readonly source: string }): ReactNode {\n const lines = source.split(/\\r?\\n/);\n const blocks: ReactNode[] = [];\n let index = 0;\n while (index < lines.length) {\n const line = lines[index] ?? '';\n if (line.trim().length === 0) {\n index += 1;\n continue;\n }\n const heading = line.match(/^(#{2,4})\\s+(.+)$/);\n if (heading !== null) {\n const text = heading[2] ?? '';\n blocks.push(heading[1]?.length === 2\n ? <h2 key={`heading:${index}`}><OpenApiInlineCommonMark source={text} /></h2>\n : <h3 key={`heading:${index}`}><OpenApiInlineCommonMark source={text} /></h3>);\n index += 1;\n continue;\n }\n if (line.startsWith('- ')) {\n const items: string[] = [];\n while (index < lines.length && (lines[index] ?? '').startsWith('- ')) {\n items.push((lines[index] ?? '').slice(2));\n index += 1;\n }\n blocks.push(<ul key={`list:${index}`}>{items.map((item, itemIndex) => <li key={`${itemIndex}:${item}`}><OpenApiInlineCommonMark source={item} /></li>)}</ul>);\n continue;\n }\n const paragraph: string[] = [];\n while (index < lines.length) {\n const candidate = lines[index] ?? '';\n if (candidate.trim().length === 0 || /^(#{2,4})\\s+/.test(candidate) || candidate.startsWith('- ')) break;\n paragraph.push(candidate.trim());\n index += 1;\n }\n blocks.push(<p key={`paragraph:${index}`}><OpenApiInlineCommonMark source={paragraph.join(' ')} /></p>);\n }\n return <>{blocks}</>;\n}\n\nfunction OpenApiInlineCommonMark({ source }: { readonly source: string }): ReactNode {\n return <>{source.split(/(\\*\\*[^*]+\\*\\*|`[^`]+`)/g).filter(Boolean).map((part, index) => {\n if (part.startsWith('**') && part.endsWith('**')) return <strong key={`${index}:${part}`}>{part.slice(2, -2)}</strong>;\n if (part.startsWith('`') && part.endsWith('`')) return <code key={`${index}:${part}`}>{part.slice(1, -1)}</code>;\n return <Fragment key={`${index}:${part}`}>{part}</Fragment>;\n })}</>;\n}\n\nfunction ApiConnectionDetails({\n servers,\n securitySchemes,\n}: {\n readonly servers: readonly ApiReferenceServer[];\n readonly securitySchemes: readonly ApiReferenceSecurityScheme[];\n}): ReactNode {\n const words = useReferenceWords();\n return <section className=\"wildo-api-ref__panel\" aria-labelledby=\"api-connection-details\">\n <h2 id=\"api-connection-details\">{words.connectionDetails}</h2>\n {servers.length > 0 ? <>\n <h3>{words.baseUrls}</h3>\n <ul>{servers.map((server) => <li key={server.url}><code>{server.url}</code>{server.description !== null ? <> — {server.description}</> : null}</li>)}</ul>\n </> : null}\n {securitySchemes.length > 0 ? <>\n <h3>{words.authenticationMechanisms}</h3>\n <dl>{securitySchemes.map((securityScheme) => <Fragment key={securityScheme.name}>\n <dt><code>{securityScheme.name}</code></dt>\n <dd>\n <p className=\"margin-bottom--sm\">\n {words.schemeType} <code>{securityScheme.type}</code>\n {securityScheme.scheme !== null ? <> · {words.schemeScheme} <code>{securityScheme.scheme}</code></> : null}\n {securityScheme.bearerFormat !== null ? <> · {words.schemeFormat} <code>{securityScheme.bearerFormat}</code></> : null}\n {securityScheme.location !== null ? <> · {words.schemeLocation} <code>{securityScheme.location}</code></> : null}\n {securityScheme.parameterName !== null ? <> · {words.schemeName} <code>{securityScheme.parameterName}</code></> : null}\n </p>\n {securityScheme.description !== null ? <p><OpenApiInlineCommonMark source={securityScheme.description} /></p> : null}\n </dd>\n </Fragment>)}</dl>\n </> : null}\n </section>;\n}\n\nfunction ResourceCard({ resource, href }: { readonly resource: ApiReferenceResource; readonly href: string }): ReactNode {\n const words = useReferenceWords();\n const variantCount = resource.families.reduce((count, family) => count + family.variants.length, 0);\n return <li className=\"wildo-api-ref__resource-card\">\n <a href={href}>{resource.label}</a>\n {resource.description !== null ? <p><OpenApiInlineCommonMark source={resource.description} /></p> : null}\n <p className=\"wildo-api-ref__card-meta\">{words.resourceCardMeta(resource.families.length, variantCount)}</p>\n </li>;\n}\n\n/**\n * Groups only by source-projected category metadata. A document without\n * categories remains usable, but it is never silently bucketed by filenames,\n * labels or a framework-owned guess.\n */\nfunction resourceCategoryGroups(resources: readonly ApiReferenceResource[]): ReadonlyArray<{\n readonly id: string;\n readonly anchorId: string;\n readonly category: ApiReferenceResourceCategory | null;\n readonly resources: readonly ApiReferenceResource[];\n}> {\n const groups = new Map<string, { category: ApiReferenceResourceCategory | null; resources: ApiReferenceResource[] }>();\n for (const resource of resources) {\n const key = resource.category?.id ?? '__uncategorized__';\n const group = groups.get(key) ?? { category: resource.category, resources: [] };\n if (group.category?.label !== resource.category?.label || group.category?.description !== resource.category?.description) {\n throw new Error(`API reference category '${key}' has inconsistent source metadata`);\n }\n group.resources.push(resource);\n groups.set(key, group);\n }\n return [...groups.entries()]\n .map(([id, group]) => ({\n id,\n anchorId: group.category === null ? 'uncategorized-resources' : group.category.anchorId,\n category: group.category,\n resources: group.resources,\n }))\n // Uncategorized last, the order the navigation rail uses (`buildApiReferenceNavigation`).\n .sort((left, right) => (left.category === null ? 1 : right.category === null ? -1 : left.category.label.localeCompare(right.category.label)));\n}\n\n/* Resource ------------------------------------------------------------------------------------- */\n\n/**\n * A resource: its introduction (description, lifecycle, relationships, object) above, then one\n * section per operation family, each with its documentation beside its samples.\n *\n * `level` is the resource heading's level: 1 on the resource's own page, 2 on the single-page\n * reference. Families, operations and their parts take the next levels down.\n */\nfunction ResourceReference({\n resource,\n activeFragment,\n level,\n breadcrumb,\n}: {\n readonly resource: ApiReferenceResource;\n readonly activeFragment: string;\n readonly level: number;\n readonly breadcrumb: ReactNode;\n}): ReactNode {\n const words = useReferenceWords();\n return <>\n <header className=\"wildo-api-ref__intro\">\n {breadcrumb}\n <Heading level={level} id={resource.anchorId} className=\"wildo-api-ref__title\">{resource.label}</Heading>\n {resource.description !== null ? <div className=\"wildo-api-ref__lead\"><OpenApiCommonMark source={resource.description} /></div> : null}\n {resource.lifecycleRole !== null ? <><Heading level={level + 1} className=\"wildo-api-ref__subheading\">{words.lifecycle}</Heading><div className=\"wildo-api-ref__lead\"><OpenApiCommonMark source={resource.lifecycleRole} /></div></> : null}\n {resource.relationships.length > 0 ? <RelationshipSemantics relationships={resource.relationships} /> : null}\n {resource.objectSchemaName !== null ? <ResourceObject resource={resource} objectSchemaName={resource.objectSchemaName} level={level + 1} /> : null}\n </header>\n {resource.families.length > 0 ? <div className=\"wildo-api-ref__operations\">\n {resource.families.map((family) => <OperationFamily key={family.familyRef} family={family} activeFragment={activeFragment} level={level + 1} />)}\n </div> : null}\n </>;\n}\n\n/**\n * \"The Tasks object\": the resource's representation, described once on its page (#1621). The\n * operations that return it reference the same schema, so their response sections and this one are\n * the same fields by construction.\n */\nfunction ResourceObject({ resource, objectSchemaName, level }: { readonly resource: ApiReferenceResource; readonly objectSchemaName: string; readonly level: number }): ReactNode {\n const words = useReferenceWords();\n const resolution = useContext(SchemaResolutionContext);\n const schema = resolution.componentsByName.get(objectSchemaName);\n if (schema === undefined) return null;\n return <section aria-labelledby={`${resource.anchorId}--object`}>\n <Heading level={level} id={`${resource.anchorId}--object`} className=\"wildo-api-ref__subheading\">{words.resourceObject(resource.label)}</Heading>\n <SchemaResolutionContext.Provider value={{ ...resolution, expanding: new Set([...resolution.expanding, objectSchemaName]) }}>\n <SchemaContract schema={schema} collapseLongLists />\n </SchemaResolutionContext.Provider>\n </section>;\n}\n\nfunction RelationshipSemantics({ relationships }: { readonly relationships: ApiReferenceResource['relationships'] }): ReactNode {\n const words = useReferenceWords();\n return <details className=\"wildo-api-ref__disclosure\">\n <summary>{words.dataRelationships(relationships.length)}</summary>\n <ul>\n {relationships.map((relationship, index) => <li key={`${relationship.relatedResourceName}:${relationship.foreignKeyField ?? 'none'}:${relationship.nature}:${index}`}>\n {relationship.foreignKeyField !== null\n ? renderSentence(words.relationshipVia, { related: <strong>{relationship.relatedResourceLabel}</strong>, field: <code>{relationship.foreignKeyField}</code> })\n : <strong>{relationship.relatedResourceLabel}</strong>}: {words.relationshipSummary({\n nature: relationship.nature,\n cardinality: relationship.resourceCardinality,\n relatedCardinality: relationship.relatedResourceCardinality,\n lifecycleModel: relationship.lifecycleModel,\n })}\n {relationship.onParentDelete !== null\n ? <> {words.parentDeletePolicy(!relationship.onParentDelete.enabled\n ? words.parentDeleteDoesNotCascade\n : relationship.onParentDelete.refusesWhileChildrenExist\n ? relationship.onParentDelete.strategy\n : words.parentDeleteCascade({ strategy: relationship.onParentDelete.strategy, mode: relationship.onParentDelete.mode, maxDepth: relationship.onParentDelete.maxDepth }))}</>\n : null}\n </li>)}\n </ul>\n </details>;\n}\n\nfunction clearResourceSelection(): void {\n if (typeof window !== 'undefined') window.location.hash = '';\n}\n\nfunction findResourceForFragment(resources: ApiReferenceModel['resources'], hash: string): ApiReferenceResource | null {\n const fragment = hash.startsWith('#') ? hash.slice(1) : hash;\n if (fragment.length === 0) return null;\n return resources.find((resource) => resource.anchorId === fragment\n || resource.families.some((family) => family.anchorId === fragment || family.variants.some((variant) => variantOwnsFragment(variant, fragment)))) ?? null;\n}\n\nfunction filterResources(model: ApiReferenceModel, query: string): ApiReferenceModel['resources'] {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (normalizedQuery.length === 0) return model.resources;\n return model.resources.map((resource) => ({\n ...resource,\n families: resource.families.map((family) => ({\n ...family,\n variants: family.variants.filter((variant) => [\n resource.label,\n resource.description ?? '',\n resource.lifecycleRole ?? '',\n ...resource.relationships.flatMap((relationship) => [\n relationship.relatedResourceName,\n relationship.relatedResourceLabel,\n relationship.foreignKeyField ?? '',\n relationship.nature,\n relationship.lifecycleModel,\n relationship.onParentDelete?.strategy ?? '',\n ]),\n family.label,\n variant.summary,\n variant.method,\n variant.path,\n variant.access.authenticationSummary,\n ...variant.access.roleRequirements.flatMap((requirement) => [\n requirement.role,\n requirement.label,\n requirement.businessRole ?? '',\n requirement.authorityBoundary ?? '',\n ]),\n ...variant.securitySchemes,\n ].some((value) => value.toLocaleLowerCase().includes(normalizedQuery))),\n })).filter((family) => family.variants.length > 0),\n })).filter((resource) => resource.families.length > 0);\n}\n\n/**\n * A route that reaches an operation through its parent is the SAME operation (`aliasOfPath`); showing\n * it as a second full panel made a third of the Wonder Todos reference repeat itself (315 of 960). Each\n * alias is listed under its canonical operation instead. An alias whose canonical is not among these\n * variants — it lives in the other section, or a search matched only the alias — keeps its own panel,\n * so every variant is still presented exactly once.\n */\nfunction groupAliasesUnderCanonical(variants: readonly ApiReferenceVariant[]): ReadonlyArray<{ readonly variant: ApiReferenceVariant; readonly aliases: readonly ApiReferenceVariant[] }> {\n const canonicalKey = (method: string, path: string): string => `${method} ${path}`;\n const groups = variants\n .filter((variant) => variant.aliasOfPath === null)\n .map((variant) => ({ variant, aliases: [] as ApiReferenceVariant[] }));\n const groupByKey = new Map(groups.map((group) => [canonicalKey(group.variant.method, group.variant.path), group]));\n const orphans: Array<{ variant: ApiReferenceVariant; aliases: ApiReferenceVariant[] }> = [];\n for (const variant of variants) {\n if (variant.aliasOfPath === null) continue;\n const group = groupByKey.get(canonicalKey(variant.method, variant.aliasOfPath));\n if (group === undefined) orphans.push({ variant, aliases: [] });\n else group.aliases.push(variant);\n }\n return [...groups, ...orphans];\n}\n\n/** The path parameters an alias route takes that its canonical route does not — what makes it a different address. */\nfunction additionalPathParameters(alias: ApiReferenceVariant, canonical: ApiReferenceVariant): readonly string[] {\n const canonicalNames = new Set(canonical.parameters.filter((parameter) => parameter.location === 'path').map((parameter) => parameter.name));\n return alias.parameters.filter((parameter) => parameter.location === 'path' && !canonicalNames.has(parameter.name)).map((parameter) => parameter.name);\n}\n\n/**\n * Moves the selection with the arrow, Home and End keys inside a tab list, as the WAI-ARIA tabs pattern\n * asks: only the selected tab is in the Tab order, the arrows move between tabs.\n */\nfunction onTabListKeyDown(event: ReactKeyboardEvent<HTMLElement>): void {\n const tabs = [...event.currentTarget.querySelectorAll<HTMLElement>('[role=\"tab\"]')];\n const current = tabs.indexOf(event.target as HTMLElement);\n if (current === -1) return;\n const next = event.key === 'ArrowRight' || event.key === 'ArrowDown' ? (current + 1) % tabs.length\n : event.key === 'ArrowLeft' || event.key === 'ArrowUp' ? (current - 1 + tabs.length) % tabs.length\n : event.key === 'Home' ? 0\n : event.key === 'End' ? tabs.length - 1\n : null;\n if (next === null) return;\n event.preventDefault();\n tabs[next]?.focus();\n tabs[next]?.click();\n}\n\n/**\n * One operation family. A family with several routes (a variant per scope, say) shows them as tabs;\n * a deep link to any part of a variant — its operation, request, a response or an alias — selects\n * the tab that holds it, so the target exists before the page scrolls to it.\n */\nfunction OperationFamily({ family, activeFragment, level }: { readonly family: ApiReferenceFamily; readonly activeFragment: string; readonly level: number }): ReactNode {\n const words = useReferenceWords();\n const groups = useMemo(() => groupAliasesUnderCanonical(family.variants), [family]);\n const owningIndex = (fragment: string): number => groups.findIndex((group) => variantOwnsFragment(group.variant, fragment)\n || group.aliases.some((alias) => alias.anchorId === fragment));\n const [selectedIndex, setSelectedIndex] = useState(() => Math.max(owningIndex(activeFragment), 0));\n\n useEffect(() => {\n const index = owningIndex(activeFragment);\n if (index !== -1) setSelectedIndex(index);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeFragment, groups]);\n\n const selected = groups[selectedIndex] ?? groups[0];\n if (selected === undefined) return null;\n const tabId = (index: number): string => `${family.anchorId}--variant-${index}`;\n const header = <>\n <Heading level={level} id={family.anchorId} className=\"wildo-api-ref__family-title\">{family.label}</Heading>\n {groups.length > 1 ? <div role=\"tablist\" aria-label={words.familyVariants(family.label)} className=\"wildo-api-ref__segmented\" onKeyDown={onTabListKeyDown}>\n {groups.map((group, index) => <button\n key={group.variant.operationId}\n type=\"button\"\n role=\"tab\"\n id={tabId(index)}\n className=\"wildo-api-ref__segment\"\n aria-selected={index === selectedIndex}\n aria-controls={`${family.anchorId}--variant-panel`}\n tabIndex={index === selectedIndex ? 0 : -1}\n onClick={() => setSelectedIndex(index)}\n ><MethodBadge method={group.variant.method} small />{group.variant.summary}</button>)}\n </div> : null}\n </>;\n return <section className=\"wildo-api-ref__family\">\n {/*\n * Not keyed by variant: the tab list is rendered inside it, and remounting it on a tab change\n * destroyed the focused tab, so arrow-key navigation ended on <body>. The variant's own content is\n * keyed inside instead.\n */}\n <OperationVariant\n variant={selected.variant}\n aliases={selected.aliases}\n activeFragment={activeFragment}\n level={level + 1}\n header={header}\n panelId={groups.length > 1 ? `${family.anchorId}--variant-panel` : null}\n labelledBy={groups.length > 1 ? tabId(selectedIndex) : null}\n />\n </section>;\n}\n\n/**\n * The class of an HTTP status, which decides the colour of its dot: a success or redirect (2xx, 3xx)\n * is what the reader builds for, a client error (4xx) is theirs to fix, a server error (5xx) is not.\n * The values are the dot's CSS modifier names.\n */\nenum ResponseStatusClass {\n SUCCESS = 'success',\n CLIENT_ERROR = 'client-error',\n SERVER_ERROR = 'server-error',\n OTHER = 'other',\n}\n\nfunction responseStatusClass(status: string): ResponseStatusClass {\n if (/^[23]/.test(status)) return ResponseStatusClass.SUCCESS;\n if (/^4/.test(status)) return ResponseStatusClass.CLIENT_ERROR;\n if (/^5/.test(status)) return ResponseStatusClass.SERVER_ERROR;\n return ResponseStatusClass.OTHER;\n}\n\nfunction StatusDot({ status }: { readonly status: string }): ReactNode {\n return <span className={`wildo-api-ref__status-dot wildo-api-ref__status-dot--${responseStatusClass(status)}`} aria-hidden=\"true\" />;\n}\n\n/**\n * One operation: its documentation (title, endpoint, access, parameters, body, responses, errors) and,\n * beside it, its samples. The response the reader selects is the same on both sides.\n */\nfunction OperationVariant({\n variant,\n aliases = [],\n activeFragment,\n level,\n header,\n panelId,\n labelledBy,\n}: {\n readonly variant: ApiReferenceVariant;\n readonly aliases?: readonly ApiReferenceVariant[];\n readonly activeFragment: string;\n readonly level: number;\n readonly header: ReactNode;\n readonly panelId: string | null;\n readonly labelledBy: string | null;\n}): ReactNode {\n const linkedResponse = variant.responses.find((response) => response.anchorId === activeFragment) ?? null;\n /**\n * The response the reader picked, remembered with the variant it was picked on: this component is\n * not remounted when the family's tab changes, so a choice made on one variant must not carry over.\n */\n const [statusChoice, setStatusChoice] = useState<{ readonly operationId: string; readonly status: string } | null>(null);\n const selectedStatus = statusChoice?.operationId === variant.operationId ? statusChoice.status : linkedResponse?.status ?? null;\n const setSelectedStatus = (status: string): void => setStatusChoice({ operationId: variant.operationId, status });\n\n useEffect(() => {\n if (linkedResponse !== null) setStatusChoice({ operationId: variant.operationId, status: linkedResponse.status });\n }, [linkedResponse, variant.operationId]);\n\n /**\n * A variant behind a tab mounts one render after the view's own fragment jump has already looked for\n * it, so the jump is repeated once the target exists — once per fragment and variant. Picking a\n * response status afterwards must not scroll the reader back to the linked anchor.\n */\n const scrolledFor = useRef<string | null>(null);\n useEffect(() => {\n if (!variantOwnsFragment(variant, activeFragment) && !aliases.some((alias) => alias.anchorId === activeFragment)) return;\n const scrollKey = `${activeFragment}|${variant.operationId}`;\n if (scrolledFor.current === scrollKey) return;\n scrolledFor.current = scrollKey;\n const target = document.getElementById(activeFragment);\n if (target !== null && typeof target.scrollIntoView === 'function') target.scrollIntoView({ block: 'start' });\n }, [activeFragment, variant, aliases]);\n\n const words = useReferenceWords();\n const subLevel = level + 1;\n const roleLabels = variant.access.roleRequirements;\n return <article className=\"wildo-api-ref__operation\">\n <div className=\"wildo-api-ref__operation-doc\">\n {header}\n <div key={variant.operationId} id={panelId ?? undefined} role={panelId !== null ? 'tabpanel' : undefined} aria-labelledby={labelledBy ?? undefined}>\n <Heading level={level} id={variant.anchorId} className=\"wildo-api-ref__operation-title\">{variant.summary}</Heading>\n <div className=\"wildo-api-ref__endpoint\">\n <MethodBadge method={variant.method} />\n <code className=\"wildo-api-ref__path\"><EndpointPath path={variant.path} /></code>\n <CopyButton text={variant.path} label={words.copyPathOf(variant.summary)} />\n </div>\n {variant.description !== null ? <div className=\"wildo-api-ref__lead\"><OpenApiCommonMark source={variant.description} /></div> : null}\n <dl className=\"wildo-api-ref__facts\">\n <div className=\"wildo-api-ref__fact\"><dt>{words.access}</dt><dd>{variant.access.authenticationSummary}</dd></div>\n {roleLabels.length > 0 ? <div className=\"wildo-api-ref__fact\"><dt>{words.requiredRole}</dt><dd>\n {renderSentence(words.requiredRoles, {\n roles: renderList(words, roleLabels.map((requirement) => renderSentence(words.roleWithKey, {\n label: <strong>{requirement.label}</strong>,\n key: <code>{requirement.role}</code>,\n })), DocumentationListKind.DISJUNCTION),\n })}\n </dd></div> : null}\n {variant.securitySchemes.length > 0 ? <div className=\"wildo-api-ref__fact\"><dt>{words.authentication}</dt><dd>\n {renderList(words, variant.securitySchemes.map((scheme) => <code>{scheme}</code>), DocumentationListKind.DISJUNCTION)}\n </dd></div> : null}\n {variant.idempotent !== null ? <div className=\"wildo-api-ref__fact\"><dt>{words.idempotent}</dt><dd>{variant.idempotent ? words.yes : words.no}</dd></div> : null}\n </dl>\n {roleLabels.some((requirement) => requirement.businessRole !== null || requirement.authorityBoundary !== null) ? <details className=\"wildo-api-ref__inline-disclosure\">\n <summary>{words.roleAuthorityDetails}</summary>\n <ul>{roleLabels.map((requirement) => <li key={requirement.role}>\n <strong>{requirement.label}</strong>\n {requirement.businessRole !== null ? <> — <OpenApiInlineCommonMark source={requirement.businessRole} /></> : null}\n {requirement.authorityBoundary !== null ? <p>{words.boundary} <OpenApiInlineCommonMark source={requirement.authorityBoundary} /></p> : null}\n </li>)}</ul>\n </details> : null}\n {aliases.length > 0 ? <div className=\"wildo-api-ref__note\">\n <span>{renderSentence(words.aliasNote, { heading: <strong>{words.alsoReachableAt}</strong> })}</span>\n <ul>{aliases.map((alias) => {\n const extra = additionalPathParameters(alias, variant);\n const address = <><code>{alias.method}</code> <code>{alias.path}</code></>;\n return <li key={alias.operationId} id={alias.anchorId}>\n {extra.length > 0\n ? renderSentence(words.aliasWithParameters, {\n address,\n parameters: renderList(words, extra.map((name) => <code>{name}</code>), DocumentationListKind.CONJUNCTION),\n })\n : address}\n </li>;\n })}</ul>\n </div> : null}\n <SamplesSheet variant={variant} selectedStatus={selectedStatus} onSelectStatus={setSelectedStatus} />\n <ParameterSections parameters={variant.parameters} level={subLevel} />\n {variant.requestBody !== null ? <section>\n <Heading level={subLevel} id={variant.requestBody.anchorId} className=\"wildo-api-ref__subheading\">\n {words.requestBody} <span className=\"wildo-api-ref__subheading-meta\">{variant.requestBody.required ? words.required : words.optional}</span>\n </Heading>\n <RepresentationList mediaTypes={variant.requestBody.mediaTypes} />\n </section> : null}\n <section>\n <Heading level={subLevel} className=\"wildo-api-ref__subheading\">{words.responses}</Heading>\n {variant.responses.length === 0\n ? <p>{words.noResponseContract}</p>\n : <ResponseTabs variant={variant} selectedStatus={selectedStatus} onSelectStatus={setSelectedStatus} />}\n </section>\n {variant.errorScenarios.length > 0 ? <section>\n <Heading level={subLevel} className=\"wildo-api-ref__subheading\">{words.errors}</Heading>\n <ErrorScenarioTable scenarios={variant.errorScenarios} />\n </section> : null}\n </div>\n </div>\n <div key={variant.operationId} className=\"wildo-api-ref__operation-code\">\n <OperationSamples variant={variant} selectedStatus={selectedStatus} onSelectStatus={setSelectedStatus} />\n </div>\n </article>;\n}\n\n/** A path with its `{parameters}` set apart, so the parts a reader fills in stand out. */\nfunction EndpointPath({ path }: { readonly path: string }): ReactNode {\n return <>{path.split(/(\\{[^}]+\\})/g).filter(Boolean).map((part, index) => (part.startsWith('{')\n ? <span key={index} className=\"wildo-api-ref__path-param\">{part}</span>\n : <Fragment key={index}>{part}</Fragment>))}</>;\n}\n\n/** The HTTP method, coloured by verb so a reader can scan a family for its writes. */\nfunction MethodBadge({ method, small = false }: { readonly method: string; readonly small?: boolean }): ReactNode {\n return <span className={`wildo-api-ref__method wildo-api-ref__method--${method.toLowerCase()}${small ? ' wildo-api-ref__method--small' : ''}`}>{method}</span>;\n}\n\n/** Copies `text` to the clipboard and says so for a moment. A browser without the Clipboard API shows no change. */\nfunction CopyButton({ text, label }: { readonly text: string; readonly label: string }): ReactNode {\n const words = useReferenceWords();\n const [isCopied, setIsCopied] = useState(false);\n useEffect(() => {\n if (!isCopied) return;\n const timer = setTimeout(() => setIsCopied(false), 1500);\n return () => clearTimeout(timer);\n }, [isCopied]);\n return <>\n <button\n type=\"button\"\n className=\"wildo-api-ref__copy\"\n aria-label={label}\n onClick={() => {\n if (typeof navigator === 'undefined' || navigator.clipboard === undefined) return;\n navigator.clipboard.writeText(text).then(() => setIsCopied(true), () => undefined);\n }}\n >{isCopied ? words.copied : words.copy}</button>\n {/*\n * The visible \"Copied\" is a change to a button whose accessible name is its aria-label, so a\n * screen reader was told nothing (#1626). A status region announces the result politely.\n */}\n <span role=\"status\" className=\"wildo-api-ref__visually-hidden\">{isCopied ? words.copied : ''}</span>\n </>;\n}\n\nconst SAMPLE_LANGUAGE_LABELS: Readonly<Record<ApiReferenceSampleLanguage, string>> = {\n [ApiReferenceSampleLanguage.CURL]: 'cURL',\n [ApiReferenceSampleLanguage.JAVASCRIPT]: 'JavaScript',\n [ApiReferenceSampleLanguage.PYTHON]: 'Python',\n};\n\n/**\n * The code panel of an operation: the request in three languages, then one response example per\n * status in tabs, successes first. Both are derived from the same verified document as the\n * documentation beside them (see `openapi-reference-samples.ts`), so the panel can only restate it.\n */\nfunction OperationSamples({\n variant,\n selectedStatus,\n onSelectStatus,\n idScope = variant.anchorId,\n}: {\n readonly variant: ApiReferenceVariant;\n readonly selectedStatus: string | null;\n readonly onSelectStatus: (status: string) => void;\n /** Prefix for this copy's element ids; the phone sheet renders a second copy and needs its own. */\n readonly idScope?: string;\n}): ReactNode {\n const words = useReferenceWords();\n const connection = useContext(ApiDocumentConnectionContext);\n const requestSamples = useMemo(() => buildRequestSamples(variant, connection.serverUrl, connection.securitySchemes), [variant, connection]);\n const samples = useMemo(() => responseSamples(variant.responses), [variant]);\n const [language, setLanguage] = useState(ApiReferenceSampleLanguage.CURL);\n const selected = samples.find((sample) => sample.status === selectedStatus) ?? samples[0] ?? null;\n const tabId = (kind: string, value: string): string => `${idScope}--sample-${kind}-${value}`;\n const serverSelectId = `${idScope}--server`;\n return <aside className=\"wildo-api-ref__samples\" aria-label={words.samplesFor(variant.summary)}>\n {/* Groups, not regions: every operation has one, and repeated region landmarks with the same name cannot be told apart. */}\n <div role=\"group\" className=\"wildo-api-ref__code-card\" aria-label={words.requestSample}>\n <div className=\"wildo-api-ref__code-head\">\n <span className=\"wildo-api-ref__code-title\">{words.request}</span>\n <div role=\"tablist\" aria-label={words.language} className=\"wildo-api-ref__code-tabs\" onKeyDown={onTabListKeyDown}>\n {Object.values(ApiReferenceSampleLanguage).map((candidate) => <button\n key={candidate}\n type=\"button\"\n role=\"tab\"\n id={tabId('language', candidate)}\n className=\"wildo-api-ref__code-tab\"\n aria-selected={candidate === language}\n aria-controls={`${tabId('language', 'panel')}`}\n tabIndex={candidate === language ? 0 : -1}\n onClick={() => setLanguage(candidate)}\n >{SAMPLE_LANGUAGE_LABELS[candidate]}</button>)}\n </div>\n <CopyButton text={requestSamples[language]} label={words.copyRequestSample} />\n </div>\n {connection.servers.length > 1 ? <div className=\"wildo-api-ref__code-server\">\n <label htmlFor={serverSelectId}>{words.server}</label>\n <select id={serverSelectId} value={connection.serverUrl ?? ''} onChange={(event) => connection.selectServer(event.target.value)}>\n {connection.servers.map((server) => <option key={server.url} value={server.url}>{server.description ?? server.url}</option>)}\n </select>\n </div> : connection.servers.length === 1 && connection.servers[0]?.description !== null ? <div className=\"wildo-api-ref__code-server\">\n <span>{words.server}</span><span>{connection.servers[0]?.description}</span>\n </div> : null}\n <div role=\"tabpanel\" id={tabId('language', 'panel')} aria-labelledby={tabId('language', language)}>\n {/* Focusable so a keyboard can scroll a sample wider or longer than its panel (axe `scrollable-region-focusable`). */}\n <pre tabIndex={0}><code>{highlightCode(requestSamples[language])}</code></pre>\n </div>\n </div>\n <div role=\"group\" className=\"wildo-api-ref__code-card\" aria-label={words.responseExample}>\n <div className=\"wildo-api-ref__code-head\">\n <span className=\"wildo-api-ref__code-title\">{words.response}</span>\n {selected !== null ? <div role=\"tablist\" aria-label={words.responseStatus} className=\"wildo-api-ref__code-tabs\" onKeyDown={onTabListKeyDown}>\n {samples.map((sample) => <button\n key={sample.status}\n type=\"button\"\n role=\"tab\"\n id={tabId('status', sample.status)}\n className=\"wildo-api-ref__code-tab\"\n aria-selected={sample.status === selected.status}\n aria-controls={sample.status === selected.status ? `${tabId('status', sample.status)}-panel` : undefined}\n tabIndex={sample.status === selected.status ? 0 : -1}\n title={sample.description ?? undefined}\n onClick={() => onSelectStatus(sample.status)}\n ><StatusDot status={sample.status} />{sample.status}</button>)}\n </div> : null}\n {selected !== null ? <CopyButton text={selected.jsonValue} label={words.copyResponseExample} /> : null}\n </div>\n {selected !== null\n ? <div role=\"tabpanel\" id={`${tabId('status', selected.status)}-panel`} aria-labelledby={tabId('status', selected.status)}>\n {selectedStatus !== null && selectedStatus !== selected.status ? <p className=\"wildo-api-ref__code-caption\">{words.noExampleForStatus(selectedStatus, selected.status)}</p> : null}\n <pre tabIndex={0}><code>{highlightCode(selected.jsonValue)}</code></pre>\n </div>\n : <p className=\"wildo-api-ref__code-empty\">{words.noResponseExample}</p>}\n </div>\n </aside>;\n}\n\n/**\n * On a phone the samples do not fit beside the documentation, so each operation offers them in a\n * bottom sheet (a modal `<dialog>`). The sheet's content is built only while it is open. From 960 px\n * up the button is hidden and the samples sit in the right-hand column instead.\n */\nfunction SamplesSheet({\n variant,\n selectedStatus,\n onSelectStatus,\n}: {\n readonly variant: ApiReferenceVariant;\n readonly selectedStatus: string | null;\n readonly onSelectStatus: (status: string) => void;\n}): ReactNode {\n const words = useReferenceWords();\n const dialogRef = useRef<HTMLDialogElement>(null);\n const [isOpen, setIsOpen] = useState(false);\n const open = (): void => {\n const dialog = dialogRef.current;\n if (dialog === null) return;\n setIsOpen(true);\n if (typeof dialog.showModal === 'function') dialog.showModal();\n else dialog.setAttribute('open', '');\n };\n const close = (): void => {\n const dialog = dialogRef.current;\n if (dialog !== null && typeof dialog.close === 'function') dialog.close();\n else dialog?.removeAttribute('open');\n setIsOpen(false);\n };\n return <>\n <button type=\"button\" className=\"wildo-api-ref__button wildo-api-ref__sheet-open\" onClick={open}>{words.requestAndResponse}</button>\n <dialog\n ref={dialogRef}\n className=\"wildo-api-ref__sheet\"\n aria-label={words.requestAndResponseFor(variant.summary)}\n onClose={() => setIsOpen(false)}\n onClick={(event) => {\n if (event.target === event.currentTarget) close();\n }}\n >\n {isOpen ? <>\n <div className=\"wildo-api-ref__sheet-head\">\n <strong>{variant.summary}</strong>\n <button type=\"button\" className=\"wildo-api-ref__icon-button\" aria-label={words.close} onClick={close}><CloseIcon /></button>\n </div>\n <OperationSamples variant={variant} selectedStatus={selectedStatus} onSelectStatus={onSelectStatus} idScope={`${variant.anchorId}--sheet`} />\n </> : null}\n </dialog>\n </>;\n}\n\n/**\n * Colours a sample for reading: object keys, strings, numbers and literals, and the few keywords the\n * three request languages open with. Display only — the text is unchanged, so copying it copies the\n * sample exactly.\n */\nconst CODE_TOKEN_PATTERN = /(\"(?:[^\"\\\\\\n]|\\\\.)*\"|'(?:[^'\\\\\\n]|\\\\.)*')(\\s*:)?|\\b(true|false|null|True|False|None)\\b|(-?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b)|\\b(curl|const|await|import|print)\\b/g;\n\nfunction highlightCode(source: string): ReactNode[] {\n const nodes: ReactNode[] = [];\n let last = 0;\n for (const match of source.matchAll(CODE_TOKEN_PATTERN)) {\n const index = match.index ?? 0;\n if (index > last) nodes.push(source.slice(last, index));\n const [text, quoted, colon, literal, number] = match;\n if (quoted !== undefined) {\n nodes.push(<span key={index} className={`wildo-api-ref__tok--${colon !== undefined ? 'key' : 'string'}`}>{quoted}</span>);\n if (colon !== undefined) nodes.push(colon);\n } else {\n const kind = literal !== undefined ? 'literal' : number !== undefined ? 'number' : 'keyword';\n nodes.push(<span key={index} className={`wildo-api-ref__tok--${kind}`}>{text}</span>);\n }\n last = index + text.length;\n }\n if (last < source.length) nodes.push(source.slice(last));\n return nodes;\n}\n\n/** Whether `fragment` names this variant, its request body or one of its responses. */\nfunction variantOwnsFragment(variant: ApiReferenceVariant, fragment: string): boolean {\n return fragment.length > 0 && (variant.anchorId === fragment\n || variant.requestBody?.anchorId === fragment\n || variant.responses.some((response) => response.anchorId === fragment));\n}\n\nfunction currentFragment(): string {\n if (typeof window === 'undefined') return '';\n return window.location.hash.startsWith('#') ? window.location.hash.slice(1) : window.location.hash;\n}\n\n/**\n * The operation's documented failure modes, each with what a client branches on. The third column\n * names the FIELD as well as the value, because `error.type`, `error.customMessageReference` and\n * `error.code` are read from three different places in the error body.\n */\n/** The error-body fields a client branches on — wire field names, shown as code, not words. */\nconst ERROR_BRANCH_FIELDS = { TYPE: 'error.type', MESSAGE_REFERENCE: 'error.customMessageReference', CODE: 'error.code' } as const;\n\nfunction ErrorScenarioTable({ scenarios }: { readonly scenarios: readonly ApiReferenceErrorScenario[] }): ReactNode {\n const words = useReferenceWords();\n return <div className=\"wildo-api-ref__table-scroll\">\n <table>\n <thead><tr><th scope=\"col\">{words.errorStatus}</th><th scope=\"col\">{words.errorWhen}</th><th scope=\"col\">{words.errorBranchOn}</th></tr></thead>\n <tbody>{scenarios.map((scenario, index) => {\n const identifiers = [\n scenario.errorType === null ? null : [ERROR_BRANCH_FIELDS.TYPE, scenario.errorType],\n scenario.customMessageReference === null ? null : [ERROR_BRANCH_FIELDS.MESSAGE_REFERENCE, scenario.customMessageReference],\n scenario.errorCode === null ? null : [ERROR_BRANCH_FIELDS.CODE, scenario.errorCode],\n ].filter((identifier): identifier is [string, string] => identifier !== null);\n return <tr key={`${scenario.status}:${index}`}>\n <td><code>{scenario.status}</code></td>\n <td><OpenApiInlineCommonMark source={scenario.when} /></td>\n <td>{identifiers.length === 0 ? '—' : identifiers.map(([field, value], identifierIndex) => <Fragment key={field}>\n {identifierIndex > 0 ? <br /> : null}<code>{field}</code> = <code>{value}</code>\n </Fragment>)}</td>\n </tr>;\n })}</tbody>\n </table>\n </div>;\n}\n\n/** Where a parameter travels (the OpenAPI `in` values), in reading order, with the word that heads each group. */\nconst PARAMETER_LOCATION_HEADINGS: ReadonlyArray<readonly [location: string, heading: (words: ApiReferenceWords) => string]> = [\n ['path', (words) => words.pathParameters],\n ['query', (words) => words.queryParameters],\n ['header', (words) => words.headerParameters],\n ['cookie', (words) => words.cookieParameters],\n];\n\n/** The operation's parameters as field rows, grouped by where they travel: path, query, header, cookie. */\nfunction ParameterSections({ parameters, level }: { readonly parameters: readonly ApiReferenceParameter[]; readonly level: number }): ReactNode {\n const words = useReferenceWords();\n if (parameters.length === 0) return null;\n const known = new Set(PARAMETER_LOCATION_HEADINGS.map(([location]) => location));\n const sections = [\n ...PARAMETER_LOCATION_HEADINGS.map(([location, heading]) => ({ heading: heading(words), parameters: parameters.filter((parameter) => parameter.location === location) })),\n { heading: words.otherParameters, parameters: parameters.filter((parameter) => !known.has(parameter.location)) },\n ].filter((section) => section.parameters.length > 0);\n return <>{sections.map((section) => <section key={section.heading}>\n <Heading level={level} className=\"wildo-api-ref__subheading\">{section.heading}</Heading>\n <ul className=\"wildo-api-ref__fields\" aria-label={section.heading}>\n {section.parameters.map((parameter) => <li key={`${parameter.location}:${parameter.name}`} className=\"wildo-api-ref__field\">\n <div className=\"wildo-api-ref__field-head\">\n <code className=\"wildo-api-ref__field-name\">{parameter.name}</code>\n <span className=\"wildo-api-ref__field-meta\">\n {parameter.schema === null ? null : <><SchemaType schema={parameter.schema} /> · </>}\n {parameter.required ? <span className=\"wildo-api-ref__required\">{words.required}</span> : words.optional}\n </span>\n </div>\n <div className=\"wildo-api-ref__field-body\">\n <ParameterDescription parameter={parameter} />\n {parameter.examples.length > 0 ? <Examples examples={parameter.examples} /> : null}\n </div>\n </li>)}\n </ul>\n </section>)}</>;\n}\n\n/**\n * A parameter's own description, then the contract its schema carries: allowed values with their\n * meanings, default, format and limits. The row's head shows only the identity (`string`), so\n * without this an enum filter such as `status` read as a free string although the document lists\n * its four values.\n *\n * The generator copies a filter field's description onto both the parameter and its schema, so the\n * schema's copy is dropped when the parameter's text already begins with it (a range filter appends\n * its wire hint after the same meaning). A description carried ONLY by the schema is kept.\n */\nfunction ParameterDescription({ parameter }: { readonly parameter: ApiReferenceParameter }): ReactNode {\n const schemaDescription = parameter.schema?.description ?? null;\n const restatesSchemaDescription = schemaDescription !== null && parameter.description !== null && parameter.description.startsWith(schemaDescription);\n const contract = parameter.schema === null ? null : { ...parameter.schema, description: restatesSchemaDescription ? null : schemaDescription };\n const resolution = useContext(SchemaResolutionContext);\n const hasContract = contract !== null && schemaHasContractDetails(contract, resolution);\n if (parameter.description === null && !hasContract) return '—';\n return <>\n {parameter.description !== null\n ? <OpenApiCommonMark source={contract === null ? parameter.description : withoutRestatedEnumLegend(parameter.description, contract)} />\n : null}\n {hasContract ? <SchemaContract schema={contract} /> : null}\n </>;\n}\n\n/**\n * The generator appends a markdown `Values:` legend to an enum field's description for readers\n * that ignore `x-enum-descriptions` (spec-to-operation-doc `composeFieldDescription`). Where this\n * view renders those same values as their own \"Allowed values\" list, the legend is a second copy\n * of it, so it is dropped — only when EVERY value carries its own description, so nothing the\n * legend says can be lost.\n */\nfunction withoutRestatedEnumLegend(description: string, schema: ApiReferenceSchemaNode): string {\n const everyValueDescribed = schema.enumValues.length > 0 && schema.enumValues.every((enumValue) => enumValue.description !== null);\n return everyValueDescribed ? description.replace(/(?:^|\\n\\n)Values:\\n(?:- [^\\n]*(?:\\n|$))+$/, '').trimEnd() : description;\n}\n\n/**\n * The documented responses as status tabs, successes first, with the selected one's description and\n * body below. The selection is shared with the code panel's response example.\n */\nfunction ResponseTabs({\n variant,\n selectedStatus,\n onSelectStatus,\n}: {\n readonly variant: ApiReferenceVariant;\n readonly selectedStatus: string | null;\n readonly onSelectStatus: (status: string) => void;\n}): ReactNode {\n const words = useReferenceWords();\n const ordered = useMemo(() => {\n const isSuccess = (status: string): boolean => responseStatusClass(status) === ResponseStatusClass.SUCCESS;\n return [...variant.responses.filter((response) => isSuccess(response.status)), ...variant.responses.filter((response) => !isSuccess(response.status))];\n }, [variant]);\n const selected = ordered.find((response) => response.status === selectedStatus) ?? ordered[0];\n if (selected === undefined) return null;\n const tabId = (status: string): string => `${variant.anchorId}--status-${status}`;\n return <>\n <div role=\"tablist\" aria-label={words.documentedResponses} className=\"wildo-api-ref__status-tabs\" onKeyDown={onTabListKeyDown}>\n {ordered.map((response) => <button\n key={response.status}\n type=\"button\"\n role=\"tab\"\n id={tabId(response.status)}\n className=\"wildo-api-ref__status-tab\"\n aria-selected={response === selected}\n aria-controls={response === selected ? `${tabId(response.status)}-panel` : undefined}\n tabIndex={response === selected ? 0 : -1}\n onClick={() => onSelectStatus(response.status)}\n ><StatusDot status={response.status} />{response.status}</button>)}\n </div>\n <div role=\"tabpanel\" id={`${tabId(selected.status)}-panel`} aria-labelledby={tabId(selected.status)}>\n <ResponseContract key={selected.status} response={selected} />\n </div>\n </>;\n}\n\n/**\n * An error status carries the one shared error envelope on almost every operation, so its fields are\n * behind a disclosure rendered only when opened; a success or request body is what the reader came\n * for, so its fields are shown in place.\n */\nfunction ResponseContract({ response }: { readonly response: ApiReferenceResponse }): ReactNode {\n const statusClass = responseStatusClass(response.status);\n const isErrorStatus = statusClass === ResponseStatusClass.CLIENT_ERROR || statusClass === ResponseStatusClass.SERVER_ERROR;\n return <section className=\"wildo-api-ref__response\" id={response.anchorId}>\n <p><strong><code>{response.status}</code></strong>{response.description !== null ? <> — <OpenApiInlineCommonMark source={response.description} /></> : null}</p>\n <RepresentationList mediaTypes={response.mediaTypes} fieldsCollapsed={isErrorStatus} />\n </section>;\n}\n\nfunction RepresentationList({ mediaTypes, fieldsCollapsed = false }: { readonly mediaTypes: readonly ApiReferenceMediaType[]; readonly fieldsCollapsed?: boolean }): ReactNode {\n const words = useReferenceWords();\n const resolution = useContext(SchemaResolutionContext);\n if (mediaTypes.length === 0) return <p>{words.noStructuredRepresentation}</p>;\n return <ul className=\"wildo-api-ref__representations\">{mediaTypes.map((representation) => {\n const schema = representation.schema;\n const hasFields = schema !== null && schemaHasContractDetails(displayedSchema(schema, resolution), resolution);\n return <li key={representation.mediaType}>\n <span className=\"wildo-api-ref__media\">{representation.mediaType}</span>{schema !== null ? <> — <SchemaType schema={schema} /></> : null}\n {schema !== null && hasFields\n ? fieldsCollapsed\n ? <LazyDisclosure summary={words.bodyFields} render={() => <SchemaContract schema={schema} />} />\n : <div><SchemaContract schema={schema} openCollections collapseLongLists /></div>\n : null}\n {representation.examples.length > 0 ? <Examples examples={representation.examples} /> : null}\n </li>;\n })}</ul>;\n}\n\n/**\n * A disclosure whose content is built only once it is opened. Nested fields are the bulk of a resource\n * page: building every closed \"Child fields\" disclosure put Wonder Todos' Todos page at 33,043 nodes\n * during the #1616 redesign, so what is closed is not built.\n */\nfunction LazyDisclosure({ summary, render, initiallyOpen = false }: { readonly summary: ReactNode; readonly render: () => ReactNode; readonly initiallyOpen?: boolean }): ReactNode {\n const [isOpen, setIsOpen] = useState(initiallyOpen);\n return <details className=\"wildo-api-ref__children\" open={initiallyOpen} onToggle={(event) => setIsOpen(event.currentTarget.open)}>\n <summary>{summary}</summary>\n {isOpen ? <div className=\"wildo-api-ref__nested\">{render()}</div> : null}\n </details>;\n}\n\n/**\n * Presents a schema identity; a reference stays a link to the reusable model it names. `linked={false}`\n * renders the name without the link, for a place that is itself interactive (a disclosure's summary),\n * where a nested link is unreachable by keyboard and confusing to a screen reader.\n */\nfunction SchemaType({ schema, linked = true }: { readonly schema: ApiReferenceSchemaNode; readonly linked?: boolean }): ReactNode {\n const words = useReferenceWords();\n if (schema.booleanSchema !== null) return <code>{schema.booleanSchema ? words.anyValue : words.noValue}</code>;\n if (schema.referenceName !== null) {\n return schema.referenceAnchorId === null || !linked\n ? <code>{schema.referenceName}</code>\n : <a href={`#${schema.referenceAnchorId}`}><code>{schema.referenceName}</code></a>;\n }\n if (schema.types.length > 0) return <code>{schema.types.join(' | ')}</code>;\n if (schema.compositions.length > 0) return <code>{schema.compositions.map((composition) => composition.kind).join(' + ')}</code>;\n return <code>{words.unnamedSchema}</code>;\n}\n\nfunction schemaHasNestedContract(schema: ApiReferenceSchemaNode, resolution: SchemaResolution): boolean {\n return expandableReference(schema, resolution) !== null\n || schema.properties.length > 0\n || schema.items !== null\n || schema.compositions.length > 0\n || (schema.additionalProperties !== null && typeof schema.additionalProperties === 'object');\n}\n\nfunction schemaHasContractDetails(schema: ApiReferenceSchemaNode, resolution: SchemaResolution): boolean {\n return schemaHasNestedContract(schema, resolution)\n || schema.description !== null\n || schema.format !== null\n || schema.defaultValue !== null\n || schema.constValue !== null\n || schema.enumValues.length > 0\n || schema.constraints.length > 0\n || schema.additionalProperties !== null;\n}\n\n/**\n * Recursively renders only the contract fields carried by the OpenAPI Schema Object: first what the\n * value itself must be (`SchemaFacts`), then what it contains (`SchemaChildren`).\n *\n * A reference to a reusable component is shown in place (see `SchemaResolution`). `openCollections`\n * opens an array property and its items at this level — a paginated body's `data[]` rows are what a\n * list response is for — and is not passed further down.\n */\nfunction SchemaContract({ schema, openCollections = false, collapseLongLists = false }: {\n readonly schema: ApiReferenceSchemaNode;\n readonly openCollections?: boolean;\n readonly collapseLongLists?: boolean;\n}): ReactNode {\n const resolution = useContext(SchemaResolutionContext);\n const reference = expandableReference(schema, resolution);\n if (reference !== null) {\n return <SchemaResolutionContext.Provider value={{ ...resolution, expanding: new Set([...resolution.expanding, reference.name]) }}>\n <SchemaContract schema={reference.schema} openCollections={openCollections} collapseLongLists={collapseLongLists} />\n </SchemaResolutionContext.Provider>;\n }\n return <>\n <SchemaFacts schema={schema} />\n <SchemaChildren schema={schema} openCollections={openCollections} collapseLongLists={collapseLongLists} />\n </>;\n}\n\n/** What a value must be: its description, format, default, constant, limits and allowed values. */\nfunction SchemaFacts({ schema }: { readonly schema: ApiReferenceSchemaNode }): ReactNode {\n const words = useReferenceWords();\n const everyValueUndescribed = schema.enumValues.every((enumValue) => enumValue.description === null);\n return <>\n {schema.description !== null ? <OpenApiCommonMark source={withoutRestatedEnumLegend(schema.description, schema)} /> : null}\n {schema.format !== null ? <p><strong>{words.format}</strong> <code>{schema.format}</code></p> : null}\n {schema.defaultValue !== null ? <p><strong>{words.defaultValue}</strong> <code>{schema.defaultValue}</code></p> : null}\n {schema.constValue !== null ? <p><strong>{words.constantValue}</strong> <code>{schema.constValue}</code></p> : null}\n {schema.constraints.length > 0 ? <p className=\"wildo-api-ref__chips\">\n {schema.constraints.map((constraint) => <code key={constraint.kind} className=\"wildo-api-ref__chip wildo-api-ref__chip--outline\">{constraint.kind}: {constraint.jsonValue}</code>)}\n </p> : null}\n {schema.enumValues.length > 0 ? <>\n <p className=\"wildo-api-ref__nested-label\">{words.allowedValues}</p>\n {everyValueUndescribed\n ? <ul className=\"wildo-api-ref__chips\">{schema.enumValues.map((enumValue) => <li key={enumValue.jsonValue}><code className=\"wildo-api-ref__chip\">{enumValue.jsonValue}</code></li>)}</ul>\n : <ul className=\"wildo-api-ref__enum\">{schema.enumValues.map((enumValue) => <li key={enumValue.jsonValue}>\n <code className=\"wildo-api-ref__chip\">{enumValue.jsonValue}</code>{enumValue.description !== null ? <> — <OpenApiInlineCommonMark source={enumValue.description} /></> : null}\n </li>)}</ul>}\n </> : null}\n </>;\n}\n\n/** Past this many properties, a list shows the first few and offers the rest behind a button. */\nconst PROPERTY_LIST_COLLAPSE_THRESHOLD = 14;\nconst PROPERTY_LIST_COLLAPSED_COUNT = 10;\n\n/** What a value contains: its properties, array items, composition branches and extra keys. */\nfunction SchemaChildren({ schema, openCollections, collapseLongLists }: {\n readonly schema: ApiReferenceSchemaNode;\n readonly openCollections: boolean;\n readonly collapseLongLists: boolean;\n}): ReactNode {\n const words = useReferenceWords();\n const resolution = useContext(SchemaResolutionContext);\n const [showsAll, setShowsAll] = useState(false);\n const ordered = propertiesInReadingOrder(schema.properties);\n const isCollapsed = collapseLongLists && !showsAll && ordered.length > PROPERTY_LIST_COLLAPSE_THRESHOLD;\n const shown = isCollapsed ? ordered.slice(0, PROPERTY_LIST_COLLAPSED_COUNT) : ordered;\n const hidden = ordered.slice(shown.length);\n return <>\n {ordered.length > 0 ? <>\n <p className=\"wildo-api-ref__nested-label\">{words.properties}</p>\n <ul className=\"wildo-api-ref__fields\">\n {shown.map((property) => <SchemaProperty key={property.name} property={property} openCollections={openCollections} />)}\n </ul>\n {isCollapsed ? <button type=\"button\" className=\"wildo-api-ref__more\" onClick={() => setShowsAll(true)}>\n {words.showMoreFields(hidden.length, hidden.slice(0, 4).map((property) => (property.required ? words.requiredFieldMarker(property.name) : property.name)), hidden.length > 4)}\n </button> : null}\n </> : null}\n {schema.items !== null ? <LazyDisclosure\n summary={renderSentence(words.arrayItemsOf, { type: <SchemaType schema={schema.items} linked={false} /> })}\n initiallyOpen={openCollections}\n render={() => <>\n {/* The model link lives here rather than in the summary, which is itself the control. */}\n {schema.items!.referenceName !== null && schema.items!.referenceAnchorId !== null\n ? <p className=\"wildo-api-ref__media\">{words.model} <SchemaType schema={schema.items!} /></p>\n : null}\n <SchemaContract schema={schema.items!} />\n </>}\n /> : null}\n {schema.compositions.map((composition) => (composition.kind !== ApiReferenceSchemaCompositionKind.ALL_OF && compositionBranchesAreObjects(composition.branches, resolution)\n ? <CompositionSwitch key={composition.kind} kind={composition.kind} branches={composition.branches} collapseLongLists={collapseLongLists} />\n : <section key={composition.kind}>\n <p className=\"wildo-api-ref__nested-label\">{schemaCompositionLabel(composition.kind, words)}</p>\n <ol>{composition.branches.map((branch, index) => <li key={index}>\n <SchemaType schema={branch} />\n {schemaHasContractDetails(branch, resolution)\n ? <div className=\"wildo-api-ref__nested\"><SchemaContract schema={branch} /></div>\n : null}\n </li>)}</ol>\n </section>))}\n {schema.additionalProperties !== null ? <div>\n <strong>{words.additionalProperties}</strong>{additionalPropertiesIsFlag(schema.additionalProperties)\n ? <> {schema.additionalProperties ? words.allowed : words.notAllowed}</>\n : <><span> </span><SchemaType schema={schema.additionalProperties} /><div className=\"wildo-api-ref__nested\"><SchemaContract schema={schema.additionalProperties} /></div></>}\n </div> : null}\n </>;\n}\n\n/** Whether `additionalProperties` is the boolean form (allowed / not allowed) rather than a schema. */\nfunction additionalPropertiesIsFlag(value: ApiReferenceSchemaNode['additionalProperties']): value is boolean {\n return typeof value === 'boolean';\n}\n\n/**\n * Properties in the order a reader wants them: required first, then optional, each in the order the\n * contract declares them, and engine metadata (`_id`, `_version`, `_field_meta`) last. Alphabetical\n * order put `_field_meta` first and separated `title` from `status`.\n */\nfunction propertiesInReadingOrder(properties: readonly ApiReferenceSchemaProperty[]): readonly ApiReferenceSchemaProperty[] {\n const rank = (property: ApiReferenceSchemaProperty): number => (property.name.startsWith('_') ? 2 : property.required ? 0 : 1);\n return properties.map((property, index) => ({ property, index }))\n .sort((left, right) => rank(left.property) - rank(right.property) || left.index - right.index)\n .map(({ property }) => property);\n}\n\n/**\n * One field row: its name, type and whether it is required on the left; on the right what it must be,\n * then, behind a disclosure, the fields it contains.\n */\nfunction SchemaProperty({ property, openCollections = false }: { readonly property: ApiReferenceSchemaProperty; readonly openCollections?: boolean }): ReactNode {\n const words = useReferenceWords();\n const resolution = useContext(SchemaResolutionContext);\n const reference = expandableReference(property.schema, resolution);\n const shown = reference?.schema ?? property.schema;\n const innerResolution = reference === null ? resolution : { ...resolution, expanding: new Set([...resolution.expanding, reference.name]) };\n const hasChildren = schemaHasNestedContract(shown, innerResolution);\n const opensAsCollection = openCollections && shown.items !== null;\n return <li className=\"wildo-api-ref__field\">\n <div className=\"wildo-api-ref__field-head\">\n <code className=\"wildo-api-ref__field-name\">{property.name}</code>\n <span className=\"wildo-api-ref__field-meta\"><SchemaType schema={property.schema} /> · {property.required ? <span className=\"wildo-api-ref__required\">{words.required}</span> : words.optional}</span>\n </div>\n <div className=\"wildo-api-ref__field-body\">\n <SchemaResolutionContext.Provider value={innerResolution}>\n <SchemaFacts schema={shown} />\n {hasChildren ? <LazyDisclosure\n summary={<>{words.childFieldsOf(property.name)}</>}\n initiallyOpen={opensAsCollection}\n render={() => <SchemaChildren schema={shown} openCollections={opensAsCollection} collapseLongLists={false} />}\n /> : null}\n </SchemaResolutionContext.Provider>\n </div>\n </li>;\n}\n\n/** Whether every branch of a composition is an object with fields, so the branches read as alternative shapes. */\nfunction compositionBranchesAreObjects(branches: readonly ApiReferenceSchemaNode[], resolution: SchemaResolution): boolean {\n return branches.length > 1 && branches.every((branch) => displayedSchema(branch, resolution).properties.length > 0);\n}\n\n/**\n * What tells the branches of a composition apart: a property every branch declares with a single\n * value of its own (`recurringType: \"one_time\"` against `\"recurring\"`), or else the branch's model name.\n */\nfunction compositionBranchLabels(branches: readonly ApiReferenceSchemaNode[], resolution: SchemaResolution, words: ApiReferenceWords): readonly string[] {\n const shown = branches.map((branch) => displayedSchema(branch, resolution));\n const fixedValue = (schema: ApiReferenceSchemaNode, name: string): string | null => {\n const property = schema.properties.find((candidate) => candidate.name === name);\n if (property === undefined) return null;\n const value = property.schema.constValue ?? (property.schema.enumValues.length === 1 ? property.schema.enumValues[0]!.jsonValue : null);\n if (value === null) return null;\n try {\n const parsed: unknown = JSON.parse(value);\n return typeof parsed === 'string' ? parsed : value;\n } catch {\n return value;\n }\n };\n const discriminator = (shown[0]?.properties ?? []).map((property) => property.name).find((name) => {\n const values = shown.map((schema) => fixedValue(schema, name));\n return values.every((value) => value !== null) && new Set(values).size === values.length;\n });\n return branches.map((branch, index) => (discriminator !== undefined ? words.discriminatorValue(discriminator, fixedValue(shown[index]!, discriminator) ?? '') : branch.referenceName ?? words.compositionOption(index + 1)));\n}\n\n/**\n * A `oneOf`/`anyOf` whose branches are objects (never an `allOf`, whose branches all apply at once) is a choice between shapes of one body — a one-time or a\n * recurring todo. It is shown as a switch between the shapes, one built at a time, rather than every\n * shape's fields one after another.\n */\nfunction CompositionSwitch({ kind, branches, collapseLongLists }: {\n readonly kind: ApiReferenceSchemaCompositionKind;\n readonly branches: readonly ApiReferenceSchemaNode[];\n readonly collapseLongLists: boolean;\n}): ReactNode {\n const words = useReferenceWords();\n const resolution = useContext(SchemaResolutionContext);\n const labels = useMemo(() => compositionBranchLabels(branches, resolution, words), [branches, resolution, words]);\n const [selectedIndex, setSelectedIndex] = useState(0);\n const idBase = useId();\n const tabId = (index: number): string => `${idBase}-shape-${index}`;\n const selected = branches[selectedIndex] ?? branches[0]!;\n return <section>\n <p className=\"wildo-api-ref__nested-label\">{words.compositionShapes(schemaCompositionLabel(kind, words), branches.length)}</p>\n <div role=\"tablist\" aria-label={words.compositionShapes(schemaCompositionLabel(kind, words), branches.length)} className=\"wildo-api-ref__segmented\" onKeyDown={onTabListKeyDown}>\n {labels.map((label, index) => <button\n key={index}\n type=\"button\"\n role=\"tab\"\n id={tabId(index)}\n className=\"wildo-api-ref__segment\"\n aria-selected={index === selectedIndex}\n aria-controls={index === selectedIndex ? `${idBase}-shape-panel` : undefined}\n tabIndex={index === selectedIndex ? 0 : -1}\n onClick={() => setSelectedIndex(index)}\n >{label}</button>)}\n </div>\n <div role=\"tabpanel\" id={`${idBase}-shape-panel`} aria-labelledby={tabId(selectedIndex)}>\n {/* The shape's own model stays a link, as each branch was before the switch. */}\n {selected.referenceName !== null ? <p className=\"wildo-api-ref__media\">{words.model} <SchemaType schema={selected} /></p> : null}\n <SchemaContract key={selectedIndex} schema={selected} collapseLongLists={collapseLongLists} />\n </div>\n </section>;\n}\n\nfunction schemaCompositionLabel(kind: ApiReferenceSchemaCompositionKind, words: ApiReferenceWords): string {\n switch (kind) {\n case ApiReferenceSchemaCompositionKind.ONE_OF: return words.oneOf;\n case ApiReferenceSchemaCompositionKind.ANY_OF: return words.anyOf;\n case ApiReferenceSchemaCompositionKind.ALL_OF: return words.allOf;\n }\n}\n\n/** Renders OpenAPI reusable schemas only when a reader explicitly selects one. */\nfunction ComponentSchemaReference({\n schemas,\n activeFragment,\n}: {\n readonly schemas: ApiReferenceModel['componentSchemas'];\n readonly activeFragment: string;\n}): ReactNode {\n const words = useReferenceWords();\n const selectedSchema = schemas.find((schema) => schema.anchorId === activeFragment) ?? null;\n return <div className=\"wildo-api-ref__models\">\n <details className=\"wildo-api-ref__disclosure\" open={selectedSchema !== null}>\n <summary>{words.reusableDataModels(schemas.length)}</summary>\n {selectedSchema === null ? <p>{words.selectModelPrompt}</p> : <section>\n <h2 id={selectedSchema.anchorId}>{selectedSchema.name}</h2>\n <p><strong>{words.schemaType}</strong> <span> </span><SchemaType schema={selectedSchema.schema} /></p>\n <SchemaContract schema={selectedSchema.schema} />\n </section>}\n </details>\n </div>;\n}\n\n/** Renders only OpenAPI-declared examples; this component never invents sample payloads. */\nfunction Examples({ examples }: { readonly examples: readonly ApiReferenceExample[] }): ReactNode {\n const words = useReferenceWords();\n return <details className=\"wildo-api-ref__inline-disclosure\">\n <summary>{words.examples(examples.length)}</summary>\n {examples.map((example) => <div key={example.name}>\n <p><strong>{example.name}</strong>{example.summary !== null ? ` — ${example.summary}` : ''}</p>\n {example.description !== null ? <p><OpenApiInlineCommonMark source={example.description} /></p> : null}\n {example.jsonValue !== null ? <pre tabIndex={0}><code>{example.jsonValue}</code></pre> : null}\n {example.externalValue !== null ? <p>{words.externalExample} <a href={example.externalValue}>{example.externalValue}</a></p> : null}\n {example.jsonValue === null && example.externalValue === null ? <p>{words.noInlineExample}</p> : null}\n </div>)}\n </details>;\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type DocumentationListKind } from './documentation-site-translator';
3
+ import type { ApiReferenceSentence, ApiReferenceWords } from './openapi-reference-words';
4
+ /** Provides the words to every part of one reference surface. */
5
+ export declare const ApiReferenceWordsProvider: import("react").Provider<ApiReferenceWords>;
6
+ /** The words the enclosing reference view was given. Every view requires them, so this never answers empty. */
7
+ export declare function useReferenceWords(): ApiReferenceWords;
8
+ /** A sentence with each `{name}` replaced by the element given for it; a placeholder with none stays as written. */
9
+ export declare function renderSentence(sentence: ApiReferenceSentence, elements: Readonly<Record<string, ReactNode>>): ReactNode;
10
+ /** `items` laid out in the reader's locale's list pattern (see `ApiReferenceWords.listLayout`). */
11
+ export declare function renderList(words: ApiReferenceWords, items: readonly ReactNode[], kind: DocumentationListKind): ReactNode;
12
+ //# sourceMappingURL=openapi-reference-words-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-reference-words-context.d.ts","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-words-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5E,OAAO,EAAqD,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAChI,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAUzF,iEAAiE;AACjE,eAAO,MAAM,yBAAyB,6CAAoC,CAAC;AAE3E,+GAA+G;AAC/G,wBAAgB,iBAAiB,IAAI,iBAAiB,CAIrD;AAED,oHAAoH;AACpH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAKvH;AAED,mGAAmG;AACnG,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,qBAAqB,GAAG,SAAS,CAExH"}