@redocly/openapi-docs 3.2.11-rc.6 → 3.2.12

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 +476 -476
  2. package/lib/components/ApiInfo/Metadata.js +1 -1
  3. package/lib/components/Content/useAutoScroll.js +1 -1
  4. package/lib/components/Overview/Overview.js +1 -1
  5. package/lib/components/common/ExpandableExample/ExpandableExample.d.ts +1 -1
  6. package/lib/components/common/ExpandableExample/ExpandableExample.js +1 -1
  7. package/lib/hooks/index.d.ts +0 -1
  8. package/lib/hooks/index.js +1 -1
  9. package/lib/utils/index.d.ts +0 -1
  10. package/lib/utils/index.js +1 -1
  11. package/lib-esm/components/ApiInfo/Metadata.js +1 -1
  12. package/lib-esm/components/Content/useAutoScroll.js +1 -1
  13. package/lib-esm/components/Overview/Overview.js +1 -1
  14. package/lib-esm/components/common/ExpandableExample/ExpandableExample.d.ts +1 -1
  15. package/lib-esm/components/common/ExpandableExample/ExpandableExample.js +1 -1
  16. package/lib-esm/hooks/index.d.ts +0 -1
  17. package/lib-esm/hooks/index.js +1 -1
  18. package/lib-esm/utils/index.d.ts +0 -1
  19. package/lib-esm/utils/index.js +1 -1
  20. package/package.json +4 -4
  21. package/lib/hooks/_tests_/useExpandableField.test.d.ts +0 -1
  22. package/lib/hooks/_tests_/useExpandableField.test.js +0 -2
  23. package/lib/hooks/useExpandableField.d.ts +0 -12
  24. package/lib/hooks/useExpandableField.js +0 -2
  25. package/lib/utils/calculateAvgCharacterWidth.d.ts +0 -1
  26. package/lib/utils/calculateAvgCharacterWidth.js +0 -2
  27. package/lib-esm/hooks/_tests_/useExpandableField.test.d.ts +0 -1
  28. package/lib-esm/hooks/_tests_/useExpandableField.test.js +0 -2
  29. package/lib-esm/hooks/useExpandableField.d.ts +0 -12
  30. package/lib-esm/hooks/useExpandableField.js +0 -2
  31. package/lib-esm/utils/calculateAvgCharacterWidth.d.ts +0 -1
  32. package/lib-esm/utils/calculateAvgCharacterWidth.js +0 -2
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Metadata=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),helpers_1=require("../../utils/helpers"),FILTER_OUT_KEYS=["title","description"];function metadataMap([e,t]){return FILTER_OUT_KEYS.includes(e)?null:Array.isArray(t)?{key:e,value:t.filter((e=>"object"!=typeof e)).join(", ")}:"object"==typeof t?null:{key:e,value:t}}function Metadata({metadata:e}){const t=(0,react_1.useMemo)((()=>Object.entries(e||{}).map(metadataMap).filter(theme_1.isNotNull)),[e]);return e?(0,jsx_runtime_1.jsxs)(theme_1.Markdown,{children:[(0,jsx_runtime_1.jsx)(theme_1.H3,{children:"Metadata"}),(0,jsx_runtime_1.jsxs)("table",{className:"md",children:[(0,jsx_runtime_1.jsx)("thead",{children:(0,jsx_runtime_1.jsxs)("tr",{children:[(0,jsx_runtime_1.jsx)("th",{scope:"col",children:"Key"}),(0,jsx_runtime_1.jsx)("th",{scope:"col",children:"Value"})]})}),(0,jsx_runtime_1.jsx)("tbody",{children:t.map((({key:e,value:t})=>(0,jsx_runtime_1.jsxs)("tr",{children:[(0,jsx_runtime_1.jsx)("td",{children:e}),(0,jsx_runtime_1.jsx)("td",{children:"string"==typeof t&&(0,helpers_1.isAbsoluteUrl)(t)?(0,jsx_runtime_1.jsx)("a",{href:t,target:"_blank",rel:"noreferrer",children:t}):String(t)})]},e)))})]})]}):null}exports.Metadata=Metadata;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Metadata=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),theme_1=require("@redocly/theme"),FILTER_OUT_KEYS=["title","description"];function metadataMap([e,t]){return FILTER_OUT_KEYS.includes(e)?null:Array.isArray(t)?{key:e,value:t.filter((e=>"object"!=typeof e)).join(", ")}:"object"==typeof t?null:{key:e,value:t}}function Metadata({metadata:e}){const t=(0,react_1.useMemo)((()=>Object.entries(e||{}).map(metadataMap).filter(theme_1.isNotNull)),[e]);return e?(0,jsx_runtime_1.jsxs)(theme_1.Markdown,{children:[(0,jsx_runtime_1.jsx)(theme_1.H3,{children:"Metadata"}),(0,jsx_runtime_1.jsxs)("table",{className:"md",children:[(0,jsx_runtime_1.jsx)("thead",{children:(0,jsx_runtime_1.jsxs)("tr",{children:[(0,jsx_runtime_1.jsx)("th",{scope:"col",children:"Key"}),(0,jsx_runtime_1.jsx)("th",{scope:"col",children:"Value"})]})}),(0,jsx_runtime_1.jsx)("tbody",{children:t.map((({key:e,value:t})=>(0,jsx_runtime_1.jsxs)("tr",{children:[(0,jsx_runtime_1.jsx)("td",{children:e}),(0,jsx_runtime_1.jsx)("td",{children:`${t}`})]},e)))})]})]}):null}exports.Metadata=Metadata;
2
2
  //# sourceMappingURL=Metadata.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useAutoScroll=void 0;const react_router_dom_1=require("react-router-dom"),react_1=require("react"),theme_1=require("@redocly/theme"),utils_1=require("../../utils");let initialPageLoad=!0;function useAutoScroll(e){const t=(0,react_router_dom_1.useLocation)(),o=(0,theme_1.addTrailingSlash)(e)||"/";(0,react_1.useLayoutEffect)((()=>{if(t.pathname===o&&""===t.hash)window.scrollTo(0,0);else{const e=t.hash.replace("#","").toLowerCase()||(0,utils_1.normalizePath)(t.pathname).replace(o,""),a=document.getElementById(decodeURIComponent(e));a&&a.scrollIntoView()}}),[t,o]);const a=(0,theme_1.useActiveSectionId)(t,!1,!1);(0,react_1.useEffect)((()=>{if(a&&initialPageLoad)initialPageLoad=!1;else if(theme_1.IS_BROWSER&&!window.location.pathname.includes(a)&&!window.location.hash.includes(a)){const e=(0,utils_1.compose)(theme_1.addLeadingSlash,utils_1.encodeBackSlashes)(a);window.history.replaceState({},"",e)}}),[a])}exports.useAutoScroll=useAutoScroll;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useAutoScroll=void 0;const react_router_dom_1=require("react-router-dom"),react_1=require("react"),theme_1=require("@redocly/theme"),utils_1=require("../../utils");let initialPageLoad=!0;function useAutoScroll(e){const t=(0,react_router_dom_1.useLocation)(),o=e||"/";(0,react_1.useLayoutEffect)((()=>{if(t.pathname===o&&""===t.hash)window.scrollTo(0,0);else{const e=t.hash.replace("#","").toLowerCase()||(0,theme_1.removeLeadingSlash)(t.pathname.replace(o,"")),a=document.getElementById(decodeURIComponent(e));a&&a.scrollIntoView()}}),[t,o]);const a=(0,theme_1.useActiveSectionId)(t,!1,!1);(0,react_1.useEffect)((()=>{if(a&&initialPageLoad)initialPageLoad=!1;else if(theme_1.IS_BROWSER&&!window.location.pathname.includes(a)&&!window.location.hash.includes(a)){const e=(0,utils_1.compose)(theme_1.addLeadingSlash,utils_1.encodeBackSlashes)(a);window.history.replaceState({},"",e)}}),[a])}exports.useAutoScroll=useAutoScroll;
2
2
  //# sourceMappingURL=useAutoScroll.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Overview=void 0;const jsx_runtime_1=require("react/jsx-runtime"),theme_1=require("@redocly/theme"),PanelItem_1=require("../PanelItem");function Overview({info:e}){var t;const n=e.contact&&e.contact.url&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:"URL"}),title:(0,jsx_runtime_1.jsx)("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.contact.url},"NewTabButton")]})||null,r=e.contact&&e.contact.email&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:e.contact.name||"E-mail"}),title:(0,jsx_runtime_1.jsx)("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[(0,jsx_runtime_1.jsx)(theme_1.CopyButton,{data:e.contact.email},"CopyButton"),(0,jsx_runtime_1.jsx)(theme_1.EmailButton,{data:e.contact.email},"EmailButton")]})||null,i=e.license&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:"License"}),title:e.license.identifier?e.license.identifier:(0,jsx_runtime_1.jsx)("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.license.url},"NewTabButton")]})||null,a=e.termsOfService&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{title:(0,jsx_runtime_1.jsx)("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:"Terms of Service"}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.termsOfService},e.termsOfService)]})||null,l=(null===(t=e["x-links"])||void 0===t?void 0:t.map((e=>(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:e.name}),title:(0,jsx_runtime_1.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",children:e.url}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.url},"NewTabButton")]},e.url))))||null;return(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:(0,jsx_runtime_1.jsxs)(PanelItem_1.PanelItemsList,{children:[n,r,i,a,l]})})}exports.Overview=Overview;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Overview=void 0;const jsx_runtime_1=require("react/jsx-runtime"),theme_1=require("@redocly/theme"),PanelItem_1=require("../PanelItem");function Overview({info:e}){const t=e.contact&&e.contact.url&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:"URL"}),title:(0,jsx_runtime_1.jsx)("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.contact.url},"NewTabButton")]})||null,n=e.contact&&e.contact.email&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:e.contact.name||"E-mail"}),title:(0,jsx_runtime_1.jsx)("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[(0,jsx_runtime_1.jsx)(theme_1.CopyButton,{data:e.contact.email},"CopyButton"),(0,jsx_runtime_1.jsx)(theme_1.EmailButton,{data:e.contact.email},"EmailButton")]})||null,r=e.license&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{header:(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItemDescription,{children:"License"}),title:e.license.identifier?e.license.identifier:(0,jsx_runtime_1.jsx)("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.license.url},"NewTabButton")]})||null,i=e.termsOfService&&(0,jsx_runtime_1.jsx)(PanelItem_1.PanelItem,{title:(0,jsx_runtime_1.jsx)("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:"Terms of Service"}),actions:[(0,jsx_runtime_1.jsx)(theme_1.NewTabButton,{data:e.termsOfService},e.termsOfService)]})||null;return(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:(0,jsx_runtime_1.jsxs)(PanelItem_1.PanelItemsList,{children:[t,n,r,i]})})}exports.Overview=Overview;
2
2
  //# sourceMappingURL=Overview.js.map
@@ -2,4 +2,4 @@ import type { ReactElement } from 'react';
2
2
  export interface ExpandableExampleProps {
3
3
  value: string;
4
4
  }
5
- export declare function ExpandableExample({ value }: ExpandableExampleProps): ReactElement | null;
5
+ export declare function ExpandableExample({ value }: ExpandableExampleProps): ReactElement;
@@ -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.ExpandableExample=void 0;const jsx_runtime_1=require("react/jsx-runtime"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),Markdown_1=require("../../Markdown"),Fields_1=require("../Fields"),hooks_1=require("../../../hooks");function ExpandableExample({value:e}){const{displayText:n,containerRef:t,toggleExpand:r,expanded:a}=(0,hooks_1.useExpandableField)({value:e});return(0,jsx_runtime_1.jsxs)(Container,{ref:t,children:[(0,jsx_runtime_1.jsx)(Markdown_1.Markdown,{source:n}),(e!==n||a)&&(0,jsx_runtime_1.jsx)(ButtonWrap,{children:(0,jsx_runtime_1.jsx)(theme_1.Button,{variant:"link",size:"small",onClick:r,children:a?"Hide example":"Show example"})})]})}exports.ExpandableExample=ExpandableExample;const Container=(0,styled_components_1.default)(Fields_1.ExampleValue)`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExpandableExample=void 0;const jsx_runtime_1=require("react/jsx-runtime"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),react_1=require("react"),Markdown_1=require("../../Markdown"),Fields_1=require("../Fields"),MAX_EXAMPLE_LENGTH=150;function ExpandableExample({value:e}){const[t,r]=(0,react_1.useState)(!1),n=(0,react_1.useMemo)((()=>e.slice(0,MAX_EXAMPLE_LENGTH)),[e]);return(0,jsx_runtime_1.jsxs)(Container,{children:[(0,jsx_runtime_1.jsx)(Markdown_1.Markdown,{source:t?e:n}),(e!==n||t)&&(0,jsx_runtime_1.jsx)(ButtonWrap,{children:(0,jsx_runtime_1.jsx)(theme_1.Button,{variant:"link",size:"small",onClick:()=>{r(!t)},children:t?"Hide example":"Show example"})})]})}exports.ExpandableExample=ExpandableExample;const Container=(0,styled_components_1.default)(Fields_1.ExampleValue)`
2
2
  display: inline;
3
3
 
4
4
  & * {
@@ -5,4 +5,3 @@ export { useRouter } from './useRouter';
5
5
  export { useContentItems } from './useContentItems';
6
6
  export { useActiveWithFallback } from './useActiveWithFallback';
7
7
  export { useUppercase2LowercaseRedirect } from './useUppercase2LowercaseRedirect';
8
- export { useExpandableField } from './useExpandableField';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useExpandableField=exports.useUppercase2LowercaseRedirect=exports.useActiveWithFallback=exports.useContentItems=exports.useRouter=exports.useActivateExample=exports.usePrevious=exports.useDimensions=void 0;var useDimensions_1=require("./useDimensions");Object.defineProperty(exports,"useDimensions",{enumerable:!0,get:function(){return useDimensions_1.useDimensions}});var usePrevious_1=require("./usePrevious");Object.defineProperty(exports,"usePrevious",{enumerable:!0,get:function(){return usePrevious_1.usePrevious}});var useActivateExample_1=require("./useActivateExample");Object.defineProperty(exports,"useActivateExample",{enumerable:!0,get:function(){return useActivateExample_1.useActivateExample}});var useRouter_1=require("./useRouter");Object.defineProperty(exports,"useRouter",{enumerable:!0,get:function(){return useRouter_1.useRouter}});var useContentItems_1=require("./useContentItems");Object.defineProperty(exports,"useContentItems",{enumerable:!0,get:function(){return useContentItems_1.useContentItems}});var useActiveWithFallback_1=require("./useActiveWithFallback");Object.defineProperty(exports,"useActiveWithFallback",{enumerable:!0,get:function(){return useActiveWithFallback_1.useActiveWithFallback}});var useUppercase2LowercaseRedirect_1=require("./useUppercase2LowercaseRedirect");Object.defineProperty(exports,"useUppercase2LowercaseRedirect",{enumerable:!0,get:function(){return useUppercase2LowercaseRedirect_1.useUppercase2LowercaseRedirect}});var useExpandableField_1=require("./useExpandableField");Object.defineProperty(exports,"useExpandableField",{enumerable:!0,get:function(){return useExpandableField_1.useExpandableField}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useUppercase2LowercaseRedirect=exports.useActiveWithFallback=exports.useContentItems=exports.useRouter=exports.useActivateExample=exports.usePrevious=exports.useDimensions=void 0;var useDimensions_1=require("./useDimensions");Object.defineProperty(exports,"useDimensions",{enumerable:!0,get:function(){return useDimensions_1.useDimensions}});var usePrevious_1=require("./usePrevious");Object.defineProperty(exports,"usePrevious",{enumerable:!0,get:function(){return usePrevious_1.usePrevious}});var useActivateExample_1=require("./useActivateExample");Object.defineProperty(exports,"useActivateExample",{enumerable:!0,get:function(){return useActivateExample_1.useActivateExample}});var useRouter_1=require("./useRouter");Object.defineProperty(exports,"useRouter",{enumerable:!0,get:function(){return useRouter_1.useRouter}});var useContentItems_1=require("./useContentItems");Object.defineProperty(exports,"useContentItems",{enumerable:!0,get:function(){return useContentItems_1.useContentItems}});var useActiveWithFallback_1=require("./useActiveWithFallback");Object.defineProperty(exports,"useActiveWithFallback",{enumerable:!0,get:function(){return useActiveWithFallback_1.useActiveWithFallback}});var useUppercase2LowercaseRedirect_1=require("./useUppercase2LowercaseRedirect");Object.defineProperty(exports,"useUppercase2LowercaseRedirect",{enumerable:!0,get:function(){return useUppercase2LowercaseRedirect_1.useUppercase2LowercaseRedirect}});
2
2
  //# sourceMappingURL=index.js.map
@@ -21,4 +21,3 @@ export * from './queryString';
21
21
  export * from './isMobile';
22
22
  export * from './replaceVariables';
23
23
  export * from './areArraysEqual';
24
- export * from './calculateAvgCharacterWidth';
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var p=Object.getOwnPropertyDescriptor(r,t);p&&!("get"in p?!r.__esModule:p.writable||p.configurable)||(p={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,p)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./JsonPointer"),exports),__exportStar(require("./openapi"),exports),__exportStar(require("./helpers"),exports),__exportStar(require("./highlight"),exports),__exportStar(require("./dom"),exports),__exportStar(require("./debug"),exports),__exportStar(require("./sort"),exports),__exportStar(require("./argValuesHelpers"),exports),__exportStar(require("./theme-helpers"),exports),__exportStar(require("./debounce"),exports),__exportStar(require("./security-details"),exports),__exportStar(require("./session-storage"),exports),__exportStar(require("./local-storage"),exports),__exportStar(require("./parameters"),exports),__exportStar(require("./string"),exports),__exportStar(require("./test-utils"),exports),__exportStar(require("./compose"),exports),__exportStar(require("./saveTextBeforeHeading"),exports),__exportStar(require("./path"),exports),__exportStar(require("./queryString"),exports),__exportStar(require("./isMobile"),exports),__exportStar(require("./replaceVariables"),exports),__exportStar(require("./areArraysEqual"),exports),__exportStar(require("./calculateAvgCharacterWidth"),exports);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var p=Object.getOwnPropertyDescriptor(r,t);p&&!("get"in p?!r.__esModule:p.writable||p.configurable)||(p={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,p)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./JsonPointer"),exports),__exportStar(require("./openapi"),exports),__exportStar(require("./helpers"),exports),__exportStar(require("./highlight"),exports),__exportStar(require("./dom"),exports),__exportStar(require("./debug"),exports),__exportStar(require("./sort"),exports),__exportStar(require("./argValuesHelpers"),exports),__exportStar(require("./theme-helpers"),exports),__exportStar(require("./debounce"),exports),__exportStar(require("./security-details"),exports),__exportStar(require("./session-storage"),exports),__exportStar(require("./local-storage"),exports),__exportStar(require("./parameters"),exports),__exportStar(require("./string"),exports),__exportStar(require("./test-utils"),exports),__exportStar(require("./compose"),exports),__exportStar(require("./saveTextBeforeHeading"),exports),__exportStar(require("./path"),exports),__exportStar(require("./queryString"),exports),__exportStar(require("./isMobile"),exports),__exportStar(require("./replaceVariables"),exports),__exportStar(require("./areArraysEqual"),exports);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMemo}from"react";import{Markdown as MarkdownWrapper,H3,isNotNull}from"@redocly/theme";import{isAbsoluteUrl}from"../../utils/helpers";const FILTER_OUT_KEYS=["title","description"];function metadataMap([e,r]){return FILTER_OUT_KEYS.includes(e)?null:Array.isArray(r)?{key:e,value:r.filter((e=>"object"!=typeof e)).join(", ")}:"object"==typeof r?null:{key:e,value:r}}export function Metadata({metadata:e}){const r=useMemo((()=>Object.entries(e||{}).map(metadataMap).filter(isNotNull)),[e]);return e?_jsxs(MarkdownWrapper,{children:[_jsx(H3,{children:"Metadata"}),_jsxs("table",{className:"md",children:[_jsx("thead",{children:_jsxs("tr",{children:[_jsx("th",{scope:"col",children:"Key"}),_jsx("th",{scope:"col",children:"Value"})]})}),_jsx("tbody",{children:r.map((({key:e,value:r})=>_jsxs("tr",{children:[_jsx("td",{children:e}),_jsx("td",{children:"string"==typeof r&&isAbsoluteUrl(r)?_jsx("a",{href:r,target:"_blank",rel:"noreferrer",children:r}):String(r)})]},e)))})]})]}):null}
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useMemo}from"react";import{Markdown as MarkdownWrapper,H3,isNotNull}from"@redocly/theme";const FILTER_OUT_KEYS=["title","description"];function metadataMap([e,t]){return FILTER_OUT_KEYS.includes(e)?null:Array.isArray(t)?{key:e,value:t.filter((e=>"object"!=typeof e)).join(", ")}:"object"==typeof t?null:{key:e,value:t}}export function Metadata({metadata:e}){const t=useMemo((()=>Object.entries(e||{}).map(metadataMap).filter(isNotNull)),[e]);return e?_jsxs(MarkdownWrapper,{children:[_jsx(H3,{children:"Metadata"}),_jsxs("table",{className:"md",children:[_jsx("thead",{children:_jsxs("tr",{children:[_jsx("th",{scope:"col",children:"Key"}),_jsx("th",{scope:"col",children:"Value"})]})}),_jsx("tbody",{children:t.map((({key:e,value:t})=>_jsxs("tr",{children:[_jsx("td",{children:e}),_jsx("td",{children:`${t}`})]},e)))})]})]}):null}
2
2
  //# sourceMappingURL=Metadata.js.map
@@ -1,2 +1,2 @@
1
- import{useLocation}from"react-router-dom";import{useEffect,useLayoutEffect}from"react";import{addTrailingSlash,addLeadingSlash,IS_BROWSER,useActiveSectionId}from"@redocly/theme";import{compose,encodeBackSlashes,normalizePath}from"../../utils";let initialPageLoad=!0;export function useAutoScroll(e){const o=useLocation(),a=addTrailingSlash(e)||"/";useLayoutEffect((()=>{if(o.pathname===a&&""===o.hash)window.scrollTo(0,0);else{const e=o.hash.replace("#","").toLowerCase()||normalizePath(o.pathname).replace(a,""),t=document.getElementById(decodeURIComponent(e));t&&t.scrollIntoView()}}),[o,a]);const t=useActiveSectionId(o,!1,!1);useEffect((()=>{if(t&&initialPageLoad)initialPageLoad=!1;else if(IS_BROWSER&&!window.location.pathname.includes(t)&&!window.location.hash.includes(t)){const e=compose(addLeadingSlash,encodeBackSlashes)(t);window.history.replaceState({},"",e)}}),[t])}
1
+ import{useLocation}from"react-router-dom";import{useEffect,useLayoutEffect}from"react";import{addLeadingSlash,IS_BROWSER,useActiveSectionId,removeLeadingSlash}from"@redocly/theme";import{compose,encodeBackSlashes}from"../../utils";let initialPageLoad=!0;export function useAutoScroll(e){const o=useLocation(),t=e||"/";useLayoutEffect((()=>{if(o.pathname===t&&""===o.hash)window.scrollTo(0,0);else{const e=o.hash.replace("#","").toLowerCase()||removeLeadingSlash(o.pathname.replace(t,"")),a=document.getElementById(decodeURIComponent(e));a&&a.scrollIntoView()}}),[o,t]);const a=useActiveSectionId(o,!1,!1);useEffect((()=>{if(a&&initialPageLoad)initialPageLoad=!1;else if(IS_BROWSER&&!window.location.pathname.includes(a)&&!window.location.hash.includes(a)){const e=compose(addLeadingSlash,encodeBackSlashes)(a);window.history.replaceState({},"",e)}}),[a])}
2
2
  //# sourceMappingURL=useAutoScroll.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CopyButton,NewTabButton,EmailButton}from"@redocly/theme";import{PanelItem,PanelItemDescription,PanelItemsList}from"../PanelItem";export function Overview({info:e}){var t;const n=e.contact&&e.contact.url&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:"URL"}),title:_jsx("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[_jsx(NewTabButton,{data:e.contact.url},"NewTabButton")]})||null,a=e.contact&&e.contact.email&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:e.contact.name||"E-mail"}),title:_jsx("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[_jsx(CopyButton,{data:e.contact.email},"CopyButton"),_jsx(EmailButton,{data:e.contact.email},"EmailButton")]})||null,r=e.license&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:"License"}),title:e.license.identifier?e.license.identifier:_jsx("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[_jsx(NewTabButton,{data:e.license.url},"NewTabButton")]})||null,l=e.termsOfService&&_jsx(PanelItem,{title:_jsx("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:"Terms of Service"}),actions:[_jsx(NewTabButton,{data:e.termsOfService},e.termsOfService)]})||null,i=(null===(t=e["x-links"])||void 0===t?void 0:t.map((e=>_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:e.name}),title:_jsx("a",{href:e.url,target:"_blank",rel:"noreferrer",children:e.url}),actions:[_jsx(NewTabButton,{data:e.url},"NewTabButton")]},e.url))))||null;return _jsx(_Fragment,{children:_jsxs(PanelItemsList,{children:[n,a,r,l,i]})})}
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{CopyButton,NewTabButton,EmailButton}from"@redocly/theme";import{PanelItem,PanelItemDescription,PanelItemsList}from"../PanelItem";export function Overview({info:e}){const t=e.contact&&e.contact.url&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:"URL"}),title:_jsx("a",{href:e.contact.url,target:"_blank",rel:"noreferrer",children:e.contact.url}),actions:[_jsx(NewTabButton,{data:e.contact.url},"NewTabButton")]})||null,n=e.contact&&e.contact.email&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:e.contact.name||"E-mail"}),title:_jsx("a",{href:"mailto:"+e.contact.email,children:e.contact.email}),actions:[_jsx(CopyButton,{data:e.contact.email},"CopyButton"),_jsx(EmailButton,{data:e.contact.email},"EmailButton")]})||null,a=e.license&&_jsx(PanelItem,{header:_jsx(PanelItemDescription,{children:"License"}),title:e.license.identifier?e.license.identifier:_jsx("a",{href:e.license.url,target:"_blank",rel:"noreferrer",children:e.license.name}),actions:[_jsx(NewTabButton,{data:e.license.url},"NewTabButton")]})||null,r=e.termsOfService&&_jsx(PanelItem,{title:_jsx("a",{href:e.termsOfService,target:"_blank",rel:"noreferrer",children:"Terms of Service"}),actions:[_jsx(NewTabButton,{data:e.termsOfService},e.termsOfService)]})||null;return _jsx(_Fragment,{children:_jsxs(PanelItemsList,{children:[t,n,a,r]})})}
2
2
  //# sourceMappingURL=Overview.js.map
@@ -2,4 +2,4 @@ import type { ReactElement } from 'react';
2
2
  export interface ExpandableExampleProps {
3
3
  value: string;
4
4
  }
5
- export declare function ExpandableExample({ value }: ExpandableExampleProps): ReactElement | null;
5
+ export declare function ExpandableExample({ value }: ExpandableExampleProps): ReactElement;
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import styled from"styled-components";import{Button}from"@redocly/theme";import{Markdown}from"../../Markdown";import{ExampleValue}from"../Fields";import{useExpandableField}from"../../../hooks";export function ExpandableExample({value:e}){const{displayText:n,containerRef:a,toggleExpand:o,expanded:l}=useExpandableField({value:e});return _jsxs(Container,{ref:a,children:[_jsx(Markdown,{source:n}),(e!==n||l)&&_jsx(ButtonWrap,{children:_jsx(Button,{variant:"link",size:"small",onClick:o,children:l?"Hide example":"Show example"})})]})}const Container=styled(ExampleValue)`
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import styled from"styled-components";import{Button}from"@redocly/theme";import{useMemo,useState}from"react";import{Markdown}from"../../Markdown";import{ExampleValue}from"../Fields";const MAX_EXAMPLE_LENGTH=150;export function ExpandableExample({value:e}){const[t,s]=useState(!1),n=useMemo((()=>e.slice(0,MAX_EXAMPLE_LENGTH)),[e]);return _jsxs(Container,{children:[_jsx(Markdown,{source:t?e:n}),(e!==n||t)&&_jsx(ButtonWrap,{children:_jsx(Button,{variant:"link",size:"small",onClick:()=>{s(!t)},children:t?"Hide example":"Show example"})})]})}const Container=styled(ExampleValue)`
2
2
  display: inline;
3
3
 
4
4
  & * {
@@ -5,4 +5,3 @@ export { useRouter } from './useRouter';
5
5
  export { useContentItems } from './useContentItems';
6
6
  export { useActiveWithFallback } from './useActiveWithFallback';
7
7
  export { useUppercase2LowercaseRedirect } from './useUppercase2LowercaseRedirect';
8
- export { useExpandableField } from './useExpandableField';
@@ -1,2 +1,2 @@
1
- export{useDimensions}from"./useDimensions";export{usePrevious}from"./usePrevious";export{useActivateExample}from"./useActivateExample";export{useRouter}from"./useRouter";export{useContentItems}from"./useContentItems";export{useActiveWithFallback}from"./useActiveWithFallback";export{useUppercase2LowercaseRedirect}from"./useUppercase2LowercaseRedirect";export{useExpandableField}from"./useExpandableField";
1
+ export{useDimensions}from"./useDimensions";export{usePrevious}from"./usePrevious";export{useActivateExample}from"./useActivateExample";export{useRouter}from"./useRouter";export{useContentItems}from"./useContentItems";export{useActiveWithFallback}from"./useActiveWithFallback";export{useUppercase2LowercaseRedirect}from"./useUppercase2LowercaseRedirect";
2
2
  //# sourceMappingURL=index.js.map
@@ -21,4 +21,3 @@ export * from './queryString';
21
21
  export * from './isMobile';
22
22
  export * from './replaceVariables';
23
23
  export * from './areArraysEqual';
24
- export * from './calculateAvgCharacterWidth';
@@ -1,2 +1,2 @@
1
- export*from"./JsonPointer";export*from"./openapi";export*from"./helpers";export*from"./highlight";export*from"./dom";export*from"./debug";export*from"./sort";export*from"./argValuesHelpers";export*from"./theme-helpers";export*from"./debounce";export*from"./security-details";export*from"./session-storage";export*from"./local-storage";export*from"./parameters";export*from"./string";export*from"./test-utils";export*from"./compose";export*from"./saveTextBeforeHeading";export*from"./path";export*from"./queryString";export*from"./isMobile";export*from"./replaceVariables";export*from"./areArraysEqual";export*from"./calculateAvgCharacterWidth";
1
+ export*from"./JsonPointer";export*from"./openapi";export*from"./helpers";export*from"./highlight";export*from"./dom";export*from"./debug";export*from"./sort";export*from"./argValuesHelpers";export*from"./theme-helpers";export*from"./debounce";export*from"./security-details";export*from"./session-storage";export*from"./local-storage";export*from"./parameters";export*from"./string";export*from"./test-utils";export*from"./compose";export*from"./saveTextBeforeHeading";export*from"./path";export*from"./queryString";export*from"./isMobile";export*from"./replaceVariables";export*from"./areArraysEqual";
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.2.11-rc.6",
3
+ "version": "3.2.12",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -44,8 +44,8 @@
44
44
  "url": "~0.11.0",
45
45
  "url-template": "^2.0.8",
46
46
  "util": "~0.12.5",
47
- "@redocly/config": "0.8.1",
48
- "@redocly/replay": "0.3.13"
47
+ "@redocly/replay": "0.3.15",
48
+ "@redocly/config": "0.8.2"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@testing-library/jest-dom": "6.1.5",
@@ -92,7 +92,7 @@
92
92
  "webpack": "5.91.0",
93
93
  "webpack-cli": "5.1.4",
94
94
  "webpack-dev-server": "4.15.2",
95
- "@redocly/theme": "0.38.8"
95
+ "@redocly/theme": "0.39.1"
96
96
  },
97
97
  "scripts": {
98
98
  "start": "webpack serve --mode=development --hot",
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const react_hooks_1=require("@testing-library/react-hooks"),useExpandableField_1=require("../useExpandableField");jest.mock("../../utils",(()=>({calculateAvgCharacterWidth:jest.fn((()=>10))}))),describe("useExpandableField",(()=>{const e="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";it("should truncate text correctly when not expanded",(()=>{const{result:t}=(0,react_hooks_1.renderHook)((()=>(0,useExpandableField_1.useExpandableField)({value:e,lines:2})));t.current.containerRef.current={parentElement:{getBoundingClientRect:()=>({width:100})}},(0,react_hooks_1.act)((()=>{t.current.toggleExpand()})),(0,react_hooks_1.act)((()=>{t.current.toggleExpand()})),expect(t.current.displayText.length).toBeLessThanOrEqual(23)})),it("should show full text when expanded",(()=>{const{result:t}=(0,react_hooks_1.renderHook)((()=>(0,useExpandableField_1.useExpandableField)({value:e,lines:2})));t.current.containerRef.current={parentElement:{getBoundingClientRect:()=>({width:100})}},(0,react_hooks_1.act)((()=>{t.current.toggleExpand()})),expect(t.current.displayText).toEqual(e)})),it("should toggle expanded state correctly",(()=>{const{result:t}=(0,react_hooks_1.renderHook)((()=>(0,useExpandableField_1.useExpandableField)({value:e,lines:2})));expect(t.current.expanded).toBe(!1),(0,react_hooks_1.act)((()=>{t.current.toggleExpand()})),expect(t.current.expanded).toBe(!0),(0,react_hooks_1.act)((()=>{t.current.toggleExpand()})),expect(t.current.expanded).toBe(!1)}))}));
2
- //# sourceMappingURL=useExpandableField.test.js.map
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- export interface UseExpandableFieldProps {
3
- value: string;
4
- lines?: number;
5
- }
6
- export interface UseExpandableFieldResult {
7
- expanded: boolean;
8
- displayText: string;
9
- containerRef: React.RefObject<HTMLDivElement>;
10
- toggleExpand: () => void;
11
- }
12
- export declare function useExpandableField({ value, lines, }: UseExpandableFieldProps): UseExpandableFieldResult;
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useExpandableField=void 0;const react_1=require("react"),utils_1=require("../utils");function useExpandableField({value:e,lines:t=2}){const[a,l]=(0,react_1.useState)(!1),n=(0,react_1.useRef)(null),[r,s]=(0,react_1.useState)(e);(0,react_1.useLayoutEffect)((()=>{var l;if(null===(l=n.current)||void 0===l?void 0:l.parentElement){const l=n.current.parentElement,r=l.getBoundingClientRect().width,i=(0,utils_1.calculateAvgCharacterWidth)(l),c=Math.floor(r/i);if(a)s(e);else{const a=u(e,c*t);s(a)}}}),[n,a,t,e]);const u=(e,t)=>e.length<=t?e:`${e.slice(0,t)}...`;return{expanded:a,displayText:r,containerRef:n,toggleExpand:()=>{l((e=>!e))}}}exports.useExpandableField=useExpandableField;
2
- //# sourceMappingURL=useExpandableField.js.map
@@ -1 +0,0 @@
1
- export declare function calculateAvgCharacterWidth(parentElement: HTMLElement): number;
@@ -1,2 +0,0 @@
1
- "use strict";function calculateAvgCharacterWidth(t){const e=document.createElement("span");e.style.visibility="hidden",e.style.whiteSpace="nowrap",e.textContent="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",t.appendChild(e);const a=e.getBoundingClientRect().width/e.textContent.length;return t.removeChild(e),a}Object.defineProperty(exports,"__esModule",{value:!0}),exports.calculateAvgCharacterWidth=void 0,exports.calculateAvgCharacterWidth=calculateAvgCharacterWidth;
2
- //# sourceMappingURL=calculateAvgCharacterWidth.js.map
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import{renderHook,act}from"@testing-library/react-hooks";import{useExpandableField}from"../useExpandableField";jest.mock("../../utils",(()=>({calculateAvgCharacterWidth:jest.fn((()=>10))}))),describe("useExpandableField",(()=>{const e="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";it("should truncate text correctly when not expanded",(()=>{const{result:t}=renderHook((()=>useExpandableField({value:e,lines:2})));t.current.containerRef.current={parentElement:{getBoundingClientRect:()=>({width:100})}},act((()=>{t.current.toggleExpand()})),act((()=>{t.current.toggleExpand()})),expect(t.current.displayText.length).toBeLessThanOrEqual(23)})),it("should show full text when expanded",(()=>{const{result:t}=renderHook((()=>useExpandableField({value:e,lines:2})));t.current.containerRef.current={parentElement:{getBoundingClientRect:()=>({width:100})}},act((()=>{t.current.toggleExpand()})),expect(t.current.displayText).toEqual(e)})),it("should toggle expanded state correctly",(()=>{const{result:t}=renderHook((()=>useExpandableField({value:e,lines:2})));expect(t.current.expanded).toBe(!1),act((()=>{t.current.toggleExpand()})),expect(t.current.expanded).toBe(!0),act((()=>{t.current.toggleExpand()})),expect(t.current.expanded).toBe(!1)}))}));
2
- //# sourceMappingURL=useExpandableField.test.js.map
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- export interface UseExpandableFieldProps {
3
- value: string;
4
- lines?: number;
5
- }
6
- export interface UseExpandableFieldResult {
7
- expanded: boolean;
8
- displayText: string;
9
- containerRef: React.RefObject<HTMLDivElement>;
10
- toggleExpand: () => void;
11
- }
12
- export declare function useExpandableField({ value, lines, }: UseExpandableFieldProps): UseExpandableFieldResult;
@@ -1,2 +0,0 @@
1
- import{useState,useRef,useLayoutEffect}from"react";import{calculateAvgCharacterWidth}from"../utils";export function useExpandableField({value:e,lines:t=2}){const[a,n]=useState(!1),l=useRef(null),[r,u]=useState(e);useLayoutEffect((()=>{var n;if(null===(n=l.current)||void 0===n?void 0:n.parentElement){const n=l.current.parentElement,r=n.getBoundingClientRect().width,o=calculateAvgCharacterWidth(n),i=Math.floor(r/o);if(a)u(e);else{const a=c(e,i*t);u(a)}}}),[l,a,t,e]);const c=(e,t)=>e.length<=t?e:`${e.slice(0,t)}...`;return{expanded:a,displayText:r,containerRef:l,toggleExpand:()=>{n((e=>!e))}}}
2
- //# sourceMappingURL=useExpandableField.js.map
@@ -1 +0,0 @@
1
- export declare function calculateAvgCharacterWidth(parentElement: HTMLElement): number;
@@ -1,2 +0,0 @@
1
- export function calculateAvgCharacterWidth(t){const e=document.createElement("span");e.style.visibility="hidden",e.style.whiteSpace="nowrap",e.textContent="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",t.appendChild(e);const n=e.getBoundingClientRect().width/e.textContent.length;return t.removeChild(e),n}
2
- //# sourceMappingURL=calculateAvgCharacterWidth.js.map