@redocly/openapi-docs 0.0.0-beta-20240223133421 → 0.0.0-beta-20240226163902

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 (46) hide show
  1. package/dist/redocly-openapi-docs.min.js +445 -498
  2. package/lib/components/CallbackSamples/CallbackSamples.js +1 -2
  3. package/lib/components/Callbacks/CallbackSummary.js +2 -13
  4. package/lib/components/Download/DownloadSpecification.js +1 -5
  5. package/lib/components/Language/LanguageList.js +1 -1
  6. package/lib/components/Language/styled.d.ts +0 -1
  7. package/lib/components/Language/styled.js +2 -9
  8. package/lib/components/PropertyDetails/DescriptionEnums.js +2 -2
  9. package/lib/components/PropertyDetails/SimpleEnums.js +1 -1
  10. package/lib/components/PropertyDetails/styled.d.ts +0 -1
  11. package/lib/components/PropertyDetails/styled.js +1 -10
  12. package/lib/components/RequestSamples/RequestSamples.js +6 -1
  13. package/lib/components/SectionContent/SectionContent.js +1 -1
  14. package/lib/components/Security/SecurityButton.js +6 -10
  15. package/lib/components/Security/SecurityModal.js +6 -14
  16. package/lib/components/Security/SecuritySchemeItem.js +3 -3
  17. package/lib/components/ServerListDropdown/styled.js +0 -3
  18. package/lib/components/TagItem/OperationsNavigation.js +16 -14
  19. package/lib/components/ViewNested/ViewNested.js +1 -13
  20. package/lib/components/common/DropdownTheme/Dropdown.js +2 -10
  21. package/lib/components/common/Fields/fields.d.ts +5 -1
  22. package/lib/components/common/Fields/fields.js +2 -6
  23. package/lib/services/search/SearchStore.js +17 -6
  24. package/lib-esm/components/CallbackSamples/CallbackSamples.js +1 -2
  25. package/lib-esm/components/Callbacks/CallbackSummary.js +2 -13
  26. package/lib-esm/components/Download/DownloadSpecification.js +1 -5
  27. package/lib-esm/components/Language/LanguageList.js +1 -1
  28. package/lib-esm/components/Language/styled.d.ts +0 -1
  29. package/lib-esm/components/Language/styled.js +1 -8
  30. package/lib-esm/components/PropertyDetails/DescriptionEnums.js +2 -2
  31. package/lib-esm/components/PropertyDetails/SimpleEnums.js +1 -1
  32. package/lib-esm/components/PropertyDetails/styled.d.ts +0 -1
  33. package/lib-esm/components/PropertyDetails/styled.js +1 -10
  34. package/lib-esm/components/RequestSamples/RequestSamples.js +6 -1
  35. package/lib-esm/components/SectionContent/SectionContent.js +2 -2
  36. package/lib-esm/components/Security/SecurityButton.js +6 -10
  37. package/lib-esm/components/Security/SecurityModal.js +6 -14
  38. package/lib-esm/components/Security/SecuritySchemeItem.js +3 -3
  39. package/lib-esm/components/ServerListDropdown/styled.js +0 -3
  40. package/lib-esm/components/TagItem/OperationsNavigation.js +16 -14
  41. package/lib-esm/components/ViewNested/ViewNested.js +1 -13
  42. package/lib-esm/components/common/DropdownTheme/Dropdown.js +2 -10
  43. package/lib-esm/components/common/Fields/fields.d.ts +5 -1
  44. package/lib-esm/components/common/Fields/fields.js +2 -6
  45. package/lib-esm/services/search/SearchStore.js +17 -6
  46. package/package.json +4 -4
@@ -1,20 +1,9 @@
1
- import React from"react";import{PanelHeader,Badge}from"@redocly/theme";import styled from"styled-components";import{Trigger}from"../Panel";import{HttpVerb}from"../shared";import{makeDeepLink}from"../../services";import{shortenHTTPVerb}from"../../utils";import{CallbackTitle}from"./styled";import{CircleIcon}from"../PropertyDetails/PlusCircleIcon";import{LinkToField}from"../common/LinkToField";export function CallbackSummary({expanded:e=!1,toggle:r,operation:{name:a,httpVerb:t,deprecated:n,callbackId:l,id:o}}){return React.createElement(CallbackHeader,{expanded:e,onClick:r},React.createElement(LinkToField,{to:makeDeepLink(o,`callbacks&c=${l}`)}),React.createElement(Trigger,null,React.createElement(CircleIconWrap,null,React.createElement(CircleIcon,{sign:e?"-":"+"})),React.createElement(CallbackTitle,{deprecated:n},a),React.createElement(HttpVerb,{color:t},shortenHTTPVerb(t)),n?React.createElement(Badge,{deprecated:!0},"Deprecated"):null))}const CallbackHeader=styled(PanelHeader)`
1
+ import React from"react";import{PanelHeader,Badge,Button}from"@redocly/theme";import styled from"styled-components";import{Trigger}from"../Panel";import{HttpVerb}from"../shared";import{makeDeepLink}from"../../services";import{shortenHTTPVerb}from"../../utils";import{CallbackTitle}from"./styled";import{CircleIcon}from"../PropertyDetails/PlusCircleIcon";import{LinkToField}from"../common/LinkToField";export function CallbackSummary({expanded:e=!1,toggle:t,operation:{name:r,httpVerb:a,deprecated:c,callbackId:l,id:n}}){return React.createElement(CallbackHeader,{expanded:e,onClick:t},React.createElement(LinkToField,{to:makeDeepLink(n,`callbacks&c=${l}`)}),React.createElement(Trigger,null,React.createElement(CircleIconWrap,{icon:React.createElement(CircleIcon,{sign:e?"-":"+"}),variant:"ghost"}),React.createElement(CallbackTitle,{deprecated:c},r),React.createElement(HttpVerb,{color:a},shortenHTTPVerb(a)),c?React.createElement(Badge,{deprecated:!0},"Deprecated"):null))}const CallbackHeader=styled(PanelHeader)`
2
2
  padding: var(--spacing-sm) 0 var(--spacing-sm) calc(var(--spacing-unit) / 2);
3
3
  margin: 0;
4
4
  line-height: var(--line-height-base);
5
5
  position: relative;
6
- `,CircleIconWrap=styled.button`
7
- background: none;
8
- border: none;
9
- cursor: pointer;
10
- display: flex;
11
- align-items: center;
12
- padding: 0;
13
- gap: var(--spacing-xxs);
14
- color: var(--text-color-secondary);
15
- font-size: var(--font-size-base);
16
- font-family: var(--font-family-base);
17
- line-height: var(--line-height-base);
6
+ `,CircleIconWrap=styled(Button)`
18
7
  z-index: 2;
19
8
  `;
20
9
  //# sourceMappingURL=CallbackSummary.js.map
@@ -1,8 +1,4 @@
1
- import React,{memo}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{DownloadIcon,DocumentIcon,JsonIcon,breakpoints}from"@redocly/theme";import{useDownloadInfo}from"./useDownloadInfo";import{globalStoreAtom}from"../../jotai/store";function DownloadSpecificationComponent(){const{parser:e,options:o}=useAtomValue(globalStoreAtom),{definition:t}=e,{json:n,yaml:a}=useDownloadInfo({definition:t,downloadDefinitionUrls:o.downloadDefinitionUrls});return React.createElement(Wrapper,null,React.createElement(Card,null,React.createElement(FileName,null,React.createElement(JsonIcon,null),n.filename),React.createElement(DownloadLink,{download:!0,target:"_blank",href:n.url},React.createElement(DownloadIcon,null))),React.createElement(Card,null,React.createElement(FileName,null,React.createElement(DocumentIcon,null),a.filename),React.createElement(DownloadLink,{download:!0,target:"_blank",href:a.url},React.createElement(DownloadIcon,null))))}export const DownloadSpecification=memo(DownloadSpecificationComponent);const DownloadLink=styled.a.attrs({className:"download-specification-button button-default"})`
2
- margin-left: var(--spacing-xxs);
3
- text-decoration: none;
4
- color: var(--text-color-secondary);
5
- `,Card=styled.div`
1
+ import React,{memo}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{DownloadIcon,DocumentIcon,JsonIcon,breakpoints,Button}from"@redocly/theme";import{useDownloadInfo}from"./useDownloadInfo";import{globalStoreAtom}from"../../jotai/store";function DownloadSpecificationComponent(){const{parser:e,options:t}=useAtomValue(globalStoreAtom),{definition:o}=e,{json:n,yaml:a}=useDownloadInfo({definition:o,downloadDefinitionUrls:t.downloadDefinitionUrls});return React.createElement(Wrapper,null,React.createElement(Card,null,React.createElement(FileName,null,React.createElement(DocumentIcon,null),a.filename),React.createElement("a",{href:a.url,target:"_blank",download:!0,rel:"noreferrer"},React.createElement(Button,{variant:"ghost",size:"small",icon:React.createElement(DownloadIcon,null)}))),React.createElement(Card,null,React.createElement(FileName,null,React.createElement(JsonIcon,null),n.filename),React.createElement("a",{href:n.url,target:"_blank",download:!0,rel:"noreferrer"},React.createElement(Button,{variant:"ghost",size:"small",icon:React.createElement(DownloadIcon,null)}))))}export const DownloadSpecification=memo(DownloadSpecificationComponent);const Card=styled.div`
6
2
  display: flex;
7
3
  align-items: baseline;
8
4
  justify-content: space-between;
@@ -1,2 +1,2 @@
1
- import React,{useLayoutEffect,useRef,useState,useCallback,memo}from"react";import{useAtomValue,useSetAtom}from"jotai";import{OverflowMenuVerticalIcon}from"@redocly/theme";import{LanguageDropdown}from"./LanguageDropdown";import{languageAtom,layoutAtom}from"../../jotai/app";import{LanguageListContainer,LanguageListItem,MoreIconController,Container}from"./styled";import{LanguageItem}from"./LanguageItem";import{ITEM_WIDTH}from"./constants";function LanguageListComponent({languages:e,activeLanguage:t}){const[n,a]=useState(e),[o,r]=useState([]),i=useRef(null),l=useAtomValue(layoutAtom),s=useSetAtom(languageAtom),c=useCallback((()=>{var e;const l=null===(e=null==i?void 0:i.current)||void 0===e?void 0:e.offsetWidth,{newVisibleItems:s,newHiddenItems:c}=calculateVisibleAndHiddenItems(l,[...n,...o]),m=c.findIndex((e=>e.key===t.key));-1!==m&&swapItems(s,c,m),a(s),r(c)}),[t.key,o,n]);return useLayoutEffect((()=>(c(),window.addEventListener("resize",c),()=>{window.removeEventListener("resize",c)})),[l,t]),React.createElement(Container,{ref:i},React.createElement(LanguageListContainer,null,n.map((e=>React.createElement(LanguageListItem,{key:e.key,onClick:()=>s({activeLanguage:e}),active:t.key===e.key},React.createElement(LanguageItem,{item:e,withIcon:!0}))))),o.length?React.createElement(LanguageDropdown,{activeTab:t,samples:o,onChange:e=>{const t=o.findIndex((t=>t.key===e.key));if(-1!==t){const i=[...o],l=[...n];swapItems(l,i,t),a(l),r(i),s({activeLanguage:e})}},controller:React.createElement(MoreIconController,null,React.createElement(OverflowMenuVerticalIcon,{color:"--text-color-secondary"})),withArrow:!1,withCheckmark:!1,width:156}):null)}export const LanguageList=memo(LanguageListComponent);function calculateVisibleAndHiddenItems(e,t){let n=0;const a=[],o=[];return t.forEach((t=>{const r=ITEM_WIDTH;e&&n+r<=e?(a.push(t),n+=r):o.push(t)})),{newVisibleItems:a,newHiddenItems:o}}function swapItems(e,t,n){const a=e[e.length-1];a&&(e[e.length-1]=t[n],t[n]=a)}
1
+ import React,{useLayoutEffect,useRef,useState,useCallback,memo}from"react";import{useAtomValue,useSetAtom}from"jotai";import{OverflowMenuVerticalIcon,Button}from"@redocly/theme";import{LanguageDropdown}from"./LanguageDropdown";import{languageAtom,layoutAtom}from"../../jotai/app";import{LanguageListContainer,LanguageListItem,Container}from"./styled";import{LanguageItem}from"./LanguageItem";import{ITEM_WIDTH}from"./constants";function LanguageListComponent({languages:e,activeLanguage:t}){const[n,a]=useState(e),[o,i]=useState([]),s=useRef(null),u=useAtomValue(layoutAtom),m=useSetAtom(languageAtom),r=useCallback((()=>{var e;const u=null===(e=null==s?void 0:s.current)||void 0===e?void 0:e.offsetWidth,{newVisibleItems:m,newHiddenItems:r}=calculateVisibleAndHiddenItems(u,[...n,...o]),c=r.findIndex((e=>e.key===t.key));-1!==c&&swapItems(m,r,c),a(m),i(r)}),[t.key,o,n]);return useLayoutEffect((()=>(r(),window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)})),[u,t]),React.createElement(Container,{ref:s},React.createElement(LanguageListContainer,null,n.map((e=>React.createElement(LanguageListItem,{key:e.key,onClick:()=>m({activeLanguage:e}),active:t.key===e.key},React.createElement(LanguageItem,{item:e,withIcon:!0}))))),o.length?React.createElement(LanguageDropdown,{activeTab:t,samples:o,onChange:e=>{const t=o.findIndex((t=>t.key===e.key));if(-1!==t){const s=[...o],u=[...n];swapItems(u,s,t),a(u),i(s),m({activeLanguage:e})}},controller:React.createElement(Button,{variant:"ghost",icon:React.createElement(OverflowMenuVerticalIcon,null)}),withArrow:!1,withCheckmark:!1,width:156}):null)}export const LanguageList=memo(LanguageListComponent);function calculateVisibleAndHiddenItems(e,t){let n=0;const a=[],o=[];return t.forEach((t=>{const i=ITEM_WIDTH;e&&n+i<=e?(a.push(t),n+=i):o.push(t)})),{newVisibleItems:a,newHiddenItems:o}}function swapItems(e,t,n){const a=e[e.length-1];a&&(e[e.length-1]=t[n],t[n]=a)}
2
2
  //# sourceMappingURL=LanguageList.js.map
@@ -12,4 +12,3 @@ export declare const DropdownItemContainer: import("styled-components").StyledCo
12
12
  width?: number | undefined;
13
13
  }, never>;
14
14
  export declare const DropdownControllerText: import("styled-components").StyledComponent<"span", any, {}, never>;
15
- export declare const MoreIconController: import("styled-components").StyledComponent<"span", any, {}, never>;
@@ -59,15 +59,8 @@ import styled,{css}from"styled-components";import{ITEM_WIDTH}from"./constants";e
59
59
  fill: var(--menu-item-content-color-active);
60
60
  `;export const DropdownControllerText=styled.span`
61
61
  margin: 0 var(--spacing-unit) 0 calc(var(--spacing-unit) * 0.5);
62
- color: var(--menu-item-content-color-active);
63
62
  display: inline-block;
64
- word-break: break-all;
65
- line-height: var(--line-height-sm);
63
+ line-height: var(--line-height-base);
66
64
  font-size: var(--font-size-base);
67
- `;export const MoreIconController=styled.span`
68
- display: flex;
69
- align-items: center;
70
- justify-content: center;
71
- height: 100%;
72
65
  `;
73
66
  //# sourceMappingURL=styled.js.map
@@ -1,5 +1,5 @@
1
- import React,{memo}from"react";import styled from"styled-components";import{Markdown}from"../Markdown";import{DescriptionEnumsBlock,ToggleButton}from"./styled";const EnumValueStyled=styled.td`
1
+ import React,{memo}from"react";import styled from"styled-components";import{Markdown}from"../Markdown";import{DescriptionEnumsBlock}from"./styled";import{ToggleButton}from"../common";const EnumValueStyled=styled.td`
2
2
  max-width: 15vw;
3
3
  word-wrap: break-word;
4
- `;export function DescriptionEnumsComponent({enums:e,toggle:t,showToggleButton:n,toggleButtonText:l,type:a}){return React.createElement(React.Fragment,null,React.createElement(DescriptionEnumsBlock,null,React.createElement("table",{className:"md"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"array"===a?"Items":""," ",1===e.length?"Value":"Enum Value"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,e.map((({description:e,value:t})=>React.createElement("tr",{key:t},React.createElement(EnumValueStyled,null,t),React.createElement("td",null,React.createElement(Markdown,{source:e})))))))),n?React.createElement(ToggleButton,{onClick:t},l):null)}export const DescriptionEnums=memo(DescriptionEnumsComponent);
4
+ `;export function DescriptionEnumsComponent({enums:e,toggle:t,showToggleButton:n,toggleButtonText:l,type:o}){return React.createElement(React.Fragment,null,React.createElement(DescriptionEnumsBlock,null,React.createElement("table",{className:"md"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"array"===o?"Items":""," ",1===e.length?"Value":"Enum Value"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,e.map((({description:e,value:t})=>React.createElement("tr",{key:t},React.createElement(EnumValueStyled,null,t),React.createElement("td",null,React.createElement(Markdown,{source:e})))))))),n?React.createElement(ToggleButton,{onClick:t},l):null)}export const DescriptionEnums=memo(DescriptionEnumsComponent);
5
5
  //# sourceMappingURL=DescriptionEnums.js.map
@@ -1,4 +1,4 @@
1
- import React,{memo}from"react";import styled from"styled-components";import{FieldLabel,Tag}from"../common";import{ToggleButton}from"./styled";export function SimpleEnumsComponent({enums:e,enumSkipQuotes:t,type:n,toggle:o,showToggleButton:m,toggleButtonText:l}){return React.createElement(Row,null,React.createElement(FieldLabel,null,"array"===n?"Items":""," ",1===e.length?"Value":"Enum"),e.map(((e,n)=>React.createElement(Tag,{key:e+n},t?String(e):JSON.stringify(e)))),m?React.createElement(ToggleButton,{onClick:o},l):null)}export const SimpleEnums=memo(SimpleEnumsComponent);const Row=styled.div`
1
+ import React,{memo}from"react";import styled from"styled-components";import{FieldLabel,Tag,ToggleButton}from"../common";export function SimpleEnumsComponent({enums:e,enumSkipQuotes:t,type:n,toggle:o,showToggleButton:l,toggleButtonText:m}){return React.createElement(Row,null,React.createElement(FieldLabel,null,"array"===n?"Items":""," ",1===e.length?"Value":"Enum"),e.map(((e,n)=>React.createElement(Tag,{key:e+n},t?String(e):JSON.stringify(e)))),l?React.createElement(ToggleButton,{onClick:o},m):null)}export const SimpleEnums=memo(SimpleEnumsComponent);const Row=styled.div`
2
2
  display: flex;
3
3
  flex-wrap: wrap;
4
4
  align-items: center;
@@ -1,4 +1,3 @@
1
- export declare const ToggleButton: import("styled-components").StyledComponent<"button", any, {}, never>;
2
1
  export declare const DescriptionEnumsBlock: import("styled-components").StyledComponent<"main", any, {
3
2
  compact?: boolean | undefined;
4
3
  inline?: boolean | undefined;
@@ -1,13 +1,4 @@
1
- import styled from"styled-components";import{Markdown as MarkdownWrapper}from"@redocly/theme";export const ToggleButton=styled.button`
2
- background: none;
3
- border: none;
4
- color: var(--link-color-primary);
5
- vertical-align: middle;
6
- font-size: 13px;
7
- line-height: 20px;
8
- padding: 0;
9
- cursor: pointer;
10
- `;export const DescriptionEnumsBlock=styled(MarkdownWrapper)`
1
+ import styled from"styled-components";import{Markdown as MarkdownWrapper}from"@redocly/theme";export const DescriptionEnumsBlock=styled(MarkdownWrapper)`
11
2
  table.md {
12
3
  margin: var(--spacing-xs) 0 0;
13
4
  display: table;
@@ -1,2 +1,7 @@
1
- var __rest=this&&this.__rest||function(e,a){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&a.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)a.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o};import React,{memo,useCallback,useEffect,useMemo}from"react";import{useAtomValue,useAtom}from"jotai";import{PanelHeader,Panel}from"@redocly/theme";import{PayloadSamples}from"../PayloadSamples";import{CodeSample}from"./CodeSample";import{useCodeSamples}from"./useCodeSamples";import{isPayloadSample}from"../../models";import{createCodeSampleCopyEvent}from"../../events";import{globalOptionsAtom}from"../../jotai/store";import{useTabsState}from"../Tabs";import{ServerListDropdown}from"../ServerListDropdown";import{LanguageDropdown}from"../Language";import{languageAtom}from"../../jotai/app";import{Replay}from"../Replay";function RequestSamplesComponent(e){var{operation:a,defaultLanguage:o="",disableHeader:t,content:r}=e,l=__rest(e,["operation","defaultLanguage","disableHeader","content"]);const[{activeLanguage:n},s]=useAtom(languageAtom),{events:m,corsProxyUrl:p}=useAtomValue(globalOptionsAtom),{samples:i,payload:c}=useCodeSamples(a),u=useCallback((({lang:e,title:o})=>()=>{var t;const r=createCodeSampleCopyEvent({operation:a,label:o,lang:e,type:"request"});null===(t=null==m?void 0:m.codeSamplesCopy)||void 0===t||t.call(m,r)}),[a,m]),d=useMemo((()=>i.map((({key:e,title:a})=>({key:e,title:a})))),[i]),y=useMemo((()=>i.find((({lang:e,key:a})=>[e,a].some((e=>e.toLowerCase()===o.toLowerCase()||e.toLowerCase()===n.key.toLowerCase()))))),[i,o,n.key]),{activeTab:g,handleTabChange:f}=useTabsState({tabs:d,defaultTab:y});useEffect((()=>{g.key!==n.key&&d.some((({key:e})=>e===n.key))&&f(n)}),[n,g.key,f,d]);const C=useCallback((e=>{f(e),s({activeLanguage:e})}),[f,s]),b=useMemo((()=>i.map((e=>e.key===g.key?React.createElement("div",{key:e.key+a.id},isPayloadSample(e)?React.createElement(PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:u(e)},l)):React.createElement(CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,content:null==c?void 0:c.requestBodyContent,operation:a,onCopyClick:u(e)},l))):null))),[g.key,u,a,null==c?void 0:c.requestBodyContent,l,i]);return i.length?React.createElement(Panel,{className:"panel-request-samples",header:t?void 0:()=>React.createElement(PanelHeader,{isExpandable:!1},React.createElement(ServerListDropdown,{operation:a}),React.createElement(LanguageDropdown,{activeTab:g,samples:i,onChange:C})),footer:React.createElement(Replay,{operation:a,corsProxyUrl:p}),isExpandable:!1},b):null}export const RequestSamples=memo(RequestSamplesComponent);
1
+ var __rest=this&&this.__rest||function(e,t){var a={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(a[o[r]]=e[o[r]])}return a};import React,{memo,useCallback,useEffect,useMemo}from"react";import{useAtomValue,useAtom}from"jotai";import{PanelHeader,Panel}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{globalOptionsAtom}from"../../jotai/store";import{useTabsState}from"../Tabs";import{ServerListDropdown}from"../ServerListDropdown";import{LanguageDropdown}from"../Language";import{languageAtom}from"../../jotai/app";import{Replay}from"../Replay";function RequestSamplesComponent(e){var{operation:t,defaultLanguage:a="",disableHeader:o,content:r}=e,l=__rest(e,["operation","defaultLanguage","disableHeader","content"]);const[{activeLanguage:n},s]=useAtom(languageAtom),{events:m,corsProxyUrl:p}=useAtomValue(globalOptionsAtom),{samples:i,payload:d}=useCodeSamples(t),c=useCallback((({lang:e,title:a})=>()=>{var o;const r=createCodeSampleCopyEvent({operation:t,label:a,lang:e,type:"request"});null===(o=null==m?void 0:m.codeSamplesCopy)||void 0===o||o.call(m,r)}),[t,m]),u=useMemo((()=>i.map((({key:e,title:t})=>({key:e,title:t})))),[i]),y=useMemo((()=>i.find((({lang:e,key:t})=>[e,t].some((e=>e.toLowerCase()===a.toLowerCase()||e.toLowerCase()===n.key.toLowerCase()))))),[i,a,n.key]),{activeTab:g,handleTabChange:f}=useTabsState({tabs:u,defaultTab:y});useEffect((()=>{g.key!==n.key&&u.some((({key:e})=>e===n.key))&&f(n)}),[n,g.key,f,u]);const S=useCallback((e=>{f(e),s({activeLanguage:e})}),[f,s]),C=useMemo((()=>i.map((e=>e.key===g.key?React.createElement("div",{key:e.key+t.id},isPayloadSample(e)?React.createElement(PayloadSamples,Object.assign({content:e.requestBodyContent,onCopyClick:c(e)},l)):React.createElement(CodeSample,Object.assign({lang:e.lang,source:e.source,externalSample:e,content:null==d?void 0:d.requestBodyContent,operation:t,onCopyClick:c(e)},l))):null))),[g.key,c,t,null==d?void 0:d.requestBodyContent,l,i]);return i.length?React.createElement(Panel,{className:"panel-request-samples",header:o?void 0:()=>React.createElement(StyledPanelHeader,{isExpandable:!1},React.createElement(StyledServerListDropdown,{operation:t}),React.createElement(LanguageDropdown,{activeTab:g,samples:i,onChange:S})),footer:React.createElement(Replay,{operation:t,corsProxyUrl:p}),isExpandable:!1},C):null}export const RequestSamples=memo(RequestSamplesComponent);const StyledPanelHeader=styled(PanelHeader)`
2
+ flex-wrap: nowrap;
3
+ `,StyledServerListDropdown=styled(ServerListDropdown)`
4
+ padding-right: var(--spacing-base);
5
+ min-width: 0;
6
+ `;
2
7
  //# sourceMappingURL=RequestSamples.js.map
@@ -1,4 +1,4 @@
1
- import React,{useMemo}from"react";import{breakpoints,LayoutVariant,OpenApiHeader}from"@redocly/theme";import{useAtomValue}from"jotai";import styled from"styled-components";import{ContentItem}from"../ContentItem";import{MiddlePanelWrapper}from"../Panel";import{PageFooter}from"../PageFooter";import{globalOptionsAtom}from"../../jotai/store";import{RenderHook}from"../RenderHook";import{RightPanel}from"../RightPanel";import{layoutAtom}from"../../jotai/app";import{SamplesPanel}from"../common";export function SectionContent({items:e,hideFooterAndHeader:t}){const{hooks:{MiddlePanelHeader:a},routingBasePath:o}=useAtomValue(globalOptionsAtom),n=useAtomValue(layoutAtom),r=useMemo((()=>t?null:React.createElement(MiddlePanelWrapper,null,React.createElement(PageFooter,null))),[t]),l=useMemo((()=>t||!OpenApiHeader&&!a?null:React.createElement(MiddlePanelWrapper,null,a?React.createElement(RenderHook,{Hook:a,props:void 0}):React.createElement(OpenApiHeader,null))),[a,t]);return 0===e.length?null:React.createElement(React.Fragment,null,l,React.createElement(Container,null,React.createElement(SectionContainer,{layout:n},e.filter((({type:e})=>["section"].includes(e))).map((e=>React.createElement(ContentItem,{key:e.id,item:e,routingBasePath:o})))),React.createElement(RightPanelContainer,{layout:n},React.createElement(RightPanel,{item:e[0]}))),e.filter((({type:e})=>!["section"].includes(e))).map((e=>React.createElement(ContentItem,{key:e.id,item:e,routingBasePath:o}))),r)}const Container=styled.div`
1
+ import React,{useMemo}from"react";import{breakpoints,LayoutVariant,OpenApiHeader}from"@redocly/theme";import{useAtomValue}from"jotai";import styled from"styled-components";import{ContentItem}from"../ContentItem";import{MiddlePanelWrapper}from"../Panel";import{PageFooter}from"../PageFooter";import{globalOptionsAtom}from"../../jotai/store";import{RenderHook}from"../RenderHook";import{RightPanel}from"../RightPanel";import{layoutAtom}from"../../jotai/app";import{SamplesPanel}from"../common";export function SectionContent({items:e,hideFooterAndHeader:t}){const{hooks:{MiddlePanelHeader:a},routingBasePath:o}=useAtomValue(globalOptionsAtom),n=useAtomValue(layoutAtom),r=useMemo((()=>t?null:React.createElement(MiddlePanelWrapper,null,React.createElement(PageFooter,null))),[t]),i=useMemo((()=>t||!OpenApiHeader&&!a?null:React.createElement(MiddlePanelWrapper,null,a?React.createElement(RenderHook,{Hook:a,props:void 0}):React.createElement(OpenApiHeader,null))),[a,t]);return 0===e.length?null:React.createElement(React.Fragment,null,i,React.createElement(Container,null,React.createElement(SectionContainer,{layout:n},e.filter((({type:e})=>["section"].includes(e))).map((e=>React.createElement(ContentItem,{key:e.id,item:e,routingBasePath:o})))),React.createElement(RightPanelContainer,{layout:n},React.createElement(RightPanel,{item:e[0]}))),e.filter((({type:e})=>!["section"].includes(e))).map((e=>React.createElement(ContentItem,{key:e.id,item:e,routingBasePath:o}))),r)}const Container=styled.div`
2
2
  display: flex;
3
3
  width: 100%;
4
4
  `,SectionContainer=styled.div`
@@ -10,7 +10,7 @@ import React,{useMemo}from"react";import{breakpoints,LayoutVariant,OpenApiHeader
10
10
  `,RightPanelContainer=styled(SamplesPanel)`
11
11
  margin: calc(var(--h1-font-size) / 1.5) 0;
12
12
  display: none;
13
- overflow-y: auto;
13
+ overflow-y: visible;
14
14
  max-height: calc(100vh - var(--navbar-height) - var(--panel-gap-vertical) * 2);
15
15
 
16
16
  @media screen and (min-width: ${breakpoints.medium}) {
@@ -1,19 +1,15 @@
1
- import React from"react";import styled from"styled-components";import{SecurityIcon}from"@redocly/theme";export function SecurityButton({securities:e,onClick:t}){return React.createElement(StyledButton,{onClick:t},React.createElement(SecurityIcon,null),React.createElement(Title,null,"Security:"),React.createElement(SecurityList,null,e.map((t=>{const n=e.length>1&&t.schemes.length>1;return`\n ${n?"(":""} \n ${t.schemes.map((({id:e})=>e)).join(" and ")} \n ${n?")":""}\n `})).join(" or ")))}const StyledButton=styled.button`
2
- display: flex;
3
- align-items: center;
1
+ import React from"react";import styled from"styled-components";import{Button,SecurityIcon}from"@redocly/theme";export function SecurityButton({securities:e,onClick:t}){return React.createElement(StyledButton,{icon:React.createElement(SecurityIcon,null),variant:"link",onClick:t},React.createElement(Title,null,"Security:"),React.createElement(SecurityList,null,e.map((t=>{const n=e.length>1&&t.schemes.length>1;return`\n ${n?"(":""} \n ${t.schemes.map((({id:e})=>e)).join(" and ")} \n ${n?")":""}\n `})).join(" or ")))}const StyledButton=styled(Button)`
4
2
  align-self: flex-start;
5
3
  gap: var(--spacing-xxs);
6
4
  min-height: 32px;
7
5
  background: var(--color-info-bg);
8
- color: var(--link-color-primary);
9
- border: none;
10
- font-size: var(--font-size-base);
11
- font-family: var(--font-family-base);
12
- line-height: var(--line-height-base);
13
6
  padding: 0 var(--spacing-xs);
14
- border-radius: var(--border-radius-md);
15
7
  margin-top: var(--spacing-base);
16
- max-width: 100%;
8
+
9
+ &:hover {
10
+ background: var(--color-info-bg);
11
+ color: var(--link-color-primary);
12
+ }
17
13
  `,Title=styled.span`
18
14
  font-family: var(--font-family-monospaced);
19
15
  font-weight: var(--font-weight-semibold);
@@ -1,4 +1,4 @@
1
- import React,{Fragment,useEffect,useState}from"react";import styled from"styled-components";import{Typography,CloseIcon,SecurityIcon,Segmented}from"@redocly/theme";import{SecurityFlow}from"./SecurityFlow";import{Divider}from"./Divider";export function SecurityModal({securities:e,onClose:t}){const[a,o]=useState(0),{schemes:r}=e[a]||{};useEffect((()=>(document.body.style.overflow="hidden",()=>{document.body.style.overflow="auto"})),[]);const i=e.map((({schemes:e},t)=>({label:e.map((({id:e})=>e)).join(" and "),value:t})));return React.createElement(StyledBackground,null,React.createElement(Wrapper,null,React.createElement(Close,{onClick:t,"data-cy":"close"},React.createElement(CloseIcon,null)),React.createElement(Title,null,React.createElement(SecurityIcon,{size:"24px"}),"Security"),React.createElement(Segmented,{value:a,onChange:({value:e})=>o(e),options:i}),r.map(((t,a)=>React.createElement(Fragment,{key:t.id},React.createElement(SecurityFlow,Object.assign({},t,{securities:e})),a!==r.length-1&&React.createElement(Divider,{label:"and"}))))))}const Wrapper=styled.div`
1
+ import React,{Fragment,useEffect,useState}from"react";import styled from"styled-components";import{Typography,CloseIcon,SecurityIcon,Segmented,Button}from"@redocly/theme";import{SecurityFlow}from"./SecurityFlow";import{Divider}from"./Divider";export function SecurityModal({securities:e,onClose:t}){const[a,o]=useState(0),{schemes:r}=e[a]||{};useEffect((()=>(document.body.style.overflow="hidden",()=>{document.body.style.overflow="auto"})),[]);const i=e.map((({schemes:e},t)=>({label:e.map((({id:e})=>e)).join(" and "),value:t})));return React.createElement(StyledBackground,null,React.createElement(Wrapper,null,React.createElement(Close,{onClick:t,"data-cy":"close",variant:"ghost",icon:React.createElement(CloseIcon,null)}),React.createElement(Title,null,React.createElement(SecurityIcon,{size:"24px"}),"Security"),React.createElement(Segmented,{value:a,onChange:({value:e})=>o(e),options:i}),r.map(((t,a)=>React.createElement(Fragment,{key:t.id},React.createElement(SecurityFlow,Object.assign({},t,{securities:e})),a!==r.length-1&&React.createElement(Divider,{label:"and"}))))))}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);
@@ -7,14 +7,14 @@ import React,{Fragment,useEffect,useState}from"react";import styled from"styled-
7
7
  flex-direction: column;
8
8
  align-items: flex-start;
9
9
  position: absolute;
10
- width: 700px;
10
+ width: 720px;
11
11
  max-width: 100%;
12
12
  height: auto;
13
- max-height: 500px;
13
+ max-height: 600px;
14
14
  overflow-y: scroll;
15
15
  left: 50%;
16
- top: 50%;
17
- transform: translate(-50%, -50%);
16
+ top: 35%;
17
+ transform: translate(-50%, -35%);
18
18
  z-index: 2;
19
19
  .tag-grey span {
20
20
  font-size: var(--font-size-base);
@@ -29,18 +29,10 @@ import React,{Fragment,useEffect,useState}from"react";import styled from"styled-
29
29
  left: 0;
30
30
  top: 0;
31
31
  pointer-events: auto;
32
- `,Close=styled.button`
33
- border: none;
34
- background: none;
32
+ `,Close=styled(Button)`
35
33
  position: absolute;
36
34
  right: var(--spacing-md);
37
35
  top: var(--spacing-md);
38
- cursor: pointer;
39
- svg {
40
- width: 18px;
41
- height: 18px;
42
- fill: var(--text-color-primary);
43
- }
44
36
  `,Title=styled(Typography)`
45
37
  display: flex;
46
38
  align-items: center;
@@ -1,18 +1,18 @@
1
1
  import React from"react";import styled from"styled-components";export function SecuritySchemeItem({label:e,value:t}){return e&&t?React.createElement(Row,null,React.createElement(Label,null,e),React.createElement(Value,null,t)):null}const Row=styled.div`
2
2
  display: flex;
3
- justify-content: space-between;
3
+ justify-content: flex-start;
4
4
  margin-bottom: var(--spacing-xxs);
5
5
  font-size: var(--font-size-sm);
6
6
  color: var(--text-color-secondary);
7
7
  `,Label=styled.div`
8
- width: 296px;
9
8
  display: flex;
10
9
  align-items: center;
11
10
  justify-content: flex-start;
12
11
  font-size: var(--font-size-base);
13
12
  line-height: var(--line-height-base);
13
+ flex: 1;
14
14
  `,Value=styled.div`
15
- width: calc(100% - 296px);
15
+ flex: 1;
16
16
  font-size: var(--font-size-base);
17
17
  line-height: var(--line-height-base);
18
18
  `;
@@ -4,13 +4,10 @@ import styled from"styled-components";export const PathWrapper=styled.div`
4
4
  overflow-x: hidden;
5
5
  `;export const Path=styled.span`
6
6
  margin: 0 var(--spacing-unit) 0 calc(var(--spacing-unit) * 0.5);
7
- color: var(--text-color-secondary);
8
7
  overflow-x: hidden;
9
8
  text-overflow: ellipsis;
10
9
  white-space: nowrap;
11
- overflow-wrap: normal;
12
10
  display: inline-block;
13
- word-break: break-all;
14
11
  line-height: var(--line-height-base);
15
12
  font-size: var(--font-size-base);
16
13
  `;export const ServerItemWrap=styled.div`
@@ -1,4 +1,4 @@
1
- import React,{useMemo,memo,useState}from"react";import{useNavigate}from"react-router-dom";import styled from"styled-components";import{HttpVerb}from"../shared";import{SamplesPanel}from"../common";import{encodeBackSlashes}from"../../utils";import{joinWithSeparator}from"../../services";const MAX_OPERATIONS=8;export function OperationsNavigationComponent({items:e,routingBasePath:t}){const[a,o]=useState(!1),n=useNavigate(),{operations:r,webhooks:i,count:s}=useMemo((()=>{const t=e.filter((e=>"operation"===e.type)),o=a?t:t.slice(0,MAX_OPERATIONS),{operations:n,webhooks:r}=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:n,webhooks:r,count:!a&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[a,e]);if(!r.length&&!i.length)return null;const l=e=>{n(e)};return React.createElement(Wrapper,null,r.length>0&&React.createElement(React.Fragment,null,React.createElement(Heading,null,"Operations"),r.map((({id:e,href:a,httpVerb:o,path:n})=>React.createElement(Item,{key:e,onClick:()=>l(joinWithSeparator(t,encodeBackSlashes(a)))},React.createElement("span",null,React.createElement(HttpVerb,{color:o},o),React.createElement(Path,null,n)))))),i.length>0&&React.createElement(React.Fragment,null,React.createElement(Heading,null,"Webhooks"),i.map((({id:e,href:a,httpVerb:o,path:n})=>React.createElement(Item,{key:e,onClick:()=>l(joinWithSeparator(t,encodeBackSlashes(a)))},React.createElement("span",null,React.createElement(HttpVerb,{color:o},o),React.createElement(Path,null,n)))))),!a&&Boolean(s)&&React.createElement(ButtonLink,{onClick:()=>o(!0)},"Show ",s," more..."))}export const OperationsNavigation=memo(OperationsNavigationComponent);const Wrapper=styled(SamplesPanel)`
1
+ import React,{useMemo,memo,useState}from"react";import{useNavigate}from"react-router-dom";import{Button}from"@redocly/theme";import styled from"styled-components";import{HttpVerb}from"../shared";import{SamplesPanel}from"../common";import{encodeBackSlashes}from"../../utils";import{joinWithSeparator}from"../../services";const MAX_OPERATIONS=8;export function OperationsNavigationComponent({items:e,routingBasePath:t}){const[a,o]=useState(!1),n=useNavigate(),{operations:r,webhooks:i,count:l}=useMemo((()=>{const t=e.filter((e=>"operation"===e.type)),o=a?t:t.slice(0,MAX_OPERATIONS),{operations:n,webhooks:r}=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:n,webhooks:r,count:!a&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[a,e]);if(!r.length&&!i.length)return null;const s=e=>{n(e)};return React.createElement(Wrapper,null,r.length>0&&React.createElement(React.Fragment,null,React.createElement(Heading,null,"Operations"),r.map((({id:e,href:a,httpVerb:o,path:n})=>React.createElement(Item,{variant:"outlined",size:"large",key:e,onClick:()=>s(joinWithSeparator(t,encodeBackSlashes(a)))},React.createElement("span",null,React.createElement(HttpVerb,{color:o},o),React.createElement(Path,null,n)))))),i.length>0&&React.createElement(React.Fragment,null,React.createElement(Heading,null,"Webhooks"),i.map((({id:e,href:a,httpVerb:o,path:n})=>React.createElement(Item,{variant:"outlined",size:"large",key:e,onClick:()=>s(joinWithSeparator(t,encodeBackSlashes(a)))},React.createElement("span",null,React.createElement(HttpVerb,{color:o},o),React.createElement(Path,null,n)))))),!a&&Boolean(l)&&React.createElement(ButtonLink,{variant:"link",size:"large",fullWidth:!0,onClick:()=>o(!0)},"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);
@@ -9,27 +9,29 @@ import React,{useMemo,memo,useState}from"react";import{useNavigate}from"react-ro
9
9
  font-weight: var(--font-weight-bold);
10
10
  color: var(--text-color-primary);
11
11
  margin: var(--spacing-xxs) 0;
12
- `,Item=styled.button`
12
+ `,StyledButton=styled(Button)`
13
+ & + & {
14
+ margin-left: 0;
15
+ }
16
+ `,Item=styled(StyledButton)`
13
17
  border-radius: var(--border-radius);
14
- border: 1px solid var(--border-color-primary);
15
18
  background: var(--bg-color);
16
- display: flex;
17
- height: 40px;
18
- padding: 0 var(--spacing-base);
19
- flex-direction: row;
20
19
  justify-content: space-between;
21
- align-items: center;
22
- align-self: stretch;
23
- cursor: pointer;
24
20
 
25
21
  & > span {
26
22
  display: flex;
27
23
  align-items: baseline;
28
24
  gap: var(--spacing-unit);
25
+ overflow-x: hidden;
26
+ }
27
+
28
+ &:hover {
29
+ background: var(--bg-color);
29
30
  }
30
31
 
31
32
  &:hover::after {
32
33
  content: '→';
34
+ line-height: var(--line-height-base);
33
35
  }
34
36
  `,Path=styled.span`
35
37
  font-family: var(--font-family-base);
@@ -37,10 +39,10 @@ import React,{useMemo,memo,useState}from"react";import{useNavigate}from"react-ro
37
39
  line-height: var(--line-height-base);
38
40
  color: var(--text-color-primary);
39
41
  text-decoration: none;
40
- `,ButtonLink=styled.button`
41
- font-size: var(--font-size-lg);
42
- background: none;
42
+ white-space: nowrap;
43
+ text-overflow: ellipsis;
44
+ overflow-x: hidden;
45
+ `,ButtonLink=styled(StyledButton)`
43
46
  margin: 10px auto;
44
- color: var(--link-color-primary);
45
47
  `;
46
48
  //# sourceMappingURL=OperationsNavigation.js.map
@@ -1,17 +1,5 @@
1
- import styled,{css}from"styled-components";import React,{memo,useState}from"react";import{useLocation}from"react-router-dom";import{pathIncludesLink}from"../../utils";import{cycleColorsByLevel}from"../PropertyDetails/cycleColorsByLevel";import{CircleIcon}from"../PropertyDetails/PlusCircleIcon";function ViewNestedComponent({expandByDefault:e,deepLink:r,level:o,expandable:t=!1,isArray:a="",propertyLength:i="",expandText:s,hideText:n,hideDivider:c=!1,children:l}){const d=useLocation(),p=pathIncludesLink(d,r),[m,y]=useState(e||p),v=m?cycleColorsByLevel(o):void 0;return t?React.createElement(Wrapper,{$divider:!c&&!m,className:"view-nested-wrapper"},React.createElement(ShowProperty,{onClick:()=>y(!m)},React.createElement(CircleIcon,{sign:m?"-":"+",color:v}),!m&&(s||`Show ${1===Number(i)?"":i} ${a&&"array "}${1!==i?"properties":"property"}`),m&&(n||"")),m&&React.createElement(StyledNested,{color:v},l)):l}export const ViewNested=memo(ViewNestedComponent);const ShowProperty=styled.button`
2
- background: none;
3
- border: none;
4
- cursor: pointer;
5
- display: flex;
6
- align-items: center;
7
- padding: 0;
1
+ import styled,{css}from"styled-components";import React,{memo,useState}from"react";import{useLocation}from"react-router-dom";import{Button}from"@redocly/theme";import{pathIncludesLink}from"../../utils";import{cycleColorsByLevel}from"../PropertyDetails/cycleColorsByLevel";import{CircleIcon}from"../PropertyDetails/PlusCircleIcon";function ViewNestedComponent({expandByDefault:e,deepLink:r,level:o,expandable:t=!1,isArray:a="",propertyLength:c="",expandText:i,hideText:s,hideDivider:l=!1,children:p}){const d=useLocation(),n=pathIncludesLink(d,r),[m,y]=useState(e||n),v=m?cycleColorsByLevel(o):void 0;return t?React.createElement(Wrapper,{$divider:!l&&!m,className:"view-nested-wrapper"},React.createElement(ShowProperty,{variant:"ghost",icon:React.createElement(CircleIcon,{sign:m?"-":"+",color:v}),onClick:()=>y(!m)},!m&&(i||`Show ${1===Number(c)?"":c} ${a&&"array "}${1!==c?"properties":"property"}`),m&&(s||"")),m&&React.createElement(StyledNested,{color:v},p)):p}export const ViewNested=memo(ViewNestedComponent);const ShowProperty=styled(Button)`
8
2
  gap: var(--spacing-xxs);
9
- color: var(--text-color-secondary);
10
- font-size: var(--font-size-base);
11
- font-family: var(--font-family-base);
12
- line-height: var(--line-height-base);
13
- margin-top: var(--spacing-xxs);
14
- width: 100%;
15
3
  `,StyledNested=styled.div`
16
4
  padding-left: var(--schema-nested-offset);
17
5
  border-left: 1px solid ${({color:e})=>e||"var(--border-color-primary)"};
@@ -1,4 +1,4 @@
1
- import React from"react";import styled from"styled-components";import{Dropdown as DropdownTheme,typedMemo,CheckmarkIcon}from"@redocly/theme";function DropdownComponent({options:e,value:t,onChange:o}){var n;const a=null===(n=e.find((e=>e.value===t)))||void 0===n?void 0:n.label;return 1===e.length?React.createElement(Title,null,a):React.createElement(StyledDropdown,{withArrow:!0,items:e.map((e=>React.createElement(Option,{key:e.label,isActive:e.value===t,onClick:()=>o(e)},e.label,e.label===t&&React.createElement(StyledCheckmarkIcon,null))))},React.createElement(Title,null,a))}export const Dropdown=typedMemo(DropdownComponent);const StyledCheckmarkIcon=styled(CheckmarkIcon)`
1
+ import React from"react";import styled from"styled-components";import{Dropdown as DropdownTheme,typedMemo,CheckmarkIcon,Button}from"@redocly/theme";function DropdownComponent({options:e,value:t,onChange:o}){var n;const a=null===(n=e.find((e=>e.value===t)))||void 0===n?void 0:n.label;return 1===e.length?React.createElement(Title,{variant:"ghost"},a):React.createElement(StyledDropdown,{withArrow:!0,items:e.map((e=>React.createElement(Option,{key:e.label,isActive:e.value===t,onClick:()=>o(e)},e.label,e.label===t&&React.createElement(StyledCheckmarkIcon,null))))},React.createElement(Title,{variant:"ghost"},a))}export const Dropdown=typedMemo(DropdownComponent);const StyledCheckmarkIcon=styled(CheckmarkIcon)`
2
2
  width: 16px;
3
3
  height: 16px;
4
4
  margin-left: auto;
@@ -9,16 +9,8 @@ import React from"react";import styled from"styled-components";import{Dropdown a
9
9
  gap: var(--spacing-md);
10
10
  padding: var(--spacing-xxs) var(--spacing-sm);
11
11
  font-weight: ${({isActive:e})=>e&&"var(--font-weight-medium)"};
12
- `,Title=styled.button`
12
+ `,Title=styled(Button)`
13
13
  margin-right: var(--spacing-unit);
14
- cursor: default;
15
- background: none;
16
- border: none;
17
- padding: 0;
18
- color: var(--text-color-primary);
19
- font-size: var(--font-size-base);
20
- line-height: var(--line-height-base);
21
- font-family: var(--font-family-base);
22
14
  `,StyledDropdown=styled(DropdownTheme)`
23
15
  ${Title} {
24
16
  cursor: pointer;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare const ClickablePropertyNameCell: import("styled-components").StyledComponent<"td", any, {
2
3
  kind?: string | undefined;
3
4
  }, never>;
@@ -19,4 +20,7 @@ export declare const ExampleValue: import("styled-components").StyledComponent<"
19
20
  export declare const ExtensionValue: import("styled-components").StyledComponent<"span", any, {}, never>;
20
21
  export declare const ConstraintItem: import("styled-components").StyledComponent<"span", any, {}, never>;
21
22
  export declare const PatternLabel: import("styled-components").StyledComponent<"span", any, {}, never>;
22
- export declare const ToggleButton: import("styled-components").StyledComponent<"button", any, {}, never>;
23
+ export declare const ToggleButton: import("styled-components").StyledComponent<import("react").FC<import("@redocly/theme").ButtonProps>, any, import("@redocly/theme").ButtonProps & {
24
+ variant: "link";
25
+ size: "small";
26
+ }, "variant" | "size">;
@@ -1,4 +1,4 @@
1
- import styled,{css}from"styled-components";import{typography}from"../../../utils";import{PropertyNameCell,getCssVariable}from"./fields-layout";export const ClickablePropertyNameCell=styled(PropertyNameCell)`
1
+ import styled,{css}from"styled-components";import{Button}from"@redocly/theme";import{typography}from"../../../utils";import{PropertyNameCell,getCssVariable}from"./fields-layout";export const ClickablePropertyNameCell=styled(PropertyNameCell)`
2
2
  button {
3
3
  background-color: transparent;
4
4
  border: 0;
@@ -100,13 +100,9 @@ import styled,{css}from"styled-components";import{typography}from"../../../utils
100
100
  & + & {
101
101
  margin-left: 0;
102
102
  }
103
- `;export const PatternLabel=styled(ConstraintItem)``;export const ToggleButton=styled.button`
104
- background-color: transparent;
103
+ `;export const PatternLabel=styled(ConstraintItem)``;export const ToggleButton=styled(Button).attrs((()=>({variant:"link",size:"small"})))`
105
104
  padding: 0;
106
- color: var(--button-content-color-primary);
107
- border-radius: var(--border-radius);
108
105
  font-size: var(--font-size-sm);
109
106
  line-height: var(--line-height-sm);
110
- font-weight: var(--font-weight-regular);
111
107
  `;
112
108
  //# sourceMappingURL=fields.js.map
@@ -1069,7 +1069,7 @@
1069
1069
  color: grey;
1070
1070
  }
1071
1071
  `}
1072
- `},4939:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeBlockControls=void 0;const o=n(r(2983)),a=n(r(5404)),i=r(1424),l=r(5001),s=r(4554),c=r(3907),u=r(7859),d=r(9125),p=r(5854),f=r(2159),h=r(1664);t.CodeBlockControls=function({children:e,className:t,title:r,controls:n,tabs:a}){var w,k,x,_,C;const{codeSnippet:S}=(0,l.useThemeConfig)(),{useTelemetry:E}=(0,l.useThemeHooks)(),O=E(),j=(null==S?void 0:S.elementFormat)||"icon",{copy:P,expand:M,collapse:L,select:D,deselect:T,report:A}=n||{copy:null,expand:null,collapse:null,select:null,deselect:null,report:null},I=n?o.default.createElement(o.default.Fragment,null,r&&o.default.createElement(g,null,r),a&&o.default.createElement((()=>o.default.createElement(v,null,null==a?void 0:a.files.map((({name:e})=>{const t=e===a.activeTabName;return o.default.createElement(y,{active:t,key:e,onClick:()=>{a.handleTabSwitch(e)}},o.default.createElement(p.DocumentBlankIcon,null),e)})))),null),o.default.createElement(b,null,A&&!(null===(w=null==A?void 0:A.props)||void 0===w?void 0:w.hide)?o.default.createElement(h.Button,Object.assign({"data-cy":"report-button","data-testid":"report-button",icon:"icon"===j?o.default.createElement(f.WarningSquareIcon,{size:"18px"}):void 0,size:"small",variant:"ghost"},A.props),"icon"!=j&&((null===(k=A.props)||void 0===k?void 0:k.buttonText)||"Report")):null,M&&!(null===(x=null==S?void 0:S.expand)||void 0===x?void 0:x.hide)?o.default.createElement(h.Button,{"data-cy":"expand-all","data-testid":"expand-all",icon:"icon"===j?o.default.createElement(c.MaximizeIcon,null):void 0,onClick:null==M?void 0:M.onClick,size:"small",variant:"ghost"},"icon"!==j&&(null==M?void 0:M.label)?M.label:"Expand all"):null,L&&!(null===(_=null==S?void 0:S.collapse)||void 0===_?void 0:_.hide)?o.default.createElement(h.Button,{"data-cy":"collapse-all","data-testid":"collapse-all",icon:"icon"===j?o.default.createElement(u.MinimizeIcon,null):void 0,onClick:null==L?void 0:L.onClick,size:"small",variant:"ghost"},"icon"!==j&&(null==M?void 0:M.label)?M.label:"Collapse all"):null,D?o.default.createElement(h.Button,{"data-cy":"select-all","data-testid":"select-all",icon:"icon"===j?o.default.createElement(d.SelectIcon,null):void 0,onClick:null==D?void 0:D.onClick,size:"small",variant:"ghost"},"icon"!==j&&(null==D?void 0:D.label)?D.label:"Select all"):null,T?o.default.createElement(h.Button,{"data-cy":"clear-all","data-testid":"clear-all",icon:"icon"===j?o.default.createElement(s.DeselectIcon,null):void 0,onClick:null==T?void 0:T.onClick,size:"small",variant:"ghost"},"icon"!==j&&(null==T?void 0:T.label)?T.label:"Clear all"):null,P&&!(null===(C=null==S?void 0:S.copy)||void 0===C?void 0:C.hide)?o.default.createElement(i.CopyButton,{data:P.data,"data-source":P.dataSource,"data-hash":P.dataHash,type:j,toasterPlacement:P.toasterPlacement,toasterDuration:P.toasterDuration,buttonText:P.label,onCopyClick:()=>{null==P||P.onClick,O.send("code_snippet_copied",{})}}):null)):null;return e||n?o.default.createElement(m,{"data-component-name":"CodeBlock/CodeBlockControls",className:t},e||I):null};const m=a.default.div`
1072
+ `},4939:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeBlockControls=void 0;const o=n(r(2983)),a=n(r(5404)),i=r(1424),l=r(5001),s=r(4554),c=r(3907),u=r(7859),d=r(9125),p=r(5854),f=r(2159),h=r(1664);t.CodeBlockControls=function({children:e,className:t,title:r,controls:n,tabs:a}){var h,k,x,_,C;const{codeSnippet:S}=(0,l.useThemeConfig)(),{useTelemetry:E}=(0,l.useThemeHooks)(),O=E(),j=(null==S?void 0:S.elementFormat)||"icon",{copy:P,expand:M,collapse:L,select:D,deselect:T,report:A}=n||{copy:null,expand:null,collapse:null,select:null,deselect:null,report:null},I=n?o.default.createElement(o.default.Fragment,null,r&&o.default.createElement(g,null,r),a&&o.default.createElement((()=>o.default.createElement(v,null,null==a?void 0:a.files.map((({name:e})=>{const t=e===a.activeTabName;return o.default.createElement(y,{active:t,key:e,onClick:()=>{a.handleTabSwitch(e)}},o.default.createElement(p.DocumentBlankIcon,null),e)})))),null),o.default.createElement(b,null,A&&!(null===(h=null==A?void 0:A.props)||void 0===h?void 0:h.hide)?o.default.createElement(w,Object.assign({variant:"ghost",size:"small","data-cy":"report-button","data-testid":"report-button",icon:"icon"===j?o.default.createElement(f.WarningSquareIcon,{size:"18px"}):void 0},A.props),"icon"!=j&&((null===(k=A.props)||void 0===k?void 0:k.buttonText)||"Report")):null,M&&!(null===(x=null==S?void 0:S.expand)||void 0===x?void 0:x.hide)?o.default.createElement(w,{variant:"ghost",size:"small","data-cy":"expand-all","data-testid":"expand-all",icon:"icon"===j?o.default.createElement(c.MaximizeIcon,null):void 0,onClick:null==M?void 0:M.onClick},"icon"!==j&&((null==M?void 0:M.label)||"Expand all")):null,L&&!(null===(_=null==S?void 0:S.collapse)||void 0===_?void 0:_.hide)?o.default.createElement(w,{variant:"ghost",size:"small","data-cy":"collapse-all","data-testid":"collapse-all",icon:"icon"===j?o.default.createElement(u.MinimizeIcon,null):void 0,onClick:null==L?void 0:L.onClick},"icon"!==j&&((null==M?void 0:M.label)||"Collapse all")):null,D?o.default.createElement(w,{variant:"ghost",size:"small","data-cy":"select-all","data-testid":"select-all",icon:"icon"===j?o.default.createElement(d.SelectIcon,null):void 0,onClick:null==D?void 0:D.onClick},"icon"!==j&&(null==D?void 0:D.label)?D.label:"Select all"):null,T?o.default.createElement(w,{variant:"ghost",size:"small","data-cy":"clear-all","data-testid":"clear-all",icon:"icon"===j?o.default.createElement(s.DeselectIcon,null):void 0,onClick:null==T?void 0:T.onClick},"icon"!==j&&(null==T?void 0:T.label)?T.label:"Clear all"):null,P&&!(null===(C=null==S?void 0:S.copy)||void 0===C?void 0:C.hide)?o.default.createElement(i.CopyButton,{data:P.data,"data-source":P.dataSource,"data-hash":P.dataHash,type:j,toasterPlacement:P.toasterPlacement,toasterDuration:P.toasterDuration,buttonText:P.label,onCopyClick:()=>{null==P||P.onClick,O.send("code_snippet_copied",{})}}):null)):null;return e||n?o.default.createElement(m,{"data-component-name":"CodeBlock/CodeBlockControls",className:t},e||I):null};const m=a.default.div`
1073
1073
  display: flex;
1074
1074
  justify-content: end;
1075
1075
  background-color: var(--code-block-controls-background-color);
@@ -1107,6 +1107,10 @@
1107
1107
  background: var(--color-primary-bg-hover);
1108
1108
  border: none;
1109
1109
  }
1110
+ `,w=(0,a.default)(h.Button)`
1111
+ & + & {
1112
+ margin-left: 0;
1113
+ }
1110
1114
  `},8658:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.code=void 0;const n=r(5404);t.code=n.css`
1111
1115
  /**
1112
1116
  * @tokens Code base styles
@@ -5058,11 +5062,9 @@
5058
5062
  line-height: 0;
5059
5063
  `,s=a.default.a`
5060
5064
  display: inline-block;
5061
- `},8510:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.StatusCode=void 0;const o=n(r(5404));t.StatusCode=o.default.button`
5062
- background: none;
5063
- padding: 0;
5064
- display: flex;
5065
- align-items: center;
5065
+ `},8510:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.StatusCode=void 0;const o=n(r(5404)),a=r(8732);t.StatusCode=(0,o.default)(a.Button).attrs((()=>({variant:"ghost"})))`
5066
+ gap: 0;
5067
+ border: 0;
5066
5068
 
5067
5069
  &:before {
5068
5070
  display: inline-block;
@@ -5923,6 +5925,13 @@
5923
5925
  --tab-bg-color-filled: var(--color-warm-grey-4); // @presenter Color
5924
5926
  --tab-content-color-disabled: var(--color-warm-grey-4); // @presenter Color
5925
5927
 
5928
+ /**
5929
+ * @tokens Dropdown Colors
5930
+ * @presenter Color
5931
+ */
5932
+
5933
+ --dropdown-content-color-default: var(--color-warm-grey-8); // @presenter Color
5934
+
5926
5935
  /**
5927
5936
  * @tokens API Reference Schema Required styles
5928
5937
  */
@@ -7158,6 +7167,7 @@
7158
7167
  fill: ${({color:e})=>(0,i.getCssColorVariable)(e)};
7159
7168
  }
7160
7169
 
7170
+ flex-shrink: 0;
7161
7171
  height: ${({size:e})=>e||"16px"};
7162
7172
  width: ${({size:e})=>e||"16px"};
7163
7173
  `},8624:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ChevronLeftIcon=void 0;const o=n(r(2983)),a=n(r(5404)),i=r(796);t.ChevronLeftIcon=(0,a.default)((e=>o.default.createElement("svg",Object.assign({viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),o.default.createElement("path",{d:"M5 8L10 3L10.7 3.7L6.4 8L10.7 12.3L10 13L5 8Z"})))).attrs((()=>({"data-component-name":"icons/ChevronLeftIcon/ChevronLeftIcon"})))`
@@ -7185,6 +7195,7 @@
7185
7195
  fill: ${({color:e})=>(0,i.getCssColorVariable)(e)};
7186
7196
  }
7187
7197
 
7198
+ flex-shrink: 0;
7188
7199
  height: ${({size:e})=>e||"16px"};
7189
7200
  width: ${({size:e})=>e||"16px"};
7190
7201
  `},3280:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CircleDashIcon=void 0;const o=n(r(2983)),a=n(r(5404)),i=r(796);t.CircleDashIcon=(0,a.default)((e=>o.default.createElement("svg",Object.assign({viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),o.default.createElement("path",{d:"M3.84997 2.35009C3.27647 2.79018 2.77103 3.31247 2.34997 3.90009L3.14997 4.50009C3.5172 3.99081 3.9549 3.53627 4.44997 3.15009L3.84997 2.35009Z"}),o.default.createElement("path",{d:"M2.29997 6.15009L1.34997 5.85009C1.10845 6.54077 0.98999 7.26847 0.999972 8.00009H1.99997C1.99794 7.37116 2.09929 6.74616 2.29997 6.15009Z"}),o.default.createElement("path",{d:"M1.34997 10.2001C1.58185 10.8973 1.91909 11.5549 2.34997 12.1501L3.14997 11.5501C2.78851 11.044 2.50221 10.4882 2.29997 9.90009L1.34997 10.2001Z"}),o.default.createElement("path",{d:"M3.89997 13.6501C4.49514 14.081 5.15275 14.4182 5.84997 14.6501L6.14997 13.7001C5.56184 13.4979 5.00608 13.2116 4.49997 12.8501L3.89997 13.6501Z"}),o.default.createElement("path",{d:"M5.84997 1.35009L6.14997 2.30009C6.74604 2.09942 7.37103 1.99806 7.99997 2.00009V1.00009C7.26835 0.990112 6.54065 1.10858 5.84997 1.35009Z"}),o.default.createElement("path",{d:"M12.1 13.6501C12.6889 13.2111 13.211 12.689 13.65 12.1001L12.85 11.5001C12.4781 12.022 12.0219 12.4783 11.5 12.8501L12.1 13.6501Z"}),o.default.createElement("path",{d:"M13.7 9.85009L14.65 10.1501C14.8675 9.45352 14.9853 8.72968 15 8.00009H14C14.002 8.62903 13.9007 9.25403 13.7 9.85009Z"}),o.default.createElement("path",{d:"M14.6 5.80009C14.3681 5.10288 14.0309 4.44526 13.6 3.85009L12.8 4.45009C13.1614 4.9562 13.4477 5.51196 13.65 6.10009L14.6 5.80009Z"}),o.default.createElement("path",{d:"M12.05 2.30009C11.4548 1.86921 10.7972 1.53197 10.1 1.30009L9.79997 2.25009C10.3881 2.45233 10.9439 2.73863 11.45 3.10009L12.05 2.30009Z"}),o.default.createElement("path",{d:"M10.15 14.6501L9.84997 13.7001C9.25391 13.9008 8.62891 14.0021 7.99997 14.0001V15.0001C8.72667 14.9568 9.44706 14.8395 10.15 14.6501Z"})))).attrs((()=>({"data-component-name":"icons/CircleDashIcon/CircleDashIcon"})))`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "0.0.0-beta-20240223133421",
3
+ "version": "0.0.0-beta-20240226163902",
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-20240223133421",
19
+ "@redocly/theme": "0.0.0-beta-20240226163902",
20
20
  "core-js": "^3.1.4",
21
21
  "react": "^18.0.0",
22
22
  "react-dom": "^18.0.0",
@@ -48,7 +48,7 @@
48
48
  "url-template": "^2.0.8",
49
49
  "util": "~0.12.5",
50
50
  "js-yaml": "4.1.0",
51
- "@redocly/replay": "0.0.0-beta-20240223133421"
51
+ "@redocly/replay": "0.0.0-beta-20240226163902"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@cfaester/enzyme-adapter-react-18": "0.7.1",
@@ -100,7 +100,7 @@
100
100
  "webpack-cli": "5.1.4",
101
101
  "webpack-dev-server": "4.15.1",
102
102
  "workerize-loader": "github:redocly/workerize-loader#webpack-5-dist",
103
- "@redocly/theme": "0.0.0-beta-20240223133421"
103
+ "@redocly/theme": "0.0.0-beta-20240226163902"
104
104
  },
105
105
  "scripts": {
106
106
  "start": "webpack serve --mode=development --hot",