@redocly/openapi-docs 3.14.0-next.4 → 3.14.0-next.6

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.
@@ -1,18 +1,18 @@
1
- import{jsx as e,jsxs as p,Fragment as E}from"react/jsx-runtime";import{memo as T,useMemo as k}from"react";import{useAtomValue as S}from"jotai";import{LinkIcon as L}from"@redocly/theme/icons/LinkIcon/LinkIcon";import{RecursiveLabel as h,Tag as x,AccessLabel as j,RequiredLabel as q,StyledBadge as A}from"../common/index.js";import{ExternalDocumentation as C}from"../ExternalDocumentation/index.js";import{Markdown as M}from"../Markdown/index.js";import{FieldDetail as l}from"./FieldDetail.js";import{Extensions as R}from"./Extensions.js";import{EnumValues as V}from"./EnumValues.js";import{Examples as $,getSerializedValue as N}from"./Examples.js";import{globalOptionsAtom as _}from"../../jotai/store.js";import{SchemaTypeInfo as i}from"./SchemaTypeInfo.js";import{LinkToField as B}from"../common/LinkToField.js";import{Pattern as I}from"./Pattern.js";import{getAccessModeLabelText as O}from"../RenderHook/index.js";import{useTranslate as G}from"../../hooks/index.js";import{styled as n}from"../../styled-components.js";function H({field:t,renderDiscriminatorSwitch:v,deepLink:m,fieldParentsName:y=[]}){const a=G(),{hidePropertiesPrefix:g,hideSchemaTitles:b}=S(_),{schema:r,description:w,example:c,deprecated:D,examples:s,kind:d,required:F,name:f}=t,P=t.in==="header",z=k(()=>{if(c!==void 0||s!==void 0){if(s!==void 0)return e($,{field:t});{const o=!!t.in;return e(l,{label:`${a("openapi.example","Example")}:`,value:N(t,t.example),raw:o})}}else return null},[c,s,t,a]),u=O(t.schema);return p(E,{children:[p(J,{children:[f&&p(Q,{children:[m&&e(B,{to:m}),!g&&y.map(o=>o+".\u200B"),e(U,{className:"schema-name",children:f})]}),e(i,{type:r.typePrefix+r.displayType}),e(i,{type:r.displayFormat&&`(${r.displayFormat})`}),e(i,{type:r.contentEncoding}),e(i,{type:r.title&&!b?`(${r.title})`:""}),r.constraints?.map(o=>e(i,{type:o},o)),D&&e(A,{deprecated:!0,children:a("openapi.badges.deprecated","Deprecated")}),e(I,{pattern:r.pattern}),d==="additionalProperties"&&e(x,{children:a("openapi.additionalProperties","additional property")}),d==="patternProperties"&&e(x,{children:a("openapi.patternProperties","pattern property")}),u&&e(j,{children:u}),F&&e(q,{children:a("openapi.required","required")}),r.isCircular&&e(h,{children:a("openapi.recursive","Recursive")})]}),r.isComplex&&e(h,{children:a("openapi.complex","Complex")}),e(K,{source:w}),e(l,{raw:P,type:"default",label:a("openapi.default","Default"),value:r.default}),e(V,{type:r.type,values:r["x-enumDescriptions"]||r.enum}),z,e(R,{extensions:{...t.extensions,...r.extensions}}),r.externalDocs&&e(C,{externalDocs:r.externalDocs,compact:!0}),v?.(),e(l,{label:a("openapi.value","Value"),value:t.const||void 0})]})}const ue=T(H),J=n.div`
1
+ import{jsx as e,jsxs as p,Fragment as E}from"react/jsx-runtime";import{memo as S,useMemo as k}from"react";import{useAtomValue as L}from"jotai";import{LinkIcon as j}from"@redocly/theme/icons/LinkIcon/LinkIcon";import{RecursiveLabel as h,Tag as x,AccessLabel as q,RequiredLabel as A,StyledBadge as C}from"../common/index.js";import{ExternalDocumentation as M}from"../ExternalDocumentation/index.js";import{Markdown as R}from"../Markdown/index.js";import{FieldDetail as l}from"./FieldDetail.js";import{Extensions as V}from"./Extensions.js";import{EnumValues as $}from"./EnumValues.js";import{Examples as N,getSerializedValue as O}from"./Examples.js";import{globalOptionsAtom as _}from"../../jotai/store.js";import{SchemaTypeInfo as i}from"./SchemaTypeInfo.js";import{LinkToField as B}from"../common/LinkToField.js";import{Pattern as I}from"./Pattern.js";import{getAccessModeLabelText as H}from"../RenderHook/index.js";import{useTranslate as G}from"../../hooks/index.js";import{styled as n}from"../../styled-components.js";function J({field:t,renderDiscriminatorSwitch:y,deepLink:m,fieldParentsName:v=[]}){const a=G(),{hidePropertiesPrefix:g,hideSchemaTitles:b}=L(_),{schema:r,description:w,example:c,deprecated:D,examples:s,kind:d,required:F,name:f}=t,P=t.in==="header",T=r.oneOfType||r.rawSchema?.allOf?.[0],z=k(()=>{if(c!==void 0||s!==void 0){if(s!==void 0)return e(N,{field:t});{const o=!!t.in;return e(l,{label:`${a("openapi.example","Example")}:`,value:O(t,t.example),raw:o})}}else return null},[c,s,t,a]),u=H(t.schema);return p(E,{children:[p(K,{children:[f&&p(U,{children:[m&&e(B,{to:m}),!g&&v.map(o=>o+".\u200B"),e(W,{className:"schema-name",children:f})]}),e(i,{type:r.typePrefix+r.displayType}),e(i,{type:r.displayFormat&&`(${r.displayFormat})`}),e(i,{type:r.contentEncoding}),e(i,{type:r.title&&!b?`(${r.title})`:""}),r.constraints?.map(o=>e(i,{type:o},o)),D&&e(C,{deprecated:!0,children:a("openapi.badges.deprecated","Deprecated")}),e(I,{pattern:r.pattern}),d==="additionalProperties"&&e(x,{children:a("openapi.additionalProperties","additional property")}),d==="patternProperties"&&e(x,{children:a("openapi.patternProperties","pattern property")}),u&&e(q,{children:u}),F&&e(A,{children:a("openapi.required","required")}),r.isCircular&&e(h,{children:a("openapi.recursive","Recursive")})]}),r.isComplex&&e(h,{children:a("openapi.complex","Complex")}),!T&&e(Q,{source:w}),e(l,{raw:P,type:"default",label:a("openapi.default","Default"),value:r.default}),e($,{type:r.type,values:r["x-enumDescriptions"]||r.enum}),z,e(V,{extensions:{...t.extensions,...r.extensions}}),r.externalDocs&&e(M,{externalDocs:r.externalDocs,compact:!0}),y?.(),e(l,{label:a("openapi.value","Value"),value:t.const||void 0})]})}const he=S(J),K=n.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
- `,K=n(M)`
8
+ `,Q=n(R)`
9
9
  font-size: var(--font-size-base);
10
10
  line-height: var(--line-height-base);
11
11
 
12
12
  article p:last-child {
13
13
  margin-bottom: 0;
14
14
  }
15
- `,Q=n.span`
15
+ `,U=n.span`
16
16
  position: relative;
17
17
  font-family: var(--font-family-monospaced);
18
18
  line-height: var(--line-height-base);
@@ -24,16 +24,16 @@ import{jsx as e,jsxs as p,Fragment as E}from"react/jsx-runtime";import{memo as T
24
24
  white-space: pre-wrap;
25
25
 
26
26
  :hover {
27
- ${L} {
27
+ ${j} {
28
28
  opacity: 1;
29
29
  visibility: visible;
30
30
  background-color: var(--bg-color);
31
31
  }
32
32
  }
33
- `,U=n.span`
33
+ `,W=n.span`
34
34
  font-family: var(--font-family-monospaced);
35
35
  font-weight: var(--font-weight-semibold);
36
36
  font-size: var(--schemas-property-name-font-size);
37
37
  line-height: var(--schemas-property-name-line-height);
38
38
  color: var(--text-color-primary);
39
- `;export{ue as FieldDetails};
39
+ `;export{he as FieldDetails};
@@ -1,3 +1,3 @@
1
- import{jsx as e,jsxs as s,Fragment as v}from"react/jsx-runtime";import{memo as P,useMemo as j}from"react";import{useAtomValue as k}from"jotai";import{Row as y}from"../common/index.js";import{Title as A}from"../common/OperationItemTitle.js";import{LinkToField as N}from"../common/LinkToField.js";import{makeDeepLink as C}from"../../services/index.js";import{Description as D}from"../OperationItem/Description.js";import{Security as E}from"../Security/index.js";import{ExpandAllButton as M}from"../ExpandAllButton/index.js";import{RequestParameters as T}from"../RequestParameters/index.js";import{activeMimeNameAtom as b}from"../../jotai/app.js";import{getActiveMediaType as w}from"../../models/mediaContent.js";import{styled as F}from"../../styled-components.js";import{Extensions as _}from"../common/Extensions.js";function I({operation:{id:r,description:m,externalDocs:n,parameters:i,requestBody:o,pointer:l,security:u,extensions:a,callbackId:f},title:d,translate:h,onPanelToggle:x}){const p=k(b),g=j(()=>{const c=i.some(({schema:t})=>!t.isPrimitive&&!t.isCircular);if(!o?.content||c)return c;const{schema:q}=w(o.content,p)||{};return q?.fields?.some(({schema:t})=>!t.isPrimitive&&!t.isCircular)},[p,i,o?.content]),R=Object.keys(a||{}).length>0;return s(v,{children:[e(y,{children:s(L,{children:[s(A,{children:[r&&e(N,{to:C(r,"request")}),d||h?.("openapi.request","Request"),g&&e(M,{operationPointer:l,type:"request",onPanelToggle:x})]}),e(D,{description:m||n?m:void 0,externalDocs:n}),R&&e(_,{extensions:a}),e(E,{securities:u})]})}),e(T,{parameters:i,body:o,operationId:r,callbackId:f})]})}const L=F.div`
1
+ import{jsx as e,jsxs as i,Fragment as v}from"react/jsx-runtime";import{memo as A,useMemo as P}from"react";import{useAtomValue as R}from"jotai";import{Row as q}from"../common/index.js";import{Title as D}from"../common/OperationItemTitle.js";import{LinkToField as E}from"../common/LinkToField.js";import{makeDeepLink as F}from"../../services/index.js";import{Description as M}from"../OperationItem/Description.js";import{Security as N}from"../Security/index.js";import{hasNestedFields as T}from"../../utils/index.js";import{ExpandAllButton as b}from"../ExpandAllButton/index.js";import{RequestParameters as w}from"../RequestParameters/index.js";import{activeMimeNameAtom as y}from"../../jotai/app.js";import{getActiveMediaType as C}from"../../models/mediaContent.js";import{styled as _}from"../../styled-components.js";import{Extensions as I}from"../common/Extensions.js";function L({operation:{id:o,description:m,externalDocs:n,parameters:r,requestBody:t,pointer:l,security:f,extensions:s,callbackId:u},title:d,translate:h,onPanelToggle:x}){const a=R(y),g=P(()=>{const p=r.some(({schema:c})=>!c.isPrimitive&&!c.isCircular);if(!t?.content||p)return p;const{schema:k}=C(t.content,a)||{};return T(k)},[a,r,t?.content]),j=Object.keys(s||{}).length>0;return i(v,{children:[e(q,{children:i(H,{children:[i(D,{children:[o&&e(E,{to:F(o,"request")}),d||h?.("openapi.request","Request"),g&&e(b,{operationPointer:l,type:"request",onPanelToggle:x})]}),e(M,{description:m||n?m:void 0,externalDocs:n}),j&&e(I,{extensions:s}),e(N,{securities:f})]})}),e(w,{parameters:r,body:t,operationId:o,callbackId:u})]})}const H=_.div`
2
2
  width: 100%;
3
- `,ee=P(I);export{ee as RequestDetails};
3
+ `,te=A(L);export{te as RequestDetails};
@@ -1,4 +1,4 @@
1
- import{jsx as n,jsxs as a,Fragment as A}from"react/jsx-runtime";import{memo as L,useMemo as j}from"react";import{useLocation as w}from"react-router-dom";import{useAtomValue as C}from"jotai";import{Tabs as M,useTabsState as F}from"../Tabs/index.js";import{ResponseDetails as P}from"./ResponseDetails.js";import{makeDeepLink as R}from"../../services/index.js";import{Row as _,StyledTitle as B}from"./styled.js";import{LinkToField as D}from"../common/LinkToField.js";import{pathIncludesLink as f}from"../../utils/index.js";import{ExpandAllButton as E}from"../ExpandAllButton/index.js";import{useTranslate as N}from"../../hooks/index.js";import{getActiveMediaType as $}from"../../models/index.js";import{activeMimeNameAtom as I}from"../../jotai/app.js";import{styled as O}from"../../styled-components.js";const oe=L(({responses:i,renderTitle:d,operationId:s,operationPointer:u,activeResponseTab:m,onTabChange:T,callbackId:h,onPanelToggle:b})=>{const p=w(),g=N(),c=C(I),r=i.map(({code:e})=>({key:e,title:e})),k=r.find(({key:e})=>e===m||f(p,s)&&f(p,`c=${e}`)),{activeTab:x,handleTabChange:y}=F({tabs:r,defaultTab:k?.key,onChange:T}),o=r.find(e=>e.key===(m||x)),t=i.find(e=>e.code===o?.key),v=j(()=>{if(!t?.content)return!1;const{schema:e}=$(t?.content,c)||{};return e?.fields?.some(({schema:l})=>!l.isPrimitive&&!l.isCircular)},[c,t?.content]);return o?a(A,{children:[a(S,{children:[d?.(o)||a(B,{children:[n(D,{to:R(s,`response&c=${o.key}`)}),g("openapi.responses","Responses")]}),n(M,{tabs:r,activeTab:o,onChange:y}),v&&n(E,{type:"response",operationPointer:u,onPanelToggle:b})]}),t?n("div",{children:n(P,{response:t,operationId:s,callbackId:h})},t.code):null]}):null}),S=O(_)`
1
+ import{jsx as n,jsxs as a,Fragment as v}from"react/jsx-runtime";import{memo as A,useMemo as L}from"react";import{useLocation as j}from"react-router-dom";import{useAtomValue as w}from"jotai";import{Tabs as F,useTabsState as M}from"../Tabs/index.js";import{ResponseDetails as C}from"./ResponseDetails.js";import{makeDeepLink as N}from"../../services/index.js";import{Row as R,StyledTitle as _}from"./styled.js";import{LinkToField as B}from"../common/LinkToField.js";import{pathIncludesLink as c,hasNestedFields as D}from"../../utils/index.js";import{ExpandAllButton as E}from"../ExpandAllButton/index.js";import{useTranslate as P}from"../../hooks/index.js";import{getActiveMediaType as S}from"../../models/index.js";import{activeMimeNameAtom as $}from"../../jotai/app.js";import{styled as I}from"../../styled-components.js";const oe=A(({responses:i,renderTitle:f,operationId:s,operationPointer:d,activeResponseTab:m,onTabChange:u,callbackId:h,onPanelToggle:T})=>{const p=j(),b=P(),l=w($),r=i.map(({code:e})=>({key:e,title:e})),g=r.find(({key:e})=>e===m||c(p,s)&&c(p,`c=${e}`)),{activeTab:k,handleTabChange:x}=M({tabs:r,defaultTab:g?.key,onChange:u}),o=r.find(e=>e.key===(m||k)),t=i.find(e=>e.code===o?.key),y=L(()=>{if(!t?.content)return!1;const{schema:e}=S(t?.content,l)||{};return D(e)},[l,t?.content]);return o?a(v,{children:[a(O,{children:[f?.(o)||a(_,{children:[n(B,{to:N(s,`response&c=${o.key}`)}),b("openapi.responses","Responses")]}),n(F,{tabs:r,activeTab:o,onChange:x}),y&&n(E,{type:"response",operationPointer:d,onPanelToggle:T})]}),t?n("div",{children:n(C,{response:t,operationId:s,callbackId:h})},t.code):null]}):null}),O=I(R)`
2
2
  flex-wrap: wrap;
3
3
  gap: var(--spacing-unit);
4
4
  `;export{oe as OperationResponseList};
@@ -0,0 +1,2 @@
1
+ import type { SchemaModel } from 'src/models/index.js';
2
+ export declare function hasNestedFields(schema?: SchemaModel): boolean;
@@ -0,0 +1 @@
1
+ function r(e){return e?[...e.fields||[],...e.oneOf?.flatMap(i=>i.fields||[])||[]].some(({schema:i})=>!i.isPrimitive&&!i.isCircular):!1}export{r as hasNestedFields};
@@ -20,5 +20,6 @@ export * from './queryString.js';
20
20
  export * from './isMobile.js';
21
21
  export * from './replaceVariables.js';
22
22
  export * from './areArraysEqual.js';
23
+ export * from './hasNestedFields.js';
23
24
  export * from './configure-helpers.js';
24
25
  export * from './telemetry.js';
@@ -1 +1 @@
1
- export*from"./JsonPointer.js";export*from"./openapi.js";export*from"./helpers.js";export*from"./dom.js";export*from"./debug.js";export*from"./sort.js";export*from"./argValuesHelpers.js";export*from"./theme-helpers.js";export*from"./debounce.js";export*from"./security-details.js";export*from"./session-storage.js";export*from"./local-storage.js";export*from"./parameters.js";export*from"./string.js";export*from"./test-utils.js";export*from"./compose.js";export*from"./saveTextBeforeHeading.js";export*from"./path.js";export*from"./queryString.js";export*from"./isMobile.js";export*from"./replaceVariables.js";export*from"./areArraysEqual.js";export*from"./configure-helpers.js";export*from"./telemetry.js";
1
+ export*from"./JsonPointer.js";export*from"./openapi.js";export*from"./helpers.js";export*from"./dom.js";export*from"./debug.js";export*from"./sort.js";export*from"./argValuesHelpers.js";export*from"./theme-helpers.js";export*from"./debounce.js";export*from"./security-details.js";export*from"./session-storage.js";export*from"./local-storage.js";export*from"./parameters.js";export*from"./string.js";export*from"./test-utils.js";export*from"./compose.js";export*from"./saveTextBeforeHeading.js";export*from"./path.js";export*from"./queryString.js";export*from"./isMobile.js";export*from"./replaceVariables.js";export*from"./areArraysEqual.js";export*from"./hasNestedFields.js";export*from"./configure-helpers.js";export*from"./telemetry.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.14.0-next.4",
3
+ "version": "3.14.0-next.6",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@markdoc/markdoc": "0.5.2",
24
- "@redocly/openapi-core": "2.1.0",
24
+ "@redocly/openapi-core": "2.1.5",
25
25
  "deepmerge": "^4.2.2",
26
26
  "dompurify": "3.2.6",
27
27
  "fast-deep-equal": "^3.1.3",
@@ -37,7 +37,7 @@
37
37
  "util": "~0.12.5",
38
38
  "web-vitals": "3.3.1",
39
39
  "@redocly/config": "0.31.0",
40
- "@redocly/replay": "0.17.0-next.4"
40
+ "@redocly/replay": "0.17.0-next.6"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@jest/globals": "29.5.0",
@@ -74,8 +74,8 @@
74
74
  "tsx": "4.20.3",
75
75
  "typescript": "5.6.2",
76
76
  "url": "~0.11.0",
77
- "vite": "^6.3.5",
78
- "@redocly/theme": "0.58.0-next.3"
77
+ "vite": "6.3.6",
78
+ "@redocly/theme": "0.58.0-next.4"
79
79
  },
80
80
  "scripts": {
81
81
  "start": "npm run copy-highlight-hook && vite",