@redocly/openapi-docs 3.7.0-next.5 → 3.7.0-rc.1

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 (42) hide show
  1. package/dist/redocly-openapi-docs.min.js +1530 -1149
  2. package/lib/components/ApiInfo/ApiInfo.js +1 -1
  3. package/lib/components/ApiInfo/Metadata.js +1 -1
  4. package/lib/components/Download/DownloadSpecification.js +1 -1
  5. package/lib/components/ExpandAllButton/ExpandAllButton.js +1 -1
  6. package/lib/components/Language/LanguageList.js +1 -1
  7. package/lib/components/Overview/Overview.js +1 -1
  8. package/lib/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
  9. package/lib/components/Replay/Replay.js +1 -1
  10. package/lib/components/RequestSamples/Example.js +1 -1
  11. package/lib/components/RequestSamples/RequestSamples.js +1 -1
  12. package/lib/components/ResponseSamples/ResponseSamples.js +1 -1
  13. package/lib/components/Samples/ExampleSwitch.js +1 -1
  14. package/lib/components/ServerListDropdown/ServerListDropdown.js +1 -1
  15. package/lib/hooks/index.d.ts +2 -0
  16. package/lib/hooks/index.js +1 -1
  17. package/lib/hooks/useOtelTelemetry.d.ts +3 -0
  18. package/lib/hooks/useOtelTelemetry.js +2 -0
  19. package/lib/hooks/usePerformanceMetrics.d.ts +5 -0
  20. package/lib/hooks/usePerformanceMetrics.js +2 -0
  21. package/lib/services/types.d.ts +3 -0
  22. package/lib-esm/components/ApiInfo/ApiInfo.js +1 -1
  23. package/lib-esm/components/ApiInfo/Metadata.js +1 -1
  24. package/lib-esm/components/Download/DownloadSpecification.js +1 -1
  25. package/lib-esm/components/ExpandAllButton/ExpandAllButton.js +1 -1
  26. package/lib-esm/components/Language/LanguageList.js +1 -1
  27. package/lib-esm/components/Overview/Overview.js +1 -1
  28. package/lib-esm/components/RedoclyOpenAPIDocs/RedoclyOpenAPIDocs.js +1 -1
  29. package/lib-esm/components/Replay/Replay.js +1 -1
  30. package/lib-esm/components/RequestSamples/Example.js +1 -1
  31. package/lib-esm/components/RequestSamples/RequestSamples.js +1 -1
  32. package/lib-esm/components/ResponseSamples/ResponseSamples.js +1 -1
  33. package/lib-esm/components/Samples/ExampleSwitch.js +1 -1
  34. package/lib-esm/components/ServerListDropdown/ServerListDropdown.js +1 -1
  35. package/lib-esm/hooks/index.d.ts +2 -0
  36. package/lib-esm/hooks/index.js +1 -1
  37. package/lib-esm/hooks/useOtelTelemetry.d.ts +3 -0
  38. package/lib-esm/hooks/useOtelTelemetry.js +2 -0
  39. package/lib-esm/hooks/usePerformanceMetrics.d.ts +5 -0
  40. package/lib-esm/hooks/usePerformanceMetrics.js +2 -0
  41. package/lib-esm/services/types.d.ts +3 -0
  42. package/package.json +7 -6
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ApiInfo=ApiInfo;const jsx_runtime_1=require("react/jsx-runtime"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),app_1=require("../../jotai/app"),common_1=require("../common"),ExternalDocumentation_1=require("../ExternalDocumentation"),Markdown_1=require("../Markdown"),styled_1=require("./styled"),store_1=require("../../jotai/store"),saveTextBeforeHeading_1=require("../../utils/saveTextBeforeHeading"),helpers_1=require("../../utils/helpers"),RenderHook_1=require("../RenderHook"),Metadata_1=require("./Metadata"),hooks_1=require("../../hooks");function ApiInfo({item:e}){const r=(0,hooks_1.useTranslate)(),{options:{unstable_hooks:t,hideInfoMetadata:o},parser:{definition:a}}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),i=(0,jotai_1.useAtomValue)(app_1.layoutAtom),n=e.infoDefinition;if(!n)return null;const s=(0,saveTextBeforeHeading_1.saveTextBeforeHeading)((0,helpers_1.getValueFromMdParsedExtension)(n,"description")||""),u=(0,helpers_1.getValueFromMdParsedExtension)(n,"summary")||void 0,_=null==a?void 0:a.externalDocs,l=n.version&&(0,jsx_runtime_1.jsxs)("span",{children:["(",n.version,")"]})||null,d=i===theme_1.LayoutVariant.STACKED;return(0,jsx_runtime_1.jsx)(common_1.Row,{layout:i,children:(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{fullWidth:!0,className:"api-info",isStacked:d,children:[(0,jsx_runtime_1.jsxs)(styled_1.ApiHeader,{children:[n.title," ",l]}),(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiTitle||(null==t?void 0:t.AfterApiTitle),props:{info:n}}),u&&(0,jsx_runtime_1.jsx)(Markdown_1.Markdown,{source:u,"data-role":"redoc-summary"}),s&&(0,jsx_runtime_1.jsx)(Markdown_1.Markdown,{source:s,"data-role":"redoc-description"}),_&&(0,jsx_runtime_1.jsx)(ExternalDocumentation_1.ExternalDocumentation,{externalDocs:_}),!o&&(0,jsx_runtime_1.jsx)(Metadata_1.Metadata,{metadata:n["x-metadata"],translate:r})]})})}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ApiInfo=ApiInfo;const jsx_runtime_1=require("react/jsx-runtime"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),app_1=require("../../jotai/app"),common_1=require("../common"),ExternalDocumentation_1=require("../ExternalDocumentation"),Markdown_1=require("../Markdown"),styled_1=require("./styled"),store_1=require("../../jotai/store"),saveTextBeforeHeading_1=require("../../utils/saveTextBeforeHeading"),helpers_1=require("../../utils/helpers"),RenderHook_1=require("../RenderHook"),Metadata_1=require("./Metadata"),hooks_1=require("../../hooks");function ApiInfo({item:e}){const r=(0,hooks_1.useTranslate)(),{options:{unstable_hooks:o,hideInfoMetadata:t},parser:{definition:i}}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),n=(0,jotai_1.useAtomValue)(app_1.layoutAtom),a=e.infoDefinition;if(!a)return null;const s=(0,saveTextBeforeHeading_1.saveTextBeforeHeading)((0,helpers_1.getValueFromMdParsedExtension)(a,"description")||""),u=(0,helpers_1.getValueFromMdParsedExtension)(a,"summary")||void 0,_=null==i?void 0:i.externalDocs,d=a.version&&(0,jsx_runtime_1.jsxs)("span",{children:["(",a.version,")"]})||null,l=n===theme_1.LayoutVariant.STACKED;return(0,jsx_runtime_1.jsx)(common_1.Row,{layout:n,children:(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{fullWidth:!0,className:"api-info",isStacked:l,children:[(0,jsx_runtime_1.jsxs)(styled_1.ApiHeader,{children:[a.title," ",d]}),(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiTitle||(null==o?void 0:o.AfterApiTitle),props:{info:a}}),u&&(0,jsx_runtime_1.jsx)(Markdown_1.Markdown,{source:u,"data-role":"redoc-summary"}),s&&(0,jsx_runtime_1.jsx)(Markdown_1.Markdown,{source:s,"data-role":"redoc-description"}),(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiDescription||(null==o?void 0:o.AfterOpenApiDescription),props:{info:a}}),_&&(0,jsx_runtime_1.jsx)(ExternalDocumentation_1.ExternalDocumentation,{externalDocs:_}),!t&&(0,jsx_runtime_1.jsx)(Metadata_1.Metadata,{metadata:a["x-metadata"],translate:r})]})})}
2
2
  //# sourceMappingURL=ApiInfo.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Metadata=Metadata;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),FILTER_OUT_KEYS=["title","description"];function metadataMap([e,t]){return FILTER_OUT_KEYS.includes(e)?null:Array.isArray(t)?{key:e,value:t.filter((e=>"object"!=typeof e)).join(", ")}:"object"==typeof t?null:{key:e,value:t}}function Metadata({metadata:e,translate:t}){const r=(0,react_1.useMemo)((()=>Object.entries(e||{}).map(metadataMap).filter(theme_1.isNotNull)),[e]);return e?(0,jsx_runtime_1.jsxs)(theme_1.Markdown,{children:[(0,jsx_runtime_1.jsx)(theme_1.H3,{children:t("openapi.info.metadata.title","Metadata")}),(0,jsx_runtime_1.jsxs)("table",{className:"md",children:[(0,jsx_runtime_1.jsx)("thead",{children:(0,jsx_runtime_1.jsxs)("tr",{children:[(0,jsx_runtime_1.jsx)("th",{scope:"col",children:t("openapi.key","Key")}),(0,jsx_runtime_1.jsx)("th",{scope:"col",children:t("openapi.value","Value")})]})}),(0,jsx_runtime_1.jsx)("tbody",{children:r.map((({key:e,value:t})=>(0,jsx_runtime_1.jsxs)("tr",{children:[(0,jsx_runtime_1.jsx)("td",{children:e}),(0,jsx_runtime_1.jsx)("td",{children:`${t}`})]},e)))})]})]}):null}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Metadata=Metadata;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),helpers_1=require("../../utils/helpers"),FILTER_OUT_KEYS=["title","description"];function metadataMap([e,t]){return FILTER_OUT_KEYS.includes(e)?null:Array.isArray(t)?{key:e,value:t.filter((e=>"object"!=typeof e)).join(", ")}:"object"==typeof t?null:{key:e,value:t}}function Metadata({metadata:e,translate:t}){const r=(0,react_1.useMemo)((()=>Object.entries(e||{}).map(metadataMap).filter(theme_1.isNotNull)),[e]);return e?(0,jsx_runtime_1.jsxs)(theme_1.Markdown,{children:[(0,jsx_runtime_1.jsx)(theme_1.H3,{children:t("openapi.info.metadata.title","Metadata")}),(0,jsx_runtime_1.jsxs)("table",{className:"md",children:[(0,jsx_runtime_1.jsx)("thead",{children:(0,jsx_runtime_1.jsxs)("tr",{children:[(0,jsx_runtime_1.jsx)("th",{scope:"col",children:t("openapi.key","Key")}),(0,jsx_runtime_1.jsx)("th",{scope:"col",children:t("openapi.value","Value")})]})}),(0,jsx_runtime_1.jsx)("tbody",{children:r.map((({key:e,value:t})=>(0,jsx_runtime_1.jsxs)("tr",{children:[(0,jsx_runtime_1.jsx)("td",{children:e}),(0,jsx_runtime_1.jsx)("td",{children:"string"==typeof t&&(0,helpers_1.isAbsoluteUrl)(t)?(0,jsx_runtime_1.jsx)("a",{href:t,target:"_blank",rel:"noreferrer",children:t}):String(t)})]},e)))})]})]}):null}
2
2
  //# sourceMappingURL=Metadata.js.map
@@ -1,4 +1,4 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DownloadSpecification=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),useDownloadInfo_1=require("./useDownloadInfo"),store_1=require("../../jotai/store");function DownloadSpecificationComponent(){const{options:e}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),t=(0,useDownloadInfo_1.useDownloadInfo)({downloadUrls:e.downloadUrls}),o=(0,react_1.useCallback)((e=>{switch(e){case"yaml":return(0,jsx_runtime_1.jsx)(theme_1.DocumentIcon,{});case"json":return(0,jsx_runtime_1.jsx)(theme_1.JsonIcon,{});default:return(0,jsx_runtime_1.jsx)(theme_1.FileIcon,{})}}),[]);return t?(0,jsx_runtime_1.jsx)(Wrapper,{children:(t||[]).map((({title:e,url:t,iconType:r})=>(0,jsx_runtime_1.jsxs)(Card,{children:[(0,jsx_runtime_1.jsxs)(FileName,{children:[o(r),(0,jsx_runtime_1.jsx)("a",{href:t,target:"_blank",download:!0,rel:"noreferrer",children:e})]}),(0,jsx_runtime_1.jsx)("a",{href:t,target:"_blank",download:!0,rel:"noreferrer",children:(0,jsx_runtime_1.jsx)(theme_1.Button,{variant:"text",size:"small",icon:(0,jsx_runtime_1.jsx)(theme_1.DownloadIcon,{})})})]},e)))}):(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{})}exports.DownloadSpecification=(0,react_1.memo)(DownloadSpecificationComponent);const Card=styled_components_1.default.div`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DownloadSpecification=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),useDownloadInfo_1=require("./useDownloadInfo"),store_1=require("../../jotai/store"),hooks_1=require("../../hooks");function DownloadSpecificationComponent(){const e=(0,hooks_1.useOtelTelemetry)(),{options:o}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),t=(0,useDownloadInfo_1.useDownloadInfo)({downloadUrls:o.downloadUrls}),n=(0,react_1.useCallback)((e=>{switch(e){case"yaml":return(0,jsx_runtime_1.jsx)(theme_1.DocumentIcon,{});case"json":return(0,jsx_runtime_1.jsx)(theme_1.JsonIcon,{});default:return(0,jsx_runtime_1.jsx)(theme_1.FileIcon,{})}}),[]);return t?(0,jsx_runtime_1.jsx)(Wrapper,{children:(t||[]).map((({title:o,url:t,iconType:r})=>(0,jsx_runtime_1.jsxs)(Card,{onClick:()=>e.send("openapi_docs.download_definition.clicked",{}),children:[(0,jsx_runtime_1.jsxs)(FileName,{children:[n(r),(0,jsx_runtime_1.jsx)("a",{href:t,target:"_blank",download:!0,rel:"noreferrer",children:o})]}),(0,jsx_runtime_1.jsx)("a",{href:t,target:"_blank",download:!0,rel:"noreferrer",children:(0,jsx_runtime_1.jsx)(theme_1.Button,{variant:"text",size:"small",icon:(0,jsx_runtime_1.jsx)(theme_1.DownloadIcon,{})})})]},o)))}):(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{})}exports.DownloadSpecification=(0,react_1.memo)(DownloadSpecificationComponent);const Card=styled_components_1.default.div`
2
2
  display: flex;
3
3
  align-items: baseline;
4
4
  justify-content: space-between;
@@ -1,4 +1,4 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExpandAllButton=void 0;const jsx_runtime_1=require("react/jsx-runtime"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),index_1=require("jotai/index"),operation_1=require("../../jotai/operation"),hooks_1=require("../../hooks"),ExpandAllButton=({operationPointer:e,type:t})=>{const o=(0,hooks_1.useTranslate)(),[n,l]=(0,index_1.useAtom)((0,operation_1.operationStore)(e));return(0,jsx_runtime_1.jsx)(StyledButton,{icon:(0,jsx_runtime_1.jsx)(theme_1.MaximizeIcon,{}),iconPosition:"right",size:"small",variant:"ghost",onClick:()=>{const e=!n[t].expandedAll;l({[t]:{expandedAll:e}})},children:n[t].expandedAll?o("openapi.collapseAll","Collapse all"):o("openapi.expandAll","Expand all")})};exports.ExpandAllButton=ExpandAllButton;const StyledButton=(0,styled_components_1.default)(theme_1.Button)`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExpandAllButton=void 0;const jsx_runtime_1=require("react/jsx-runtime"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),index_1=require("jotai/index"),operation_1=require("../../jotai/operation"),hooks_1=require("../../hooks"),ExpandAllButton=({operationPointer:e,type:t})=>{const o=(0,hooks_1.useTranslate)(),[n,l]=(0,index_1.useAtom)((0,operation_1.operationStore)(e)),i=(0,hooks_1.useOtelTelemetry)();return(0,jsx_runtime_1.jsx)(StyledButton,{icon:(0,jsx_runtime_1.jsx)(theme_1.MaximizeIcon,{}),iconPosition:"right",size:"small",variant:"ghost",onClick:()=>{const e=!n[t].expandedAll;i.send("openapi_docs.expand_collapse_all.clicked",{is_expanded:e}),l({[t]:{expandedAll:e}})},children:n[t].expandedAll?o("openapi.collapseAll","Collapse all"):o("openapi.expandAll","Expand all")})};exports.ExpandAllButton=ExpandAllButton;const StyledButton=(0,styled_components_1.default)(theme_1.Button)`
2
2
  margin-left: auto;
3
3
  `;
4
4
  //# sourceMappingURL=ExpandAllButton.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LanguageList=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),LanguageDropdown_1=require("./LanguageDropdown"),app_1=require("../../jotai/app"),styled_1=require("./styled"),LanguageItem_1=require("./LanguageItem"),constants_1=require("./constants"),LanguageListSkeleton_1=require("../common/Skeleton/LanguageListSkeleton");function LanguageListComponent({languages:e,activeLanguage:t}){const[n,a]=(0,react_1.useState)([]),[s,i]=(0,react_1.useState)([]),r=(0,react_1.useRef)(null),o=(0,jotai_1.useAtomValue)(app_1.layoutAtom),u=(0,jotai_1.useSetAtom)(app_1.languageAtom),g=(0,react_1.useCallback)((()=>{var n;const s=null===(n=null==r?void 0:r.current)||void 0===n?void 0:n.offsetWidth;if(!s)return;const{newVisibleItems:o,newHiddenItems:u}=calculateVisibleAndHiddenItems(s,[...e]),g=u.findIndex((e=>e.key===t));-1!==g&&swapItems(o,u,g),a(o),i(u)}),[t,e]);(0,react_1.useLayoutEffect)((()=>(g(),window.addEventListener("resize",g),()=>{window.removeEventListener("resize",g)})),[o,t]);const _=(0,react_1.useMemo)((()=>n.length>=5||s.length?"space-between":"start"),[s.length,n.length]);return(0,jsx_runtime_1.jsxs)(styled_1.Container,{ref:r,children:[(0,jsx_runtime_1.jsxs)(styled_1.LanguageListContainer,{$justifyContent:_,children:[!n.length&&(0,jsx_runtime_1.jsx)(LanguageListSkeleton_1.LanguageListSkeleton,{}),n.map((e=>(0,jsx_runtime_1.jsx)(styled_1.LanguageListItem,{onClick:()=>u(e.key),active:t===e.key,children:(0,jsx_runtime_1.jsx)(LanguageItem_1.LanguageItem,{item:e,withIcon:!0})},e.key)))]}),s.length?(0,jsx_runtime_1.jsx)(LanguageDropdown_1.LanguageDropdown,{activeTab:t,samples:s,onChange:e=>{const t=s.findIndex((t=>t.key===e));if(-1!==t){const r=[...s],o=[...n];swapItems(o,r,t),a(o),i(r),u(e)}},trigger:(0,jsx_runtime_1.jsx)(theme_1.Button,{icon:(0,jsx_runtime_1.jsx)(theme_1.OverflowMenuVerticalIcon,{}),variant:"text",style:{height:"100%"}}),withArrow:!1,withCheckmark:!1,width:156}):null]})}function calculateVisibleAndHiddenItems(e,t){let n=0;const a=[],s=[];return t.forEach(((i,r)=>{const o=r===t.length-1&&0===s.length?0:constants_1.DROPDOWN_TRIGGER_WIDTH;e&&n+constants_1.ITEM_WIDTH+o<=e?(a.push(i),n+=constants_1.ITEM_WIDTH):s.push(i)})),{newVisibleItems:a,newHiddenItems:s}}function swapItems(e,t,n){const a=e[e.length-1];a&&(e[e.length-1]=t[n],t[n]=a)}exports.LanguageList=(0,react_1.memo)(LanguageListComponent);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LanguageList=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),LanguageDropdown_1=require("./LanguageDropdown"),app_1=require("../../jotai/app"),styled_1=require("./styled"),LanguageItem_1=require("./LanguageItem"),constants_1=require("./constants"),LanguageListSkeleton_1=require("../common/Skeleton/LanguageListSkeleton"),hooks_1=require("../../hooks");function LanguageListComponent({languages:e,activeLanguage:t}){const[n,s]=(0,react_1.useState)([]),[a,i]=(0,react_1.useState)([]),r=(0,hooks_1.useOtelTelemetry)(),o=(0,react_1.useRef)(null),u=(0,jotai_1.useAtomValue)(app_1.layoutAtom),g=(0,jotai_1.useSetAtom)(app_1.languageAtom),l=e=>{r.send("openapi_docs.select_language.clicked",{language:e})},_=(0,react_1.useCallback)((()=>{var n;const a=null===(n=null==o?void 0:o.current)||void 0===n?void 0:n.offsetWidth;if(!a)return;const{newVisibleItems:r,newHiddenItems:u}=calculateVisibleAndHiddenItems(a,[...e]),g=u.findIndex((e=>e.key===t));-1!==g&&swapItems(r,u,g),s(r),i(u)}),[t,e]);(0,react_1.useLayoutEffect)((()=>(_(),window.addEventListener("resize",_),()=>{window.removeEventListener("resize",_)})),[u,t]);const c=(0,react_1.useMemo)((()=>n.length>=5||a.length?"space-between":"start"),[a.length,n.length]);return(0,jsx_runtime_1.jsxs)(styled_1.Container,{ref:o,children:[(0,jsx_runtime_1.jsxs)(styled_1.LanguageListContainer,{$justifyContent:c,children:[!n.length&&(0,jsx_runtime_1.jsx)(LanguageListSkeleton_1.LanguageListSkeleton,{}),n.map((e=>(0,jsx_runtime_1.jsx)(styled_1.LanguageListItem,{onClick:()=>{return t=e.key,g(t),void l(t);var t},active:t===e.key,children:(0,jsx_runtime_1.jsx)(LanguageItem_1.LanguageItem,{item:e,withIcon:!0})},e.key)))]}),a.length?(0,jsx_runtime_1.jsx)(LanguageDropdown_1.LanguageDropdown,{activeTab:t,samples:a,onChange:e=>{const t=a.findIndex((t=>t.key===e));if(-1!==t){const r=[...a],o=[...n];swapItems(o,r,t),s(o),i(r),l(e),g(e)}},trigger:(0,jsx_runtime_1.jsx)(theme_1.Button,{icon:(0,jsx_runtime_1.jsx)(theme_1.OverflowMenuVerticalIcon,{}),variant:"text",style:{height:"100%"}}),withArrow:!1,withCheckmark:!1,width:156}):null]})}function calculateVisibleAndHiddenItems(e,t){let n=0;const s=[],a=[];return t.forEach(((i,r)=>{const o=r===t.length-1&&0===a.length?0:constants_1.DROPDOWN_TRIGGER_WIDTH;e&&n+constants_1.ITEM_WIDTH+o<=e?(s.push(i),n+=constants_1.ITEM_WIDTH):a.push(i)})),{newVisibleItems:s,newHiddenItems:a}}function swapItems(e,t,n){const s=e[e.length-1];s&&(e[e.length-1]=t[n],t[n]=s)}exports.LanguageList=(0,react_1.memo)(LanguageListComponent);
2
2
  //# sourceMappingURL=LanguageList.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Overview=Overview;const jsx_runtime_1=require("react/jsx-runtime"),theme_1=require("@redocly/theme"),PanelItem_1=require("../PanelItem");function Overview({info:e,translate:t}){const n=e.contact&&e.contact.url&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:t("openapi.info.contact.url","URL")}),title:(0,jsx_runtime_1.jsx)("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.contact.url},"NewTabButton")]})||null,r=e.contact&&e.contact.email&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:e.contact.name||t("openapi.info.contact.name","E-mail")}),title:(0,jsx_runtime_1.jsx)("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[(0,jsx_runtime_1.jsx)(theme_1.CopyButton,{data:e.contact.email},"CopyButton"),(0,jsx_runtime_1.jsx)(theme_1.EmailButton,{data:e.contact.email},"EmailButton")]})||null,i=e.license&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:t("openapi.info.license","License")}),title:e.license.identifier?e.license.identifier:(0,jsx_runtime_1.jsx)("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.license.url||""},"NewTabButton")]})||null,a=e.termsOfService&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{title:(0,jsx_runtime_1.jsx)("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:t("openapi.info.termsOfService","Terms of Service")}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.termsOfService},e.termsOfService)]})||null;return(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:(0,jsx_runtime_1.jsxs)(PanelItem_1.PanelItemsList,{children:[n,r,i,a]})})}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Overview=Overview;const jsx_runtime_1=require("react/jsx-runtime"),theme_1=require("@redocly/theme"),PanelItem_1=require("../PanelItem");function Overview({info:e,translate:t}){var n;const r=e.contact&&e.contact.url&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:t("openapi.info.contact.url","URL")}),title:(0,jsx_runtime_1.jsx)("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.contact.url},"NewTabButton")]})||null,i=e.contact&&e.contact.email&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:e.contact.name||t("openapi.info.contact.name","E-mail")}),title:(0,jsx_runtime_1.jsx)("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[(0,jsx_runtime_1.jsx)(theme_1.CopyButton,{data:e.contact.email},"CopyButton"),(0,jsx_runtime_1.jsx)(theme_1.EmailButton,{data:e.contact.email},"EmailButton")]})||null,a=e.license&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:t("openapi.info.license","License")}),title:e.license.identifier?e.license.identifier:(0,jsx_runtime_1.jsx)("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.license.url||""},"NewTabButton")]})||null,l=e.termsOfService&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{title:(0,jsx_runtime_1.jsx)("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:t("openapi.info.termsOfService","Terms of Service")}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.termsOfService},e.termsOfService)]})||null,s=(null===(n=e["x-links"])||void 0===n?void 0:n.map((e=>(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:e.name}),title:(0,jsx_runtime_1.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",children:e.url}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.url},"NewTabButton")]},e.url))))||null;return(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:(0,jsx_runtime_1.jsxs)(PanelItem_1.PanelItemsList,{children:[r,i,a,l,s]})})}
2
2
  //# sourceMappingURL=Overview.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RedoclyOpenAPIDocs=RedoclyOpenAPIDocs,exports.RedoclyOpenAPIDocsStandalone=RedoclyOpenAPIDocsStandalone;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),Providers_1=require("./Providers"),Overlay_1=require("../Overlay"),styled_1=require("./styled"),StickySidebar_1=require("../StickySidebar"),SideMenu_1=require("../SideMenu"),Content_1=require("../Content"),hooks_1=require("../../hooks"),withRouter_1=require("../../hoc/withRouter"),withStore_1=require("../../hoc/withStore"),utils_1=require("../../utils"),useLicense_1=require("../../hooks/useLicense"),replay_1=require("../../jotai/replay"),RedoclyOpenAPIDocsComponent=(0,utils_1.compose)(withRouter_1.withRouter,withStore_1.withStore,react_1.memo)((({licenseKey:e,onLoaded:i,children:o,options:t,layout:n,collapsedSidebar:r,parser:s,withCommonStyles:l})=>{var a,d,u,c,_;const m=(0,react_1.useRef)(null),{isValid:p,licenseInfo:h}=(0,useLicense_1.useLicense)(e),v=(0,jotai_1.useSetAtom)(replay_1.allOperationsAtom);(0,hooks_1.useUppercase2LowercaseRedirect)();const{contentItems:y,flatItems:j}=(0,hooks_1.useContentItems)({parser:s,options:t});(0,theme_1.useMount)((()=>{if(null==i||i(),!t.hideReplay){const e=j.filter((e=>"operation"===e.type));v(e)}}));const{hideSidebar:x,scrollYOffset:S}=t||{},f=null===(d=null===(a=s.definition)||void 0===a?void 0:a.info)||void 0===d?void 0:d["x-logo"];return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[l&&(0,jsx_runtime_1.jsx)(theme_1.GlobalStyle,{}),(0,jsx_runtime_1.jsxs)(styled_1.RedocWrap,{className:"redoc-wrap",ref:m,children:[!p&&(0,jsx_runtime_1.jsx)(Overlay_1.Overlay,{licenseInfo:h}),!x&&(0,jsx_runtime_1.jsxs)(StickySidebar_1.StickyResponsiveSidebar,{scrollYOffset:S,className:"menu-content",collapsedSidebar:!r,children:[(0,jsx_runtime_1.jsx)(theme_1.SidebarLogo,{imageUrl:null==f?void 0:f.url,href:(null==f?void 0:f.href)||(null===(_=null===(c=null===(u=s.definition)||void 0===u?void 0:u.info)||void 0===c?void 0:c.contact)||void 0===_?void 0:_.url),altText:null==f?void 0:f.altText,backgroundColor:null==f?void 0:f.backgroundColor}),(0,jsx_runtime_1.jsx)(SideMenu_1.SideMenu,{items:p?y:[]})]}),(0,jsx_runtime_1.jsxs)(theme_1.ThreePanelLayout,{className:"api-content",id:"api-content",layout:n===theme_1.LayoutVariant.THREE_PANEL?theme_1.LayoutVariant.THREE_PANEL:theme_1.LayoutVariant.STACKED,collapsedSidebar:r,children:[(0,jsx_runtime_1.jsx)(Content_1.Content,{items:p?y:[],routingBasePath:t.routingBasePath}),o]})]})]})}));function RedoclyOpenAPIDocs({onLoaded:e,children:i,store:o,withCommonStyles:t}){var n,r,s;return(null==o?void 0:o.definition)?(0,jsx_runtime_1.jsx)(Providers_1.StoreProvider,Object.assign({},o,{children:(0,jsx_runtime_1.jsx)(RedoclyOpenAPIDocsComponent,{onLoaded:e,basePath:null===(n=o.options)||void 0===n?void 0:n.routingBasePath,licenseKey:null===(r=o.options)||void 0===r?void 0:r.licenseKey,disableRouter:null===(s=o.options)||void 0===s?void 0:s.disableRouter,withCommonStyles:t,children:i})})):null}function RedoclyOpenAPIDocsStandalone({definition:e,definitionUrl:i,options:o={},activeItemId:t,activeSampleLanguage:n,activeDeepLink:r}){return(0,jsx_runtime_1.jsx)(Providers_1.AppProvider,{definition:e,definitionUrl:i,options:o,activeItemId:t,activeSampleLanguage:n,activeDeepLink:r,children:(0,jsx_runtime_1.jsx)(RedoclyOpenAPIDocs,{withCommonStyles:!0})})}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RedoclyOpenAPIDocs=RedoclyOpenAPIDocs,exports.RedoclyOpenAPIDocsStandalone=RedoclyOpenAPIDocsStandalone;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),Providers_1=require("./Providers"),Overlay_1=require("../Overlay"),styled_1=require("./styled"),StickySidebar_1=require("../StickySidebar"),SideMenu_1=require("../SideMenu"),Content_1=require("../Content"),hooks_1=require("../../hooks"),withRouter_1=require("../../hoc/withRouter"),withStore_1=require("../../hoc/withStore"),utils_1=require("../../utils"),useLicense_1=require("../../hooks/useLicense"),replay_1=require("../../jotai/replay"),RedoclyOpenAPIDocsComponent=(0,utils_1.compose)(withRouter_1.withRouter,withStore_1.withStore,react_1.memo)((({licenseKey:e,onLoaded:o,children:t,options:i,layout:n,collapsedSidebar:r,parser:s,withCommonStyles:l})=>{var a,d,u,c,_;const m=(0,react_1.useRef)(null),{isValid:p,licenseInfo:h}=(0,useLicense_1.useLicense)(e),y=(0,jotai_1.useSetAtom)(replay_1.allOperationsAtom),v=(0,hooks_1.useOtelTelemetry)();(0,hooks_1.useUppercase2LowercaseRedirect)();const{contentItems:j,flatItems:x}=(0,hooks_1.useContentItems)({parser:s,options:i});(0,hooks_1.usePerformanceMetrics)({sendTelemetry:e=>{const o=Object.fromEntries(Object.entries(e).map((([e,o])=>[e.toLowerCase(),o])));v.send("openapi_docs.performance_metrics",o)}}),(0,theme_1.useMount)((()=>{if(null==o||o(),v.send("openapi_docs.viewed",{layout:n}),!i.hideReplay){const e=x.filter((e=>"operation"===e.type));y(e)}}));const{hideSidebar:S,scrollYOffset:f}=i||{},P=null===(d=null===(a=s.definition)||void 0===a?void 0:a.info)||void 0===d?void 0:d["x-logo"];return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[l&&(0,jsx_runtime_1.jsx)(theme_1.GlobalStyle,{}),(0,jsx_runtime_1.jsxs)(styled_1.RedocWrap,{className:"redoc-wrap",ref:m,children:[!p&&(0,jsx_runtime_1.jsx)(Overlay_1.Overlay,{licenseInfo:h}),!S&&(0,jsx_runtime_1.jsxs)(StickySidebar_1.StickyResponsiveSidebar,{scrollYOffset:f,className:"menu-content",collapsedSidebar:!r,children:[(0,jsx_runtime_1.jsx)(theme_1.SidebarLogo,{imageUrl:null==P?void 0:P.url,href:(null==P?void 0:P.href)||(null===(_=null===(c=null===(u=s.definition)||void 0===u?void 0:u.info)||void 0===c?void 0:c.contact)||void 0===_?void 0:_.url),altText:null==P?void 0:P.altText,backgroundColor:null==P?void 0:P.backgroundColor}),(0,jsx_runtime_1.jsx)(SideMenu_1.SideMenu,{items:p?j:[]})]}),(0,jsx_runtime_1.jsxs)(theme_1.ThreePanelLayout,{className:"api-content",id:"api-content",layout:n===theme_1.LayoutVariant.THREE_PANEL?theme_1.LayoutVariant.THREE_PANEL:theme_1.LayoutVariant.STACKED,collapsedSidebar:r,children:[(0,jsx_runtime_1.jsx)(Content_1.Content,{items:p?j:[],routingBasePath:i.routingBasePath}),t]})]})]})}));function RedoclyOpenAPIDocs({onLoaded:e,children:o,store:t,withCommonStyles:i}){var n,r,s;return(null==t?void 0:t.definition)?(0,jsx_runtime_1.jsx)(Providers_1.StoreProvider,Object.assign({},t,{children:(0,jsx_runtime_1.jsx)(RedoclyOpenAPIDocsComponent,{onLoaded:e,basePath:null===(n=t.options)||void 0===n?void 0:n.routingBasePath,licenseKey:null===(r=t.options)||void 0===r?void 0:r.licenseKey,disableRouter:null===(s=t.options)||void 0===s?void 0:s.disableRouter,withCommonStyles:i,children:o})})):null}function RedoclyOpenAPIDocsStandalone({definition:e,definitionUrl:o,options:t={},activeItemId:i,activeSampleLanguage:n,activeDeepLink:r}){return(0,jsx_runtime_1.jsx)(Providers_1.AppProvider,{definition:e,definitionUrl:o,options:t,activeItemId:i,activeSampleLanguage:n,activeDeepLink:r,children:(0,jsx_runtime_1.jsx)(RedoclyOpenAPIDocs,{withCommonStyles:!0})})}
2
2
  //# sourceMappingURL=RedoclyOpenAPIDocs.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(n,i){function a(e){try{u(o.next(e))}catch(e){i(e)}}function s(e){try{u(o.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((o=o.apply(e,t||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Replay=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),deepmerge_1=__importDefault(require("deepmerge")),ReplayOverlay=(0,react_1.lazy)((()=>__awaiter(void 0,void 0,void 0,(function*(){return Promise.resolve().then((()=>__importStar(require("@redocly/replay")))).then((e=>({default:e.ReplayOverlay})))})))),store_1=require("../../jotai/store"),replay_1=require("../../jotai/replay"),operation_1=require("../../jotai/operation"),constants_1=require("../../constants"),app_1=require("../../jotai/app"),utils_1=require("./utils"),hooks_1=require("../../hooks"),utils_2=require("../../utils");function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:r}){var o,n;const i=(0,hooks_1.useTranslate)(),a=(0,react_1.useRef)(null),{mockServer:s,oAuth2RedirectURI:u,routingBasePath:l}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),_=(0,jotai_1.useAtomValue)(replay_1.allOperationsAtom),{parser:c}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),[p,d]=(0,react_1.useState)(!1),[m,f]=(0,jotai_1.useAtom)(replay_1.replayStateAtom),[h,j]=(0,jotai_1.useAtom)(operation_1.allOperations),[[,y],v]=(0,jotai_1.useAtom)(app_1.environmentAtom);(0,theme_1.useFocusTrap)(a),(0,theme_1.useModalScrollLock)(p);const O=(0,react_1.useCallback)((({operations:e,environment:t,environments:r})=>{const o=e.reduce(((e,t)=>{t.requestValues.body=t.requestValues.body instanceof URLSearchParams?Object.fromEntries(t.requestValues.body.entries()):t.requestValues.body;const{path:r,method:o}=t.sourcePath,n=utils_2.JsonPointer.compile(["paths",r,o]);return e[n]=(0,deepmerge_1.default)((0,operation_1.getDefaultOperationStore)(n),t),e}),{});j(Object.assign(Object.assign({},h),o)),v({environment:t,environments:r})}),[h,j,v]),A=()=>{m!==constants_1.LOADING_STATE.LOADING&&d(!p),m===constants_1.LOADING_STATE.NOT_LOADED&&f(constants_1.LOADING_STATE.LOADING)},x=(0,react_1.useCallback)((e=>{if(!e)return;const t=_.find((t=>t.operationId===e));return l+(null==t?void 0:t.href)}),[_,l]);return r?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(theme_1.Button,{onClick:A,variant:"primary",iconPosition:"left",icon:m===constants_1.LOADING_STATE.LOADING?(0,jsx_runtime_1.jsx)(theme_1.CircleDashIcon,{}):(0,jsx_runtime_1.jsx)(theme_1.RocketIcon,{}),children:m===constants_1.LOADING_STATE.LOADING?i("openapi.loading","Loading..."):i("openapi.tryIt","Try it")}),p&&(0,jsx_runtime_1.jsx)(react_1.Suspense,{children:(0,jsx_runtime_1.jsx)(theme_1.Portal,{mountId:"api-content",children:(0,jsx_runtime_1.jsx)("div",{ref:a,children:(0,jsx_runtime_1.jsx)(ReplayOverlay,{activeOperationId:e.operationId||e.pointer,source:{data:r,type:"openapi"},onRequestChange:O,onClose:A,onLoad:()=>f(constants_1.LOADING_STATE.LOADED),settings:{corsProxyUrl:t,mockServer:s,environment:y,apiId:null===(n=null===(o=null==c?void 0:c.definition.info)||void 0===o?void 0:o["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:u,disableCollectionsTab:!0,disableWorkflowTab:!0,storageKey:l,convertOperationToReplayValue:utils_1.convertOperationToReplayValueForRedoc,getOperationUrl:x}})})})})]}):null}exports.Replay=(0,react_1.memo)(ReplayComponent);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__awaiter=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(n,i){function a(e){try{u(o.next(e))}catch(e){i(e)}}function s(e){try{u(o.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((o=o.apply(e,t||[])).next())}))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Replay=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),deepmerge_1=__importDefault(require("deepmerge")),ReplayOverlay=(0,react_1.lazy)((()=>__awaiter(void 0,void 0,void 0,(function*(){return Promise.resolve().then((()=>__importStar(require("@redocly/replay")))).then((e=>({default:e.ReplayOverlay})))})))),store_1=require("../../jotai/store"),replay_1=require("../../jotai/replay"),operation_1=require("../../jotai/operation"),constants_1=require("../../constants"),app_1=require("../../jotai/app"),utils_1=require("./utils"),hooks_1=require("../../hooks"),utils_2=require("../../utils");function ReplayComponent({operation:e,corsProxyUrl:t,fullOpenApi:r}){var o,n;const i=(0,hooks_1.useTranslate)(),a=(0,hooks_1.useOtelTelemetry)(),s=(0,react_1.useRef)(null),{mockServer:u,oAuth2RedirectURI:l,routingBasePath:_}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),c=(0,jotai_1.useAtomValue)(replay_1.allOperationsAtom),{parser:p}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),[d,m]=(0,react_1.useState)(!1),[f,h]=(0,jotai_1.useAtom)(replay_1.replayStateAtom),[y,j]=(0,jotai_1.useAtom)(operation_1.allOperations),[[,v],O]=(0,jotai_1.useAtom)(app_1.environmentAtom);(0,theme_1.useFocusTrap)(s),(0,theme_1.useModalScrollLock)(d);const A=(0,react_1.useCallback)((({operations:e,environment:t,environments:r})=>{const o=e.reduce(((e,t)=>{t.requestValues.body=t.requestValues.body instanceof URLSearchParams?Object.fromEntries(t.requestValues.body.entries()):t.requestValues.body;const{path:r,method:o}=t.sourcePath,n=utils_2.JsonPointer.compile(["paths",r,o]);return e[n]=(0,deepmerge_1.default)((0,operation_1.getDefaultOperationStore)(n),t),e}),{});j(Object.assign(Object.assign({},y),o)),O({environment:t,environments:r})}),[y,j,O]),x=()=>{f!==constants_1.LOADING_STATE.LOADING&&(d||a.send("openapi_docs.try_it.opened",{}),m(!d)),f===constants_1.LOADING_STATE.NOT_LOADED&&h(constants_1.LOADING_STATE.LOADING)},b=(0,react_1.useCallback)((e=>{if(!e)return;const t=c.find((t=>t.operationId===e));return _+(null==t?void 0:t.href)}),[c,_]);return r?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(theme_1.Button,{onClick:x,variant:"primary",iconPosition:"left",icon:f===constants_1.LOADING_STATE.LOADING?(0,jsx_runtime_1.jsx)(theme_1.CircleDashIcon,{}):(0,jsx_runtime_1.jsx)(theme_1.RocketIcon,{}),children:f===constants_1.LOADING_STATE.LOADING?i("openapi.loading","Loading..."):i("openapi.tryIt","Try it")}),d&&(0,jsx_runtime_1.jsx)(react_1.Suspense,{children:(0,jsx_runtime_1.jsx)(theme_1.Portal,{mountId:"api-content",children:(0,jsx_runtime_1.jsx)("div",{ref:s,children:(0,jsx_runtime_1.jsx)(ReplayOverlay,{activeOperationId:e.operationId||e.pointer,source:{data:r,type:"openapi"},onRequestChange:A,onClose:x,onLoad:()=>h(constants_1.LOADING_STATE.LOADED),settings:{corsProxyUrl:t,mockServer:u,environment:v,apiId:null===(n=null===(o=null==p?void 0:p.definition.info)||void 0===o?void 0:o["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:l,disableCollectionsTab:!0,disableWorkflowTab:!0,storageKey:_,convertOperationToReplayValue:utils_1.convertOperationToReplayValueForRedoc,getOperationUrl:b}})})})})]}):null}exports.Replay=(0,react_1.memo)(ReplayComponent);
2
2
  //# sourceMappingURL=Replay.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Example=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),Samples_1=require("../Samples"),hooks_1=require("../../hooks"),operation_1=require("../../jotai/operation");function ExampleComponent({mediaType:e,mediaContent:t,renderSample:r}){const a=e.operation.pointer,[o,i]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(a)),n=e.examples||{},s=Object.keys(n),m=(0,hooks_1.useActivateExample)(t),{exampleKey:p}=(0,Samples_1.useExampleKey)(e.operation,n);if(!s.length||1===s.length)return r();return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Samples_1.ExampleSwitch,{examples:n,exampleKey:p,onChange:e=>{i(Object.assign(Object.assign({},o),{activeExampleName:e,activeOneOf:{[a]:s.indexOf(e)},requestValues:{body:null}})),m(e)}}),r(p)]})}exports.Example=(0,react_1.memo)(ExampleComponent);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Example=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),Samples_1=require("../Samples"),hooks_1=require("../../hooks"),operation_1=require("../../jotai/operation");function ExampleComponent({mediaType:e,mediaContent:t,renderSample:a}){const o=(0,hooks_1.useOtelTelemetry)(),r=e.operation.pointer,[s,n]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(r)),i=e.examples||{},m=Object.keys(i),p=(0,hooks_1.useActivateExample)(t),{exampleKey:l}=(0,Samples_1.useExampleKey)(e.operation,i);if(!m.length||1===m.length)return a();return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Samples_1.ExampleSwitch,{examples:i,exampleKey:l,onChange:e=>{o.send("openapi_docs.examples_switcher.clicked",{example:e,number_of_examples:m.length}),n(Object.assign(Object.assign({},s),{activeExampleName:e,activeOneOf:{[r]:m.indexOf(e)},requestValues:{body:null}})),p(e)}}),a(l)]})}exports.Example=(0,react_1.memo)(ExampleComponent);
2
2
  //# sourceMappingURL=Example.js.map
@@ -1,4 +1,4 @@
1
- "use strict";var __rest=this&&this.__rest||function(e,r){var a={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&r.indexOf(o)<0&&(a[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var t=0;for(o=Object.getOwnPropertySymbols(e);t<o.length;t++)r.indexOf(o[t])<0&&Object.prototype.propertyIsEnumerable.call(e,o[t])&&(a[o[t]]=e[o[t]])}return a},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),PayloadSamples_1=require("../PayloadSamples"),CodeSample_1=require("./CodeSample"),useCodeSamples_1=require("./useCodeSamples"),models_1=require("../../models"),events_1=require("../../events"),store_1=require("../../jotai/store"),ServerListDropdown_1=require("../ServerListDropdown"),Language_1=require("../Language"),app_1=require("../../jotai/app"),Replay_1=require("../Replay"),common_1=require("../common"),hooks_1=require("../../hooks");function RequestSamplesComponent(e){var{operation:r,disableFooter:a}=e,o=__rest(e,["operation","disableFooter"]);const[{activeLanguage:t,languages:s},n]=(0,jotai_1.useAtom)(app_1.languageAtom),{samples:l}=(0,useCodeSamples_1.useCodeSamples)(r),{parser:i,options:{events:p,corsProxyUrl:d,hideReplay:u}}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),_=!(a||r.isWebhook||u||r.hideReplay),m=!!(null==s?void 0:s.length),c=(0,hooks_1.useActiveWithFallback)(l,t),y=(0,react_1.useCallback)((({lang:e,title:a})=>()=>{var o;const t=(0,events_1.createCodeSampleCopyEvent)({operation:r,label:a,lang:e,type:"request"});null===(o=null==p?void 0:p.codeSamplesCopy)||void 0===o||o.call(p,t)}),[r,p]),x=()=>(0,jsx_runtime_1.jsxs)(StyledPanelHeader,{isExpandable:!1,withReplay:!m&&_,children:[(0,jsx_runtime_1.jsx)(StyledServerListDropdown,{operation:r}),m&&(0,jsx_runtime_1.jsx)(Language_1.LanguageDropdown,{activeTab:c,samples:l,onChange:n}),!m&&_&&(0,jsx_runtime_1.jsx)(Replay_1.Replay,{operation:r,corsProxyUrl:d,fullOpenApi:i.definition})]}),g=(0,react_1.useMemo)((()=>{if(_&&m)return(0,jsx_runtime_1.jsx)(ReplayWrapper,{children:(0,jsx_runtime_1.jsx)(Replay_1.Replay,{operation:r,corsProxyUrl:d,fullOpenApi:i.definition})})}),[_,m,r,d,i.definition]),j=(0,react_1.useMemo)((()=>l.map((e=>e.key===c?(0,jsx_runtime_1.jsx)("div",{children:(0,models_1.isPayloadSample)(e)?(0,jsx_runtime_1.jsx)(PayloadSamples_1.PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:y(e)},o)):(0,jsx_runtime_1.jsx)(CodeSample_1.CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:r,onCopyClick:y(e)},o))},e.key+r.id):null))),[c,y,r,o,l]);return s&&!l.length?(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-request-samples",header:x,isExpandable:!1,expanded:!1}):l.length?(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-request-samples",header:x,footer:g,isExpandable:!1,children:j}):null}exports.RequestSamples=(0,react_1.memo)(RequestSamplesComponent);const StyledPanelHeader=(0,styled_components_1.default)(theme_1.PanelHeader)`
1
+ "use strict";var __rest=this&&this.__rest||function(e,a){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&a.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var t=0;for(r=Object.getOwnPropertySymbols(e);t<r.length;t++)a.indexOf(r[t])<0&&Object.prototype.propertyIsEnumerable.call(e,r[t])&&(o[r[t]]=e[r[t]])}return o},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),PayloadSamples_1=require("../PayloadSamples"),CodeSample_1=require("./CodeSample"),useCodeSamples_1=require("./useCodeSamples"),models_1=require("../../models"),events_1=require("../../events"),store_1=require("../../jotai/store"),ServerListDropdown_1=require("../ServerListDropdown"),Language_1=require("../Language"),app_1=require("../../jotai/app"),Replay_1=require("../Replay"),common_1=require("../common"),hooks_1=require("../../hooks");function RequestSamplesComponent(e){var{operation:a,disableFooter:o}=e,r=__rest(e,["operation","disableFooter"]);const t=(0,hooks_1.useOtelTelemetry)(),[{activeLanguage:s,languages:n},l]=(0,jotai_1.useAtom)(app_1.languageAtom),{samples:i}=(0,useCodeSamples_1.useCodeSamples)(a),{parser:p,options:{events:d,corsProxyUrl:u,hideReplay:_}}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),m=!(o||a.isWebhook||_||a.hideReplay),c=!!(null==n?void 0:n.length),y=(0,hooks_1.useActiveWithFallback)(i,s),g=e=>{l(e),t.send("openapi_docs.select_language.clicked",{language:e})},x=(0,react_1.useCallback)((({lang:e,title:o})=>()=>{var r;const s=(0,events_1.createCodeSampleCopyEvent)({operation:a,label:o,lang:e,type:"request"});t.send("openapi_docs.copy_code_snippet.clicked",{language:e,type:"request"}),null===(r=null==d?void 0:d.codeSamplesCopy)||void 0===r||r.call(d,s)}),[a,t,d]),j=()=>(0,jsx_runtime_1.jsxs)(StyledPanelHeader,{isExpandable:!1,withReplay:!c&&m,children:[(0,jsx_runtime_1.jsx)(StyledServerListDropdown,{operation:a}),c&&(0,jsx_runtime_1.jsx)(Language_1.LanguageDropdown,{activeTab:y,samples:i,onChange:g}),!c&&m&&(0,jsx_runtime_1.jsx)(Replay_1.Replay,{operation:a,corsProxyUrl:u,fullOpenApi:p.definition})]}),v=(0,react_1.useMemo)((()=>{if(m&&c)return(0,jsx_runtime_1.jsx)(ReplayWrapper,{children:(0,jsx_runtime_1.jsx)(Replay_1.Replay,{operation:a,corsProxyUrl:u,fullOpenApi:p.definition})})}),[m,c,a,u,p.definition]),S=(0,react_1.useMemo)((()=>i.map((e=>e.key===y?(0,jsx_runtime_1.jsx)("div",{children:(0,models_1.isPayloadSample)(e)?(0,jsx_runtime_1.jsx)(PayloadSamples_1.PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:x(e)},r)):(0,jsx_runtime_1.jsx)(CodeSample_1.CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:a,onCopyClick:x(e)},r))},e.key+a.id):null))),[y,x,a,r,i]);return n&&!i.length?(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-request-samples",header:j,isExpandable:!1,expanded:!1}):i.length?(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-request-samples",header:j,footer:v,isExpandable:!1,children:S}):null}exports.RequestSamples=(0,react_1.memo)(RequestSamplesComponent);const StyledPanelHeader=(0,styled_components_1.default)(theme_1.PanelHeader)`
2
2
  flex-wrap: nowrap;
3
3
  ${({withReplay:e})=>e&&"padding: var(--spacing-xs) var(--spacing-sm);"}
4
4
  `,StyledServerListDropdown=(0,styled_components_1.default)(ServerListDropdown_1.ServerListDropdown)`
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResponseSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),PayloadSamples_1=require("../PayloadSamples"),events_1=require("../../events"),store_1=require("../../jotai/store"),Summary_1=require("./Summary"),Tabs_1=require("../Tabs"),common_1=require("../common"),hooks_1=require("../../hooks");function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:s}){const{events:n}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),a=(0,hooks_1.useTranslate)(),r=e.responses.filter((e=>{var o,s;return null!==(s=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==s&&s})),t=e.responses.map((({code:e})=>({key:e,title:e}))),l=(null==t?void 0:t.find((({key:e})=>e===o)))||(null==t?void 0:t[0]),i=(0,react_1.useCallback)((()=>{var o;const s=(0,events_1.createCodeSampleCopyEvent)({operation:e,type:"response"});null===(o=null==n?void 0:n.codeSamplesCopy)||void 0===o||o.call(n,s)}),[e,n]);if(!r.length)return null;return(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-response-samples",header:()=>(0,jsx_runtime_1.jsx)(Summary_1.Summary,{tabs:(0,jsx_runtime_1.jsx)(Tabs_1.Tabs,{tabs:t,activeTab:l,onChange:e=>s(e.key)})}),isExpandable:!1,children:e.responses.map((e=>{var o;return e.code===l.key?(0,jsx_runtime_1.jsx)("div",{children:(null===(o=null==e?void 0:e.content)||void 0===o?void 0:o.hasSample)?(0,jsx_runtime_1.jsx)(PayloadSamples_1.PayloadSamples,{content:e.content,onCopyClick:i}):(0,jsx_runtime_1.jsx)(PayloadSamples_1.StyledCodeBlock,{source:a("openapi.noResponseContent","No content")})},e.code):null}))})}exports.ResponseSamples=(0,react_1.memo)(ResponseSamplesComponent);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResponseSamples=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),PayloadSamples_1=require("../PayloadSamples"),events_1=require("../../events"),store_1=require("../../jotai/store"),Summary_1=require("./Summary"),Tabs_1=require("../Tabs"),common_1=require("../common"),hooks_1=require("../../hooks");function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:s}){const n=(0,hooks_1.useOtelTelemetry)(),{events:a}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),t=(0,hooks_1.useTranslate)(),r=e.responses.filter((e=>{var o,s;return null!==(s=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==s&&s})),l=e.responses.map((({code:e})=>({key:e,title:e}))),i=(null==l?void 0:l.find((({key:e})=>e===o)))||(null==l?void 0:l[0]),p=(0,react_1.useCallback)((()=>{var o;n.send("openapi_docs.copy_code_snippet.clicked",{type:"response"});const s=(0,events_1.createCodeSampleCopyEvent)({operation:e,type:"response"});null===(o=null==a?void 0:a.codeSamplesCopy)||void 0===o||o.call(a,s)}),[n,e,a]);if(!r.length)return null;return(0,jsx_runtime_1.jsx)(common_1.CodeBlockPanel,{className:"panel-response-samples",header:()=>(0,jsx_runtime_1.jsx)(Summary_1.Summary,{tabs:(0,jsx_runtime_1.jsx)(Tabs_1.Tabs,{tabs:l,activeTab:i,onChange:e=>s(e.key)})}),isExpandable:!1,children:e.responses.map((e=>{var o;return e.code===i.key?(0,jsx_runtime_1.jsx)("div",{children:(null===(o=null==e?void 0:e.content)||void 0===o?void 0:o.hasSample)?(0,jsx_runtime_1.jsx)(PayloadSamples_1.PayloadSamples,{content:e.content,onCopyClick:p}):(0,jsx_runtime_1.jsx)(PayloadSamples_1.StyledCodeBlock,{source:t("openapi.noResponseContent","No content")})},e.code):null}))})}exports.ResponseSamples=(0,react_1.memo)(ResponseSamplesComponent);
2
2
  //# sourceMappingURL=ResponseSamples.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExampleSwitch=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),common_1=require("../common"),SelectOrLabel_1=require("../SelectOrLabel"),utils_1=require("../../utils"),ExampleSwitch=({exampleKey:e,examples:t,onChange:r})=>{var l;const a=Object.keys(t),i=e?a.indexOf(e):0,[c,n]=(0,react_1.useState)(i>-1?i:0);(0,react_1.useEffect)((()=>n(i>-1?i:0)),[e,i]);const o=a.map(((e,r)=>({value:(0,utils_1.normalizeText)(t[e].summary)||e,idx:r})));return o.length<2?null:(0,jsx_runtime_1.jsx)(common_1.Container,{"data-testid":"example-switch",children:(0,jsx_runtime_1.jsx)(SelectOrLabel_1.SelectOrLabel,{Select:common_1.Select,Label:common_1.MimeLabel,variant:"dark",fullWidth:!0,options:o,value:null===(l=o[c])||void 0===l?void 0:l.value,onChange:({idx:e})=>{n(e),r(a[e])}})})};exports.ExampleSwitch=ExampleSwitch;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExampleSwitch=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),common_1=require("../common"),SelectOrLabel_1=require("../SelectOrLabel"),utils_1=require("../../utils"),hooks_1=require("../../hooks"),ExampleSwitch=({exampleKey:e,examples:t,onChange:l})=>{var r;const a=(0,hooks_1.useOtelTelemetry)(),i=Object.keys(t),o=e?i.indexOf(e):0,[s,c]=(0,react_1.useState)(o>-1?o:0);(0,react_1.useEffect)((()=>c(o>-1?o:0)),[e,o]);const n=i.map(((e,l)=>({value:(0,utils_1.normalizeText)(t[e].summary)||e,idx:l})));return n.length<2?null:(0,jsx_runtime_1.jsx)(common_1.Container,{"data-testid":"example-switch",children:(0,jsx_runtime_1.jsx)(SelectOrLabel_1.SelectOrLabel,{Select:common_1.Select,Label:common_1.MimeLabel,variant:"dark",fullWidth:!0,options:n,value:null===(r=n[s])||void 0===r?void 0:r.value,onChange:({idx:e})=>{a.send("openapi_docs.examples_switcher.clicked",{example:i[e],number_of_examples:i.length}),c(e),l(i[e])}})})};exports.ExampleSwitch=ExampleSwitch;
2
2
  //# sourceMappingURL=ExampleSwitch.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ServerListDropdown=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),common_1=require("../common"),styled_1=require("./styled"),PanelItem_1=require("../PanelItem"),services_1=require("../../services"),utils_1=require("../../utils"),app_1=require("../../jotai/app"),hooks_1=require("../../hooks"),environments_1=require("../../utils/environments"),ServerListDropdown=({operation:e,className:r})=>{const[[t],s]=(0,jotai_1.useAtom)(app_1.environmentAtom),i=(0,hooks_1.useActiveWithFallback)(e.servers.map((e=>Object.assign(Object.assign({},e),{key:e.url}))),t.server),n=(0,react_1.useCallback)((e=>{e.stopPropagation()}),[]),o=(0,react_1.useCallback)((r=>()=>{1!==e.servers.length&&s({environment:(0,environments_1.getServerEnvName)(r)})}),[e.servers.length,s]),a=(0,react_1.useMemo)((()=>e.servers.map((r=>{const t=(0,services_1.joinWithSeparator)((0,utils_1.replaceVariables)(r),e.path);return(0,jsx_runtime_1.jsx)(styled_1.StyledDropdownMenuItem,{onAction:o(r),children:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:r.description,title:t,actions:[(0,jsx_runtime_1.jsx)(styled_1.StyledCopyButton,{data:t,toasterPlacement:"left",onCopyClick:n},t)],active:r.url===i,withCheckmark:!0})},t)}))),[e.servers,e.path,o,n,i]);return(0,jsx_runtime_1.jsx)(theme_1.Dropdown,{className:r,trigger:(0,jsx_runtime_1.jsxs)(styled_1.PathWrapper,{variant:"ghost",children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:e.httpVerb,children:e.httpVerb}),(0,jsx_runtime_1.jsx)(styled_1.Path,{children:e.path})]}),withArrow:!0,children:(0,jsx_runtime_1.jsx)(theme_1.DropdownMenu,{children:a})})};exports.ServerListDropdown=ServerListDropdown;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ServerListDropdown=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),jotai_1=require("jotai"),common_1=require("../common"),styled_1=require("./styled"),PanelItem_1=require("../PanelItem"),services_1=require("../../services"),utils_1=require("../../utils"),app_1=require("../../jotai/app"),hooks_1=require("../../hooks"),environments_1=require("../../utils/environments"),ServerListDropdown=({operation:e,className:r})=>{const t=(0,hooks_1.useOtelTelemetry)(),[[s],i]=(0,jotai_1.useAtom)(app_1.environmentAtom),n=(0,hooks_1.useActiveWithFallback)(e.servers.map((e=>Object.assign(Object.assign({},e),{key:e.url}))),s.server),o=(0,react_1.useCallback)((e=>{e.stopPropagation()}),[]),a=(0,react_1.useCallback)((r=>()=>{1!==e.servers.length&&(i({environment:(0,environments_1.getServerEnvName)(r)}),t.send("openapi_docs.switch_servers.clicked",{server:(0,environments_1.getServerEnvName)(r)}))}),[e.servers.length,i,t]),_=(0,react_1.useMemo)((()=>e.servers.map((r=>{const t=(0,services_1.joinWithSeparator)((0,utils_1.replaceVariables)(r),e.path);return(0,jsx_runtime_1.jsx)(styled_1.StyledDropdownMenuItem,{onAction:a(r),children:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:r.description,title:t,actions:[(0,jsx_runtime_1.jsx)(styled_1.StyledCopyButton,{data:t,toasterPlacement:"left",onCopyClick:o},t)],active:r.url===n,withCheckmark:!0})},t)}))),[e.servers,e.path,a,o,n]);return(0,jsx_runtime_1.jsx)(theme_1.Dropdown,{className:r,trigger:(0,jsx_runtime_1.jsxs)(styled_1.PathWrapper,{variant:"ghost",children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:e.httpVerb,children:e.httpVerb}),(0,jsx_runtime_1.jsx)(styled_1.Path,{children:e.path})]}),withArrow:!0,children:(0,jsx_runtime_1.jsx)(theme_1.DropdownMenu,{children:_})})};exports.ServerListDropdown=ServerListDropdown;
2
2
  //# sourceMappingURL=ServerListDropdown.js.map
@@ -4,3 +4,5 @@ export { useContentItems } from './useContentItems';
4
4
  export { useActiveWithFallback } from './useActiveWithFallback';
5
5
  export { useUppercase2LowercaseRedirect } from './useUppercase2LowercaseRedirect';
6
6
  export { useTranslate } from './useTranslate';
7
+ export { useOtelTelemetry } from './useOtelTelemetry';
8
+ export { usePerformanceMetrics } from './usePerformanceMetrics';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useTranslate=exports.useUppercase2LowercaseRedirect=exports.useActiveWithFallback=exports.useContentItems=exports.useRouter=exports.useActivateExample=void 0;var useActivateExample_1=require("./useActivateExample");Object.defineProperty(exports,"useActivateExample",{enumerable:!0,get:function(){return useActivateExample_1.useActivateExample}});var useRouter_1=require("./useRouter");Object.defineProperty(exports,"useRouter",{enumerable:!0,get:function(){return useRouter_1.useRouter}});var useContentItems_1=require("./useContentItems");Object.defineProperty(exports,"useContentItems",{enumerable:!0,get:function(){return useContentItems_1.useContentItems}});var useActiveWithFallback_1=require("./useActiveWithFallback");Object.defineProperty(exports,"useActiveWithFallback",{enumerable:!0,get:function(){return useActiveWithFallback_1.useActiveWithFallback}});var useUppercase2LowercaseRedirect_1=require("./useUppercase2LowercaseRedirect");Object.defineProperty(exports,"useUppercase2LowercaseRedirect",{enumerable:!0,get:function(){return useUppercase2LowercaseRedirect_1.useUppercase2LowercaseRedirect}});var useTranslate_1=require("./useTranslate");Object.defineProperty(exports,"useTranslate",{enumerable:!0,get:function(){return useTranslate_1.useTranslate}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.usePerformanceMetrics=exports.useOtelTelemetry=exports.useTranslate=exports.useUppercase2LowercaseRedirect=exports.useActiveWithFallback=exports.useContentItems=exports.useRouter=exports.useActivateExample=void 0;var useActivateExample_1=require("./useActivateExample");Object.defineProperty(exports,"useActivateExample",{enumerable:!0,get:function(){return useActivateExample_1.useActivateExample}});var useRouter_1=require("./useRouter");Object.defineProperty(exports,"useRouter",{enumerable:!0,get:function(){return useRouter_1.useRouter}});var useContentItems_1=require("./useContentItems");Object.defineProperty(exports,"useContentItems",{enumerable:!0,get:function(){return useContentItems_1.useContentItems}});var useActiveWithFallback_1=require("./useActiveWithFallback");Object.defineProperty(exports,"useActiveWithFallback",{enumerable:!0,get:function(){return useActiveWithFallback_1.useActiveWithFallback}});var useUppercase2LowercaseRedirect_1=require("./useUppercase2LowercaseRedirect");Object.defineProperty(exports,"useUppercase2LowercaseRedirect",{enumerable:!0,get:function(){return useUppercase2LowercaseRedirect_1.useUppercase2LowercaseRedirect}});var useTranslate_1=require("./useTranslate");Object.defineProperty(exports,"useTranslate",{enumerable:!0,get:function(){return useTranslate_1.useTranslate}});var useOtelTelemetry_1=require("./useOtelTelemetry");Object.defineProperty(exports,"useOtelTelemetry",{enumerable:!0,get:function(){return useOtelTelemetry_1.useOtelTelemetry}});var usePerformanceMetrics_1=require("./usePerformanceMetrics");Object.defineProperty(exports,"usePerformanceMetrics",{enumerable:!0,get:function(){return usePerformanceMetrics_1.usePerformanceMetrics}});
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ export declare function useOtelTelemetry(): {
2
+ send(action: "error" | "page.viewed" | "search.ai.query" | "search.query" | "search.result.clicked" | "openapi_docs.viewed" | "openapi_docs.performance_metrics" | "openapi_docs.download_definition.clicked" | "openapi_docs.select_language.clicked" | "openapi_docs.expand_collapse_all.clicked" | "openapi_docs.copy_code_snippet.clicked" | "openapi_docs.switch_servers.clicked" | "openapi_docs.examples_switcher.clicked" | "openapi_docs.try_it.opened", data: unknown): void;
3
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useOtelTelemetry=useOtelTelemetry;const theme_1=require("@redocly/theme");function useOtelTelemetry(){return(0,theme_1.useThemeHooks)().useOtelTelemetry()}
2
+ //# sourceMappingURL=useOtelTelemetry.js.map
@@ -0,0 +1,5 @@
1
+ type PerformanceMetricsProps = {
2
+ sendTelemetry: (data: Record<string, any>) => void;
3
+ };
4
+ export declare function usePerformanceMetrics({ sendTelemetry }: PerformanceMetricsProps): void;
5
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.usePerformanceMetrics=usePerformanceMetrics;const theme_1=require("@redocly/theme"),web_vitals_1=require("web-vitals");function usePerformanceMetrics({sendTelemetry:e}){(0,theme_1.useMount)((()=>{const t={},a=[new Promise((e=>(0,web_vitals_1.onCLS)((t=>e({name:"CLS",value:t.value}))))),new Promise((e=>(0,web_vitals_1.onLCP)((t=>e({name:"LCP",value:t.value}))))),new Promise((e=>(0,web_vitals_1.onFCP)((t=>e({name:"FCP",value:t.value}))))),new Promise((e=>(0,web_vitals_1.onTTFB)((t=>e({name:"TTFB",value:t.value})))))];Promise.allSettled(a).then((a=>{a.forEach((e=>{if("fulfilled"===e.status){const{name:a,value:s}=e.value;t[a]=Math.round(s)}})),e(t)}))}))}
2
+ //# sourceMappingURL=usePerformanceMetrics.js.map
@@ -91,6 +91,9 @@ export interface HooksConfig {
91
91
  AfterApiTitle?: HookConfig<{
92
92
  info: OpenAPIInfo;
93
93
  }>;
94
+ AfterOpenApiDescription?: HookConfig<{
95
+ info: OpenAPIInfo;
96
+ }>;
94
97
  BeforeOperation?: HookConfig<{
95
98
  operation: OperationModel;
96
99
  }>;
@@ -1,2 +1,2 @@
1
- import{jsxs as _jsxs,jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{AfterOpenApiTitle,LayoutVariant}from"@redocly/theme";import{layoutAtom}from"../../jotai/app";import{SamplesMiddlePanel,Row}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{ApiHeader}from"./styled";import{globalStoreAtom}from"../../jotai/store";import{saveTextBeforeHeading}from"../../utils/saveTextBeforeHeading";import{getValueFromMdParsedExtension}from"../../utils/helpers";import{RenderHook}from"../RenderHook";import{Metadata}from"./Metadata";import{useTranslate}from"../../hooks";export function ApiInfo({item:e}){const o=useTranslate(),{options:{unstable_hooks:t,hideInfoMetadata:r},parser:{definition:a}}=useAtomValue(globalStoreAtom),i=useAtomValue(layoutAtom),n=e.infoDefinition;if(!n)return null;const s=saveTextBeforeHeading(getValueFromMdParsedExtension(n,"description")||""),m=getValueFromMdParsedExtension(n,"summary")||void 0,l=null==a?void 0:a.externalDocs,d=n.version&&_jsxs("span",{children:["(",n.version,")"]})||null,p=i===LayoutVariant.STACKED;return _jsx(Row,{layout:i,children:_jsxs(SamplesMiddlePanel,{fullWidth:!0,className:"api-info",isStacked:p,children:[_jsxs(ApiHeader,{children:[n.title," ",d]}),_jsx(RenderHook,{Hook:AfterOpenApiTitle||(null==t?void 0:t.AfterApiTitle),props:{info:n}}),m&&_jsx(Markdown,{source:m,"data-role":"redoc-summary"}),s&&_jsx(Markdown,{source:s,"data-role":"redoc-description"}),l&&_jsx(ExternalDocumentation,{externalDocs:l}),!r&&_jsx(Metadata,{metadata:n["x-metadata"],translate:o})]})})}
1
+ import{jsxs as _jsxs,jsx as _jsx}from"react/jsx-runtime";import{useAtomValue}from"jotai";import{AfterOpenApiTitle,AfterOpenApiDescription,LayoutVariant}from"@redocly/theme";import{layoutAtom}from"../../jotai/app";import{SamplesMiddlePanel,Row}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{ApiHeader}from"./styled";import{globalStoreAtom}from"../../jotai/store";import{saveTextBeforeHeading}from"../../utils/saveTextBeforeHeading";import{getValueFromMdParsedExtension}from"../../utils/helpers";import{RenderHook}from"../RenderHook";import{Metadata}from"./Metadata";import{useTranslate}from"../../hooks";export function ApiInfo({item:e}){const o=useTranslate(),{options:{unstable_hooks:t,hideInfoMetadata:r},parser:{definition:a}}=useAtomValue(globalStoreAtom),i=useAtomValue(layoutAtom),n=e.infoDefinition;if(!n)return null;const s=saveTextBeforeHeading(getValueFromMdParsedExtension(n,"description")||""),l=getValueFromMdParsedExtension(n,"summary")||void 0,m=null==a?void 0:a.externalDocs,d=n.version&&_jsxs("span",{children:["(",n.version,")"]})||null,p=i===LayoutVariant.STACKED;return _jsx(Row,{layout:i,children:_jsxs(SamplesMiddlePanel,{fullWidth:!0,className:"api-info",isStacked:p,children:[_jsxs(ApiHeader,{children:[n.title," ",d]}),_jsx(RenderHook,{Hook:AfterOpenApiTitle||(null==t?void 0:t.AfterApiTitle),props:{info:n}}),l&&_jsx(Markdown,{source:l,"data-role":"redoc-summary"}),s&&_jsx(Markdown,{source:s,"data-role":"redoc-description"}),_jsx(RenderHook,{Hook:AfterOpenApiDescription||(null==t?void 0:t.AfterOpenApiDescription),props:{info:n}}),m&&_jsx(ExternalDocumentation,{externalDocs:m}),!r&&_jsx(Metadata,{metadata:n["x-metadata"],translate:o})]})})}
2
2
  //# sourceMappingURL=ApiInfo.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMemo}from"react";import{Markdown as MarkdownWrapper,H3,isNotNull}from"@redocly/theme";const FILTER_OUT_KEYS=["title","description"];function metadataMap([e,t]){return FILTER_OUT_KEYS.includes(e)?null:Array.isArray(t)?{key:e,value:t.filter((e=>"object"!=typeof e)).join(", ")}:"object"==typeof t?null:{key:e,value:t}}export function Metadata({metadata:e,translate:t}){const a=useMemo((()=>Object.entries(e||{}).map(metadataMap).filter(isNotNull)),[e]);return e?_jsxs(MarkdownWrapper,{children:[_jsx(H3,{children:t("openapi.info.metadata.title","Metadata")}),_jsxs("table",{className:"md",children:[_jsx("thead",{children:_jsxs("tr",{children:[_jsx("th",{scope:"col",children:t("openapi.key","Key")}),_jsx("th",{scope:"col",children:t("openapi.value","Value")})]})}),_jsx("tbody",{children:a.map((({key:e,value:t})=>_jsxs("tr",{children:[_jsx("td",{children:e}),_jsx("td",{children:`${t}`})]},e)))})]})]}):null}
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMemo}from"react";import{Markdown as MarkdownWrapper,H3,isNotNull}from"@redocly/theme";import{isAbsoluteUrl}from"../../utils/helpers";const FILTER_OUT_KEYS=["title","description"];function metadataMap([e,t]){return FILTER_OUT_KEYS.includes(e)?null:Array.isArray(t)?{key:e,value:t.filter((e=>"object"!=typeof e)).join(", ")}:"object"==typeof t?null:{key:e,value:t}}export function Metadata({metadata:e,translate:t}){const r=useMemo((()=>Object.entries(e||{}).map(metadataMap).filter(isNotNull)),[e]);return e?_jsxs(MarkdownWrapper,{children:[_jsx(H3,{children:t("openapi.info.metadata.title","Metadata")}),_jsxs("table",{className:"md",children:[_jsx("thead",{children:_jsxs("tr",{children:[_jsx("th",{scope:"col",children:t("openapi.key","Key")}),_jsx("th",{scope:"col",children:t("openapi.value","Value")})]})}),_jsx("tbody",{children:r.map((({key:e,value:t})=>_jsxs("tr",{children:[_jsx("td",{children:e}),_jsx("td",{children:"string"==typeof t&&isAbsoluteUrl(t)?_jsx("a",{href:t,target:"_blank",rel:"noreferrer",children:t}):String(t)})]},e)))})]})]}):null}
2
2
  //# sourceMappingURL=Metadata.js.map
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{DownloadIcon,DocumentIcon,JsonIcon,Button,FileIcon}from"@redocly/theme";import{useDownloadInfo}from"./useDownloadInfo";import{globalStoreAtom}from"../../jotai/store";function DownloadSpecificationComponent(){const{options:o}=useAtomValue(globalStoreAtom),e=useDownloadInfo({downloadUrls:o.downloadUrls}),t=useCallback((o=>{switch(o){case"yaml":return _jsx(DocumentIcon,{});case"json":return _jsx(JsonIcon,{});default:return _jsx(FileIcon,{})}}),[]);return e?_jsx(Wrapper,{children:(e||[]).map((({title:o,url:e,iconType:n})=>_jsxs(Card,{children:[_jsxs(FileName,{children:[t(n),_jsx("a",{href:e,target:"_blank",download:!0,rel:"noreferrer",children:o})]}),_jsx("a",{href:e,target:"_blank",download:!0,rel:"noreferrer",children:_jsx(Button,{variant:"text",size:"small",icon:_jsx(DownloadIcon,{})})})]},o)))}):_jsx(_Fragment,{})}export const DownloadSpecification=memo(DownloadSpecificationComponent);const Card=styled.div`
1
+ import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{DownloadIcon,DocumentIcon,JsonIcon,Button,FileIcon}from"@redocly/theme";import{useDownloadInfo}from"./useDownloadInfo";import{globalStoreAtom}from"../../jotai/store";import{useOtelTelemetry}from"../../hooks";function DownloadSpecificationComponent(){const o=useOtelTelemetry(),{options:e}=useAtomValue(globalStoreAtom),t=useDownloadInfo({downloadUrls:e.downloadUrls}),n=useCallback((o=>{switch(o){case"yaml":return _jsx(DocumentIcon,{});case"json":return _jsx(JsonIcon,{});default:return _jsx(FileIcon,{})}}),[]);return t?_jsx(Wrapper,{children:(t||[]).map((({title:e,url:t,iconType:r})=>_jsxs(Card,{onClick:()=>o.send("openapi_docs.download_definition.clicked",{}),children:[_jsxs(FileName,{children:[n(r),_jsx("a",{href:t,target:"_blank",download:!0,rel:"noreferrer",children:e})]}),_jsx("a",{href:t,target:"_blank",download:!0,rel:"noreferrer",children:_jsx(Button,{variant:"text",size:"small",icon:_jsx(DownloadIcon,{})})})]},e)))}):_jsx(_Fragment,{})}export const DownloadSpecification=memo(DownloadSpecificationComponent);const Card=styled.div`
2
2
  display: flex;
3
3
  align-items: baseline;
4
4
  justify-content: space-between;
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import styled from"styled-components";import{Button,MaximizeIcon}from"@redocly/theme";import{useAtom}from"jotai/index";import{operationStore}from"../../jotai/operation";import{useTranslate}from"../../hooks";export const ExpandAllButton=({operationPointer:o,type:t})=>{const e=useTranslate(),[n,l]=useAtom(operationStore(o));return _jsx(StyledButton,{icon:_jsx(MaximizeIcon,{}),iconPosition:"right",size:"small",variant:"ghost",onClick:()=>{const o=!n[t].expandedAll;l({[t]:{expandedAll:o}})},children:n[t].expandedAll?e("openapi.collapseAll","Collapse all"):e("openapi.expandAll","Expand all")})};const StyledButton=styled(Button)`
1
+ import{jsx as _jsx}from"react/jsx-runtime";import styled from"styled-components";import{Button,MaximizeIcon}from"@redocly/theme";import{useAtom}from"jotai/index";import{operationStore}from"../../jotai/operation";import{useOtelTelemetry,useTranslate}from"../../hooks";export const ExpandAllButton=({operationPointer:e,type:o})=>{const t=useTranslate(),[l,n]=useAtom(operationStore(e)),a=useOtelTelemetry();return _jsx(StyledButton,{icon:_jsx(MaximizeIcon,{}),iconPosition:"right",size:"small",variant:"ghost",onClick:()=>{const e=!l[o].expandedAll;a.send("openapi_docs.expand_collapse_all.clicked",{is_expanded:e}),n({[o]:{expandedAll:e}})},children:l[o].expandedAll?t("openapi.collapseAll","Collapse all"):t("openapi.expandAll","Expand all")})};const StyledButton=styled(Button)`
2
2
  margin-left: auto;
3
3
  `;
4
4
  //# sourceMappingURL=ExpandAllButton.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useLayoutEffect,useRef,useState,useCallback,memo,useMemo}from"react";import{useAtomValue,useSetAtom}from"jotai";import{Button,OverflowMenuVerticalIcon}from"@redocly/theme";import{LanguageDropdown}from"./LanguageDropdown";import{languageAtom,layoutAtom}from"../../jotai/app";import{LanguageListContainer,LanguageListItem,Container}from"./styled";import{LanguageItem}from"./LanguageItem";import{DROPDOWN_TRIGGER_WIDTH,ITEM_WIDTH}from"./constants";import{LanguageListSkeleton}from"../common/Skeleton/LanguageListSkeleton";function LanguageListComponent({languages:e,activeLanguage:t}){const[n,o]=useState([]),[a,s]=useState([]),i=useRef(null),r=useAtomValue(layoutAtom),u=useSetAtom(languageAtom),m=useCallback((()=>{var n;const a=null===(n=null==i?void 0:i.current)||void 0===n?void 0:n.offsetWidth;if(!a)return;const{newVisibleItems:r,newHiddenItems:u}=calculateVisibleAndHiddenItems(a,[...e]),m=u.findIndex((e=>e.key===t));-1!==m&&swapItems(r,u,m),o(r),s(u)}),[t,e]);useLayoutEffect((()=>(m(),window.addEventListener("resize",m),()=>{window.removeEventListener("resize",m)})),[r,t]);const g=useMemo((()=>n.length>=5||a.length?"space-between":"start"),[a.length,n.length]);return _jsxs(Container,{ref:i,children:[_jsxs(LanguageListContainer,{$justifyContent:g,children:[!n.length&&_jsx(LanguageListSkeleton,{}),n.map((e=>_jsx(LanguageListItem,{onClick:()=>u(e.key),active:t===e.key,children:_jsx(LanguageItem,{item:e,withIcon:!0})},e.key)))]}),a.length?_jsx(LanguageDropdown,{activeTab:t,samples:a,onChange:e=>{const t=a.findIndex((t=>t.key===e));if(-1!==t){const i=[...a],r=[...n];swapItems(r,i,t),o(r),s(i),u(e)}},trigger:_jsx(Button,{icon:_jsx(OverflowMenuVerticalIcon,{}),variant:"text",style:{height:"100%"}}),withArrow:!1,withCheckmark:!1,width:156}):null]})}export const LanguageList=memo(LanguageListComponent);function calculateVisibleAndHiddenItems(e,t){let n=0;const o=[],a=[];return t.forEach(((s,i)=>{const r=i===t.length-1&&0===a.length?0:DROPDOWN_TRIGGER_WIDTH;e&&n+ITEM_WIDTH+r<=e?(o.push(s),n+=ITEM_WIDTH):a.push(s)})),{newVisibleItems:o,newHiddenItems:a}}function swapItems(e,t,n){const o=e[e.length-1];o&&(e[e.length-1]=t[n],t[n]=o)}
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useLayoutEffect,useRef,useState,useCallback,memo,useMemo}from"react";import{useAtomValue,useSetAtom}from"jotai";import{Button,OverflowMenuVerticalIcon}from"@redocly/theme";import{LanguageDropdown}from"./LanguageDropdown";import{languageAtom,layoutAtom}from"../../jotai/app";import{LanguageListContainer,LanguageListItem,Container}from"./styled";import{LanguageItem}from"./LanguageItem";import{DROPDOWN_TRIGGER_WIDTH,ITEM_WIDTH}from"./constants";import{LanguageListSkeleton}from"../common/Skeleton/LanguageListSkeleton";import{useOtelTelemetry}from"../../hooks";function LanguageListComponent({languages:e,activeLanguage:t}){const[n,o]=useState([]),[a,s]=useState([]),i=useOtelTelemetry(),r=useRef(null),u=useAtomValue(layoutAtom),m=useSetAtom(languageAtom),l=e=>{i.send("openapi_docs.select_language.clicked",{language:e})},g=useCallback((()=>{var n;const a=null===(n=null==r?void 0:r.current)||void 0===n?void 0:n.offsetWidth;if(!a)return;const{newVisibleItems:i,newHiddenItems:u}=calculateVisibleAndHiddenItems(a,[...e]),m=u.findIndex((e=>e.key===t));-1!==m&&swapItems(i,u,m),o(i),s(u)}),[t,e]);useLayoutEffect((()=>(g(),window.addEventListener("resize",g),()=>{window.removeEventListener("resize",g)})),[u,t]);const c=useMemo((()=>n.length>=5||a.length?"space-between":"start"),[a.length,n.length]);return _jsxs(Container,{ref:r,children:[_jsxs(LanguageListContainer,{$justifyContent:c,children:[!n.length&&_jsx(LanguageListSkeleton,{}),n.map((e=>_jsx(LanguageListItem,{onClick:()=>{return t=e.key,m(t),void l(t);var t},active:t===e.key,children:_jsx(LanguageItem,{item:e,withIcon:!0})},e.key)))]}),a.length?_jsx(LanguageDropdown,{activeTab:t,samples:a,onChange:e=>{const t=a.findIndex((t=>t.key===e));if(-1!==t){const i=[...a],r=[...n];swapItems(r,i,t),o(r),s(i),l(e),m(e)}},trigger:_jsx(Button,{icon:_jsx(OverflowMenuVerticalIcon,{}),variant:"text",style:{height:"100%"}}),withArrow:!1,withCheckmark:!1,width:156}):null]})}export const LanguageList=memo(LanguageListComponent);function calculateVisibleAndHiddenItems(e,t){let n=0;const o=[],a=[];return t.forEach(((s,i)=>{const r=i===t.length-1&&0===a.length?0:DROPDOWN_TRIGGER_WIDTH;e&&n+ITEM_WIDTH+r<=e?(o.push(s),n+=ITEM_WIDTH):a.push(s)})),{newVisibleItems:o,newHiddenItems:a}}function swapItems(e,t,n){const o=e[e.length-1];o&&(e[e.length-1]=t[n],t[n]=o)}
2
2
  //# sourceMappingURL=LanguageList.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CopyButton,NewTabButton,EmailButton}from"@redocly/theme";import{PanelItem,PanelItemDescription,PanelItemsList}from"../PanelItem";export function Overview({info:e,translate:t}){const n=e.contact&&e.contact.url&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:t("openapi.info.contact.url","URL")}),title:_jsx("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[_jsx(NewTabButton,{data:e.contact.url},"NewTabButton")]})||null,a=e.contact&&e.contact.email&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:e.contact.name||t("openapi.info.contact.name","E-mail")}),title:_jsx("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[_jsx(CopyButton,{data:e.contact.email},"CopyButton"),_jsx(EmailButton,{data:e.contact.email},"EmailButton")]})||null,r=e.license&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:t("openapi.info.license","License")}),title:e.license.identifier?e.license.identifier:_jsx("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[_jsx(NewTabButton,{data:e.license.url||""},"NewTabButton")]})||null,i=e.termsOfService&&_jsx(PanelItem,{title:_jsx("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:t("openapi.info.termsOfService","Terms of Service")}),actions:[_jsx(NewTabButton,{data:e.termsOfService},e.termsOfService)]})||null;return _jsx(_Fragment,{children:_jsxs(PanelItemsList,{children:[n,a,r,i]})})}
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CopyButton,NewTabButton,EmailButton}from"@redocly/theme";import{PanelItem,PanelItemDescription,PanelItemsList}from"../PanelItem";export function Overview({info:e,translate:t}){var n;const a=e.contact&&e.contact.url&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:t("openapi.info.contact.url","URL")}),title:_jsx("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[_jsx(NewTabButton,{data:e.contact.url},"NewTabButton")]})||null,r=e.contact&&e.contact.email&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:e.contact.name||t("openapi.info.contact.name","E-mail")}),title:_jsx("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[_jsx(CopyButton,{data:e.contact.email},"CopyButton"),_jsx(EmailButton,{data:e.contact.email},"EmailButton")]})||null,i=e.license&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:t("openapi.info.license","License")}),title:e.license.identifier?e.license.identifier:_jsx("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[_jsx(NewTabButton,{data:e.license.url||""},"NewTabButton")]})||null,l=e.termsOfService&&_jsx(PanelItem,{title:_jsx("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:t("openapi.info.termsOfService","Terms of Service")}),actions:[_jsx(NewTabButton,{data:e.termsOfService},e.termsOfService)]})||null,o=(null===(n=e["x-links"])||void 0===n?void 0:n.map((e=>_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:e.name}),title:_jsx("a",{href:e.url,target:"_blank",rel:"noreferrer",children:e.url}),actions:[_jsx(NewTabButton,{data:e.url},"NewTabButton")]},e.url))))||null;return _jsx(_Fragment,{children:_jsxs(PanelItemsList,{children:[a,r,i,l,o]})})}
2
2
  //# sourceMappingURL=Overview.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useRef}from"react";import{GlobalStyle as ThemeCommonStyle,LayoutVariant,SidebarLogo,ThreePanelLayout,useMount}from"@redocly/theme";import{useSetAtom}from"jotai";import{AppProvider,StoreProvider}from"./Providers";import{Overlay}from"../Overlay";import{RedocWrap}from"./styled";import{StickyResponsiveSidebar}from"../StickySidebar";import{SideMenu}from"../SideMenu";import{Content}from"../Content";import{useContentItems,useUppercase2LowercaseRedirect}from"../../hooks";import{withRouter}from"../../hoc/withRouter";import{withStore}from"../../hoc/withStore";import{compose}from"../../utils";import{useLicense}from"../../hooks/useLicense";import{allOperationsAtom}from"../../jotai/replay";const RedoclyOpenAPIDocsComponent=compose(withRouter,withStore,memo)((({licenseKey:e,onLoaded:o,children:t,options:i,layout:n,collapsedSidebar:r,parser:s,withCommonStyles:a})=>{var l,d,m,c,p;const u=useRef(null),{isValid:f,licenseInfo:v}=useLicense(e),h=useSetAtom(allOperationsAtom);useUppercase2LowercaseRedirect();const{contentItems:y,flatItems:S}=useContentItems({parser:s,options:i});useMount((()=>{if(null==o||o(),!i.hideReplay){const e=S.filter((e=>"operation"===e.type));h(e)}}));const{hideSidebar:x,scrollYOffset:L}=i||{},j=null===(d=null===(l=s.definition)||void 0===l?void 0:l.info)||void 0===d?void 0:d["x-logo"];return _jsxs(_Fragment,{children:[a&&_jsx(ThemeCommonStyle,{}),_jsxs(RedocWrap,{className:"redoc-wrap",ref:u,children:[!f&&_jsx(Overlay,{licenseInfo:v}),!x&&_jsxs(StickyResponsiveSidebar,{scrollYOffset:L,className:"menu-content",collapsedSidebar:!r,children:[_jsx(SidebarLogo,{imageUrl:null==j?void 0:j.url,href:(null==j?void 0:j.href)||(null===(p=null===(c=null===(m=s.definition)||void 0===m?void 0:m.info)||void 0===c?void 0:c.contact)||void 0===p?void 0:p.url),altText:null==j?void 0:j.altText,backgroundColor:null==j?void 0:j.backgroundColor}),_jsx(SideMenu,{items:f?y:[]})]}),_jsxs(ThreePanelLayout,{className:"api-content",id:"api-content",layout:n===LayoutVariant.THREE_PANEL?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED,collapsedSidebar:r,children:[_jsx(Content,{items:f?y:[],routingBasePath:i.routingBasePath}),t]})]})]})}));export function RedoclyOpenAPIDocs({onLoaded:e,children:o,store:t,withCommonStyles:i}){var n,r,s;return(null==t?void 0:t.definition)?_jsx(StoreProvider,Object.assign({},t,{children:_jsx(RedoclyOpenAPIDocsComponent,{onLoaded:e,basePath:null===(n=t.options)||void 0===n?void 0:n.routingBasePath,licenseKey:null===(r=t.options)||void 0===r?void 0:r.licenseKey,disableRouter:null===(s=t.options)||void 0===s?void 0:s.disableRouter,withCommonStyles:i,children:o})})):null}export function RedoclyOpenAPIDocsStandalone({definition:e,definitionUrl:o,options:t={},activeItemId:i,activeSampleLanguage:n,activeDeepLink:r}){return _jsx(AppProvider,{definition:e,definitionUrl:o,options:t,activeItemId:i,activeSampleLanguage:n,activeDeepLink:r,children:_jsx(RedoclyOpenAPIDocs,{withCommonStyles:!0})})}
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useRef}from"react";import{GlobalStyle as ThemeCommonStyle,LayoutVariant,SidebarLogo,ThreePanelLayout,useMount}from"@redocly/theme";import{useSetAtom}from"jotai";import{AppProvider,StoreProvider}from"./Providers";import{Overlay}from"../Overlay";import{RedocWrap}from"./styled";import{StickyResponsiveSidebar}from"../StickySidebar";import{SideMenu}from"../SideMenu";import{Content}from"../Content";import{useContentItems,useUppercase2LowercaseRedirect,useOtelTelemetry,usePerformanceMetrics}from"../../hooks";import{withRouter}from"../../hoc/withRouter";import{withStore}from"../../hoc/withStore";import{compose}from"../../utils";import{useLicense}from"../../hooks/useLicense";import{allOperationsAtom}from"../../jotai/replay";const RedoclyOpenAPIDocsComponent=compose(withRouter,withStore,memo)((({licenseKey:e,onLoaded:o,children:t,options:i,layout:n,collapsedSidebar:r,parser:s,withCommonStyles:a})=>{var l,d,c,m,p;const u=useRef(null),{isValid:f,licenseInfo:v}=useLicense(e),y=useSetAtom(allOperationsAtom),h=useOtelTelemetry();useUppercase2LowercaseRedirect();const{contentItems:S,flatItems:j}=useContentItems({parser:s,options:i});usePerformanceMetrics({sendTelemetry:e=>{const o=Object.fromEntries(Object.entries(e).map((([e,o])=>[e.toLowerCase(),o])));h.send("openapi_docs.performance_metrics",o)}}),useMount((()=>{if(null==o||o(),h.send("openapi_docs.viewed",{layout:n}),!i.hideReplay){const e=j.filter((e=>"operation"===e.type));y(e)}}));const{hideSidebar:x,scrollYOffset:L}=i||{},_=null===(d=null===(l=s.definition)||void 0===l?void 0:l.info)||void 0===d?void 0:d["x-logo"];return _jsxs(_Fragment,{children:[a&&_jsx(ThemeCommonStyle,{}),_jsxs(RedocWrap,{className:"redoc-wrap",ref:u,children:[!f&&_jsx(Overlay,{licenseInfo:v}),!x&&_jsxs(StickyResponsiveSidebar,{scrollYOffset:L,className:"menu-content",collapsedSidebar:!r,children:[_jsx(SidebarLogo,{imageUrl:null==_?void 0:_.url,href:(null==_?void 0:_.href)||(null===(p=null===(m=null===(c=s.definition)||void 0===c?void 0:c.info)||void 0===m?void 0:m.contact)||void 0===p?void 0:p.url),altText:null==_?void 0:_.altText,backgroundColor:null==_?void 0:_.backgroundColor}),_jsx(SideMenu,{items:f?S:[]})]}),_jsxs(ThreePanelLayout,{className:"api-content",id:"api-content",layout:n===LayoutVariant.THREE_PANEL?LayoutVariant.THREE_PANEL:LayoutVariant.STACKED,collapsedSidebar:r,children:[_jsx(Content,{items:f?S:[],routingBasePath:i.routingBasePath}),t]})]})]})}));export function RedoclyOpenAPIDocs({onLoaded:e,children:o,store:t,withCommonStyles:i}){var n,r,s;return(null==t?void 0:t.definition)?_jsx(StoreProvider,Object.assign({},t,{children:_jsx(RedoclyOpenAPIDocsComponent,{onLoaded:e,basePath:null===(n=t.options)||void 0===n?void 0:n.routingBasePath,licenseKey:null===(r=t.options)||void 0===r?void 0:r.licenseKey,disableRouter:null===(s=t.options)||void 0===s?void 0:s.disableRouter,withCommonStyles:i,children:o})})):null}export function RedoclyOpenAPIDocsStandalone({definition:e,definitionUrl:o,options:t={},activeItemId:i,activeSampleLanguage:n,activeDeepLink:r}){return _jsx(AppProvider,{definition:e,definitionUrl:o,options:t,activeItemId:i,activeSampleLanguage:n,activeDeepLink:r,children:_jsx(RedoclyOpenAPIDocs,{withCommonStyles:!0})})}
2
2
  //# sourceMappingURL=RedoclyOpenAPIDocs.js.map
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,o,t,r){return new(t||(t=Promise))((function(n,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var o;e.done?n(e.value):(o=e.value,o instanceof t?o:new t((function(e){e(o)}))).then(i,s)}l((r=r.apply(e,o||[])).next())}))};import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{lazy,memo,Suspense,useCallback,useRef,useState}from"react";import{Button,CircleDashIcon,Portal,RocketIcon,useFocusTrap,useModalScrollLock}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";import merge from"deepmerge";const ReplayOverlay=lazy((()=>__awaiter(void 0,void 0,void 0,(function*(){return import("@redocly/replay").then((e=>({default:e.ReplayOverlay})))}))));import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{allOperationsAtom,replayStateAtom}from"../../jotai/replay";import{allOperations,getDefaultOperationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{environmentAtom}from"../../jotai/app";import{convertOperationToReplayValueForRedoc}from"./utils";import{useTranslate}from"../../hooks";import{JsonPointer}from"../../utils";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var r,n;const a=useTranslate(),i=useRef(null),{mockServer:s,oAuth2RedirectURI:l,routingBasePath:u}=useAtomValue(globalOptionsAtom),m=useAtomValue(allOperationsAtom),{parser:p}=useAtomValue(globalStoreAtom),[c,d]=useState(!1),[A,f]=useAtom(replayStateAtom),[y,O]=useAtom(allOperations),[[,v],h]=useAtom(environmentAtom);useFocusTrap(i),useModalScrollLock(c);const _=useCallback((({operations:e,environment:o,environments:t})=>{const r=e.reduce(((e,o)=>{o.requestValues.body=o.requestValues.body instanceof URLSearchParams?Object.fromEntries(o.requestValues.body.entries()):o.requestValues.body;const{path:t,method:r}=o.sourcePath,n=JsonPointer.compile(["paths",t,r]);return e[n]=merge(getDefaultOperationStore(n),o),e}),{});O(Object.assign(Object.assign({},y),r)),h({environment:o,environments:t})}),[y,O,h]),T=()=>{A!==LOADING_STATE.LOADING&&d(!c),A===LOADING_STATE.NOT_LOADED&&f(LOADING_STATE.LOADING)},I=useCallback((e=>{if(!e)return;const o=m.find((o=>o.operationId===e));return u+(null==o?void 0:o.href)}),[m,u]);return t?_jsxs(_Fragment,{children:[_jsx(Button,{onClick:T,variant:"primary",iconPosition:"left",icon:A===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:A===LOADING_STATE.LOADING?a("openapi.loading","Loading..."):a("openapi.tryIt","Try it")}),c&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:i,children:_jsx(ReplayOverlay,{activeOperationId:e.operationId||e.pointer,source:{data:t,type:"openapi"},onRequestChange:_,onClose:T,onLoad:()=>f(LOADING_STATE.LOADED),settings:{corsProxyUrl:o,mockServer:s,environment:v,apiId:null===(n=null===(r=null==p?void 0:p.definition.info)||void 0===r?void 0:r["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:l,disableCollectionsTab:!0,disableWorkflowTab:!0,storageKey:u,convertOperationToReplayValue:convertOperationToReplayValueForRedoc,getOperationUrl:I}})})})})]}):null}export const Replay=memo(ReplayComponent);
1
+ var __awaiter=this&&this.__awaiter||function(e,o,t,r){return new(t||(t=Promise))((function(n,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var o;e.done?n(e.value):(o=e.value,o instanceof t?o:new t((function(e){e(o)}))).then(i,s)}l((r=r.apply(e,o||[])).next())}))};import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{lazy,memo,Suspense,useCallback,useRef,useState}from"react";import{Button,CircleDashIcon,Portal,RocketIcon,useFocusTrap,useModalScrollLock}from"@redocly/theme";import{useAtom,useAtomValue}from"jotai";import merge from"deepmerge";const ReplayOverlay=lazy((()=>__awaiter(void 0,void 0,void 0,(function*(){return import("@redocly/replay").then((e=>({default:e.ReplayOverlay})))}))));import{globalOptionsAtom,globalStoreAtom}from"../../jotai/store";import{allOperationsAtom,replayStateAtom}from"../../jotai/replay";import{allOperations,getDefaultOperationStore}from"../../jotai/operation";import{LOADING_STATE}from"../../constants";import{environmentAtom}from"../../jotai/app";import{convertOperationToReplayValueForRedoc}from"./utils";import{useTranslate,useOtelTelemetry}from"../../hooks";import{JsonPointer}from"../../utils";function ReplayComponent({operation:e,corsProxyUrl:o,fullOpenApi:t}){var r,n;const a=useTranslate(),i=useOtelTelemetry(),s=useRef(null),{mockServer:l,oAuth2RedirectURI:u,routingBasePath:m}=useAtomValue(globalOptionsAtom),p=useAtomValue(allOperationsAtom),{parser:c}=useAtomValue(globalStoreAtom),[d,A]=useState(!1),[f,y]=useAtom(replayStateAtom),[O,v]=useAtom(allOperations),[[,_],T]=useAtom(environmentAtom);useFocusTrap(s),useModalScrollLock(d);const h=useCallback((({operations:e,environment:o,environments:t})=>{const r=e.reduce(((e,o)=>{o.requestValues.body=o.requestValues.body instanceof URLSearchParams?Object.fromEntries(o.requestValues.body.entries()):o.requestValues.body;const{path:t,method:r}=o.sourcePath,n=JsonPointer.compile(["paths",t,r]);return e[n]=merge(getDefaultOperationStore(n),o),e}),{});v(Object.assign(Object.assign({},O),r)),T({environment:o,environments:t})}),[O,v,T]),I=()=>{f!==LOADING_STATE.LOADING&&(d||i.send("openapi_docs.try_it.opened",{}),A(!d)),f===LOADING_STATE.NOT_LOADED&&y(LOADING_STATE.LOADING)},S=useCallback((e=>{if(!e)return;const o=p.find((o=>o.operationId===e));return m+(null==o?void 0:o.href)}),[p,m]);return t?_jsxs(_Fragment,{children:[_jsx(Button,{onClick:I,variant:"primary",iconPosition:"left",icon:f===LOADING_STATE.LOADING?_jsx(CircleDashIcon,{}):_jsx(RocketIcon,{}),children:f===LOADING_STATE.LOADING?a("openapi.loading","Loading..."):a("openapi.tryIt","Try it")}),d&&_jsx(Suspense,{children:_jsx(Portal,{mountId:"api-content",children:_jsx("div",{ref:s,children:_jsx(ReplayOverlay,{activeOperationId:e.operationId||e.pointer,source:{data:t,type:"openapi"},onRequestChange:h,onClose:I,onLoad:()=>y(LOADING_STATE.LOADED),settings:{corsProxyUrl:o,mockServer:l,environment:_,apiId:null===(n=null===(r=null==c?void 0:c.definition.info)||void 0===r?void 0:r["x-metadata"])||void 0===n?void 0:n.apiId,oAuth2RedirectURI:u,disableCollectionsTab:!0,disableWorkflowTab:!0,storageKey:m,convertOperationToReplayValue:convertOperationToReplayValueForRedoc,getOperationUrl:S}})})})})]}):null}export const Replay=memo(ReplayComponent);
2
2
  //# sourceMappingURL=Replay.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{useAtom}from"jotai";import{ExampleSwitch,useExampleKey}from"../Samples";import{useActivateExample}from"../../hooks";import{operationStore}from"../../jotai/operation";function ExampleComponent({mediaType:e,mediaContent:t,renderSample:o}){const m=e.operation.pointer,[a,r]=useAtom(operationStore(m)),n=e.examples||{},p=Object.keys(n),s=useActivateExample(t),{exampleKey:i}=useExampleKey(e.operation,n);if(!p.length||1===p.length)return o();return _jsxs(_Fragment,{children:[_jsx(ExampleSwitch,{examples:n,exampleKey:i,onChange:e=>{r(Object.assign(Object.assign({},a),{activeExampleName:e,activeOneOf:{[m]:p.indexOf(e)},requestValues:{body:null}})),s(e)}}),o(i)]})}export const Example=memo(ExampleComponent);
1
+ import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import{useAtom}from"jotai";import{ExampleSwitch,useExampleKey}from"../Samples";import{useActivateExample,useOtelTelemetry}from"../../hooks";import{operationStore}from"../../jotai/operation";function ExampleComponent({mediaType:e,mediaContent:t,renderSample:m}){const o=useOtelTelemetry(),a=e.operation.pointer,[r,s]=useAtom(operationStore(a)),n=e.examples||{},p=Object.keys(n),i=useActivateExample(t),{exampleKey:l}=useExampleKey(e.operation,n);if(!p.length||1===p.length)return m();return _jsxs(_Fragment,{children:[_jsx(ExampleSwitch,{examples:n,exampleKey:l,onChange:e=>{o.send("openapi_docs.examples_switcher.clicked",{example:e,number_of_examples:p.length}),s(Object.assign(Object.assign({},r),{activeExampleName:e,activeOneOf:{[a]:p.indexOf(e)},requestValues:{body:null}})),i(e)}}),m(l)]})}export const Example=memo(ExampleComponent);
2
2
  //# sourceMappingURL=Example.js.map
@@ -1,4 +1,4 @@
1
- var __rest=this&&this.__rest||function(e,o){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&o.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var t=0;for(r=Object.getOwnPropertySymbols(e);t<r.length;t++)o.indexOf(r[t])<0&&Object.prototype.propertyIsEnumerable.call(e,r[t])&&(a[r[t]]=e[r[t]])}return a};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback,useMemo}from"react";import{useAtomValue,useAtom}from"jotai";import{PanelHeader}from"@redocly/theme";import styled from"styled-components";import{PayloadSamples}from"../PayloadSamples";import{CodeSample}from"./CodeSample";import{useCodeSamples}from"./useCodeSamples";import{isPayloadSample}from"../../models";import{createCodeSampleCopyEvent}from"../../events";import{globalStoreAtom}from"../../jotai/store";import{ServerListDropdown}from"../ServerListDropdown";import{LanguageDropdown}from"../Language";import{languageAtom}from"../../jotai/app";import{Replay}from"../Replay";import{CodeBlockPanel}from"../common";import{useActiveWithFallback}from"../../hooks";function RequestSamplesComponent(e){var{operation:o,disableFooter:a}=e,r=__rest(e,["operation","disableFooter"]);const[{activeLanguage:t,languages:l},s]=useAtom(languageAtom),{samples:n}=useCodeSamples(o),{parser:p,options:{events:i,corsProxyUrl:m,hideReplay:d}}=useAtomValue(globalStoreAtom),c=!(a||o.isWebhook||d||o.hideReplay),u=!!(null==l?void 0:l.length),y=useActiveWithFallback(n,t),g=useCallback((({lang:e,title:a})=>()=>{var r;const t=createCodeSampleCopyEvent({operation:o,label:a,lang:e,type:"request"});null===(r=null==i?void 0:i.codeSamplesCopy)||void 0===r||r.call(i,t)}),[o,i]),f=()=>_jsxs(StyledPanelHeader,{isExpandable:!1,withReplay:!u&&c,children:[_jsx(StyledServerListDropdown,{operation:o}),u&&_jsx(LanguageDropdown,{activeTab:y,samples:n,onChange:s}),!u&&c&&_jsx(Replay,{operation:o,corsProxyUrl:m,fullOpenApi:p.definition})]}),v=useMemo((()=>{if(c&&u)return _jsx(ReplayWrapper,{children:_jsx(Replay,{operation:o,corsProxyUrl:m,fullOpenApi:p.definition})})}),[c,u,o,m,p.definition]),x=useMemo((()=>n.map((e=>e.key===y?_jsx("div",{children:isPayloadSample(e)?_jsx(PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:g(e)},r)):_jsx(CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:o,onCopyClick:g(e)},r))},e.key+o.id):null))),[y,g,o,r,n]);return l&&!n.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:f,isExpandable:!1,expanded:!1}):n.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:f,footer:v,isExpandable:!1,children:x}):null}export const RequestSamples=memo(RequestSamplesComponent);const StyledPanelHeader=styled(PanelHeader)`
1
+ var __rest=this&&this.__rest||function(e,o){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&o.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var t=0;for(r=Object.getOwnPropertySymbols(e);t<r.length;t++)o.indexOf(r[t])<0&&Object.prototype.propertyIsEnumerable.call(e,r[t])&&(a[r[t]]=e[r[t]])}return a};import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo,useCallback,useMemo}from"react";import{useAtomValue,useAtom}from"jotai";import{PanelHeader}from"@redocly/theme";import styled from"styled-components";import{PayloadSamples}from"../PayloadSamples";import{CodeSample}from"./CodeSample";import{useCodeSamples}from"./useCodeSamples";import{isPayloadSample}from"../../models";import{createCodeSampleCopyEvent}from"../../events";import{globalStoreAtom}from"../../jotai/store";import{ServerListDropdown}from"../ServerListDropdown";import{LanguageDropdown}from"../Language";import{languageAtom}from"../../jotai/app";import{Replay}from"../Replay";import{CodeBlockPanel}from"../common";import{useActiveWithFallback,useOtelTelemetry}from"../../hooks";function RequestSamplesComponent(e){var{operation:o,disableFooter:a}=e,r=__rest(e,["operation","disableFooter"]);const t=useOtelTelemetry(),[{activeLanguage:l,languages:s},n]=useAtom(languageAtom),{samples:p}=useCodeSamples(o),{parser:i,options:{events:m,corsProxyUrl:d,hideReplay:c}}=useAtomValue(globalStoreAtom),u=!(a||o.isWebhook||c||o.hideReplay),y=!!(null==s?void 0:s.length),g=useActiveWithFallback(p,l),f=e=>{n(e),t.send("openapi_docs.select_language.clicked",{language:e})},v=useCallback((({lang:e,title:a})=>()=>{var r;const l=createCodeSampleCopyEvent({operation:o,label:a,lang:e,type:"request"});t.send("openapi_docs.copy_code_snippet.clicked",{language:e,type:"request"}),null===(r=null==m?void 0:m.codeSamplesCopy)||void 0===r||r.call(m,l)}),[o,t,m]),x=()=>_jsxs(StyledPanelHeader,{isExpandable:!1,withReplay:!y&&u,children:[_jsx(StyledServerListDropdown,{operation:o}),y&&_jsx(LanguageDropdown,{activeTab:g,samples:p,onChange:f}),!y&&u&&_jsx(Replay,{operation:o,corsProxyUrl:d,fullOpenApi:i.definition})]}),S=useMemo((()=>{if(u&&y)return _jsx(ReplayWrapper,{children:_jsx(Replay,{operation:o,corsProxyUrl:d,fullOpenApi:i.definition})})}),[u,y,o,d,i.definition]),b=useMemo((()=>p.map((e=>e.key===g?_jsx("div",{children:isPayloadSample(e)?_jsx(PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:v(e)},r)):_jsx(CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,operation:o,onCopyClick:v(e)},r))},e.key+o.id):null))),[g,v,o,r,p]);return s&&!p.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:x,isExpandable:!1,expanded:!1}):p.length?_jsx(CodeBlockPanel,{className:"panel-request-samples",header:x,footer:S,isExpandable:!1,children:b}):null}export const RequestSamples=memo(RequestSamplesComponent);const StyledPanelHeader=styled(PanelHeader)`
2
2
  flex-wrap: nowrap;
3
3
  ${({withReplay:e})=>e&&"padding: var(--spacing-xs) var(--spacing-sm);"}
4
4
  `,StyledServerListDropdown=styled(ServerListDropdown)`
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{memo,useCallback}from"react";import{useAtomValue}from"jotai";import{PayloadSamples,StyledCodeBlock}from"../PayloadSamples";import{createCodeSampleCopyEvent}from"../../events";import{globalOptionsAtom}from"../../jotai/store";import{Summary}from"./Summary";import{Tabs}from"../Tabs";import{CodeBlockPanel}from"../common";import{useTranslate}from"../../hooks";function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:n}){const{events:a}=useAtomValue(globalOptionsAtom),s=useTranslate(),l=e.responses.filter((e=>{var o,n;return null!==(n=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==n&&n})),t=e.responses.map((({code:e})=>({key:e,title:e}))),r=(null==t?void 0:t.find((({key:e})=>e===o)))||(null==t?void 0:t[0]),m=useCallback((()=>{var o;const n=createCodeSampleCopyEvent({operation:e,type:"response"});null===(o=null==a?void 0:a.codeSamplesCopy)||void 0===o||o.call(a,n)}),[e,a]);if(!l.length)return null;return _jsx(CodeBlockPanel,{className:"panel-response-samples",header:()=>_jsx(Summary,{tabs:_jsx(Tabs,{tabs:t,activeTab:r,onChange:e=>n(e.key)})}),isExpandable:!1,children:e.responses.map((e=>{var o;return e.code===r.key?_jsx("div",{children:(null===(o=null==e?void 0:e.content)||void 0===o?void 0:o.hasSample)?_jsx(PayloadSamples,{content:e.content,onCopyClick:m}):_jsx(StyledCodeBlock,{source:s("openapi.noResponseContent","No content")})},e.code):null}))})}export const ResponseSamples=memo(ResponseSamplesComponent);
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{memo,useCallback}from"react";import{useAtomValue}from"jotai";import{PayloadSamples,StyledCodeBlock}from"../PayloadSamples";import{createCodeSampleCopyEvent}from"../../events";import{globalOptionsAtom}from"../../jotai/store";import{Summary}from"./Summary";import{Tabs}from"../Tabs";import{CodeBlockPanel}from"../common";import{useOtelTelemetry,useTranslate}from"../../hooks";function ResponseSamplesComponent({operation:e,activeResponseTab:o,onTabChange:s}){const n=useOtelTelemetry(),{events:a}=useAtomValue(globalOptionsAtom),t=useTranslate(),l=e.responses.filter((e=>{var o,s;return null!==(s=null===(o=e.content)||void 0===o?void 0:o.hasSample)&&void 0!==s&&s})),r=e.responses.map((({code:e})=>({key:e,title:e}))),p=(null==r?void 0:r.find((({key:e})=>e===o)))||(null==r?void 0:r[0]),m=useCallback((()=>{var o;n.send("openapi_docs.copy_code_snippet.clicked",{type:"response"});const s=createCodeSampleCopyEvent({operation:e,type:"response"});null===(o=null==a?void 0:a.codeSamplesCopy)||void 0===o||o.call(a,s)}),[n,e,a]);if(!l.length)return null;return _jsx(CodeBlockPanel,{className:"panel-response-samples",header:()=>_jsx(Summary,{tabs:_jsx(Tabs,{tabs:r,activeTab:p,onChange:e=>s(e.key)})}),isExpandable:!1,children:e.responses.map((e=>{var o;return e.code===p.key?_jsx("div",{children:(null===(o=null==e?void 0:e.content)||void 0===o?void 0:o.hasSample)?_jsx(PayloadSamples,{content:e.content,onCopyClick:m}):_jsx(StyledCodeBlock,{source:t("openapi.noResponseContent","No content")})},e.code):null}))})}export const ResponseSamples=memo(ResponseSamplesComponent);
2
2
  //# sourceMappingURL=ResponseSamples.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useState,useEffect}from"react";import{MimeLabel,Container,Select}from"../common";import{SelectOrLabel}from"../SelectOrLabel";import{normalizeText}from"../../utils";export const ExampleSwitch=({exampleKey:e,examples:t,onChange:a})=>{var l;const r=Object.keys(t),o=e?r.indexOf(e):0,[i,m]=useState(o>-1?o:0);useEffect((()=>m(o>-1?o:0)),[e,o]);const n=r.map(((e,a)=>({value:normalizeText(t[e].summary)||e,idx:a})));return n.length<2?null:_jsx(Container,{"data-testid":"example-switch",children:_jsx(SelectOrLabel,{Select:Select,Label:MimeLabel,variant:"dark",fullWidth:!0,options:n,value:null===(l=n[i])||void 0===l?void 0:l.value,onChange:({idx:e})=>{m(e),a(r[e])}})})};
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useState,useEffect}from"react";import{MimeLabel,Container,Select}from"../common";import{SelectOrLabel}from"../SelectOrLabel";import{normalizeText}from"../../utils";import{useOtelTelemetry}from"../../hooks";export const ExampleSwitch=({exampleKey:e,examples:t,onChange:l})=>{var a;const r=useOtelTelemetry(),o=Object.keys(t),m=e?o.indexOf(e):0,[i,s]=useState(m>-1?m:0);useEffect((()=>s(m>-1?m:0)),[e,m]);const n=o.map(((e,l)=>({value:normalizeText(t[e].summary)||e,idx:l})));return n.length<2?null:_jsx(Container,{"data-testid":"example-switch",children:_jsx(SelectOrLabel,{Select:Select,Label:MimeLabel,variant:"dark",fullWidth:!0,options:n,value:null===(a=n[i])||void 0===a?void 0:a.value,onChange:({idx:e})=>{r.send("openapi_docs.examples_switcher.clicked",{example:o[e],number_of_examples:o.length}),s(e),l(o[e])}})})};
2
2
  //# sourceMappingURL=ExampleSwitch.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMemo,useCallback}from"react";import{Dropdown,DropdownMenu}from"@redocly/theme";import{useAtom}from"jotai";import{HttpVerb}from"../common";import{PathWrapper,Path,StyledCopyButton,StyledDropdownMenuItem}from"./styled";import{PanelItem}from"../PanelItem";import{joinWithSeparator}from"../../services";import{replaceVariables}from"../../utils";import{environmentAtom}from"../../jotai/app";import{useActiveWithFallback}from"../../hooks";import{getServerEnvName}from"../../utils/environments";export const ServerListDropdown=({operation:e,className:r})=>{const[[t],o]=useAtom(environmentAtom),s=useActiveWithFallback(e.servers.map((e=>Object.assign(Object.assign({},e),{key:e.url}))),t.server),a=useCallback((e=>{e.stopPropagation()}),[]),n=useCallback((r=>()=>{1!==e.servers.length&&o({environment:getServerEnvName(r)})}),[e.servers.length,o]),i=useMemo((()=>e.servers.map((r=>{const t=joinWithSeparator(replaceVariables(r),e.path);return _jsx(StyledDropdownMenuItem,{onAction:n(r),children:_jsx(PanelItem,{header:r.description,title:t,actions:[_jsx(StyledCopyButton,{data:t,toasterPlacement:"left",onCopyClick:a},t)],active:r.url===s,withCheckmark:!0})},t)}))),[e.servers,e.path,n,a,s]);return _jsx(Dropdown,{className:r,trigger:_jsxs(PathWrapper,{variant:"ghost",children:[_jsx(HttpVerb,{color:e.httpVerb,children:e.httpVerb}),_jsx(Path,{children:e.path})]}),withArrow:!0,children:_jsx(DropdownMenu,{children:i})})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMemo,useCallback}from"react";import{Dropdown,DropdownMenu}from"@redocly/theme";import{useAtom}from"jotai";import{HttpVerb}from"../common";import{PathWrapper,Path,StyledCopyButton,StyledDropdownMenuItem}from"./styled";import{PanelItem}from"../PanelItem";import{joinWithSeparator}from"../../services";import{replaceVariables}from"../../utils";import{environmentAtom}from"../../jotai/app";import{useActiveWithFallback,useOtelTelemetry}from"../../hooks";import{getServerEnvName}from"../../utils/environments";export const ServerListDropdown=({operation:e,className:r})=>{const t=useOtelTelemetry(),[[o],s]=useAtom(environmentAtom),a=useActiveWithFallback(e.servers.map((e=>Object.assign(Object.assign({},e),{key:e.url}))),o.server),n=useCallback((e=>{e.stopPropagation()}),[]),i=useCallback((r=>()=>{1!==e.servers.length&&(s({environment:getServerEnvName(r)}),t.send("openapi_docs.switch_servers.clicked",{server:getServerEnvName(r)}))}),[e.servers.length,s,t]),m=useMemo((()=>e.servers.map((r=>{const t=joinWithSeparator(replaceVariables(r),e.path);return _jsx(StyledDropdownMenuItem,{onAction:i(r),children:_jsx(PanelItem,{header:r.description,title:t,actions:[_jsx(StyledCopyButton,{data:t,toasterPlacement:"left",onCopyClick:n},t)],active:r.url===a,withCheckmark:!0})},t)}))),[e.servers,e.path,i,n,a]);return _jsx(Dropdown,{className:r,trigger:_jsxs(PathWrapper,{variant:"ghost",children:[_jsx(HttpVerb,{color:e.httpVerb,children:e.httpVerb}),_jsx(Path,{children:e.path})]}),withArrow:!0,children:_jsx(DropdownMenu,{children:m})})};
2
2
  //# sourceMappingURL=ServerListDropdown.js.map
@@ -4,3 +4,5 @@ export { useContentItems } from './useContentItems';
4
4
  export { useActiveWithFallback } from './useActiveWithFallback';
5
5
  export { useUppercase2LowercaseRedirect } from './useUppercase2LowercaseRedirect';
6
6
  export { useTranslate } from './useTranslate';
7
+ export { useOtelTelemetry } from './useOtelTelemetry';
8
+ export { usePerformanceMetrics } from './usePerformanceMetrics';
@@ -1,2 +1,2 @@
1
- export{useActivateExample}from"./useActivateExample";export{useRouter}from"./useRouter";export{useContentItems}from"./useContentItems";export{useActiveWithFallback}from"./useActiveWithFallback";export{useUppercase2LowercaseRedirect}from"./useUppercase2LowercaseRedirect";export{useTranslate}from"./useTranslate";
1
+ export{useActivateExample}from"./useActivateExample";export{useRouter}from"./useRouter";export{useContentItems}from"./useContentItems";export{useActiveWithFallback}from"./useActiveWithFallback";export{useUppercase2LowercaseRedirect}from"./useUppercase2LowercaseRedirect";export{useTranslate}from"./useTranslate";export{useOtelTelemetry}from"./useOtelTelemetry";export{usePerformanceMetrics}from"./usePerformanceMetrics";
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ export declare function useOtelTelemetry(): {
2
+ send(action: "error" | "page.viewed" | "search.ai.query" | "search.query" | "search.result.clicked" | "openapi_docs.viewed" | "openapi_docs.performance_metrics" | "openapi_docs.download_definition.clicked" | "openapi_docs.select_language.clicked" | "openapi_docs.expand_collapse_all.clicked" | "openapi_docs.copy_code_snippet.clicked" | "openapi_docs.switch_servers.clicked" | "openapi_docs.examples_switcher.clicked" | "openapi_docs.try_it.opened", data: unknown): void;
3
+ };
@@ -0,0 +1,2 @@
1
+ import{useThemeHooks}from"@redocly/theme";export function useOtelTelemetry(){return useThemeHooks().useOtelTelemetry()}
2
+ //# sourceMappingURL=useOtelTelemetry.js.map
@@ -0,0 +1,5 @@
1
+ type PerformanceMetricsProps = {
2
+ sendTelemetry: (data: Record<string, any>) => void;
3
+ };
4
+ export declare function usePerformanceMetrics({ sendTelemetry }: PerformanceMetricsProps): void;
5
+ export {};
@@ -0,0 +1,2 @@
1
+ import{useMount}from"@redocly/theme";import{onCLS,onLCP,onFCP,onTTFB}from"web-vitals";export function usePerformanceMetrics({sendTelemetry:e}){useMount((()=>{const n={},o=[new Promise((e=>onCLS((n=>e({name:"CLS",value:n.value}))))),new Promise((e=>onLCP((n=>e({name:"LCP",value:n.value}))))),new Promise((e=>onFCP((n=>e({name:"FCP",value:n.value}))))),new Promise((e=>onTTFB((n=>e({name:"TTFB",value:n.value})))))];Promise.allSettled(o).then((o=>{o.forEach((e=>{if("fulfilled"===e.status){const{name:o,value:a}=e.value;n[o]=Math.round(a)}})),e(n)}))}))}
2
+ //# sourceMappingURL=usePerformanceMetrics.js.map
@@ -91,6 +91,9 @@ export interface HooksConfig {
91
91
  AfterApiTitle?: HookConfig<{
92
92
  info: OpenAPIInfo;
93
93
  }>;
94
+ AfterOpenApiDescription?: HookConfig<{
95
+ info: OpenAPIInfo;
96
+ }>;
94
97
  BeforeOperation?: HookConfig<{
95
98
  operation: OperationModel;
96
99
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.7.0-next.5",
3
+ "version": "3.7.0-rc.1",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -16,14 +16,14 @@
16
16
  "openapi-docs": "bin.js"
17
17
  },
18
18
  "peerDependencies": {
19
- "@redocly/theme": ">=0.51.0-next.0",
19
+ "@redocly/theme": ">=0.51.0-rc.1",
20
20
  "core-js": "^3.1.4",
21
21
  "react": "^18.0.0",
22
22
  "react-dom": "^18.0.0",
23
23
  "styled-components": "^4.1.1 || ^5.3.11"
24
24
  },
25
25
  "dependencies": {
26
- "@markdoc/markdoc": "0.4.0",
26
+ "@markdoc/markdoc": "0.5.1",
27
27
  "@redocly/openapi-core": "1.31.1",
28
28
  "deepmerge": "^4.2.2",
29
29
  "dompurify": "2.5.4",
@@ -43,8 +43,9 @@
43
43
  "url": "~0.11.0",
44
44
  "url-template": "^2.0.8",
45
45
  "util": "~0.12.5",
46
- "@redocly/config": "0.21.0",
47
- "@redocly/replay": "0.10.0-next.3"
46
+ "web-vitals": "3.3.1",
47
+ "@redocly/config": "0.22.0-rc.1",
48
+ "@redocly/replay": "0.10.0-next.4"
48
49
  },
49
50
  "devDependencies": {
50
51
  "@shikijs/transformers": "1.24.0",
@@ -95,7 +96,7 @@
95
96
  "webpack": "5.94.0",
96
97
  "webpack-cli": "5.1.4",
97
98
  "webpack-dev-server": "5.1.0",
98
- "@redocly/theme": "0.51.0-next.3"
99
+ "@redocly/theme": "0.51.0-rc.1"
99
100
  },
100
101
  "scripts": {
101
102
  "start": "npm run copy-highlight-hook && webpack serve --mode=development --hot",