+
)
diff --git a/src/core/plugins/json-schema-2020-12/components/keywords/Not/_not.scss b/src/core/plugins/json-schema-2020-12/components/keywords/Not/_not.scss
deleted file mode 100644
index 35c5a35f..00000000
--- a/src/core/plugins/json-schema-2020-12/components/keywords/Not/_not.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-.json-schema-2020-12 {
- &__not {
- .json-schema-2020-12-core-keyword--not {
- @extend .json-schema-2020-12-core-keyword--allOf;
- }
- }
-}
-
-
-
diff --git a/src/core/plugins/json-schema-2020-12/components/keywords/OneOf.jsx b/src/core/plugins/json-schema-2020-12/components/keywords/OneOf.jsx
new file mode 100644
index 00000000..7ec08e0b
--- /dev/null
+++ b/src/core/plugins/json-schema-2020-12/components/keywords/OneOf.jsx
@@ -0,0 +1,68 @@
+/**
+ * @prettier
+ */
+import React, { useCallback, useState } from "react"
+
+import { schema } from "../../prop-types"
+import { useFn, useComponent, useIsExpandedDeeply } from "../../hooks"
+import { JSONSchemaDeepExpansionContext } from "../../context"
+
+const OneOf = ({ schema }) => {
+ const oneOf = schema?.oneOf || []
+
+ if (!Array.isArray(oneOf) || oneOf.length === 0) {
+ return null
+ }
+
+ const fn = useFn()
+ const isExpandedDeeply = useIsExpandedDeeply()
+ const [expanded, setExpanded] = useState(isExpandedDeeply)
+ const [expandedDeeply, setExpandedDeeply] = useState(false)
+ const Accordion = useComponent("Accordion")
+ const ExpandDeepButton = useComponent("ExpandDeepButton")
+ const JSONSchema = useComponent("JSONSchema")
+ const KeywordType = useComponent("KeywordType")
+
+ /**
+ * Event handlers.
+ */
+ const handleExpansion = useCallback(() => {
+ setExpanded((prev) => !prev)
+ }, [])
+ const handleExpansionDeep = useCallback((e, expandedDeepNew) => {
+ setExpanded(expandedDeepNew)
+ setExpandedDeeply(expandedDeepNew)
+ }, [])
+
+ return (
+
+
+
+
+ One of
+
+
+
+
+ {expanded && (
+
+ {oneOf.map((schema, index) => (
+ -
+
+
+ ))}
+
+ )}
+
+
+ )
+}
+
+OneOf.propTypes = {
+ schema: schema.isRequired,
+}
+
+export default OneOf
diff --git a/src/core/plugins/json-schema-2020-12/components/keywords/OneOf/OneOf.jsx b/src/core/plugins/json-schema-2020-12/components/keywords/OneOf/OneOf.jsx
deleted file mode 100644
index e094153d..00000000
--- a/src/core/plugins/json-schema-2020-12/components/keywords/OneOf/OneOf.jsx
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * @prettier
- */
-import React, { useCallback, useState } from "react"
-
-import { schema } from "../../../prop-types"
-import { useFn, useComponent, useIsExpandedDeeply } from "../../../hooks"
-
-const OneOf = ({ schema }) => {
- const oneOf = schema?.oneOf || []
-
- if (!Array.isArray(oneOf) || oneOf.length === 0) {
- return null
- }
-
- const fn = useFn()
- const isExpandedDeeply = useIsExpandedDeeply()
- const [expanded, setExpanded] = useState(isExpandedDeeply)
- const Accordion = useComponent("Accordion")
- const JSONSchema = useComponent("JSONSchema")
-
- const handleExpansion = useCallback(() => {
- setExpanded((prev) => !prev)
- }, [])
-
- return (
-
-
-
- One of
-
-
- {fn.getType({ oneOf })}
-
-
- {expanded && (
-
- {oneOf.map((schema, index) => (
- -
-
-
- ))}
-
- )}
-
- )
-}
-
-OneOf.propTypes = {
- schema: schema.isRequired,
-}
-
-export default OneOf
diff --git a/src/core/plugins/json-schema-2020-12/components/keywords/OneOf/_one-of.scss b/src/core/plugins/json-schema-2020-12/components/keywords/OneOf/_one-of.scss
deleted file mode 100644
index 3b7c88af..00000000
--- a/src/core/plugins/json-schema-2020-12/components/keywords/OneOf/_one-of.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-.json-schema-2020-12 {
- &__oneOf {
- @extend .json-schema-2020-12__allOf;
- }
-
- &-core-keyword {
- &--oneOf {
- @extend .json-schema-2020-12-core-keyword--allOf;
- }
- }
-}
-
-
diff --git a/src/core/plugins/json-schema-2020-12/components/keywords/Then/Then.jsx b/src/core/plugins/json-schema-2020-12/components/keywords/Then.jsx
similarity index 57%
rename from src/core/plugins/json-schema-2020-12/components/keywords/Then/Then.jsx
rename to src/core/plugins/json-schema-2020-12/components/keywords/Then.jsx
index 5ae714fd..d06d2b8b 100644
--- a/src/core/plugins/json-schema-2020-12/components/keywords/Then/Then.jsx
+++ b/src/core/plugins/json-schema-2020-12/components/keywords/Then.jsx
@@ -3,21 +3,21 @@
*/
import React from "react"
-import { schema } from "../../../prop-types"
-import { useComponent } from "../../../hooks"
+import { schema } from "../../prop-types"
+import { useComponent } from "../../hooks"
const Then = ({ schema }) => {
if (!schema?.then) return null
const JSONSchema = useComponent("JSONSchema")
const name = (
-
+
Then
)
return (
-
+
)
diff --git a/src/core/plugins/json-schema-2020-12/components/keywords/Then/_then.scss b/src/core/plugins/json-schema-2020-12/components/keywords/Then/_then.scss
deleted file mode 100644
index 4acd067c..00000000
--- a/src/core/plugins/json-schema-2020-12/components/keywords/Then/_then.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-.json-schema-2020-12 {
- &__then {
- .json-schema-2020-12-core-keyword--then {
- @extend .json-schema-2020-12-core-keyword--allOf;
- }
- }
-}
-
-
-
diff --git a/src/core/plugins/json-schema-2020-12/components/keywords/Title/_title.scss b/src/core/plugins/json-schema-2020-12/components/keywords/Title/_title.scss
index 1b8828fd..45f1cb98 100644
--- a/src/core/plugins/json-schema-2020-12/components/keywords/Title/_title.scss
+++ b/src/core/plugins/json-schema-2020-12/components/keywords/Title/_title.scss
@@ -4,13 +4,11 @@
display: inline-block;
font-weight: bold;
- & .json-schema-2020-12-core-keyword {
+ & .json-schema-2020-12-keyword__name {
margin: 0;
}
}
-
-
&-property {
margin: 7px 0;
diff --git a/src/core/plugins/json-schema-2020-12/components/keywords/_all.scss b/src/core/plugins/json-schema-2020-12/components/keywords/_all.scss
new file mode 100644
index 00000000..f90fa61f
--- /dev/null
+++ b/src/core/plugins/json-schema-2020-12/components/keywords/_all.scss
@@ -0,0 +1,51 @@
+.json-schema-2020-12-keyword {
+ margin: 5px 0 5px 0;
+
+ & > ul {
+ @include expansion-border;
+ padding: 0;
+ }
+
+ &__name {
+ font-size: 12px;
+ margin-left: 20px;
+ font-weight: bold;
+
+ &--primary {
+ color: $text-code-default-font-color;
+ font-style: normal;
+ }
+
+ &--secondary {
+ color: #6b6b6b;
+ font-style: italic;
+ }
+ }
+
+ &__value {
+ color: #6b6b6b;
+ font-style: italic;
+ font-size: 12px;
+ font-weight: normal;
+
+ &--primary {
+ color: $text-code-default-font-color;
+ font-style: normal;
+ }
+
+ &--secondary {
+ color: #6b6b6b;
+ font-style: italic;
+ }
+ }
+}
+.json-schema-2020-12-keyword__name--secondary + .json-schema-2020-12-keyword__value--secondary::before {
+ content: '='
+}
+
+@import './$vocabulary/$vocabulary';
+@import './Type/type';
+@import './Format/format';
+@import './Description/description';
+@import './Title/title';
+@import './Properties/properties';
diff --git a/src/core/plugins/json-schema-2020-12/hoc.jsx b/src/core/plugins/json-schema-2020-12/hoc.jsx
index e38ebaad..d65a8c63 100644
--- a/src/core/plugins/json-schema-2020-12/hoc.jsx
+++ b/src/core/plugins/json-schema-2020-12/hoc.jsx
@@ -11,16 +11,16 @@ import Keyword$anchor from "./components/keywords/$anchor"
import Keyword$dynamicAnchor from "./components/keywords/$dynamicAnchor"
import Keyword$ref from "./components/keywords/$ref"
import Keyword$dynamicRef from "./components/keywords/$dynamicRef"
-import Keyword$defs from "./components/keywords/$defs/$defs"
+import Keyword$defs from "./components/keywords/$defs"
import Keyword$comment from "./components/keywords/$comment"
-import KeywordAllOf from "./components/keywords/AllOf/AllOf"
-import KeywordAnyOf from "./components/keywords/AnyOf/AnyOf"
-import KeywordOneOf from "./components/keywords/OneOf/OneOf"
-import KeywordNot from "./components/keywords/Not/Not"
-import KeywordIf from "./components/keywords/If/If"
-import KeywordThen from "./components/keywords/Then/Then"
-import KeywordElse from "./components/keywords/Else/Else"
-import KeywordDependentSchemas from "./components/keywords/DependentSchemas/DependentSchemas"
+import KeywordAllOf from "./components/keywords/AllOf"
+import KeywordAnyOf from "./components/keywords/AnyOf"
+import KeywordOneOf from "./components/keywords/OneOf"
+import KeywordNot from "./components/keywords/Not"
+import KeywordIf from "./components/keywords/If"
+import KeywordThen from "./components/keywords/Then"
+import KeywordElse from "./components/keywords/Else"
+import KeywordDependentSchemas from "./components/keywords/DependentSchemas"
import KeywordProperties from "./components/keywords/Properties/Properties"
import KeywordType from "./components/keywords/Type/Type"
import KeywordFormat from "./components/keywords/Format/Format"
diff --git a/src/core/plugins/json-schema-2020-12/index.js b/src/core/plugins/json-schema-2020-12/index.js
index 81d605b3..8358c4af 100644
--- a/src/core/plugins/json-schema-2020-12/index.js
+++ b/src/core/plugins/json-schema-2020-12/index.js
@@ -10,16 +10,16 @@ import Keyword$anchor from "./components/keywords/$anchor"
import Keyword$dynamicAnchor from "./components/keywords/$dynamicAnchor"
import Keyword$ref from "./components/keywords/$ref"
import Keyword$dynamicRef from "./components/keywords/$dynamicRef"
-import Keyword$defs from "./components/keywords/$defs/$defs"
+import Keyword$defs from "./components/keywords/$defs"
import Keyword$comment from "./components/keywords/$comment"
-import KeywordAllOf from "./components/keywords/AllOf/AllOf"
-import KeywordAnyOf from "./components/keywords/AnyOf/AnyOf"
-import KeywordOneOf from "./components/keywords/OneOf/OneOf"
-import KeywordNot from "./components/keywords/Not/Not"
-import KeywordIf from "./components/keywords/If/If"
-import KeywordThen from "./components/keywords/Then/Then"
-import KeywordElse from "./components/keywords/Else/Else"
-import KeywordDependentSchemas from "./components/keywords/DependentSchemas/DependentSchemas"
+import KeywordAllOf from "./components/keywords/AllOf"
+import KeywordAnyOf from "./components/keywords/AnyOf"
+import KeywordOneOf from "./components/keywords/OneOf"
+import KeywordNot from "./components/keywords/Not"
+import KeywordIf from "./components/keywords/If"
+import KeywordThen from "./components/keywords/Then"
+import KeywordElse from "./components/keywords/Else"
+import KeywordDependentSchemas from "./components/keywords/DependentSchemas"
import KeywordType from "./components/keywords/Type/Type"
import KeywordFormat from "./components/keywords/Format/Format"
import KeywordTitle from "./components/keywords/Title/Title"
diff --git a/src/core/plugins/oas31/wrap-components/json-schema-2020-12-keyword-description.jsx b/src/core/plugins/oas31/wrap-components/json-schema-2020-12-keyword-description.jsx
index b16d41df..87338757 100644
--- a/src/core/plugins/oas31/wrap-components/json-schema-2020-12-keyword-description.jsx
+++ b/src/core/plugins/oas31/wrap-components/json-schema-2020-12-keyword-description.jsx
@@ -11,8 +11,10 @@ const JSONSchema202012KeywordDescriptionWrapper =
const MarkDown = getComponent("Markdown")
return (
-