@redocly/openapi-docs 0.0.0-beta-20240422155039 → 0.0.0-beta-20240423152253

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 (32) hide show
  1. package/dist/redocly-openapi-docs.min.js +1322 -1268
  2. package/lib/components/Download/DownloadSpecification.js +1 -1
  3. package/lib/components/Download/types.d.ts +0 -2
  4. package/lib/components/Download/useDownloadInfo.d.ts +1 -1
  5. package/lib/components/Download/useDownloadInfo.js +1 -1
  6. package/lib/components/OperationItem/OperationItem.js +1 -1
  7. package/lib/components/Replay/utils.js +1 -1
  8. package/lib/components/ResponseSamples/Summary.js +1 -1
  9. package/lib/components/Samples/ExampleSwitch.js +1 -1
  10. package/lib/components/Schema/OneOfSchema.js +5 -1
  11. package/lib/components/Security/Security.js +1 -1
  12. package/lib/components/Security/SecurityModal.js +1 -1
  13. package/lib/components/TagItem/OperationsNavigation.js +1 -1
  14. package/lib/components/common/Dropdown/Dropdown.js +3 -3
  15. package/lib/components/common/SchemaSelection/SchemaSelection.js +1 -1
  16. package/lib/setupTests.js +1 -1
  17. package/lib-esm/components/Download/DownloadSpecification.js +1 -1
  18. package/lib-esm/components/Download/types.d.ts +0 -2
  19. package/lib-esm/components/Download/useDownloadInfo.d.ts +1 -1
  20. package/lib-esm/components/Download/useDownloadInfo.js +1 -1
  21. package/lib-esm/components/OperationItem/OperationItem.js +1 -1
  22. package/lib-esm/components/Replay/utils.js +1 -1
  23. package/lib-esm/components/ResponseSamples/Summary.js +1 -1
  24. package/lib-esm/components/Samples/ExampleSwitch.js +1 -1
  25. package/lib-esm/components/Schema/OneOfSchema.js +5 -1
  26. package/lib-esm/components/Security/Security.js +1 -1
  27. package/lib-esm/components/Security/SecurityModal.js +1 -1
  28. package/lib-esm/components/TagItem/OperationsNavigation.js +1 -1
  29. package/lib-esm/components/common/Dropdown/Dropdown.js +2 -2
  30. package/lib-esm/components/common/SchemaSelection/SchemaSelection.js +1 -1
  31. package/lib-esm/setupTests.js +1 -1
  32. package/package.json +5 -5
@@ -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{parser:e,options:t}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),{definition:o}=e,r=(0,useDownloadInfo_1.useDownloadInfo)({definition:o,downloadUrls:t.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 r?(0,jsx_runtime_1.jsx)(Wrapper,{children:(r||[]).map((({title:e,url:t,iconType:o})=>(0,jsx_runtime_1.jsxs)(Card,{children:[(0,jsx_runtime_1.jsxs)(FileName,{children:[n(o),(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");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`
2
2
  display: flex;
3
3
  align-items: baseline;
4
4
  justify-content: space-between;
@@ -1,11 +1,9 @@
1
- import type { OpenAPIDefinition } from '../../types';
2
1
  export type DownloadUrlsConfig = {
3
2
  title?: string;
4
3
  url: string;
5
4
  }[];
6
5
  export type DownloadIconType = 'yaml' | 'json' | 'file';
7
6
  export type UseDownloadInfoProps = {
8
- definition?: OpenAPIDefinition;
9
7
  definitionUrl?: string;
10
8
  downloadUrls?: DownloadUrlsConfig;
11
9
  };
@@ -1,2 +1,2 @@
1
1
  import type { UseDownloadInfoProps, UseDownloadInfoReturnType } from './types';
2
- export declare const useDownloadInfo: ({ definition, downloadUrls, }: UseDownloadInfoProps) => UseDownloadInfoReturnType | undefined;
2
+ export declare const useDownloadInfo: ({ downloadUrls, }: UseDownloadInfoProps) => UseDownloadInfoReturnType | undefined;
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),__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 n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.useDownloadInfo=void 0;const react_1=require("react"),theme_1=require("@redocly/theme"),yaml=__importStar(require("js-yaml")),constants_1=require("../../constants"),useDownloadInfo=({definition:e,downloadUrls:t})=>(0,react_1.useMemo)((()=>{if(t)return t.map((({title:e,url:t})=>({url:t,title:e||getFileNameFromUrl(t,"openapi.yaml"),iconType:getIconTypeFromUrl(t)})));if(theme_1.IS_BROWSER&&window.Blob&&window.URL&&window.URL.createObjectURL){return[{title:"openapi.json",url:window.URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:constants_1.MediaTypes.JSON})),iconType:"json"},{title:"openapi.yaml",url:window.URL.createObjectURL(new Blob([yaml.dump(e)],{type:"text/yaml"})),iconType:"yaml"}]}}),[e,t]);function getFileNameFromUrl(e,t){const n=e.split("?")[0].split(/[\\\/]/).pop();return n&&(n.includes("yaml")||n.includes("json"))?n:t}function getIconTypeFromUrl(e,t){const n=t||e.split("?")[0].split(/[\\\/]/).pop();return n?n.includes("yaml")?"yaml":n.includes("json")?"json":"file":"file"}exports.useDownloadInfo=useDownloadInfo;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useDownloadInfo=void 0;const react_1=require("react"),useDownloadInfo=({downloadUrls:e})=>(0,react_1.useMemo)((()=>{if(e)return e.map((({title:e,url:o})=>({url:o,title:e||getFileNameFromUrl(o,"openapi.yaml"),iconType:getIconTypeFromUrl(o)})))}),[e]);function getFileNameFromUrl(e,o){const l=e.split("?")[0].split(/[\\\/]/).pop();return l&&(l.includes("yaml")||l.includes("json"))?l:o}function getIconTypeFromUrl(e,o){const l=o||e.split("?")[0].split(/[\\\/]/).pop();return l?l.includes("yaml")?"yaml":l.includes("json")?"json":"file":"file"}exports.useDownloadInfo=useDownloadInfo;
2
2
  //# sourceMappingURL=useDownloadInfo.js.map
@@ -1,7 +1,7 @@
1
1
  "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationItem=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),common_1=require("../common"),Callbacks_1=require("../Callbacks"),CallbackSamples_1=require("../CallbackSamples"),RequestSamples_1=require("../RequestSamples"),Responses_1=require("../Responses"),ResponseSamples_1=require("../ResponseSamples"),services_1=require("../../services"),app_1=require("../../jotai/app"),store_1=require("../../jotai/store"),operation_1=require("../../models/operation"),RenderHook_1=require("../RenderHook"),OperationItemTitle_1=require("../common/OperationItemTitle"),LinkToField_1=require("../common/LinkToField"),RequestDetails_1=require("../Request/RequestDetails"),OperationSamplesPanel=(0,styled_components_1.default)(common_1.SamplesPanel)`
2
2
  margin-left: auto;
3
3
  --code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
4
- `;function OperationItemComponent({item:{operationDefinition:e,parent:t,href:a}}){var s,n;const{parser:o,options:i}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),r=(0,jotai_1.useAtomValue)(app_1.layoutAtom),[l,p]=(0,react_1.useState)(),{unstable_hooks:_,feedback:m}=i,c=(0,react_1.useMemo)((()=>(0,operation_1.getOperation)(o,e,t,i,a)),[a,e,i,t,o]),{name:d,deprecated:u,isWebhook:x,badges:j}=c,k=r===theme_1.LayoutVariant.STACKED,h=(null==m?void 0:m.type)||"sentiment",b=!0!==(null==m?void 0:m.hide),S=j.filter((({position:e})=>"before"===e)),R=j.filter((({position:e})=>"after"===e)),[O,f]=(0,react_1.useState)(null),y=(0,react_1.useCallback)((e=>{l!==e&&p(e)}),[l]);return(0,jsx_runtime_1.jsxs)(OperationRow,{layout:r,children:[(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:r,children:(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:k,children:[(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.BeforeOpenApiOperation||(null==_?void 0:_.BeforeOperation),props:{operation:c}}),(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Heading,{"data-cy":"operation-item-header",children:[(0,jsx_runtime_1.jsx)(common_1.ShareLink,{to:a,"aria-label":`link to ${d}`}),S.map((({name:e,color:t})=>(0,jsx_runtime_1.jsx)(OperationBadge,{color:t,children:e},e))),d,R.map((({name:e,color:t})=>(0,jsx_runtime_1.jsx)(OperationBadge,{color:t,children:e},e))),u&&(0,jsx_runtime_1.jsx)(OperationBadge,{deprecated:!0,children:"Deprecated"}),x&&(0,jsx_runtime_1.jsx)(OperationBadge,{children:"Webhook"})]})]})}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,children:(0,jsx_runtime_1.jsx)(RequestDetails_1.RequestDetails,{operation:c})}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-cy":"samples-block",className:"panel-container-request-samples",children:(0,jsx_runtime_1.jsx)(RequestSamples_1.RequestSamples,{operation:c})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,children:(null===(s=c.responses)||void 0===s?void 0:s.length)?(0,jsx_runtime_1.jsx)(Responses_1.OperationResponseList,{responses:c.responses,operationId:c.id,operationPointer:c.pointer,callbackId:c.callbackId,activeResponseTab:l,onTabChange:y}):null}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-cy":"samples-block",className:"panel-container-response-samples",children:(0,jsx_runtime_1.jsx)(ResponseSamples_1.ResponseSamples,{operation:c,activeResponseTab:l,onTabChange:y})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:k,children:[(null===(n=c.callbacks)||void 0===n?void 0:n.length)?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Title,{children:[(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:(0,services_1.makeDeepLink)(c.id,"callbacks")}),"Callbacks"]}),(0,jsx_runtime_1.jsx)(Callbacks_1.CallbacksList,{callbacks:c.callbacks,onExpand:f,selectedCallback:O})]}):null,(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiOperation||(null==_?void 0:_.AfterOperation),props:{operation:c}})]}),O?(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-cy":"samples-block",children:(0,jsx_runtime_1.jsx)(CallbackSamples_1.CallbackSamples,{callback:O})}):null]}),(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:r,children:(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,fullWidth:!0,children:b?(0,jsx_runtime_1.jsx)(FeedbackWrapper,{children:(0,jsx_runtime_1.jsx)(theme_1.Feedback,{type:h,settings:m.settings,path:c.href})}):null})})]})}exports.OperationItem=(0,react_1.memo)(OperationItemComponent);const FeedbackWrapper=styled_components_1.default.div`
4
+ `;function OperationItemComponent({item:{operationDefinition:e,parent:t,href:a}}){var s,n;const{parser:o,options:i}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),r=(0,jotai_1.useAtomValue)(app_1.layoutAtom),[l,p]=(0,react_1.useState)(),{unstable_hooks:_,feedback:m}=i,c=(0,react_1.useMemo)((()=>(0,operation_1.getOperation)(o,e,t,i,a)),[a,e,i,t,o]),{name:d,deprecated:u,isWebhook:x,badges:j}=c,k=r===theme_1.LayoutVariant.STACKED,h=(null==m?void 0:m.type)||"sentiment",b=!0!==(null==m?void 0:m.hide),S=j.filter((({position:e})=>"before"===e)),R=j.filter((({position:e})=>"after"===e)),[O,f]=(0,react_1.useState)(null),g=(0,react_1.useCallback)((e=>{l!==e&&p(e)}),[l]);return(0,jsx_runtime_1.jsxs)(OperationRow,{layout:r,children:[(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:r,children:(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:k,children:[(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.BeforeOpenApiOperation||(null==_?void 0:_.BeforeOperation),props:{operation:c}}),(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Heading,{"data-testid":"operation-item-header",children:[(0,jsx_runtime_1.jsx)(common_1.ShareLink,{to:a,"aria-label":`link to ${d}`}),S.map((({name:e,color:t})=>(0,jsx_runtime_1.jsx)(OperationBadge,{color:t,children:e},e))),d,R.map((({name:e,color:t})=>(0,jsx_runtime_1.jsx)(OperationBadge,{color:t,children:e},e))),u&&(0,jsx_runtime_1.jsx)(OperationBadge,{deprecated:!0,children:"Deprecated"}),x&&(0,jsx_runtime_1.jsx)(OperationBadge,{children:"Webhook"})]})]})}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,children:(0,jsx_runtime_1.jsx)(RequestDetails_1.RequestDetails,{operation:c})}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-testid":"samples-block",className:"panel-container-request-samples",children:(0,jsx_runtime_1.jsx)(RequestSamples_1.RequestSamples,{operation:c})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,children:(null===(s=c.responses)||void 0===s?void 0:s.length)?(0,jsx_runtime_1.jsx)(Responses_1.OperationResponseList,{responses:c.responses,operationId:c.id,operationPointer:c.pointer,callbackId:c.callbackId,activeResponseTab:l,onTabChange:g}):null}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-testid":"samples-block",className:"panel-container-response-samples",children:(0,jsx_runtime_1.jsx)(ResponseSamples_1.ResponseSamples,{operation:c,activeResponseTab:l,onTabChange:g})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:k,children:[(null===(n=c.callbacks)||void 0===n?void 0:n.length)?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Title,{children:[(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:(0,services_1.makeDeepLink)(c.id,"callbacks")}),"Callbacks"]}),(0,jsx_runtime_1.jsx)(Callbacks_1.CallbacksList,{callbacks:c.callbacks,onExpand:f,selectedCallback:O})]}):null,(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiOperation||(null==_?void 0:_.AfterOperation),props:{operation:c}})]}),O?(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-testid":"samples-block",children:(0,jsx_runtime_1.jsx)(CallbackSamples_1.CallbackSamples,{callback:O})}):null]}),(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:r,children:(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,fullWidth:!0,children:b?(0,jsx_runtime_1.jsx)(FeedbackWrapper,{children:(0,jsx_runtime_1.jsx)(theme_1.Feedback,{type:h,settings:m.settings,path:c.href})}):null})})]})}exports.OperationItem=(0,react_1.memo)(OperationItemComponent);const FeedbackWrapper=styled_components_1.default.div`
5
5
  & > div {
6
6
  flex: 1 1 auto;
7
7
  display: flex;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.convertRequestSecurity=exports.convertOperationToReplayValue=void 0;const theme_1=require("@redocly/theme");function convertOperationToReplayValue(e,n,t,i){var r,o;const a=(null==i?void 0:i.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==t?void 0:t.requestValues),body:convertRequestBody(e.requestBody,n,(null===(r=null==t?void 0:t.requestValues)||void 0===r?void 0:r.body)?{[a]:null===(o=null==t?void 0:t.requestValues)||void 0===o?void 0:o.body}:void 0),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const t=new Set,i=e.map((e=>{var i;return t.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(i=null==n?void 0:n[String(e.in)])||void 0===i?void 0:i[e.name])||e.example}}));for(const[e,r]of Object.entries(n||{}))for(const[n,o]of Object.entries(r||{}))t.has(e+":"+n)||i.push({name:n,in:e,required:!1,description:"",example:String(o)});return i}function getInputType({type:e,format:n,enum:t}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":t.length>0?"select":"text":"file"}function getFieldExamples(e,n){var t,i,r,o,a;const l=(null===(t=e[0])||void 0===t?void 0:t.example)||(null===(i=e[0])||void 0===i?void 0:i.examples);if(l)return l;if(null===(r=e.schema)||void 0===r?void 0:r.example)return e.schema.example;const u=(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.value)||(null===(a=null==n?void 0:n.default)||void 0===a?void 0:a.rawValue);return(null==u?void 0:u[e.name])?(0,theme_1.isPrimitive)(null==u?void 0:u[e.name])?String(null==u?void 0:u[e.name]):JSON.stringify(null==u?void 0:u[e.name]):""}function convertRequestBody(e,n,t){var i;if(!e||!(null===(i=e.content)||void 0===i?void 0:i.mediaTypes)){if(!t)return;return{mediaTypes:Object.fromEntries(Object.entries(t).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,mediaTypes:e.content.mediaTypes.reduce(((e,i)=>{var r,o;const a=i.schema,l=(null==t?void 0:t[i.name])?{default:{value:null==t?void 0:t[i.name],rawValue:null==t?void 0:t[i.name],mime:i.name}}:i.examples||i.formExamples;return e[i.name]={name:i.name,examples:l,schema:getBodySchema(null===(r=i.schema)||void 0===r?void 0:r.rawSchema,n),parameters:null===(o=null==a?void 0:a.fields)||void 0===o?void 0:o.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}function convertRequestSecurity(e){if(e)return e.flatMap((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}exports.convertOperationToReplayValue=convertOperationToReplayValue,exports.convertRequestSecurity=convertRequestSecurity;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.convertRequestSecurity=exports.convertOperationToReplayValue=void 0;const theme_1=require("@redocly/theme");function convertOperationToReplayValue(e,n,t,i){var r,a;const o=(null==i?void 0:i.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==t?void 0:t.requestValues),body:convertRequestBody(e.requestBody,n,(null===(r=null==t?void 0:t.requestValues)||void 0===r?void 0:r.body)?{[o]:null===(a=null==t?void 0:t.requestValues)||void 0===a?void 0:a.body}:void 0),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const t=new Set,i=e.map((e=>{var i;return t.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(i=null==n?void 0:n[String(e.in)])||void 0===i?void 0:i[e.name])||e.example,schema:e.schema}}));for(const[e,r]of Object.entries(n||{}))for(const[n,a]of Object.entries(r||{}))t.has(e+":"+n)||i.push({name:n,in:e,required:!1,description:"",example:String(a),schema:void 0});return i}function getInputType({type:e,format:n,enum:t}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":t.length>0?"select":"text":"file"}function getFieldExamples(e,n){var t,i,r,a,o;const l=(null===(t=e[0])||void 0===t?void 0:t.example)||(null===(i=e[0])||void 0===i?void 0:i.examples);if(l)return l;if(null===(r=e.schema)||void 0===r?void 0:r.example)return e.schema.example;const u=(null===(a=null==n?void 0:n.default)||void 0===a?void 0:a.value)||(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.rawValue);return(null==u?void 0:u[e.name])?(0,theme_1.isPrimitive)(null==u?void 0:u[e.name])?String(null==u?void 0:u[e.name]):JSON.stringify(null==u?void 0:u[e.name]):""}function convertRequestBody(e,n,t){var i;if(!e||!(null===(i=e.content)||void 0===i?void 0:i.mediaTypes)){if(!t)return;return{mediaTypes:Object.fromEntries(Object.entries(t).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,mediaTypes:e.content.mediaTypes.reduce(((e,i)=>{var r,a;const o=i.schema,l=(null==t?void 0:t[i.name])?{default:{value:null==t?void 0:t[i.name],rawValue:null==t?void 0:t[i.name],mime:i.name}}:i.examples||i.formExamples;return e[i.name]={name:i.name,examples:l,schema:getBodySchema(null===(r=i.schema)||void 0===r?void 0:r.rawSchema,n),parameters:null===(a=null==o?void 0:o.fields)||void 0===a?void 0:a.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}function convertRequestSecurity(e){if(e)return e.flatMap((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}exports.convertOperationToReplayValue=convertOperationToReplayValue,exports.convertRequestSecurity=convertRequestSecurity;
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Summary=void 0;const jsx_runtime_1=require("react/jsx-runtime"),theme_1=require("@redocly/theme"),Summary=({tabs:e})=>(0,jsx_runtime_1.jsxs)(theme_1.PanelHeader,{isExpandable:!1,children:[(0,jsx_runtime_1.jsx)(theme_1.PanelHeaderTitle,{"data-cy":"title",children:"Response"}),e]});exports.Summary=Summary;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Summary=void 0;const jsx_runtime_1=require("react/jsx-runtime"),theme_1=require("@redocly/theme"),Summary=({tabs:e})=>(0,jsx_runtime_1.jsxs)(theme_1.PanelHeader,{isExpandable:!1,children:[(0,jsx_runtime_1.jsx)(theme_1.PanelHeaderTitle,{"data-testid":"title",children:"Response"}),e]});exports.Summary=Summary;
2
2
  //# sourceMappingURL=Summary.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-cy":"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"),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;
2
2
  //# sourceMappingURL=ExampleSwitch.js.map
@@ -1,6 +1,10 @@
1
- "use strict";var __rest=this&&this.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OneOfSchema=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")),react_router_dom_1=require("react-router-dom"),common_1=require("../common"),Markdown_1=require("../Markdown"),ConstraintsView_1=require("../common/ConstraintsView"),Schema_1=require("./Schema"),operation_1=require("../../jotai/operation"),SchemaSelection_1=require("../common/SchemaSelection"),utils_1=require("../../utils");function OneOfSchemaComponent(e){var{schema:{oneOf:t},schema:r}=e,n=__rest(e,["schema","schema"]);const o=(0,react_router_dom_1.useLocation)(),[i]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(r.operationPointer)),s=t.findIndex(((e,t)=>(0,utils_1.pathIncludesLink)(o,`oneof=${t}`))),a=-1===s?0:s,c=t[void 0!==i.activeOneOf[r.pointer]?i.activeOneOf[r.pointer]:a];if(!c)return null;const _=t.map(((e,t)=>({label:e.title||e.typePrefix+e.displayType,value:t})));return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(common_1.SelectionTitle,{children:[r.oneOfType,":"]}),(0,jsx_runtime_1.jsx)(SchemaSelection_1.SchemaSelection,{options:_,pointer:r.operationPointer,schema:r,defaultOneOfIdx:a}),c.deprecated&&(0,jsx_runtime_1.jsx)(common_1.BadgeStyle,{deprecated:!0,children:"Deprecated"}),c.description&&(0,jsx_runtime_1.jsx)(StyledDescription,{source:c.description}),(0,jsx_runtime_1.jsx)(ConstraintsView_1.ConstraintsView,{constraints:c.constraints}),(0,jsx_runtime_1.jsx)(Schema_1.Schema,Object.assign({},n,{schema:c}))]})}exports.OneOfSchema=(0,react_1.memo)(OneOfSchemaComponent);const StyledDescription=(0,styled_components_1.default)(Markdown_1.Markdown)`
1
+ "use strict";var __rest=this&&this.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OneOfSchema=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")),react_router_dom_1=require("react-router-dom"),common_1=require("../common"),Markdown_1=require("../Markdown"),ConstraintsView_1=require("../common/ConstraintsView"),Schema_1=require("./Schema"),operation_1=require("../../jotai/operation"),SchemaSelection_1=require("../common/SchemaSelection"),utils_1=require("../../utils");function OneOfSchemaComponent(e){var{schema:{oneOf:t},schema:r}=e,n=__rest(e,["schema","schema"]);const o=(0,react_router_dom_1.useLocation)(),[i]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(r.operationPointer)),s=t.findIndex(((e,t)=>(0,utils_1.pathIncludesLink)(o,`oneof=${t}`))),a=-1===s?0:s,c=t[void 0!==i.activeOneOf[r.pointer]?i.activeOneOf[r.pointer]:a];if(!c)return null;const _=t.map(((e,t)=>({label:e.title||e.typePrefix+e.displayType,value:t})));return(0,jsx_runtime_1.jsxs)(Wrapper,{children:[(0,jsx_runtime_1.jsxs)(common_1.SelectionTitle,{children:[r.oneOfType,":"]}),(0,jsx_runtime_1.jsx)(SchemaSelection_1.SchemaSelection,{options:_,pointer:r.operationPointer,schema:r,defaultOneOfIdx:a}),c.deprecated&&(0,jsx_runtime_1.jsx)(common_1.BadgeStyle,{deprecated:!0,children:"Deprecated"}),c.description&&(0,jsx_runtime_1.jsx)(StyledDescription,{source:c.description}),(0,jsx_runtime_1.jsx)(ConstraintsView_1.ConstraintsView,{constraints:c.constraints}),(0,jsx_runtime_1.jsx)(Schema_1.Schema,Object.assign({},n,{schema:c}))]})}exports.OneOfSchema=(0,react_1.memo)(OneOfSchemaComponent);const StyledDescription=(0,styled_components_1.default)(Markdown_1.Markdown)`
2
2
  margin-top: var(--spacing-xs);
3
3
  font-size: var(--font-size-base);
4
4
  line-height: var(--line-height-base);
5
+ `,Wrapper=styled_components_1.default.div`
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: flex-start;
5
9
  `;
6
10
  //# sourceMappingURL=OneOfSchema.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Security=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),SecurityButton_1=require("./SecurityButton"),SecurityModal_1=require("./SecurityModal");function Security({securities:e}){const[t,r]=(0,react_1.useState)(!1);return e.length?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(SecurityButton_1.SecurityButton,{securities:e,onClick:()=>r(!0)}),t&&(0,jsx_runtime_1.jsx)(theme_1.Portal,{mountId:"api-content",children:(0,jsx_runtime_1.jsx)(SecurityModal_1.SecurityModal,{securities:e,onClose:()=>r(!1)})})]}):null}exports.Security=Security;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Security=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),SecurityButton_1=require("./SecurityButton"),SecurityModal_1=require("./SecurityModal");function Security({securities:e}){const[t,r]=(0,react_1.useState)(!1);return(0,theme_1.useModalScrollLock)(t),e.length?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(SecurityButton_1.SecurityButton,{securities:e,onClick:()=>r(!0)}),t&&(0,jsx_runtime_1.jsx)(theme_1.Portal,{mountId:"api-content",children:(0,jsx_runtime_1.jsx)(SecurityModal_1.SecurityModal,{securities:e,onClose:()=>r(!1)})})]}):null}exports.Security=Security;
2
2
  //# sourceMappingURL=Security.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.SecurityModal=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),SecurityFlow_1=require("./SecurityFlow"),Divider_1=require("./Divider");function SecurityModal({securities:e,onClose:t}){const[r,i]=(0,react_1.useState)(0),s=(0,react_1.useRef)(null),{schemes:o}=e[r]||{};(0,react_1.useEffect)((()=>(document.body.style.overflow="hidden",()=>{document.body.style.overflow="auto"})),[]),(0,theme_1.useOutsideClick)(s,t),(0,theme_1.useFocusTrap)(s);const a=e.map((({schemes:e},t)=>({label:e.map((({id:e})=>e)).join(" and "),value:t})));return(0,jsx_runtime_1.jsx)(StyledBackground,{children:(0,jsx_runtime_1.jsxs)(Wrapper,{ref:s,tabIndex:0,children:[(0,jsx_runtime_1.jsx)(Close,{onClick:t,"data-cy":"close",variant:"ghost",icon:(0,jsx_runtime_1.jsx)(theme_1.CloseIcon,{})}),(0,jsx_runtime_1.jsxs)(Title,{children:[(0,jsx_runtime_1.jsx)(theme_1.SecurityIcon,{size:"24px"}),"Security"]}),(0,jsx_runtime_1.jsx)(theme_1.Segmented,{value:r,onChange:({value:e})=>i(e),options:a}),o.map(((t,r)=>(0,jsx_runtime_1.jsxs)(react_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(SecurityFlow_1.SecurityFlow,Object.assign({},t,{securities:e})),r!==o.length-1&&(0,jsx_runtime_1.jsx)(Divider_1.Divider,{label:"and"})]},t.id)))]})})}exports.SecurityModal=SecurityModal;const Wrapper=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.SecurityModal=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),SecurityFlow_1=require("./SecurityFlow"),Divider_1=require("./Divider");function SecurityModal({securities:e,onClose:t}){const[i,r]=(0,react_1.useState)(0),s=(0,react_1.useRef)(null),{schemes:o}=e[i]||{};(0,theme_1.useOutsideClick)(s,t),(0,theme_1.useFocusTrap)(s);const a=e.map((({schemes:e},t)=>({label:e.map((({id:e})=>e)).join(" and "),value:t})));return(0,jsx_runtime_1.jsx)(StyledBackground,{children:(0,jsx_runtime_1.jsxs)(Wrapper,{ref:s,tabIndex:0,children:[(0,jsx_runtime_1.jsx)(Close,{onClick:t,"data-testid":"close",variant:"ghost",icon:(0,jsx_runtime_1.jsx)(theme_1.CloseIcon,{})}),(0,jsx_runtime_1.jsxs)(Title,{children:[(0,jsx_runtime_1.jsx)(theme_1.SecurityIcon,{size:"24px"}),"Security"]}),(0,jsx_runtime_1.jsx)(theme_1.Segmented,{value:i,onChange:({value:e})=>r(e),options:a}),o.map(((t,i)=>(0,jsx_runtime_1.jsxs)(react_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(SecurityFlow_1.SecurityFlow,Object.assign({},t,{securities:e})),i!==o.length-1&&(0,jsx_runtime_1.jsx)(Divider_1.Divider,{label:"and"})]},t.id)))]})})}exports.SecurityModal=SecurityModal;const Wrapper=styled_components_1.default.div`
2
2
  background: var(--bg-color);
3
3
  box-shadow: var(--bg-raised-shadow);
4
4
  border-radius: var(--border-radius-lg);
@@ -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.OperationsNavigation=exports.OperationsNavigationComponent=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),react_router_dom_1=require("react-router-dom"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),index_1=require("jotai/index"),common_1=require("../common"),utils_1=require("../../utils"),services_1=require("../../services"),app_1=require("../../jotai/app"),MAX_OPERATIONS=8;function OperationsNavigationComponent({items:e,routingBasePath:t}){const[n,o]=(0,react_1.useState)(!1),r=(0,react_router_dom_1.useNavigate)(),i=(0,index_1.useAtomValue)(app_1.layoutAtom)===theme_1.LayoutVariant.STACKED,{operations:a,webhooks:s,count:l}=(0,react_1.useMemo)((()=>{const t=e.filter((e=>"operation"===e.type)),o=n?t:t.slice(0,MAX_OPERATIONS),{operations:r,webhooks:i}=o.reduce(((e,t)=>t.isWebhook?Object.assign(Object.assign({},e),{webhooks:[...e.webhooks,t]}):Object.assign(Object.assign({},e),{operations:[...e.operations,t]})),{operations:[],webhooks:[]});return{operations:r,webhooks:i,count:!n&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[n,e]);if(!a.length&&!s.length)return null;const c=e=>{r(e)};return(0,jsx_runtime_1.jsxs)(Wrapper,{isStacked:i,"data-cy":"operation-navigation-list",children:[a.length>0&&(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Heading,{children:"Operations"}),a.map((({id:e,href:n,httpVerb:o,path:r})=>(0,jsx_runtime_1.jsx)(Item,{variant:"outlined",size:"large",onClick:()=>c((0,services_1.joinWithSeparator)(t,(0,utils_1.encodeBackSlashes)(n))),children:(0,jsx_runtime_1.jsxs)("span",{children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:o,children:o}),(0,jsx_runtime_1.jsx)(Path,{children:r})]})},e)))]}),s.length>0&&(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Heading,{children:"Webhooks"}),s.map((({id:e,href:n,httpVerb:o,path:r})=>(0,jsx_runtime_1.jsx)(Item,{variant:"outlined",size:"large",onClick:()=>c((0,services_1.joinWithSeparator)(t,(0,utils_1.encodeBackSlashes)(n))),children:(0,jsx_runtime_1.jsxs)("span",{children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:o,children:o}),(0,jsx_runtime_1.jsx)(Path,{children:r})]})},e)))]}),!n&&Boolean(l)&&(0,jsx_runtime_1.jsxs)(StyledButton,{variant:"link",size:"large","data-cy":"show-more-operations",fullWidth:!0,onClick:()=>o(!0),children:["Show ",l," more..."]})]})}exports.OperationsNavigationComponent=OperationsNavigationComponent,exports.OperationsNavigation=(0,react_1.memo)(OperationsNavigationComponent);const Wrapper=(0,styled_components_1.default)(common_1.SamplesPanel)`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationsNavigation=exports.OperationsNavigationComponent=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),react_router_dom_1=require("react-router-dom"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),index_1=require("jotai/index"),common_1=require("../common"),utils_1=require("../../utils"),services_1=require("../../services"),app_1=require("../../jotai/app"),MAX_OPERATIONS=8;function OperationsNavigationComponent({items:e,routingBasePath:t}){const[n,o]=(0,react_1.useState)(!1),r=(0,react_router_dom_1.useNavigate)(),i=(0,index_1.useAtomValue)(app_1.layoutAtom)===theme_1.LayoutVariant.STACKED,{operations:a,webhooks:s,count:l}=(0,react_1.useMemo)((()=>{const t=e.filter((e=>"operation"===e.type)),o=n?t:t.slice(0,MAX_OPERATIONS),{operations:r,webhooks:i}=o.reduce(((e,t)=>t.isWebhook?Object.assign(Object.assign({},e),{webhooks:[...e.webhooks,t]}):Object.assign(Object.assign({},e),{operations:[...e.operations,t]})),{operations:[],webhooks:[]});return{operations:r,webhooks:i,count:!n&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[n,e]);if(!a.length&&!s.length)return null;const c=e=>{r(e)};return(0,jsx_runtime_1.jsxs)(Wrapper,{isStacked:i,"data-testid":"operation-navigation-list",children:[a.length>0&&(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Heading,{children:"Operations"}),a.map((({id:e,href:n,httpVerb:o,path:r})=>(0,jsx_runtime_1.jsx)(Item,{variant:"outlined",size:"large",onClick:()=>c((0,services_1.joinWithSeparator)(t,(0,utils_1.encodeBackSlashes)(n))),children:(0,jsx_runtime_1.jsxs)("span",{children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:o,children:o}),(0,jsx_runtime_1.jsx)(Path,{children:r})]})},e)))]}),s.length>0&&(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Heading,{children:"Webhooks"}),s.map((({id:e,href:n,httpVerb:o,path:r})=>(0,jsx_runtime_1.jsx)(Item,{variant:"outlined",size:"large",onClick:()=>c((0,services_1.joinWithSeparator)(t,(0,utils_1.encodeBackSlashes)(n))),children:(0,jsx_runtime_1.jsxs)("span",{children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:o,children:o}),(0,jsx_runtime_1.jsx)(Path,{children:r})]})},e)))]}),!n&&Boolean(l)&&(0,jsx_runtime_1.jsxs)(StyledButton,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>o(!0),children:["Show ",l," more..."]})]})}exports.OperationsNavigationComponent=OperationsNavigationComponent,exports.OperationsNavigation=(0,react_1.memo)(OperationsNavigationComponent);const Wrapper=(0,styled_components_1.default)(common_1.SamplesPanel)`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: var(--spacing-xxs);
@@ -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.Dropdown=void 0;const jsx_runtime_1=require("react/jsx-runtime"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme");function DropdownComponent({options:e,value:t,onChange:n,className:r,triggerVariant:o="outlined",triggerSize:i="small"}){var a;const l=null===(a=e.find((e=>e.value===t)))||void 0===a?void 0:a.label;return 1===e.length?(0,jsx_runtime_1.jsx)(Title,{children:l}):(0,jsx_runtime_1.jsx)(theme_1.Dropdown,{className:r,trigger:(0,jsx_runtime_1.jsx)(theme_1.Button,{variant:o,size:i,type:"button",children:l}),withArrow:!0,children:(0,jsx_runtime_1.jsx)(theme_1.DropdownMenu,{children:e.map((e=>(0,jsx_runtime_1.jsx)(StyledDropdownMenuItem,{active:e.value===t,onAction:()=>n(e),suffix:e.value===t&&(0,jsx_runtime_1.jsx)(StyledCheckmarkIcon,{}),children:e.label},e.label)))})})}exports.Dropdown=(0,theme_1.typedMemo)(DropdownComponent);const StyledCheckmarkIcon=(0,styled_components_1.default)(theme_1.CheckmarkIcon)`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Dropdown=void 0;const jsx_runtime_1=require("react/jsx-runtime"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme");function DropdownComponent({options:e,value:t,onChange:n,className:r,triggerVariant:o="outlined",triggerSize:i="small"}){var a;const s=null===(a=e.find((e=>e.value===t)))||void 0===a?void 0:a.label;return 1===e.length?(0,jsx_runtime_1.jsx)(Title,{children:s}):(0,jsx_runtime_1.jsx)(theme_1.Dropdown,{className:r,trigger:(0,jsx_runtime_1.jsx)(theme_1.Button,{variant:o,size:i,type:"button",children:s}),withArrow:!0,children:(0,jsx_runtime_1.jsx)(theme_1.DropdownMenu,{children:e.map((e=>(0,jsx_runtime_1.jsx)(StyledDropdownMenuItem,{active:e.value===t,onAction:()=>n(e),suffix:e.value===t&&(0,jsx_runtime_1.jsx)(StyledCheckmarkIcon,{}),children:e.label},e.label)))})})}exports.Dropdown=(0,theme_1.typedMemo)(DropdownComponent);const StyledCheckmarkIcon=(0,styled_components_1.default)(theme_1.CheckmarkIcon)`
2
2
  width: 16px;
3
3
  height: 16px;
4
4
  margin-left: auto;
@@ -10,8 +10,8 @@
10
10
  align-items: center;
11
11
  gap: var(--spacing-md);
12
12
  padding: var(--spacing-xxs) var(--spacing-sm);
13
- font-size: var(--font-size-lg);
14
- line-height: var(--line-height-lg);
13
+ font-size: var(--font-size-base);
14
+ line-height: var(--line-height-base);
15
15
  `,Title=styled_components_1.default.span`
16
16
  margin-right: var(--spacing-unit);
17
17
  cursor: default;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SchemaSelection=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),Dropdown_1=require("../Dropdown"),operation_1=require("../../../jotai/operation"),LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:o,pointer:t,schema:n,defaultOneOfIdx:i}){var a,r;const[s,c]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(t)),l=null===(r=e[null!==(a=s.activeOneOf[n.pointer])&&void 0!==a?a:i])||void 0===r?void 0:r.value,u=(0,react_1.useCallback)((({value:e})=>{void 0!==e&&(o?o(e):c((o=>{var t,i;return Object.assign(Object.assign({},o),{activeExampleName:(null===(i=null===(t=n.oneOf)||void 0===t?void 0:t[e])||void 0===i?void 0:i.title)||o.activeExampleName,activeOneOf:Object.assign(Object.assign({},o.activeOneOf),{[n.pointer]:e})})})))}),[o,n.oneOf,n.pointer,c]);return(0,theme_1.isUndefined)(l)?null:e.length>LIMIT_FOR_SEGMENTED?(0,jsx_runtime_1.jsx)(Dropdown_1.Dropdown,{options:e,value:l,onChange:u}):(0,jsx_runtime_1.jsx)(theme_1.Segmented,{value:l,onChange:u,options:e,size:"small","data-cy":"segmented-schema"})}exports.SchemaSelection=SchemaSelectionComponent;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SchemaSelection=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),Dropdown_1=require("../Dropdown"),operation_1=require("../../../jotai/operation"),LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:t,pointer:o,schema:n,defaultOneOfIdx:i}){var a,r;const[s,c]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(o)),l=null===(r=e[null!==(a=s.activeOneOf[n.pointer])&&void 0!==a?a:i])||void 0===r?void 0:r.value,u=(0,react_1.useCallback)((({value:e})=>{void 0!==e&&(t?t(e):c((t=>{var o,i;return Object.assign(Object.assign({},t),{activeExampleName:(null===(i=null===(o=n.oneOf)||void 0===o?void 0:o[e])||void 0===i?void 0:i.title)||t.activeExampleName,activeOneOf:Object.assign(Object.assign({},t.activeOneOf),{[n.pointer]:e})})})))}),[t,n.oneOf,n.pointer,c]);return(0,theme_1.isUndefined)(l)?null:e.length>LIMIT_FOR_SEGMENTED?(0,jsx_runtime_1.jsx)(Dropdown_1.Dropdown,{options:e,value:l,onChange:u}):(0,jsx_runtime_1.jsx)(theme_1.Segmented,{value:l,onChange:u,options:e,size:"small","data-testid":"segmented-schema"})}exports.SchemaSelection=SchemaSelectionComponent;
2
2
  //# sourceMappingURL=SchemaSelection.js.map
package/lib/setupTests.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=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,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=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},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const Enzyme=__importStar(require("enzyme")),enzyme_adapter_react_18_1=__importDefault(require("@cfaester/enzyme-adapter-react-18"));require("raf/polyfill"),require("@testing-library/jest-dom"),require("jest-styled-components");const react_1=require("@testing-library/react"),node_crypto_1=require("node:crypto");Enzyme.configure({adapter:new enzyme_adapter_react_18_1.default}),(0,react_1.configure)({testIdAttribute:"data-cy"}),window.crypto.randomUUID=node_crypto_1.randomUUID,global.structuredClone=e=>JSON.parse(JSON.stringify(e));
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=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},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const Enzyme=__importStar(require("enzyme")),enzyme_adapter_react_18_1=__importDefault(require("@cfaester/enzyme-adapter-react-18"));require("raf/polyfill"),require("@testing-library/jest-dom"),require("jest-styled-components");const node_crypto_1=require("node:crypto");Enzyme.configure({adapter:new enzyme_adapter_react_18_1.default}),window.crypto.randomUUID=node_crypto_1.randomUUID,global.structuredClone=e=>JSON.parse(JSON.stringify(e));
2
2
  //# sourceMappingURL=setupTests.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{parser:o,options:e}=useAtomValue(globalStoreAtom),{definition:t}=o,n=useDownloadInfo({definition:t,downloadUrls:e.downloadUrls}),r=useCallback((o=>{switch(o){case"yaml":return _jsx(DocumentIcon,{});case"json":return _jsx(JsonIcon,{});default:return _jsx(FileIcon,{})}}),[]);return n?_jsx(Wrapper,{children:(n||[]).map((({title:o,url:e,iconType:t})=>_jsxs(Card,{children:[_jsxs(FileName,{children:[r(t),_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";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`
2
2
  display: flex;
3
3
  align-items: baseline;
4
4
  justify-content: space-between;
@@ -1,11 +1,9 @@
1
- import type { OpenAPIDefinition } from '../../types';
2
1
  export type DownloadUrlsConfig = {
3
2
  title?: string;
4
3
  url: string;
5
4
  }[];
6
5
  export type DownloadIconType = 'yaml' | 'json' | 'file';
7
6
  export type UseDownloadInfoProps = {
8
- definition?: OpenAPIDefinition;
9
7
  definitionUrl?: string;
10
8
  downloadUrls?: DownloadUrlsConfig;
11
9
  };
@@ -1,2 +1,2 @@
1
1
  import type { UseDownloadInfoProps, UseDownloadInfoReturnType } from './types';
2
- export declare const useDownloadInfo: ({ definition, downloadUrls, }: UseDownloadInfoProps) => UseDownloadInfoReturnType | undefined;
2
+ export declare const useDownloadInfo: ({ downloadUrls, }: UseDownloadInfoProps) => UseDownloadInfoReturnType | undefined;
@@ -1,2 +1,2 @@
1
- import{useMemo}from"react";import{IS_BROWSER}from"@redocly/theme";import*as yaml from"js-yaml";import{MediaTypes}from"../../constants";export const useDownloadInfo=({definition:e,downloadUrls:o})=>useMemo((()=>{if(o)return o.map((({title:e,url:o})=>({url:o,title:e||getFileNameFromUrl(o,"openapi.yaml"),iconType:getIconTypeFromUrl(o)})));if(IS_BROWSER&&window.Blob&&window.URL&&window.URL.createObjectURL){return[{title:"openapi.json",url:window.URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:MediaTypes.JSON})),iconType:"json"},{title:"openapi.yaml",url:window.URL.createObjectURL(new Blob([yaml.dump(e)],{type:"text/yaml"})),iconType:"yaml"}]}}),[e,o]);function getFileNameFromUrl(e,o){const t=e.split("?")[0].split(/[\\\/]/).pop();return t&&(t.includes("yaml")||t.includes("json"))?t:o}function getIconTypeFromUrl(e,o){const t=o||e.split("?")[0].split(/[\\\/]/).pop();return t?t.includes("yaml")?"yaml":t.includes("json")?"json":"file":"file"}
1
+ import{useMemo}from"react";export const useDownloadInfo=({downloadUrls:e})=>useMemo((()=>{if(e)return e.map((({title:e,url:o})=>({url:o,title:e||getFileNameFromUrl(o,"openapi.yaml"),iconType:getIconTypeFromUrl(o)})))}),[e]);function getFileNameFromUrl(e,o){const l=e.split("?")[0].split(/[\\\/]/).pop();return l&&(l.includes("yaml")||l.includes("json"))?l:o}function getIconTypeFromUrl(e,o){const l=o||e.split("?")[0].split(/[\\\/]/).pop();return l?l.includes("yaml")?"yaml":l.includes("json")?"json":"file":"file"}
2
2
  //# sourceMappingURL=useDownloadInfo.js.map
@@ -1,7 +1,7 @@
1
1
  import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation,Badge}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink}from"../../services";import{layoutAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";const OperationSamplesPanel=styled(SamplesPanel)`
2
2
  margin-left: auto;
3
3
  --code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
4
- `;function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const{parser:l,options:i}=useAtomValue(globalStoreAtom),n=useAtomValue(layoutAtom),[r,p]=useState(),{unstable_hooks:d,feedback:m}=i,c=useMemo((()=>getOperation(l,e,a,i,o)),[o,e,i,a,l]),{name:u,deprecated:k,isWebhook:x,badges:S}=c,b=n===LayoutVariant.STACKED,f=(null==m?void 0:m.type)||"sentiment",j=!0!==(null==m?void 0:m.hide),h=S.filter((({position:e})=>"before"===e)),_=S.filter((({position:e})=>"after"===e)),[g,O]=useState(null),y=useCallback((e=>{r!==e&&p(e)}),[r]);return _jsxs(OperationRow,{layout:n,children:[_jsx(OperationSubRowStyled,{layout:n,children:_jsxs(SamplesMiddlePanel,{isStacked:b,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==d?void 0:d.BeforeOperation),props:{operation:c}}),_jsxs(Heading,{"data-cy":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${u}`}),h.map((({name:e,color:a})=>_jsx(OperationBadge,{color:a,children:e},e))),u,_.map((({name:e,color:a})=>_jsx(OperationBadge,{color:a,children:e},e))),k&&_jsx(OperationBadge,{deprecated:!0,children:"Deprecated"}),x&&_jsx(OperationBadge,{children:"Webhook"})]})]})}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsx(SamplesMiddlePanel,{isStacked:b,children:_jsx(RequestDetails,{operation:c})}),_jsx(OperationSamplesPanel,{isStacked:b,"data-cy":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:c})})]}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsx(SamplesMiddlePanel,{isStacked:b,children:(null===(t=c.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:c.responses,operationId:c.id,operationPointer:c.pointer,callbackId:c.callbackId,activeResponseTab:r,onTabChange:y}):null}),_jsx(OperationSamplesPanel,{isStacked:b,"data-cy":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:c,activeResponseTab:r,onTabChange:y})})]}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsxs(SamplesMiddlePanel,{isStacked:b,children:[(null===(s=c.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(c.id,"callbacks")}),"Callbacks"]}),_jsx(CallbacksList,{callbacks:c.callbacks,onExpand:O,selectedCallback:g})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==d?void 0:d.AfterOperation),props:{operation:c}})]}),g?_jsx(OperationSamplesPanel,{isStacked:b,"data-cy":"samples-block",children:_jsx(CallbackSamples,{callback:g})}):null]}),_jsx(OperationSubRowStyled,{layout:n,children:_jsx(SamplesMiddlePanel,{isStacked:b,fullWidth:!0,children:j?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:f,settings:m.settings,path:c.href})}):null})})]})}export const OperationItem=memo(OperationItemComponent);const FeedbackWrapper=styled.div`
4
+ `;function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const{parser:l,options:i}=useAtomValue(globalStoreAtom),n=useAtomValue(layoutAtom),[r,p]=useState(),{unstable_hooks:d,feedback:m}=i,c=useMemo((()=>getOperation(l,e,a,i,o)),[o,e,i,a,l]),{name:u,deprecated:k,isWebhook:x,badges:S}=c,b=n===LayoutVariant.STACKED,f=(null==m?void 0:m.type)||"sentiment",j=!0!==(null==m?void 0:m.hide),h=S.filter((({position:e})=>"before"===e)),_=S.filter((({position:e})=>"after"===e)),[g,O]=useState(null),R=useCallback((e=>{r!==e&&p(e)}),[r]);return _jsxs(OperationRow,{layout:n,children:[_jsx(OperationSubRowStyled,{layout:n,children:_jsxs(SamplesMiddlePanel,{isStacked:b,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==d?void 0:d.BeforeOperation),props:{operation:c}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${u}`}),h.map((({name:e,color:a})=>_jsx(OperationBadge,{color:a,children:e},e))),u,_.map((({name:e,color:a})=>_jsx(OperationBadge,{color:a,children:e},e))),k&&_jsx(OperationBadge,{deprecated:!0,children:"Deprecated"}),x&&_jsx(OperationBadge,{children:"Webhook"})]})]})}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsx(SamplesMiddlePanel,{isStacked:b,children:_jsx(RequestDetails,{operation:c})}),_jsx(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:c})})]}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsx(SamplesMiddlePanel,{isStacked:b,children:(null===(t=c.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:c.responses,operationId:c.id,operationPointer:c.pointer,callbackId:c.callbackId,activeResponseTab:r,onTabChange:R}):null}),_jsx(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:c,activeResponseTab:r,onTabChange:R})})]}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsxs(SamplesMiddlePanel,{isStacked:b,children:[(null===(s=c.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(c.id,"callbacks")}),"Callbacks"]}),_jsx(CallbacksList,{callbacks:c.callbacks,onExpand:O,selectedCallback:g})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==d?void 0:d.AfterOperation),props:{operation:c}})]}),g?_jsx(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:g})}):null]}),_jsx(OperationSubRowStyled,{layout:n,children:_jsx(SamplesMiddlePanel,{isStacked:b,fullWidth:!0,children:j?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:f,settings:m.settings,path:c.href})}):null})})]})}export const OperationItem=memo(OperationItemComponent);const FeedbackWrapper=styled.div`
5
5
  & > div {
6
6
  flex: 1 1 auto;
7
7
  display: flex;
@@ -1,2 +1,2 @@
1
- import{isPrimitive}from"@redocly/theme";export function convertOperationToReplayValue(e,n,i,t){var a,r;const o=(null==t?void 0:t.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==i?void 0:i.requestValues),body:convertRequestBody(e.requestBody,n,(null===(a=null==i?void 0:i.requestValues)||void 0===a?void 0:a.body)?{[o]:null===(r=null==i?void 0:i.requestValues)||void 0===r?void 0:r.body}:void 0),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const i=new Set,t=e.map((e=>{var t;return i.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(t=null==n?void 0:n[String(e.in)])||void 0===t?void 0:t[e.name])||e.example}}));for(const[e,a]of Object.entries(n||{}))for(const[n,r]of Object.entries(a||{}))i.has(e+":"+n)||t.push({name:n,in:e,required:!1,description:"",example:String(r)});return t}function getInputType({type:e,format:n,enum:i}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":i.length>0?"select":"text":"file"}function getFieldExamples(e,n){var i,t,a,r,o;const l=(null===(i=e[0])||void 0===i?void 0:i.example)||(null===(t=e[0])||void 0===t?void 0:t.examples);if(l)return l;if(null===(a=e.schema)||void 0===a?void 0:a.example)return e.schema.example;const u=(null===(r=null==n?void 0:n.default)||void 0===r?void 0:r.value)||(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.rawValue);return(null==u?void 0:u[e.name])?isPrimitive(null==u?void 0:u[e.name])?String(null==u?void 0:u[e.name]):JSON.stringify(null==u?void 0:u[e.name]):""}function convertRequestBody(e,n,i){var t;if(!e||!(null===(t=e.content)||void 0===t?void 0:t.mediaTypes)){if(!i)return;return{mediaTypes:Object.fromEntries(Object.entries(i).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,mediaTypes:e.content.mediaTypes.reduce(((e,t)=>{var a,r;const o=t.schema,l=(null==i?void 0:i[t.name])?{default:{value:null==i?void 0:i[t.name],rawValue:null==i?void 0:i[t.name],mime:t.name}}:t.examples||t.formExamples;return e[t.name]={name:t.name,examples:l,schema:getBodySchema(null===(a=t.schema)||void 0===a?void 0:a.rawSchema,n),parameters:null===(r=null==o?void 0:o.fields)||void 0===r?void 0:r.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}export function convertRequestSecurity(e){if(e)return e.flatMap((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}
1
+ import{isPrimitive}from"@redocly/theme";export function convertOperationToReplayValue(e,n,i,t){var a,r;const o=(null==t?void 0:t.activeMimeName)||"application/json";return{name:e.name,method:e.httpVerb,parameters:convertParameters(e.parameters,null==i?void 0:i.requestValues),body:convertRequestBody(e.requestBody,n,(null===(a=null==i?void 0:i.requestValues)||void 0===a?void 0:a.body)?{[o]:null===(r=null==i?void 0:i.requestValues)||void 0===r?void 0:r.body}:void 0),path:e.path,servers:e.servers,security:convertRequestSecurity(e.security)}}function convertParameters(e,n){const i=new Set,t=e.map((e=>{var t;return i.add(e.in+":"+e.name),{name:e.name,in:e.in,required:e.required,description:e.description,example:(null===(t=null==n?void 0:n[String(e.in)])||void 0===t?void 0:t[e.name])||e.example,schema:e.schema}}));for(const[e,a]of Object.entries(n||{}))for(const[n,r]of Object.entries(a||{}))i.has(e+":"+n)||t.push({name:n,in:e,required:!1,description:"",example:String(r),schema:void 0});return t}function getInputType({type:e,format:n,enum:i}){return"string"!==e||"binary"!==n&&"base64"!==n?"object"===e?"multiline":i.length>0?"select":"text":"file"}function getFieldExamples(e,n){var i,t,a,r,o;const l=(null===(i=e[0])||void 0===i?void 0:i.example)||(null===(t=e[0])||void 0===t?void 0:t.examples);if(l)return l;if(null===(a=e.schema)||void 0===a?void 0:a.example)return e.schema.example;const m=(null===(r=null==n?void 0:n.default)||void 0===r?void 0:r.value)||(null===(o=null==n?void 0:n.default)||void 0===o?void 0:o.rawValue);return(null==m?void 0:m[e.name])?isPrimitive(null==m?void 0:m[e.name])?String(null==m?void 0:m[e.name]):JSON.stringify(null==m?void 0:m[e.name]):""}function convertRequestBody(e,n,i){var t;if(!e||!(null===(t=e.content)||void 0===t?void 0:t.mediaTypes)){if(!i)return;return{mediaTypes:Object.fromEntries(Object.entries(i).map((([e,n])=>[e,{name:e,examples:{default:{value:n}},schema:{},parameters:[]}])))}}return{required:e.required,mediaTypes:e.content.mediaTypes.reduce(((e,t)=>{var a,r;const o=t.schema,l=(null==i?void 0:i[t.name])?{default:{value:null==i?void 0:i[t.name],rawValue:null==i?void 0:i[t.name],mime:t.name}}:t.examples||t.formExamples;return e[t.name]={name:t.name,examples:l,schema:getBodySchema(null===(a=t.schema)||void 0===a?void 0:a.rawSchema,n),parameters:null===(r=null==o?void 0:o.fields)||void 0===r?void 0:r.map((e=>({inputType:getInputType(e.schema),name:e.name,example:getFieldExamples(e,l)})))},e}),{})}}function getBodySchema(e,n){if(e&&n)return Object.assign(Object.assign({},e),{components:(null==n?void 0:n.components)||{}})}export function convertRequestSecurity(e){if(e)return e.flatMap((({schemes:e})=>e.map((e=>({id:e.id,type:e.type,in:e.in,scopes:e.scopes,scheme:e.scheme,name:e.name,flows:e.flows})))))}
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{PanelHeader,PanelHeaderTitle}from"@redocly/theme";export const Summary=({tabs:e})=>_jsxs(PanelHeader,{isExpandable:!1,children:[_jsx(PanelHeaderTitle,{"data-cy":"title",children:"Response"}),e]});
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{PanelHeader,PanelHeaderTitle}from"@redocly/theme";export const Summary=({tabs:e})=>_jsxs(PanelHeader,{isExpandable:!1,children:[_jsx(PanelHeaderTitle,{"data-testid":"title",children:"Response"}),e]});
2
2
  //# sourceMappingURL=Summary.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-cy":"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";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])}})})};
2
2
  //# sourceMappingURL=ExampleSwitch.js.map
@@ -1,6 +1,10 @@
1
- var __rest=this&&this.__rest||function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(o[r[n]]=e[r[n]])}return o};import{jsxs as _jsxs,jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import{memo}from"react";import{useAtom}from"jotai";import styled from"styled-components";import{useLocation}from"react-router-dom";import{BadgeStyle,SelectionTitle}from"../common";import{Markdown}from"../Markdown";import{ConstraintsView}from"../common/ConstraintsView";import{Schema}from"./Schema";import{operationStore}from"../../jotai/operation";import{SchemaSelection}from"../common/SchemaSelection";import{pathIncludesLink}from"../../utils";function OneOfSchemaComponent(e){var{schema:{oneOf:t},schema:o}=e,r=__rest(e,["schema","schema"]);const n=useLocation(),[i]=useAtom(operationStore(o.operationPointer)),s=t.findIndex(((e,t)=>pathIncludesLink(n,`oneof=${t}`))),a=-1===s?0:s,m=t[void 0!==i.activeOneOf[o.pointer]?i.activeOneOf[o.pointer]:a];if(!m)return null;const c=t.map(((e,t)=>({label:e.title||e.typePrefix+e.displayType,value:t})));return _jsxs(_Fragment,{children:[_jsxs(SelectionTitle,{children:[o.oneOfType,":"]}),_jsx(SchemaSelection,{options:c,pointer:o.operationPointer,schema:o,defaultOneOfIdx:a}),m.deprecated&&_jsx(BadgeStyle,{deprecated:!0,children:"Deprecated"}),m.description&&_jsx(StyledDescription,{source:m.description}),_jsx(ConstraintsView,{constraints:m.constraints}),_jsx(Schema,Object.assign({},r,{schema:m}))]})}export const OneOfSchema=memo(OneOfSchemaComponent);const StyledDescription=styled(Markdown)`
1
+ var __rest=this&&this.__rest||function(e,t){var o={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(o[r[n]]=e[r[n]])}return o};import{jsxs as _jsxs,jsx as _jsx}from"react/jsx-runtime";import{memo}from"react";import{useAtom}from"jotai";import styled from"styled-components";import{useLocation}from"react-router-dom";import{BadgeStyle,SelectionTitle}from"../common";import{Markdown}from"../Markdown";import{ConstraintsView}from"../common/ConstraintsView";import{Schema}from"./Schema";import{operationStore}from"../../jotai/operation";import{SchemaSelection}from"../common/SchemaSelection";import{pathIncludesLink}from"../../utils";function OneOfSchemaComponent(e){var{schema:{oneOf:t},schema:o}=e,r=__rest(e,["schema","schema"]);const n=useLocation(),[i]=useAtom(operationStore(o.operationPointer)),s=t.findIndex(((e,t)=>pathIncludesLink(n,`oneof=${t}`))),a=-1===s?0:s,c=t[void 0!==i.activeOneOf[o.pointer]?i.activeOneOf[o.pointer]:a];if(!c)return null;const m=t.map(((e,t)=>({label:e.title||e.typePrefix+e.displayType,value:t})));return _jsxs(Wrapper,{children:[_jsxs(SelectionTitle,{children:[o.oneOfType,":"]}),_jsx(SchemaSelection,{options:m,pointer:o.operationPointer,schema:o,defaultOneOfIdx:a}),c.deprecated&&_jsx(BadgeStyle,{deprecated:!0,children:"Deprecated"}),c.description&&_jsx(StyledDescription,{source:c.description}),_jsx(ConstraintsView,{constraints:c.constraints}),_jsx(Schema,Object.assign({},r,{schema:c}))]})}export const OneOfSchema=memo(OneOfSchemaComponent);const StyledDescription=styled(Markdown)`
2
2
  margin-top: var(--spacing-xs);
3
3
  font-size: var(--font-size-base);
4
4
  line-height: var(--line-height-base);
5
+ `,Wrapper=styled.div`
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: flex-start;
5
9
  `;
6
10
  //# sourceMappingURL=OneOfSchema.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{useState}from"react";import{Portal}from"@redocly/theme";import{SecurityButton}from"./SecurityButton";import{SecurityModal}from"./SecurityModal";export function Security({securities:t}){const[r,e]=useState(!1);return t.length?_jsxs(_Fragment,{children:[_jsx(SecurityButton,{securities:t,onClick:()=>e(!0)}),r&&_jsx(Portal,{mountId:"api-content",children:_jsx(SecurityModal,{securities:t,onClose:()=>e(!1)})})]}):null}
1
+ import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{useState}from"react";import{Portal,useModalScrollLock}from"@redocly/theme";import{SecurityButton}from"./SecurityButton";import{SecurityModal}from"./SecurityModal";export function Security({securities:t}){const[r,e]=useState(!1);return useModalScrollLock(r),t.length?_jsxs(_Fragment,{children:[_jsx(SecurityButton,{securities:t,onClick:()=>e(!0)}),r&&_jsx(Portal,{mountId:"api-content",children:_jsx(SecurityModal,{securities:t,onClose:()=>e(!1)})})]}):null}
2
2
  //# sourceMappingURL=Security.js.map
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Fragment,useEffect,useState,useRef}from"react";import styled from"styled-components";import{useOutsideClick,Typography,CloseIcon,SecurityIcon,Segmented,Button,useFocusTrap}from"@redocly/theme";import{SecurityFlow}from"./SecurityFlow";import{Divider}from"./Divider";export function SecurityModal({securities:e,onClose:t}){const[o,s]=useState(0),i=useRef(null),{schemes:r}=e[o]||{};useEffect((()=>(document.body.style.overflow="hidden",()=>{document.body.style.overflow="auto"})),[]),useOutsideClick(i,t),useFocusTrap(i);const a=e.map((({schemes:e},t)=>({label:e.map((({id:e})=>e)).join(" and "),value:t})));return _jsx(StyledBackground,{children:_jsxs(Wrapper,{ref:i,tabIndex:0,children:[_jsx(Close,{onClick:t,"data-cy":"close",variant:"ghost",icon:_jsx(CloseIcon,{})}),_jsxs(Title,{children:[_jsx(SecurityIcon,{size:"24px"}),"Security"]}),_jsx(Segmented,{value:o,onChange:({value:e})=>s(e),options:a}),r.map(((t,o)=>_jsxs(Fragment,{children:[_jsx(SecurityFlow,Object.assign({},t,{securities:e})),o!==r.length-1&&_jsx(Divider,{label:"and"})]},t.id)))]})})}const Wrapper=styled.div`
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Fragment,useState,useRef}from"react";import styled from"styled-components";import{useOutsideClick,Typography,CloseIcon,SecurityIcon,Segmented,Button,useFocusTrap}from"@redocly/theme";import{SecurityFlow}from"./SecurityFlow";import{Divider}from"./Divider";export function SecurityModal({securities:e,onClose:t}){const[s,i]=useState(0),o=useRef(null),{schemes:r}=e[s]||{};useOutsideClick(o,t),useFocusTrap(o);const a=e.map((({schemes:e},t)=>({label:e.map((({id:e})=>e)).join(" and "),value:t})));return _jsx(StyledBackground,{children:_jsxs(Wrapper,{ref:o,tabIndex:0,children:[_jsx(Close,{onClick:t,"data-testid":"close",variant:"ghost",icon:_jsx(CloseIcon,{})}),_jsxs(Title,{children:[_jsx(SecurityIcon,{size:"24px"}),"Security"]}),_jsx(Segmented,{value:s,onChange:({value:e})=>i(e),options:a}),r.map(((t,s)=>_jsxs(Fragment,{children:[_jsx(SecurityFlow,Object.assign({},t,{securities:e})),s!==r.length-1&&_jsx(Divider,{label:"and"})]},t.id)))]})})}const Wrapper=styled.div`
2
2
  background: var(--bg-color);
3
3
  box-shadow: var(--bg-raised-shadow);
4
4
  border-radius: var(--border-radius-lg);
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useMemo,memo,useState}from"react";import{useNavigate}from"react-router-dom";import{Button,LayoutVariant}from"@redocly/theme";import styled from"styled-components";import{useAtomValue}from"jotai/index";import{HttpVerb,SamplesPanel}from"../common";import{encodeBackSlashes}from"../../utils";import{joinWithSeparator}from"../../services";import{layoutAtom}from"../../jotai/app";const MAX_OPERATIONS=8;export function OperationsNavigationComponent({items:e,routingBasePath:t}){const[o,a]=useState(!1),r=useNavigate(),n=useAtomValue(layoutAtom)===LayoutVariant.STACKED,{operations:i,webhooks:s,count:l}=useMemo((()=>{const t=e.filter((e=>"operation"===e.type)),a=o?t:t.slice(0,MAX_OPERATIONS),{operations:r,webhooks:n}=a.reduce(((e,t)=>t.isWebhook?Object.assign(Object.assign({},e),{webhooks:[...e.webhooks,t]}):Object.assign(Object.assign({},e),{operations:[...e.operations,t]})),{operations:[],webhooks:[]});return{operations:r,webhooks:n,count:!o&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[o,e]);if(!i.length&&!s.length)return null;const p=e=>{r(e)};return _jsxs(Wrapper,{isStacked:n,"data-cy":"operation-navigation-list",children:[i.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Operations"}),i.map((({id:e,href:o,httpVerb:a,path:r})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:a,children:a}),_jsx(Path,{children:r})]})},e)))]}),s.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Webhooks"}),s.map((({id:e,href:o,httpVerb:a,path:r})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:a,children:a}),_jsx(Path,{children:r})]})},e)))]}),!o&&Boolean(l)&&_jsxs(StyledButton,{variant:"link",size:"large","data-cy":"show-more-operations",fullWidth:!0,onClick:()=>a(!0),children:["Show ",l," more..."]})]})}export const OperationsNavigation=memo(OperationsNavigationComponent);const Wrapper=styled(SamplesPanel)`
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useMemo,memo,useState}from"react";import{useNavigate}from"react-router-dom";import{Button,LayoutVariant}from"@redocly/theme";import styled from"styled-components";import{useAtomValue}from"jotai/index";import{HttpVerb,SamplesPanel}from"../common";import{encodeBackSlashes}from"../../utils";import{joinWithSeparator}from"../../services";import{layoutAtom}from"../../jotai/app";const MAX_OPERATIONS=8;export function OperationsNavigationComponent({items:e,routingBasePath:t}){const[o,a]=useState(!1),r=useNavigate(),n=useAtomValue(layoutAtom)===LayoutVariant.STACKED,{operations:i,webhooks:s,count:l}=useMemo((()=>{const t=e.filter((e=>"operation"===e.type)),a=o?t:t.slice(0,MAX_OPERATIONS),{operations:r,webhooks:n}=a.reduce(((e,t)=>t.isWebhook?Object.assign(Object.assign({},e),{webhooks:[...e.webhooks,t]}):Object.assign(Object.assign({},e),{operations:[...e.operations,t]})),{operations:[],webhooks:[]});return{operations:r,webhooks:n,count:!o&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[o,e]);if(!i.length&&!s.length)return null;const p=e=>{r(e)};return _jsxs(Wrapper,{isStacked:n,"data-testid":"operation-navigation-list",children:[i.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Operations"}),i.map((({id:e,href:o,httpVerb:a,path:r})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:a,children:a}),_jsx(Path,{children:r})]})},e)))]}),s.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Webhooks"}),s.map((({id:e,href:o,httpVerb:a,path:r})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:a,children:a}),_jsx(Path,{children:r})]})},e)))]}),!o&&Boolean(l)&&_jsxs(StyledButton,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>a(!0),children:["Show ",l," more..."]})]})}export const OperationsNavigation=memo(OperationsNavigationComponent);const Wrapper=styled(SamplesPanel)`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: var(--spacing-xxs);
@@ -10,8 +10,8 @@ import{jsx as _jsx}from"react/jsx-runtime";import styled from"styled-components"
10
10
  align-items: center;
11
11
  gap: var(--spacing-md);
12
12
  padding: var(--spacing-xxs) var(--spacing-sm);
13
- font-size: var(--font-size-lg);
14
- line-height: var(--line-height-lg);
13
+ font-size: var(--font-size-base);
14
+ line-height: var(--line-height-base);
15
15
  `,Title=styled.span`
16
16
  margin-right: var(--spacing-unit);
17
17
  cursor: default;
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useCallback}from"react";import{useAtom}from"jotai";import{Segmented,isUndefined}from"@redocly/theme";import{Dropdown}from"../Dropdown";import{operationStore}from"../../../jotai/operation";const LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:o,pointer:n,schema:t,defaultOneOfIdx:i}){var a,r;const[m,s]=useAtom(operationStore(n)),l=null===(r=e[null!==(a=m.activeOneOf[t.pointer])&&void 0!==a?a:i])||void 0===r?void 0:r.value,c=useCallback((({value:e})=>{void 0!==e&&(o?o(e):s((o=>{var n,i;return Object.assign(Object.assign({},o),{activeExampleName:(null===(i=null===(n=t.oneOf)||void 0===n?void 0:n[e])||void 0===i?void 0:i.title)||o.activeExampleName,activeOneOf:Object.assign(Object.assign({},o.activeOneOf),{[t.pointer]:e})})})))}),[o,t.oneOf,t.pointer,s]);return isUndefined(l)?null:e.length>LIMIT_FOR_SEGMENTED?_jsx(Dropdown,{options:e,value:l,onChange:c}):_jsx(Segmented,{value:l,onChange:c,options:e,size:"small","data-cy":"segmented-schema"})}export const SchemaSelection=SchemaSelectionComponent;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useCallback}from"react";import{useAtom}from"jotai";import{Segmented,isUndefined}from"@redocly/theme";import{Dropdown}from"../Dropdown";import{operationStore}from"../../../jotai/operation";const LIMIT_FOR_SEGMENTED=5;function SchemaSelectionComponent({options:e,onChange:o,pointer:n,schema:t,defaultOneOfIdx:i}){var a,r;const[s,m]=useAtom(operationStore(n)),l=null===(r=e[null!==(a=s.activeOneOf[t.pointer])&&void 0!==a?a:i])||void 0===r?void 0:r.value,c=useCallback((({value:e})=>{void 0!==e&&(o?o(e):m((o=>{var n,i;return Object.assign(Object.assign({},o),{activeExampleName:(null===(i=null===(n=t.oneOf)||void 0===n?void 0:n[e])||void 0===i?void 0:i.title)||o.activeExampleName,activeOneOf:Object.assign(Object.assign({},o.activeOneOf),{[t.pointer]:e})})})))}),[o,t.oneOf,t.pointer,m]);return isUndefined(l)?null:e.length>LIMIT_FOR_SEGMENTED?_jsx(Dropdown,{options:e,value:l,onChange:c}):_jsx(Segmented,{value:l,onChange:c,options:e,size:"small","data-testid":"segmented-schema"})}export const SchemaSelection=SchemaSelectionComponent;
2
2
  //# sourceMappingURL=SchemaSelection.js.map
@@ -1,2 +1,2 @@
1
- import*as Enzyme from"enzyme";import Adapter from"@cfaester/enzyme-adapter-react-18";import"raf/polyfill";import"@testing-library/jest-dom";import"jest-styled-components";import{configure}from"@testing-library/react";import{randomUUID}from"node:crypto";Enzyme.configure({adapter:new Adapter}),configure({testIdAttribute:"data-cy"}),window.crypto.randomUUID=randomUUID,global.structuredClone=r=>JSON.parse(JSON.stringify(r));
1
+ import*as Enzyme from"enzyme";import Adapter from"@cfaester/enzyme-adapter-react-18";import"raf/polyfill";import"@testing-library/jest-dom";import"jest-styled-components";import{randomUUID}from"node:crypto";Enzyme.configure({adapter:new Adapter}),window.crypto.randomUUID=randomUUID,global.structuredClone=r=>JSON.parse(JSON.stringify(r));
2
2
  //# sourceMappingURL=setupTests.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "0.0.0-beta-20240422155039",
3
+ "version": "0.0.0-beta-20240423152253",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -16,7 +16,7 @@
16
16
  "openapi-docs": "bin.js"
17
17
  },
18
18
  "peerDependencies": {
19
- "@redocly/theme": "0.0.0-beta-20240422155039",
19
+ "@redocly/theme": "0.0.0-beta-20240423152253",
20
20
  "core-js": "^3.1.4",
21
21
  "react": "^18.0.0",
22
22
  "react-dom": "^18.0.0",
@@ -44,8 +44,7 @@
44
44
  "url": "~0.11.0",
45
45
  "url-template": "^2.0.8",
46
46
  "util": "~0.12.5",
47
- "js-yaml": "4.1.0",
48
- "@redocly/replay": "0.0.0-beta-20240422155039"
47
+ "@redocly/replay": "0.0.0-beta-20240423152253"
49
48
  },
50
49
  "devDependencies": {
51
50
  "@cfaester/enzyme-adapter-react-18": "0.7.1",
@@ -76,6 +75,7 @@
76
75
  "jest-environment-jsdom": "29.5.0",
77
76
  "jest-styled-components": "7.2.0",
78
77
  "jest-when": "3.6.0",
78
+ "js-yaml": "^4.1.0",
79
79
  "json-schema": "0.4.0",
80
80
  "outdent": "0.8.0",
81
81
  "react": "18.2.0",
@@ -94,7 +94,7 @@
94
94
  "webpack": "5.88.2",
95
95
  "webpack-cli": "5.1.4",
96
96
  "webpack-dev-server": "4.15.1",
97
- "@redocly/theme": "0.0.0-beta-20240422155039"
97
+ "@redocly/theme": "0.0.0-beta-20240423152253"
98
98
  },
99
99
  "scripts": {
100
100
  "start": "webpack serve --mode=development --hot",