@redocly/openapi-docs 3.2.0 → 3.2.2

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 (52) hide show
  1. package/dist/redocly-openapi-docs.min.js +1438 -1352
  2. package/lib/components/OperationItem/OperationItem.js +2 -5
  3. package/lib/components/PropertyDetails/FieldDetail.js +1 -1
  4. package/lib/components/PropertyDetails/FieldDetails.js +1 -5
  5. package/lib/components/Schema/OneOfSchema.js +1 -1
  6. package/lib/components/TagItem/OperationsNavigation.js +1 -1
  7. package/lib/components/common/Badges.d.ts +13 -0
  8. package/lib/components/common/Badges.js +19 -0
  9. package/lib/components/common/ExpandableExample/ExpandableExample.d.ts +5 -0
  10. package/lib/components/common/ExpandableExample/ExpandableExample.js +10 -0
  11. package/lib/components/common/ExpandableExample/index.d.ts +1 -0
  12. package/lib/components/common/ExpandableExample/index.js +2 -0
  13. package/lib/components/common/index.d.ts +2 -0
  14. package/lib/components/common/index.js +1 -1
  15. package/lib/components/common/schema.d.ts +0 -2
  16. package/lib/components/common/schema.js +1 -3
  17. package/lib/hooks/_tests_/useExpandableField.test.d.ts +1 -0
  18. package/lib/hooks/_tests_/useExpandableField.test.js +2 -0
  19. package/lib/hooks/index.d.ts +1 -0
  20. package/lib/hooks/index.js +1 -1
  21. package/lib/hooks/useExpandableField.d.ts +12 -0
  22. package/lib/hooks/useExpandableField.js +2 -0
  23. package/lib/utils/calculateAvgCharacterWidth.d.ts +1 -0
  24. package/lib/utils/calculateAvgCharacterWidth.js +2 -0
  25. package/lib/utils/index.d.ts +1 -0
  26. package/lib/utils/index.js +1 -1
  27. package/lib-esm/components/OperationItem/OperationItem.js +2 -5
  28. package/lib-esm/components/PropertyDetails/FieldDetail.js +1 -1
  29. package/lib-esm/components/PropertyDetails/FieldDetails.js +1 -5
  30. package/lib-esm/components/Schema/OneOfSchema.js +1 -1
  31. package/lib-esm/components/TagItem/OperationsNavigation.js +1 -1
  32. package/lib-esm/components/common/Badges.d.ts +13 -0
  33. package/lib-esm/components/common/Badges.js +19 -0
  34. package/lib-esm/components/common/ExpandableExample/ExpandableExample.d.ts +5 -0
  35. package/lib-esm/components/common/ExpandableExample/ExpandableExample.js +10 -0
  36. package/lib-esm/components/common/ExpandableExample/index.d.ts +1 -0
  37. package/lib-esm/components/common/ExpandableExample/index.js +2 -0
  38. package/lib-esm/components/common/index.d.ts +2 -0
  39. package/lib-esm/components/common/index.js +1 -1
  40. package/lib-esm/components/common/schema.d.ts +0 -2
  41. package/lib-esm/components/common/schema.js +1 -3
  42. package/lib-esm/hooks/_tests_/useExpandableField.test.d.ts +1 -0
  43. package/lib-esm/hooks/_tests_/useExpandableField.test.js +2 -0
  44. package/lib-esm/hooks/index.d.ts +1 -0
  45. package/lib-esm/hooks/index.js +1 -1
  46. package/lib-esm/hooks/useExpandableField.d.ts +12 -0
  47. package/lib-esm/hooks/useExpandableField.js +2 -0
  48. package/lib-esm/utils/calculateAvgCharacterWidth.d.ts +1 -0
  49. package/lib-esm/utils/calculateAvgCharacterWidth.js +2 -0
  50. package/lib-esm/utils/index.d.ts +1 -0
  51. package/lib-esm/utils/index.js +1 -1
  52. package/package.json +5 -4
@@ -1,7 +1,7 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationItem=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),common_1=require("../common"),Callbacks_1=require("../Callbacks"),CallbackSamples_1=require("../CallbackSamples"),RequestSamples_1=require("../RequestSamples"),Responses_1=require("../Responses"),ResponseSamples_1=require("../ResponseSamples"),services_1=require("../../services"),app_1=require("../../jotai/app"),store_1=require("../../jotai/store"),operation_1=require("../../models/operation"),RenderHook_1=require("../RenderHook"),OperationItemTitle_1=require("../common/OperationItemTitle"),LinkToField_1=require("../common/LinkToField"),RequestDetails_1=require("../Request/RequestDetails"),OperationSamplesPanel=(0,styled_components_1.default)(common_1.SamplesPanel)`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationItem=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),jotai_1=require("jotai"),theme_1=require("@redocly/theme"),common_1=require("../common"),Callbacks_1=require("../Callbacks"),CallbackSamples_1=require("../CallbackSamples"),RequestSamples_1=require("../RequestSamples"),Responses_1=require("../Responses"),ResponseSamples_1=require("../ResponseSamples"),services_1=require("../../services"),app_1=require("../../jotai/app"),store_1=require("../../jotai/store"),operation_1=require("../../models/operation"),RenderHook_1=require("../RenderHook"),OperationItemTitle_1=require("../common/OperationItemTitle"),LinkToField_1=require("../common/LinkToField"),RequestDetails_1=require("../Request/RequestDetails"),Badges_1=require("../common/Badges"),OperationSamplesPanel=(0,styled_components_1.default)(common_1.SamplesPanel)`
2
2
  margin-left: auto;
3
3
  --code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
4
- `;function OperationItemComponent({item:{operationDefinition:e,parent:t,href:a}}){var s,n;const{parser:o,options:i}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),r=(0,jotai_1.useAtomValue)(app_1.layoutAtom),[l,p]=(0,react_1.useState)(),{unstable_hooks:_,feedback:m}=i,c=(0,react_1.useMemo)((()=>(0,operation_1.getOperation)(o,e,t,i,a)),[a,e,i,t,o]),{name:d,deprecated:u,isWebhook:x,badges:j}=c,k=r===theme_1.LayoutVariant.STACKED,h=(null==m?void 0:m.type)||"sentiment",b=!0!==(null==m?void 0:m.hide),S=j.filter((({position:e})=>"before"===e)),R=j.filter((({position:e})=>"after"===e)),[O,f]=(0,react_1.useState)(null),g=(0,react_1.useCallback)((e=>{l!==e&&p(e)}),[l]);return(0,jsx_runtime_1.jsxs)(OperationRow,{layout:r,children:[(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:r,children:(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:k,children:[(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.BeforeOpenApiOperation||(null==_?void 0:_.BeforeOperation),props:{operation:c}}),(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Heading,{"data-testid":"operation-item-header",children:[(0,jsx_runtime_1.jsx)(common_1.ShareLink,{to:a,"aria-label":`link to ${d}`}),S.map((({name:e,color:t})=>(0,jsx_runtime_1.jsx)(OperationBadge,{color:t,children:e},e))),d,R.map((({name:e,color:t})=>(0,jsx_runtime_1.jsx)(OperationBadge,{color:t,children:e},e))),u&&(0,jsx_runtime_1.jsx)(OperationBadge,{deprecated:!0,children:"Deprecated"}),x&&(0,jsx_runtime_1.jsx)(OperationBadge,{children:"Webhook"})]})]})}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,children:(0,jsx_runtime_1.jsx)(RequestDetails_1.RequestDetails,{operation:c})}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-testid":"samples-block",className:"panel-container-request-samples",children:(0,jsx_runtime_1.jsx)(RequestSamples_1.RequestSamples,{operation:c})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,children:(null===(s=c.responses)||void 0===s?void 0:s.length)?(0,jsx_runtime_1.jsx)(Responses_1.OperationResponseList,{responses:c.responses,operationId:c.id,operationPointer:c.pointer,callbackId:c.callbackId,activeResponseTab:l,onTabChange:g}):null}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-testid":"samples-block",className:"panel-container-response-samples",children:(0,jsx_runtime_1.jsx)(ResponseSamples_1.ResponseSamples,{operation:c,activeResponseTab:l,onTabChange:g})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:k,children:[(null===(n=c.callbacks)||void 0===n?void 0:n.length)?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Title,{children:[(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:(0,services_1.makeDeepLink)(c.id,"callbacks")}),"Callbacks"]}),(0,jsx_runtime_1.jsx)(Callbacks_1.CallbacksList,{callbacks:c.callbacks,onExpand:f,selectedCallback:O})]}):null,(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiOperation||(null==_?void 0:_.AfterOperation),props:{operation:c}})]}),O?(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-testid":"samples-block",children:(0,jsx_runtime_1.jsx)(CallbackSamples_1.CallbackSamples,{callback:O})}):null]}),(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:r,children:(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,fullWidth:!0,children:b?(0,jsx_runtime_1.jsx)(FeedbackWrapper,{children:(0,jsx_runtime_1.jsx)(theme_1.Feedback,{type:h,settings:m.settings,path:c.href})}):null})})]})}exports.OperationItem=(0,react_1.memo)(OperationItemComponent);const FeedbackWrapper=styled_components_1.default.div`
4
+ `;function OperationItemComponent({item:{operationDefinition:e,parent:t,href:s}}){var a,n;const{parser:i,options:o}=(0,jotai_1.useAtomValue)(store_1.globalStoreAtom),r=(0,jotai_1.useAtomValue)(app_1.layoutAtom),[l,_]=(0,react_1.useState)(),{unstable_hooks:m,feedback:p}=o,d=(0,react_1.useMemo)((()=>(0,operation_1.getOperation)(i,e,t,o,s)),[s,e,o,t,i]),{name:c,deprecated:u,isWebhook:x,badges:j}=d,k=r===theme_1.LayoutVariant.STACKED,S=(null==p?void 0:p.type)||"sentiment",b=!0!==(null==p?void 0:p.hide),[h,R]=(0,react_1.useState)(null),g=(0,react_1.useCallback)((e=>{l!==e&&_(e)}),[l]);return(0,jsx_runtime_1.jsxs)(OperationRow,{layout:r,children:[(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:r,children:(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:k,children:[(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.BeforeOpenApiOperation||(null==m?void 0:m.BeforeOperation),props:{operation:d}}),(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Heading,{"data-testid":"operation-item-header",children:[(0,jsx_runtime_1.jsx)(common_1.ShareLink,{to:s,"aria-label":`link to ${c}`}),(0,jsx_runtime_1.jsx)(common_1.CustomBadges,{badges:j,children:c}),u&&(0,jsx_runtime_1.jsx)(Badges_1.StyledBadge,{deprecated:!0,children:"Deprecated"}),x&&(0,jsx_runtime_1.jsx)(Badges_1.StyledBadge,{children:"Webhook"})]})]})}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,children:(0,jsx_runtime_1.jsx)(RequestDetails_1.RequestDetails,{operation:d})}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-testid":"samples-block",className:"panel-container-request-samples",children:(0,jsx_runtime_1.jsx)(RequestSamples_1.RequestSamples,{operation:d})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,children:(null===(a=d.responses)||void 0===a?void 0:a.length)?(0,jsx_runtime_1.jsx)(Responses_1.OperationResponseList,{responses:d.responses,operationId:d.id,operationPointer:d.pointer,callbackId:d.callbackId,activeResponseTab:l,onTabChange:g}):null}),(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-testid":"samples-block",className:"panel-container-response-samples",children:(0,jsx_runtime_1.jsx)(ResponseSamples_1.ResponseSamples,{operation:d,activeResponseTab:l,onTabChange:g})})]}),(0,jsx_runtime_1.jsxs)(OperationSubRowStyled,{layout:r,children:[(0,jsx_runtime_1.jsxs)(common_1.SamplesMiddlePanel,{isStacked:k,children:[(null===(n=d.callbacks)||void 0===n?void 0:n.length)?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(OperationItemTitle_1.Title,{children:[(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:(0,services_1.makeDeepLink)(d.id,"callbacks")}),"Callbacks"]}),(0,jsx_runtime_1.jsx)(Callbacks_1.CallbacksList,{callbacks:d.callbacks,onExpand:R,selectedCallback:h})]}):null,(0,jsx_runtime_1.jsx)(RenderHook_1.RenderHook,{Hook:theme_1.AfterOpenApiOperation||(null==m?void 0:m.AfterOperation),props:{operation:d}})]}),h?(0,jsx_runtime_1.jsx)(OperationSamplesPanel,{isStacked:k,"data-testid":"samples-block",children:(0,jsx_runtime_1.jsx)(CallbackSamples_1.CallbackSamples,{callback:h})}):null]}),(0,jsx_runtime_1.jsx)(OperationSubRowStyled,{layout:r,children:(0,jsx_runtime_1.jsx)(common_1.SamplesMiddlePanel,{isStacked:k,fullWidth:!0,children:b?(0,jsx_runtime_1.jsx)(FeedbackWrapper,{children:(0,jsx_runtime_1.jsx)(theme_1.Feedback,{type:S,settings:p.settings,path:d.href})}):null})})]})}exports.OperationItem=(0,react_1.memo)(OperationItemComponent);const FeedbackWrapper=styled_components_1.default.div`
5
5
  & > div {
6
6
  flex: 1 1 auto;
7
7
  display: flex;
@@ -18,8 +18,5 @@
18
18
  padding: var(--spacing-base) 0 calc(var(--spacing-xl) + var(--spacing-xs));
19
19
  `,OperationSubRowStyled=(0,styled_components_1.default)(common_1.Row)`
20
20
  margin: calc(var(--spacing-unit) * 2) 0;
21
- `,OperationBadge=(0,styled_components_1.default)(theme_1.Badge)`
22
- margin: 0;
23
- background-color: ${({color:e})=>e};
24
21
  `;
25
22
  //# sourceMappingURL=OperationItem.js.map
@@ -1,4 +1,4 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FieldDetail=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),common_1=require("../common"),Markdown_1=require("../Markdown");function FieldDetailComponent({value:e,label:r,raw:t}){if(void 0===e)return null;const n=t?String(e):JSON.stringify(e);return(0,jsx_runtime_1.jsxs)(Wrapper,{children:[(0,jsx_runtime_1.jsxs)(common_1.FieldLabel,{children:[" ",r," "]}),"Default"===r?(0,jsx_runtime_1.jsx)(common_1.DefaultValue,{children:n}):"Example:"===r?(0,jsx_runtime_1.jsx)(common_1.ExampleValue,{children:(0,jsx_runtime_1.jsx)(Markdown_1.Markdown,{source:n})}):(0,jsx_runtime_1.jsx)(common_1.FieldValueLabel,{children:n})]})}exports.FieldDetail=(0,react_1.memo)(FieldDetailComponent);const Wrapper=styled_components_1.default.div`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FieldDetail=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importDefault(require("styled-components")),common_1=require("../common");function FieldDetailComponent({value:e,label:t,raw:r}){if(void 0===e)return null;const i=r?String(e):JSON.stringify(e);return(0,jsx_runtime_1.jsxs)(Wrapper,{children:[(0,jsx_runtime_1.jsxs)(common_1.FieldLabel,{children:[" ",t," "]}),"Default"===t?(0,jsx_runtime_1.jsx)(common_1.DefaultValue,{children:i}):"Example:"===t?(0,jsx_runtime_1.jsx)(common_1.ExpandableExample,{value:i}):(0,jsx_runtime_1.jsx)(common_1.FieldValueLabel,{children:i})]})}exports.FieldDetail=(0,react_1.memo)(FieldDetailComponent);const Wrapper=styled_components_1.default.div`
2
2
  margin-top: var(--spacing-xxs);
3
3
  display: flex;
4
4
  align-items: baseline;
@@ -1,14 +1,10 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FieldDetails=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),common_1=require("../common"),ExternalDocumentation_1=require("../ExternalDocumentation"),Markdown_1=require("../Markdown"),FieldDetail_1=require("./FieldDetail"),Extensions_1=require("./Extensions"),EnumValues_1=require("./EnumValues"),Examples_1=require("./Examples"),store_1=require("../../jotai/store"),SchemaTypeInfo_1=require("./SchemaTypeInfo"),LinkToField_1=require("../common/LinkToField"),Pattern_1=require("./Pattern"),RenderHook_1=require("../RenderHook");function FieldDetailsComponent({field:e,renderDiscriminatorSwitch:t,deepLink:i,fieldParentsName:r=[]}){var n;const{hidePropertiesPrefix:a,hideSchemaTitles:o}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{schema:s,description:l,example:m,deprecated:c,examples:_,kind:d,required:u,name:p}=e,x="header"===e.in,j=(0,react_1.useMemo)((()=>{if(void 0!==m||void 0!==_){if(void 0!==_)return(0,jsx_runtime_1.jsx)(Examples_1.Examples,{field:e});{const t=!!e.in;return(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{label:"Example:",value:(0,Examples_1.getSerializedValue)(e,e.example),raw:t})}}return null}),[m,_,e]),f=(0,RenderHook_1.getAccessModeLabelText)(e.schema);return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(Row,{children:[p&&(0,jsx_runtime_1.jsxs)(Name,{children:[i&&(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:i}),!a&&r.map((e=>e+".")),(0,jsx_runtime_1.jsx)(SchemaName,{className:"schema-name",children:p})]}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:s.typePrefix+s.displayType}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:s.displayFormat&&`(${s.displayFormat})`}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:s.contentEncoding}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:s.title&&!o?`(${s.title})`:""}),null===(n=s.constraints)||void 0===n?void 0:n.map((e=>(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:e},e))),c&&(0,jsx_runtime_1.jsx)(DeprecatedLabel,{children:"Deprecated"}),(0,jsx_runtime_1.jsx)(Pattern_1.Pattern,{pattern:s.pattern}),"additionalProperties"===d&&(0,jsx_runtime_1.jsx)(common_1.Tag,{children:"additional property"}),"patternProperties"===d&&(0,jsx_runtime_1.jsx)(common_1.Tag,{children:"pattern property"}),f&&(0,jsx_runtime_1.jsx)(common_1.AccessLabel,{children:f}),u&&(0,jsx_runtime_1.jsx)(common_1.RequiredLabel,{children:"required"}),s.isCircular&&(0,jsx_runtime_1.jsx)(common_1.RecursiveLabel,{children:"Recursive"})]}),(0,jsx_runtime_1.jsx)(StyledDescription,{source:l}),(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{raw:x,label:"Default",value:s.default}),(0,jsx_runtime_1.jsx)(EnumValues_1.EnumValues,{type:s.type,values:s["x-enumDescriptions"]||s.enum}),j,(0,jsx_runtime_1.jsx)(Extensions_1.Extensions,{extensions:Object.assign(Object.assign({},e.extensions),s.extensions)}),s.externalDocs&&(0,jsx_runtime_1.jsx)(ExternalDocumentation_1.ExternalDocumentation,{externalDocs:s.externalDocs,compact:!0}),null==t?void 0:t(),(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{label:"Value",value:e.const||void 0})]})}exports.FieldDetails=(0,react_1.memo)(FieldDetailsComponent);const Row=styled_components_1.default.div`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FieldDetails=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),theme_1=require("@redocly/theme"),common_1=require("../common"),ExternalDocumentation_1=require("../ExternalDocumentation"),Markdown_1=require("../Markdown"),FieldDetail_1=require("./FieldDetail"),Extensions_1=require("./Extensions"),EnumValues_1=require("./EnumValues"),Examples_1=require("./Examples"),store_1=require("../../jotai/store"),SchemaTypeInfo_1=require("./SchemaTypeInfo"),LinkToField_1=require("../common/LinkToField"),Pattern_1=require("./Pattern"),RenderHook_1=require("../RenderHook");function FieldDetailsComponent({field:e,renderDiscriminatorSwitch:t,deepLink:i,fieldParentsName:n=[]}){var r;const{hidePropertiesPrefix:a,hideSchemaTitles:s}=(0,jotai_1.useAtomValue)(store_1.globalOptionsAtom),{schema:o,description:l,example:m,deprecated:_,examples:c,kind:u,required:d,name:p}=e,x="header"===e.in,j=(0,react_1.useMemo)((()=>{if(void 0!==m||void 0!==c){if(void 0!==c)return(0,jsx_runtime_1.jsx)(Examples_1.Examples,{field:e});{const t=!!e.in;return(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{label:"Example:",value:(0,Examples_1.getSerializedValue)(e,e.example),raw:t})}}return null}),[m,c,e]),h=(0,RenderHook_1.getAccessModeLabelText)(e.schema);return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsxs)(Row,{children:[p&&(0,jsx_runtime_1.jsxs)(Name,{children:[i&&(0,jsx_runtime_1.jsx)(LinkToField_1.LinkToField,{to:i}),!a&&n.map((e=>e+".")),(0,jsx_runtime_1.jsx)(SchemaName,{className:"schema-name",children:p})]}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:o.typePrefix+o.displayType}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:o.displayFormat&&`(${o.displayFormat})`}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:o.contentEncoding}),(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:o.title&&!s?`(${o.title})`:""}),null===(r=o.constraints)||void 0===r?void 0:r.map((e=>(0,jsx_runtime_1.jsx)(SchemaTypeInfo_1.SchemaTypeInfo,{type:e},e))),_&&(0,jsx_runtime_1.jsx)(common_1.StyledBadge,{deprecated:!0,children:"Deprecated"}),(0,jsx_runtime_1.jsx)(Pattern_1.Pattern,{pattern:o.pattern}),"additionalProperties"===u&&(0,jsx_runtime_1.jsx)(common_1.Tag,{children:"additional property"}),"patternProperties"===u&&(0,jsx_runtime_1.jsx)(common_1.Tag,{children:"pattern property"}),h&&(0,jsx_runtime_1.jsx)(common_1.AccessLabel,{children:h}),d&&(0,jsx_runtime_1.jsx)(common_1.RequiredLabel,{children:"required"}),o.isCircular&&(0,jsx_runtime_1.jsx)(common_1.RecursiveLabel,{children:"Recursive"})]}),(0,jsx_runtime_1.jsx)(StyledDescription,{source:l}),(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{raw:x,label:"Default",value:o.default}),(0,jsx_runtime_1.jsx)(EnumValues_1.EnumValues,{type:o.type,values:o["x-enumDescriptions"]||o.enum}),j,(0,jsx_runtime_1.jsx)(Extensions_1.Extensions,{extensions:Object.assign(Object.assign({},e.extensions),o.extensions)}),o.externalDocs&&(0,jsx_runtime_1.jsx)(ExternalDocumentation_1.ExternalDocumentation,{externalDocs:o.externalDocs,compact:!0}),null==t?void 0:t(),(0,jsx_runtime_1.jsx)(FieldDetail_1.FieldDetail,{label:"Value",value:e.const||void 0})]})}exports.FieldDetails=(0,react_1.memo)(FieldDetailsComponent);const Row=styled_components_1.default.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  gap: calc(var(--spacing-xxs) / 4) var(--spacing-xxs);
5
5
  flex-wrap: wrap;
6
6
  margin-bottom: 2px;
7
7
  position: relative;
8
- `,DeprecatedLabel=(0,styled_components_1.default)(common_1.Tag)`
9
- color: var(--badge-deprecated-text-color);
10
- background-color: var(--badge-deprecated-bg-color);
11
- font-family: var(--font-family-base);
12
8
  `,StyledDescription=(0,styled_components_1.default)(Markdown_1.Markdown)`
13
9
  font-size: var(--font-size-base);
14
10
  line-height: var(--line-height-base);
@@ -1,4 +1,4 @@
1
- "use strict";var __rest=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[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])&&(n[o[r]]=e[o[r]])}return n},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OneOfSchema=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),common_1=require("../common"),Markdown_1=require("../Markdown"),ConstraintsView_1=require("../common/ConstraintsView"),Schema_1=require("./Schema"),operation_1=require("../../jotai/operation"),SchemaSelection_1=require("../common/SchemaSelection"),useOneOfLocationIdx_1=require("./useOneOfLocationIdx");function OneOfSchemaComponent(e){var{schema:{oneOf:t},schema:n,oneOfLevel:o=1}=e,r=__rest(e,["schema","schema","oneOfLevel"]);const[i]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(n.operationPointer)),s=(0,useOneOfLocationIdx_1.useOneOfLocationIdx)(t,o),a=-1===s?0:s,c=t[void 0!==i.activeOneOf[n.pointer]?i.activeOneOf[n.pointer]:a];if(!c)return null;const m=t.map(((e,t)=>({label:e.title||e.typePrefix+e.displayType,value:t})));return(0,jsx_runtime_1.jsxs)(Wrapper,{children:[(0,jsx_runtime_1.jsxs)(common_1.SelectionTitle,{children:[n.oneOfType,":"]}),(0,jsx_runtime_1.jsx)(SchemaSelection_1.SchemaSelection,{options:m,pointer:n.operationPointer,schema:n,defaultOneOfIdx:a}),c.deprecated&&(0,jsx_runtime_1.jsx)(common_1.BadgeStyle,{deprecated:!0,children:"Deprecated"}),c.description&&(0,jsx_runtime_1.jsx)(StyledDescription,{source:c.description}),(0,jsx_runtime_1.jsx)(ConstraintsView_1.ConstraintsView,{constraints:c.constraints}),(0,jsx_runtime_1.jsx)(Schema_1.Schema,Object.assign({},r,{schema:c,oneOfLevel:o+1}))]})}exports.OneOfSchema=(0,react_1.memo)(OneOfSchemaComponent);const StyledDescription=(0,styled_components_1.default)(Markdown_1.Markdown)`
1
+ "use strict";var __rest=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[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])&&(n[o[r]]=e[o[r]])}return n},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OneOfSchema=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),jotai_1=require("jotai"),styled_components_1=__importDefault(require("styled-components")),common_1=require("../common"),Markdown_1=require("../Markdown"),ConstraintsView_1=require("../common/ConstraintsView"),Schema_1=require("./Schema"),operation_1=require("../../jotai/operation"),SchemaSelection_1=require("../common/SchemaSelection"),useOneOfLocationIdx_1=require("./useOneOfLocationIdx");function OneOfSchemaComponent(e){var{schema:{oneOf:t},schema:n,oneOfLevel:o=1}=e,r=__rest(e,["schema","schema","oneOfLevel"]);const[i]=(0,jotai_1.useAtom)((0,operation_1.operationStore)(n.operationPointer)),s=(0,useOneOfLocationIdx_1.useOneOfLocationIdx)(t,o),a=-1===s?0:s,c=t[void 0!==i.activeOneOf[n.pointer]?i.activeOneOf[n.pointer]:a];if(!c)return null;const m=t.map(((e,t)=>({label:e.title||e.typePrefix+e.displayType,value:t})));return(0,jsx_runtime_1.jsxs)(Wrapper,{children:[(0,jsx_runtime_1.jsxs)(common_1.SelectionTitle,{children:[n.oneOfType,":"]}),(0,jsx_runtime_1.jsx)(SchemaSelection_1.SchemaSelection,{options:m,pointer:n.operationPointer,schema:n,defaultOneOfIdx:a}),c.deprecated&&(0,jsx_runtime_1.jsx)(common_1.StyledBadge,{deprecated:!0,children:"Deprecated"}),c.description&&(0,jsx_runtime_1.jsx)(StyledDescription,{source:c.description}),(0,jsx_runtime_1.jsx)(ConstraintsView_1.ConstraintsView,{constraints:c.constraints}),(0,jsx_runtime_1.jsx)(Schema_1.Schema,Object.assign({},r,{schema:c,oneOfLevel:o+1}))]})}exports.OneOfSchema=(0,react_1.memo)(OneOfSchemaComponent);const StyledDescription=(0,styled_components_1.default)(Markdown_1.Markdown)`
2
2
  margin-top: var(--spacing-xs);
3
3
  font-size: var(--font-size-base);
4
4
  line-height: var(--line-height-base);
@@ -1,4 +1,4 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationsNavigation=exports.OperationsNavigationComponent=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),react_router_dom_1=require("react-router-dom"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),index_1=require("jotai/index"),common_1=require("../common"),utils_1=require("../../utils"),services_1=require("../../services"),app_1=require("../../jotai/app"),MAX_OPERATIONS=8;function OperationsNavigationComponent({items:e,routingBasePath:t}){const[n,o]=(0,react_1.useState)(!1),r=(0,react_router_dom_1.useNavigate)(),i=(0,index_1.useAtomValue)(app_1.layoutAtom)===theme_1.LayoutVariant.STACKED,{operations:a,webhooks:s,count:l}=(0,react_1.useMemo)((()=>{const t=e.filter((e=>"operation"===e.type)),o=n?t:t.slice(0,MAX_OPERATIONS),{operations:r,webhooks:i}=o.reduce(((e,t)=>t.isWebhook?Object.assign(Object.assign({},e),{webhooks:[...e.webhooks,t]}):Object.assign(Object.assign({},e),{operations:[...e.operations,t]})),{operations:[],webhooks:[]});return{operations:r,webhooks:i,count:!n&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[n,e]);if(!a.length&&!s.length)return null;const c=e=>{r(e)};return(0,jsx_runtime_1.jsxs)(Wrapper,{isStacked:i,"data-testid":"operation-navigation-list",children:[a.length>0&&(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Heading,{children:"Operations"}),a.map((({id:e,href:n,httpVerb:o,path:r})=>(0,jsx_runtime_1.jsx)(Item,{variant:"outlined",size:"large",onClick:()=>c((0,services_1.joinWithSeparator)(t,(0,utils_1.encodeBackSlashes)(n))),children:(0,jsx_runtime_1.jsxs)("span",{children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:o,children:o}),(0,jsx_runtime_1.jsx)(Path,{children:r})]})},e)))]}),s.length>0&&(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Heading,{children:"Webhooks"}),s.map((({id:e,href:n,httpVerb:o,path:r})=>(0,jsx_runtime_1.jsx)(Item,{variant:"outlined",size:"large",onClick:()=>c((0,services_1.joinWithSeparator)(t,(0,utils_1.encodeBackSlashes)(n))),children:(0,jsx_runtime_1.jsxs)("span",{children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:o,children:o}),(0,jsx_runtime_1.jsx)(Path,{children:r})]})},e)))]}),!n&&Boolean(l)&&(0,jsx_runtime_1.jsxs)(StyledButton,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>o(!0),children:["Show ",l," more..."]})]})}exports.OperationsNavigationComponent=OperationsNavigationComponent,exports.OperationsNavigation=(0,react_1.memo)(OperationsNavigationComponent);const Wrapper=(0,styled_components_1.default)(common_1.SamplesPanel)`
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperationsNavigation=exports.OperationsNavigationComponent=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),react_router_dom_1=require("react-router-dom"),theme_1=require("@redocly/theme"),styled_components_1=__importDefault(require("styled-components")),index_1=require("jotai/index"),common_1=require("../common"),utils_1=require("../../utils"),services_1=require("../../services"),app_1=require("../../jotai/app"),MAX_OPERATIONS=8;function OperationsNavigationComponent({items:e,routingBasePath:t}){const[o,n]=(0,react_1.useState)(!1),r=(0,react_router_dom_1.useNavigate)(),i=(0,index_1.useAtomValue)(app_1.layoutAtom)===theme_1.LayoutVariant.STACKED,{operations:a,webhooks:s,count:l}=(0,react_1.useMemo)((()=>{const t=e.filter((e=>"operation"===e.type)),n=o?t:t.slice(0,MAX_OPERATIONS),{operations:r,webhooks:i}=n.reduce(((e,t)=>t.isWebhook?Object.assign(Object.assign({},e),{webhooks:[...e.webhooks,t]}):Object.assign(Object.assign({},e),{operations:[...e.operations,t]})),{operations:[],webhooks:[]});return{operations:r,webhooks:i,count:!o&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[o,e]);if(!a.length&&!s.length)return null;const c=e=>{r(e)};return(0,jsx_runtime_1.jsxs)(Wrapper,{isStacked:i,"data-testid":"operation-navigation-list",children:[a.length>0&&(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Heading,{children:"Operations"}),a.map((({id:e,href:o,httpVerb:n,path:r,deprecated:i,badges:a})=>(0,jsx_runtime_1.jsx)(Item,{variant:"outlined",size:"large",onClick:()=>c((0,services_1.joinWithSeparator)(t,(0,utils_1.encodeBackSlashes)(o))),children:(0,jsx_runtime_1.jsxs)("span",{children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:i?"http-deprecated":n,children:n}),(0,jsx_runtime_1.jsx)(Path,{children:r}),i&&(0,jsx_runtime_1.jsx)(common_1.NavigationBadge,{deprecated:!0,children:"Deprecated"}),a&&a.map((({name:e,color:t})=>(0,jsx_runtime_1.jsx)(common_1.NavigationBadge,{color:t,children:e},e)))]})},e)))]}),s.length>0&&(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Heading,{children:"Webhooks"}),s.map((({id:e,href:o,httpVerb:n,path:r})=>(0,jsx_runtime_1.jsx)(Item,{variant:"outlined",size:"large",onClick:()=>c((0,services_1.joinWithSeparator)(t,(0,utils_1.encodeBackSlashes)(o))),children:(0,jsx_runtime_1.jsxs)("span",{children:[(0,jsx_runtime_1.jsx)(common_1.HttpVerb,{color:n,children:n}),(0,jsx_runtime_1.jsx)(Path,{children:r})]})},e)))]}),!o&&Boolean(l)&&(0,jsx_runtime_1.jsxs)(StyledButton,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>n(!0),children:["Show ",l," more..."]})]})}exports.OperationsNavigationComponent=OperationsNavigationComponent,exports.OperationsNavigation=(0,react_1.memo)(OperationsNavigationComponent);const Wrapper=(0,styled_components_1.default)(common_1.SamplesPanel)`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: var(--spacing-xxs);
@@ -0,0 +1,13 @@
1
+ import { Badge } from '@redocly/theme';
2
+ import type { PropsWithChildren } from 'react';
3
+ import type { OpenAPIXBadges } from '../../types';
4
+ interface CustomBadgesProps {
5
+ badges?: OpenAPIXBadges[];
6
+ }
7
+ export declare const CustomBadges: import("react").NamedExoticComponent<PropsWithChildren<CustomBadgesProps>>;
8
+ export declare const StyledBadge: import("styled-components").StyledComponent<typeof Badge, any, {}, never>;
9
+ export declare const NavigationBadge: import("styled-components").StyledComponent<typeof Badge, any, {
10
+ deprecated?: boolean | undefined;
11
+ color?: string | undefined;
12
+ }, never>;
13
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.NavigationBadge=exports.StyledBadge=exports.CustomBadges=void 0;const jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),styled_components_1=__importStar(require("styled-components")),theme_1=require("@redocly/theme");function CustomBadgesComponent({badges:e,children:t}){if(!e)return(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:t});const r=e.filter((({position:e})=>"before"===e)),o=e.filter((({position:e})=>"after"===e));return(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[r.map((({name:e,color:t})=>(0,jsx_runtime_1.jsx)(exports.StyledBadge,{color:t,children:e},e))),t,o.map((({name:e,color:t})=>(0,jsx_runtime_1.jsx)(exports.StyledBadge,{color:t,children:e},e)))]})}exports.CustomBadges=(0,react_1.memo)(CustomBadgesComponent),exports.StyledBadge=(0,styled_components_1.default)(theme_1.Badge)`
2
+ margin-left: 0;
3
+ background-color: ${({color:e})=>e||"var(--color-info-base)"};
4
+ ${({deprecated:e})=>e&&styled_components_1.css`
5
+ color: var(--badge-deprecated-text-color);
6
+ background-color: var(--badge-deprecated-bg-color);
7
+ border-radius: var(--badge-deprecated-border-radius);
8
+ `};
9
+ `,exports.NavigationBadge=(0,styled_components_1.default)(exports.StyledBadge)`
10
+ margin-left: 0;
11
+ font-size: var(--font-size-sm);
12
+ line-height: var(--line-height-sm);
13
+ padding: 0 var(--spacing-xxs);
14
+ max-width: 80px;
15
+ text-overflow: ellipsis;
16
+ white-space: nowrap;
17
+ overflow: hidden;
18
+ `;
19
+ //# sourceMappingURL=Badges.js.map
@@ -0,0 +1,5 @@
1
+ import type { ReactElement } from 'react';
2
+ export interface ExpandableExampleProps {
3
+ value: string;
4
+ }
5
+ export declare function ExpandableExample({ value }: ExpandableExampleProps): ReactElement | null;
@@ -0,0 +1,10 @@
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)`
2
+ display: inline;
3
+
4
+ & * {
5
+ display: inline;
6
+ }
7
+ `,ButtonWrap=styled_components_1.default.span`
8
+ margin-left: var(--spacing-xs);
9
+ `;
10
+ //# sourceMappingURL=ExpandableExample.js.map
@@ -0,0 +1 @@
1
+ export { ExpandableExample } from './ExpandableExample';
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExpandableExample=void 0;var ExpandableExample_1=require("./ExpandableExample");Object.defineProperty(exports,"ExpandableExample",{enumerable:!0,get:function(){return ExpandableExample_1.ExpandableExample}});
2
+ //# sourceMappingURL=index.js.map
@@ -4,6 +4,8 @@ export { ShareLinkToField } from './LinkToField';
4
4
  export { deprecatedCss } from './mixins';
5
5
  export { Container, HttpVerb, MimeLabel } from './styled';
6
6
  export { CodeBlockPanel } from './CodeBlockPanel';
7
+ export { CustomBadges, StyledBadge, NavigationBadge } from './Badges';
8
+ export { ExpandableExample } from './ExpandableExample';
7
9
  export * from './Fields';
8
10
  export * from './panels';
9
11
  export { FieldsGroupHeader } from './headers';
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,n){void 0===n&&(n=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,n,o)}:function(e,r,t,n){void 0===n&&(n=t),e[n]=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}),exports.Skeleton=exports.Link=exports.ShareLink=exports.FieldsGroupHeader=exports.CodeBlockPanel=exports.MimeLabel=exports.HttpVerb=exports.Container=exports.deprecatedCss=exports.ShareLinkToField=exports.Select=void 0;var Select_1=require("./Select");Object.defineProperty(exports,"Select",{enumerable:!0,get:function(){return Select_1.Select}});var LinkToField_1=require("./LinkToField");Object.defineProperty(exports,"ShareLinkToField",{enumerable:!0,get:function(){return LinkToField_1.ShareLinkToField}});var mixins_1=require("./mixins");Object.defineProperty(exports,"deprecatedCss",{enumerable:!0,get:function(){return mixins_1.deprecatedCss}});var styled_1=require("./styled");Object.defineProperty(exports,"Container",{enumerable:!0,get:function(){return styled_1.Container}}),Object.defineProperty(exports,"HttpVerb",{enumerable:!0,get:function(){return styled_1.HttpVerb}}),Object.defineProperty(exports,"MimeLabel",{enumerable:!0,get:function(){return styled_1.MimeLabel}});var CodeBlockPanel_1=require("./CodeBlockPanel");Object.defineProperty(exports,"CodeBlockPanel",{enumerable:!0,get:function(){return CodeBlockPanel_1.CodeBlockPanel}}),__exportStar(require("./Fields"),exports),__exportStar(require("./panels"),exports);var headers_1=require("./headers");Object.defineProperty(exports,"FieldsGroupHeader",{enumerable:!0,get:function(){return headers_1.FieldsGroupHeader}});var linkify_1=require("./linkify");Object.defineProperty(exports,"ShareLink",{enumerable:!0,get:function(){return linkify_1.ShareLink}}),Object.defineProperty(exports,"Link",{enumerable:!0,get:function(){return linkify_1.Link}}),__exportStar(require("./schema"),exports);var Skeleton_1=require("./Skeleton");Object.defineProperty(exports,"Skeleton",{enumerable:!0,get:function(){return Skeleton_1.Skeleton}});
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,n){void 0===n&&(n=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,n,o)}:function(e,r,t,n){void 0===n&&(n=t),e[n]=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}),exports.Skeleton=exports.Link=exports.ShareLink=exports.FieldsGroupHeader=exports.ExpandableExample=exports.NavigationBadge=exports.StyledBadge=exports.CustomBadges=exports.CodeBlockPanel=exports.MimeLabel=exports.HttpVerb=exports.Container=exports.deprecatedCss=exports.ShareLinkToField=exports.Select=void 0;var Select_1=require("./Select");Object.defineProperty(exports,"Select",{enumerable:!0,get:function(){return Select_1.Select}});var LinkToField_1=require("./LinkToField");Object.defineProperty(exports,"ShareLinkToField",{enumerable:!0,get:function(){return LinkToField_1.ShareLinkToField}});var mixins_1=require("./mixins");Object.defineProperty(exports,"deprecatedCss",{enumerable:!0,get:function(){return mixins_1.deprecatedCss}});var styled_1=require("./styled");Object.defineProperty(exports,"Container",{enumerable:!0,get:function(){return styled_1.Container}}),Object.defineProperty(exports,"HttpVerb",{enumerable:!0,get:function(){return styled_1.HttpVerb}}),Object.defineProperty(exports,"MimeLabel",{enumerable:!0,get:function(){return styled_1.MimeLabel}});var CodeBlockPanel_1=require("./CodeBlockPanel");Object.defineProperty(exports,"CodeBlockPanel",{enumerable:!0,get:function(){return CodeBlockPanel_1.CodeBlockPanel}});var Badges_1=require("./Badges");Object.defineProperty(exports,"CustomBadges",{enumerable:!0,get:function(){return Badges_1.CustomBadges}}),Object.defineProperty(exports,"StyledBadge",{enumerable:!0,get:function(){return Badges_1.StyledBadge}}),Object.defineProperty(exports,"NavigationBadge",{enumerable:!0,get:function(){return Badges_1.NavigationBadge}});var ExpandableExample_1=require("./ExpandableExample");Object.defineProperty(exports,"ExpandableExample",{enumerable:!0,get:function(){return ExpandableExample_1.ExpandableExample}}),__exportStar(require("./Fields"),exports),__exportStar(require("./panels"),exports);var headers_1=require("./headers");Object.defineProperty(exports,"FieldsGroupHeader",{enumerable:!0,get:function(){return headers_1.FieldsGroupHeader}});var linkify_1=require("./linkify");Object.defineProperty(exports,"ShareLink",{enumerable:!0,get:function(){return linkify_1.ShareLink}}),Object.defineProperty(exports,"Link",{enumerable:!0,get:function(){return linkify_1.Link}}),__exportStar(require("./schema"),exports);var Skeleton_1=require("./Skeleton");Object.defineProperty(exports,"Skeleton",{enumerable:!0,get:function(){return Skeleton_1.Skeleton}});
2
2
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,7 @@
1
- import { Badge } from '@redocly/theme';
2
1
  export declare const OneOfButton: import("styled-components").StyledComponent<"button", any, {
3
2
  selected: boolean;
4
3
  deprecated: boolean;
5
4
  }, never>;
6
5
  export declare const OneOfList: import("styled-components").StyledComponent<"div", any, {}, never>;
7
6
  export declare const Wrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
8
- export declare const BadgeStyle: import("styled-components").StyledComponent<typeof Badge, any, {}, never>;
9
7
  export declare const SelectionTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1,4 +1,4 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SelectionTitle=exports.BadgeStyle=exports.Wrapper=exports.OneOfList=exports.OneOfButton=void 0;const styled_components_1=__importStar(require("styled-components")),theme_1=require("@redocly/theme"),mixins_1=require("./mixins");exports.OneOfButton=styled_components_1.default.button`
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SelectionTitle=exports.Wrapper=exports.OneOfList=exports.OneOfButton=void 0;const styled_components_1=__importStar(require("styled-components")),mixins_1=require("./mixins");exports.OneOfButton=styled_components_1.default.button`
2
2
  border: 1px solid var(--schema-buttons-border-color);
3
3
  height: 24px;
4
4
  border-radius: var(--border-radius);
@@ -48,8 +48,6 @@
48
48
  }
49
49
  `,exports.Wrapper=styled_components_1.default.div`
50
50
  margin-bottom: 1em;
51
- `,exports.BadgeStyle=(0,styled_components_1.default)(theme_1.Badge)`
52
- margin-left: 0;
53
51
  `,exports.SelectionTitle=styled_components_1.default.div`
54
52
  font-size: var(--font-size-sm);
55
53
  line-height: var(--line-height-sm);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
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
@@ -5,3 +5,4 @@ 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.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}});
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}});
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,12 @@
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;
@@ -0,0 +1,2 @@
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
@@ -0,0 +1 @@
1
+ export declare function calculateAvgCharacterWidth(parentElement: HTMLElement): number;
@@ -0,0 +1,2 @@
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
@@ -21,3 +21,4 @@ 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);
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);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation,Badge}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink}from"../../services";import{layoutAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";const OperationSamplesPanel=styled(SamplesPanel)`
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useState,useCallback,useMemo}from"react";import styled from"styled-components";import{useAtomValue}from"jotai";import{Feedback,LayoutVariant,BeforeOpenApiOperation,AfterOpenApiOperation}from"@redocly/theme";import{SamplesMiddlePanel,SamplesPanel,ShareLink,Row,CustomBadges}from"../common";import{CallbacksList}from"../Callbacks";import{CallbackSamples}from"../CallbackSamples";import{RequestSamples}from"../RequestSamples";import{OperationResponseList}from"../Responses";import{ResponseSamples}from"../ResponseSamples";import{makeDeepLink}from"../../services";import{layoutAtom}from"../../jotai/app";import{globalStoreAtom}from"../../jotai/store";import{getOperation}from"../../models/operation";import{RenderHook}from"../RenderHook";import{Heading,Title}from"../common/OperationItemTitle";import{LinkToField}from"../common/LinkToField";import{RequestDetails}from"../Request/RequestDetails";import{StyledBadge}from"../common/Badges";const OperationSamplesPanel=styled(SamplesPanel)`
2
2
  margin-left: auto;
3
3
  --code-block-padding: var(--spacing-xs) 0 var(--spacing-xs) 20px;
4
- `;function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const{parser:l,options:i}=useAtomValue(globalStoreAtom),n=useAtomValue(layoutAtom),[r,p]=useState(),{unstable_hooks:d,feedback:m}=i,c=useMemo((()=>getOperation(l,e,a,i,o)),[o,e,i,a,l]),{name:u,deprecated:k,isWebhook:x,badges:S}=c,b=n===LayoutVariant.STACKED,f=(null==m?void 0:m.type)||"sentiment",j=!0!==(null==m?void 0:m.hide),h=S.filter((({position:e})=>"before"===e)),_=S.filter((({position:e})=>"after"===e)),[g,O]=useState(null),R=useCallback((e=>{r!==e&&p(e)}),[r]);return _jsxs(OperationRow,{layout:n,children:[_jsx(OperationSubRowStyled,{layout:n,children:_jsxs(SamplesMiddlePanel,{isStacked:b,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==d?void 0:d.BeforeOperation),props:{operation:c}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${u}`}),h.map((({name:e,color:a})=>_jsx(OperationBadge,{color:a,children:e},e))),u,_.map((({name:e,color:a})=>_jsx(OperationBadge,{color:a,children:e},e))),k&&_jsx(OperationBadge,{deprecated:!0,children:"Deprecated"}),x&&_jsx(OperationBadge,{children:"Webhook"})]})]})}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsx(SamplesMiddlePanel,{isStacked:b,children:_jsx(RequestDetails,{operation:c})}),_jsx(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:c})})]}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsx(SamplesMiddlePanel,{isStacked:b,children:(null===(t=c.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:c.responses,operationId:c.id,operationPointer:c.pointer,callbackId:c.callbackId,activeResponseTab:r,onTabChange:R}):null}),_jsx(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:c,activeResponseTab:r,onTabChange:R})})]}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsxs(SamplesMiddlePanel,{isStacked:b,children:[(null===(s=c.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(c.id,"callbacks")}),"Callbacks"]}),_jsx(CallbacksList,{callbacks:c.callbacks,onExpand:O,selectedCallback:g})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==d?void 0:d.AfterOperation),props:{operation:c}})]}),g?_jsx(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:g})}):null]}),_jsx(OperationSubRowStyled,{layout:n,children:_jsx(SamplesMiddlePanel,{isStacked:b,fullWidth:!0,children:j?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:f,settings:m.settings,path:c.href})}):null})})]})}export const OperationItem=memo(OperationItemComponent);const FeedbackWrapper=styled.div`
4
+ `;function OperationItemComponent({item:{operationDefinition:e,parent:a,href:o}}){var t,s;const{parser:l,options:i}=useAtomValue(globalStoreAtom),n=useAtomValue(layoutAtom),[r,p]=useState(),{unstable_hooks:d,feedback:m}=i,c=useMemo((()=>getOperation(l,e,a,i,o)),[o,e,i,a,l]),{name:u,deprecated:k,isWebhook:S,badges:x}=c,b=n===LayoutVariant.STACKED,j=(null==m?void 0:m.type)||"sentiment",h=!0!==(null==m?void 0:m.hide),[f,_]=useState(null),g=useCallback((e=>{r!==e&&p(e)}),[r]);return _jsxs(OperationRow,{layout:n,children:[_jsx(OperationSubRowStyled,{layout:n,children:_jsxs(SamplesMiddlePanel,{isStacked:b,children:[_jsx(RenderHook,{Hook:BeforeOpenApiOperation||(null==d?void 0:d.BeforeOperation),props:{operation:c}}),_jsxs(Heading,{"data-testid":"operation-item-header",children:[_jsx(ShareLink,{to:o,"aria-label":`link to ${u}`}),_jsx(CustomBadges,{badges:x,children:u}),k&&_jsx(StyledBadge,{deprecated:!0,children:"Deprecated"}),S&&_jsx(StyledBadge,{children:"Webhook"})]})]})}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsx(SamplesMiddlePanel,{isStacked:b,children:_jsx(RequestDetails,{operation:c})}),_jsx(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",className:"panel-container-request-samples",children:_jsx(RequestSamples,{operation:c})})]}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsx(SamplesMiddlePanel,{isStacked:b,children:(null===(t=c.responses)||void 0===t?void 0:t.length)?_jsx(OperationResponseList,{responses:c.responses,operationId:c.id,operationPointer:c.pointer,callbackId:c.callbackId,activeResponseTab:r,onTabChange:g}):null}),_jsx(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",className:"panel-container-response-samples",children:_jsx(ResponseSamples,{operation:c,activeResponseTab:r,onTabChange:g})})]}),_jsxs(OperationSubRowStyled,{layout:n,children:[_jsxs(SamplesMiddlePanel,{isStacked:b,children:[(null===(s=c.callbacks)||void 0===s?void 0:s.length)?_jsxs(_Fragment,{children:[_jsxs(Title,{children:[_jsx(LinkToField,{to:makeDeepLink(c.id,"callbacks")}),"Callbacks"]}),_jsx(CallbacksList,{callbacks:c.callbacks,onExpand:_,selectedCallback:f})]}):null,_jsx(RenderHook,{Hook:AfterOpenApiOperation||(null==d?void 0:d.AfterOperation),props:{operation:c}})]}),f?_jsx(OperationSamplesPanel,{isStacked:b,"data-testid":"samples-block",children:_jsx(CallbackSamples,{callback:f})}):null]}),_jsx(OperationSubRowStyled,{layout:n,children:_jsx(SamplesMiddlePanel,{isStacked:b,fullWidth:!0,children:h?_jsx(FeedbackWrapper,{children:_jsx(Feedback,{type:j,settings:m.settings,path:c.href})}):null})})]})}export const OperationItem=memo(OperationItemComponent);const FeedbackWrapper=styled.div`
5
5
  & > div {
6
6
  flex: 1 1 auto;
7
7
  display: flex;
@@ -18,8 +18,5 @@ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";i
18
18
  padding: var(--spacing-base) 0 calc(var(--spacing-xl) + var(--spacing-xs));
19
19
  `,OperationSubRowStyled=styled(Row)`
20
20
  margin: calc(var(--spacing-unit) * 2) 0;
21
- `,OperationBadge=styled(Badge)`
22
- margin: 0;
23
- background-color: ${({color:e})=>e};
24
21
  `;
25
22
  //# sourceMappingURL=OperationItem.js.map
@@ -1,4 +1,4 @@
1
- import{jsxs as _jsxs,jsx as _jsx}from"react/jsx-runtime";import{memo}from"react";import styled from"styled-components";import{ExampleValue,FieldLabel,DefaultValue,FieldValueLabel}from"../common";import{Markdown}from"../Markdown";function FieldDetailComponent({value:e,label:l,raw:a}){if(void 0===e)return null;const r=a?String(e):JSON.stringify(e);return _jsxs(Wrapper,{children:[_jsxs(FieldLabel,{children:[" ",l," "]}),"Default"===l?_jsx(DefaultValue,{children:r}):"Example:"===l?_jsx(ExampleValue,{children:_jsx(Markdown,{source:r})}):_jsx(FieldValueLabel,{children:r})]})}export const FieldDetail=memo(FieldDetailComponent);const Wrapper=styled.div`
1
+ import{jsxs as _jsxs,jsx as _jsx}from"react/jsx-runtime";import{memo}from"react";import styled from"styled-components";import{FieldLabel,DefaultValue,FieldValueLabel,ExpandableExample}from"../common";function FieldDetailComponent({value:e,label:l,raw:a}){if(void 0===e)return null;const i=a?String(e):JSON.stringify(e);return _jsxs(Wrapper,{children:[_jsxs(FieldLabel,{children:[" ",l," "]}),"Default"===l?_jsx(DefaultValue,{children:i}):"Example:"===l?_jsx(ExpandableExample,{value:i}):_jsx(FieldValueLabel,{children:i})]})}export const FieldDetail=memo(FieldDetailComponent);const Wrapper=styled.div`
2
2
  margin-top: var(--spacing-xxs);
3
3
  display: flex;
4
4
  align-items: baseline;
@@ -1,14 +1,10 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useMemo}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{LinkIcon}from"@redocly/theme";import{RecursiveLabel,Tag,AccessLabel,RequiredLabel}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{FieldDetail}from"./FieldDetail";import{Extensions}from"./Extensions";import{EnumValues}from"./EnumValues";import{Examples,getSerializedValue}from"./Examples";import{globalOptionsAtom}from"../../jotai/store";import{SchemaTypeInfo}from"./SchemaTypeInfo";import{LinkToField}from"../common/LinkToField";import{Pattern}from"./Pattern";import{getAccessModeLabelText}from"../RenderHook";function FieldDetailsComponent({field:e,renderDiscriminatorSwitch:t,deepLink:a,fieldParentsName:o=[]}){var i;const{hidePropertiesPrefix:r,hideSchemaTitles:s}=useAtomValue(globalOptionsAtom),{schema:n,description:l,example:m,deprecated:c,examples:p,kind:d,required:x,name:f}=e,h="header"===e.in,u=useMemo((()=>{if(void 0!==m||void 0!==p){if(void 0!==p)return _jsx(Examples,{field:e});{const t=!!e.in;return _jsx(FieldDetail,{label:"Example:",value:getSerializedValue(e,e.example),raw:t})}}return null}),[m,p,e]),y=getAccessModeLabelText(e.schema);return _jsxs(_Fragment,{children:[_jsxs(Row,{children:[f&&_jsxs(Name,{children:[a&&_jsx(LinkToField,{to:a}),!r&&o.map((e=>e+".")),_jsx(SchemaName,{className:"schema-name",children:f})]}),_jsx(SchemaTypeInfo,{type:n.typePrefix+n.displayType}),_jsx(SchemaTypeInfo,{type:n.displayFormat&&`(${n.displayFormat})`}),_jsx(SchemaTypeInfo,{type:n.contentEncoding}),_jsx(SchemaTypeInfo,{type:n.title&&!s?`(${n.title})`:""}),null===(i=n.constraints)||void 0===i?void 0:i.map((e=>_jsx(SchemaTypeInfo,{type:e},e))),c&&_jsx(DeprecatedLabel,{children:"Deprecated"}),_jsx(Pattern,{pattern:n.pattern}),"additionalProperties"===d&&_jsx(Tag,{children:"additional property"}),"patternProperties"===d&&_jsx(Tag,{children:"pattern property"}),y&&_jsx(AccessLabel,{children:y}),x&&_jsx(RequiredLabel,{children:"required"}),n.isCircular&&_jsx(RecursiveLabel,{children:"Recursive"})]}),_jsx(StyledDescription,{source:l}),_jsx(FieldDetail,{raw:h,label:"Default",value:n.default}),_jsx(EnumValues,{type:n.type,values:n["x-enumDescriptions"]||n.enum}),u,_jsx(Extensions,{extensions:Object.assign(Object.assign({},e.extensions),n.extensions)}),n.externalDocs&&_jsx(ExternalDocumentation,{externalDocs:n.externalDocs,compact:!0}),null==t?void 0:t(),_jsx(FieldDetail,{label:"Value",value:e.const||void 0})]})}export const FieldDetails=memo(FieldDetailsComponent);const Row=styled.div`
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{memo,useMemo}from"react";import{useAtomValue}from"jotai";import styled from"styled-components";import{LinkIcon}from"@redocly/theme";import{RecursiveLabel,Tag,AccessLabel,RequiredLabel,StyledBadge}from"../common";import{ExternalDocumentation}from"../ExternalDocumentation";import{Markdown}from"../Markdown";import{FieldDetail}from"./FieldDetail";import{Extensions}from"./Extensions";import{EnumValues}from"./EnumValues";import{Examples,getSerializedValue}from"./Examples";import{globalOptionsAtom}from"../../jotai/store";import{SchemaTypeInfo}from"./SchemaTypeInfo";import{LinkToField}from"../common/LinkToField";import{Pattern}from"./Pattern";import{getAccessModeLabelText}from"../RenderHook";function FieldDetailsComponent({field:e,renderDiscriminatorSwitch:t,deepLink:i,fieldParentsName:a=[]}){var o;const{hidePropertiesPrefix:r,hideSchemaTitles:s}=useAtomValue(globalOptionsAtom),{schema:n,description:l,example:m,deprecated:p,examples:c,kind:d,required:x,name:f}=e,h="header"===e.in,u=useMemo((()=>{if(void 0!==m||void 0!==c){if(void 0!==c)return _jsx(Examples,{field:e});{const t=!!e.in;return _jsx(FieldDetail,{label:"Example:",value:getSerializedValue(e,e.example),raw:t})}}return null}),[m,c,e]),y=getAccessModeLabelText(e.schema);return _jsxs(_Fragment,{children:[_jsxs(Row,{children:[f&&_jsxs(Name,{children:[i&&_jsx(LinkToField,{to:i}),!r&&a.map((e=>e+".")),_jsx(SchemaName,{className:"schema-name",children:f})]}),_jsx(SchemaTypeInfo,{type:n.typePrefix+n.displayType}),_jsx(SchemaTypeInfo,{type:n.displayFormat&&`(${n.displayFormat})`}),_jsx(SchemaTypeInfo,{type:n.contentEncoding}),_jsx(SchemaTypeInfo,{type:n.title&&!s?`(${n.title})`:""}),null===(o=n.constraints)||void 0===o?void 0:o.map((e=>_jsx(SchemaTypeInfo,{type:e},e))),p&&_jsx(StyledBadge,{deprecated:!0,children:"Deprecated"}),_jsx(Pattern,{pattern:n.pattern}),"additionalProperties"===d&&_jsx(Tag,{children:"additional property"}),"patternProperties"===d&&_jsx(Tag,{children:"pattern property"}),y&&_jsx(AccessLabel,{children:y}),x&&_jsx(RequiredLabel,{children:"required"}),n.isCircular&&_jsx(RecursiveLabel,{children:"Recursive"})]}),_jsx(StyledDescription,{source:l}),_jsx(FieldDetail,{raw:h,label:"Default",value:n.default}),_jsx(EnumValues,{type:n.type,values:n["x-enumDescriptions"]||n.enum}),u,_jsx(Extensions,{extensions:Object.assign(Object.assign({},e.extensions),n.extensions)}),n.externalDocs&&_jsx(ExternalDocumentation,{externalDocs:n.externalDocs,compact:!0}),null==t?void 0:t(),_jsx(FieldDetail,{label:"Value",value:e.const||void 0})]})}export const FieldDetails=memo(FieldDetailsComponent);const Row=styled.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  gap: calc(var(--spacing-xxs) / 4) var(--spacing-xxs);
5
5
  flex-wrap: wrap;
6
6
  margin-bottom: 2px;
7
7
  position: relative;
8
- `,DeprecatedLabel=styled(Tag)`
9
- color: var(--badge-deprecated-text-color);
10
- background-color: var(--badge-deprecated-bg-color);
11
- font-family: var(--font-family-base);
12
8
  `,StyledDescription=styled(Markdown)`
13
9
  font-size: var(--font-size-base);
14
10
  line-height: var(--line-height-base);
@@ -1,4 +1,4 @@
1
- var __rest=this&&this.__rest||function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]])}return o};import{jsxs as _jsxs,jsx as _jsx}from"react/jsx-runtime";import{memo}from"react";import{useAtom}from"jotai";import styled from"styled-components";import{BadgeStyle,SelectionTitle}from"../common";import{Markdown}from"../Markdown";import{ConstraintsView}from"../common/ConstraintsView";import{Schema}from"./Schema";import{operationStore}from"../../jotai/operation";import{SchemaSelection}from"../common/SchemaSelection";import{useOneOfLocationIdx}from"./useOneOfLocationIdx";function OneOfSchemaComponent(e){var{schema:{oneOf:t},schema:o,oneOfLevel:n=1}=e,r=__rest(e,["schema","schema","oneOfLevel"]);const[i]=useAtom(operationStore(o.operationPointer)),s=useOneOfLocationIdx(t,n),a=-1===s?0:s,c=t[void 0!==i.activeOneOf[o.pointer]?i.activeOneOf[o.pointer]:a];if(!c)return null;const m=t.map(((e,t)=>({label:e.title||e.typePrefix+e.displayType,value:t})));return _jsxs(Wrapper,{children:[_jsxs(SelectionTitle,{children:[o.oneOfType,":"]}),_jsx(SchemaSelection,{options:m,pointer:o.operationPointer,schema:o,defaultOneOfIdx:a}),c.deprecated&&_jsx(BadgeStyle,{deprecated:!0,children:"Deprecated"}),c.description&&_jsx(StyledDescription,{source:c.description}),_jsx(ConstraintsView,{constraints:c.constraints}),_jsx(Schema,Object.assign({},r,{schema:c,oneOfLevel:n+1}))]})}export const OneOfSchema=memo(OneOfSchemaComponent);const StyledDescription=styled(Markdown)`
1
+ var __rest=this&&this.__rest||function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]])}return o};import{jsxs as _jsxs,jsx as _jsx}from"react/jsx-runtime";import{memo}from"react";import{useAtom}from"jotai";import styled from"styled-components";import{StyledBadge,SelectionTitle}from"../common";import{Markdown}from"../Markdown";import{ConstraintsView}from"../common/ConstraintsView";import{Schema}from"./Schema";import{operationStore}from"../../jotai/operation";import{SchemaSelection}from"../common/SchemaSelection";import{useOneOfLocationIdx}from"./useOneOfLocationIdx";function OneOfSchemaComponent(e){var{schema:{oneOf:t},schema:o,oneOfLevel:n=1}=e,r=__rest(e,["schema","schema","oneOfLevel"]);const[i]=useAtom(operationStore(o.operationPointer)),s=useOneOfLocationIdx(t,n),a=-1===s?0:s,c=t[void 0!==i.activeOneOf[o.pointer]?i.activeOneOf[o.pointer]:a];if(!c)return null;const m=t.map(((e,t)=>({label:e.title||e.typePrefix+e.displayType,value:t})));return _jsxs(Wrapper,{children:[_jsxs(SelectionTitle,{children:[o.oneOfType,":"]}),_jsx(SchemaSelection,{options:m,pointer:o.operationPointer,schema:o,defaultOneOfIdx:a}),c.deprecated&&_jsx(StyledBadge,{deprecated:!0,children:"Deprecated"}),c.description&&_jsx(StyledDescription,{source:c.description}),_jsx(ConstraintsView,{constraints:c.constraints}),_jsx(Schema,Object.assign({},r,{schema:c,oneOfLevel:n+1}))]})}export const OneOfSchema=memo(OneOfSchemaComponent);const StyledDescription=styled(Markdown)`
2
2
  margin-top: var(--spacing-xs);
3
3
  font-size: var(--font-size-base);
4
4
  line-height: var(--line-height-base);
@@ -1,4 +1,4 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useMemo,memo,useState}from"react";import{useNavigate}from"react-router-dom";import{Button,LayoutVariant}from"@redocly/theme";import styled from"styled-components";import{useAtomValue}from"jotai/index";import{HttpVerb,SamplesPanel}from"../common";import{encodeBackSlashes}from"../../utils";import{joinWithSeparator}from"../../services";import{layoutAtom}from"../../jotai/app";const MAX_OPERATIONS=8;export function OperationsNavigationComponent({items:e,routingBasePath:t}){const[o,a]=useState(!1),r=useNavigate(),n=useAtomValue(layoutAtom)===LayoutVariant.STACKED,{operations:i,webhooks:s,count:l}=useMemo((()=>{const t=e.filter((e=>"operation"===e.type)),a=o?t:t.slice(0,MAX_OPERATIONS),{operations:r,webhooks:n}=a.reduce(((e,t)=>t.isWebhook?Object.assign(Object.assign({},e),{webhooks:[...e.webhooks,t]}):Object.assign(Object.assign({},e),{operations:[...e.operations,t]})),{operations:[],webhooks:[]});return{operations:r,webhooks:n,count:!o&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[o,e]);if(!i.length&&!s.length)return null;const p=e=>{r(e)};return _jsxs(Wrapper,{isStacked:n,"data-testid":"operation-navigation-list",children:[i.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Operations"}),i.map((({id:e,href:o,httpVerb:a,path:r})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:a,children:a}),_jsx(Path,{children:r})]})},e)))]}),s.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Webhooks"}),s.map((({id:e,href:o,httpVerb:a,path:r})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:a,children:a}),_jsx(Path,{children:r})]})},e)))]}),!o&&Boolean(l)&&_jsxs(StyledButton,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>a(!0),children:["Show ",l," more..."]})]})}export const OperationsNavigation=memo(OperationsNavigationComponent);const Wrapper=styled(SamplesPanel)`
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useMemo,memo,useState}from"react";import{useNavigate}from"react-router-dom";import{Button,LayoutVariant}from"@redocly/theme";import styled from"styled-components";import{useAtomValue}from"jotai/index";import{HttpVerb,NavigationBadge,SamplesPanel}from"../common";import{encodeBackSlashes}from"../../utils";import{joinWithSeparator}from"../../services";import{layoutAtom}from"../../jotai/app";const MAX_OPERATIONS=8;export function OperationsNavigationComponent({items:e,routingBasePath:t}){const[o,a]=useState(!1),r=useNavigate(),i=useAtomValue(layoutAtom)===LayoutVariant.STACKED,{operations:n,webhooks:s,count:l}=useMemo((()=>{const t=e.filter((e=>"operation"===e.type)),a=o?t:t.slice(0,MAX_OPERATIONS),{operations:r,webhooks:i}=a.reduce(((e,t)=>t.isWebhook?Object.assign(Object.assign({},e),{webhooks:[...e.webhooks,t]}):Object.assign(Object.assign({},e),{operations:[...e.operations,t]})),{operations:[],webhooks:[]});return{operations:r,webhooks:i,count:!o&&t.length>MAX_OPERATIONS?t.length-MAX_OPERATIONS:0}}),[o,e]);if(!n.length&&!s.length)return null;const p=e=>{r(e)};return _jsxs(Wrapper,{isStacked:i,"data-testid":"operation-navigation-list",children:[n.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Operations"}),n.map((({id:e,href:o,httpVerb:a,path:r,deprecated:i,badges:n})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:i?"http-deprecated":a,children:a}),_jsx(Path,{children:r}),i&&_jsx(NavigationBadge,{deprecated:!0,children:"Deprecated"}),n&&n.map((({name:e,color:t})=>_jsx(NavigationBadge,{color:t,children:e},e)))]})},e)))]}),s.length>0&&_jsxs(_Fragment,{children:[_jsx(Heading,{children:"Webhooks"}),s.map((({id:e,href:o,httpVerb:a,path:r})=>_jsx(Item,{variant:"outlined",size:"large",onClick:()=>p(joinWithSeparator(t,encodeBackSlashes(o))),children:_jsxs("span",{children:[_jsx(HttpVerb,{color:a,children:a}),_jsx(Path,{children:r})]})},e)))]}),!o&&Boolean(l)&&_jsxs(StyledButton,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>a(!0),children:["Show ",l," more..."]})]})}export const OperationsNavigation=memo(OperationsNavigationComponent);const Wrapper=styled(SamplesPanel)`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: var(--spacing-xxs);
@@ -0,0 +1,13 @@
1
+ import { Badge } from '@redocly/theme';
2
+ import type { PropsWithChildren } from 'react';
3
+ import type { OpenAPIXBadges } from '../../types';
4
+ interface CustomBadgesProps {
5
+ badges?: OpenAPIXBadges[];
6
+ }
7
+ export declare const CustomBadges: import("react").NamedExoticComponent<PropsWithChildren<CustomBadgesProps>>;
8
+ export declare const StyledBadge: import("styled-components").StyledComponent<typeof Badge, any, {}, never>;
9
+ export declare const NavigationBadge: import("styled-components").StyledComponent<typeof Badge, any, {
10
+ deprecated?: boolean | undefined;
11
+ color?: string | undefined;
12
+ }, never>;
13
+ export {};
@@ -0,0 +1,19 @@
1
+ import{Fragment as _Fragment,jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{memo}from"react";import styled,{css}from"styled-components";import{Badge}from"@redocly/theme";function CustomBadgesComponent({badges:e,children:o}){if(!e)return _jsx(_Fragment,{children:o});const r=e.filter((({position:e})=>"before"===e)),t=e.filter((({position:e})=>"after"===e));return _jsxs(_Fragment,{children:[r.map((({name:e,color:o})=>_jsx(StyledBadge,{color:o,children:e},e))),o,t.map((({name:e,color:o})=>_jsx(StyledBadge,{color:o,children:e},e)))]})}export const CustomBadges=memo(CustomBadgesComponent);export const StyledBadge=styled(Badge)`
2
+ margin-left: 0;
3
+ background-color: ${({color:e})=>e||"var(--color-info-base)"};
4
+ ${({deprecated:e})=>e&&css`
5
+ color: var(--badge-deprecated-text-color);
6
+ background-color: var(--badge-deprecated-bg-color);
7
+ border-radius: var(--badge-deprecated-border-radius);
8
+ `};
9
+ `;export const NavigationBadge=styled(StyledBadge)`
10
+ margin-left: 0;
11
+ font-size: var(--font-size-sm);
12
+ line-height: var(--line-height-sm);
13
+ padding: 0 var(--spacing-xxs);
14
+ max-width: 80px;
15
+ text-overflow: ellipsis;
16
+ white-space: nowrap;
17
+ overflow: hidden;
18
+ `;
19
+ //# sourceMappingURL=Badges.js.map
@@ -0,0 +1,5 @@
1
+ import type { ReactElement } from 'react';
2
+ export interface ExpandableExampleProps {
3
+ value: string;
4
+ }
5
+ export declare function ExpandableExample({ value }: ExpandableExampleProps): ReactElement | null;
@@ -0,0 +1,10 @@
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)`
2
+ display: inline;
3
+
4
+ & * {
5
+ display: inline;
6
+ }
7
+ `,ButtonWrap=styled.span`
8
+ margin-left: var(--spacing-xs);
9
+ `;
10
+ //# sourceMappingURL=ExpandableExample.js.map
@@ -0,0 +1 @@
1
+ export { ExpandableExample } from './ExpandableExample';
@@ -0,0 +1,2 @@
1
+ export{ExpandableExample}from"./ExpandableExample";
2
+ //# sourceMappingURL=index.js.map
@@ -4,6 +4,8 @@ export { ShareLinkToField } from './LinkToField';
4
4
  export { deprecatedCss } from './mixins';
5
5
  export { Container, HttpVerb, MimeLabel } from './styled';
6
6
  export { CodeBlockPanel } from './CodeBlockPanel';
7
+ export { CustomBadges, StyledBadge, NavigationBadge } from './Badges';
8
+ export { ExpandableExample } from './ExpandableExample';
7
9
  export * from './Fields';
8
10
  export * from './panels';
9
11
  export { FieldsGroupHeader } from './headers';
@@ -1,2 +1,2 @@
1
- export{Select}from"./Select";export{ShareLinkToField}from"./LinkToField";export{deprecatedCss}from"./mixins";export{Container,HttpVerb,MimeLabel}from"./styled";export{CodeBlockPanel}from"./CodeBlockPanel";export*from"./Fields";export*from"./panels";export{FieldsGroupHeader}from"./headers";export{ShareLink,Link}from"./linkify";export*from"./schema";export{Skeleton}from"./Skeleton";
1
+ export{Select}from"./Select";export{ShareLinkToField}from"./LinkToField";export{deprecatedCss}from"./mixins";export{Container,HttpVerb,MimeLabel}from"./styled";export{CodeBlockPanel}from"./CodeBlockPanel";export{CustomBadges,StyledBadge,NavigationBadge}from"./Badges";export{ExpandableExample}from"./ExpandableExample";export*from"./Fields";export*from"./panels";export{FieldsGroupHeader}from"./headers";export{ShareLink,Link}from"./linkify";export*from"./schema";export{Skeleton}from"./Skeleton";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,7 @@
1
- import { Badge } from '@redocly/theme';
2
1
  export declare const OneOfButton: import("styled-components").StyledComponent<"button", any, {
3
2
  selected: boolean;
4
3
  deprecated: boolean;
5
4
  }, never>;
6
5
  export declare const OneOfList: import("styled-components").StyledComponent<"div", any, {}, never>;
7
6
  export declare const Wrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
8
- export declare const BadgeStyle: import("styled-components").StyledComponent<typeof Badge, any, {}, never>;
9
7
  export declare const SelectionTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1,4 +1,4 @@
1
- import styled,{css}from"styled-components";import{Badge}from"@redocly/theme";import{deprecatedCss}from"./mixins";export const OneOfButton=styled.button`
1
+ import styled,{css}from"styled-components";import{deprecatedCss}from"./mixins";export const OneOfButton=styled.button`
2
2
  border: 1px solid var(--schema-buttons-border-color);
3
3
  height: 24px;
4
4
  border-radius: var(--border-radius);
@@ -48,8 +48,6 @@ import styled,{css}from"styled-components";import{Badge}from"@redocly/theme";imp
48
48
  }
49
49
  `;export const Wrapper=styled.div`
50
50
  margin-bottom: 1em;
51
- `;export const BadgeStyle=styled(Badge)`
52
- margin-left: 0;
53
51
  `;export const SelectionTitle=styled.div`
54
52
  font-size: var(--font-size-sm);
55
53
  line-height: var(--line-height-sm);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
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
@@ -5,3 +5,4 @@ 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";
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";
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,12 @@
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;