@redocly/openapi-docs 3.15.0 → 3.16.0-custom.4

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 (50) hide show
  1. package/dist/redocly-openapi-docs.min.js +1985 -1915
  2. package/lib/components/ApiInfo/ApiInfo.js +1 -1
  3. package/lib/components/ApiInfo/Metadata.js +1 -1
  4. package/lib/components/ContentItem/ContentItem.js +1 -1
  5. package/lib/components/McpOverview/McpOverview.js +7 -3
  6. package/lib/components/McpTool/McpPrompt.d.ts +6 -0
  7. package/lib/components/McpTool/McpPrompt.js +9 -0
  8. package/lib/components/McpTool/McpResource.d.ts +7 -0
  9. package/lib/components/McpTool/McpResource.js +14 -0
  10. package/lib/components/McpTool/McpTool.d.ts +1 -1
  11. package/lib/components/McpTool/McpTool.js +1 -1
  12. package/lib/components/McpTool/index.d.ts +2 -0
  13. package/lib/components/McpTool/index.js +1 -1
  14. package/lib/components/Overview/Overview.js +1 -1
  15. package/lib/components/PanelItem/styled.js +8 -4
  16. package/lib/components/RedoclyOpenAPIDocs/Providers.js +1 -1
  17. package/lib/components/Replay/EmbeddedReplay.d.ts +2 -1
  18. package/lib/components/Replay/EmbeddedReplay.js +3 -3
  19. package/lib/components/Replay/Replay.js +1 -1
  20. package/lib/components/Replay/utils.js +1 -1
  21. package/lib/components/RightPanel/RightPanel.js +5 -1
  22. package/lib/components/SectionContent/SectionContent.js +4 -4
  23. package/lib/components/ServerList/ServerList.js +11 -11
  24. package/lib/components/ServerListDropdown/ServerListDropdown.js +1 -1
  25. package/lib/components/SideMenu/hooks/useMenuItems.js +1 -1
  26. package/lib/components/TagItem/OperationNavigationItems.js +4 -4
  27. package/lib/components/TagItem/OperationsNavigation.js +2 -2
  28. package/lib/components/TagItem/TagItem.js +7 -6
  29. package/lib/components/common/Fields/fields.js +5 -3
  30. package/lib/index.d.ts +1 -0
  31. package/lib/index.js +1 -1
  32. package/lib/models/group.js +1 -1
  33. package/lib/models/operation.js +1 -1
  34. package/lib/models/schema.js +2 -2
  35. package/lib/models/types.d.ts +3 -0
  36. package/lib/services/OpenAPIParser.js +1 -1
  37. package/lib/services/menu/markdown.js +1 -1
  38. package/lib/services/menu/operation.js +1 -1
  39. package/lib/services/menu/tags.d.ts +1 -0
  40. package/lib/services/menu/tags.js +4 -2
  41. package/lib/services/types.d.ts +9 -1
  42. package/lib/types/open-api.d.ts +14 -0
  43. package/lib/utils/configure-helpers.d.ts +2 -2
  44. package/lib/utils/configure-helpers.js +1 -1
  45. package/lib/utils/mcp.d.ts +1 -1
  46. package/lib/utils/mcp.js +1 -1
  47. package/lib/utils/menu.js +1 -1
  48. package/lib/utils/openapi.js +1 -1
  49. package/lib/utils/string.js +1 -1
  50. package/package.json +11 -8
@@ -1 +1 @@
1
- import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useAtomValue as A}from"jotai";import{LayoutVariant as g}from"@redocly/config";import{AfterOpenApiTitle as h}from"@redocly/theme/components/OpenApiDocs/hooks/AfterOpenApiTitle";import{PageActions as D}from"@redocly/theme/components/PageActions/PageActions";import{SamplesMiddlePanel as k,Row as S}from"../common/index.js";import{ExternalDocumentation as M}from"../ExternalDocumentation/index.js";import{Markdown as s}from"../Markdown/index.js";import{ApiHeader as T}from"./styled.js";import{globalStoreAtom as j}from"../../jotai/store.js";import{saveTextBeforeHeading as y}from"../../utils/saveTextBeforeHeading.js";import{getValueFromMdParsedExtension as m}from"../../utils/helpers.js";import{RenderHook as H}from"../RenderHook/index.js";import{Metadata as P}from"./Metadata.js";import{useTranslate as v}from"../../hooks/index.js";function $({item:p,layout:r}){const l=v(),{options:{unstable_hooks:d,hideInfoMetadata:f,routingBasePath:c},parser:{definition:u}}=A(j),o=p.infoDefinition;if(!o)return null;const e=y(m(o,"description")||""),i=m(o,"summary")||void 0,a=u?.externalDocs||o?.externalDocs,x=r===g.STACKED;return t(S,{layout:r,children:n(k,{fullWidth:!0,className:"api-info",isStacked:x,children:[n(T,{children:[(o.title||"")+(o.version?` (${o.version})`:""),t(D,{pageSlug:c})]}),t(H,{Hook:h||d?.AfterApiTitle,props:{info:o}}),i&&t(s,{source:i,"data-role":"redoc-summary"}),e&&t(s,{source:e,"data-role":"redoc-description"}),a&&t(M,{externalDocs:a}),!f&&t(P,{metadata:o["x-metadata"],translate:l})]})})}export{$ as ApiInfo};
1
+ import{jsx as r,jsxs as s}from"react/jsx-runtime";import{useAtomValue as D}from"jotai";import{LayoutVariant as g}from"@redocly/config";import{AfterOpenApiTitle as h}from"@redocly/theme/components/OpenApiDocs/hooks/AfterOpenApiTitle";import{AfterOpenApiDescription as k}from"@redocly/theme/components/OpenApiDocs/hooks/AfterOpenApiDescription";import{PageActions as S}from"@redocly/theme/components/PageActions/PageActions";import{SamplesMiddlePanel as H,Row as M}from"../common/index.js";import{ExternalDocumentation as T}from"../ExternalDocumentation/index.js";import{Markdown as m}from"../Markdown/index.js";import{ApiHeader as j}from"./styled.js";import{globalStoreAtom as y}from"../../jotai/store.js";import{saveTextBeforeHeading as P}from"../../utils/saveTextBeforeHeading.js";import{getValueFromMdParsedExtension as p}from"../../utils/helpers.js";import{RenderHook as f}from"../RenderHook/index.js";import{Metadata as v}from"./Metadata.js";import{useTranslate as E}from"../../hooks/index.js";function z({item:l,layout:t}){const c=E(),{options:{unstable_hooks:e,hideInfoMetadata:d,routingBasePath:u},parser:{definition:A}}=D(y),o=l.infoDefinition;if(!o)return null;const i=P(p(o,"description")||""),a=p(o,"summary")||void 0,n=A?.externalDocs||o?.externalDocs,x=t===g.STACKED;return r(M,{layout:t,children:s(H,{fullWidth:!0,className:"api-info",isStacked:x,children:[s(j,{children:[(o.title||"")+(o.version?` (${o.version})`:""),r(S,{pageSlug:u})]}),r(f,{Hook:h||e?.AfterApiTitle,props:{info:o}}),a&&r(m,{source:a,"data-role":"redoc-summary"}),i&&r(m,{source:i,"data-role":"redoc-description"}),r(f,{Hook:k||e?.AfterOpenApiDescription,props:{info:o}}),n&&r(T,{externalDocs:n}),!d&&r(v,{metadata:o["x-metadata"],translate:c})]})})}export{z as ApiInfo};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as i}from"react/jsx-runtime";import{useMemo as c}from"react";import{Markdown as d}from"@redocly/theme/components/Markdown/Markdown";import{H3 as a}from"@redocly/theme/components/Typography/H3";import{isNotNull as p}from"@redocly/theme/core/openapi";const s=["title","description"];function f([e,r]){return s.includes(e)?null:Array.isArray(r)?{key:e,value:r.filter(n=>typeof n!="object").join(", ")}:typeof r=="object"?null:{key:e,value:r}}function b({metadata:e,translate:r}){const n=c(()=>Object.entries(e||{}).map(f).filter(p),[e]);return e?i(d,{children:[t(a,{children:r("openapi.info.metadata.title","Metadata")}),i("table",{className:"md",children:[t("thead",{children:i("tr",{children:[t("th",{scope:"col",children:r("openapi.key","Key")}),t("th",{scope:"col",children:r("openapi.value","Value")})]})}),t("tbody",{children:n.map(({key:o,value:l})=>i("tr",{children:[t("td",{children:o}),t("td",{children:`${l}`})]},o))})]})]}):null}export{b as Metadata};
1
+ import{jsx as e,jsxs as n}from"react/jsx-runtime";import{useMemo as c}from"react";import{Markdown as d}from"@redocly/theme/components/Markdown/Markdown";import{H3 as p}from"@redocly/theme/components/Typography/H3";import{isNotNull as a}from"@redocly/theme/core/openapi";import{isAbsoluteUrl as s}from"../../utils/helpers.js";const f=["title","description"];function m([t,r]){return f.includes(t)?null:Array.isArray(r)?{key:t,value:r.filter(l=>typeof l!="object").join(", ")}:typeof r=="object"?null:{key:t,value:r}}function x({metadata:t,translate:r}){const l=c(()=>Object.entries(t||{}).map(m).filter(a).sort((o,i)=>o.key.localeCompare(i.key)),[t]);return t?n(d,{children:[e(p,{children:r("openapi.info.metadata.title","Metadata")}),n("table",{className:"md",children:[e("thead",{children:n("tr",{children:[e("th",{scope:"col",children:r("openapi.key","Key")}),e("th",{scope:"col",children:r("openapi.value","Value")})]})}),e("tbody",{children:l.map(({key:o,value:i})=>n("tr",{children:[e("td",{children:o}),e("td",{children:typeof i=="string"&&s(i)?e("a",{href:i,target:"_blank",rel:"noreferrer",children:i}):String(i)})]},o))})]})]}):null}export{x as Metadata};
@@ -1 +1 @@
1
- import{jsx as t,Fragment as i,jsxs as f}from"react/jsx-runtime";import{memo as u}from"react";import{useAtomValue as x}from"jotai";import{joinWithSeparator as I}from"../../services/index.js";import{TagItem as r}from"../TagItem/index.js";import{OperationItem as g}from"../OperationItem/index.js";import{Section as y}from"../common/index.js";import{useIsExpanded as C}from"./useIsExpanded.js";import{SectionItem as h}from"../SectionItem/index.js";import j from"../ContentItems/useScrollOnRender.js";import{isRootItem as E}from"../ContentItems/helpers.js";import{ApiInfo as R}from"../ApiInfo/index.js";import{layoutAtom as S}from"../../jotai/app.js";import{isRenderableMenuItem as A}from"../../utils/menu.js";const _={group:null,tag:r,section:h,schema:o=>t(r,{...o,item:o.item,isExpanded:!0}),operation:g,mcp:o=>t(r,{...o,item:o.item,isExpanded:!0}),root:R};function b({item:o,routingBasePath:e,children:p,layout:s}){const a=E(o),m=_[a?"root":o.type],d=o.type==="tag"&&o.items.length>0,n=C({item:o,routingBasePath:e});let l=j(o,e);const c=x(S);return f(i,{children:[m&&t(y,{id:o.id,ref:l,sectionId:I(e,o.id),underlined:A(o),expanded:d&&!n,children:t(m,{item:o,routingBasePath:e,isExpanded:n,layout:s||c})}),(n||o.type!=="tag")&&!!o.items?.length&&t(i,{children:p})]})}const J=u(b);export{J as ContentItem};
1
+ import{jsx as t,Fragment as i,jsxs as f}from"react/jsx-runtime";import{memo as u}from"react";import{useAtomValue as x}from"jotai";import{joinWithSeparator as I}from"../../services/index.js";import{TagItem as e}from"../TagItem/index.js";import{OperationItem as g}from"../OperationItem/index.js";import{Section as y}from"../common/index.js";import{useIsExpanded as C}from"./useIsExpanded.js";import{SectionItem as E}from"../SectionItem/index.js";import h from"../ContentItems/useScrollOnRender.js";import{isRootItem as j}from"../ContentItems/helpers.js";import{ApiInfo as R}from"../ApiInfo/index.js";import{layoutAtom as S}from"../../jotai/app.js";import{isRenderableMenuItem as A}from"../../utils/menu.js";const _={group:null,tag:e,section:E,schema:o=>t(e,{...o,item:o.item,isExpanded:!0}),operation:g,tool:o=>t(e,{...o,item:o.item,isExpanded:!0}),rsrc:o=>t(e,{...o,item:o.item,isExpanded:!0}),prompt:o=>t(e,{...o,item:o.item,isExpanded:!0}),root:R};function b({item:o,routingBasePath:n,children:p,layout:s}){const a=j(o),m=_[a?"root":o.type],d=o.type==="tag"&&o.items.length>0,r=C({item:o,routingBasePath:n});let l=h(o,n);const c=x(S);return f(i,{children:[m&&t(y,{id:o.id,ref:l,sectionId:I(n,o.id),underlined:A(o),expanded:d&&!r,children:t(m,{item:o,routingBasePath:n,isExpanded:r,layout:s||c})}),(r||o.type!=="tag")&&!!o.items?.length&&t(i,{children:p})]})}const J=u(b);export{J as ContentItem};
@@ -1,11 +1,15 @@
1
- import{jsx as t,jsxs as o,Fragment as l}from"react/jsx-runtime";import*as b from"react";import{NewTabButton as h}from"@redocly/theme/components/Buttons/NewTabButton";import{PageActions as u}from"@redocly/theme/components/PageActions/PageActions";import{Tag as p}from"@redocly/theme/components/Tag/Tag";import{CheckmarkIcon as g}from"@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon";import{MCP_SERVER_CAPABILITIES as f,MCP_SERVER_EXPERIMENTAL_CAPABILITIES as E,PAGE_ACTIONS_MCP as P}from"../../utils/mcp.js";import{PanelItem as r}from"../PanelItem/PanelItem.js";import{PanelItemsList as C}from"../PanelItem/styled.js";import{useTranslate as _}from"../../hooks/index.js";import{styled as c}from"../../styled-components.js";function O({mcpInfo:e,mcpServers:s}){const a=_();function d(i){return typeof e?.capabilities[i]=="object"&&e?.capabilities[i]?.listChanged}function m(i){return typeof e?.capabilities[i]=="object"&&e?.capabilities[i]?.subscribe}return o(C,{children:[e?.protocolVersion&&t(r,{header:a("openapi.mcp.protocolVersion","Protocol version"),title:e.protocolVersion}),e?.capabilities&&t(r,{header:a("openapi.mcp.capabilities","Capabilities"),title:t(l,{children:f.map(i=>e?.capabilities[i]?o(p,{size:"small",icon:t(g,{}),children:[i,d(i)?" (list changed)":"",m(i)?" (subscribe)":""]},i):null)})}),e?.capabilities[E]&&t(r,{header:a("openapi.mcp.experimentalCapabilities","Experimental capabilities"),title:t(x,{children:Object.entries(e?.capabilities.experimental||{}).map(([i,n])=>o(b.Fragment,{children:[o("span",{children:[i,":"]}),t(p,{children:typeof n=="object"?JSON.stringify(n):String(n)})]},i))})}),t(r,{header:a("openapi.mcp.endpoint","Endpoint"),title:t(l,{children:s[0]?.url}),actions:[t(h,{data:s[0]?.url},"NewTabButton")]}),t(r,{title:t(j,{children:t(u,{actions:P,mcpUrl:s[0]?.url})})})]})}const j=c.div`
1
+ import{jsx as t,jsxs as s,Fragment as c}from"react/jsx-runtime";import*as b from"react";import{NewTabButton as h}from"@redocly/theme/components/Buttons/NewTabButton";import{PageActions as u}from"@redocly/theme/components/PageActions/PageActions";import{Tag as p}from"@redocly/theme/components/Tag/Tag";import{CheckmarkIcon as g}from"@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon";import{MCP_SERVER_CAPABILITIES as f,MCP_SERVER_EXPERIMENTAL_CAPABILITIES as P,PAGE_ACTIONS_MCP as E}from"../../utils/mcp.js";import{PanelItem as r}from"../PanelItem/PanelItem.js";import{Item as C,PanelItemsList as _,Title as j}from"../PanelItem/styled.js";import{useTranslate as x}from"../../hooks/index.js";import{styled as n}from"../../styled-components.js";function F({mcpInfo:e,mcpServers:a}){const o=x();function m(i){return typeof e?.capabilities[i]=="object"&&e?.capabilities[i]?.listChanged}function d(i){return typeof e?.capabilities[i]=="object"&&e?.capabilities[i]?.subscribe}return s(A,{children:[e?.protocolVersion&&t(r,{header:o("openapi.mcp.protocolVersion","Protocol version"),title:e.protocolVersion}),e?.capabilities&&t(r,{header:o("openapi.mcp.capabilities","Capabilities"),title:t(c,{children:f.map(i=>e?.capabilities[i]?s(p,{size:"small",icon:t(g,{}),children:[i,m(i)?" (list changed)":"",d(i)?" (subscribe)":""]},i):null)})}),e?.capabilities[P]&&t(r,{header:o("openapi.mcp.experimentalCapabilities","Experimental capabilities"),title:t(L,{children:Object.entries(e?.capabilities.experimental||{}).map(([i,l])=>s(b.Fragment,{children:[s("span",{children:[i,":"]}),t(p,{children:typeof l=="object"?JSON.stringify(l):String(l)})]},i))})}),t(r,{header:o("openapi.mcp.endpoint","Endpoint"),title:t(c,{children:a[0]?.url}),actions:[t(h,{data:a[0]?.url},"NewTabButton")]}),!!a[0]?.url&&t(r,{title:t(T,{children:t(u,{actions:E,mcpUrl:a[0]?.url})})})]})}const A=n(_)`
2
+ ${C}, ${j} {
3
+ overflow: visible;
4
+ }
5
+ `,T=n.div`
2
6
  & button {
3
7
  width: 100%;
4
8
  }
5
9
  > div {
6
10
  padding: 0;
7
11
  }
8
- `,x=c.div`
12
+ `,L=n.div`
9
13
  display: grid;
10
14
  grid-template-columns: 1fr 2fr;
11
15
  gap: 10px;
@@ -13,4 +17,4 @@ import{jsx as t,jsxs as o,Fragment as l}from"react/jsx-runtime";import*as b from
13
17
  > * {
14
18
  justify-self: start;
15
19
  }
16
- `;export{O as McpOverview};
20
+ `;export{F as McpOverview};
@@ -0,0 +1,6 @@
1
+ interface McpPromptProps {
2
+ name: string;
3
+ id: string;
4
+ }
5
+ export declare const McpPrompt: import("react").NamedExoticComponent<McpPromptProps>;
6
+ export {};
@@ -0,0 +1,9 @@
1
+ import{jsx as t,jsxs as c,Fragment as T}from"react/jsx-runtime";import{memo as k,useCallback as C,useMemo as u}from"react";import{useAtomValue as f}from"jotai";import{LayoutVariant as P}from"@redocly/config";import{getMediaContent as j,getSecurity as A}from"../../models/index.js";import{globalStoreAtom as g}from"../../jotai/store.js";import{Section as b,Row as q,SamplesMiddlePanel as v,SamplesPanel as F,CodeBlockPanel as L}from"../common/index.js";import{Schema as R}from"../Schema/index.js";import{layoutAtom as _}from"../../jotai/app.js";import{MediaTypeSamples as w}from"../PayloadSamples/MediaTypeSamples.js";import{useTranslate as D}from"../../hooks/index.js";import{Title as E}from"../common/OperationItemTitle.js";import{LinkToField as V}from"../common/LinkToField.js";import{makeDeepLink as B}from"../../services/index.js";import{Security as K}from"../Security/Security.js";import{styled as x}from"../../styled-components.js";function N({name:n,id:l}){const{parser:e}=f(g),i=D(),r=u(()=>(e.definition["x-mcp"]?.prompts||[]).find(p=>p.name===n),[e,n]),m=u(()=>r?A(r.security,e):null,[e,r]);return r?t(b,{children:t(z,{id:l,type:"input",prompt:r,title:i("openapi.mcp.inputSchema","Arguments"),exampleTitle:i("openapi.mcp.inputExample","Arguments example"),children:m&&t(K,{securities:m})})}):null}function z({id:n,type:l,prompt:e,title:i,exampleTitle:r,children:m}){const{parser:d,options:p}=f(g),y=f(_),h=y===P.STACKED,a=u(()=>{const S=e.arguments&&{type:"object",properties:e.arguments.reduce((o,s)=>(o[s.name]={type:"",example:s.example||"string",description:s.description,required:s.required},o),{}),required:e.arguments.filter(o=>o.required).map(o=>o.name)};return S?j({parser:d,info:{"application/json":{schema:S}},isRequestType:!1,options:p,data:{operation:{pointer:"McpPrompt"}}}):null},[p,d,e]),M=C(()=>{},[]);return c(G,{layout:y,children:[t(H,{isStacked:h,children:c("div",{children:[m,a&&c(T,{children:[" ",c(E,{children:[n&&t(V,{to:B(n,l)}),i]}),t(R,{schema:a.mediaTypes[0].schema})]})]})}),a&&t(F,{isStacked:h,children:t(L,{className:"panel-response-samples",header:r,children:t(w,{mediaType:a.mediaTypes[0],onChange:M})})})]})}const G=x(q)`
2
+ margin: calc(var(--spacing-unit) * 2) 0;
3
+
4
+ & + & {
5
+ margin-top: calc(var(--spacing-base) * 2);
6
+ }
7
+ `,H=x(v)`
8
+ padding-left: 0;
9
+ `,me=k(N);export{me as McpPrompt};
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ interface McpResourceProps {
3
+ name: string;
4
+ id: string;
5
+ }
6
+ export declare const McpResource: React.NamedExoticComponent<McpResourceProps>;
7
+ export {};
@@ -0,0 +1,14 @@
1
+ import{jsxs as l,jsx as o}from"react/jsx-runtime";import{memo as k,useMemo as T}from"react";import*as M from"react";import{useAtomValue as h}from"jotai";import{LayoutVariant as R}from"@redocly/config";import{CodeBlock as b}from"@redocly/theme/components/CodeBlock/CodeBlock";import{Tag as P}from"@redocly/theme/components/Tag/Tag";import{getSecurity as v}from"../../models/index.js";import{globalStoreAtom as j}from"../../jotai/store.js";import{Section as w,Row as A,SamplesMiddlePanel as B,SamplesPanel as F,CodeBlockPanel as E}from"../common/index.js";import{layoutAtom as I}from"../../jotai/app.js";import{useTranslate as L}from"../../hooks/index.js";import{Security as V}from"../Security/Security.js";import{styled as s}from"../../styled-components.js";function _({name:i}){const{parser:t}=h(j),c=L(),e=T(()=>(t.definition["x-mcp"]?.resources||[]).find(a=>a.name===i),[t,i]),r=T(()=>e?v(e.security,t):null,[t,e]);return e?o(w,{children:o(D,{uriTitle:c("openapi.mcp.uriTitle","Resource URI"),mimeTypeTitle:c("openapi.mcp.mimeTypeTitle","Resource MIME type"),exampleTitle:c("openapi.mcp.exampleTitle","Resource content"),uri:e.uri,mimeType:e.mimeType,content:e.blob??e.text??"",children:r&&o(V,{securities:r})})}):l("div",{children:["Resource not found: ",i]})}function D({uriTitle:i,mimeTypeTitle:t,exampleTitle:c,uri:e,mimeType:r,content:p,children:a}){const m=h(I),d=m===R.STACKED,[u,f]=M.useState(null),y=async(n,x,C)=>{C.stopPropagation();try{await navigator.clipboard.writeText(n),f(x),setTimeout(()=>f(null),2e3)}catch(g){console.error("Failed to copy text: ",g)}};return l(K,{layout:m,children:[o(N,{isStacked:d,children:l("div",{children:[a,l("p",{children:[i,":"," ",o(S,{onClick:n=>y(e,"uri",n),title:"Click to copy",children:u==="uri"?"\u2713 Copied!":e})]}),l("p",{children:[t,":"," ",o(S,{onClick:n=>y(r,"mimeType",n),title:"Click to copy",children:u==="mimeType"?"\u2713 Copied!":r})]})]})}),p&&o(F,{isStacked:d,children:o(E,{className:"panel-response-samples",header:c,children:o(U,{source:p,header:{title:r,controls:{copy:{}}}})})})]})}const K=s(A)`
2
+ margin: calc(var(--spacing-unit) * 2) 0;
3
+
4
+ & + & {
5
+ margin-top: calc(var(--spacing-base) * 2);
6
+ }
7
+ `,N=s(B)`
8
+ padding-left: 0;
9
+ `,oe=k(_),S=s(P)`
10
+ text-transform: none;
11
+ `,U=s(b)`
12
+ border: none;
13
+ padding: 0 8px;
14
+ `;export{oe as McpResource};
@@ -1,5 +1,5 @@
1
1
  interface McpToolProps {
2
- toolName: string;
2
+ name: string;
3
3
  id: string;
4
4
  }
5
5
  export declare const McpTool: import("react").NamedExoticComponent<McpToolProps>;
@@ -1,4 +1,4 @@
1
- import{jsxs as a,jsx as n}from"react/jsx-runtime";import{memo as M,useCallback as g,useMemo as l}from"react";import{useAtomValue as s}from"jotai";import{LayoutVariant as k}from"@redocly/config";import{getMediaContent as C,getSecurity as j}from"../../models/index.js";import{globalStoreAtom as f}from"../../jotai/store.js";import{Section as P,Row as b,SamplesMiddlePanel as v,SamplesPanel as A,CodeBlockPanel as E}from"../common/index.js";import{Schema as R}from"../Schema/index.js";import{getSchema as F}from"../../models/schema.js";import{layoutAtom as L}from"../../jotai/app.js";import{MediaTypeSamples as O}from"../PayloadSamples/MediaTypeSamples.js";import{useTranslate as w}from"../../hooks/index.js";import{Title as D}from"../common/OperationItemTitle.js";import{LinkToField as I}from"../common/LinkToField.js";import{makeDeepLink as V}from"../../services/index.js";import{Security as _}from"../Security/Security.js";import{styled as h}from"../../styled-components.js";function q({toolName:t,id:m}){const{parser:i}=s(f),o=w(),e=l(()=>(i.definition["x-mcp"]?.tools||[]).find(r=>r.name===t),[i,t]),c=l(()=>e?j(e.security,i):null,[i,e]);return e?a(P,{children:[n(S,{id:m,type:"input",schema:e.inputSchema,title:o("openapi.mcp.inputSchema","Input schema"),exampleTitle:o("openapi.mcp.inputExample","Input example"),children:c&&n(_,{securities:c})}),e.outputSchema&&n(S,{id:m,type:"output",schema:e.outputSchema,title:o("openapi.mcp.outputSchema","Output schema"),exampleTitle:o("openapi.mcp.outputExample","Output example")})]}):a("div",{children:["Tool not found: ",t]})}function S({schema:t,title:m,exampleTitle:i,id:o,type:e,children:c}){const{parser:p,options:r}=s(f),u=s(L),d=u===k.STACKED,T=l(()=>C({parser:p,info:{"application/json":{schema:t}},isRequestType:!1,options:r,data:{operation:{pointer:"McpTool"}}}),[r,p,t]),y=l(()=>t&&F({parser:p,schemaOrRef:t,pointer:"#",options:r,deps:{operation:{pointer:o},parentFieldFullPath:e+"-schema"}}),[r,p,t,o,e]),x=g(()=>{},[]);return a(B,{layout:u,children:[n(K,{isStacked:d,children:a("div",{children:[a(D,{children:[o&&n(I,{to:V(o,e)}),m]}),c,n(R,{schema:y})]})}),n(A,{isStacked:d,children:n(E,{className:"panel-response-samples",header:i,children:n(O,{mediaType:T.mediaTypes[0],onChange:x})})})]})}const B=h(b)`
1
+ import{jsxs as a,jsx as n}from"react/jsx-runtime";import{memo as M,useCallback as g,useMemo as c}from"react";import{useAtomValue as s}from"jotai";import{LayoutVariant as k}from"@redocly/config";import{getMediaContent as C,getSecurity as j}from"../../models/index.js";import{globalStoreAtom as f}from"../../jotai/store.js";import{Section as P,Row as b,SamplesMiddlePanel as v,SamplesPanel as A,CodeBlockPanel as E}from"../common/index.js";import{Schema as R}from"../Schema/index.js";import{getSchema as F}from"../../models/schema.js";import{layoutAtom as L}from"../../jotai/app.js";import{MediaTypeSamples as O}from"../PayloadSamples/MediaTypeSamples.js";import{useTranslate as w}from"../../hooks/index.js";import{Title as D}from"../common/OperationItemTitle.js";import{LinkToField as I}from"../common/LinkToField.js";import{makeDeepLink as V}from"../../services/index.js";import{Security as _}from"../Security/Security.js";import{styled as h}from"../../styled-components.js";function q({name:t,id:m}){const{parser:i}=s(f),o=w(),e=c(()=>(i.definition["x-mcp"]?.tools||[]).find(r=>r.name===t),[i,t]),l=c(()=>e?j(e.security,i):null,[i,e]);return e?a(P,{children:[n(S,{id:m,type:"input",schema:e.inputSchema,title:o("openapi.mcp.inputSchema","Input schema"),exampleTitle:o("openapi.mcp.inputExample","Input example"),children:l&&n(_,{securities:l})}),e.outputSchema&&n(S,{id:m,type:"output",schema:e.outputSchema,title:o("openapi.mcp.outputSchema","Output schema"),exampleTitle:o("openapi.mcp.outputExample","Output example")})]}):a("div",{children:["Tool not found: ",t]})}function S({schema:t,title:m,exampleTitle:i,id:o,type:e,children:l}){const{parser:p,options:r}=s(f),u=s(L),d=u===k.STACKED,T=c(()=>C({parser:p,info:{"application/json":{schema:t}},isRequestType:!1,options:r,data:{operation:{pointer:"McpTool"}}}),[r,p,t]),y=c(()=>t&&F({parser:p,schemaOrRef:t,pointer:"#",options:r,deps:{operation:{pointer:o},parentFieldFullPath:e+"-schema"}}),[r,p,t,o,e]),x=g(()=>{},[]);return a(B,{layout:u,children:[n(K,{isStacked:d,children:a("div",{children:[a(D,{children:[o&&n(I,{to:V(o,e)}),m]}),l,n(R,{schema:y})]})}),n(A,{isStacked:d,children:n(E,{className:"panel-response-samples",header:i,children:n(O,{mediaType:T.mediaTypes[0],onChange:x})})})]})}const B=h(b)`
2
2
  margin: calc(var(--spacing-unit) * 2) 0;
3
3
 
4
4
  & + & {
@@ -1 +1,3 @@
1
1
  export * from './McpTool.js';
2
+ export * from './McpResource.js';
3
+ export * from './McpPrompt.js';
@@ -1 +1 @@
1
- export*from"./McpTool.js";
1
+ export*from"./McpTool.js";export*from"./McpResource.js";export*from"./McpPrompt.js";
@@ -1 +1 @@
1
- import{jsx as t,jsxs as s,Fragment as u}from"react/jsx-runtime";import{CopyButton as d}from"@redocly/theme/components/Buttons/CopyButton";import{NewTabButton as c}from"@redocly/theme/components/Buttons/NewTabButton";import{EmailButton as p}from"@redocly/theme/components/Buttons/EmailButton";import{PanelItem as a,PanelItemDescription as n,PanelItemsList as h}from"../PanelItem/index.js";function _({info:e,translate:r}){const l=e.contact&&e.contact.url&&t(a,{header:t(n,{children:r("openapi.info.contact.url","URL")}),title:t("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[t(c,{data:e.contact.url},"NewTabButton")]})||null,i=e.contact&&e.contact.email&&t(a,{header:t(n,{children:e.contact.name||r("openapi.info.contact.name","E-mail")}),title:t("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[t(d,{data:e.contact.email},"CopyButton"),t(p,{data:e.contact.email},"EmailButton")]})||null,o=e.license&&t(a,{header:t(n,{children:r("openapi.info.license","License")}),title:e.license.identifier?e.license.identifier:t("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[t(c,{data:e.license.url||""},"NewTabButton")]})||null,m=e.termsOfService&&t(a,{title:t("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:r("openapi.info.termsOfService","Terms of Service")}),actions:[t(c,{data:e.termsOfService},e.termsOfService)]})||null;return t(u,{children:s(h,{children:[l,i,o,m]})})}export{_ as Overview};
1
+ import{jsx as t,jsxs as u,Fragment as d}from"react/jsx-runtime";import{useAtomValue as h}from"jotai";import{CopyButton as f}from"@redocly/theme/components/Buttons/CopyButton";import{NewTabButton as c}from"@redocly/theme/components/Buttons/NewTabButton";import{EmailButton as v}from"@redocly/theme/components/Buttons/EmailButton";import{AdditionalOverviewInfo as b}from"@redocly/theme/components/OpenApiDocs/hooks/AdditionalOverviewInfo";import{PanelItem as a,PanelItemDescription as n,PanelItemsList as O}from"../PanelItem/index.js";import{globalStoreAtom as B}from"../../jotai/store.js";import{RenderHook as S}from"../RenderHook/RenderHook.js";function E({info:e,translate:r}){const{options:o}=h(B),{unstable_hooks:l}=o||{},i=e.contact&&e.contact.url&&t(a,{header:t(n,{children:r("openapi.info.contact.url","URL")}),title:t("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[t(c,{data:e.contact.url},"NewTabButton")]})||null,m=e.contact&&e.contact.email&&t(a,{header:t(n,{children:e.contact.name||r("openapi.info.contact.name","E-mail")}),title:t("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[t(f,{data:e.contact.email},"CopyButton"),t(v,{data:e.contact.email},"EmailButton")]})||null,s=e.license&&t(a,{header:t(n,{children:r("openapi.info.license","License")}),title:e.license.identifier?e.license.identifier:t("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[t(c,{data:e.license.url||""},"NewTabButton")]})||null,p=e.termsOfService&&t(a,{title:t("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:r("openapi.info.termsOfService","Terms of Service")}),actions:[t(c,{data:e.termsOfService},e.termsOfService)]})||null;return t(d,{children:u(O,{children:[i,m,s,p,t(S,{Hook:b||l?.AfterOpenApiInfo,props:{info:e}})]})})}export{E as Overview};
@@ -1,11 +1,11 @@
1
- import{CheckmarkIcon as o}from"@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon";import{styled as t}from"../../styled-components.js";const r=t.span`
1
+ import{CheckmarkIcon as o}from"@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon";import{styled as t}from"../../styled-components.js";const a=t.span`
2
2
  display: flex;
3
3
  justify-content: space-between;
4
4
  align-items: center;
5
5
  padding: 0;
6
6
  position: relative;
7
7
  width: 100%;
8
- `,a=t.span`
8
+ `,r=t.span`
9
9
  display: flex;
10
10
  flex-direction: column;
11
11
  justify-content: flex-start;
@@ -44,10 +44,14 @@ import{CheckmarkIcon as o}from"@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon"
44
44
  font-size: var(--font-size-base);
45
45
  line-height: var(--line-height-base);
46
46
  font-weight: var(--font-weight-medium);
47
- `,m=t(o)`
47
+ display: flex;
48
+ align-items: center;
49
+ gap: var(--spacing-xs);
50
+ justify-content: flex-start;
51
+ `,x=t(o)`
48
52
  width: 14px;
49
53
  height: 14px;
50
54
  position: absolute;
51
55
  left: -18px;
52
56
  bottom: 3px;
53
- `;export{p as ActionsWrap,s as Header,a as Item,d as PanelItemDescription,r as PanelItemWrap,c as PanelItemsList,m as StyledCheckmarkIcon,l as Title};
57
+ `;export{p as ActionsWrap,s as Header,r as Item,d as PanelItemDescription,a as PanelItemWrap,c as PanelItemsList,x as StyledCheckmarkIcon,l as Title};
@@ -1 +1 @@
1
- import{jsx as d}from"react/jsx-runtime";import{memo as v,useCallback as g,useEffect as y,useMemo as b}from"react";import S from"@markdoc/markdoc";import{LayoutVariant as E}from"@redocly/config";import{createStore as O,Provider as A}from"jotai";import{html as N}from"@redocly/theme/markdoc/tags/html";import{Heading as M}from"@redocly/theme/markdoc/components/Heading/Heading";import{normalizeOptions as T,OpenAPIParser as D}from"../../services/index.js";import{SchemaDefinition as j}from"../SchemaDefinition/index.js";import{McpTool as k}from"../McpTool/index.js";import{getMarkdownHeaderId as x}from"./utils.js";import{mergeInMockServer as C}from"../../models/operation.js";import{normalizeServers as P}from"../../utils/index.js";import{appStore as H,appStoreOverrideAtom as I,layoutAtom as p,allowedEnvironmentsAtom as L,environmentAtom as R,userClaimsAtom as V}from"../../jotai/app.js";import{mapObject as z}from"../../utils/object.js";import{getServerEnvName as _}from"../../utils/environments.js";import{globalStoreAtom as h}from"../../jotai/store.js";import{getDefaultOperationStore as q,operationStore as B}from"../../jotai/operation.js";const F={ignoreNamedSchemas:["java.io.ObjectStreamField"],maxDisplayedEnumValues:10,markdocOptions:{tags:{html:N.schema,schemaDefinition:{render:"SchemaDefinition",attributes:{schemaRef:{type:String},exampleRef:{type:String},showReadOnly:{type:Boolean},showWriteOnly:{type:Boolean},htmlWrap:{type:String,default:!1}}},mcpTool:{render:"McpTool",attributes:{toolName:{type:String},id:{type:String}}}},nodes:{heading:{children:["inline"],attributes:{id:{type:String},level:{type:Number,required:!0,default:1}},transform(n,i){const t=n.transformAttributes(i),m=n.transformChildren(i),e=typeof t.id=="string"?t.id:x(m);return new S.Tag("Heading",{...t,id:e,level:n.attributes.level},m)}}},components:{SchemaDefinition:j,McpTool:k,Heading:M}}},se=v(({children:n,options:i,definitionUrl:t,definition:m,withState:e})=>{const l=g(()=>{const r=T(i,F),o=new D(m,t,r);return{options:r,parser:o}},[m,t,i]),a=b(()=>{const r=O(),o=l();r.set(h,o);const c=P(o.parser.definitionUrl,C(o.parser.definition?.servers||[],o.options.mockServer));r.sub(H,()=>{}),r.set(p,o.options?.layout||E.THREE_PANEL);const f=Object.fromEntries(c.map(s=>[_(s),{server:s.url,...z(s.variables||{},u=>u.default||"")}]));if(r.set(R,{environments:f}),r.set(V,e?.userClaims||{}),r.set(L,e?.allowedEnvironments),e&&r.set(I,{activeMimeName:e.activeMimeName,userClaims:e.userClaims,environment:e.environment,environments:e.environments}),e?.operation){const s=q(e.operation.pointer,e.operation.state.requestValues,e.operation.state.activeExampleName);r.set(B(e.operation.pointer),s)}return r},[l,e]);return y(()=>{e?.layout&&a.set(p,e?.layout)},[a,e?.layout]),d(A,{store:a,children:n})});export{se as StoreProvider};
1
+ import{jsx as d}from"react/jsx-runtime";import{memo as v,useCallback as y,useEffect as g,useMemo as b}from"react";import S from"@markdoc/markdoc";import{LayoutVariant as M}from"@redocly/config";import{createStore as E,Provider as O}from"jotai";import{html as A}from"@redocly/theme/markdoc/tags/html";import{Heading as P}from"@redocly/theme/markdoc/components/Heading/Heading";import{normalizeOptions as N,OpenAPIParser as R}from"../../services/index.js";import{SchemaDefinition as T}from"../SchemaDefinition/index.js";import{McpTool as D,McpResource as j,McpPrompt as k}from"../McpTool/index.js";import{getMarkdownHeaderId as x}from"./utils.js";import{mergeInMockServer as C}from"../../models/operation.js";import{normalizeServers as H}from"../../utils/index.js";import{appStore as I,appStoreOverrideAtom as L,layoutAtom as l,allowedEnvironmentsAtom as V,environmentAtom as z,userClaimsAtom as _}from"../../jotai/app.js";import{mapObject as q}from"../../utils/object.js";import{getServerEnvName as B}from"../../utils/environments.js";import{globalStoreAtom as F}from"../../jotai/store.js";import{getDefaultOperationStore as W,operationStore as h}from"../../jotai/operation.js";const G={ignoreNamedSchemas:["java.io.ObjectStreamField"],maxDisplayedEnumValues:10,markdocOptions:{tags:{html:A.schema,schemaDefinition:{render:"SchemaDefinition",attributes:{schemaRef:{type:String},exampleRef:{type:String},showReadOnly:{type:Boolean},showWriteOnly:{type:Boolean},htmlWrap:{type:String,default:!1}}},mcpTool:{render:"McpTool",attributes:{name:{type:String},id:{type:String}}},mcpResource:{render:"McpResource",attributes:{name:{type:String},id:{type:String}}},mcpPrompt:{render:"McpPrompt",attributes:{name:{type:String},id:{type:String}}}},nodes:{heading:{children:["inline"],attributes:{id:{type:String},level:{type:Number,required:!0,default:1}},transform(n,m){const t=n.transformAttributes(m),i=n.transformChildren(m),e=typeof t.id=="string"?t.id:x(i);return new S.Tag("Heading",{...t,id:e,level:n.attributes.level},i)}}},components:{SchemaDefinition:T,McpTool:D,McpResource:j,McpPrompt:k,Heading:P}}},pe=v(({children:n,options:m,definitionUrl:t,definition:i,withState:e})=>{const p=y(()=>{const r=N(m,G),o=new R(i,t,r);return{options:r,parser:o}},[i,t,m]),a=b(()=>{const r=E(),o=p();r.set(F,o);const c=H(o.parser.definitionUrl,C(o.parser.definition?.servers||[],o.options.mockServer));r.sub(I,()=>{}),r.set(l,e?.layout||o.options?.layout||M.THREE_PANEL);const u=Object.fromEntries(c.map(s=>[B(s),{server:s.url,...q(s.variables||{},f=>f.default||"")}]));if(r.set(z,{environments:u}),r.set(_,e?.userClaims||{}),r.set(V,e?.allowedEnvironments),e&&r.set(L,{activeMimeName:e.activeMimeName,userClaims:e.userClaims,environment:e.environment,environments:e.environments}),e?.operation){const s=W(e.operation.pointer,e.operation.state.requestValues,e.operation.state.activeExampleName);r.set(h(e.operation.pointer),s)}return r},[p,e]);return g(()=>{e?.layout&&a.set(l,e?.layout)},[a,e?.layout]),d(O,{store:a,children:n})});export{pe as StoreProvider};
@@ -4,7 +4,8 @@ export type ReplayProps = {
4
4
  fullOpenApi: OpenAPIDefinition;
5
5
  corsProxyUrl?: string;
6
6
  pointer: string;
7
+ hideOtherSecuritySchemes?: boolean;
7
8
  };
8
- declare function EmbeddedReplayComponent({ activeOperationId, corsProxyUrl, fullOpenApi, pointer, }: ReplayProps): import("react/jsx-runtime").JSX.Element;
9
+ declare function EmbeddedReplayComponent({ activeOperationId, corsProxyUrl, fullOpenApi, pointer, hideOtherSecuritySchemes, }: ReplayProps): import("react/jsx-runtime").JSX.Element;
9
10
  export declare const EmbeddedReplay: import("react").MemoExoticComponent<typeof EmbeddedReplayComponent>;
10
11
  export {};
@@ -1,10 +1,10 @@
1
- import{jsx as e}from"react/jsx-runtime";import{Suspense as E,lazy as h,memo as S,useEffect as x,useState as O}from"react";import{useAtomValue as o}from"jotai";import{globalOptionsAtom as R}from"../../jotai/store.js";import{operationStore as A}from"../../jotai/operation.js";import{appStore as C,allowedEnvironmentsAtom as L,environmentsAtom as T}from"../../jotai/app.js";import{useTranslate as V}from"../../hooks/index.js";import{convertOperationToReplayValue as j}from"./utils.js";import{getDefaultCollectorUrl as k}from"../../utils/telemetry.js";import{styled as i}from"../../styled-components.js";const w=h(async()=>import("@redocly/replay").then(t=>({default:t.EmbeddedReplay})));function U({activeOperationId:t,corsProxyUrl:p,fullOpenApi:d,pointer:r}){const a=V(),{mockServer:m}=o(R),s=o(A(r)),c=o(C),f=o(T),n=o(L),[u,v]=O(!1);return x(()=>{v(!0)},[]),e(W,{children:u?e(E,{fallback:e(l,{children:a("openapi.loading","Loading...")}),children:e(w,{activeOperationId:t,activeOperationPointer:r,api:d,settings:{predefinedEnvValues:f,corsProxyUrl:p,mockServer:m,disableCollectionsTab:!0,...n&&{allowedEnvironments:n},telemetry:{tracerName:"replay-openapi",collectorUrl:k()},convertOperationToReplayValue:(y,g,b)=>j(y,g,b,void 0,s,c)}})}):e(l,{children:a("openapi.loading","Loading...")})})}const H=S(U),l=i.div`
1
+ import{jsx as e}from"react/jsx-runtime";import{Suspense as h,lazy as S,memo as x,useEffect as O,useState as R}from"react";import{useAtomValue as o}from"jotai";import{globalOptionsAtom as A}from"../../jotai/store.js";import{operationStore as C}from"../../jotai/operation.js";import{appStore as L,allowedEnvironmentsAtom as T,environmentsAtom as V}from"../../jotai/app.js";import{useTranslate as j}from"../../hooks/index.js";import{convertOperationToReplayValue as k}from"./utils.js";import{getDefaultCollectorUrl as w}from"../../utils/telemetry.js";import{styled as i}from"../../styled-components.js";const U=S(async()=>import("@redocly/replay").then(t=>({default:t.EmbeddedReplay})));function W({activeOperationId:t,corsProxyUrl:p,fullOpenApi:d,pointer:r,hideOtherSecuritySchemes:m}){const a=j(),{mockServer:s}=o(A),c=o(C(r)),f=o(L),u=o(V),n=o(T),[v,y]=R(!1);return O(()=>{y(!0)},[]),e(z,{children:v?e(h,{fallback:e(l,{children:a("openapi.loading","Loading...")}),children:e(U,{activeOperationId:t,activeOperationPointer:r,api:d,settings:{predefinedEnvValues:u,corsProxyUrl:p,mockServer:s,disableCollectionsTab:!0,hideOtherSecuritySchemes:m,...n&&{allowedEnvironments:n},telemetry:{tracerName:"replay-openapi",collectorUrl:w()},convertOperationToReplayValue:(g,b,E)=>k(g,b,E,void 0,c,f)}})}):e(l,{children:a("openapi.loading","Loading...")})})}const J=x(W),l=i.div`
2
2
  display: flex;
3
3
  justify-content: center;
4
4
  align-items: center;
5
5
  min-height: 100px;
6
- `,W=i.div`
6
+ `,z=i.div`
7
7
  border: 1px solid var(--border-color-primary);
8
8
  border-radius: var(--border-radius-lg);
9
9
  padding: 0;
10
- `;export{H as EmbeddedReplay};
10
+ `;export{J as EmbeddedReplay};
@@ -1 +1 @@
1
- import{jsx as o,Fragment as M,jsxs as z}from"react/jsx-runtime";import{lazy as J,memo as K,Suspense as W,useCallback as m,useRef as w,useState as H}from"react";import{useAtom as u,useAtomValue as p}from"jotai";import Q from"deepmerge";const X=J(async()=>import("@redocly/replay").then(e=>({default:e.ReplayOverlay})));import{Button as Y}from"@redocly/theme/components/Button/Button";import{useFocusTrap as Z,useModalScrollLock as $}from"@redocly/theme/core/openapi";import{RocketIcon as ee}from"@redocly/theme/icons/RocketIcon/RocketIcon";import{CircleDashIcon as te}from"@redocly/theme/icons/CircleDashIcon/CircleDashIcon";import{Portal as oe}from"@redocly/theme/components/Portal/Portal";import{useConfigureReplay as re}from"@redocly/theme/ext/useConfigureReplay";import{globalOptionsAtom as ne,globalStoreAtom as ae}from"../../jotai/store.js";import{allOperationsAtom as se,replayStateAtom as ie}from"../../jotai/replay.js";import{allOperations as le,getDefaultOperationStore as me}from"../../jotai/operation.js";import{LOADING_STATE as n}from"../../constants.js";import{environmentAtom as pe,userClaimsAtom as ce}from"../../jotai/app.js";import{convertOperationToReplayValueForRedoc as fe}from"./utils.js";import{useTranslate as ue,useTelemetry as de}from"../../hooks/index.js";import{JsonPointer as ye}from"../../utils/index.js";import{getDefaultCollectorUrl as he}from"../../utils/telemetry.js";import{createTryItOpenEvent as Oe,createTryItSentEvent as Ie}from"../../events/index.js";import{joinWithSeparator as Re}from"../../services/history/helpers.js";function ge({operation:e,corsProxyUrl:L,fullOpenApi:d}){const y=ue(),P=de(),h=w(null),{mockServer:q,oAuth2RedirectURI:E,routingBasePath:c}=p(ne),O=p(se),{parser:I,options:{events:a}}=p(ae),R=p(ce),[s,N]=H(!1),[l,g]=u(ie),[v,A]=u(le),[[,V],S]=u(pe),{config:j,refresh:T}=re({userClaims:R,info:I?.definition.info,operation:{name:e.name,path:e.path,operationId:e.operationId||"",href:e.href,method:e.httpVerb},servers:e.servers},s);Z(h),$(s);const x=m(()=>T(),[T]),k=m(({operations:t,environment:i,environments:f})=>{const _=t.reduce((C,r)=>{r.requestValues.body=r.requestValues.body instanceof URLSearchParams?Object.fromEntries(r.requestValues.body.entries()):r.requestValues.body;const{path:F,method:B}=r.apiPath,b=ye.compile(["paths",F,B]);return C[b]=Q(me(b),r),C},{});A({...v,..._}),S({environment:i,environments:f})},[v,A,S]),D=()=>{if(l!==n.LOADING){if(!s&&(P.sendTryItOpenedMessage(),a?.tryItOpen&&e)){const t=Oe({operation:e});a.tryItOpen(t)}N(!s)}l===n.NOT_LOADED&&g(n.LOADING)},G=m(t=>{if(a?.tryItSent&&e){const i=Ie({operation:e,isSuccess:t});a.tryItSent(i)}},[a,e]),U=m(t=>{if(!t)return;const i=O.find(f=>f.operationId===t);return Re(c,i?.href)},[O,c]);return d?z(M,{children:[o(Y,{onClick:D,variant:"primary",iconPosition:"left",icon:l===n.LOADING?o(te,{}):o(ee,{}),children:l===n.LOADING?y("openapi.loading","Loading..."):y("openapi.tryIt","Try it")}),s&&o(W,{children:o(oe,{mountId:"api-content",children:o("div",{ref:h,children:o(X,{activeOperationId:e.operationId||e.pointer,api:d,onRequestChange:k,onClose:D,onLoad:()=>g(n.LOADED),settings:{corsProxyUrl:L,mockServer:q,selectedEnvironment:V,apiId:I?.definition.info?.["x-metadata"]?.apiId,oAuth2RedirectURI:E,disableCollectionsTab:!0,storageKey:c,telemetry:{tracerName:"try-it",collectorUrl:he()},convertOperationToReplayValue:fe(R,j),getOperationUrl:U,onRequestReset:x},onRequestSent:G})})})})]}):null}const Me=K(ge);export{Me as Replay};
1
+ import{jsx as o,Fragment as M,jsxs as z}from"react/jsx-runtime";import{lazy as J,memo as K,Suspense as W,useCallback as m,useRef as w,useState as H}from"react";import{useAtom as u,useAtomValue as p}from"jotai";import Q from"deepmerge";const X=J(async()=>import("@redocly/replay").then(e=>({default:e.ReplayOverlay})));import{Button as Y}from"@redocly/theme/components/Button/Button";import{useFocusTrap as Z,useModalScrollLock as $}from"@redocly/theme/core/openapi";import{RocketIcon as ee}from"@redocly/theme/icons/RocketIcon/RocketIcon";import{CircleDashIcon as te}from"@redocly/theme/icons/CircleDashIcon/CircleDashIcon";import{Portal as oe}from"@redocly/theme/components/Portal/Portal";import{useConfigureReplay as re}from"@redocly/theme/ext/use-configure-replay";import{globalOptionsAtom as ne,globalStoreAtom as ae}from"../../jotai/store.js";import{allOperationsAtom as se,replayStateAtom as ie}from"../../jotai/replay.js";import{allOperations as le,getDefaultOperationStore as me}from"../../jotai/operation.js";import{LOADING_STATE as n}from"../../constants.js";import{environmentAtom as pe,userClaimsAtom as ce}from"../../jotai/app.js";import{convertOperationToReplayValueForRedoc as fe}from"./utils.js";import{useTranslate as ue,useTelemetry as de}from"../../hooks/index.js";import{JsonPointer as ye}from"../../utils/index.js";import{getDefaultCollectorUrl as he}from"../../utils/telemetry.js";import{createTryItOpenEvent as Oe,createTryItSentEvent as Ie}from"../../events/index.js";import{joinWithSeparator as Re}from"../../services/history/helpers.js";function ge({operation:e,corsProxyUrl:L,fullOpenApi:d}){const y=ue(),P=de(),h=w(null),{mockServer:q,oAuth2RedirectURI:E,routingBasePath:c}=p(ne),O=p(se),{parser:I,options:{events:a}}=p(ae),R=p(ce),[s,N]=H(!1),[l,g]=u(ie),[v,A]=u(le),[[,V],S]=u(pe),{config:j,refresh:T}=re({userClaims:R,info:I?.definition.info,operation:{name:e.name,path:e.path,operationId:e.operationId||"",href:e.href,method:e.httpVerb},servers:e.servers},s);Z(h),$(s);const x=m(()=>T(),[T]),k=m(({operations:t,environment:i,environments:f})=>{const _=t.reduce((C,r)=>{r.requestValues.body=r.requestValues.body instanceof URLSearchParams?Object.fromEntries(r.requestValues.body.entries()):r.requestValues.body;const{path:F,method:B}=r.apiPath,b=ye.compile(["paths",F,B]);return C[b]=Q(me(b),r),C},{});A({...v,..._}),S({environment:i,environments:f})},[v,A,S]),D=()=>{if(l!==n.LOADING){if(!s&&(P.sendTryItOpenedMessage(),a?.tryItOpen&&e)){const t=Oe({operation:e});a.tryItOpen(t)}N(!s)}l===n.NOT_LOADED&&g(n.LOADING)},G=m(t=>{if(a?.tryItSent&&e){const i=Ie({operation:e,isSuccess:t});a.tryItSent(i)}},[a,e]),U=m(t=>{if(!t)return;const i=O.find(f=>f.operationId===t);return Re(c,i?.href)},[O,c]);return d?z(M,{children:[o(Y,{onClick:D,variant:"primary",iconPosition:"left",icon:l===n.LOADING?o(te,{}):o(ee,{}),children:l===n.LOADING?y("openapi.loading","Loading..."):y("openapi.tryIt","Try it")}),s&&o(W,{children:o(oe,{mountId:"api-content",children:o("div",{ref:h,children:o(X,{activeOperationId:e.operationId||e.pointer,api:d,onRequestChange:k,onClose:D,onLoad:()=>g(n.LOADED),settings:{corsProxyUrl:L,mockServer:q,selectedEnvironment:V,apiId:I?.definition.info?.["x-metadata"]?.apiId,oAuth2RedirectURI:E,disableCollectionsTab:!0,storageKey:c,telemetry:{tracerName:"try-it",collectorUrl:he()},convertOperationToReplayValue:fe(R,j),getOperationUrl:U,onRequestReset:x},onRequestSent:G})})})})]}):null}const Me=K(ge);export{Me as Replay};
@@ -1 +1 @@
1
- import{isPrimitive as h}from"@redocly/theme/core/openapi";import{getOperation as v}from"../../models/index.js";import{normalizeOptions as b,OpenAPIParser as E}from"../../services/index.js";import{JsonPointer as V}from"../../utils/index.js";function y(t,a,n,r,e,m,s){if(!n)return;const u=new E(n),o=u.definition.paths?.[t],f=o?.[a],i=v(u,{...f,pathName:t,httpVerb:a,pathParameters:o.parameters||[],pathServers:o.servers||[]},void 0,b({}),"",{isCallback:!1},r,s);if(!i)return;const x=m?.activeMimeName||i.requestBody?.content?.mediaTypes[0]?.name||"application/json";return{id:i.id,name:i.name,method:i.httpVerb,operationId:i.operationId,parameters:O(i.parameters,e?.requestValues),body:w(i.requestBody,n,e?.requestValues?.body?{activeExampleName:e?.activeExampleName,[x]:e?.requestValues?.body}:e?.activeExampleName?{activeExampleName:e?.activeExampleName}:void 0),path:i.path,href:i.href,servers:i.servers,security:q(i.security),responses:Object.fromEntries(i.responses.map(c=>[c.code,{code:c.code,description:c.description,mediaTypes:c.content?.mediaTypes.reduce((d,l)=>(d[l.name]={name:l.name,schema:p(l.schema?.rawSchema,n)},d),{})}]))}}function T(t,a){return function(n,r,e){const m=y(n,r,e,t,void 0,void 0,a);if(m)return{...m,operationId:m.operationId||V.compile(["paths",m.path,m.method])}}}function O(t,a){const n=new Set,r=t.map(e=>(n.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:a?.[String(e.in)]?.[e.name]||e.example,schema:e.schema}));for(const[e,m]of Object.entries(a||{}))for(const[s,u]of Object.entries(m||{}))n.has(e+":"+s)||r.push({name:s,in:e,required:!1,description:"",example:String(u),schema:void 0});return r}function N({type:t,format:a,enum:n}){return t==="string"&&(a==="binary"||a==="base64")?"file":t==="object"?"multiline":n.length>0?"select":"text"}function g(t,a){const n=t[0]?.example||t[0]?.examples;if(n)return n;if(t.schema?.example)return t.schema.example;const r=a?.default?.value||a?.default?.rawValue;return r?.[t.name]?h(r?.[t.name])?String(r?.[t.name]):JSON.stringify(r?.[t.name]):""}function w(t,a,n){if(!t||!t.content?.mediaTypes){if(!n)return;const{activeExampleName:r,...e}=n;return{activeExampleName:r,mediaTypes:Object.fromEntries(Object.entries(e).map(([m,s])=>[m,{name:m,examples:{default:{value:s}},schema:{},parameters:[]}]))}}return{required:t.required,activeExampleName:n?.activeExampleName,mediaTypes:t.content.mediaTypes.reduce((r,e)=>{const m=e.schema,s=n?.[e.name]?{default:{value:n?.[e.name],rawValue:n?.[e.name],mime:e.name}}:e.examples||e.formExamples;return r[e.name]={name:e.name,examples:s,schema:p(e.schema?.rawSchema,a),parameters:m?.fields?.map(u=>({inputType:N(u.schema),name:u.name,example:g(u,s)}))},r},{})}}function p(t,a){if(!(!t||!a))return{...t,components:a?.components||{}}}function q(t){if(t)return t.map(({schemes:a})=>a.map(n=>{const r={id:n.id,type:n.type,in:n.in,openIdConnectUrl:n.openIdConnectUrl,scopes:n.scopes,scheme:n.scheme,name:n.name,flows:n.flows,serverValues:n.serverValues,"x-defaultAccessToken":n["x-defaultAccessToken"],"x-defaultTokenType":n["x-defaultTokenType"],"x-defaultClientId":n["x-defaultClientId"],"x-defaultClientSecret":n["x-defaultClientSecret"],"x-defaultUsername":n["x-defaultUsername"],"x-defaultPassword":n["x-defaultPassword"]};return Object.keys(r).forEach(e=>r[e]===void 0&&delete r[e]),r}))}export{y as convertOperationToReplayValue,T as convertOperationToReplayValueForRedoc,q as convertRequestSecurity};
1
+ import{isPrimitive as h}from"@redocly/theme/core/openapi";import{getOperation as v}from"../../models/index.js";import{normalizeOptions as b,OpenAPIParser as E}from"../../services/index.js";import{JsonPointer as O}from"../../utils/index.js";function V(t,r,n,a,e,i,s){if(!n)return;const u=new E(n),o=u.definition.paths?.[t];let l=o?.[r];!l&&o?.additionalOperations&&(l=o.additionalOperations[r]);const m=v(u,{...l,pathName:t,httpVerb:r,pathParameters:o.parameters||[],pathServers:o.servers||[]},void 0,b({}),"",{isCallback:!1},a,s);if(!m)return;const x=i?.activeMimeName||m.requestBody?.content?.mediaTypes[0]?.name||"application/json";return{id:m.id,name:m.name,method:m.httpVerb,operationId:m.operationId,parameters:y(m.parameters,e?.requestValues),body:w(m.requestBody,n,e?.requestValues?.body?{activeExampleName:e?.activeExampleName,[x]:e?.requestValues?.body}:e?.activeExampleName?{activeExampleName:e?.activeExampleName}:void 0),path:m.path,href:m.href,servers:m.servers,security:q(m.security),responses:Object.fromEntries(m.responses.map(c=>[c.code,{code:c.code,description:c.description,mediaTypes:c.content?.mediaTypes.reduce((p,d)=>(p[d.name]={name:d.name,schema:f(d.schema?.rawSchema,n)},p),{})}]))}}function T(t,r){return function(n,a,e){const i=V(n,a,e,t,void 0,void 0,r);if(i)return{...i,operationId:i.operationId||O.compile(["paths",i.path,i.method])}}}function y(t,r){const n=new Set,a=t.map(e=>(n.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:r?.[String(e.in)]?.[e.name]||e.example,schema:e.schema}));for(const[e,i]of Object.entries(r||{}))for(const[s,u]of Object.entries(i||{}))n.has(e+":"+s)||a.push({name:s,in:e,required:!1,description:"",example:String(u),schema:void 0});return a}function N({type:t,format:r,enum:n}){return t==="string"&&(r==="binary"||r==="base64")?"file":t==="object"?"multiline":n.length>0?"select":"text"}function g(t,r){const n=t[0]?.example||t[0]?.examples;if(n)return n;if(t.schema?.example)return t.schema.example;const a=r?.default?.value||r?.default?.rawValue;return a?.[t.name]?h(a?.[t.name])?String(a?.[t.name]):JSON.stringify(a?.[t.name]):""}function w(t,r,n){if(!t||!t.content?.mediaTypes){if(!n)return;const{activeExampleName:a,...e}=n;return{activeExampleName:a,mediaTypes:Object.fromEntries(Object.entries(e).map(([i,s])=>[i,{name:i,examples:{default:{value:s}},schema:{},parameters:[]}]))}}return{required:t.required,activeExampleName:n?.activeExampleName,mediaTypes:t.content.mediaTypes.reduce((a,e)=>{const i=e.schema,s=n?.[e.name]?{default:{value:n?.[e.name],rawValue:n?.[e.name],mime:e.name}}:e.examples||e.formExamples;return a[e.name]={name:e.name,examples:s,schema:f(e.schema?.rawSchema,r),parameters:i?.fields?.map(u=>({inputType:N(u.schema),name:u.name,example:g(u,s)}))},a},{})}}function f(t,r){if(!(!t||!r))return{...t,components:r?.components||{}}}function q(t){if(t)return t.map(({schemes:r})=>r.map(n=>{const a={id:n.id,type:n.type,in:n.in,openIdConnectUrl:n.openIdConnectUrl,scopes:n.scopes,scheme:n.scheme,name:n.name,flows:n.flows,serverValues:n.serverValues,"x-defaultAccessToken":n["x-defaultAccessToken"],"x-defaultTokenType":n["x-defaultTokenType"],"x-defaultClientId":n["x-defaultClientId"],"x-defaultClientSecret":n["x-defaultClientSecret"],"x-defaultUsername":n["x-defaultUsername"],"x-defaultPassword":n["x-defaultPassword"]};return Object.keys(a).forEach(e=>a[e]===void 0&&delete a[e]),a}))}export{V as convertOperationToReplayValue,T as convertOperationToReplayValueForRedoc,q as convertRequestSecurity};
@@ -1 +1,5 @@
1
- import{jsx as e,Fragment as u,jsxs as x}from"react/jsx-runtime";import{useAtomValue as c}from"jotai";import{Panel as r}from"@redocly/theme/components/Panel/Panel";import{Markdown as S}from"@redocly/theme/components/Markdown/Markdown";import{DownloadSpecification as b}from"../Download/index.js";import{Overview as O}from"../Overview/index.js";import{ServerList as j}from"../ServerList/index.js";import{globalStoreAtom as I}from"../../jotai/store.js";import{normalizeServers as d}from"../../utils/index.js";import{LanguageList as L}from"../Language/index.js";import{mergeInMockServer as M}from"../../models/operation.js";import{languageAtom as P}from"../../jotai/app.js";import{useTranslate as k}from"../../hooks/index.js";import{useDownloadInfo as D}from"../Download/useDownloadInfo.js";import{McpOverview as E}from"../McpOverview/McpOverview.js";const J=({item:{infoDefinition:o}})=>{const a=k(),{options:{hideDownloadButtons:f,downloadUrls:g,mockServer:v},parser:{definition:s,definitionUrl:t}}=c(I),{languages:i,activeLanguage:h}=c(P),l=D({downloadUrls:g}),p=d(t,M(s.servers||[],v)),n=s?.["x-mcp"],w=d(t,n?.servers||s.servers||[]),m=!(Object.keys(s.paths||{}).length>0)&&n;return x(u,{children:[!f&&l&&e(r,{className:"panel-download",header:a("openapi.download.description.title","Download OpenAPI description"),isExpandable:!1,children:e(b,{downloadObjects:l})}),!!n&&e(r,{className:"panel-download",header:a("openapi.mcp.title","MCP server"),isExpandable:!1,children:e(E,{mcpInfo:n,mcpServers:w})}),(o?.license||o?.contact||o?.termsOfService)&&e(r,{className:"panel-mcp-overview",header:a("openapi.info.title","Overview"),isExpandable:!1,children:e(S,{children:e(O,{info:o,translate:a})})}),!!i?.length&&!m&&e(r,{className:"panel-language-list",header:a("openapi.languages.title","Languages"),isExpandable:!1,children:e(L,{languages:i,activeLanguage:h})}),!!p.length&&!m&&e(r,{className:"panel-servers-list",header:a("openapi.servers.title","Servers"),isExpandable:!1,children:e(j,{servers:p,path:"/",translate:a})})]})};export{J as RightPanel};
1
+ import{jsx as e,Fragment as L,jsxs as S}from"react/jsx-runtime";import{useAtomValue as f}from"jotai";import{Panel as a}from"@redocly/theme/components/Panel/Panel";import{Markdown as b}from"@redocly/theme/components/Markdown/Markdown";import{DownloadSpecification as I}from"../Download/index.js";import{Overview as P}from"../Overview/index.js";import{ServerList as j}from"../ServerList/index.js";import{globalStoreAtom as O}from"../../jotai/store.js";import{normalizeServers as v}from"../../utils/index.js";import{LanguageList as M}from"../Language/index.js";import{mergeInMockServer as k}from"../../models/operation.js";import{languageAtom as y}from"../../jotai/app.js";import{useTranslate as D}from"../../hooks/index.js";import{styled as E}from"../../styled-components.js";import{PanelItemsList as N}from"../PanelItem/styled.js";import{useDownloadInfo as A}from"../Download/useDownloadInfo.js";import{McpOverview as _}from"../McpOverview/McpOverview.js";const ee=({item:{infoDefinition:n}})=>{const r=D(),{options:{hideDownloadButtons:g,downloadUrls:h,mockServer:u},parser:{definition:o,definitionUrl:t}}=f(O),{languages:i,activeLanguage:w}=f(y),l=A({downloadUrls:h}),m=v(t,k(o.servers||[],u)).sort((d,c)=>d["x-isLive"]&&!c["x-isLive"]?-1:!d["x-isLive"]&&c["x-isLive"]?1:0),s=o?.["x-mcp"],x=v(t,s?.servers||o.servers||[]),p=!(Object.keys(o.paths||{}).length>0)&&s;return S(L,{children:[!g&&l&&e(a,{className:"panel-download",header:r("openapi.download.description.title","Download OpenAPI description"),isExpandable:!1,children:e(I,{downloadObjects:l})}),n&&e(F,{className:"panel-overview",header:r("openapi.info.title","Overview"),isExpandable:!1,children:e(b,{children:e(P,{info:n,translate:r})})}),!!s&&e(a,{className:"panel-download",header:r("openapi.mcp.title","MCP server"),isExpandable:!1,children:e(_,{mcpInfo:s,mcpServers:x})}),!!i?.length&&!p&&e(a,{className:"panel-language-list",header:r("openapi.languages.title","Languages"),isExpandable:!1,children:e(M,{languages:i,activeLanguage:w})}),!!m.length&&!p&&e(a,{className:"panel-servers-list",header:r("openapi.servers.title","Servers"),isExpandable:!1,children:e(j,{servers:m,path:"/",translate:r})})]})},F=E(a)`
2
+ &:has(${N}:empty) {
3
+ display: none;
4
+ }
5
+ `;export{ee as RightPanel};
@@ -1,13 +1,13 @@
1
- import{jsx as t,jsxs as s,Fragment as x}from"react/jsx-runtime";import{useMemo as p}from"react";import{useAtomValue as d}from"jotai";import{LayoutVariant as c}from"@redocly/config";import{breakpoints as k}from"@redocly/theme/core/openapi";import{OpenApiHeader as u}from"@redocly/theme/components/OpenApiDocs/hooks/OpenApiHeader";import{PageFooter as v}from"../PageFooter/index.js";import{globalOptionsAtom as b}from"../../jotai/store.js";import{RenderHook as y}from"../RenderHook/index.js";import{RightPanel as C}from"../RightPanel/index.js";import{layoutAtom as w}from"../../jotai/app.js";import{Row as B,SamplesMiddlePanel as j,SamplesPanel as M}from"../common/index.js";import{Items as f}from"../ContentItems/Items.js";import{ContentItem as g}from"../ContentItem/index.js";import{styled as m}from"../../styled-components.js";function G({items:e,hideFooterAndHeader:n}){const{unstable_hooks:{MiddlePanelHeader:a},routingBasePath:i}=d(b),l=d(w),o=l===c.STACKED,P=p(()=>n?null:t(h,{isStacked:o,children:t(v,{})}),[n,o]),S=p(()=>n||!u&&!a?null:t(h,{isStacked:o,children:a?t(y,{Hook:a,props:void 0}):t(u,{})}),[a,n,o]);return e.length===0?null:s(x,{children:[S,s(B,{layout:l,children:[t(R,{layout:l,children:e.filter(({type:r})=>r==="section").map(r=>t(g,{item:r,routingBasePath:i,children:t(f,{items:r.items,routingBasePath:i})},r.id))}),t(_,{isStacked:o,tabIndex:0,children:t(C,{item:e[0]})})]}),e.filter(({type:r})=>r!=="section").map(r=>t(g,{item:r,routingBasePath:i,children:t(f,{items:r.items,routingBasePath:i})},r.id)),P]})}const h=m(j)`
1
+ import{jsx as t,jsxs as m,Fragment as S}from"react/jsx-runtime";import{useMemo as p}from"react";import{useAtomValue as d}from"jotai";import{LayoutVariant as c}from"@redocly/config";import{breakpoints as k}from"@redocly/theme/core/openapi";import{OpenApiHeader as u}from"@redocly/theme/components/OpenApiDocs/hooks/OpenApiHeader";import{PageFooter as v}from"../PageFooter/index.js";import{globalOptionsAtom as y}from"../../jotai/store.js";import{RenderHook as b}from"../RenderHook/index.js";import{RightPanel as C}from"../RightPanel/index.js";import{layoutAtom as w}from"../../jotai/app.js";import{Row as B,SamplesMiddlePanel as j,SamplesPanel as I}from"../common/index.js";import{Items as f}from"../ContentItems/Items.js";import{ContentItem as g}from"../ContentItem/index.js";import{styled as s}from"../../styled-components.js";function G({items:e,hideFooterAndHeader:n}){const{unstable_hooks:{MiddlePanelHeader:a},routingBasePath:i}=d(y),l=d(w),o=l===c.STACKED,P=p(()=>n?null:t(h,{isStacked:o,children:t(v,{})}),[n,o]),x=p(()=>n||!u&&!a?null:t(h,{isStacked:o,children:a?t(b,{Hook:a,props:void 0}):t(u,{})}),[a,n,o]);return e.length===0?null:m(S,{children:[x,m(B,{layout:l,style:{zIndex:1},children:[t(M,{layout:l,children:e.filter(({type:r})=>r==="section").map(r=>t(g,{item:r,routingBasePath:i,children:t(f,{items:r.items,routingBasePath:i})},r.id))}),t(R,{isStacked:o,tabIndex:0,children:t(C,{item:e[0]})})]}),e.filter(({type:r})=>r!=="section").map(r=>t(g,{item:r,routingBasePath:i,children:t(f,{items:r.items,routingBasePath:i})},r.id)),P]})}const h=s(j)`
2
2
  align-self: flex-start;
3
3
  padding-top: var(--panel-gap-vertical);
4
4
  padding-bottom: var(--panel-gap-vertical);
5
- `,R=m.div`
5
+ `,M=s.div`
6
6
  width: 100%;
7
7
 
8
8
  @media screen and (min-width: ${k.large}) {
9
9
  width: ${({layout:e})=>e===c.STACKED?"100%":"calc(100% - var(--panel-samples-width))"};
10
10
  }
11
- `,_=m(M)`
11
+ `,R=s(I)`
12
12
  margin: var(--spacing-base) 0;
13
- `;export{_ as RightPanelContainer,R as SectionContainer,G as SectionContent};
13
+ `;export{R as RightPanelContainer,M as SectionContainer,G as SectionContent};
@@ -1,4 +1,4 @@
1
- import{jsx as i,jsxs as o}from"react/jsx-runtime";import{CopyButton as x}from"@redocly/theme/components/Buttons/CopyButton";import{getServerDisplayName as b}from"../../utils/helpers.js";import{PanelItemDescription as u,Title as y}from"../PanelItem/index.js";import{ViewNested as w}from"../ViewNested/index.js";import{Tag as S}from"../common/index.js";import{Markdown as T}from"../Markdown/index.js";import{styled as e}from"../../styled-components.js";import{ServerDescriptionTooltip as j}from"./ServerDescriptionTooltip.js";const q=({servers:h,path:f,translate:r})=>i(D,{children:h.map(t=>{const a=t.url+f,p=Object.keys(t.variables||{}).length,d=p===1?"variable":"variables",l=`${p||""} ${r(`openapi.${d}`,d)}`,v=!!t.name&&!!t.description;return o("div",{children:[o(L,{children:[i(u,{"data-testid":"server-panel-item-name",children:b(t)}),v&&i(j,{description:t.description})]}),o(O,{children:[i(y,{suppressHydrationWarning:!0,children:a}),i(x,{data:a},a)]}),t.variables&&i(w,{expandText:`${r("openapi.actions.show","Show")} ${l}`,hideText:`${r("openapi.actions.hide","Hide")} ${l}`,expandByDefault:!1,expandable:!0,hideDivider:!0,children:i($,{children:Object.entries(t.variables||{}).map(([c,n])=>o(z,{children:[i(k,{children:c}),o(s,{children:[r("openapi.default","Default")," ",i(g,{children:n.default})]}),i(W,{source:n.description}),n.enum&&o(s,{children:[r("openapi.enum","Enum")," ",i(C,{children:n.enum.map(m=>i(g,{children:m},m))})]})]},c))})})]},t.url)})}),D=e.div`
1
+ import{jsx as i,jsxs as o}from"react/jsx-runtime";import{CopyButton as u}from"@redocly/theme/components/Buttons/CopyButton";import{CheckmarkFilledIcon as y}from"@redocly/theme/icons/CheckmarkFilledIcon/CheckmarkFilledIcon";import{getServerDisplayName as w}from"../../utils/helpers.js";import{PanelItemDescription as h,Title as S}from"../PanelItem/index.js";import{ViewNested as T}from"../ViewNested/index.js";import{Tag as l}from"../common/index.js";import{Markdown as j}from"../Markdown/index.js";import{styled as t}from"../../styled-components.js";import{ServerDescriptionTooltip as D}from"./ServerDescriptionTooltip.js";const A=({servers:v,path:f,translate:n})=>i($,{children:v.map(e=>{const s=e.url+f,d=Object.keys(e.variables||{}).length,c=d===1?"variable":"variables",m=`${d||""} ${n(`openapi.${c}`,c)}`,b=!!e.name&&!!e.description;return o("div",{children:[o(W,{children:[o(h,{"data-testid":"server-panel-item-name",children:[w(e),e["x-isLive"]&&o(l,{className:"tag-green",children:[i(y,{}),"Live"]})]}),b&&i(D,{description:e.description}),e["x-labels"]?.length&&i(h,{style:{margin:"var(--spacing-xs) 0"},children:e["x-labels"]?.map(r=>o(l,{className:`tag-${r.color}`,children:[r.label,": ",r.value]},r.value))})||null]}),o(I,{children:[i(S,{suppressHydrationWarning:!0,children:s}),i(u,{data:s},s)]}),e.variables&&i(T,{expandText:`${n("openapi.actions.show","Show")} ${m}`,hideText:`${n("openapi.actions.hide","Hide")} ${m}`,expandByDefault:!1,expandable:!0,hideDivider:!0,children:i(z,{children:Object.entries(e.variables||{}).map(([r,a])=>o(k,{children:[i(C,{children:r}),o(p,{children:[n("openapi.default","Default")," ",i(x,{children:a.default})]}),i(L,{source:a.description}),a.enum&&o(p,{children:[n("openapi.enum","Enum")," ",i(N,{children:a.enum.map(g=>i(x,{children:g},g))})]})]},r))})})]},e.url)})}),$=t.div`
2
2
  & > div {
3
3
  border-bottom: 1px solid var(--border-color-secondary);
4
4
  margin-bottom: var(--spacing-xs);
@@ -10,7 +10,7 @@ import{jsx as i,jsxs as o}from"react/jsx-runtime";import{CopyButton as x}from"@r
10
10
  margin-bottom: 0;
11
11
  padding-bottom: 0;
12
12
  }
13
- `,$=e.div`
13
+ `,z=t.div`
14
14
  padding-left: var(--spacing-xxs);
15
15
  & > div {
16
16
  border-bottom: 1px solid var(--border-color-secondary);
@@ -28,37 +28,37 @@ import{jsx as i,jsxs as o}from"react/jsx-runtime";import{CopyButton as x}from"@r
28
28
  margin-bottom: 0;
29
29
  padding-bottom: 0;
30
30
  }
31
- `,z=e.div`
31
+ `,k=t.div`
32
32
  display: flex;
33
33
  flex-direction: column;
34
34
  flex-wrap: wrap;
35
- `,W=e(T)`
35
+ `,L=t(j)`
36
36
  font-size: var(--font-size-sm);
37
37
  line-height: var(--line-height-sm);
38
38
  color: var(--text-color-primary);
39
- `,s=e.span`
39
+ `,p=t.span`
40
40
  display: flex;
41
41
  gap: var(--spacing-xxs);
42
42
  font-size: var(--font-size-sm);
43
43
  line-height: var(--line-height-sm);
44
44
  color: var(--text-color-primary);
45
- `,k=e(s)`
45
+ `,C=t(p)`
46
46
  padding-bottom: var(--spacing-xxs);
47
47
  font-weight: var(--font-weight-semibold);
48
- `,C=e.span`
48
+ `,N=t.span`
49
49
  display: flex;
50
50
  gap: var(--spacing-xxs);
51
51
  flex-wrap: wrap;
52
- `,g=e(S)`
52
+ `,x=t(l)`
53
53
  font-size: var(--font-size-sm);
54
54
  line-height: var(--line-height-sm);
55
- `,L=e.div`
55
+ `,W=t.div`
56
56
  display: flex;
57
57
  justify-content: start;
58
58
  align-items: center;
59
59
  gap: var(--spacing-xxs);
60
- `,O=e.div`
60
+ `,I=t.div`
61
61
  display: flex;
62
62
  justify-content: space-between;
63
63
  align-items: center;
64
- `;export{q as ServerList};
64
+ `;export{A as ServerList};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as d}from"react/jsx-runtime";import{useMemo as f,useCallback as c}from"react";import{useAtom as S,useAtomValue as g}from"jotai";import{DropdownMenu as w}from"@redocly/theme/components/Dropdown/DropdownMenu";import{Dropdown as y}from"@redocly/theme/components/Dropdown/Dropdown";import{HttpVerb as k}from"../common/index.js";import{PathWrapper as A,Path as C,StyledCopyButton as b,StyledDropdownMenuItem as P}from"./styled.js";import{PanelItem as j}from"../PanelItem/index.js";import{joinWithSeparator as x}from"../../services/index.js";import{getServerDisplayName as D,replaceVariables as V}from"../../utils/index.js";import{environmentAtom as M}from"../../jotai/app.js";import{useActiveWithFallback as E,useTelemetry as N}from"../../hooks/index.js";import{getServerEnvName as p}from"../../utils/environments.js";import{createTargetServerSwitchEvent as W}from"../../events/index.js";import{globalStoreAtom as I}from"../../jotai/store.js";const X=({operation:e,className:h})=>{const n=N(),[[v],i]=S(M),{options:{events:m}}=g(I),s=E(e.servers.map(r=>({...r,key:r.url})),v.server),a=c(r=>{r.stopPropagation()},[]),l=c(r=>()=>{if(e.servers.length!==1&&(i({environment:p(r)}),n.sendSwitchServersClickedMessage({server:p(r)}),m?.targetServerSwitch&&r)){const o=W({operation:e,serverUrl:r.url});m.targetServerSwitch(o)}},[e,i,n,m]),u=f(()=>e.servers.map(r=>{const o=x(V(r),e.path);return t(P,{onAction:l(r),children:t(j,{header:D(r),title:o,actions:[t(b,{data:o,toasterPlacement:"left",onCopyClick:a},o)],active:r.url===s,withCheckmark:!0})},o)}),[e.servers,e.path,l,a,s]);return t(y,{className:h,trigger:d(A,{variant:"ghost",children:[t(k,{color:e.httpVerb,children:e.httpVerb}),t(C,{children:e.path})]}),withArrow:!0,children:t(w,{children:u})})};export{X as ServerListDropdown};
1
+ import{jsx as e,jsxs as f}from"react/jsx-runtime";import{useMemo as S,useCallback as c}from"react";import{useAtom as g,useAtomValue as w}from"jotai";import{DropdownMenu as y}from"@redocly/theme/components/Dropdown/DropdownMenu";import{Dropdown as A}from"@redocly/theme/components/Dropdown/Dropdown";import{getOperationColor as C}from"@redocly/theme/core/openapi";import{HttpVerb as b}from"../common/index.js";import{PathWrapper as k,Path as P,StyledCopyButton as V,StyledDropdownMenuItem as j}from"./styled.js";import{PanelItem as x}from"../PanelItem/index.js";import{joinWithSeparator as D}from"../../services/index.js";import{getServerDisplayName as M,replaceVariables as E}from"../../utils/index.js";import{environmentAtom as N}from"../../jotai/app.js";import{useActiveWithFallback as O,useTelemetry as W}from"../../hooks/index.js";import{getServerEnvName as p}from"../../utils/environments.js";import{createTargetServerSwitchEvent as I}from"../../events/index.js";import{globalStoreAtom as T}from"../../jotai/store.js";const $=({operation:r,className:h})=>{const n=W(),[[d],m]=g(N),{options:{events:i}}=w(T),s=O(r.servers.map(t=>({...t,key:t.url})),d.server),a=c(t=>{t.stopPropagation()},[]),l=c(t=>()=>{if(r.servers.length!==1&&(m({environment:p(t)}),n.sendSwitchServersClickedMessage({server:p(t)}),i?.targetServerSwitch&&t)){const o=I({operation:r,serverUrl:t.url});i.targetServerSwitch(o)}},[r,m,n,i]),v=S(()=>r.servers.map(t=>{const o=D(E(t),r.path);return e(j,{onAction:l(t),children:e(x,{header:M(t),title:o,actions:[e(V,{data:o,toasterPlacement:"left",onCopyClick:a},o)],active:t.url===s,withCheckmark:!0})},o)}),[r.servers,r.path,l,a,s]),u=C({isAdditionalOperation:r.isAdditionalOperation,httpVerb:r.httpVerb});return e(A,{className:h,trigger:f(k,{variant:"ghost",children:[e(b,{color:u,children:r.httpVerb}),e(P,{children:r.path})]}),withArrow:!0,children:e(y,{children:v})})};export{$ as ServerListDropdown};
@@ -1 +1 @@
1
- import{useMemo as l}from"react";import{useLocation as h}from"react-router-dom";import{useActiveSectionId as I}from"@redocly/theme/core/openapi";import{pathMatchedLink as k}from"../../../utils/index.js";import{DEFAULT_WEBHOOKS_TAG_NAME as A}from"../../../constants.js";import{joinWithSeparator as y}from"../../../services/history/helpers.js";function O({items:o,routingBasePath:r}){const t=h(),s=I(t,!1,!1);return l(()=>S(o,s,t,r),[s,o,t,r])}function S(o,r="",t,s){const n=[];return c({contentItems:o,sidebarItems:n,activeItemId:r,location:t,routingBasePath:s}),n}function b(o,r="",t,s){return o.href?r&&s?y(s,o.id)===r:r&&!s?o.id===r:k(t,o.href):!1}function d(o,r="",t,s){return(o.items||[]).some(i=>b(i,r,t,s)||d(i,r,t,s))}function c(o){const{contentItems:r,sidebarItems:t,activeItemId:s,location:n,routingBasePath:i}=o;let p=!0;for(const e of r){const a=b(e,s,n,i),m=d(e,s,n,i);switch(e.type){case"group":t.push({type:"separator",label:e.name,active:a,hasActiveSubItem:m}),c({...o,contentItems:e.items,sidebarItems:t});break;case"tag":const f={type:"group",label:e.name,items:[],link:e.href,active:a,hasActiveSubItem:m,modified:!0};t.push(f),c({contentItems:e.items,sidebarItems:f.items||[],activeItemId:s,location:n,routingBasePath:i});break;case"operation":case"schema":case"mcp":e.isWebhook&&p&&e.parent.name!==A&&(t.push({type:"separator",label:"Webhooks",variant:"secondary"}),p=!1),t.push({type:"link",label:e.name,httpVerb:e.type=="operation"?e.httpVerb:e.type,link:e.href,badges:e.badges,active:a,hasActiveSubItem:m,modified:!0,deprecated:e.deprecated});break;case"section":if(e.depth===-1)continue;const u={type:e.items.length?"group":"link",label:e.name,link:e.href,items:[],active:a,hasActiveSubItem:m,modified:!0};t.push(u),e.items.length&&c({contentItems:e.items,sidebarItems:u.items,activeItemId:s,location:n,routingBasePath:i});break}}}export{O as useMenuItems};
1
+ import{useMemo as b}from"react";import{useLocation as h}from"react-router-dom";import{useActiveSectionId as I}from"@redocly/theme/core/openapi";import{pathMatchedLink as k}from"../../../utils/index.js";import{DEFAULT_WEBHOOKS_TAG_NAME as A}from"../../../constants.js";import{joinWithSeparator as y}from"../../../services/history/helpers.js";function L({items:s,routingBasePath:r}){const t=h(),o=I(t,!1,!1);return b(()=>S(s,o,t,r),[o,s,t,r])}function S(s,r="",t,o){const n=[];return c({contentItems:s,sidebarItems:n,activeItemId:r,location:t,routingBasePath:o}),n}function d(s,r="",t,o){return s.href?r&&o?y(o,s.id)===r:r&&!o?s.id===r:k(t,s.href):!1}function l(s,r="",t,o){return(s.items||[]).some(i=>d(i,r,t,o)||l(i,r,t,o))}function c(s){const{contentItems:r,sidebarItems:t,activeItemId:o,location:n,routingBasePath:i}=s;let p=!0;for(const e of r){const a=d(e,o,n,i),m=l(e,o,n,i);switch(e.type){case"group":t.push({type:"separator",label:e.name,active:a,hasActiveSubItem:m}),c({...s,contentItems:e.items,sidebarItems:t});break;case"tag":const f={type:"group",label:e.name,items:[],link:e.href,active:a,hasActiveSubItem:m,modified:!0};t.push(f),c({contentItems:e.items,sidebarItems:f.items||[],activeItemId:o,location:n,routingBasePath:i});break;case"operation":case"schema":case"tool":case"rsrc":case"prompt":e.isWebhook&&p&&e.parent.name!==A&&(t.push({type:"separator",label:"Webhooks",variant:"secondary"}),p=!1),t.push({type:"link",label:e.name,httpVerb:e.type=="operation"?e.httpVerb:e.type,link:e.href,badges:e.badges,active:a,hasActiveSubItem:m,modified:!0,deprecated:e.deprecated,isAdditionalOperation:e.isAdditionalOperation});break;case"section":if(e.depth===-1)continue;const u={type:e.items.length?"group":"link",label:e.name,link:e.href,items:[],active:a,hasActiveSubItem:m,modified:!0};t.push(u),e.items.length&&c({contentItems:e.items,sidebarItems:u.items,activeItemId:o,location:n,routingBasePath:i});break}}}export{L as useMenuItems};
@@ -1,10 +1,10 @@
1
- import{jsx as r,jsxs as i,Fragment as x}from"react/jsx-runtime";import{memo as u}from"react";import{joinWithSeparator as y}from"../../services/index.js";import{encodeBackSlashes as w}from"../../utils/index.js";import{HttpVerb as j,NavigationBadge as s}from"../common/index.js";import{styled as t}from"../../styled-components.js";import{StyledButton as z}from"./styled.js";function k({title:p,items:c,onClick:l,routingBasePath:d,translate:h}){return i(x,{children:[r(B,{children:p}),c.map(e=>{const{id:g,href:f,deprecated:o,badges:m}=e,v=e.type==="operation"?e.path:e.name,a=e.type==="operation"?e.httpVerb:e.type;return r(I,{variant:"outlined",size:"large",onClick:()=>l(y(d,w(f))),children:i("span",{children:[r(j,{color:o?"http-deprecated":a,children:a}),r(N,{children:v}),o&&r(s,{deprecated:!0,children:h("openapi.badges.deprecated","Deprecated")}),m?.map(({name:n,color:b})=>r(s,{color:b,children:n},n))]})},g)})]})}const D=u(k),B=t.span`
1
+ import{jsx as r,jsxs as i,Fragment as y}from"react/jsx-runtime";import{memo as w}from"react";import{getOperationColor as j}from"@redocly/theme/core/openapi";import{joinWithSeparator as z}from"../../services/index.js";import{encodeBackSlashes as k}from"../../utils/index.js";import{HttpVerb as C,NavigationBadge as s}from"../common/index.js";import{styled as o}from"../../styled-components.js";import{StyledButton as O}from"./styled.js";function B({title:p,items:l,onClick:c,routingBasePath:d,translate:h}){return i(y,{children:[r(I,{children:p}),l.map(e=>{const{id:g,href:m,deprecated:t,badges:f,isAdditionalOperation:v}=e,b=e.type==="operation"?e.path:e.name,a=e.type==="operation"?e.httpVerb:e.type,x=j({isAdditionalOperation:v,deprecated:t,httpVerb:a});return r(N,{variant:"outlined",size:"large",onClick:()=>c(z(d,k(m))),children:i("span",{children:[r(C,{color:x,children:a}),r(S,{children:b}),t&&r(s,{deprecated:!0,children:h("openapi.badges.deprecated","Deprecated")}),f?.map(({name:n,color:u})=>r(s,{color:u,children:n},n))]})},g)})]})}const q=w(B),I=o.span`
2
2
  font-size: var(--font-size-base);
3
3
  line-height: var(--line-height-base);
4
4
  font-weight: var(--font-weight-bold);
5
5
  color: var(--text-color-primary);
6
6
  margin: var(--spacing-sm) 0 var(--spacing-xxs) 0;
7
- `,I=t(z)`
7
+ `,N=o(O)`
8
8
  border-radius: var(--border-radius);
9
9
  background: var(--bg-color);
10
10
  justify-content: space-between;
@@ -24,7 +24,7 @@ import{jsx as r,jsxs as i,Fragment as x}from"react/jsx-runtime";import{memo as u
24
24
  content: '→';
25
25
  line-height: var(--line-height-base);
26
26
  }
27
- `,N=t.span`
27
+ `,S=o.span`
28
28
  font-family: var(--font-family-base);
29
29
  font-size: var(--font-size-base);
30
30
  line-height: var(--line-height-base);
@@ -33,4 +33,4 @@ import{jsx as r,jsxs as i,Fragment as x}from"react/jsx-runtime";import{memo as u
33
33
  white-space: nowrap;
34
34
  text-overflow: ellipsis;
35
35
  overflow-x: hidden;
36
- `;export{D as OperationNavigationItems};
36
+ `;export{q as OperationNavigationItems};
@@ -1,6 +1,6 @@
1
- import{jsx as r,jsxs as k}from"react/jsx-runtime";import{useMemo as O,memo as M,useState as A,useCallback as N}from"react";import{useNavigate as j}from"react-router-dom";import{LayoutVariant as E}from"@redocly/config";import{useAtomValue as I}from"jotai/index";import{SamplesPanel as P}from"../common/index.js";import{layoutAtom as W}from"../../jotai/app.js";import{OperationNavigationItems as l}from"./OperationNavigationItems.js";import{StyledButton as B}from"./styled.js";import{useTranslate as _}from"../../hooks/index.js";import{styled as R}from"../../styled-components.js";import{isRenderableMenuItem as V}from"../../utils/menu.js";const p=8;function z({items:m,routingBasePath:n}){const o=_(),[a,x]=A(!1),c=j(),C=I(W)===E.STACKED,{operations:h,webhooks:u,schemas:f,mcpTools:d,showMoreCount:g,totalCount:y}=O(()=>{const e=m.filter(s=>V(s)),w=a?e:e.slice(0,p),{operations:b,webhooks:v,schemas:S,mcpTools:T}=w.reduce((s,t)=>(t.type==="operation"&&t.isWebhook?s.webhooks.push(t):t.type==="operation"?s.operations.push(t):t.type==="schema"?s.schemas.push(t):t.type==="mcp"&&s.mcpTools.push(t),s),{operations:[],webhooks:[],schemas:[],mcpTools:[]});return{operations:b,schemas:S,mcpTools:T,webhooks:v,showMoreCount:!a&&e.length>p?e.length-p:0,totalCount:e.length}},[a,m]),i=N(e=>c(e),[c]);return y?k(D,{isStacked:C,"data-testid":"operation-navigation-list",children:[f.length>0&&r(l,{items:f,onClick:i,routingBasePath:n,translate:o,title:o("openapi.schemas","Schemas")}),d.length>0&&r(l,{items:d,onClick:i,routingBasePath:n,translate:o,title:o("openapi.mcp.tools","MCP Tools")}),h.length>0&&r(l,{items:h,onClick:i,routingBasePath:n,translate:o,title:o("openapi.operations","Operations")}),u.length>0&&r(l,{items:u,onClick:i,routingBasePath:n,translate:o,title:o("openapi.webhooks","Webhooks")}),!a&&!!g&&k(B,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>x(!0),children:[o("openapi.actions.show","Show")," ",g," ",o("openapi.actions.more","more"),"..."]})]}):null}const oo=M(z),D=R(P)`
1
+ import{jsx as i,jsxs as y}from"react/jsx-runtime";import{useMemo as N,memo as j,useState as E,useCallback as W}from"react";import{useNavigate as B}from"react-router-dom";import{LayoutVariant as _}from"@redocly/config";import{useAtomValue as V}from"jotai/index";import{SamplesPanel as z}from"../common/index.js";import{layoutAtom as D}from"../../jotai/app.js";import{OperationNavigationItems as p}from"./OperationNavigationItems.js";import{StyledButton as K}from"./styled.js";import{useTranslate as L}from"../../hooks/index.js";import{styled as X}from"../../styled-components.js";import{isRenderableMenuItem as q}from"../../utils/menu.js";const m=8;function F({items:c,routingBasePath:n}){const o=L(),[r,O]=E(!1),u=B(),P=V(D)===_.STACKED,{operations:h,webhooks:d,schemas:f,mcpTools:g,showMoreCount:k,totalCount:w,mcpResources:C,mcpPrompts:x}=N(()=>{const s=c.filter(e=>q(e)),b=r?s:s.slice(0,m),{operations:v,additionalOperations:S,webhooks:M,schemas:T,mcpTools:R,mcpResources:A,mcpPrompts:I}=b.reduce((e,t)=>{if(t.type==="operation"&&t.isWebhook)e.webhooks.push(t);else if(t.type==="operation"){const l=t;l.isAdditionalOperation?e.additionalOperations.push(l):e.operations.push(l)}else t.type==="schema"?e.schemas.push(t):t.type==="tool"?e.mcpTools.push(t):t.type==="rsrc"?e.mcpResources.push(t):t.type==="prompt"&&e.mcpPrompts.push(t);return e},{operations:[],additionalOperations:[],webhooks:[],schemas:[],mcpTools:[],mcpResources:[],mcpPrompts:[]});return{operations:[...v,...S],schemas:T,mcpTools:R,webhooks:M,mcpResources:A,mcpPrompts:I,showMoreCount:!r&&s.length>m?s.length-m:0,totalCount:s.length}},[r,c]),a=W(s=>u(s),[u]);return w?y(G,{isStacked:P,"data-testid":"operation-navigation-list",children:[f.length>0&&i(p,{items:f,onClick:a,routingBasePath:n,translate:o,title:o("openapi.schemas","Schemas")}),g.length>0&&i(p,{items:g,onClick:a,routingBasePath:n,translate:o,title:o("openapi.mcp.tools","MCP Tools")}),C.length>0&&i(p,{items:C,onClick:a,routingBasePath:n,translate:o,title:o("openapi.mcp.resources","MCP Resources")}),x.length>0&&i(p,{items:x,onClick:a,routingBasePath:n,translate:o,title:o("openapi.mcp.prompts","MCP Prompts")}),h.length>0&&i(p,{items:h,onClick:a,routingBasePath:n,translate:o,title:o("openapi.operations","Operations")}),d.length>0&&i(p,{items:d,onClick:a,routingBasePath:n,translate:o,title:o("openapi.webhooks","Webhooks")}),!r&&!!k&&y(K,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>O(!0),children:[o("openapi.actions.show","Show")," ",k," ",o("openapi.actions.more","more"),"..."]})]}):null}const io=j(F),G=X(z)`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: var(--spacing-xxs);
5
5
  padding-top: var(--spacing-xxl);
6
- `;export{oo as OperationsNavigation,z as OperationsNavigationComponent};
6
+ `;export{io as OperationsNavigation,F as OperationsNavigationComponent};
@@ -1,4 +1,4 @@
1
- import{jsx as a,jsxs as t}from"react/jsx-runtime";import{memo as u,useCallback as v}from"react";import{useNavigate as x}from"react-router-dom";import{useAtomValue as k}from"jotai";import{LayoutVariant as b}from"@redocly/config";import{Markdown as S}from"@redocly/theme/components/Markdown/Markdown";import{breakpoints as w}from"@redocly/theme/core/openapi";import{Button as y}from"@redocly/theme/components/Button/Button";import{PageActions as M}from"@redocly/theme/components/PageActions/PageActions";import{H2 as T}from"@redocly/theme/components/Typography/H2";import{LinkIcon as $}from"@redocly/theme/icons/LinkIcon/LinkIcon";import{joinWithSeparator as j}from"../../services/history/helpers.js";import{Row as C,SamplesMiddlePanel as I,SamplesPanel as A,ShareLink as P}from"../common/index.js";import{Markdown as W}from"../Markdown/index.js";import{OperationsNavigation as B}from"./OperationsNavigation.js";import{layoutAtom as L}from"../../jotai/app.js";import{useTranslate as D}from"../../hooks/index.js";import{styled as r}from"../../styled-components.js";function H({item:o,routingBasePath:e="",isExpanded:m}){const l=D(),{description:c,name:s,href:g}=o,p=x(),d=k(L),i=j(e,o.href),f=v(()=>{p(i)},[p,i]),n=!!o.items.length,h=d===b.STACKED;return t(N,{expanded:m,children:[t(C,{layout:d,children:[t(I,{fullWidth:!n,isStacked:h,children:[t(_,{children:[a(P,{to:g,"aria-label":`link to ${s}`}),s,a(M,{pageSlug:i})]}),a(W,{source:c})]}),n&&a(B,{items:o.items,routingBasePath:e})]}),n&&!m&&t(V,{type:"button",variant:"text",size:"medium",onClick:f,children:["+ ",l("openapi.actions.show","Show")]})]})}const no=u(H),N=r.div`
1
+ import{jsx as t,jsxs as a}from"react/jsx-runtime";import{memo as u,useCallback as v}from"react";import{useNavigate as x}from"react-router-dom";import{useAtomValue as k}from"jotai";import{LayoutVariant as b}from"@redocly/config";import{Markdown as w}from"@redocly/theme/components/Markdown/Markdown";import{breakpoints as S}from"@redocly/theme/core/openapi";import{Button as y}from"@redocly/theme/components/Button/Button";import{PageActions as M}from"@redocly/theme/components/PageActions/PageActions";import{H2 as T}from"@redocly/theme/components/Typography/H2";import{LinkIcon as $}from"@redocly/theme/icons/LinkIcon/LinkIcon";import{joinWithSeparator as j}from"../../services/history/helpers.js";import{Row as C,SamplesMiddlePanel as I,SamplesPanel as A,ShareLink as P}from"../common/index.js";import{Markdown as W}from"../Markdown/index.js";import{OperationsNavigation as B}from"./OperationsNavigation.js";import{layoutAtom as L}from"../../jotai/app.js";import{useTranslate as D}from"../../hooks/index.js";import{styled as n}from"../../styled-components.js";function H({item:o,routingBasePath:e="",isExpanded:m}){const l=D(),{description:c,name:s,href:g}=o,p=x(),d=k(L),i=j(e,o.href),f=v(()=>{p(i)},[p,i]),r=!!o.items.length,h=d===b.STACKED;return a(N,{expanded:m,children:[a(C,{layout:d,children:[a(I,{fullWidth:!r,isStacked:h,children:[a(_,{children:[t(P,{to:g,"aria-label":`link to ${s}`}),s,t(M,{pageSlug:i})]}),t(W,{source:c})]}),r&&t(B,{items:o.items,routingBasePath:e})]}),r&&!m&&a(V,{type:"button",variant:"text",size:"medium",onClick:f,children:["+ ",l("openapi.actions.show","Show")]})]})}const ro=u(H),N=n.div`
2
2
  padding-top: var(--spacing-lg);
3
3
  padding-bottom: ${({expanded:o})=>o?"var(--spacing-xxl)":""};
4
4
 
@@ -7,22 +7,22 @@ import{jsx as a,jsxs as t}from"react/jsx-runtime";import{memo as u,useCallback a
7
7
  E.g. SchemaDefinition, McpTool
8
8
  padding is added by the TagItem itself
9
9
  */
10
- ${S} ${A} {
10
+ ${w} ${A} {
11
11
  padding-left: 0;
12
12
  padding-right: 0;
13
13
  }
14
- `,V=r(y)`
14
+ `,V=n(y)`
15
15
  margin: var(--spacing-md) var(--spacing-xl) var(--spacing-xxs);
16
16
  width: calc(100% - var(--spacing-xl) * 2);
17
17
 
18
- @media screen and (min-width: ${w.medium}) {
18
+ @media screen and (min-width: ${S.medium}) {
19
19
  --button-margin-md: calc(var(--spacing-xl) * 2);
20
20
 
21
21
  margin-left: var(--button-margin-md);
22
22
  margin-right: var(--button-margin-md);
23
23
  width: calc(100% - var(--button-margin-md) * 2);
24
24
  }
25
- `,_=r(T)`
25
+ `,_=n(T)`
26
26
  display: flex;
27
27
  :hover {
28
28
  ${$} {
@@ -30,4 +30,5 @@ import{jsx as a,jsxs as t}from"react/jsx-runtime";import{memo as u,useCallback a
30
30
  visibility: visible;
31
31
  }
32
32
  }
33
- `;export{no as TagItem,H as TagItemComponent};
33
+ overflow-wrap: break-word;
34
+ `;export{ro as TagItem,H as TagItemComponent};