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
+}