@apiboost/omnispec 1.1.0-next.4 → 1.1.0-next.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 (63) hide show
  1. package/dist/cjs/asyncapi/index.js +4 -4
  2. package/dist/cjs/chunks/{AsyncApiSpec-B-RGmOUL.js → AsyncApiSpec-TKogbIW6.js} +264 -119
  3. package/dist/cjs/chunks/AsyncApiSpec-TKogbIW6.js.map +1 -0
  4. package/dist/cjs/chunks/{Collapsible-qjYtxwP0.js → Collapsible-BfmA9-9j.js} +15 -3
  5. package/dist/cjs/chunks/Collapsible-BfmA9-9j.js.map +1 -0
  6. package/dist/cjs/chunks/{ErrorBoundary-CezYgQDG.js → ErrorBoundary-B4HaKqgp.js} +2 -2
  7. package/dist/cjs/chunks/{ErrorBoundary-CezYgQDG.js.map → ErrorBoundary-B4HaKqgp.js.map} +1 -1
  8. package/dist/cjs/chunks/{OmniSpecRenderer-Bh-IQod3.js → OmniSpecRenderer-BUy3S_g-.js} +6 -6
  9. package/dist/cjs/chunks/{OmniSpecRenderer-Bh-IQod3.js.map → OmniSpecRenderer-BUy3S_g-.js.map} +1 -1
  10. package/dist/cjs/chunks/{OpenApiSpec-5V9E-wQH.js → OpenApiSpec-gHi0WNaL.js} +5 -5
  11. package/dist/cjs/chunks/{OpenApiSpec-5V9E-wQH.js.map → OpenApiSpec-gHi0WNaL.js.map} +1 -1
  12. package/dist/cjs/chunks/{OpenIdConnectManual-DXDG8bcp.js → OpenIdConnectManual-Ci5ApLr2.js} +3 -3
  13. package/dist/cjs/chunks/{OpenIdConnectManual-DXDG8bcp.js.map → OpenIdConnectManual-Ci5ApLr2.js.map} +1 -1
  14. package/dist/cjs/chunks/{useSpecDetector-BemsWW9u.js → useSpecDetector-CEVOaUGf.js} +2 -2
  15. package/dist/cjs/chunks/{useSpecDetector-BemsWW9u.js.map → useSpecDetector-CEVOaUGf.js.map} +1 -1
  16. package/dist/cjs/chunks/{useSpecFetcher-BAbHnXax.js → useSpecFetcher-DSW4ivlk.js} +4 -1
  17. package/dist/cjs/chunks/{useSpecFetcher-BAbHnXax.js.map → useSpecFetcher-DSW4ivlk.js.map} +1 -1
  18. package/dist/cjs/core/public.js +4 -4
  19. package/dist/cjs/index.js +8 -8
  20. package/dist/cjs/openapi/index.js +5 -5
  21. package/dist/cjs/wc/index.js +4 -4
  22. package/dist/esm/asyncapi/index.js +4 -4
  23. package/dist/esm/chunks/{AsyncApiSpec-C0tdvyEP.js → AsyncApiSpec-DkQzir1h.js} +265 -120
  24. package/dist/esm/chunks/AsyncApiSpec-DkQzir1h.js.map +1 -0
  25. package/dist/esm/chunks/{Collapsible-CPxS90KX.js → Collapsible-CAN3BvNV.js} +15 -3
  26. package/dist/esm/chunks/Collapsible-CAN3BvNV.js.map +1 -0
  27. package/dist/esm/chunks/{ErrorBoundary-9pDlZFfM.js → ErrorBoundary-Djn7CSf3.js} +2 -2
  28. package/dist/esm/chunks/{ErrorBoundary-9pDlZFfM.js.map → ErrorBoundary-Djn7CSf3.js.map} +1 -1
  29. package/dist/esm/chunks/{OmniSpecRenderer-DmXZtPRr.js → OmniSpecRenderer-eqAJuEto.js} +6 -6
  30. package/dist/esm/chunks/{OmniSpecRenderer-DmXZtPRr.js.map → OmniSpecRenderer-eqAJuEto.js.map} +1 -1
  31. package/dist/esm/chunks/{OpenApiSpec-CoPhPro1.js → OpenApiSpec-BuNo8dSM.js} +5 -5
  32. package/dist/esm/chunks/{OpenApiSpec-CoPhPro1.js.map → OpenApiSpec-BuNo8dSM.js.map} +1 -1
  33. package/dist/esm/chunks/{OpenIdConnectManual-DhrAcSCa.js → OpenIdConnectManual-CzR3QdaN.js} +3 -3
  34. package/dist/esm/chunks/{OpenIdConnectManual-DhrAcSCa.js.map → OpenIdConnectManual-CzR3QdaN.js.map} +1 -1
  35. package/dist/esm/chunks/{useSpecDetector-BJBNbfN5.js → useSpecDetector-BvnIv0YM.js} +2 -2
  36. package/dist/esm/chunks/{useSpecDetector-BJBNbfN5.js.map → useSpecDetector-BvnIv0YM.js.map} +1 -1
  37. package/dist/esm/chunks/{useSpecFetcher-BvVfMuzf.js → useSpecFetcher-D1G2eiXA.js} +4 -1
  38. package/dist/esm/chunks/{useSpecFetcher-BvVfMuzf.js.map → useSpecFetcher-D1G2eiXA.js.map} +1 -1
  39. package/dist/esm/core/public.js +4 -4
  40. package/dist/esm/index.js +8 -8
  41. package/dist/esm/openapi/index.js +5 -5
  42. package/dist/esm/wc/index.js +4 -4
  43. package/dist/types/asyncapi/AsyncApiSpec.d.ts.map +1 -1
  44. package/dist/types/asyncapi/components/ChannelDetail.d.ts +7 -1
  45. package/dist/types/asyncapi/components/ChannelDetail.d.ts.map +1 -1
  46. package/dist/types/asyncapi/components/ChannelReferenceDetail.d.ts +7 -1
  47. package/dist/types/asyncapi/components/ChannelReferenceDetail.d.ts.map +1 -1
  48. package/dist/types/asyncapi/components/ReplyMeta.d.ts +25 -0
  49. package/dist/types/asyncapi/components/ReplyMeta.d.ts.map +1 -0
  50. package/dist/types/asyncapi/components/TagChips.d.ts +6 -1
  51. package/dist/types/asyncapi/components/TagChips.d.ts.map +1 -1
  52. package/dist/types/asyncapi/components/channel-actions.d.ts +25 -0
  53. package/dist/types/asyncapi/components/channel-actions.d.ts.map +1 -0
  54. package/dist/types/asyncapi/parser/asyncapi-parser.d.ts.map +1 -1
  55. package/dist/types/core/components/Layout/DocLayout.d.ts.map +1 -1
  56. package/dist/types/core/hooks/useHashScroll.d.ts.map +1 -1
  57. package/dist/wc/standalone.js +1 -1
  58. package/dist/wc/standalone.js.map +1 -1
  59. package/package.json +1 -1
  60. package/dist/cjs/chunks/AsyncApiSpec-B-RGmOUL.js.map +0 -1
  61. package/dist/cjs/chunks/Collapsible-qjYtxwP0.js.map +0 -1
  62. package/dist/esm/chunks/AsyncApiSpec-C0tdvyEP.js.map +0 -1
  63. package/dist/esm/chunks/Collapsible-CPxS90KX.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { Component } from 'react';
3
- import { E as ErrorMessage } from './useSpecFetcher-BvVfMuzf.js';
3
+ import { E as ErrorMessage } from './useSpecFetcher-D1G2eiXA.js';
4
4
 
5
5
  class ErrorBoundary extends Component {
6
6
  constructor(props) {
@@ -31,4 +31,4 @@ class ErrorBoundary extends Component {
31
31
  }
32
32
 
33
33
  export { ErrorBoundary as E };
34
- //# sourceMappingURL=ErrorBoundary-9pDlZFfM.js.map
34
+ //# sourceMappingURL=ErrorBoundary-Djn7CSf3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary-9pDlZFfM.js","sources":["../../../src/core/components/common/ErrorBoundary.tsx"],"sourcesContent":["/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { Component } from 'react'\nimport type { ErrorInfo, ReactNode } from 'react'\nimport { ErrorMessage } from './ErrorMessage'\n\ninterface ErrorBoundaryProps {\n children: ReactNode\n /** Title shown in the fallback UI. */\n title?: string\n /**\n * Custom fallback. Receives the caught error. When omitted, a themed\n * `ErrorMessage` is rendered so a render-phase crash never takes down the\n * host page (required hardening for the embeddable widget).\n */\n fallback?: (error: Error) => ReactNode\n /** Optional hook for logging/telemetry when a render crash is caught. */\n onError?: (error: Error, info: ErrorInfo) => void\n}\n\ninterface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * Catches render-phase exceptions from any descendant and renders a graceful\n * fallback instead of crashing the whole React tree. React error boundaries\n * must be class components — there is no hooks equivalent.\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: null }\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error }\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onError?.(error, info)\n // eslint-disable-next-line no-console\n console.error('[omnispec] Render error caught by ErrorBoundary:', error, info)\n }\n\n render(): ReactNode {\n const { error } = this.state\n if (error) {\n if (this.props.fallback) return this.props.fallback(error)\n return (\n <ErrorMessage\n title={this.props.title ?? 'Something went wrong'}\n message={error.message || 'An unexpected error occurred while rendering the documentation.'}\n />\n )\n }\n return this.props.children\n }\n}\n"],"names":[],"mappings":";;;;AAqCO,MAAM,sBAAsB,SAAA,CAAkD;AAAA,EACnF,YAAY,KAAA,EAA2B;AACrC,IAAA,KAAA,CAAM,KAAK,CAAA;AACX,IAAA,IAAA,CAAK,KAAA,GAAQ,EAAE,KAAA,EAAO,IAAA,EAAK;AAAA,EAC7B;AAAA,EAEA,OAAO,yBAAyB,KAAA,EAAkC;AAChE,IAAA,OAAO,EAAE,KAAA,EAAM;AAAA,EACjB;AAAA,EAEA,iBAAA,CAAkB,OAAc,IAAA,EAAuB;AACrD,IAAA,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,KAAA,EAAO,IAAI,CAAA;AAEhC,IAAA,OAAA,CAAQ,KAAA,CAAM,kDAAA,EAAoD,KAAA,EAAO,IAAI,CAAA;AAAA,EAC/E;AAAA,EAEA,MAAA,GAAoB;AAClB,IAAA,MAAM,EAAE,KAAA,EAAM,GAAI,IAAA,CAAK,KAAA;AACvB,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,IAAI,KAAK,KAAA,CAAM,QAAA,SAAiB,IAAA,CAAK,KAAA,CAAM,SAAS,KAAK,CAAA;AACzD,MAAA,uBACE,GAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,KAAA,IAAS,sBAAA;AAAA,UAC3B,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA;AAAA,OAC5B;AAAA,IAEJ;AACA,IAAA,OAAO,KAAK,KAAA,CAAM,QAAA;AAAA,EACpB;AACF;;;;"}
1
+ {"version":3,"file":"ErrorBoundary-Djn7CSf3.js","sources":["../../../src/core/components/common/ErrorBoundary.tsx"],"sourcesContent":["/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { Component } from 'react'\nimport type { ErrorInfo, ReactNode } from 'react'\nimport { ErrorMessage } from './ErrorMessage'\n\ninterface ErrorBoundaryProps {\n children: ReactNode\n /** Title shown in the fallback UI. */\n title?: string\n /**\n * Custom fallback. Receives the caught error. When omitted, a themed\n * `ErrorMessage` is rendered so a render-phase crash never takes down the\n * host page (required hardening for the embeddable widget).\n */\n fallback?: (error: Error) => ReactNode\n /** Optional hook for logging/telemetry when a render crash is caught. */\n onError?: (error: Error, info: ErrorInfo) => void\n}\n\ninterface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * Catches render-phase exceptions from any descendant and renders a graceful\n * fallback instead of crashing the whole React tree. React error boundaries\n * must be class components — there is no hooks equivalent.\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: null }\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error }\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onError?.(error, info)\n // eslint-disable-next-line no-console\n console.error('[omnispec] Render error caught by ErrorBoundary:', error, info)\n }\n\n render(): ReactNode {\n const { error } = this.state\n if (error) {\n if (this.props.fallback) return this.props.fallback(error)\n return (\n <ErrorMessage\n title={this.props.title ?? 'Something went wrong'}\n message={error.message || 'An unexpected error occurred while rendering the documentation.'}\n />\n )\n }\n return this.props.children\n }\n}\n"],"names":[],"mappings":";;;;AAqCO,MAAM,sBAAsB,SAAA,CAAkD;AAAA,EACnF,YAAY,KAAA,EAA2B;AACrC,IAAA,KAAA,CAAM,KAAK,CAAA;AACX,IAAA,IAAA,CAAK,KAAA,GAAQ,EAAE,KAAA,EAAO,IAAA,EAAK;AAAA,EAC7B;AAAA,EAEA,OAAO,yBAAyB,KAAA,EAAkC;AAChE,IAAA,OAAO,EAAE,KAAA,EAAM;AAAA,EACjB;AAAA,EAEA,iBAAA,CAAkB,OAAc,IAAA,EAAuB;AACrD,IAAA,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,KAAA,EAAO,IAAI,CAAA;AAEhC,IAAA,OAAA,CAAQ,KAAA,CAAM,kDAAA,EAAoD,KAAA,EAAO,IAAI,CAAA;AAAA,EAC/E;AAAA,EAEA,MAAA,GAAoB;AAClB,IAAA,MAAM,EAAE,KAAA,EAAM,GAAI,IAAA,CAAK,KAAA;AACvB,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,IAAI,KAAK,KAAA,CAAM,QAAA,SAAiB,IAAA,CAAK,KAAA,CAAM,SAAS,KAAK,CAAA;AACzD,MAAA,uBACE,GAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,KAAA,IAAS,sBAAA;AAAA,UAC3B,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA;AAAA,OAC5B;AAAA,IAEJ;AACA,IAAA,OAAO,KAAK,KAAA,CAAM,QAAA;AAAA,EACpB;AACF;;;;"}
@@ -1,14 +1,14 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { lazy, useMemo, Suspense } from 'react';
3
- import { a as useSpecFetcher, T as ThemeProvider, L as LoadingScreen, b as SpecStatusScreen, E as ErrorMessage } from './useSpecFetcher-BvVfMuzf.js';
4
- import { u as useSpecDetector, U as UpgradePrompt } from './useSpecDetector-BJBNbfN5.js';
5
- import { E as ErrorBoundary } from './ErrorBoundary-9pDlZFfM.js';
3
+ import { a as useSpecFetcher, T as ThemeProvider, L as LoadingScreen, b as SpecStatusScreen, E as ErrorMessage } from './useSpecFetcher-D1G2eiXA.js';
4
+ import { u as useSpecDetector, U as UpgradePrompt } from './useSpecDetector-BvnIv0YM.js';
5
+ import { E as ErrorBoundary } from './ErrorBoundary-Djn7CSf3.js';
6
6
 
7
7
  const OpenApiSpec = lazy(
8
- () => import('./OpenApiSpec-CoPhPro1.js').then(function (n) { return n.b; }).then((m) => ({ default: m.OpenApiSpec }))
8
+ () => import('./OpenApiSpec-BuNo8dSM.js').then(function (n) { return n.b; }).then((m) => ({ default: m.OpenApiSpec }))
9
9
  );
10
10
  const AsyncApiSpec = lazy(
11
- () => import('./AsyncApiSpec-C0tdvyEP.js').then((m) => ({ default: m.AsyncApiSpec }))
11
+ () => import('./AsyncApiSpec-DkQzir1h.js').then((m) => ({ default: m.AsyncApiSpec }))
12
12
  );
13
13
  function OmniSpecRenderer({ specType, spec, theme, docsUrl, upgradeUrl, pro, ...props }) {
14
14
  const { data: rawContent, state } = useSpecFetcher(spec);
@@ -99,4 +99,4 @@ function SpecRenderer({ type, props, registeredRenderers, docsUrl, upgradeUrl })
99
99
  }
100
100
 
101
101
  export { OmniSpecRenderer as O };
102
- //# sourceMappingURL=OmniSpecRenderer-DmXZtPRr.js.map
102
+ //# sourceMappingURL=OmniSpecRenderer-eqAJuEto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OmniSpecRenderer-DmXZtPRr.js","sources":["../../../src/unified/OmniSpecRenderer.tsx"],"sourcesContent":["/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { lazy, Suspense, useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport type { BaseSpecProps } from '../core/types/common.types'\nimport type { SpecType } from '../core/types/spec-detection.types'\nimport { useSpecFetcher } from '../core/hooks/useSpecFetcher'\nimport { useSpecDetector } from '../core/hooks/useSpecDetector'\nimport { ThemeProvider } from '../core/themes/ThemeProvider'\nimport { LoadingScreen } from '../core/components/common/LoadingScreen'\nimport { ErrorMessage } from '../core/components/common/ErrorMessage'\nimport { ErrorBoundary } from '../core/components/common/ErrorBoundary'\nimport { UpgradePrompt } from '../core/components/common/UpgradePrompt'\nimport { SpecStatusScreen } from '../core/components/Layout/SpecStatusScreen'\n\nconst OpenApiSpec = lazy(() =>\n import('../openapi/OpenApiSpec').then((m) => ({ default: m.OpenApiSpec })),\n)\nconst AsyncApiSpec = lazy(() =>\n import('../asyncapi/AsyncApiSpec').then((m) => ({ default: m.AsyncApiSpec })),\n)\n\nexport interface OmniSpecRendererProps extends BaseSpecProps {\n specType?: SpecType\n docsUrl?: string\n upgradeUrl?: string\n}\n\nexport function OmniSpecRenderer({ specType, spec, theme, docsUrl, upgradeUrl, pro, ...props }: OmniSpecRendererProps) {\n const { data: rawContent, state } = useSpecFetcher<string>(spec)\n const detected = useSpecDetector(rawContent, specType)\n const proRenderers = useMemo(() => pro?.renderers ?? new Map(), [pro?.renderers])\n\n if (state.status === 'loading') {\n return (\n <ThemeProvider theme={theme}>\n <LoadingScreen />\n </ThemeProvider>\n )\n }\n\n // Non-fatal spec problems (failed load, unrecognized content) render in the\n // content area while the host's nav/chrome stays put, so the user can\n // navigate away. Fatal render errors still use the ErrorBoundary fallback.\n if (state.status === 'error') {\n return (\n <SpecStatusScreen\n theme={theme}\n layout={props.layout}\n sidebarPosition={props.sidebarPosition}\n slots={props.slots}\n sidebarNav={props.sidebarNav}\n premiumThemingEnabled={pro?.premiumThemingEnabled ?? false}\n >\n <ErrorMessage title=\"Failed to load specification\" message={state.error} />\n </SpecStatusScreen>\n )\n }\n\n if (!detected) {\n return (\n <SpecStatusScreen\n theme={theme}\n layout={props.layout}\n sidebarPosition={props.sidebarPosition}\n slots={props.slots}\n sidebarNav={props.sidebarNav}\n premiumThemingEnabled={pro?.premiumThemingEnabled ?? false}\n >\n <ErrorMessage\n title=\"Unable to detect specification type\"\n message=\"The provided content could not be recognized as a supported API specification (OpenAPI, AsyncAPI, GraphQL, SOAP, or gRPC).\"\n />\n </SpecStatusScreen>\n )\n }\n\n const specProps = { ...props, spec, theme, pro }\n\n return (\n <ErrorBoundary\n fallback={(error) => (\n <ThemeProvider theme={theme}>\n <ErrorMessage\n title=\"Failed to render specification\"\n message={error.message || 'An unexpected error occurred while rendering the documentation.'}\n />\n </ThemeProvider>\n )}\n >\n <Suspense\n fallback={\n <ThemeProvider theme={theme}>\n <LoadingScreen />\n </ThemeProvider>\n }\n >\n <SpecRenderer\n type={detected.type}\n props={specProps}\n registeredRenderers={proRenderers}\n docsUrl={docsUrl}\n upgradeUrl={upgradeUrl}\n />\n </Suspense>\n </ErrorBoundary>\n )\n}\n\ninterface SpecRendererProps {\n type: SpecType\n props: BaseSpecProps\n registeredRenderers: Map<SpecType, ComponentType<BaseSpecProps>>\n docsUrl?: string\n upgradeUrl?: string\n}\n\nfunction SpecRenderer({ type, props, registeredRenderers, docsUrl, upgradeUrl }: SpecRendererProps) {\n const RegisteredRenderer = registeredRenderers.get(type)\n if (RegisteredRenderer) {\n return <RegisteredRenderer {...props} />\n }\n\n switch (type) {\n case 'openapi-2':\n case 'openapi-3':\n return <OpenApiSpec {...props} />\n case 'asyncapi-2':\n case 'asyncapi-3':\n return <AsyncApiSpec {...props} />\n default:\n return (\n <ThemeProvider theme={props.theme}>\n <UpgradePrompt specType={type} docsUrl={docsUrl} upgradeUrl={upgradeUrl} />\n </ThemeProvider>\n )\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OmniSpecRenderer-eqAJuEto.js","sources":["../../../src/unified/OmniSpecRenderer.tsx"],"sourcesContent":["/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { lazy, Suspense, useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport type { BaseSpecProps } from '../core/types/common.types'\nimport type { SpecType } from '../core/types/spec-detection.types'\nimport { useSpecFetcher } from '../core/hooks/useSpecFetcher'\nimport { useSpecDetector } from '../core/hooks/useSpecDetector'\nimport { ThemeProvider } from '../core/themes/ThemeProvider'\nimport { LoadingScreen } from '../core/components/common/LoadingScreen'\nimport { ErrorMessage } from '../core/components/common/ErrorMessage'\nimport { ErrorBoundary } from '../core/components/common/ErrorBoundary'\nimport { UpgradePrompt } from '../core/components/common/UpgradePrompt'\nimport { SpecStatusScreen } from '../core/components/Layout/SpecStatusScreen'\n\nconst OpenApiSpec = lazy(() =>\n import('../openapi/OpenApiSpec').then((m) => ({ default: m.OpenApiSpec })),\n)\nconst AsyncApiSpec = lazy(() =>\n import('../asyncapi/AsyncApiSpec').then((m) => ({ default: m.AsyncApiSpec })),\n)\n\nexport interface OmniSpecRendererProps extends BaseSpecProps {\n specType?: SpecType\n docsUrl?: string\n upgradeUrl?: string\n}\n\nexport function OmniSpecRenderer({ specType, spec, theme, docsUrl, upgradeUrl, pro, ...props }: OmniSpecRendererProps) {\n const { data: rawContent, state } = useSpecFetcher<string>(spec)\n const detected = useSpecDetector(rawContent, specType)\n const proRenderers = useMemo(() => pro?.renderers ?? new Map(), [pro?.renderers])\n\n if (state.status === 'loading') {\n return (\n <ThemeProvider theme={theme}>\n <LoadingScreen />\n </ThemeProvider>\n )\n }\n\n // Non-fatal spec problems (failed load, unrecognized content) render in the\n // content area while the host's nav/chrome stays put, so the user can\n // navigate away. Fatal render errors still use the ErrorBoundary fallback.\n if (state.status === 'error') {\n return (\n <SpecStatusScreen\n theme={theme}\n layout={props.layout}\n sidebarPosition={props.sidebarPosition}\n slots={props.slots}\n sidebarNav={props.sidebarNav}\n premiumThemingEnabled={pro?.premiumThemingEnabled ?? false}\n >\n <ErrorMessage title=\"Failed to load specification\" message={state.error} />\n </SpecStatusScreen>\n )\n }\n\n if (!detected) {\n return (\n <SpecStatusScreen\n theme={theme}\n layout={props.layout}\n sidebarPosition={props.sidebarPosition}\n slots={props.slots}\n sidebarNav={props.sidebarNav}\n premiumThemingEnabled={pro?.premiumThemingEnabled ?? false}\n >\n <ErrorMessage\n title=\"Unable to detect specification type\"\n message=\"The provided content could not be recognized as a supported API specification (OpenAPI, AsyncAPI, GraphQL, SOAP, or gRPC).\"\n />\n </SpecStatusScreen>\n )\n }\n\n const specProps = { ...props, spec, theme, pro }\n\n return (\n <ErrorBoundary\n fallback={(error) => (\n <ThemeProvider theme={theme}>\n <ErrorMessage\n title=\"Failed to render specification\"\n message={error.message || 'An unexpected error occurred while rendering the documentation.'}\n />\n </ThemeProvider>\n )}\n >\n <Suspense\n fallback={\n <ThemeProvider theme={theme}>\n <LoadingScreen />\n </ThemeProvider>\n }\n >\n <SpecRenderer\n type={detected.type}\n props={specProps}\n registeredRenderers={proRenderers}\n docsUrl={docsUrl}\n upgradeUrl={upgradeUrl}\n />\n </Suspense>\n </ErrorBoundary>\n )\n}\n\ninterface SpecRendererProps {\n type: SpecType\n props: BaseSpecProps\n registeredRenderers: Map<SpecType, ComponentType<BaseSpecProps>>\n docsUrl?: string\n upgradeUrl?: string\n}\n\nfunction SpecRenderer({ type, props, registeredRenderers, docsUrl, upgradeUrl }: SpecRendererProps) {\n const RegisteredRenderer = registeredRenderers.get(type)\n if (RegisteredRenderer) {\n return <RegisteredRenderer {...props} />\n }\n\n switch (type) {\n case 'openapi-2':\n case 'openapi-3':\n return <OpenApiSpec {...props} />\n case 'asyncapi-2':\n case 'asyncapi-3':\n return <AsyncApiSpec {...props} />\n default:\n return (\n <ThemeProvider theme={props.theme}>\n <UpgradePrompt specType={type} docsUrl={docsUrl} upgradeUrl={upgradeUrl} />\n </ThemeProvider>\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { useState, useCallback, useRef, useEffect, useMemo, useId, memo } from 'react';
3
3
  import { css, cx } from '@emotion/css';
4
- import { j as useConfig, I as Icon, a as useSpecFetcher, m as mq, B as Button, S as SpecType, r as resolveSchemaStyle, T as ThemeProvider, L as LoadingScreen, b as SpecStatusScreen, E as ErrorMessage, N as NavTree, h as buildSidebar, C as ConfigProvider, e as DocLayout } from './useSpecFetcher-BvVfMuzf.js';
5
- import { M as MarkdownRenderer, T as Tabs, x as generateExample, f as MethodBar, t as SchemaTree, A as schemaToNodes, K as buildConstraints, J as ExampleSelector, I as getNamedExamples, C as CodeBlock, d as ExpandableCard, R as ReferenceLayout, a as Collapsible, D as useHashScroll, w as flattenNavItemIds, G as useScrollSpy, u as SearchBar, L as ExpandProvider, v as SpecToolbar, z as resolveDownloadLink } from './Collapsible-CPxS90KX.js';
6
- import { e as authStyles, d as SecretInput, u as useAuth, O as OAuth2AuthManual, a as OpenIdConnectManual, g as ApiKeyAuth, M as Modal, l as loadTryItState, h as saveTryItState, f as sendProxiedRequest, s as sendDirectRequest, C as CodeSamples, b as ResponseViewer, i as clearTryItState, L as LinkableHeading, S as SamplesPanel, R as ReferenceOperationDetail, c as ResponsiveColumns, A as AuthProvider } from './OpenIdConnectManual-DhrAcSCa.js';
4
+ import { j as useConfig, I as Icon, a as useSpecFetcher, m as mq, B as Button, S as SpecType, r as resolveSchemaStyle, T as ThemeProvider, L as LoadingScreen, b as SpecStatusScreen, E as ErrorMessage, N as NavTree, h as buildSidebar, C as ConfigProvider, e as DocLayout } from './useSpecFetcher-D1G2eiXA.js';
5
+ import { M as MarkdownRenderer, T as Tabs, x as generateExample, f as MethodBar, t as SchemaTree, A as schemaToNodes, K as buildConstraints, J as ExampleSelector, I as getNamedExamples, C as CodeBlock, d as ExpandableCard, R as ReferenceLayout, a as Collapsible, D as useHashScroll, w as flattenNavItemIds, G as useScrollSpy, u as SearchBar, L as ExpandProvider, v as SpecToolbar, z as resolveDownloadLink } from './Collapsible-CAN3BvNV.js';
6
+ import { e as authStyles, d as SecretInput, u as useAuth, O as OAuth2AuthManual, a as OpenIdConnectManual, g as ApiKeyAuth, M as Modal, l as loadTryItState, h as saveTryItState, f as sendProxiedRequest, s as sendDirectRequest, C as CodeSamples, b as ResponseViewer, i as clearTryItState, L as LinkableHeading, S as SamplesPanel, R as ReferenceOperationDetail, c as ResponsiveColumns, A as AuthProvider } from './OpenIdConnectManual-CzR3QdaN.js';
7
7
  import { r as resolveRefs, p as parse } from './ref-resolver-B0C36NuQ.js';
8
- import { E as ErrorBoundary } from './ErrorBoundary-9pDlZFfM.js';
8
+ import { E as ErrorBoundary } from './ErrorBoundary-Djn7CSf3.js';
9
9
 
10
10
  const AUTH_SCHEME_LABELS = {
11
11
  apiKey: "API Key",
@@ -3150,4 +3150,4 @@ var OpenApiSpec$1 = /*#__PURE__*/Object.freeze({
3150
3150
  });
3151
3151
 
3152
3152
  export { OpenApiSpec as O, authSchemeLabel as a, OpenApiSpec$1 as b };
3153
- //# sourceMappingURL=OpenApiSpec-CoPhPro1.js.map
3153
+ //# sourceMappingURL=OpenApiSpec-BuNo8dSM.js.map