@@ -61,10 +56,11 @@ export const EditorPane = ({
setValueString={setValueString}
/>
-
+
{value && editorKey === "schema" && editorView === "viewer" ? (
-
+
+
) : null}
{/* {editorKey === "testValue" && editorView === "viewer" ? (
)}
diff --git a/components/editor/json-editor.tsx b/components/editor/json-editor.tsx
index c06d766..614e452 100644
--- a/components/editor/json-editor.tsx
+++ b/components/editor/json-editor.tsx
@@ -6,7 +6,6 @@ import {
bracketMatching,
foldGutter,
indentOnInput,
- syntaxHighlighting,
} from "@codemirror/language"
import { lintGutter } from "@codemirror/lint"
import { EditorState } from "@codemirror/state"
@@ -16,16 +15,13 @@ import CodeMirror, {
ReactCodeMirrorRef,
} from "@uiw/react-codemirror"
import { jsonSchema, updateSchema } from "codemirror-json-schema"
+// @ts-expect-error
import { json5Schema } from "codemirror-json-schema/json5"
+// @ts-expect-error
import { yamlSchema } from "codemirror-json-schema/yaml"
// import { debounce } from "@/lib/utils"
-import {
- jsonDark,
- jsonDarkHighlightStyle,
- jsonDarkTheme,
- useTheme,
-} from "./theme"
+import { jsonDarkTheme, useTheme } from "./theme"
/**
* none of these are required for json4 or 5
diff --git a/components/editor/json-schema-editor.tsx b/components/editor/json-schema-editor.tsx
index 81b31cf..e907392 100644
--- a/components/editor/json-schema-editor.tsx
+++ b/components/editor/json-schema-editor.tsx
@@ -10,7 +10,6 @@ export const JSONSchemaEditor = ({ url }: { url: string | null }) => {
const loadIndex = useMainStore((state) => state.loadIndex)
const setValueString = useMainStore((state) => state.setSchemaString)
- const schemaInfo = useMainStore((state) => state.selectedSchema)
const value = useMainStore((state) => state.schemaString)
const setSelectedSchema = useMainStore(
(state) => state.setSelectedSchemaFromUrl
@@ -32,7 +31,6 @@ export const JSONSchemaEditor = ({ url }: { url: string | null }) => {
heading={"Schema"}
// json schema spec v? allow spec selection
schema={schemaSpec}
- schemaInfo={schemaInfo}
setValueString={setValueString}
value={value}
/>
diff --git a/components/editor/menu.tsx b/components/editor/menu.tsx
index 46cf074..8d5a574 100644
--- a/components/editor/menu.tsx
+++ b/components/editor/menu.tsx
@@ -79,7 +79,7 @@ export const EditorMenu = ({
className="align-self-start m-1"
>
editor
-
viewer
+
docs
diff --git a/components/editor/schema-viewer.tsx b/components/editor/schema-viewer.tsx
index 8c357ec..6d549f5 100644
--- a/components/editor/schema-viewer.tsx
+++ b/components/editor/schema-viewer.tsx
@@ -1,7 +1,7 @@
import { useMainStore } from "@/store/main"
+import { JsonSchemaViewer } from "@stoplight/json-schema-viewer"
import { injectStyles } from "@stoplight/mosaic"
import { useTheme } from "next-themes"
-import { JsonSchemaViewer } from "@stoplight/json-schema-viewer"
export const SchemaViewer = () => {
const theme = useTheme()
@@ -10,7 +10,7 @@ export const SchemaViewer = () => {
injectStyles()
return (
-
+
{schemaInfo.label && (
{schemaInfo.label}
@@ -42,10 +42,8 @@ export const SchemaViewer = () => {
diff --git a/store/main.ts b/store/main.ts
index 8f45c88..0b1bc49 100644
--- a/store/main.ts
+++ b/store/main.ts
@@ -1,7 +1,7 @@
import { EditorView } from "codemirror"
import json5 from "json5"
import { JSONSchemaFaker } from "json-schema-faker"
-import { UseBoundStore, create } from "zustand"
+import { UseBoundStore, create, } from "zustand"
import {
PersistOptions,
createJSONStorage,
@@ -74,10 +74,17 @@ export type SchemaActions = {
getMode: (editorKey?: keyof SchemaState["editors"]) => JSONModes
fetchSchema: (
url: string
- ) => Promise<{ schemaString: string; schema: Record
}>
+ ) => Promise<
+ { schemaString: string; schema: Record } | undefined
+ >
}
-let persistOptions = {}
+let persistOptions: {
+ name: string,
+ storage?: PersistOptions["storage"]
+} = {
+ name: "jsonWorkBench",
+}
if (typeof window !== undefined) {
;async () => {
@@ -110,7 +117,7 @@ const initialState = {
}
export const useMainStore = create()<
- [["zustand/persist", unknown], ["zustand/devtools", never]]
+ [["zustand/persist", SchemaState], ["zustand/devtools", never]]
>(
persist(
devtools((set, get) => ({
@@ -130,13 +137,15 @@ export const useMainStore = create()<
return get().userSettings.mode
},
fakeValue: async () => {
- const value = await JSONSchemaFaker.resolve(get().schema)
- if(value) {
+ const value = await JSONSchemaFaker.resolve(get().schema!)
+ if (value) {
set({
- testValueString: serialize(get().getMode("testValue"), value),
+ testValueString: serialize(
+ get().getMode("testValue"),
+ value as Record
+ ),
})
}
-
},
// don't set pristine schema here to avoid triggering updates
setSchema: (schema: Record) => {
@@ -149,9 +158,11 @@ export const useMainStore = create()<
} catch (e) {
toast({
title: "Error setting schema",
+ // @ts-expect-error
description: e.message,
variant: "destructive",
})
+ // @ts-expect-error
set({ schemaError: e.message })
}
},
@@ -165,10 +176,12 @@ export const useMainStore = create()<
} catch (e) {
toast({
title: "Error parsing schema",
+ // @ts-expect-error
description: e.message,
variant: "destructive",
})
- set({ schemaError: e.message })
+ // @ts-expect-error
+ set({ schemaError: e!.message })
}
},
setTestValueString: (testValue) => {
@@ -221,6 +234,7 @@ export const useMainStore = create()<
// if there is a parsing or serialization error, do not update state
toast({
title: "Error changing mode",
+ // @ts-expect-error
description: e.message,
variant: "destructive",
})
@@ -250,6 +264,7 @@ export const useMainStore = create()<
} catch (e) {
toast({
title: "Error formatting editor",
+ // @ts-expect-error
description: e.message,
variant: "destructive",
})
@@ -272,13 +287,15 @@ export const useMainStore = create()<
} catch (e) {
toast({
title: "Error fetching schema",
+ // @ts-expect-error
description: e.message,
variant: "destructive",
})
-
+
return {
schemaString: "",
schema: {},
+ // @ts-expect-error
schemaError: e.message,
}
}
@@ -297,18 +314,26 @@ export const useMainStore = create()<
} catch (e) {
toast({
title: "Error fetching schema",
+ // @ts-expect-error
description: e.message,
variant: "destructive",
})
+ // @ts-expect-error
set({ schemaError: e.message })
}
},
setSelectedSchema: async (selectedSchema) => {
try {
let selected = selectedSchema
- const { schemaString: data, schema } = await get().fetchSchema(
- selectedSchema.value
- )
+ const result = await get().fetchSchema(selectedSchema.value)
+ if (!result) {
+ return void toast({
+ title: "Error loading schema",
+ description: "No schema found",
+ variant: "destructive",
+ })
+ }
+ const { schema, schemaString: data } = result
if (!selectedSchema.label) {
selected = {
label:
@@ -325,7 +350,7 @@ export const useMainStore = create()<
selectedSchema: selected as SchemaSelectorValue,
schemaError: undefined,
})
- if (typeof window !== "undefined") {
+ if (typeof window !== "undefined" && selectedSchema.value) {
// @ts-expect-error
const url = new URL(window.location)
url.searchParams.set("url", selectedSchema.value)
@@ -362,8 +387,10 @@ export const useMainStore = create()<
schema && schema["$schema"]
? (schema["$schema"] as string)
: "https://json-schema.org/draft/2020-12/schema"
- const { schema: schemaSpec } = await get().fetchSchema(schemaUrl)
- set({ schemaSpec })
+ const result = await get().fetchSchema(schemaUrl)
+ if (result) {
+ set({ schemaSpec: result.schema })
+ }
} catch (err) {
// @ts-expect-error
const errMessage = err?.message || err
From c7e4ac2e5d46c72c999c70e97bfd0a7953bd40de Mon Sep 17 00:00:00 2001
From: Rikki Schulte
Date: Sun, 28 Apr 2024 10:58:06 +0200
Subject: [PATCH 04/12] fix: attempt again
---
components/editor/editor-pane.tsx | 7 ++-----
package-lock.json | 15 +++++++++++----
package.json | 22 +++++++++++++++-------
store/main.ts | 29 +++++++++++++++++++++--------
4 files changed, 49 insertions(+), 24 deletions(-)
diff --git a/components/editor/editor-pane.tsx b/components/editor/editor-pane.tsx
index 5974158..e92239c 100644
--- a/components/editor/editor-pane.tsx
+++ b/components/editor/editor-pane.tsx
@@ -1,10 +1,9 @@
"use client"
-import dynamic from "next/dynamic"
import { SchemaState, useMainStore } from "@/store/main"
+
// import { JsonForms } from "@jsonforms/react"
// import { vanillaCells, vanillaRenderers, vanillaStyles } from "@jsonforms/vanilla-renderers"
-import { Provider as MosaicProvider } from "@stoplight/mosaic"
import { JSONModes } from "@/types/editor"
import { parse, serialize } from "@/lib/json"
@@ -58,9 +57,7 @@ export const EditorPane = ({
{value && editorKey === "schema" && editorView === "viewer" ? (
-
-
-
+
) : null}
{/* {editorKey === "testValue" && editorView === "viewer" ? (
=16.8"
}
},
+ "node_modules/@stoplight/json/node_modules/jsonc-parser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz",
+ "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w=="
+ },
"node_modules/@stoplight/lifecycle": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/@stoplight/lifecycle/-/lifecycle-2.3.3.tgz",
@@ -6147,9 +6154,9 @@
}
},
"node_modules/jsonc-parser": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz",
- "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w=="
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+ "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
},
"node_modules/jsonpath-plus": {
"version": "7.2.0",
diff --git a/package.json b/package.json
index aa8c342..a2e7deb 100644
--- a/package.json
+++ b/package.json
@@ -40,6 +40,7 @@
"@radix-ui/react-toggle-group": "^1.0.4",
"@stoplight/json-schema-viewer": "4.16.0",
"@stoplight/mosaic": "1.53.1",
+ "@stoplight/json": "3.21.0",
"@types/js-yaml": "^4.0.9",
"@uiw/codemirror-themes": "^4.21.20",
"@uiw/react-codemirror": "^4.21.20",
@@ -50,12 +51,13 @@
"idb-keyval": "^6.2.1",
"js-yaml": "^4.1.0",
"json5": "^2.2.3",
+ "jsonc-parser": "^3.2.1",
"lodash-es": "^4.17.21",
"lucide-react": "^0.105.0-alpha.4",
- "next": "^13.4.8",
- "next-themes": "^0.2.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
+ "next": "^13.5.6",
+ "next-themes": "^0.3.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
"react-resizable-panels": "^0.0.55",
"sharp": "^0.31.3",
"tailwind-merge": "^1.14.0",
@@ -67,9 +69,9 @@
"@ianvs/prettier-plugin-sort-imports": "^3.7.2",
"@tailwindcss/forms": "^0.5.7",
"@types/lodash-es": "^4.17.11",
- "@types/node": "^17.0.45",
- "@types/react": "^18.2.14",
- "@types/react-dom": "^18.2.6",
+ "@types/node": "^20.12.7",
+ "@types/react": "^18.3.1",
+ "@types/react-dom": "^18.3.1",
"@typescript-eslint/parser": "^5.61.0",
"autoprefixer": "^10.4.14",
"eslint": "^8.44.0",
@@ -82,5 +84,11 @@
"prettier": "^2.8.8",
"tailwindcss": "^3.3.2",
"typescript": "^4.9.5"
+ },
+ "overrides": {
+ "jsonc-parser": "^3.2.1",
+ "@stoplight/json": {
+ "jsonc-parser": "^3.2.1"
+ }
}
}
diff --git a/store/main.ts b/store/main.ts
index 0b1bc49..856dbc0 100644
--- a/store/main.ts
+++ b/store/main.ts
@@ -1,6 +1,5 @@
import { EditorView } from "codemirror"
import json5 from "json5"
-import { JSONSchemaFaker } from "json-schema-faker"
import { UseBoundStore, create, } from "zustand"
import {
PersistOptions,
@@ -137,15 +136,29 @@ export const useMainStore = create()<
return get().userSettings.mode
},
fakeValue: async () => {
- const value = await JSONSchemaFaker.resolve(get().schema!)
- if (value) {
- set({
- testValueString: serialize(
- get().getMode("testValue"),
- value as Record
- ),
+ try {
+ const { JSONSchemaFaker} = await import('json-schema-faker')
+ const value = await JSONSchemaFaker.resolve(get().schema!)
+ if (value) {
+ set({
+ testValueString: serialize(
+ get().getMode("testValue"),
+ value as Record
+ ),
+ })
+ }
+ }
+ catch (err) {
+ // @ts-expect-error
+ const errMessage = err?.message || err
+ set({ schemaError: errMessage })
+ toast({
+ title: "Error generating fake data",
+ description: errMessage,
+ variant: "destructive",
})
}
+
},
// don't set pristine schema here to avoid triggering updates
setSchema: (schema: Record) => {
From 8956e14884085c4d57ae2ca68f4e7719ac65ebe5 Mon Sep 17 00:00:00 2001
From: Rikki Schulte
Date: Sun, 28 Apr 2024 11:00:37 +0200
Subject: [PATCH 05/12] fix: attempt again
---
package-lock.json | 174 ++++++++++++++++++++++++++++++----------------
package.json | 8 +--
2 files changed, 118 insertions(+), 64 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 1ffacf7..7510428 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,7 +34,6 @@
"@radix-ui/react-toggle-group": "^1.0.4",
"@stoplight/json": "3.21.0",
"@stoplight/json-schema-viewer": "4.16.0",
- "@stoplight/mosaic": "1.53.1",
"@types/js-yaml": "^4.0.9",
"@uiw/codemirror-themes": "^4.21.20",
"@uiw/react-codemirror": "^4.21.20",
@@ -49,9 +48,9 @@
"lodash-es": "^4.17.21",
"lucide-react": "^0.105.0-alpha.4",
"next": "^13.5.6",
- "next-themes": "^0.2.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
+ "next-themes": "^0.3.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
"react-resizable-panels": "^0.0.55",
"sharp": "^0.31.3",
"tailwind-merge": "^1.14.0",
@@ -63,9 +62,9 @@
"@ianvs/prettier-plugin-sort-imports": "^3.7.2",
"@tailwindcss/forms": "^0.5.7",
"@types/lodash-es": "^4.17.11",
- "@types/node": "^17.0.45",
- "@types/react": "^18.2.14",
- "@types/react-dom": "^18.2.6",
+ "@types/node": "^20.12.7",
+ "@types/react": "^18.3.1",
+ "@types/react-dom": "^18.3.0",
"@typescript-eslint/parser": "^5.61.0",
"autoprefixer": "^10.4.14",
"eslint": "^8.44.0",
@@ -609,6 +608,7 @@
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz",
"integrity": "sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==",
"hasInstallScript": true,
+ "peer": true,
"engines": {
"node": ">=6"
}
@@ -618,6 +618,7 @@
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz",
"integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==",
"hasInstallScript": true,
+ "peer": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.5.2"
},
@@ -629,6 +630,7 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz",
"integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==",
+ "peer": true,
"dependencies": {
"prop-types": "^15.8.1"
},
@@ -791,7 +793,8 @@
"node_modules/@juggle/resize-observer": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz",
- "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA=="
+ "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==",
+ "peer": true
},
"node_modules/@lezer/common": {
"version": "1.2.1",
@@ -1863,6 +1866,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@react-hook/debounce/-/debounce-3.0.0.tgz",
"integrity": "sha512-ir/kPrSfAzY12Gre0sOHkZ2rkEmM4fS5M5zFxCi4BnCeXh2nvx9Ujd+U4IGpKCuPA+EQD0pg1eK2NGLvfWejag==",
+ "peer": true,
"dependencies": {
"@react-hook/latest": "^1.0.2"
},
@@ -1874,6 +1878,7 @@
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@react-hook/event/-/event-1.2.6.tgz",
"integrity": "sha512-JUL5IluaOdn5w5Afpe/puPa1rj8X6udMlQ9dt4hvMuKmTrBS1Ya6sb4sVgvfe2eU4yDuOfAhik8xhbcCekbg9Q==",
+ "peer": true,
"peerDependencies": {
"react": ">=16.8"
}
@@ -1882,6 +1887,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@react-hook/latest/-/latest-1.0.3.tgz",
"integrity": "sha512-dy6duzl+JnAZcDbNTfmaP3xHiKtbXYOaz3G51MGVljh548Y8MWzTr+PHLOfvpypEVW9zwvl+VyKjbWKEVbV1Rg==",
+ "peer": true,
"peerDependencies": {
"react": ">=16.8"
}
@@ -1890,6 +1896,7 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@react-hook/passive-layout-effect/-/passive-layout-effect-1.2.1.tgz",
"integrity": "sha512-IwEphTD75liO8g+6taS+4oqz+nnroocNfWVHWz7j+N+ZO2vYrc6PV1q7GQhuahL0IOR7JccFTsFKQ/mb6iZWAg==",
+ "peer": true,
"peerDependencies": {
"react": ">=16.8"
}
@@ -1898,6 +1905,7 @@
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@react-hook/resize-observer/-/resize-observer-1.2.6.tgz",
"integrity": "sha512-DlBXtLSW0DqYYTW3Ft1/GQFZlTdKY5VAFIC4+km6IK5NiPPDFchGbEJm1j6pSgMqPRHbUQgHJX7RaR76ic1LWA==",
+ "peer": true,
"dependencies": {
"@juggle/resize-observer": "^3.3.1",
"@react-hook/latest": "^1.0.2",
@@ -1911,6 +1919,7 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/@react-hook/size/-/size-2.1.2.tgz",
"integrity": "sha512-BmE5asyRDxSuQ9p14FUKJ0iBRgV9cROjqNG9jT/EjCM+xHha1HVqbPoT+14FQg1K7xIydabClCibUY4+1tw/iw==",
+ "peer": true,
"dependencies": {
"@react-hook/passive-layout-effect": "^1.2.0",
"@react-hook/resize-observer": "^1.2.1"
@@ -1923,6 +1932,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@react-hook/throttle/-/throttle-2.2.0.tgz",
"integrity": "sha512-LJ5eg+yMV8lXtqK3lR+OtOZ2WH/EfWvuiEEu0M3bhR7dZRfTyEJKxH1oK9uyBxiXPtWXiQggWbZirMCXam51tg==",
+ "peer": true,
"dependencies": {
"@react-hook/latest": "^1.0.2"
},
@@ -1934,6 +1944,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@react-hook/window-size/-/window-size-3.1.1.tgz",
"integrity": "sha512-yWnVS5LKnOUIrEsI44oz3bIIUYqflamPL27n+k/PC//PsX/YeWBky09oPeAoc9As6jSH16Wgo8plI+ECZaHk3g==",
+ "peer": true,
"dependencies": {
"@react-hook/debounce": "^3.0.0",
"@react-hook/event": "^1.2.1",
@@ -1947,6 +1958,7 @@
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.7.1.tgz",
"integrity": "sha512-kuGqjQFex0As/3gfWyk+e9njCcad/ZdnYLLiNvhlk15730xfa0MmnOdpqo9jfuFSXBjOcpxoofvEhvrRMtEdUA==",
+ "peer": true,
"dependencies": {
"@react-types/shared": "^3.22.1"
},
@@ -1958,6 +1970,7 @@
"version": "3.22.1",
"resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.22.1.tgz",
"integrity": "sha512-PCpa+Vo6BKnRMuOEzy5zAZ3/H5tnQg1e80khMhK2xys0j6ZqzkgQC+fHMNZ7VDFNLqqNMj/o0eVeSBDh2POjkw==",
+ "peer": true,
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
}
@@ -2180,11 +2193,6 @@
"react-dom": ">=16.8"
}
},
- "node_modules/@stoplight/json/node_modules/jsonc-parser": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz",
- "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w=="
- },
"node_modules/@stoplight/lifecycle": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/@stoplight/lifecycle/-/lifecycle-2.3.3.tgz",
@@ -2270,6 +2278,7 @@
"version": "1.53.1",
"resolved": "https://registry.npmjs.org/@stoplight/mosaic/-/mosaic-1.53.1.tgz",
"integrity": "sha512-zLh81fUGHlUUFYI2JKTreOU9osIkJPAsWPPbVAQ8o1RQPCEdI+zZTIdzsFvZxnwVzSf+lEDfzBeT0ZxOAHVzww==",
+ "peer": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.2.0",
@@ -2402,6 +2411,7 @@
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.4.1.tgz",
"integrity": "sha512-B54M84LxdEppwjXNlkBEJyMfe9fd+bvFV7R6+NJvupGrZm/LuFNYjFcHk7yjMKWTdWm6DbpIuQz54n5qTW7Vlg==",
+ "peer": true,
"dependencies": {
"@react-types/shared": "^3.8.0"
},
@@ -2413,6 +2423,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.1.2.tgz",
"integrity": "sha512-vkIic8abrVUyl/YjKU3yTVwn8QgebzuadfV89PsaKc3hdmSiHhDsln5wYsfWOEotqMwPrG1aEv9yRMYO78OQXQ==",
+ "peer": true,
"dependencies": {
"@react-types/shared": "^3.8.0"
},
@@ -2424,6 +2435,7 @@
"version": "3.9.0",
"resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.9.0.tgz",
"integrity": "sha512-YYksINfR6q92P10AhPEGo47Hd7oz1hrnZ6Vx8Gsrq62IbqDdv1XOTzPBaj17Z1ymNY2pitLUSEXsLmozt4wxxQ==",
+ "peer": true,
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0-rc.1"
}
@@ -2432,6 +2444,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.1.2.tgz",
"integrity": "sha512-EaYWoLvUCpOnt//Ov8VBxOjbs4hBpYE/rBAzzIknXaFvKOu867iZBFL7FJbcemOgC8/dwyaj6GUZ1Gw3Z1g59w==",
+ "peer": true,
"dependencies": {
"@react-types/checkbox": "^3.2.3",
"@react-types/shared": "^3.8.0"
@@ -2444,6 +2457,7 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.3.0.tgz",
"integrity": "sha512-lOf0tx3c3dVaomH/uvKpOKFVTXQ232kLnMhOJTtj97JDX7fTr3SNhDUV0G8Zf4M0vr+l+xkTrJkywYE23rzliw==",
+ "peer": true,
"dependencies": {
"@react-types/shared": "^3.9.0"
},
@@ -2455,6 +2469,7 @@
"version": "17.0.80",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.80.tgz",
"integrity": "sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA==",
+ "peer": true,
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "^0.16",
@@ -2465,6 +2480,7 @@
"version": "17.0.25",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz",
"integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==",
+ "peer": true,
"dependencies": {
"@types/react": "^17"
}
@@ -2473,6 +2489,7 @@
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz",
"integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==",
+ "peer": true,
"dependencies": {
"@juggle/resize-observer": "^3.3.1"
},
@@ -2485,6 +2502,7 @@
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
"integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
+ "peer": true,
"engines": {
"node": ">=12.7.0"
},
@@ -2605,7 +2623,8 @@
"node_modules/@types/js-cookie": {
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz",
- "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA=="
+ "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==",
+ "peer": true
},
"node_modules/@types/js-yaml": {
"version": "4.0.9",
@@ -2649,9 +2668,12 @@
"peer": true
},
"node_modules/@types/node": {
- "version": "17.0.45",
- "dev": true,
- "license": "MIT"
+ "version": "20.12.7",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
+ "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
},
"node_modules/@types/parse5": {
"version": "6.0.3",
@@ -2664,26 +2686,28 @@
"license": "MIT"
},
"node_modules/@types/react": {
- "version": "18.2.37",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==",
"devOptional": true,
- "license": "MIT",
"dependencies": {
"@types/prop-types": "*",
- "@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"node_modules/@types/react-dom": {
- "version": "18.2.15",
+ "version": "18.3.0",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz",
+ "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==",
"devOptional": true,
- "license": "MIT",
"dependencies": {
"@types/react": "*"
}
},
"node_modules/@types/scheduler": {
"version": "0.16.6",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@types/unist": {
"version": "2.0.10",
@@ -2882,7 +2906,8 @@
"node_modules/@xobotyi/scrollbar-width": {
"version": "1.9.5",
"resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz",
- "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ=="
+ "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==",
+ "peer": true
},
"node_modules/acorn": {
"version": "8.11.2",
@@ -3792,13 +3817,6 @@
"@lezer/common": "^1.0.3"
}
},
- "node_modules/codemirror-json-schema/node_modules/@types/node": {
- "version": "20.9.0",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
"node_modules/codemirror-json5": {
"version": "1.0.3",
"license": "MIT",
@@ -3913,6 +3931,7 @@
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz",
"integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==",
+ "peer": true,
"dependencies": {
"toggle-selection": "^1.0.6"
}
@@ -3938,6 +3957,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz",
"integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==",
+ "peer": true,
"dependencies": {
"hyphenate-style-name": "^1.0.3"
}
@@ -3952,6 +3972,7 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "peer": true,
"dependencies": {
"mdn-data": "2.0.14",
"source-map": "^0.6.1"
@@ -4118,6 +4139,7 @@
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
"integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.1.2"
}
@@ -4169,6 +4191,7 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
"integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "peer": true,
"dependencies": {
"stackframe": "^1.3.4"
}
@@ -4870,17 +4893,20 @@
"node_modules/fast-loops": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz",
- "integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g=="
+ "integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==",
+ "peer": true
},
"node_modules/fast-shallow-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz",
- "integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw=="
+ "integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==",
+ "peer": true
},
"node_modules/fastest-stable-stringify": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz",
- "integrity": "sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q=="
+ "integrity": "sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==",
+ "peer": true
},
"node_modules/fastq": {
"version": "1.15.0",
@@ -5453,7 +5479,8 @@
"node_modules/hyphenate-style-name": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
- "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
+ "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==",
+ "peer": true
},
"node_modules/idb-keyval": {
"version": "6.2.1",
@@ -5534,6 +5561,7 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.0.tgz",
"integrity": "sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==",
+ "peer": true,
"dependencies": {
"css-in-js-utils": "^3.1.0",
"fast-loops": "^1.1.3"
@@ -6028,7 +6056,8 @@
"node_modules/js-cookie": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
- "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
+ "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==",
+ "peer": true
},
"node_modules/js-tokens": {
"version": "4.0.0",
@@ -6275,7 +6304,8 @@
"node_modules/lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ=="
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "peer": true
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
@@ -6678,7 +6708,8 @@
"node_modules/mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
- "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "peer": true
},
"node_modules/mdurl": {
"version": "2.0.0",
@@ -6877,7 +6908,8 @@
"node_modules/nano-memoize": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/nano-memoize/-/nano-memoize-1.3.1.tgz",
- "integrity": "sha512-wQiW3xHptgGlec/Zbo7oq6Zz4kKoK8TaIIs1irTO9iJOGTIG3lnQRUJfH73bJ/rn7MOE4sTdSU+ALPGEidaijQ=="
+ "integrity": "sha512-wQiW3xHptgGlec/Zbo7oq6Zz4kKoK8TaIIs1irTO9iJOGTIG3lnQRUJfH73bJ/rn7MOE4sTdSU+ALPGEidaijQ==",
+ "peer": true
},
"node_modules/nanoid": {
"version": "3.3.7",
@@ -6975,12 +7007,12 @@
}
},
"node_modules/next-themes": {
- "version": "0.2.1",
- "license": "MIT",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.3.0.tgz",
+ "integrity": "sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==",
"peerDependencies": {
- "next": "*",
- "react": "*",
- "react-dom": "*"
+ "react": "^16.8 || ^17 || ^18",
+ "react-dom": "^16.8 || ^17 || ^18"
}
},
"node_modules/node-abi": {
@@ -7351,6 +7383,7 @@
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz",
"integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.17.8"
},
@@ -7637,8 +7670,9 @@
}
},
"node_modules/react": {
- "version": "18.2.0",
- "license": "MIT",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -7647,20 +7681,22 @@
}
},
"node_modules/react-dom": {
- "version": "18.2.0",
- "license": "MIT",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"dependencies": {
"loose-envify": "^1.1.0",
- "scheduler": "^0.23.0"
+ "scheduler": "^0.23.2"
},
"peerDependencies": {
- "react": "^18.2.0"
+ "react": "^18.3.1"
}
},
"node_modules/react-fast-compare": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz",
- "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ=="
+ "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==",
+ "peer": true
},
"node_modules/react-is": {
"version": "16.13.1",
@@ -7670,6 +7706,7 @@
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/react-overflow-list/-/react-overflow-list-0.5.0.tgz",
"integrity": "sha512-+UegukgQ10E4ll3txz4DJyrnCgZ3eDVuv5dvR8ziyG5FfgCDZcUKeKhIgbU90oyqQa21aH4oLOoGKt0TiYJRmg==",
+ "peer": true,
"dependencies": {
"react-use": "^17.3.1"
},
@@ -7684,6 +7721,7 @@
"version": "17.5.0",
"resolved": "https://registry.npmjs.org/react-use/-/react-use-17.5.0.tgz",
"integrity": "sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==",
+ "peer": true,
"dependencies": {
"@types/js-cookie": "^2.2.6",
"@xobotyi/scrollbar-width": "^1.9.5",
@@ -7709,6 +7747,7 @@
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.6.1.tgz",
"integrity": "sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==",
+ "peer": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15",
"css-tree": "^1.1.2",
@@ -7800,6 +7839,7 @@
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz",
"integrity": "sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==",
+ "peer": true,
"peerDependencies": {
"react": "*",
"tslib": "*"
@@ -7948,7 +7988,8 @@
"node_modules/resize-observer-polyfill": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
- "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
+ "peer": true
},
"node_modules/resolve": {
"version": "1.22.8",
@@ -8007,6 +8048,7 @@
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz",
"integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.1.2"
}
@@ -8086,8 +8128,9 @@
"integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw=="
},
"node_modules/scheduler": {
- "version": "0.23.0",
- "license": "MIT",
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
"dependencies": {
"loose-envify": "^1.1.0"
}
@@ -8096,6 +8139,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz",
"integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
},
@@ -8142,6 +8186,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz",
"integrity": "sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==",
+ "peer": true,
"engines": {
"node": ">=6.9"
}
@@ -8297,6 +8342,7 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -8328,6 +8374,7 @@
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz",
"integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==",
+ "peer": true,
"dependencies": {
"stackframe": "^1.3.4"
}
@@ -8335,12 +8382,14 @@
"node_modules/stackframe": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
- "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
+ "peer": true
},
"node_modules/stacktrace-gps": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz",
"integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==",
+ "peer": true,
"dependencies": {
"source-map": "0.5.6",
"stackframe": "^1.3.4"
@@ -8350,6 +8399,7 @@
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
"integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -8358,6 +8408,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz",
"integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==",
+ "peer": true,
"dependencies": {
"error-stack-parser": "^2.0.6",
"stack-generator": "^2.0.5",
@@ -8505,7 +8556,8 @@
"node_modules/stylis": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz",
- "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg=="
+ "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==",
+ "peer": true
},
"node_modules/sucrase": {
"version": "3.34.0",
@@ -8666,6 +8718,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz",
"integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==",
+ "peer": true,
"engines": {
"node": ">=10"
}
@@ -8691,7 +8744,8 @@
"node_modules/toggle-selection": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
- "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ=="
+ "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==",
+ "peer": true
},
"node_modules/tr46": {
"version": "0.0.3",
@@ -8710,7 +8764,8 @@
"node_modules/ts-easing": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz",
- "integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ=="
+ "integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==",
+ "peer": true
},
"node_modules/ts-interface-checker": {
"version": "0.1.13",
@@ -8719,7 +8774,8 @@
"node_modules/ts-keycode-enum": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/ts-keycode-enum/-/ts-keycode-enum-1.0.6.tgz",
- "integrity": "sha512-DF8+Cf/FJJnPRxwz8agCoDelQXKZWQOS/gnnwx01nZ106tPJdB3BgJ9QTtLwXgR82D8O+nTjuZzWgf0Rg4vuRA=="
+ "integrity": "sha512-DF8+Cf/FJJnPRxwz8agCoDelQXKZWQOS/gnnwx01nZ106tPJdB3BgJ9QTtLwXgR82D8O+nTjuZzWgf0Rg4vuRA==",
+ "peer": true
},
"node_modules/tsconfig-paths": {
"version": "3.14.2",
diff --git a/package.json b/package.json
index a2e7deb..ab7ee73 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,6 @@
"@radix-ui/react-toggle": "^1.0.3",
"@radix-ui/react-toggle-group": "^1.0.4",
"@stoplight/json-schema-viewer": "4.16.0",
- "@stoplight/mosaic": "1.53.1",
"@stoplight/json": "3.21.0",
"@types/js-yaml": "^4.0.9",
"@uiw/codemirror-themes": "^4.21.20",
@@ -71,7 +70,7 @@
"@types/lodash-es": "^4.17.11",
"@types/node": "^20.12.7",
"@types/react": "^18.3.1",
- "@types/react-dom": "^18.3.1",
+ "@types/react-dom": "^18.3.0",
"@typescript-eslint/parser": "^5.61.0",
"autoprefixer": "^10.4.14",
"eslint": "^8.44.0",
@@ -87,8 +86,7 @@
},
"overrides": {
"jsonc-parser": "^3.2.1",
- "@stoplight/json": {
- "jsonc-parser": "^3.2.1"
- }
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1"
}
}
From 3f3ce1d3b1a25db25071c88e06fba9089c0cc447 Mon Sep 17 00:00:00 2001
From: Rikki Schulte
Date: Sun, 28 Apr 2024 11:03:37 +0200
Subject: [PATCH 06/12] fix: themes provider
---
components/providers/theme-provider.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/providers/theme-provider.tsx b/components/providers/theme-provider.tsx
index 8c90fbc..e3f5d9c 100644
--- a/components/providers/theme-provider.tsx
+++ b/components/providers/theme-provider.tsx
@@ -1,9 +1,9 @@
-"use client"
import * as React from "react"
import { ThemeProvider as NextThemesProvider } from "next-themes"
import { type ThemeProviderProps } from "next-themes/dist/types"
export function ThemeProvider({ children, ...props }: ThemeProviderProps) {
+ // @ts-ignore
return {children}
}
From 883435b5660eef8a81472443ee5d46e22976b74e Mon Sep 17 00:00:00 2001
From: Rikki Schulte
Date: Sun, 28 Apr 2024 11:26:16 +0200
Subject: [PATCH 07/12] fix: maybe passes build
---
app/page.tsx | 7 +++----
components/editor/schema-viewer.tsx | 7 ++++++-
next.config.mjs | 3 ++-
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/app/page.tsx b/app/page.tsx
index 0072309..92cfad4 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -1,5 +1,4 @@
-'use client'
-import { useBreakpoint } from "use-breakpoint"
+"use client"
import {
ResizableHandle,
@@ -20,12 +19,12 @@ export default function IndexPage({
return (
diff --git a/components/editor/schema-viewer.tsx b/components/editor/schema-viewer.tsx
index 6d549f5..d028724 100644
--- a/components/editor/schema-viewer.tsx
+++ b/components/editor/schema-viewer.tsx
@@ -1,8 +1,13 @@
+import dynamic from "next/dynamic"
import { useMainStore } from "@/store/main"
-import { JsonSchemaViewer } from "@stoplight/json-schema-viewer"
import { injectStyles } from "@stoplight/mosaic"
import { useTheme } from "next-themes"
+const JsonSchemaViewer = dynamic(
+ async () => (await import("@stoplight/json-schema-viewer")).JsonSchemaViewer,
+ { ssr: false }
+)
+
export const SchemaViewer = () => {
const theme = useTheme()
const schemaInfo = useMainStore((state) => state.selectedSchema!)
diff --git a/next.config.mjs b/next.config.mjs
index d802651..89a95fd 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -1,6 +1,7 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
- reactStrictMode: true,
+ transpilePackages: ['@stoplight/json-schema-viewer', '@stoplight/json', 'jsonc-parser'],
+ // reactStrictMode: true,
experimental: {
// appDir: true,
},
From dd648bf3d8438edca46e393fd569529998b268c0 Mon Sep 17 00:00:00 2001
From: Rikki Schulte
Date: Sun, 28 Apr 2024 20:41:30 +0200
Subject: [PATCH 08/12] feat: even more
---
app/globals.css | 18 ++-
app/layout.tsx | 15 +-
app/page.tsx | 7 +-
components/editor/editor-pane.tsx | 43 ++++--
components/editor/file-dialog.tsx | 132 +++++++++++++++++
components/editor/json-editor.tsx | 5 +-
components/editor/json-schema-form.tsx | 189 ++++++++++++++++++++++++
components/editor/menu.tsx | 48 +++---
components/editor/schema-viewer.tsx | 29 ++--
components/editor/select.tsx | 56 +++++++
components/providers/theme-provider.tsx | 1 +
components/ui/autocomplete.tsx | 51 +++++--
components/ui/badge.tsx | 36 +++++
components/ui/toast.tsx | 4 +-
lib/utils.ts | 2 +-
next.config.mjs | 2 +-
package-lock.json | 12 ++
package.json | 3 +-
store/main.ts | 60 +++++---
tailwind.config.js | 2 +-
20 files changed, 617 insertions(+), 98 deletions(-)
create mode 100644 components/editor/file-dialog.tsx
create mode 100644 components/editor/json-schema-form.tsx
create mode 100644 components/editor/select.tsx
create mode 100644 components/ui/badge.tsx
diff --git a/app/globals.css b/app/globals.css
index 14919f2..8af8575 100644
--- a/app/globals.css
+++ b/app/globals.css
@@ -68,9 +68,13 @@
}
+ .dark [type="text"] {
+ color: hsl(var(--background));
+ background-color: hsl(var(--background)) !important;
+ }
}
-
+@import ('~lucide-static/font/Lucide.css');
@layer base {
* {
@apply border-border;
@@ -95,7 +99,13 @@
.cm6-json-schema-hover--description {
margin-bottom: 0.5rem;
}
-
-
+ .dark {
+ input::placeholder, textarea::placeholder {
+ color: hsl(var(--muted-foreground));
+ }
+ }
+ .vertical-layout-item header {
+ display: flex;
+ }
+
}
-
diff --git a/app/layout.tsx b/app/layout.tsx
index 95c4121..f3eba0d 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,4 +1,3 @@
-
import { Metadata } from "next"
import { siteConfig } from "@/config/site"
@@ -9,6 +8,9 @@ import { SiteHeader } from "@/components/nav/site-header"
import { TailwindIndicator } from "@/components/nav/tailwind-indicator"
import { ThemeProvider } from "@/components/providers/theme-provider"
+import "@/styles/globals.css"
+import { Suspense } from "react"
+
export const metadata: Metadata = {
title: {
default: siteConfig.name,
@@ -52,7 +54,6 @@ export default function RootLayout({ children }: RootLayoutProps) {
src="https://kit.fontawesome.com/1e1f25269b.js"
crossOrigin="anonymous"
> */}
-
-
{children}
+
Loading... }>
+
+ {children}
+
+
+
-
+