diff --git a/packages/elements-core/package.json b/packages/elements-core/package.json index b0ca5afd0..9ef1ded8b 100644 --- a/packages/elements-core/package.json +++ b/packages/elements-core/package.json @@ -1,6 +1,6 @@ { "name": "@stoplight/elements-core", - "version": "9.0.6", + "version": "9.0.7", "sideEffects": [ "web-components.min.js", "src/web-components/**", diff --git a/packages/elements-core/src/components/Docs/Model/Model.spec.tsx b/packages/elements-core/src/components/Docs/Model/Model.spec.tsx index 6c3a39c5e..ad0f877d5 100644 --- a/packages/elements-core/src/components/Docs/Model/Model.spec.tsx +++ b/packages/elements-core/src/components/Docs/Model/Model.spec.tsx @@ -135,6 +135,21 @@ describe('Model', () => { expect(textboxDescription).toHaveTextContent('example schema description'); }); + it('displays child description at top of doc for allOf-inheriting objects', async () => { + const desc = 'child schema description'; + // allOf-inheriting properties from parent but having its own description + const allOfSchema: JSONSchema7 = { + allOf: [exampleSchema], + description: desc, + }; + render(); + const description = screen.queryAllByText(desc); + const textboxDescription = screen.getByRole('textbox'); + + expect(description).toHaveLength(1); + expect(textboxDescription).toHaveTextContent(desc); + }); + it('does not display description at top of doc for non-objects', async () => { render(); const description = screen.queryByRole('textbox'); diff --git a/packages/elements-core/src/components/Docs/Model/Model.tsx b/packages/elements-core/src/components/Docs/Model/Model.tsx index 7024fcaa1..2d81016b0 100644 --- a/packages/elements-core/src/components/Docs/Model/Model.tsx +++ b/packages/elements-core/src/components/Docs/Model/Model.tsx @@ -93,12 +93,13 @@ const ModelComponent: React.FC = ({ const description = ( - {data.description && data.type === 'object' && ( - - - - - )} + {data.description && + (data.type === 'object' || (data.allOf || []).some(s => (s as JSONSchema7).type === 'object')) && ( + + + + + )} diff --git a/packages/elements-dev-portal/package.json b/packages/elements-dev-portal/package.json index 7118560ff..3cde4b07e 100644 --- a/packages/elements-dev-portal/package.json +++ b/packages/elements-dev-portal/package.json @@ -1,6 +1,6 @@ { "name": "@stoplight/elements-dev-portal", - "version": "3.0.7", + "version": "3.0.8", "description": "UI components for composing beautiful developer documentation.", "keywords": [], "sideEffects": [ @@ -66,7 +66,7 @@ "dependencies": { "@stoplight/markdown-viewer": "^5.7.1", "@stoplight/mosaic": "^1.53.4", - "@stoplight/elements-core": "~9.0.6", + "@stoplight/elements-core": "~9.0.7", "@stoplight/path": "^1.3.2", "@stoplight/types": "^14.0.0", "classnames": "^2.2.6", diff --git a/packages/elements/package.json b/packages/elements/package.json index 20d6135b2..b5f7baf7e 100644 --- a/packages/elements/package.json +++ b/packages/elements/package.json @@ -1,6 +1,6 @@ { "name": "@stoplight/elements", - "version": "9.0.6", + "version": "9.0.7", "description": "UI components for composing beautiful developer documentation.", "keywords": [], "sideEffects": [ @@ -63,7 +63,7 @@ ] }, "dependencies": { - "@stoplight/elements-core": "~9.0.4", + "@stoplight/elements-core": "~9.0.7", "@stoplight/http-spec": "^7.1.0", "@stoplight/json": "^3.18.1", "@stoplight/mosaic": "^1.53.4", @@ -109,4 +109,4 @@ "release": { "extends": "@stoplight/scripts/release" } -} \ No newline at end of file +}