diff --git a/patches/@stoplight+mosaic+1.53.4.patch b/patches/@stoplight+mosaic+1.53.4.patch new file mode 100644 index 0000000000..962ce81318 --- /dev/null +++ b/patches/@stoplight+mosaic+1.53.4.patch @@ -0,0 +1,74 @@ +diff --git a/node_modules/@stoplight/mosaic/core.esm.js b/node_modules/@stoplight/mosaic/core.esm.js +index 1d4db8c..8b07522 100644 +--- a/node_modules/@stoplight/mosaic/core.esm.js ++++ b/node_modules/@stoplight/mosaic/core.esm.js +@@ -5645,17 +5645,20 @@ const memoryStorage = { + getItem: name => memoryDb[name], + setItem: (name, value) => { + memoryDb[name] = value; ++ }, ++ removeItem: name => { ++ delete memoryDb[name]; + } + }; + ++const getThemeStorage = () => typeof localStorage === 'undefined' || typeof localStorage.removeItem !== 'function' ? memoryStorage : localStorage; + const defaultMode = () => { +- if (typeof localStorage === 'undefined') return DEFAULT_THEME_MODE; +- + try { +- return JSON.parse(localStorage.getItem(THEME_STORAGE_KEY)).mode; ++ return JSON.parse(getThemeStorage().getItem(THEME_STORAGE_KEY)).mode; + } catch (_a) {} + ++ if (typeof document === 'undefined') return DEFAULT_THEME_MODE; + const dataTheme = document.documentElement.getAttribute('data-theme'); + if (dataTheme) return dataTheme; + return DEFAULT_THEME_MODE; + }; +@@ -5736,7 +5739,7 @@ const useThemeStore = create(persist(set => ({ + }), { + name: THEME_STORAGE_KEY, + version: 0, +- getStorage: () => typeof localStorage === 'undefined' ? memoryStorage : localStorage, ++ getStorage: getThemeStorage, + // only remember the desired mode + serialize: ({ + state, +diff --git a/node_modules/@stoplight/mosaic/core.umd.js b/node_modules/@stoplight/mosaic/core.umd.js +index 6a21eba..a4c2cec 100644 +--- a/node_modules/@stoplight/mosaic/core.umd.js ++++ b/node_modules/@stoplight/mosaic/core.umd.js +@@ -5683,17 +5683,20 @@ + getItem: name => memoryDb[name], + setItem: (name, value) => { + memoryDb[name] = value; ++ }, ++ removeItem: name => { ++ delete memoryDb[name]; + } + }; + ++ const getThemeStorage = () => typeof localStorage === 'undefined' || typeof localStorage.removeItem !== 'function' ? memoryStorage : localStorage; + const defaultMode = () => { +- if (typeof localStorage === 'undefined') return DEFAULT_THEME_MODE; +- + try { +- return JSON.parse(localStorage.getItem(THEME_STORAGE_KEY)).mode; ++ return JSON.parse(getThemeStorage().getItem(THEME_STORAGE_KEY)).mode; + } catch (_a) {} + ++ if (typeof document === 'undefined') return DEFAULT_THEME_MODE; + const dataTheme = document.documentElement.getAttribute('data-theme'); + if (dataTheme) return dataTheme; + return DEFAULT_THEME_MODE; + }; +@@ -5774,7 +5777,7 @@ + }), { + name: THEME_STORAGE_KEY, + version: 0, +- getStorage: () => typeof localStorage === 'undefined' ? memoryStorage : localStorage, ++ getStorage: getThemeStorage, + // only remember the desired mode + serialize: ({ + state,