@redocly/asyncapi-docs
Version:
Async API docs for Redocly Realm
40 lines (37 loc) • 2.38 kB
JavaScript
var x=Object.create;var i=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var v=(o,r)=>{for(var n in r)i(o,n,{get:r[n],enumerable:!0})},d=(o,r,n,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of u(r))!h.call(o,a)&&a!==n&&i(o,a,{get:()=>r[a],enumerable:!(s=b(r,a))||s.enumerable});return o};var y=(o,r,n)=>(n=o!=null?x(g(o)):{},d(r||!o||!o.__esModule?i(n,"default",{value:o,enumerable:!0}):n,o)),j=o=>d(i({},"__esModule",{value:!0}),o);var z={};v(z,{DownloadSpecification:()=>I});module.exports=j(z);var e=require("react/jsx-runtime"),c=require("react"),l=y(require("styled-components")),t=require("@redocly/theme"),m=require("@redocly/openapi-docs"),p=require("jotai"),f=require("../jotai/app");function k(){const o=(0,p.useAtomValue)(f.downloadUrlsAtom),r=(0,m.useDownloadInfo)({downloadUrls:o}),n=(0,c.useCallback)(s=>{switch(s){case"yaml":return(0,e.jsx)(t.DocumentIcon,{});case"json":return(0,e.jsx)(t.JsonIcon,{});default:return(0,e.jsx)(t.FileIcon,{})}},[]);return r?(0,e.jsx)(F,{children:(r||[]).map(({title:s,url:a,iconType:w})=>(0,e.jsxs)(D,{children:[(0,e.jsxs)(_,{children:[n(w),(0,e.jsx)("a",{href:a,target:"_blank",download:!0,rel:"noreferrer",children:s})]}),(0,e.jsx)("a",{href:a,target:"_blank",download:!0,rel:"noreferrer",children:(0,e.jsx)(t.Button,{variant:"text",size:"small",icon:(0,e.jsx)(t.DownloadIcon,{})})})]},s))}):(0,e.jsx)(e.Fragment,{})}const I=(0,c.memo)(k),D=l.default.div`
display: flex;
align-items: baseline;
justify-content: space-between;
width: 100%;
border-bottom: 1px solid var(--border-color-secondary);
padding-bottom: var(--spacing-sm);
:last-of-type {
padding-bottom: 0px;
border-bottom: none;
}
`,_=l.default.span`
display: flex;
width: calc(100% - 25px);
gap: var(--spacing-xs);
align-items: center;
svg {
flex-shrink: 0;
}
a {
width: 100%;
color: var(--text-color-primary);
word-break: break-word;
text-decoration: none;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
`,F=l.default.div`
display: flex;
align-items: center;
align-self: flex-start;
justify-content: space-between;
flex-direction: column;
gap: var(--spacing-sm);
font-size: var(--font-size-base);
`;0&&(module.exports={DownloadSpecification});