@redocly/openapi-docs 3.18.0-custom.0 → 3.18.0-custom.1

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 (40) hide show
  1. package/dist/redocly-openapi-docs.min.js +2306 -2211
  2. package/lib/components/Discriminator/Discriminator.d.ts +0 -1
  3. package/lib/components/Discriminator/Discriminator.js +2 -2
  4. package/lib/components/PayloadSamples/ExampleValue.js +1 -1
  5. package/lib/components/RequestParameters/RequestParameters.js +1 -1
  6. package/lib/components/Schema/ObjectSchema.js +1 -1
  7. package/lib/components/Schema/Schema.js +2 -2
  8. package/lib/components/Schema/types.d.ts +1 -3
  9. package/lib/components/TagItem/Breadcrumbs.d.ts +11 -0
  10. package/lib/components/TagItem/Breadcrumbs.js +41 -0
  11. package/lib/components/TagItem/OperationNavigationItems.d.ts +4 -2
  12. package/lib/components/TagItem/OperationNavigationItems.js +20 -5
  13. package/lib/components/TagItem/OperationsNavigation.js +27 -2
  14. package/lib/components/TagItem/TagItem.js +17 -16
  15. package/lib/components/common/Badges.js +10 -8
  16. package/lib/components/common/linkify.js +7 -2
  17. package/lib/components/common/panels.js +1 -1
  18. package/lib/constants.d.ts +1 -0
  19. package/lib/constants.js +1 -1
  20. package/lib/models/field.js +1 -1
  21. package/lib/models/group.js +1 -1
  22. package/lib/models/mediaType.js +1 -1
  23. package/lib/models/operation.js +1 -1
  24. package/lib/services/code-samples/generator.d.ts +1 -0
  25. package/lib/services/code-samples/generator.js +1 -1
  26. package/lib/services/menu/builder.js +1 -1
  27. package/lib/services/menu/operation.d.ts +2 -2
  28. package/lib/services/menu/operation.js +1 -1
  29. package/lib/services/menu/tags.d.ts +1 -0
  30. package/lib/services/menu/tags.js +3 -3
  31. package/lib/types/open-api.d.ts +11 -2
  32. package/lib/utils/calculateMaxLength.d.ts +6 -0
  33. package/lib/utils/calculateMaxLength.js +1 -0
  34. package/lib/utils/getBreadcrumbs.d.ts +7 -0
  35. package/lib/utils/getBreadcrumbs.js +1 -0
  36. package/lib/utils/index.d.ts +2 -0
  37. package/lib/utils/index.js +1 -1
  38. package/lib/utils/openapi.d.ts +1 -0
  39. package/lib/utils/openapi.js +1 -1
  40. package/package.json +7 -7
@@ -3,7 +3,6 @@ import type { SchemaModel } from '../../models/index.js';
3
3
  interface DiscriminatorDropdownProps {
4
4
  activeOneOfIdx: number;
5
5
  parent: SchemaModel;
6
- onChange?: (idx: number) => void;
7
6
  translate: TFunction;
8
7
  }
9
8
  export declare const Discriminator: import("react").NamedExoticComponent<DiscriminatorDropdownProps>;
@@ -1,4 +1,4 @@
1
- import{jsx as n,jsxs as s}from"react/jsx-runtime";import{memo as c,useMemo as d}from"react";import{strikethroughText as f}from"../../utils/index.js";import{SchemaSelection as g}from"../common/SchemaSelection/SchemaSelection.js";import{SelectionTitle as u}from"../common/index.js";import{styled as t}from"../../styled-components.js";import{DefaultMappingOption as x}from"./DefaultMappingOption.js";function D({activeOneOfIdx:a,parent:e,onChange:p,translate:i}){const m=d(()=>(e.oneOf||[]).map((o,r)=>{const l=o.schema.deprecated?`${f(o.title)} (${i("openapi.badges.deprecated","deprecated").toLowerCase()})`:o.title;return o.isDefaultMapping?{label:i("openapi.discriminator.defaultMapping","Default mapping"),value:r,element:n(x,{label:i("openapi.discriminator.defaultMapping","Default mapping")}),...e.oneOf&&e.oneOf.length>1?{divider:n(v,{})}:{}}:{label:l,value:r}}),[e.oneOf,i]);return e.oneOf===void 0?null:s(h,{children:[n(u,{children:i("openapi.discriminator","Discriminator")}),n(g,{options:m,pointer:e.operationPointer,onChange:p,schema:e,defaultOneOfIdx:a})]})}const C=c(D),h=t.div`
1
+ import{jsx as n,jsxs as l}from"react/jsx-runtime";import{memo as s,useMemo as c}from"react";import{strikethroughText as d}from"../../utils/index.js";import{SchemaSelection as f}from"../common/SchemaSelection/SchemaSelection.js";import{SelectionTitle as g}from"../common/index.js";import{styled as t}from"../../styled-components.js";import{DefaultMappingOption as u}from"./DefaultMappingOption.js";function x({activeOneOfIdx:a,parent:e,translate:i}){const p=c(()=>(e.oneOf||[]).map((o,r)=>{const m=o.schema.deprecated?`${d(o.title)} (${i("openapi.badges.deprecated","deprecated").toLowerCase()})`:o.title;return o.isDefaultMapping?{label:i("openapi.discriminator.defaultMapping","Default mapping"),value:r,element:n(u,{label:i("openapi.discriminator.defaultMapping","Default mapping")}),...e.oneOf&&e.oneOf.length>1?{divider:n(v,{})}:{}}:{label:m,value:r}}),[e.oneOf,i]);return e.oneOf===void 0?null:l(D,{children:[n(g,{children:i("openapi.discriminator","Discriminator")}),n(f,{options:p,pointer:e.operationPointer,schema:e,defaultOneOfIdx:a})]})}const k=s(x),D=t.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  align-items: flex-start;
@@ -16,4 +16,4 @@ import{jsx as n,jsxs as s}from"react/jsx-runtime";import{memo as c,useMemo as d}
16
16
  width: 1px;
17
17
  margin: var(--spacing-xxs) calc(var(--spacing-xxs) / 2);
18
18
  }
19
- `;export{C as Discriminator};
19
+ `;export{k as Discriminator};
@@ -1 +1 @@
1
- import{jsx as i}from"react/jsx-runtime";import{useAtomValue as m}from"jotai";import{XMLBuilder as c}from"fast-xml-parser";import{JsonViewer as a}from"@redocly/theme/components/JsonViewer/JsonViewer";import{isFormUrlEncoded as d,isJsonLike as f,isXmlLike as p,langFromMime as x,urlFormEncodePayload as g,isSequentialMediaType as y}from"../../utils/index.js";import{globalOptionsAtom as j}from"../../jotai/store.js";import{StyledCodeBlock as k}from"./styled.js";const L=new c({format:!0});function F({value:o,mimeType:r,encoding:n,onCopyClick:e,onPanelToggle:s}){const{jsonSamplesExpandLevel:l}=m(j);if(f(r)&&!y(r)){let t;try{t=typeof o=="string"?JSON.parse(o):o}catch{t=o}return i(a,{data:t,expandLevel:l,onCopyClick:e,onPanelToggle:s})}if(typeof o=="object")if(d(r))o=g(o,n);else if(p(r)){const t=Array.isArray(o)?o:{root:o};o=L.build(t)}else o=JSON.stringify(o,null,2);return i(k,{lang:x(r),source:o,header:{className:"code-block-header",controls:{copy:{onClick:e}}}})}export{F as ExampleValue};
1
+ import{jsx as i}from"react/jsx-runtime";import{useAtomValue as l}from"jotai";import{XMLBuilder as m}from"fast-xml-parser";import{JsonViewer as c}from"@redocly/theme/components/JsonViewer/JsonViewer";import{isFormUrlEncoded as d,isJsonLike as f,isXmlLike as p,langFromMime as x,urlFormEncodePayload as g,isSequentialMediaType as y}from"../../utils/index.js";import{globalOptionsAtom as j}from"../../jotai/store.js";import{StyledCodeBlock as k}from"./styled.js";const L=new m({format:!0,cdataPropName:"#cdata"});function B({value:o,mimeType:r,encoding:n,onCopyClick:e,onPanelToggle:s}){const{jsonSamplesExpandLevel:a}=l(j);if(f(r)&&!y(r)){let t;try{t=typeof o=="string"?JSON.parse(o):o}catch{t=o}return i(c,{data:t,expandLevel:a,onCopyClick:e,onPanelToggle:s})}if(typeof o=="object")if(d(r))o=g(o,n);else if(p(r)){const t=Array.isArray(o)?o:{root:o};o=L.build(t)}else o=JSON.stringify(o,null,2);return i(k,{lang:x(r),source:o,header:{className:"code-block-header",controls:{copy:{onClick:e}}}})}export{B as ExampleValue};
@@ -1 +1 @@
1
- import{jsx as m,Fragment as k,jsxs as x}from"react/jsx-runtime";import{ParametersGroup as y}from"./ParametersGroup.js";import{Body as _}from"./Body.js";import{makeDeepLink as g}from"../../services/index.js";import{useTranslate as L}from"../../hooks/index.js";const s=["path","query","cookie","header"];function F({body:r,parameters:e=[],operationId:t,callbackId:o,isRpc:f}){const i=L();if(!r&&!e.length)return null;const d={[s[0]]:i("openapi.path","Path"),[s[1]]:i("openapi.query","Query"),[s[2]]:i("openapi.cookie","Cookies"),[s[3]]:i("openapi.header","Headers")},h=(n=>{const u={};return n.forEach(p=>{M(u,p.in,p)}),u})(e),P=e.length>0?s:[],{content:a,description:q,required:A}=r||{};return x(k,{children:[P.map(n=>m(y,{title:d[n],parameters:h[n],deepLink:c(t,o,n)},n)),a&&m(_,{content:a,description:q,required:A,deepLink:c(t,o),isRpc:f})]})}function M(r,e="",t){r[e]||(r[e]=[]),r[e].push(t)}function c(r,e,t="body"){const o=`${e?`${e}/request/${t}`:`request/${t}`}`;return g(r,o)}export{F as RequestParameters};
1
+ import{jsx as h,Fragment as _}from"react/jsx-runtime";import{useMemo as R}from"react";import{useAtomValue as S}from"jotai";import{ParametersGroup as b}from"./ParametersGroup.js";import{Body as v}from"./Body.js";import{makeDeepLink as Q}from"../../services/index.js";import{useTranslate as z}from"../../hooks/index.js";import{globalStoreAtom as F}from"../../jotai/store.js";import{getMediaContent as T}from"../../models/mediaContent.js";import{getContentWithLegacyExamples as W}from"../../utils/openapi.js";const p=["path","query","querystring","cookie","header"];function B({body:i,parameters:t=[],operationId:n,callbackId:u,isRpc:C}){const c=z(),{parser:a,options:q}=S(F),m=(e=>{const o={};return e.forEach(r=>{G(o,r.in,r)}),o})(t),P=m.querystring||[],d=P.filter(e=>e.serializationMime),f=P.filter(e=>!e.serializationMime),l=R(()=>!a||d.length===0?[]:d.map(e=>{const o=e.deps?.operation?.pointer;if(!o)return null;try{const r=a.byRef(o);if(!r?.parameters)return null;const s=r.parameters.find(D=>{const{resolved:M}=a.deref(D);return M.name===e.name&&M.in==="querystring"});if(!s)return null;const{resolved:x}=a.deref(s),L=W(x);return L?{content:T({parser:a,info:L,isRequestType:!0,options:q,data:{operation:e.deps?.operation||{pointer:o},type:"request",absolutePointer:e.absolutePointer||o}}),description:e.description,required:e.required,name:e.name}:null}catch{return null}}).filter(Boolean),[a,q,d]),$={[p[0]]:c("openapi.path","Path"),[p[1]]:c("openapi.query","Query"),[p[2]]:c("openapi.querystring","Query String"),[p[3]]:c("openapi.cookie","Cookies"),[p[4]]:c("openapi.header","Headers")},{content:y,description:k,required:A}=i||{},E=R(()=>{const e=[],o=f.length>0||l.length>0;return p.forEach(r=>{if(!(r==="query"&&o))if(r==="querystring")f.length>0&&e.push({type:"parameters",place:r,params:f});else{const s=m[r];s&&s.length>0&&e.push({type:"parameters",place:r,params:s})}}),l.forEach((r,s)=>{r&&e.push({type:"body",content:r.content,description:r.description,required:r.required,deepLink:g(n,u,`querystring-${r.name}`),key:`querystring-${r.name}-${s}`})}),y&&e.push({type:"body",content:y,description:k,required:A,deepLink:g(n,u),key:"body"}),e},[m,f,l,y,k,A,n,u]);return!i&&!t.length?null:h(_,{children:E.map(e=>e.type==="parameters"?h(b,{title:$[e.place],parameters:e.params,deepLink:g(n,u,e.place)},e.place):h(v,{content:e.content,description:e.description,required:e.required,deepLink:e.deepLink,isRpc:C},e.key))})}function G(i,t="",n){i[t]||(i[t]=[]),i[t].push(n)}function g(i,t,n="body"){const u=`${t?`${t}/request/${n}`:`request/${n}`}`;return Q(i,u)}export{B as RequestParameters};
@@ -1 +1 @@
1
- import{jsx as a,Fragment as C,jsxs as p}from"react/jsx-runtime";import{memo as P}from"react";import{useAtomValue as F}from"jotai";import{PropertiesTableCaption as N}from"../common/index.js";import{Discriminator as v}from"../Discriminator/index.js";import{globalOptionsAtom as A}from"../../jotai/store.js";import{PropertyDetails as B}from"../PropertyDetails/index.js";import{SubSchema as _}from"./SubSchema.js";import{getExpandByDefault as w}from"./helpers.js";import{useTranslate as E}from"../../hooks/index.js";import{ArrayClosingLabel as I,LabelValue as T}from"../common/styled.js";function V({schema:m,showTitle:s,discriminator:t,level:n,skipWriteOnly:r,skipReadOnly:o,fieldParentsName:c,expandable:f,deepLink:h,required:d,disableDeepLinks:u,shouldCloseArray:g,oneOfLevel:x,slug:b,onOneOfChange:O}){const{fields:i=[],title:y}=m,D=E(),{schemasExpansionLevel:L}=F(A),l=o||r?i.filter(e=>!(o&&e.schema.readOnly||r&&e.schema.writeOnly)):i,S=w({required:d,level:n,schemasExpansionLevel:L});return p(_,{expandable:f,expandByDefault:S,level:n,propertyLength:l.length,deepLink:h,operationPointer:m.operationPointer,children:[p(C,{children:[s&&a(N,{children:y}),l.map((e,j)=>a(B,{isFirst:j===0,field:e,fieldParentsName:Number(n)>1?c:[],renderDiscriminatorSwitch:t?.fieldName===e.name&&t?.parentSchema?()=>a(v,{parent:t.parentSchema,onChange:t?.onChange,activeOneOfIdx:t.activeOneOfIdx,translate:D}):void 0,skipReadOnly:o,skipWriteOnly:r,showTitle:s,level:n,disableDeepLinks:u,oneOfLevel:x,slug:b,onOneOfChange:O},e.name))]}),g&&a(I,{className:"array-closing-label",children:a(T,{children:"]"})})]})}const Y=P(V);export{Y as ObjectSchema};
1
+ import{jsx as r,Fragment as P,jsxs as p}from"react/jsx-runtime";import{memo as C}from"react";import{useAtomValue as F}from"jotai";import{PropertiesTableCaption as N}from"../common/index.js";import{Discriminator as v}from"../Discriminator/index.js";import{globalOptionsAtom as A}from"../../jotai/store.js";import{PropertyDetails as B}from"../PropertyDetails/index.js";import{SubSchema as _}from"./SubSchema.js";import{getExpandByDefault as w}from"./helpers.js";import{useTranslate as E}from"../../hooks/index.js";import{ArrayClosingLabel as I,LabelValue as T}from"../common/styled.js";function V({schema:m,showTitle:i,discriminator:t,level:a,skipWriteOnly:n,skipReadOnly:o,fieldParentsName:c,expandable:f,deepLink:d,required:h,disableDeepLinks:u,shouldCloseArray:x,oneOfLevel:b,slug:g,onOneOfChange:O}){const{fields:s=[],title:y}=m,D=E(),{schemasExpansionLevel:L}=F(A),l=o||n?s.filter(e=>!(o&&e.schema.readOnly||n&&e.schema.writeOnly)):s,S=w({required:h,level:a,schemasExpansionLevel:L});return p(_,{expandable:f,expandByDefault:S,level:a,propertyLength:l.length,deepLink:d,operationPointer:m.operationPointer,children:[p(P,{children:[i&&r(N,{children:y}),l.map((e,j)=>r(B,{isFirst:j===0,field:e,fieldParentsName:Number(a)>1?c:[],renderDiscriminatorSwitch:t?.fieldName===e.name&&t?.parentSchema?()=>r(v,{parent:t.parentSchema,activeOneOfIdx:t.activeOneOfIdx,translate:D}):void 0,skipReadOnly:o,skipWriteOnly:n,showTitle:i,level:a,disableDeepLinks:u,oneOfLevel:b,slug:g,onOneOfChange:O},e.name))]}),x&&r(I,{className:"array-closing-label",children:r(T,{children:"]"})})]})}const Y=C(V);export{Y as ObjectSchema};
@@ -1,5 +1,5 @@
1
- import{jsx as r}from"react/jsx-runtime";import{memo as S}from"react";import{useAtomValue as g}from"jotai";import{useLocation as I}from"react-router-dom";import{ArraySchema as b}from"./ArraySchema.js";import{ObjectSchema as p}from"./ObjectSchema.js";import{OneOfSchema as C}from"./OneOfSchema.js";import{RecursiveSchema as s}from"./RecursiveSchema.js";import{operationStore as j}from"../../jotai/operation.js";import{FieldDetails as A}from"../PropertyDetails/index.js";import{pathIncludesLink as L}from"../../utils/index.js";import{styled as P}from"../../styled-components.js";function k({schema:e,onDiscriminatorChange:u,onOneOfChange:n,...i}){const{activeOneOf:d}=g(j(e?.operationPointer||"")),h=I();if(!e)return null;const{type:t,oneOf:o,discriminatorProp:f,isCircular:O}=e;if(O)return r(s,{schema:e});if(f!==void 0){if(!o||!o.length)return console.warn(`Looks like you are using discriminator wrong: you don't have any definition inherited from the ${e.title}`),null;const m=o.findIndex((N,y)=>L(h,`d=${y}`)),l=m===-1?0:m,x=d[e.pointer]!==void 0?d[e.pointer]:l,a=o[x];return a?.isCircular?r(s,{schema:a}):r(p,{...i,schema:a,discriminator:{fieldName:f,parentSchema:e,activeOneOfIdx:l,onChange:u},onOneOfChange:n})}if(o!==void 0&&o.length>=1)return r(C,{...i,schema:e,onChange:n});const c=Array.isArray(t)?t:[t];if(c.includes("object")){if(e.fields?.length)return r(p,{...i,schema:e,onOneOfChange:n})}else if(c.includes("array"))return r(b,{...i,schema:e,onOneOfChange:n});const v={schema:e,name:"",description:i.oneOfLevel?"":e.description,required:!1,deprecated:!1};return r(w,{children:r(A,{field:v,fieldParentsName:i.fieldParentsName})})}const H=S(k),w=P.div`
1
+ import{jsx as r}from"react/jsx-runtime";import{memo as y}from"react";import{useAtomValue as S}from"jotai";import{useLocation as g}from"react-router-dom";import{ArraySchema as I}from"./ArraySchema.js";import{ObjectSchema as p}from"./ObjectSchema.js";import{OneOfSchema as b}from"./OneOfSchema.js";import{RecursiveSchema as s}from"./RecursiveSchema.js";import{operationStore as j}from"../../jotai/operation.js";import{FieldDetails as A}from"../PropertyDetails/index.js";import{pathIncludesLink as C}from"../../utils/index.js";import{styled as L}from"../../styled-components.js";function P({schema:e,onOneOfChange:n,...i}){const{activeOneOf:d}=S(j(e?.operationPointer||"")),u=g();if(!e)return null;const{type:t,oneOf:o,discriminatorProp:f,isCircular:O}=e;if(O)return r(s,{schema:e});if(f!==void 0){if(!o||!o.length)return console.warn(`Looks like you are using discriminator wrong: you don't have any definition inherited from the ${e.title}`),null;const m=o.findIndex((w,x)=>C(u,`d=${x}`)),l=m===-1?0:m,v=d[e.pointer]!==void 0?d[e.pointer]:l,a=o[v];return a?.isCircular?r(s,{schema:a}):r(p,{...i,schema:a,discriminator:{fieldName:f,parentSchema:e,activeOneOfIdx:l},onOneOfChange:n})}if(o!==void 0&&o.length>=1)return r(b,{...i,schema:e,onChange:n});const c=Array.isArray(t)?t:[t];if(c.includes("object")){if(e.fields?.length)return r(p,{...i,schema:e,onOneOfChange:n})}else if(c.includes("array"))return r(I,{...i,schema:e,onOneOfChange:n});const h={schema:e,name:"",description:i.oneOfLevel?"":e.description,required:!1,deprecated:!1};return r(k,{children:r(A,{field:h,fieldParentsName:i.fieldParentsName})})}const G=y(P),k=L.div`
2
2
  width: 100%;
3
3
  padding: var(--spacing-xxs) 0;
4
4
  border-bottom: 1px solid var(--border-color-primary);
5
- `;export{H as Schema};
5
+ `;export{G as Schema};
@@ -12,7 +12,6 @@ export interface SchemaOptions {
12
12
  export interface SchemaProps extends SchemaOptions {
13
13
  schema: SchemaModel;
14
14
  parentType?: string[] | string;
15
- onDiscriminatorChange?: (idx: number) => void;
16
15
  onOneOfChange?: (params: OneOfChangeParams) => void;
17
16
  fieldParentsName?: string[];
18
17
  expandable?: boolean;
@@ -23,12 +22,11 @@ export interface SchemaProps extends SchemaOptions {
23
22
  oneOfLevel?: number;
24
23
  shouldCloseArray?: boolean;
25
24
  }
26
- export interface ObjectSchemaProps extends Omit<SchemaProps, 'onDiscriminatorChange'> {
25
+ export interface ObjectSchemaProps extends SchemaProps {
27
26
  discriminator?: {
28
27
  fieldName: string;
29
28
  parentSchema: SchemaModel;
30
29
  activeOneOfIdx: number;
31
- onChange?: (idx: number) => void;
32
30
  };
33
31
  fieldParentsName?: string[];
34
32
  expandable?: boolean;
@@ -0,0 +1,11 @@
1
+ import type { ReactElement } from 'react';
2
+ type Breadcrumb = {
3
+ name: string;
4
+ href: string;
5
+ };
6
+ type BreadcrumbsProps = {
7
+ breadcrumbs: Breadcrumb[];
8
+ onClick: (href: string) => void;
9
+ };
10
+ export declare function Breadcrumbs({ breadcrumbs, onClick }: BreadcrumbsProps): ReactElement | null;
11
+ export {};
@@ -0,0 +1,41 @@
1
+ import{jsx as n,Fragment as p,jsxs as h}from"react/jsx-runtime";import w,{useRef as x,useState as L,useMemo as b,useCallback as B,useLayoutEffect as k}from"react";import{Dropdown as E}from"@redocly/theme/components/Dropdown/Dropdown";import{DropdownMenu as M}from"@redocly/theme/components/Dropdown/DropdownMenu";import{DropdownMenuItem as C}from"@redocly/theme/components/Dropdown/DropdownMenuItem";import{Tooltip as T}from"@redocly/theme/components/Tooltip/Tooltip";import{trimText as y}from"@redocly/theme/core/openapi";import{styled as s}from"../../styled-components.js";import{calculateMaxLength as D}from"../../utils/calculateMaxLength.js";const R=25,_=3,u=({breadcrumb:e,onClick:t,maxLength:r})=>{const o=e.name.length>r,i=y(e.name,r);return n(T,{tip:e.name,placement:"bottom",disabled:!o,children:n(v,{onClick:()=>t(e.href),children:i})})},z=({breadcrumbs:e,onClick:t,maxLength:r})=>{const o=e[0],i=e[e.length-1],d=e.slice(1,-1);return h(p,{children:[n(u,{breadcrumb:o,onClick:t,maxLength:r}),n(g,{children:"/"}),n(E,{trigger:n(O,{children:"..."}),closeOnClick:!0,alignment:"end",children:n(M,{children:d.map(a=>n(C,{onAction:()=>t(a.href),children:a.name},a.href))})}),n(g,{children:"/"}),n(u,{breadcrumb:i,onClick:t,maxLength:r})]})},F=({breadcrumbs:e,onClick:t,maxLength:r})=>n(p,{children:e.map((o,i)=>h(w.Fragment,{children:[n(u,{breadcrumb:o,onClick:t,maxLength:r}),i!==e.length-1&&n(g,{children:"/"})]},o.href))});function q({breadcrumbs:e,onClick:t}){const r=x(null),o=x(null),[i,d]=L(R),a=e.length>_,f=b(()=>a?[e[0],e[e.length-1]]:e,[e,a]),m=B(()=>{if(!r.current?.parentElement||!o.current)return;const c=r.current.parentElement.clientWidth,l=D(f,c,a,o.current);d(l)},[f,a]);return k(()=>{m();const c=new ResizeObserver(m),l=r.current?.parentElement;return l&&c.observe(l),()=>{c.disconnect()}},[m]),e.length?h(p,{children:[n(j,{ref:o,"aria-hidden":"true"}),n(A,{ref:r,"data-component-name":"TagItem/Breadcrumbs",children:a?n(z,{breadcrumbs:e,onClick:t,maxLength:i}):n(F,{breadcrumbs:e,onClick:t,maxLength:i})})]}):null}const j=s.span`
2
+ position: absolute;
3
+ visibility: hidden;
4
+ white-space: nowrap;
5
+ `,A=s.div`
6
+ position: absolute;
7
+ top: -26px;
8
+ display: flex;
9
+ align-items: center;
10
+ flex-wrap: nowrap;
11
+ gap: calc(var(--breadcrumbs-gap) / 2);
12
+ margin-bottom: var(--spacing-xxs);
13
+ max-width: 100%;
14
+ `,v=s.button`
15
+ background: none;
16
+ border: none;
17
+ margin: 0;
18
+ font-size: var(--font-size-sm);
19
+ color: var(--breadcrumbs-text-color);
20
+ border-radius: var(--border-radius);
21
+ cursor: pointer;
22
+ padding: 1px calc(var(--spacing-xxs) / 2);
23
+ line-height: var(--line-height-sm);
24
+ overflow: hidden;
25
+ text-overflow: ellipsis;
26
+ white-space: nowrap;
27
+ flex: 0 1 auto;
28
+ min-width: 0;
29
+
30
+ &:hover {
31
+ background-color: var(--breadcrumbs-background-color-hover);
32
+ }
33
+ `,g=s.span`
34
+ line-height: var(--line-height-sm);
35
+ padding: 0 calc(var(--spacing-xxs) / 2);
36
+ color: var(--breadcrumbs-text-color);
37
+ font-size: var(--font-size-sm);
38
+ `,O=s(v)`
39
+ text-align: center;
40
+ overflow: visible;
41
+ `;export{q as Breadcrumbs};
@@ -1,9 +1,11 @@
1
1
  import type { TFunction } from '@redocly/theme/core/openapi';
2
2
  import type { OperationsNavigationProps } from './types.js';
3
3
  type OperationNavigationItemsProps = OperationsNavigationProps & {
4
- title: string;
4
+ title?: string;
5
5
  onClick: (link: string) => void;
6
6
  translate: TFunction;
7
+ disableTooltip?: boolean;
7
8
  };
8
- export declare const OperationNavigationItems: import("react").NamedExoticComponent<OperationNavigationItemsProps>;
9
+ declare function OperationNavigationItemsComponent({ title, items, onClick, routingBasePath, translate, disableTooltip, }: OperationNavigationItemsProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare const OperationNavigationItems: import("react").MemoExoticComponent<typeof OperationNavigationItemsComponent>;
9
11
  export {};
@@ -1,10 +1,10 @@
1
- import{jsx as e,jsxs as s,Fragment as w}from"react/jsx-runtime";import{memo as j}from"react";import{getOperationColor as z}from"@redocly/theme/core/openapi";import{Tooltip as k}from"@redocly/theme/components/Tooltip/Tooltip";import{joinWithSeparator as C}from"../../services/index.js";import{encodeBackSlashes as O}from"../../utils/index.js";import{HttpVerb as B,NavigationBadge as p}from"../common/index.js";import{styled as o}from"../../styled-components.js";import{StyledButton as I}from"./styled.js";function N({title:l,items:c,onClick:d,routingBasePath:h,translate:m}){return s(w,{children:[e(S,{children:l}),c.map(t=>{const{id:g,href:f,deprecated:r,badges:v,isAdditionalOperation:b,name:a}=t,x=t.type==="operation"?t.path:a,i=t.type==="operation"?t.httpVerb:t.type,u=z({isAdditionalOperation:b,deprecated:r,httpVerb:i});return e(k,{tip:a,placement:"left",children:e(V,{variant:"outlined",size:"large",onClick:()=>d(C(h,O(f))),children:s("span",{children:[e(B,{color:u,children:i}),e(_,{children:x}),r&&e(p,{deprecated:!0,children:m("openapi.badges.deprecated","Deprecated")}),v?.map(({name:n,color:y})=>e(p,{color:y,children:n},n))]})})},g)})]})}const G=j(N),S=o.span`
1
+ import{jsx as r,jsxs as s,Fragment as x}from"react/jsx-runtime";import{memo as y}from"react";import{GenericIcon as w}from"@redocly/theme/icons/GenericIcon/GenericIcon";import{DirectionRightIcon as I}from"@redocly/theme/icons/DirectionRightIcon/DirectionRightIcon";import{getOperationColor as j}from"@redocly/theme/core/openapi";import{Tooltip as k}from"@redocly/theme/components/Tooltip/Tooltip";import{joinWithSeparator as z}from"../../services/index.js";import{encodeBackSlashes as O}from"../../utils/index.js";import{HttpVerb as V,NavigationBadge as d}from"../common/index.js";import{styled as o}from"../../styled-components.js";import{StyledButton as B}from"./styled.js";function C({verb:e,deprecated:t,isAdditionalOperation:n}){const i=j({httpVerb:e,deprecated:t,isAdditionalOperation:n});return r(V,{color:i,children:e})}function H(e){if(e.type==="tag")return r(F,{children:r(I,{size:"12px"})});const t=e.type==="operation"?e.httpVerb:e.type;return C({verb:t,deprecated:e.deprecated,isAdditionalOperation:e.isAdditionalOperation})}function N(e){return e.type==="operation"?e.path:e.name}function S({title:e,items:t,onClick:n,routingBasePath:i,translate:l,disableTooltip:h}){return s(x,{children:[e&&r(_,{children:e}),t.map(a=>{const{id:g,href:f,name:m,deprecated:v,badges:b}=a;return r(k,{tip:m,placement:"left",disabled:h,children:r(A,{variant:"outlined",size:"large",onClick:()=>n(z(i,O(f))),children:s("span",{children:[H(a),r(D,{children:N(a)}),v&&r(d,{deprecated:!0,children:l("openapi.badges.deprecated","Deprecated")}),b?.map(({name:p,color:u,icon:c})=>r(d,{color:u,icon:c&&r(w,{icon:c}),children:p},p))]})})},g)})]})}const Q=y(S),_=o.span`
2
2
  font-size: var(--font-size-base);
3
3
  line-height: var(--line-height-base);
4
4
  font-weight: var(--font-weight-bold);
5
5
  color: var(--text-color-primary);
6
6
  margin: var(--spacing-sm) 0 var(--spacing-xxs) 0;
7
- `,V=o(I)`
7
+ `,A=o(B)`
8
8
  border-radius: var(--border-radius);
9
9
  background: var(--bg-color);
10
10
  justify-content: space-between;
@@ -12,7 +12,7 @@ import{jsx as e,jsxs as s,Fragment as w}from"react/jsx-runtime";import{memo as j
12
12
 
13
13
  & > span {
14
14
  display: flex;
15
- align-items: baseline;
15
+ align-items: center;
16
16
  gap: var(--spacing-unit);
17
17
  overflow-x: hidden;
18
18
  }
@@ -25,7 +25,7 @@ import{jsx as e,jsxs as s,Fragment as w}from"react/jsx-runtime";import{memo as j
25
25
  content: '→';
26
26
  line-height: var(--line-height-base);
27
27
  }
28
- `,_=o.span`
28
+ `,D=o.span`
29
29
  font-family: var(--font-family-base);
30
30
  font-size: var(--font-size-base);
31
31
  line-height: var(--line-height-base);
@@ -34,4 +34,19 @@ import{jsx as e,jsxs as s,Fragment as w}from"react/jsx-runtime";import{memo as j
34
34
  white-space: nowrap;
35
35
  text-overflow: ellipsis;
36
36
  overflow-x: hidden;
37
- `;export{G as OperationNavigationItems};
37
+ `,F=o.div`
38
+ width: 20px;
39
+ height: 20px;
40
+ border-radius: 50%;
41
+ align-items: center;
42
+ justify-content: center;
43
+ display: flex;
44
+ flex-shrink: 0;
45
+ background-color: var(--layer-color-hover);
46
+ margin-right: var(--spacing-unit);
47
+
48
+ & > svg {
49
+ height: 12px;
50
+ width: 12px;
51
+ }
52
+ `;export{Q as OperationNavigationItems};
@@ -1,6 +1,31 @@
1
- import{jsx as i,jsxs as y}from"react/jsx-runtime";import{useMemo as E,memo as W,useState as B,useCallback as _}from"react";import{useNavigate as V}from"react-router-dom";import{LayoutVariant as z}from"@redocly/config";import{useAtomValue as D}from"jotai/index";import{SamplesPanel as K}from"../common/index.js";import{layoutAtom as L}from"../../jotai/app.js";import{OperationNavigationItems as p}from"./OperationNavigationItems.js";import{StyledButton as X}from"./styled.js";import{useTranslate as q}from"../../hooks/index.js";import{styled as F}from"../../styled-components.js";import{isRenderableMenuItem as G}from"../../utils/menu.js";const m=8;function H({items:c,routingBasePath:s}){const o=q(),[l,P]=B(!1),h=V(),w=D(L)===z.STACKED,{operations:u,rpcOperations:d,webhooks:f,schemas:g,mcpTools:k,showMoreCount:C,totalCount:b,mcpResources:O,mcpPrompts:x}=E(()=>{const a=c.filter(e=>G(e)),v=l?a:a.slice(0,m),{operations:M,rpcOperations:R,additionalOperations:S,webhooks:T,schemas:A,mcpTools:I,mcpResources:N,mcpPrompts:j}=v.reduce((e,t)=>{if(t.type==="operation"&&t.isWebhook)e.webhooks.push(t);else if(t.type==="operation"){const r=t;r.isRpc?e.rpcOperations.push(r):r.isAdditionalOperation?e.additionalOperations.push(r):e.operations.push(r)}else t.type==="schema"?e.schemas.push(t):t.type==="tool"?e.mcpTools.push(t):t.type==="rsrc"?e.mcpResources.push(t):t.type==="prompt"&&e.mcpPrompts.push(t);return e},{operations:[],rpcOperations:[],additionalOperations:[],webhooks:[],schemas:[],mcpTools:[],mcpResources:[],mcpPrompts:[]});return{operations:[...M,...S],rpcOperations:R,schemas:A,mcpTools:I,webhooks:T,mcpResources:N,mcpPrompts:j,showMoreCount:!l&&a.length>m?a.length-m:0,totalCount:a.length}},[l,c]),n=_(a=>h(a),[h]);return b?y(J,{isStacked:w,"data-testid":"operation-navigation-list",children:[g.length>0&&i(p,{items:g,onClick:n,routingBasePath:s,translate:o,title:o("openapi.schemas","Schemas")}),k.length>0&&i(p,{items:k,onClick:n,routingBasePath:s,translate:o,title:o("openapi.mcp.tools","MCP Tools")}),O.length>0&&i(p,{items:O,onClick:n,routingBasePath:s,translate:o,title:o("openapi.mcp.resources","MCP Resources")}),x.length>0&&i(p,{items:x,onClick:n,routingBasePath:s,translate:o,title:o("openapi.mcp.prompts","MCP Prompts")}),d.length>0&&i(p,{items:d,onClick:n,routingBasePath:s,translate:o,title:o("openapi.rpcMethods","RPC methods")}),u.length>0&&i(p,{items:u,onClick:n,routingBasePath:s,translate:o,title:o("openapi.operations","Operations")}),f.length>0&&i(p,{items:f,onClick:n,routingBasePath:s,translate:o,title:o("openapi.webhooks","Webhooks")}),!l&&!!C&&y(X,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>P(!0),children:[o("openapi.actions.show","Show")," ",C," ",o("openapi.actions.more","more"),"..."]})]}):null}const ro=W(H),J=F(K)`
1
+ import{jsx as s,jsxs as O}from"react/jsx-runtime";import{useMemo as _,memo as D,useState as V,useCallback as z}from"react";import{useNavigate as K}from"react-router-dom";import{LayoutVariant as L}from"@redocly/config";import{useAtomValue as X}from"jotai/index";import{SamplesPanel as q}from"../common/index.js";import{layoutAtom as F}from"../../jotai/app.js";import{OperationNavigationItems as a}from"./OperationNavigationItems.js";import{StyledButton as G}from"./styled.js";import{useTranslate as H}from"../../hooks/index.js";import{styled as C}from"../../styled-components.js";import{isRenderableMenuItem as J}from"../../utils/menu.js";const x=8;function Q({items:m,routingBasePath:n}){const o=H(),[l,w]=V(!1),b=K(),P=X(F)===L.STACKED,{operations:h,rpcOperations:v,webhooks:u,schemas:d,mcpTools:g,showMoreCount:y,totalCount:M,mcpResources:f,mcpPrompts:k,tags:c}=_(()=>{const i=m.filter(t=>J(t)),T=l?i:i.slice(0,x),{operations:R,rpcOperations:A,additionalOperations:B,webhooks:I,schemas:N,mcpTools:j,mcpResources:E,mcpPrompts:W}=T.reduce((t,e)=>{if(e.type==="operation"&&e.isWebhook)t.webhooks.push(e);else if(e.type==="operation"){const p=e;p.isRpc?t.rpcOperations.push(p):p.isAdditionalOperation?t.additionalOperations.push(p):t.operations.push(p)}else e.type==="schema"?t.schemas.push(e):e.type==="tool"?t.mcpTools.push(e):e.type==="rsrc"?t.mcpResources.push(e):e.type==="prompt"&&t.mcpPrompts.push(e);return t},{operations:[],rpcOperations:[],additionalOperations:[],webhooks:[],schemas:[],mcpTools:[],mcpResources:[],mcpPrompts:[]});return{operations:[...R,...B],rpcOperations:A,schemas:N,mcpTools:j,webhooks:I,mcpResources:E,mcpPrompts:W,showMoreCount:!l&&i.length>x?i.length-x:0,totalCount:i.length,tags:m.filter(t=>t.type==="tag")}},[l,m]),r=z(i=>b(i),[b]),S=d.length>0||g.length>0||f.length>0||k.length>0||h.length>0||u.length>0;return!M&&c.length===0?null:O(U,{isStacked:P,"data-testid":"operation-navigation-list",children:[d.length>0&&s(a,{items:d,onClick:r,routingBasePath:n,translate:o,title:o("openapi.schemas","Schemas")}),g.length>0&&s(a,{items:g,onClick:r,routingBasePath:n,translate:o,title:o("openapi.mcp.tools","MCP Tools")}),f.length>0&&s(a,{items:f,onClick:r,routingBasePath:n,translate:o,title:o("openapi.mcp.resources","MCP Resources")}),k.length>0&&s(a,{items:k,onClick:r,routingBasePath:n,translate:o,title:o("openapi.mcp.prompts","MCP Prompts")}),v.length>0&&s(a,{items:v,onClick:r,routingBasePath:n,translate:o,title:o("openapi.rpcMethods","RPC methods")}),h.length>0&&s(a,{items:h,onClick:r,routingBasePath:n,translate:o,title:o("openapi.operations","Operations")}),u.length>0&&s(a,{items:u,onClick:r,routingBasePath:n,translate:o,title:o("openapi.webhooks","Webhooks")}),!l&&!!y&&O(Z,{variant:"link",size:"large","data-testid":"show-more-operations",fullWidth:!0,onClick:()=>w(!0),children:[o("openapi.actions.show","Show")," ",y," ",o("openapi.actions.more","more"),"..."]}),c.length>0&&S&&s(Y,{}),c.length>0&&s(a,{items:c,onClick:r,routingBasePath:n,translate:o,disableTooltip:!0})]})}const ho=D(Q),U=C(q)`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  gap: var(--spacing-xxs);
5
5
  padding-top: var(--spacing-xxl);
6
- `;export{ro as OperationsNavigation,H as OperationsNavigationComponent};
6
+ `,Y=C.div`
7
+ border-bottom: 1px solid var(--border-color-secondary);
8
+ margin: var(--spacing-xs) 0;
9
+ position: relative;
10
+
11
+ &::before,
12
+ &::after {
13
+ content: '';
14
+ position: absolute;
15
+ bottom: -3px;
16
+ width: 6px;
17
+ height: 6px;
18
+ background-color: var(--border-color-secondary);
19
+ border-radius: 50%;
20
+ }
21
+
22
+ &::before {
23
+ left: 0;
24
+ }
25
+
26
+ &::after {
27
+ right: 0;
28
+ }
29
+ `,Z=C(G)`
30
+ margin-top: var(--spacing-xxs);
31
+ `;export{ho as OperationsNavigation,Q as OperationsNavigationComponent};
@@ -1,48 +1,49 @@
1
- import{jsx as t,jsxs as n}from"react/jsx-runtime";import{memo as x,useCallback as S}from"react";import{useNavigate as b}from"react-router-dom";import{useAtomValue as y}from"jotai";import{LayoutVariant as T}from"@redocly/config";import{Markdown as m}from"@redocly/theme/components/Markdown/Markdown";import{breakpoints as r}from"@redocly/theme/core/openapi";import{Button as W}from"@redocly/theme/components/Button/Button";import{PageActions as M}from"@redocly/theme/components/PageActions/PageActions";import{H2 as z}from"@redocly/theme/components/Typography/H2";import{LinkIcon as j}from"@redocly/theme/icons/LinkIcon/LinkIcon";import{joinWithSeparator as C}from"../../services/history/helpers.js";import{Row as I,SamplesMiddlePanel as f,SamplesPanel as u,ShareLink as P}from"../common/index.js";import{Markdown as A}from"../Markdown/index.js";import{OperationsNavigation as L}from"./OperationsNavigation.js";import{layoutAtom as B}from"../../jotai/app.js";import{useTranslate as H}from"../../hooks/index.js";import{styled as e}from"../../styled-components.js";import{StyledShareLink as D}from"../common/linkify.js";function N({item:a,routingBasePath:i="",isExpanded:s}){const v=H(),{description:w,name:g,href:$}=a,c=b(),h=y(B),o=C(i,a.href),k=S(()=>{c(o)},[c,o]),d=!!a.items.length,l=h===T.STACKED,p=!d;return n(V,{expanded:s,children:[n(I,{layout:h,children:[n(_,{fullWidth:p,isStacked:l,children:[n(E,{fullWidth:p,isStacked:l,children:[n(K,{children:[t(P,{to:$,"aria-label":`link to ${g}`}),g]}),t(M,{pageSlug:o})]}),t(F,{fullWidth:p,isStacked:l,children:t(A,{source:w})})]}),d&&t(L,{items:a.items,routingBasePath:i})]}),d&&!s&&n(O,{type:"button",variant:"text",size:"medium",onClick:k,children:["+ ",v("openapi.actions.show","Show")]})]})}const ma=x(N),V=e.div`
1
+ import{jsx as n,jsxs as e}from"react/jsx-runtime";import{memo as W,useCallback as u}from"react";import{useNavigate as M}from"react-router-dom";import{useAtomValue as z}from"jotai";import{LayoutVariant as C}from"@redocly/config";import{Markdown as s}from"@redocly/theme/components/Markdown/Markdown";import{breakpoints as o}from"@redocly/theme/core/openapi";import{Button as I}from"@redocly/theme/components/Button/Button";import{PageActions as j}from"@redocly/theme/components/PageActions/PageActions";import{H2 as B}from"@redocly/theme/components/Typography/H2";import{LinkIcon as A}from"@redocly/theme/icons/LinkIcon/LinkIcon";import{encodeBackSlashes as L,getBreadcrumbs as H}from"../../utils/index.js";import{joinWithSeparator as v}from"../../services/history/helpers.js";import{Row as P,SamplesMiddlePanel as w,SamplesPanel as $,ShareLink as D}from"../common/index.js";import{Markdown as N}from"../Markdown/index.js";import{OperationsNavigation as V}from"./OperationsNavigation.js";import{Breadcrumbs as _}from"./Breadcrumbs.js";import{layoutAtom as E}from"../../jotai/app.js";import{useTranslate as F}from"../../hooks/index.js";import{styled as r}from"../../styled-components.js";import{StyledShareLink as K}from"../common/linkify.js";function O({item:a,routingBasePath:i="",isExpanded:c}){const b=F(),{description:k,name:g,href:x}=a,t=M(),f=z(E),d=v(i,a.href),S=u(()=>{t(d)},[t,d]),l=!!a.items.length,m=f===C.STACKED,p=!l,h=H(a),y=u(T=>{t(v(i,L(T)))},[t,i]);return e(R,{expanded:c,children:[e(P,{layout:f,children:[e(q,{fullWidth:p,isStacked:m,children:[e(G,{fullWidth:p,isStacked:m,children:[h.length>0&&n(_,{breadcrumbs:h,onClick:y}),e(Q,{children:[n(D,{to:x,"aria-label":`link to ${g}`}),g]}),n(j,{pageSlug:d})]}),n(J,{fullWidth:p,isStacked:m,children:n(N,{source:k})})]}),l&&n(V,{items:a.items,routingBasePath:i})]}),l&&!c&&e(U,{type:"button",variant:"text",size:"medium",onClick:S,children:["+ ",b("openapi.actions.show","Show")]})]})}const wa=W(O),R=r.div`
2
2
  padding-top: var(--spacing-lg);
3
3
  padding-bottom: ${({expanded:a})=>a?"var(--spacing-xxl)":""};
4
- `,_=e(f)`
5
- @media screen and (min-width: ${r.large}) {
4
+ `,q=r(w)`
5
+ @media screen and (min-width: ${o.large}) {
6
6
  padding-left: ${({fullWidth:a,isStacked:i})=>a&&!i?"0":void 0};
7
7
  padding-right: ${({fullWidth:a,isStacked:i})=>a&&!i?"0":void 0};
8
8
  }
9
- `,E=e.div`
9
+ `,G=r.div`
10
10
  display: flex;
11
11
  align-items: flex-start;
12
12
  margin: var(--h2-margin-top) 0 var(--h2-margin-bottom);
13
+ position: relative;
13
14
 
14
- @media screen and (min-width: ${r.large}) {
15
+ @media screen and (min-width: ${o.large}) {
15
16
  padding-left: ${({fullWidth:a,isStacked:i})=>a&&!i?"calc(var(--panel-gap-horizontal) * 2)":void 0};
16
17
  padding-right: ${({fullWidth:a,isStacked:i})=>a&&!i?"var(--panel-gap-horizontal)":void 0};
17
18
  width: ${({fullWidth:a,isStacked:i})=>a&&!i?"calc(100% - var(--panel-samples-width))":void 0};
18
19
 
19
- ${D} {
20
+ ${K} {
20
21
  left: ${({fullWidth:a,isStacked:i})=>a&&!i?"unset":void 0};
21
22
  }
22
23
  }
23
- `,F=e.div`
24
+ `,J=r.div`
24
25
  /*
25
26
  Markdoc components inside markdown that use SamplesPanel should not have padding.
26
27
  E.g. SchemaDefinition, McpTool
27
28
  padding is added by the TagItem itself
28
29
  */
29
- ${m} ${u} {
30
+ ${s} ${$} {
30
31
  padding-left: 0;
31
32
  padding-right: 0;
32
33
  }
33
34
 
34
- @media screen and (min-width: ${r.large}) {
35
- ${m} ${f} {
35
+ @media screen and (min-width: ${o.large}) {
36
+ ${s} ${w} {
36
37
  padding-left: ${({fullWidth:a,isStacked:i})=>a&&!i?"calc(var(--panel-gap-horizontal) * 2)":void 0};
37
38
  padding-right: ${({fullWidth:a,isStacked:i})=>a&&!i?"var(--panel-gap-horizontal)":void 0};
38
39
  }
39
40
 
40
- ${m} .schema-definition ${u} {
41
+ ${s} .schema-definition ${$} {
41
42
  padding-left: ${({fullWidth:a,isStacked:i})=>a&&!i?"var(--panel-gap-horizontal)":void 0};
42
43
  padding-right: ${({fullWidth:a,isStacked:i})=>a&&!i?"calc(var(--panel-gap-horizontal) * 2)":void 0};
43
44
  }
44
45
  }
45
- `,K=e(z)`
46
+ `,Q=r(B)`
46
47
  position: relative;
47
48
  display: flex;
48
49
  align-items: center;
@@ -53,20 +54,20 @@ import{jsx as t,jsxs as n}from"react/jsx-runtime";import{memo as x,useCallback a
53
54
  margin: 0;
54
55
 
55
56
  :hover {
56
- ${j} {
57
+ ${A} {
57
58
  opacity: 1;
58
59
  visibility: visible;
59
60
  }
60
61
  }
61
- `,O=e(W)`
62
+ `,U=r(I)`
62
63
  margin: var(--spacing-md) var(--spacing-xl) var(--spacing-xxs);
63
64
  width: calc(100% - var(--spacing-xl) * 2);
64
65
 
65
- @media screen and (min-width: ${r.medium}) {
66
+ @media screen and (min-width: ${o.medium}) {
66
67
  --button-margin-md: calc(var(--spacing-xl) * 2);
67
68
 
68
69
  margin-left: var(--button-margin-md);
69
70
  margin-right: var(--button-margin-md);
70
71
  width: calc(100% - var(--button-margin-md) * 2);
71
72
  }
72
- `;export{ma as TagItem,N as TagItemComponent};
73
+ `;export{wa as TagItem,O as TagItemComponent};
@@ -1,18 +1,20 @@
1
- import{Fragment as i,jsx as t,jsxs as l}from"react/jsx-runtime";import{memo as m}from"react";import{css as f}from"styled-components";import{Badge as g}from"@redocly/theme/components/Badge/Badge";import{styled as d}from"../../styled-components.js";function p({badges:e,children:s}){if(!e)return t(i,{children:s});const n=e.filter(({position:r})=>r==="before"),c=e.filter(({position:r})=>r==="after");return l(i,{children:[n.map(({name:r,color:o})=>t(a,{color:o,children:r},r)),s,c.map(({name:r,color:o})=>t(a,{color:o,children:r},r))]})}const B=m(p),a=d(g)`
2
- margin-left: 0;
3
- background-color: ${({color:e})=>e||"var(--color-info-base)"};
4
- ${({deprecated:e})=>e&&f`
1
+ import{jsx as a,Fragment as n,jsxs as c}from"react/jsx-runtime";import{memo as p}from"react";import{css as l}from"styled-components";import{Tag as f}from"@redocly/theme/components/Tag/Tag";import{GenericIcon as g}from"@redocly/theme/icons/GenericIcon/GenericIcon";import{Tooltip as x}from"@redocly/theme/components/Tooltip/Tooltip";import{styled as s}from"../../styled-components.js";function d({name:r,color:e,description:o,icon:t}){return a(x,{tip:o,placement:"top",disabled:!o,children:a(m,{color:e,icon:t&&a(g,{icon:t}),children:r})},r)}function h({badges:r,children:e}){if(!r)return a(n,{children:e});const o=r.filter(({position:i})=>i==="before"),t=r.filter(({position:i})=>i==="after");return c(n,{children:[o.map(d),e,t.map(d)]})}const _=p(h),m=s(f)`
2
+ margin: 0;
3
+ ${({deprecated:r})=>r&&l`
5
4
  color: var(--badge-deprecated-text-color);
6
5
  background-color: var(--badge-deprecated-bg-color);
7
6
  border-radius: var(--badge-deprecated-border-radius);
8
7
  `};
9
- `,w=d(a)`
10
- margin-left: 0;
8
+
9
+ svg {
10
+ flex-shrink: 0;
11
+ }
12
+ `,k=s(m)`
13
+ margin: 0;
11
14
  font-size: var(--font-size-sm);
12
15
  line-height: var(--line-height-sm);
13
16
  padding: 0 var(--spacing-xxs);
14
- max-width: 80px;
15
17
  text-overflow: ellipsis;
16
18
  white-space: nowrap;
17
19
  overflow: hidden;
18
- `;export{B as CustomBadges,w as NavigationBadge,a as StyledBadge};
20
+ `;export{_ as CustomBadges,k as NavigationBadge,m as StyledBadge};
@@ -1,4 +1,4 @@
1
- import{jsx as n,jsxs as c}from"react/jsx-runtime";import{useAtomValue as m}from"jotai";import{Link as h}from"react-router-dom";import{LinkIcon as o}from"@redocly/theme/icons/LinkIcon/LinkIcon";import{globalOptionsAtom as d}from"../../jotai/store.js";import{tryDecodeURIComponent as f}from"../../utils/index.js";import{styled as k}from"../../styled-components.js";import{joinWithSeparator as r}from"../../services/history/helpers.js";function u(i){const{routingBasePath:a,onDeepLinkClick:e}=m(d),t=i.to,l=e&&{onClick:s=>{s.preventDefault(),e(r(a||"",t))}};return t?n(h,{"aria-label":i["aria-label"]||`link to ${t}`,id:f(i.id||""),className:i.className||"",to:t?.startsWith("#")?t:r(a||"",t),...l,children:i.children}):i.children?c("span",{"aria-label":i["aria-label"]||`link to ${t}`,className:i.className,children:[" ",i.children," "]}):null}const b=k(u)`
1
+ import{jsx as a,jsxs as c}from"react/jsx-runtime";import{useAtomValue as m}from"jotai";import{Link as h}from"react-router-dom";import{LinkIcon as o}from"@redocly/theme/icons/LinkIcon/LinkIcon";import{globalOptionsAtom as d}from"../../jotai/store.js";import{tryDecodeURIComponent as f}from"../../utils/index.js";import{styled as k}from"../../styled-components.js";import{joinWithSeparator as e}from"../../services/history/helpers.js";function u(i){const{routingBasePath:n,onDeepLinkClick:r}=m(d),t=i.to,l=r&&{onClick:s=>{s.preventDefault(),r(e(n||"",t))}};return t?a(h,{"aria-label":i["aria-label"]||`link to ${t}`,id:f(i.id||""),className:i.className||"",to:t?.startsWith("#")?t:e(n||"",t),...l,children:i.children}):i.children?c("span",{"aria-label":i["aria-label"]||`link to ${t}`,className:i.className,children:[" ",i.children," "]}):null}const b=k(u)`
2
2
  position: absolute;
3
3
  top: 50%;
4
4
  left: 0;
@@ -17,4 +17,9 @@ import{jsx as n,jsxs as c}from"react/jsx-runtime";import{useAtomValue as m}from"
17
17
  visibility: visible;
18
18
  opacity: 1;
19
19
  }
20
- `;function N(i){return n(b,{...i,children:n(o,{size:"13px",color:"--heading-anchor-color"})})}export{u as Link,N as ShareLink,b as StyledShareLink};
20
+
21
+ h2 & {
22
+ top: 0;
23
+ transform: translate(-100%);
24
+ }
25
+ `;function N(i){return a(b,{...i,children:a(o,{size:"13px",color:"--heading-anchor-color"})})}export{u as Link,N as ShareLink,b as StyledShareLink};
@@ -71,7 +71,7 @@ import{css as i}from"styled-components";import{LayoutVariant as l}from"@redocly/
71
71
  width: 100%;
72
72
  display: block;
73
73
  content: '';
74
- border-bottom: 1px solid var(--border-color-primary);
74
+ border-bottom: 1px solid var(--border-color-secondary);
75
75
  }
76
76
  `}
77
77
  ${p} {
@@ -27,3 +27,4 @@ export declare const DISABLE_DEEP_LINK_IF_FIELDS_EXIST: string[];
27
27
  export declare const SEARCH_LIMIT = 100;
28
28
  export declare const HIGHLIGHTED_TEXT_MAX_LENGTH = 150;
29
29
  export declare const SEARCH_INDEX_FIELDS: string[];
30
+ export declare const MAX_NESTING_TAGS_LEVEL = 5;
package/lib/constants.js CHANGED
@@ -1 +1 @@
1
- var o;(function(t){t.ON_DEEP_LINK_CLICK="onDeepLinkClick",t.HOOKS="hooks"})(o||(o={}));var E;(function(t){t.OCTET_STREAM="application/octet-stream",t.MULTIPART="multipart/form-data",t.MULTIPART_MIXED="multipart/mixed",t.URL_ENCODED="application/x-www-form-urlencoded",t.JSON="application/json",t.XML="application/xml",t.JSONL="application/jsonl",t.NDJSON="application/x-ndjson",t.JSON_SEQ="application/json-seq",t.EVENT_STREAM="text/event-stream"})(E||(E={}));const n="data-section-id",r=0,a="other",p="webhooks",_={NOT_LOADED:"NOT_LOADED",LOADING:"LOADING",LOADED:"LOADED"},D=["title"],L=100,c=150,e=["text","title","path","httpPath","parameters[]:name","parameters[]:description","parameters[]:place","parameters[]:path"];export{a as DEFAULT_TAG_SLUG,p as DEFAULT_WEBHOOKS_TAG_NAME,D as DISABLE_DEEP_LINK_IF_FIELDS_EXIST,r as GROUP_DEPTH,c as HIGHLIGHTED_TEXT_MAX_LENGTH,_ as LOADING_STATE,E as MediaTypes,e as SEARCH_INDEX_FIELDS,L as SEARCH_LIMIT,n as SECTION_ATTR,o as WindowReferenceOptions};
1
+ var o;(function(t){t.ON_DEEP_LINK_CLICK="onDeepLinkClick",t.HOOKS="hooks"})(o||(o={}));var E;(function(t){t.OCTET_STREAM="application/octet-stream",t.MULTIPART="multipart/form-data",t.MULTIPART_MIXED="multipart/mixed",t.URL_ENCODED="application/x-www-form-urlencoded",t.JSON="application/json",t.XML="application/xml",t.JSONL="application/jsonl",t.NDJSON="application/x-ndjson",t.JSON_SEQ="application/json-seq",t.EVENT_STREAM="text/event-stream"})(E||(E={}));const n="data-section-id",_=0,r="other",p="webhooks",a={NOT_LOADED:"NOT_LOADED",LOADING:"LOADING",LOADED:"LOADED"},L=["title"],D=100,c=150,e=["text","title","path","httpPath","parameters[]:name","parameters[]:description","parameters[]:place","parameters[]:path"],A=5;export{r as DEFAULT_TAG_SLUG,p as DEFAULT_WEBHOOKS_TAG_NAME,L as DISABLE_DEEP_LINK_IF_FIELDS_EXIST,_ as GROUP_DEPTH,c as HIGHLIGHTED_TEXT_MAX_LENGTH,a as LOADING_STATE,A as MAX_NESTING_TAGS_LEVEL,E as MediaTypes,e as SEARCH_INDEX_FIELDS,D as SEARCH_LIMIT,n as SECTION_ATTR,o as WindowReferenceOptions};
@@ -1 +1 @@
1
- import{REDOCLY_TEAMS_RBAC as r}from"@redocly/config";import{joinWithSeparator as w}from"../services/index.js";import{extractExtensions as I,getValueFromMdParsedExtension as E,mapValues as L,removePercentChart as R}from"../utils/index.js";import{getSchema as T}from"./schema.js";import{getExamples as _}from"./example.js";const F={path:{style:"simple",explode:!1},query:{style:"form",explode:!0},header:{style:"simple",explode:!1},cookie:{style:"form",explode:!0}};function N(l,i,p,a,d,x,P=p){const{resolved:e}=l.deref(i),g=i.kind||"field",f=i.name||e.name,n=e.in,S=!!e.required;let c=e.schema,u,s="",m;if(!c&&e.in&&e.content){s=Object.keys(e.content)[0];const t=e.content[s];c=t&&t?.example?{...l.deref(t.schema,x,!0).resolved,example:e.example||t.example}:t.schema}const h=w(d.parentFieldFullPath,R(f||"")),o=T({parser:l,schemaOrRef:c||{},pointer:p,options:a,baseRefsStack:x,absolutePointer:i.$ref||e.schema?.absolutePointer||P,deps:{...d,parentFieldFullPath:h,in:n}}),A=e.description===void 0?E(o,"description")||"":E(e,"description"),b=e.example||o.example,y=e.examples||e.content?.[s]?.examples,k=y?L(y,(t,v)=>_({parser:l,infoOrRef:t,mime:v,encoding:e.encoding})):void 0;s?u=s:e.style?m=e.style:n&&(m=F[n]?.style??"form");const C=e.explode===void 0&&n?F[n]?.explode??!0:!!e.explode,M=e.deprecated===void 0?o.deprecated:e.deprecated,V=a.showExtensions?I(e,a.showExtensions):void 0,q=o?.const||e?.const||"";return{deps:d||{},schema:o,name:f,required:S,description:A,example:b,examples:k,deprecated:M,in:n,kind:g,extensions:V,explode:C,style:m,const:q,serializationMime:u,fieldFullPath:h,[r]:e[r]||o[r]}}export{N as getField};
1
+ import{REDOCLY_TEAMS_RBAC as m}from"@redocly/config";import{joinWithSeparator as w}from"../services/index.js";import{extractExtensions as I,getValueFromMdParsedExtension as E,mapValues as L,removePercentChart as R}from"../utils/index.js";import{getSchema as T}from"./schema.js";import{getExamples as _}from"./example.js";const F={path:{style:"simple",explode:!1},query:{style:"form",explode:!0},header:{style:"simple",explode:!1},cookie:{style:"form",explode:!0},querystring:{style:"form",explode:!0}};function N(l,i,p,a,d,x,g=p){const{resolved:e}=l.deref(i),P=i.kind||"field",f=i.name||e.name,n=e.in,S=!!e.required;let r=e.schema,u,s="",c;if(!r&&e.in&&e.content){s=Object.keys(e.content)[0];const t=e.content[s];r=t&&t?.example?{...l.deref(t.schema,x,!0).resolved,example:e.example||t.example}:t.schema}const h=w(d.parentFieldFullPath,R(f||"")),o=T({parser:l,schemaOrRef:r||{},pointer:p,options:a,baseRefsStack:x,absolutePointer:i.$ref||e.schema?.absolutePointer||g,deps:{...d,parentFieldFullPath:h,in:n}}),A=e.description===void 0?E(o,"description")||"":E(e,"description"),b=e.example||o.example,y=e.examples||e.content?.[s]?.examples,k=y?L(y,(t,v)=>_({parser:l,infoOrRef:t,mime:v,encoding:e.encoding})):void 0;s?u=s:e.style?c=e.style:n&&(c=F[n]?.style??"form");const q=e.explode===void 0&&n?F[n]?.explode??!0:!!e.explode,C=e.deprecated===void 0?o.deprecated:e.deprecated,M=a.showExtensions?I(e,a.showExtensions):void 0,V=o?.const||e?.const||"";return{deps:d||{},schema:o,name:f,required:S,description:A,example:b,examples:k,deprecated:C,in:n,kind:P,extensions:M,explode:q,style:c,const:V,serializationMime:u,fieldFullPath:h,[m]:e[m]||o[m]}}export{N as getField};
@@ -1 +1 @@
1
- import{REDOCLY_TEAMS_RBAC as o}from"@redocly/config";import{joinWithSeparator as h}from"../services/index.js";import{getValueFromMdParsedExtension as S,safeSlugify as m}from"../utils/index.js";import{getHref as r}from"../services/menu/operation.js";import{saveTextBeforeHeading as v}from"../utils/saveTextBeforeHeading.js";function b(s,e,i){let n;i?.id&&(s==="schema"||s==="tool"||s==="rsrc"||s==="prompt")?n=h(i.id,m(e.name)):n=e.id||m(e.name);const d=e["x-displayName"]||e.name,c=e.level||1,t=e.isSchema,f=e.ast||void 0,l=v(S(e,"description")||""),a=e.items||[],x=e.externalDocs;return{id:n.toLowerCase(),type:s,parent:i,name:d,level:c,badges:e["x-badges"]||[],depth:0,isSchema:t,description:l,items:a,ast:f,externalDocs:x,href:r({id:n}),[o]:e[o]||i?.[o],keywords:s==="tag"?e["x-keywords"]:void 0}}export{b as getTagOrGroup};
1
+ import{REDOCLY_TEAMS_RBAC as d}from"@redocly/config";import{joinWithSeparator as o}from"../services/index.js";import{getValueFromMdParsedExtension as v,safeSlugify as n}from"../utils/index.js";import{getHref as w}from"../services/menu/operation.js";import{saveTextBeforeHeading as C}from"../utils/saveTextBeforeHeading.js";function A(s,e,i){let m;if(i?.id&&(s==="schema"||s==="tool"||s==="rsrc"||s==="prompt"))m=o(i.id,n(e.name));else if(i?.id&&i?.type==="tag"&&s==="tag"){const S=n(e.name);m=o(i.id,S)}else m=e.id||n(e.name);const c=e.summary||e["x-displayName"]||e.name,f=e.level||1,t=e.isSchema,l=e.ast||void 0,a=C(v(e,"description")||""),x=e.items||[],h=e.externalDocs;return{id:m.toLowerCase(),type:s,parent:i,name:c,level:f,badges:e["x-badges"]||[],depth:0,isSchema:t,description:a,items:x,ast:l,externalDocs:h,href:w({id:m}),[d]:e[d]||i?.[d],keywords:s==="tag"?e["x-keywords"]:void 0}}export{A as getTagOrGroup};
@@ -1 +1 @@
1
- import{getSchema as E}from"./schema.js";import{isFormUrlEncoded as M,isJsonLike as D,isXmlLike as j,isMultipartFormData as w,isSequentialMediaType as k,JsonPointer as U,mapValues as F}from"../utils/index.js";import{getExamples as c}from"./example.js";import{safeSample as R,convertSampleToString as O}from"../services/code-samples/index.js";function A({parser:t,info:{encoding:l,schema:x,itemSchema:r},schema:o,mime:n,options:{isRequestType:h,onlyRequiredInSamples:P,generatedSamplesMaxDepth:I,format:v="json"}}){const m={skipReadOnly:h,skipWriteOnly:!h,skipNonRequired:h&&P,maxSampleDepth:I,quiet:!0,format:v};let a={};const b=k(n),S=!!r,d=o?.rawSchema?.prefixItems||o?.schema?.prefixItems||Array.isArray(o?.rawSchema?.items),u=r?t.deref(r).resolved:null,y=u&&Array.isArray(u.oneOf)&&u.oneOf.length>0||o&&o.oneOf;if(o&&o.oneOf)if(b&&S&&!d){const i=[];for(const e of o.oneOf){let f=R(e.rawSchema,m,t.definition);f!==null&&(o.discriminatorProp&&typeof f=="object"&&f&&f[o.discriminatorProp]&&!e.isDefaultMapping&&(f[o.discriminatorProp]=e.title),i.push(f))}if(i.length>0){const e=O(i,n,o);a.default=c({parser:t,infoOrRef:{value:e},mime:n,encoding:l})}}else for(const i of o.oneOf){let e=R(i.rawSchema,m,t.definition);e!==null&&(o.discriminatorProp&&typeof e=="object"&&e&&e[o.discriminatorProp]&&!i.isDefaultMapping&&(e[o.discriminatorProp]=i.title),e=O(e,n,i),a[i.title]=c({parser:t,infoOrRef:{value:e},mime:n,encoding:l}))}else if(y&&u&&Array.isArray(u.oneOf))if(b&&S&&!d){const i=[];for(const e of u.oneOf){const f=t.deref(e).resolved;let p=R(f,m,t.definition);p!==null&&i.push(p)}if(i.length>0){const e=O(i,n,o);a.default=c({parser:t,infoOrRef:{value:e},mime:n,encoding:l})}}else for(const i of u.oneOf){const e=t.deref(i).resolved;let f=R(e,m,t.definition);if(f===null)continue;f=O(f,n,o);const p=e.title||(i.$ref?t.deref(i).resolved.title:"")||"variant";a[p]=c({parser:t,infoOrRef:{value:f},mime:n,encoding:l})}else if(o){let e=R(x||r,m,t.definition);e!==null?(e=O(e,n,o,!0),a={default:c({parser:t,infoOrRef:{value:e},mime:n,encoding:l})}):a={default:c({parser:t,infoOrRef:{value:null},mime:n,encoding:l})}}else a={default:c({parser:t,infoOrRef:{value:null},mime:n,encoding:l})};return a}function N(t,l,x,r,o,{operation:n,type:h,response:P,absolutePointer:I=""}){let v,m;const a=r?.itemSchema??r.schema,b=r?.itemSchema?"itemSchema":"schema";let S;const d=a&&E({parser:t,schemaOrRef:a,pointer:"",absolutePointer:U.join(I,["content",l,b]),options:o,deps:{operation:n,type:h,response:P}}),{onlyRequiredInSamples:u,generatedSamplesMaxDepth:y}=o,{encoding:i,examples:e,example:f}=r;if(!o.unstable_skipSamples){const p=s=>typeof s=="string"?s:O(s,l,d);if(e!==void 0)v=F(e,s=>{const g=t.deref(s).resolved.dataValue||t.deref(s).resolved.serializedValue||t.deref(s).resolved.value,V=p(g);return c({parser:t,infoOrRef:{value:V},mime:l,encoding:i})});else if(f!==void 0){const s=t.deref(f).resolved,g=typeof s=="object"&&s!==null&&"value"in s?s.dataValue||s.serializedValue||s.value:s,V=p(g);v={default:c({parser:t,infoOrRef:{value:V},mime:l,encoding:i})}}else D(l)||j(l)||k(l)?(v=A({parser:t,info:r,schema:d,mime:l,options:{isRequestType:x,onlyRequiredInSamples:u,generatedSamplesMaxDepth:y,format:j(l)?"xml":"json"}}),S=d?.pointer):(M(l)||w(l))&&(S=d?.pointer,m=A({parser:t,info:r,schema:d,mime:l,options:{isRequestType:x,onlyRequiredInSamples:u,generatedSamplesMaxDepth:y}}))}return{examples:v,schema:d,examplesPointer:S,name:l,isRequestType:x,formExamples:m,onlyRequiredInSamples:u,operation:n}}export{N as getMediaType};
1
+ import{getSchema as M}from"./schema.js";import{isFormUrlEncoded as D,isJsonLike as w,isXmlLike as j,isMultipartFormData as U,isSequentialMediaType as k,JsonPointer as F,mapValues as T}from"../utils/index.js";import{getExamples as d}from"./example.js";import{safeSample as y,convertSampleToString as x}from"../services/code-samples/index.js";function A({parser:t,info:{encoding:l,schema:R,itemSchema:a},schema:o,mime:n,options:{isRequestType:h,onlyRequiredInSamples:I,generatedSamplesMaxDepth:g,format:v="json"}}){const m={skipReadOnly:h,skipWriteOnly:!h,skipNonRequired:h&&I,maxSampleDepth:g,quiet:!0,format:v};let r={};const b=k(n),O=!!a,c=o?.rawSchema?.prefixItems||o?.schema?.prefixItems||Array.isArray(o?.rawSchema?.items),u=a?t.deref(a).resolved:null,P=u&&Array.isArray(u.oneOf)&&u.oneOf.length>0||o&&o.oneOf;if(o&&o.oneOf)if(b&&O&&!c){const i=[];for(const e of o.oneOf){let s=y(e.rawSchema,m,t.definition);s!==null&&(o.discriminatorProp&&typeof s=="object"&&s&&s[o.discriminatorProp]&&!e.isDefaultMapping&&(s[o.discriminatorProp]=e.title),i.push(s))}if(i.length>0){const e=x(i,n,o);r.default=d({parser:t,infoOrRef:{value:e},mime:n,encoding:l})}}else for(const i of o.oneOf){let e=y(i.rawSchema,m,t.definition);e!==null&&(o.discriminatorProp&&typeof e=="object"&&e&&e[o.discriminatorProp]&&!i.isDefaultMapping&&(e[o.discriminatorProp]=i.title),e=x(e,n,i),r[i.title]=d({parser:t,infoOrRef:{value:e},mime:n,encoding:l}))}else if(P&&u&&Array.isArray(u.oneOf))if(b&&O&&!c){const i=[];for(const e of u.oneOf){const s=t.deref(e).resolved;let p=y(s,m,t.definition);p!==null&&i.push(p)}if(i.length>0){const e=x(i,n,o);r.default=d({parser:t,infoOrRef:{value:e},mime:n,encoding:l})}}else for(const i of u.oneOf){const e=t.deref(i).resolved;let s=y(e,m,t.definition);if(s===null)continue;s=x(s,n,o);const p=e.title||(i.$ref?t.deref(i).resolved.title:"")||"variant";r[p]=d({parser:t,infoOrRef:{value:s},mime:n,encoding:l})}else if(o){let e=y(R||a,m,t.definition);e!==null?(e=x(e,n,o,!0),r={default:d({parser:t,infoOrRef:{value:e},mime:n,encoding:l})}):r={default:d({parser:t,infoOrRef:{value:null},mime:n,encoding:l})}}else r={default:d({parser:t,infoOrRef:{value:null},mime:n,encoding:l})};return r}function q(t,l,R,a,o,{operation:n,type:h,response:I,absolutePointer:g=""}){let v,m;const r=a?.itemSchema??a.schema,b=a?.itemSchema?"itemSchema":"schema";let O;const c=r&&M({parser:t,schemaOrRef:r,pointer:"",absolutePointer:F.join(g,["content",l,b]),options:o,deps:{operation:n,type:h,response:I}}),{onlyRequiredInSamples:u,generatedSamplesMaxDepth:P}=o,{encoding:i,examples:e,example:s}=a;if(!o.unstable_skipSamples){const p=f=>typeof f=="string"?f:x(f,l,c);if(e!==void 0)v=T(e,f=>{const S=t.deref(f).resolved,V=S.dataValue||S.serializedValue||S.value,E=p(V);return d({parser:t,infoOrRef:{summary:S.summary,description:S.description,value:E},mime:l,encoding:i})});else if(s!==void 0){const f=t.deref(s).resolved,S=typeof f=="object"&&f!==null&&"value"in f?f.dataValue||f.serializedValue||f.value:f,V=p(S);v={default:d({parser:t,infoOrRef:{value:V},mime:l,encoding:i})}}else w(l)||j(l)||k(l)?(v=A({parser:t,info:a,schema:c,mime:l,options:{isRequestType:R,onlyRequiredInSamples:u,generatedSamplesMaxDepth:P,format:j(l)?"xml":"json"}}),O=c?.pointer):(D(l)||U(l))&&(O=c?.pointer,m=A({parser:t,info:a,schema:c,mime:l,options:{isRequestType:R,onlyRequiredInSamples:u,generatedSamplesMaxDepth:P}}))}return{examples:v,schema:c,examplesPointer:O,name:l,isRequestType:R,formExamples:m,onlyRequiredInSamples:u,operation:n}}export{q as getMediaType};
@@ -1 +1 @@
1
- import{REDOCLY_TEAMS_RBAC as g}from"@redocly/config";import{removeLeadingSlash as b}from"@redocly/theme/core/openapi";import{configure as v}from"@redocly/theme/ext/configure";import{extractExtensions as q,getOperationId as P,getOperationName as B,getStatusCodeType as E,getValueFromMdParsedExtension as C,isStatusCode as k,JsonPointer as O,mergeParams as V,normalizeServers as f,sortByDeprecated as I,sortByRequired as A,updateOperationWithRequestValues as N,updateParametersWithUserValues as W}from"../utils/index.js";import{getCallback as w}from"./callback.js";import{getField as F}from"./field.js";import{getRequestBody as M}from"./request.js";import{getSecurity as n}from"./security.js";import{getResponse as j}from"./response.js";import{getHref as L}from"../services/menu/operation.js";function $(r){return r.lang==="Payload"&&"requestBodyContent"in r}function i(r,e,t,a,c,u,p,h){const m=e.isWebhook,s={operationDefinition:e,parent:t,pointer:e.pointer,description:C(e,"description"),externalDocs:e.externalDocs,deprecated:!!e.deprecated,httpVerb:e.httpVerb,operationId:e.operationId,path:e.pathName,isWebhook:m,isRpc:e.isRpc||!!e["x-redocly-openrpc"]||!!r.definition["x-redocly-openrpc"],isAdditionalOperation:e.isAdditionalOperation,isCallback:!!u?.isCallback,isEvent:u?.isCallback||m,name:B(e),defaultExampleName:e.defaultSampleName,[g]:e[g]||t?.[g],type:"operation",callbackId:u?.id,href:c,get callbacks(){return Object.keys(e.callbacks||[]).map(d=>w(r,d,e.callbacks?.[d],s.pointer,a,c,t,p))},get responses(){let d=!1;return Object.keys(e.responses||[]).filter(l=>l==="default"?!0:(E(l,!1,s.isRpc)==="success"&&(d=!0),k(l))).map(l=>j({parser:r,code:l,defaultAsError:d,infoOrRef:e.responses[l],options:a,isEvent:s.isEvent,operation:s}))},get parameters(){return T(r,e,s,a,o)}};if(u?.isCallback)s.security=n(e.security,r),s.servers=f("",e.servers||e.pathServers||[]),s.id=b(c);else{s.id=P(e,t),s.href=s.href||L(s),s.security=n(e.security||r.definition.security,r);const d=e.servers||(e.pathServers?.length?e.pathServers:null)||r.definition.servers||[];s.servers=f(r.definitionUrl,U(d,a.mockServer))}a.showExtensions&&(s.extensions=q(e,a.showExtensions)),s.requestBody=e.requestBody?M({parser:r,infoOrRef:e.requestBody,options:a,operation:s,isEvent:s.isEvent}):void 0;const y=s.requestBody?.content;s.payload={lang:"Payload",source:"",requestBodyContent:y?.hasSample?y:void 0},s.definitionSamples=e["x-codeSamples"]||[],s.badges=e["x-badges"]?.map(({name:d,color:l,position:R})=>({name:d,color:l||"var(--color-info-base)",position:R||"after"}))||[],s.hasSamples=y?.hasSample||s.definitionSamples.length>0,s.hideReplay=e["x-hideReplay"]===!0;const S={userClaims:p,info:r.definition.info||{},operation:{operationId:s.operationId,name:s.name,path:s.path,href:s.href,method:s.httpVerb},servers:s.servers},x=v(S)||{},o=h||x.requestValues||{};return N(s,o),s}function T(r,e,t,a,c){let u=V(r,e.pathParameters,e.parameters,{pathPointer:O.dirName(t.pointer),operationPointer:t.pointer}).map(({paramOrRef:p,pointer:h})=>{const m=F(r,p,h,a,{operation:t,type:"request"});return W(m,c),m});return a.sortRequiredPropsFirst&&(u=A(u)),I(u)}function U(r,e){if(!e)return r;const t={url:e.url,description:e.description};switch(e.position){case"first":return[t,...r];case"last":return[...r,t];case"replace":return[t];default:return r}}export{i as getOperation,$ as isPayloadSample,U as mergeInMockServer};
1
+ import{REDOCLY_TEAMS_RBAC as h}from"@redocly/config";import{removeLeadingSlash as v}from"@redocly/theme/core/openapi";import{configure as k}from"@redocly/theme/ext/configure";import{extractExtensions as B,getOperationId as P,getOperationName as E,getStatusCodeType as C,getValueFromMdParsedExtension as O,isStatusCode as V,JsonPointer as I,mergeParams as T,normalizeServers as b,sortByDeprecated as A,sortByRequired as N,updateOperationWithRequestValues as W,updateParametersWithUserValues as i}from"../utils/index.js";import{getCallback as w}from"./callback.js";import{getField as F}from"./field.js";import{getRequestBody as M}from"./request.js";import{getSecurity as S}from"./security.js";import{getResponse as j}from"./response.js";import{getHref as L}from"../services/menu/operation.js";function ee(r){return r.lang==="Payload"&&"requestBodyContent"in r}function se(r,e,d,u,l,c,p,g){const m=e.isWebhook,s={operationDefinition:e,parent:d,pointer:e.pointer,description:O(e,"description"),externalDocs:e.externalDocs,deprecated:!!e.deprecated,httpVerb:e.httpVerb,operationId:e.operationId,path:e.pathName,isWebhook:m,isRpc:e.isRpc||!!e["x-redocly-openrpc"]||!!r.definition["x-redocly-openrpc"],isAdditionalOperation:e.isAdditionalOperation,isCallback:!!c?.isCallback,isEvent:c?.isCallback||m,name:E(e),defaultExampleName:e.defaultSampleName,[h]:e[h]||d?.[h],type:"operation",callbackId:c?.id,href:l,get callbacks(){return Object.keys(e.callbacks||[]).map(a=>w(r,a,e.callbacks?.[a],s.pointer,u,l,d,p))},get responses(){let a=!1;return Object.keys(e.responses||[]).filter(t=>t==="default"?!0:(C(t,!1,s.isRpc)==="success"&&(a=!0),V(t))).map(t=>j({parser:r,code:t,defaultAsError:a,infoOrRef:e.responses[t],options:u,isEvent:s.isEvent,operation:s}))},get parameters(){return U(r,e,s,u,f)}};if(c?.isCallback)s.security=S(e.security,r),s.servers=b("",e.servers||e.pathServers||[]),s.id=v(l);else{s.id=P(e,d),s.href=s.href||L(s),s.security=S(e.security||r.definition.security,r);const a=e.servers||(e.pathServers?.length?e.pathServers:null)||r.definition.servers||[];s.servers=b(r.definitionUrl,_(a,u.mockServer))}u.showExtensions&&(s.extensions=B(e,u.showExtensions)),s.requestBody=e.requestBody?M({parser:r,infoOrRef:e.requestBody,options:u,operation:s,isEvent:s.isEvent}):void 0;const n=s.requestBody?.content;s.payload={lang:"Payload",source:"",requestBodyContent:n?.hasSample?n:void 0},s.definitionSamples=e["x-codeSamples"]||[];const x=(r.definition.tags||[]).filter(a=>a.kind==="badge"||a.kind==="audience"),y=e["x-badges"]?.map(({name:a,color:t,position:o})=>({name:a,color:t||"blue",position:o||"after"}))??[];if(e.tags)for(const a of e.tags){const t=x.find(o=>o.name===a);t&&y.push({name:t.summary??t.name,color:t.kind==="audience"?"grey":"blue",icon:t.kind==="audience"?"user-group":void 0,position:"after",description:t.description})}s.badges=y,s.hasSamples=n?.hasSample||s.definitionSamples.length>0,s.hideReplay=e["x-hideReplay"]===!0;const R={userClaims:p,info:r.definition.info||{},operation:{operationId:s.operationId,name:s.name,path:s.path,href:s.href,method:s.httpVerb},servers:s.servers},q=k(R)||{},f=g||q.requestValues||{};return W(s,f),s}function U(r,e,d,u,l){let c=T(r,e.pathParameters,e.parameters,{pathPointer:I.dirName(d.pointer),operationPointer:d.pointer}).map(({paramOrRef:p,pointer:g})=>{const m=F(r,p,g,u,{operation:d,type:"request"});return i(m,l),m});return u.sortRequiredPropsFirst&&(c=N(c)),A(c)}function _(r,e){if(!e)return r;const d={url:e.url,description:e.description};switch(e.position){case"first":return[d,...r];case"last":return[...r,d];case"replace":return[d];default:return r}}export{se as getOperation,ee as isPayloadSample,_ as mergeInMockServer};
@@ -34,6 +34,7 @@ type OAuth2ExtraCall = HAR.Request & {
34
34
  clientId?: string;
35
35
  };
36
36
  export declare function getDataRequest(exampleValue: any, properties: any): boolean | any;
37
+ export declare function objectToHarParams(obj: GenericObject, parentKey?: string): HAR.Param[];
37
38
  export declare function isDefined<T>(arg?: T): arg is T;
38
39
  export declare function capitalizeFirst(str: string): string;
39
40
  export {};