Как это
diff --git a/client/src/components/VideoModal.tsx b/client/src/components/VideoModal.tsx
new file mode 100644
index 0000000..7644eac
--- /dev/null
+++ b/client/src/components/VideoModal.tsx
@@ -0,0 +1,41 @@
+import CrossIcon from "../icons/CrossIcon";
+import useStore from "../store/store";
+
+type VideoModalProps = {
+ path?: string;
+};
+
+const VideoModal = ({ path }: VideoModalProps) => {
+ const { setModal } = useStore();
+
+ const handleOnCloseClick = () => {
+ setModal(null);
+ };
+
+ return (
+
+ );
+};
+
+export default VideoModal;
diff --git a/client/src/components/Wrapper.tsx b/client/src/components/Wrapper.tsx
index 82dc0d8..cba2e5e 100644
--- a/client/src/components/Wrapper.tsx
+++ b/client/src/components/Wrapper.tsx
@@ -2,10 +2,13 @@ import Header from "./Header/Header";
import Footer from "./Footer/Footer";
import { Outlet } from "react-router-dom";
import ScrollToTopButton from "./ScrollToTopButton";
+import useStore from "../store/store";
const Wrapper = () => {
+ const { modal } = useStore();
return (
<>
+ {modal}
diff --git a/client/src/consts/galleryPage.ts b/client/src/consts/galleryPage.ts
new file mode 100644
index 0000000..63b2ad2
--- /dev/null
+++ b/client/src/consts/galleryPage.ts
@@ -0,0 +1,160 @@
+import { ProjectTab, ProjectType } from "../types";
+
+const projectTabs: ProjectTab[] = [
+ { id: 1, title: "ВСЕ ПРОЕКТЫ" },
+ { id: 2, title: "VR" },
+ { id: 3, title: "AR" },
+ { id: 4, title: "TOUCH-SCREEN" },
+ { id: 5, title: "WEB GL" },
+ { id: 6, title: "MOBILE APP" },
+ { id: 7, title: "РЕШЕНИЕ ДЛЯ НЕДВИЖИМОСТИ" },
+ ];
+
+ const projects: ProjectType[] = [
+ {
+ id: 1,
+ title: "Интерактивный пол: игра «Собери мусор» 2023г.",
+ imagePath: "/images/galleryProjects/gallery-projects-1.jpg",
+ description: "",
+ link: "",
+ tab:projectTabs[0]
+ },
+ {
+ id: 2,
+ title: 'МФК Re:volution towers для АН "НКС" г. Екатеринбург',
+ imagePath: "/images/galleryProjects/gallery-projects-2.jpg",
+ description: "Интерактивная презентация 2023.",
+ link: "",
+ tab:projectTabs[6]
+ },
+ {
+ id: 3,
+ title: "Удалённая демонстрация жилой недвижимости 2023г.",
+ imagePath: "/images/galleryProjects/gallery-projects-3.jpg",
+ description: "",
+ link: "",
+ tab:projectTabs[0]
+ },
+ {
+ id: 4,
+ title: "Baniyas North Abu Dhabi",
+ imagePath: "/images/galleryProjects/gallery-projects-4.jpg",
+ description: "Интерактивная презентация жилого проекта 2023г.",
+ link: "",
+ tab:projectTabs[6]
+ },
+ {
+ id: 5,
+ title: "",
+ imagePath: "/images/galleryProjects/gallery-projects-5.jpg",
+ description: "Строительный Форум100+ 2023г.",
+ link: "",
+ },
+ {
+ id: 6,
+ title: 'ЖК "Life Residence" для Паритет девелопмент',
+ imagePath: "/images/galleryProjects/gallery-projects-6.jpg",
+ description: "Интерактивная презентация 2023г.",
+ link: "",
+ },
+ {
+ id: 7,
+ title: 'АО "Метаверс',
+ imagePath: "/images/galleryProjects/gallery-projects-7.jpg",
+ description: "Web Gl 2022г.",
+ link: "",
+ },
+ {
+ id: 8,
+ title: 'Центральная ППК"',
+ imagePath: "/images/galleryProjects/gallery-projects-8.jpg",
+ description: "AR приложение 2022г.",
+ link: "",
+ },
+ {
+ id: 9,
+ title: 'Мобильная компрессорная станция для АО "УЗГА"',
+ imagePath: "/images/galleryProjects/gallery-projects-9.jpg",
+ description: "Интерактивная 3D презентация 2022г.",
+ link: "",
+ },
+ {
+ id: 10,
+ title: "Виртуальная лаборатория оценки качества молока для УРГЭУ (СИНХ)",
+ imagePath: "/images/galleryProjects/gallery-projects-10.jpg",
+ description: "VR 2022г.",
+ link: "",
+ },
+ {
+ id: 11,
+ title: "AR- приложение для Департамента природопользования 2022г.",
+ imagePath: "/images/galleryProjects/gallery-projects-11.jpg",
+ description: "",
+ link: "",
+ },
+ {
+ id: 12,
+ title: 'ЖК "Айвазовский" для ГК "ЭНКО" г. Тюмень',
+ imagePath: "/images/galleryProjects/gallery-projects-12.jpg",
+ description: "Интерактивный макет с VR - туром 2021г.",
+ link: "",
+ },
+ {
+ id: 13,
+ title: 'ЖК "Графика" для Мавис Девелопмент г. Санкт-Петербург',
+ imagePath: "/images/galleryProjects/gallery-projects-13.jpg",
+ description: "TOUCH-SCREEN 2021г.",
+ link: "",
+ },
+ {
+ id: 14,
+ title: 'ООО "CyberLympha" 2021г.',
+ imagePath: "/images/galleryProjects/gallery-projects-14.jpg",
+ description: "Мобильная AR игра",
+ link: "",
+ },
+ {
+ id: 15,
+ title: "AR- приложение Интерктивный квест 2021г.",
+ imagePath: "/images/galleryProjects/gallery-projects-15.jpg",
+ description: "",
+ link: "",
+ },
+ {
+ id: 16,
+ title: '"Екатеринбург Сити" для ОАО УГМК г.Екатеринбург',
+ imagePath: "/images/galleryProjects/gallery-projects-16.jpg",
+ description: "Интерактивный макет 2021г.",
+ link: "",
+ },
+ {
+ id: 17,
+ title: "Smart oil and gas",
+ imagePath: "/images/galleryProjects/gallery-projects-17.jpg",
+ description: "Виртуальная выставка 2021г.",
+ link: "",
+ },
+ {
+ id: 18,
+ title: "World Skills Russia МежВУЗ",
+ imagePath: "/images/galleryProjects/gallery-projects-18.jpg",
+ description: "Интерактивная онлайн выставка 2021г.",
+ link: "",
+ },
+ {
+ id: 19,
+ title: "WorldSkills 2020",
+ imagePath: "/images/galleryProjects/gallery-projects-19.jpg",
+ description: "Интерактивная онлайн выставка 2020г.",
+ link: "",
+ },
+ {
+ id: 20,
+ title: "Демо квартира",
+ imagePath: "/images/galleryProjects/gallery-projects-20.jpg",
+ description: "Интерактивный конфигуратор квартиры 2021г.",
+ link: "",
+ },
+ ];
+
+ export {projectTabs, projects}
\ No newline at end of file
diff --git a/client/src/icons/CrossIcon.tsx b/client/src/icons/CrossIcon.tsx
new file mode 100644
index 0000000..686492c
--- /dev/null
+++ b/client/src/icons/CrossIcon.tsx
@@ -0,0 +1,31 @@
+const CrossIcon = () => {
+ return (
+
+ );
+};
+
+export default CrossIcon;
diff --git a/client/src/main.tsx b/client/src/main.tsx
index c1baa1a..9641a41 100644
--- a/client/src/main.tsx
+++ b/client/src/main.tsx
@@ -5,6 +5,7 @@ import MainPage from "./pages/MainPage/MainPage.tsx";
import TechnologyPage from "./pages/TechnologyPage/TechnologyPage.tsx";
import DirectionPage from "./pages/DirectionsPage/DirectionsPage.tsx";
import "./index.css";
+import GalleryPage from "./pages/GalleryPage/GalleryPage.tsx";
const router = createBrowserRouter([
{
@@ -23,6 +24,10 @@ const router = createBrowserRouter([
path: "/directions",
element:
,
},
+ {
+ path: "/gallery",
+ element:
,
+ },
],
},
]);
diff --git a/client/src/pages/GalleryPage/GalleryPage.tsx b/client/src/pages/GalleryPage/GalleryPage.tsx
new file mode 100644
index 0000000..3e11534
--- /dev/null
+++ b/client/src/pages/GalleryPage/GalleryPage.tsx
@@ -0,0 +1,15 @@
+import HeaderTitle from "../../components/HeaderTitle";
+import Gallery from "../../components/GalleryPage/Gallery";
+
+const GalleryPage = () => {
+ return (
+ <>
+
+
+
+
+ >
+ );
+};
+
+export default GalleryPage;
diff --git a/client/src/store/store.ts b/client/src/store/store.ts
index 1807085..302b240 100644
--- a/client/src/store/store.ts
+++ b/client/src/store/store.ts
@@ -1,12 +1,18 @@
import { create } from "zustand";
+import { ProjectTab } from "../types";
+import { projectTabs } from "../consts/galleryPage";
interface StoreType {
modal: React.ReactNode | null;
+ selectedTab: ProjectTab;
+ setSelectedTab: (tab: ProjectTab) =>void;
setModal: (modal: React.ReactNode | null) => void;
}
const useStore = create
((set) => ({
modal: null,
+ selectedTab: projectTabs[0],
+ setSelectedTab: (tab) => set(() => ({ selectedTab: tab })),
setModal: (modal) => set(() => ({ modal: modal })),
}));
diff --git a/client/src/types.ts b/client/src/types.ts
index bb5f2c7..7560f2e 100644
--- a/client/src/types.ts
+++ b/client/src/types.ts
@@ -18,4 +18,18 @@ type DirectionImageType = {
image: string;
}
-export type {AccordionType, AdvantageType, DirectionImageType}
\ No newline at end of file
+type ProjectType = {
+ id: number;
+ title: string;
+ imagePath: string;
+ description: string;
+ link: string;
+ tab?: ProjectTab;
+};
+
+type ProjectTab = {
+ id: number;
+ title: string;
+};
+
+export type {ProjectTab, AccordionType, AdvantageType, DirectionImageType, ProjectType}
\ No newline at end of file
diff --git a/client/yarn.lock b/client/yarn.lock
index e090a74..02cba73 100644
--- a/client/yarn.lock
+++ b/client/yarn.lock
@@ -1764,6 +1764,11 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
+use-sync-external-store@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
+ integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
+
util-deprecate@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -1824,3 +1829,10 @@ yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+zustand@^4.4.7:
+ version "4.4.7"
+ resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.7.tgz#355406be6b11ab335f59a66d2cf9815e8f24038c"
+ integrity sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==
+ dependencies:
+ use-sync-external-store "1.2.0"
diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity
deleted file mode 100644
index e4b5e3a..0000000
--- a/node_modules/.yarn-integrity
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "systemParams": "win32-x64-115",
- "modulesFolders": [
- "node_modules"
- ],
- "flags": [],
- "linkedModules": [],
- "topLevelPatterns": [
- "zustand@^4.4.7"
- ],
- "lockfileEntries": {
- "use-sync-external-store@1.2.0": "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a",
- "zustand@^4.4.7": "https://registry.yarnpkg.com/zustand/-/zustand-4.4.7.tgz#355406be6b11ab335f59a66d2cf9815e8f24038c"
- },
- "files": [],
- "artifacts": {}
-}
\ No newline at end of file
diff --git a/node_modules/use-sync-external-store/LICENSE b/node_modules/use-sync-external-store/LICENSE
deleted file mode 100644
index b96dcb0..0000000
--- a/node_modules/use-sync-external-store/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) Facebook, Inc. and its affiliates.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/node_modules/use-sync-external-store/README.md b/node_modules/use-sync-external-store/README.md
deleted file mode 100644
index e9987a3..0000000
--- a/node_modules/use-sync-external-store/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# use-sync-external-store
-
-Backwards-compatible shim for [`React.useSyncExternalStore`](https://reactjs.org/docs/hooks-reference.html#usesyncexternalstore). Works with any React that supports Hooks.
-
-See also https://github.com/reactwg/react-18/discussions/86.
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js
deleted file mode 100644
index c849ab8..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js
+++ /dev/null
@@ -1,239 +0,0 @@
-/**
- * @license React
- * use-sync-external-store-shim.development.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-if (process.env.NODE_ENV !== "production") {
- (function() {
-
- 'use strict';
-
-/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
-}
- var React = require('react');
-
-var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
-
-function error(format) {
- {
- {
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- args[_key2 - 1] = arguments[_key2];
- }
-
- printWarning('error', format, args);
- }
- }
-}
-
-function printWarning(level, format, args) {
- // When changing this logic, you might want to also
- // update consoleWithStackDev.www.js as well.
- {
- var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
- var stack = ReactDebugCurrentFrame.getStackAddendum();
-
- if (stack !== '') {
- format += '%s';
- args = args.concat([stack]);
- } // eslint-disable-next-line react-internal/safe-string-coercion
-
-
- var argsWithFormat = args.map(function (item) {
- return String(item);
- }); // Careful: RN currently depends on this prefix
-
- argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
- // breaks IE9: https://github.com/facebook/react/issues/13610
- // eslint-disable-next-line react-internal/no-production-logging
-
- Function.prototype.apply.call(console[level], console, argsWithFormat);
- }
-}
-
-/**
- * inlined Object.is polyfill to avoid requiring consumers ship their own
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
- */
-function is(x, y) {
- return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare
- ;
-}
-
-var objectIs = typeof Object.is === 'function' ? Object.is : is;
-
-// dispatch for CommonJS interop named imports.
-
-var useState = React.useState,
- useEffect = React.useEffect,
- useLayoutEffect = React.useLayoutEffect,
- useDebugValue = React.useDebugValue;
-var didWarnOld18Alpha = false;
-var didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works
-// because of a very particular set of implementation details and assumptions
-// -- change any one of them and it will break. The most important assumption
-// is that updates are always synchronous, because concurrent rendering is
-// only available in versions of React that also have a built-in
-// useSyncExternalStore API. And we only use this shim when the built-in API
-// does not exist.
-//
-// Do not assume that the clever hacks used by this hook also work in general.
-// The point of this shim is to replace the need for hacks by other libraries.
-
-function useSyncExternalStore(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of
-// React do not expose a way to check if we're hydrating. So users of the shim
-// will need to track that themselves and return the correct value
-// from `getSnapshot`.
-getServerSnapshot) {
- {
- if (!didWarnOld18Alpha) {
- if (React.startTransition !== undefined) {
- didWarnOld18Alpha = true;
-
- error('You are using an outdated, pre-release alpha of React 18 that ' + 'does not support useSyncExternalStore. The ' + 'use-sync-external-store shim will not work correctly. Upgrade ' + 'to a newer pre-release.');
- }
- }
- } // Read the current snapshot from the store on every render. Again, this
- // breaks the rules of React, and only works here because of specific
- // implementation details, most importantly that updates are
- // always synchronous.
-
-
- var value = getSnapshot();
-
- {
- if (!didWarnUncachedGetSnapshot) {
- var cachedValue = getSnapshot();
-
- if (!objectIs(value, cachedValue)) {
- error('The result of getSnapshot should be cached to avoid an infinite loop');
-
- didWarnUncachedGetSnapshot = true;
- }
- }
- } // Because updates are synchronous, we don't queue them. Instead we force a
- // re-render whenever the subscribed state changes by updating an some
- // arbitrary useState hook. Then, during render, we call getSnapshot to read
- // the current value.
- //
- // Because we don't actually use the state returned by the useState hook, we
- // can save a bit of memory by storing other stuff in that slot.
- //
- // To implement the early bailout, we need to track some things on a mutable
- // object. Usually, we would put that in a useRef hook, but we can stash it in
- // our useState hook instead.
- //
- // To force a re-render, we call forceUpdate({inst}). That works because the
- // new object always fails an equality check.
-
-
- var _useState = useState({
- inst: {
- value: value,
- getSnapshot: getSnapshot
- }
- }),
- inst = _useState[0].inst,
- forceUpdate = _useState[1]; // Track the latest getSnapshot function with a ref. This needs to be updated
- // in the layout phase so we can access it during the tearing check that
- // happens on subscribe.
-
-
- useLayoutEffect(function () {
- inst.value = value;
- inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the
- // commit phase if there was an interleaved mutation. In concurrent mode
- // this can happen all the time, but even in synchronous mode, an earlier
- // effect may have mutated the store.
-
- if (checkIfSnapshotChanged(inst)) {
- // Force a re-render.
- forceUpdate({
- inst: inst
- });
- }
- }, [subscribe, value, getSnapshot]);
- useEffect(function () {
- // Check for changes right before subscribing. Subsequent changes will be
- // detected in the subscription handler.
- if (checkIfSnapshotChanged(inst)) {
- // Force a re-render.
- forceUpdate({
- inst: inst
- });
- }
-
- var handleStoreChange = function () {
- // TODO: Because there is no cross-renderer API for batching updates, it's
- // up to the consumer of this library to wrap their subscription event
- // with unstable_batchedUpdates. Should we try to detect when this isn't
- // the case and print a warning in development?
- // The store changed. Check if the snapshot changed since the last time we
- // read from the store.
- if (checkIfSnapshotChanged(inst)) {
- // Force a re-render.
- forceUpdate({
- inst: inst
- });
- }
- }; // Subscribe to the store and return a clean-up function.
-
-
- return subscribe(handleStoreChange);
- }, [subscribe]);
- useDebugValue(value);
- return value;
-}
-
-function checkIfSnapshotChanged(inst) {
- var latestGetSnapshot = inst.getSnapshot;
- var prevValue = inst.value;
-
- try {
- var nextValue = latestGetSnapshot();
- return !objectIs(prevValue, nextValue);
- } catch (error) {
- return true;
- }
-}
-
-function useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {
- // Note: The shim does not use getServerSnapshot, because pre-18 versions of
- // React do not expose a way to check if we're hydrating. So users of the shim
- // will need to track that themselves and return the correct value
- // from `getSnapshot`.
- return getSnapshot();
-}
-
-var canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');
-
-var isServerEnvironment = !canUseDOM;
-
-var shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore;
-var useSyncExternalStore$2 = React.useSyncExternalStore !== undefined ? React.useSyncExternalStore : shim;
-
-exports.useSyncExternalStore = useSyncExternalStore$2;
- /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
-}
-
- })();
-}
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.development.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.development.js
deleted file mode 100644
index 5e2bebc..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.development.js
+++ /dev/null
@@ -1,227 +0,0 @@
-/**
- * @license React
- * use-sync-external-store-shim.native.development.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-if (process.env.NODE_ENV !== "production") {
- (function() {
-
- 'use strict';
-
-/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
-}
- var React = require('react');
-
-var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
-
-function error(format) {
- {
- {
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- args[_key2 - 1] = arguments[_key2];
- }
-
- printWarning('error', format, args);
- }
- }
-}
-
-function printWarning(level, format, args) {
- // When changing this logic, you might want to also
- // update consoleWithStackDev.www.js as well.
- {
- var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
- var stack = ReactDebugCurrentFrame.getStackAddendum();
-
- if (stack !== '') {
- format += '%s';
- args = args.concat([stack]);
- } // eslint-disable-next-line react-internal/safe-string-coercion
-
-
- var argsWithFormat = args.map(function (item) {
- return String(item);
- }); // Careful: RN currently depends on this prefix
-
- argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
- // breaks IE9: https://github.com/facebook/react/issues/13610
- // eslint-disable-next-line react-internal/no-production-logging
-
- Function.prototype.apply.call(console[level], console, argsWithFormat);
- }
-}
-
-/**
- * inlined Object.is polyfill to avoid requiring consumers ship their own
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
- */
-function is(x, y) {
- return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare
- ;
-}
-
-var objectIs = typeof Object.is === 'function' ? Object.is : is;
-
-// dispatch for CommonJS interop named imports.
-
-var useState = React.useState,
- useEffect = React.useEffect,
- useLayoutEffect = React.useLayoutEffect,
- useDebugValue = React.useDebugValue;
-var didWarnOld18Alpha = false;
-var didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works
-// because of a very particular set of implementation details and assumptions
-// -- change any one of them and it will break. The most important assumption
-// is that updates are always synchronous, because concurrent rendering is
-// only available in versions of React that also have a built-in
-// useSyncExternalStore API. And we only use this shim when the built-in API
-// does not exist.
-//
-// Do not assume that the clever hacks used by this hook also work in general.
-// The point of this shim is to replace the need for hacks by other libraries.
-
-function useSyncExternalStore(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of
-// React do not expose a way to check if we're hydrating. So users of the shim
-// will need to track that themselves and return the correct value
-// from `getSnapshot`.
-getServerSnapshot) {
- {
- if (!didWarnOld18Alpha) {
- if (React.startTransition !== undefined) {
- didWarnOld18Alpha = true;
-
- error('You are using an outdated, pre-release alpha of React 18 that ' + 'does not support useSyncExternalStore. The ' + 'use-sync-external-store shim will not work correctly. Upgrade ' + 'to a newer pre-release.');
- }
- }
- } // Read the current snapshot from the store on every render. Again, this
- // breaks the rules of React, and only works here because of specific
- // implementation details, most importantly that updates are
- // always synchronous.
-
-
- var value = getSnapshot();
-
- {
- if (!didWarnUncachedGetSnapshot) {
- var cachedValue = getSnapshot();
-
- if (!objectIs(value, cachedValue)) {
- error('The result of getSnapshot should be cached to avoid an infinite loop');
-
- didWarnUncachedGetSnapshot = true;
- }
- }
- } // Because updates are synchronous, we don't queue them. Instead we force a
- // re-render whenever the subscribed state changes by updating an some
- // arbitrary useState hook. Then, during render, we call getSnapshot to read
- // the current value.
- //
- // Because we don't actually use the state returned by the useState hook, we
- // can save a bit of memory by storing other stuff in that slot.
- //
- // To implement the early bailout, we need to track some things on a mutable
- // object. Usually, we would put that in a useRef hook, but we can stash it in
- // our useState hook instead.
- //
- // To force a re-render, we call forceUpdate({inst}). That works because the
- // new object always fails an equality check.
-
-
- var _useState = useState({
- inst: {
- value: value,
- getSnapshot: getSnapshot
- }
- }),
- inst = _useState[0].inst,
- forceUpdate = _useState[1]; // Track the latest getSnapshot function with a ref. This needs to be updated
- // in the layout phase so we can access it during the tearing check that
- // happens on subscribe.
-
-
- useLayoutEffect(function () {
- inst.value = value;
- inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the
- // commit phase if there was an interleaved mutation. In concurrent mode
- // this can happen all the time, but even in synchronous mode, an earlier
- // effect may have mutated the store.
-
- if (checkIfSnapshotChanged(inst)) {
- // Force a re-render.
- forceUpdate({
- inst: inst
- });
- }
- }, [subscribe, value, getSnapshot]);
- useEffect(function () {
- // Check for changes right before subscribing. Subsequent changes will be
- // detected in the subscription handler.
- if (checkIfSnapshotChanged(inst)) {
- // Force a re-render.
- forceUpdate({
- inst: inst
- });
- }
-
- var handleStoreChange = function () {
- // TODO: Because there is no cross-renderer API for batching updates, it's
- // up to the consumer of this library to wrap their subscription event
- // with unstable_batchedUpdates. Should we try to detect when this isn't
- // the case and print a warning in development?
- // The store changed. Check if the snapshot changed since the last time we
- // read from the store.
- if (checkIfSnapshotChanged(inst)) {
- // Force a re-render.
- forceUpdate({
- inst: inst
- });
- }
- }; // Subscribe to the store and return a clean-up function.
-
-
- return subscribe(handleStoreChange);
- }, [subscribe]);
- useDebugValue(value);
- return value;
-}
-
-function checkIfSnapshotChanged(inst) {
- var latestGetSnapshot = inst.getSnapshot;
- var prevValue = inst.value;
-
- try {
- var nextValue = latestGetSnapshot();
- return !objectIs(prevValue, nextValue);
- } catch (error) {
- return true;
- }
-}
-
-var shim = useSyncExternalStore;
-var useSyncExternalStore$1 = React.useSyncExternalStore !== undefined ? React.useSyncExternalStore : shim;
-
-exports.useSyncExternalStore = useSyncExternalStore$1;
- /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
-}
-
- })();
-}
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.min.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.min.js
deleted file mode 100644
index 0e7f3dc..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.min.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * @license React
- * use-sync-external-store-shim.native.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-'use strict';var e=require("react");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k="function"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}
-function r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:q;
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js
deleted file mode 100644
index 0ca00c7..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * @license React
- * use-sync-external-store-shim.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-'use strict';var e=require("react");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k="function"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}
-function r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u="undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js
deleted file mode 100644
index 3c875ea..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * @license React
- * use-sync-external-store-shim/with-selector.development.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-if (process.env.NODE_ENV !== "production") {
- (function() {
-
- 'use strict';
-
-/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
-}
- var React = require('react');
-var shim = require('use-sync-external-store/shim');
-
-/**
- * inlined Object.is polyfill to avoid requiring consumers ship their own
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
- */
-function is(x, y) {
- return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare
- ;
-}
-
-var objectIs = typeof Object.is === 'function' ? Object.is : is;
-
-var useSyncExternalStore = shim.useSyncExternalStore;
-
-// for CommonJS interop.
-
-var useRef = React.useRef,
- useEffect = React.useEffect,
- useMemo = React.useMemo,
- useDebugValue = React.useDebugValue; // Same as useSyncExternalStore, but supports selector and isEqual arguments.
-
-function useSyncExternalStoreWithSelector(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
- // Use this to track the rendered snapshot.
- var instRef = useRef(null);
- var inst;
-
- if (instRef.current === null) {
- inst = {
- hasValue: false,
- value: null
- };
- instRef.current = inst;
- } else {
- inst = instRef.current;
- }
-
- var _useMemo = useMemo(function () {
- // Track the memoized state using closure variables that are local to this
- // memoized instance of a getSnapshot function. Intentionally not using a
- // useRef hook, because that state would be shared across all concurrent
- // copies of the hook/component.
- var hasMemo = false;
- var memoizedSnapshot;
- var memoizedSelection;
-
- var memoizedSelector = function (nextSnapshot) {
- if (!hasMemo) {
- // The first time the hook is called, there is no memoized result.
- hasMemo = true;
- memoizedSnapshot = nextSnapshot;
-
- var _nextSelection = selector(nextSnapshot);
-
- if (isEqual !== undefined) {
- // Even if the selector has changed, the currently rendered selection
- // may be equal to the new selection. We should attempt to reuse the
- // current value if possible, to preserve downstream memoizations.
- if (inst.hasValue) {
- var currentSelection = inst.value;
-
- if (isEqual(currentSelection, _nextSelection)) {
- memoizedSelection = currentSelection;
- return currentSelection;
- }
- }
- }
-
- memoizedSelection = _nextSelection;
- return _nextSelection;
- } // We may be able to reuse the previous invocation's result.
-
-
- // We may be able to reuse the previous invocation's result.
- var prevSnapshot = memoizedSnapshot;
- var prevSelection = memoizedSelection;
-
- if (objectIs(prevSnapshot, nextSnapshot)) {
- // The snapshot is the same as last time. Reuse the previous selection.
- return prevSelection;
- } // The snapshot has changed, so we need to compute a new selection.
-
-
- // The snapshot has changed, so we need to compute a new selection.
- var nextSelection = selector(nextSnapshot); // If a custom isEqual function is provided, use that to check if the data
- // has changed. If it hasn't, return the previous selection. That signals
- // to React that the selections are conceptually equal, and we can bail
- // out of rendering.
-
- // If a custom isEqual function is provided, use that to check if the data
- // has changed. If it hasn't, return the previous selection. That signals
- // to React that the selections are conceptually equal, and we can bail
- // out of rendering.
- if (isEqual !== undefined && isEqual(prevSelection, nextSelection)) {
- return prevSelection;
- }
-
- memoizedSnapshot = nextSnapshot;
- memoizedSelection = nextSelection;
- return nextSelection;
- }; // Assigning this to a constant so that Flow knows it can't change.
-
-
- // Assigning this to a constant so that Flow knows it can't change.
- var maybeGetServerSnapshot = getServerSnapshot === undefined ? null : getServerSnapshot;
-
- var getSnapshotWithSelector = function () {
- return memoizedSelector(getSnapshot());
- };
-
- var getServerSnapshotWithSelector = maybeGetServerSnapshot === null ? undefined : function () {
- return memoizedSelector(maybeGetServerSnapshot());
- };
- return [getSnapshotWithSelector, getServerSnapshotWithSelector];
- }, [getSnapshot, getServerSnapshot, selector, isEqual]),
- getSelection = _useMemo[0],
- getServerSelection = _useMemo[1];
-
- var value = useSyncExternalStore(subscribe, getSelection, getServerSelection);
- useEffect(function () {
- inst.hasValue = true;
- inst.value = value;
- }, [value]);
- useDebugValue(value);
- return value;
-}
-
-exports.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector;
- /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
-}
-
- })();
-}
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js
deleted file mode 100644
index 84485da..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * @license React
- * use-sync-external-store-shim/with-selector.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-'use strict';var h=require("react"),n=require("use-sync-external-store/shim");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q="function"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;
-exports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);
-u(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js
deleted file mode 100644
index eacc4be..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * @license React
- * use-sync-external-store-with-selector.development.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-if (process.env.NODE_ENV !== "production") {
- (function() {
-
- 'use strict';
-
-/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
-}
- var React = require('react');
-
-/**
- * inlined Object.is polyfill to avoid requiring consumers ship their own
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
- */
-function is(x, y) {
- return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare
- ;
-}
-
-var objectIs = typeof Object.is === 'function' ? Object.is : is;
-
-var useSyncExternalStore = React.useSyncExternalStore;
-
-// for CommonJS interop.
-
-var useRef = React.useRef,
- useEffect = React.useEffect,
- useMemo = React.useMemo,
- useDebugValue = React.useDebugValue; // Same as useSyncExternalStore, but supports selector and isEqual arguments.
-
-function useSyncExternalStoreWithSelector(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
- // Use this to track the rendered snapshot.
- var instRef = useRef(null);
- var inst;
-
- if (instRef.current === null) {
- inst = {
- hasValue: false,
- value: null
- };
- instRef.current = inst;
- } else {
- inst = instRef.current;
- }
-
- var _useMemo = useMemo(function () {
- // Track the memoized state using closure variables that are local to this
- // memoized instance of a getSnapshot function. Intentionally not using a
- // useRef hook, because that state would be shared across all concurrent
- // copies of the hook/component.
- var hasMemo = false;
- var memoizedSnapshot;
- var memoizedSelection;
-
- var memoizedSelector = function (nextSnapshot) {
- if (!hasMemo) {
- // The first time the hook is called, there is no memoized result.
- hasMemo = true;
- memoizedSnapshot = nextSnapshot;
-
- var _nextSelection = selector(nextSnapshot);
-
- if (isEqual !== undefined) {
- // Even if the selector has changed, the currently rendered selection
- // may be equal to the new selection. We should attempt to reuse the
- // current value if possible, to preserve downstream memoizations.
- if (inst.hasValue) {
- var currentSelection = inst.value;
-
- if (isEqual(currentSelection, _nextSelection)) {
- memoizedSelection = currentSelection;
- return currentSelection;
- }
- }
- }
-
- memoizedSelection = _nextSelection;
- return _nextSelection;
- } // We may be able to reuse the previous invocation's result.
-
-
- // We may be able to reuse the previous invocation's result.
- var prevSnapshot = memoizedSnapshot;
- var prevSelection = memoizedSelection;
-
- if (objectIs(prevSnapshot, nextSnapshot)) {
- // The snapshot is the same as last time. Reuse the previous selection.
- return prevSelection;
- } // The snapshot has changed, so we need to compute a new selection.
-
-
- // The snapshot has changed, so we need to compute a new selection.
- var nextSelection = selector(nextSnapshot); // If a custom isEqual function is provided, use that to check if the data
- // has changed. If it hasn't, return the previous selection. That signals
- // to React that the selections are conceptually equal, and we can bail
- // out of rendering.
-
- // If a custom isEqual function is provided, use that to check if the data
- // has changed. If it hasn't, return the previous selection. That signals
- // to React that the selections are conceptually equal, and we can bail
- // out of rendering.
- if (isEqual !== undefined && isEqual(prevSelection, nextSelection)) {
- return prevSelection;
- }
-
- memoizedSnapshot = nextSnapshot;
- memoizedSelection = nextSelection;
- return nextSelection;
- }; // Assigning this to a constant so that Flow knows it can't change.
-
-
- // Assigning this to a constant so that Flow knows it can't change.
- var maybeGetServerSnapshot = getServerSnapshot === undefined ? null : getServerSnapshot;
-
- var getSnapshotWithSelector = function () {
- return memoizedSelector(getSnapshot());
- };
-
- var getServerSnapshotWithSelector = maybeGetServerSnapshot === null ? undefined : function () {
- return memoizedSelector(maybeGetServerSnapshot());
- };
- return [getSnapshotWithSelector, getServerSnapshotWithSelector];
- }, [getSnapshot, getServerSnapshot, selector, isEqual]),
- getSelection = _useMemo[0],
- getServerSelection = _useMemo[1];
-
- var value = useSyncExternalStore(subscribe, getSelection, getServerSelection);
- useEffect(function () {
- inst.hasValue = true;
- inst.value = value;
- }, [value]);
- useDebugValue(value);
- return value;
-}
-
-exports.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector;
- /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
-}
-
- })();
-}
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js
deleted file mode 100644
index 06bad1a..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * @license React
- * use-sync-external-store-with-selector.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-'use strict';var g=require("react");function n(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var p="function"===typeof Object.is?Object.is:n,q=g.useSyncExternalStore,r=g.useRef,t=g.useEffect,u=g.useMemo,v=g.useDebugValue;
-exports.useSyncExternalStoreWithSelector=function(a,b,e,l,h){var c=r(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=u(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==h&&f.hasValue){var b=f.value;if(h(b,a))return k=b}return k=a}b=k;if(p(d,a))return b;var e=l(a);if(void 0!==h&&h(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,h]);var d=q(a,c[0],c[1]);
-t(function(){f.hasValue=!0;f.value=d},[d]);v(d);return d};
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store.development.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store.development.js
deleted file mode 100644
index 82368bc..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store.development.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * @license React
- * use-sync-external-store.development.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-if (process.env.NODE_ENV !== "production") {
- (function() {
-
- 'use strict';
-
-/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
-}
- var React = require('react');
-
-var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
-
-function error(format) {
- {
- {
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- args[_key2 - 1] = arguments[_key2];
- }
-
- printWarning('error', format, args);
- }
- }
-}
-
-function printWarning(level, format, args) {
- // When changing this logic, you might want to also
- // update consoleWithStackDev.www.js as well.
- {
- var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
- var stack = ReactDebugCurrentFrame.getStackAddendum();
-
- if (stack !== '') {
- format += '%s';
- args = args.concat([stack]);
- } // eslint-disable-next-line react-internal/safe-string-coercion
-
-
- var argsWithFormat = args.map(function (item) {
- return String(item);
- }); // Careful: RN currently depends on this prefix
-
- argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
- // breaks IE9: https://github.com/facebook/react/issues/13610
- // eslint-disable-next-line react-internal/no-production-logging
-
- Function.prototype.apply.call(console[level], console, argsWithFormat);
- }
-}
-
-var useSyncExternalStore = React.useSyncExternalStore;
-
-{
- error("The main 'use-sync-external-store' entry point is not supported; all it " + "does is re-export useSyncExternalStore from the 'react' package, so " + 'it only works with React 18+.' + '\n\n' + 'If you wish to support React 16 and 17, import from ' + "'use-sync-external-store/shim' instead. It will fall back to a shimmed " + 'implementation when the native one is not available.' + '\n\n' + "If you only support React 18+, you can import directly from 'react'.");
-}
-
-exports.useSyncExternalStore = useSyncExternalStore;
- /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
-if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===
- 'function'
-) {
- __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
-}
-
- })();
-}
diff --git a/node_modules/use-sync-external-store/cjs/use-sync-external-store.production.min.js b/node_modules/use-sync-external-store/cjs/use-sync-external-store.production.min.js
deleted file mode 100644
index 8d684a6..0000000
--- a/node_modules/use-sync-external-store/cjs/use-sync-external-store.production.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * @license React
- * use-sync-external-store.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-'use strict';var a=require("react").useSyncExternalStore;exports.useSyncExternalStore=a;
diff --git a/node_modules/use-sync-external-store/index.js b/node_modules/use-sync-external-store/index.js
deleted file mode 100644
index a9d619a..0000000
--- a/node_modules/use-sync-external-store/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
- module.exports = require('./cjs/use-sync-external-store.production.min.js');
-} else {
- module.exports = require('./cjs/use-sync-external-store.development.js');
-}
diff --git a/node_modules/use-sync-external-store/package.json b/node_modules/use-sync-external-store/package.json
deleted file mode 100644
index 7006692..0000000
--- a/node_modules/use-sync-external-store/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "name": "use-sync-external-store",
- "description": "Backwards compatible shim for React's useSyncExternalStore. Works with any React that supports hooks.",
- "version": "1.2.0",
- "repository": {
- "type": "git",
- "url": "https://github.com/facebook/react.git",
- "directory": "packages/use-sync-external-store"
- },
- "files": [
- "LICENSE",
- "README.md",
- "index.js",
- "index.native.js",
- "with-selector.js",
- "with-selector.native.js",
- "shim/",
- "cjs/"
- ],
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
-}
\ No newline at end of file
diff --git a/node_modules/use-sync-external-store/shim/index.js b/node_modules/use-sync-external-store/shim/index.js
deleted file mode 100644
index bde36f3..0000000
--- a/node_modules/use-sync-external-store/shim/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
- module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');
-} else {
- module.exports = require('../cjs/use-sync-external-store-shim.development.js');
-}
diff --git a/node_modules/use-sync-external-store/shim/index.native.js b/node_modules/use-sync-external-store/shim/index.native.js
deleted file mode 100644
index 0bd5c7e..0000000
--- a/node_modules/use-sync-external-store/shim/index.native.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
- module.exports = require('../cjs/use-sync-external-store-shim.native.production.min.js');
-} else {
- module.exports = require('../cjs/use-sync-external-store-shim.native.development.js');
-}
diff --git a/node_modules/use-sync-external-store/shim/with-selector.js b/node_modules/use-sync-external-store/shim/with-selector.js
deleted file mode 100644
index 1175186..0000000
--- a/node_modules/use-sync-external-store/shim/with-selector.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
- module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');
-} else {
- module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');
-}
diff --git a/node_modules/use-sync-external-store/with-selector.js b/node_modules/use-sync-external-store/with-selector.js
deleted file mode 100644
index 9163b3e..0000000
--- a/node_modules/use-sync-external-store/with-selector.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
- module.exports = require('./cjs/use-sync-external-store-with-selector.production.min.js');
-} else {
- module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');
-}
diff --git a/node_modules/zustand/LICENSE b/node_modules/zustand/LICENSE
deleted file mode 100644
index a2c2649..0000000
--- a/node_modules/zustand/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 Paul Henschel
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/node_modules/zustand/context.d.ts b/node_modules/zustand/context.d.ts
deleted file mode 100644
index d16f009..0000000
--- a/node_modules/zustand/context.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import ReactExports from 'react';
-import type { ReactNode } from 'react';
-import type { StoreApi } from 'zustand';
-type UseContextStore> = {
- (): ExtractState;
- (selector: (state: ExtractState) => U, equalityFn?: (a: U, b: U) => boolean): U;
-};
-type ExtractState = S extends {
- getState: () => infer T;
-} ? T : never;
-type WithoutCallSignature = {
- [K in keyof T]: T[K];
-};
-/**
- * @deprecated Use `createStore` and `useStore` for context usage
- */
-declare function createContext>(): {
- Provider: ({ createStore, children, }: {
- createStore: () => S;
- children: ReactNode;
- }) => ReactExports.FunctionComponentElement>;
- useStore: UseContextStore;
- useStoreApi: () => WithoutCallSignature;
-};
-export default createContext;
diff --git a/node_modules/zustand/context.js b/node_modules/zustand/context.js
deleted file mode 100644
index 7ff2b53..0000000
--- a/node_modules/zustand/context.js
+++ /dev/null
@@ -1,65 +0,0 @@
-'use strict';
-
-var ReactExports = require('react');
-var traditional = require('zustand/traditional');
-
-function _extends() {
- _extends = Object.assign ? Object.assign.bind() : function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- return _extends.apply(this, arguments);
-}
-
-var createElement = ReactExports.createElement,
- reactCreateContext = ReactExports.createContext,
- useContext = ReactExports.useContext,
- useMemo = ReactExports.useMemo,
- useRef = ReactExports.useRef;
-function createContext() {
- if (process.env.NODE_ENV !== 'production') {
- console.warn("[DEPRECATED] `context` will be removed in a future version. Instead use `import { createStore, useStore } from 'zustand'`. See: https://github.com/pmndrs/zustand/discussions/1180.");
- }
- var ZustandContext = reactCreateContext(undefined);
- var Provider = function Provider(_ref) {
- var createStore = _ref.createStore,
- children = _ref.children;
- var storeRef = useRef();
- if (!storeRef.current) {
- storeRef.current = createStore();
- }
- return createElement(ZustandContext.Provider, {
- value: storeRef.current
- }, children);
- };
- var useContextStore = function useContextStore(selector, equalityFn) {
- var store = useContext(ZustandContext);
- if (!store) {
- throw new Error('Seems like you have not used zustand provider as an ancestor.');
- }
- return traditional.useStoreWithEqualityFn(store, selector, equalityFn);
- };
- var useStoreApi = function useStoreApi() {
- var store = useContext(ZustandContext);
- if (!store) {
- throw new Error('Seems like you have not used zustand provider as an ancestor.');
- }
- return useMemo(function () {
- return _extends({}, store);
- }, [store]);
- };
- return {
- Provider: Provider,
- useStore: useContextStore,
- useStoreApi: useStoreApi
- };
-}
-
-module.exports = createContext;
diff --git a/node_modules/zustand/esm/context.d.mts b/node_modules/zustand/esm/context.d.mts
deleted file mode 100644
index d16f009..0000000
--- a/node_modules/zustand/esm/context.d.mts
+++ /dev/null
@@ -1,25 +0,0 @@
-import ReactExports from 'react';
-import type { ReactNode } from 'react';
-import type { StoreApi } from 'zustand';
-type UseContextStore> = {
- (): ExtractState;
- (selector: (state: ExtractState) => U, equalityFn?: (a: U, b: U) => boolean): U;
-};
-type ExtractState = S extends {
- getState: () => infer T;
-} ? T : never;
-type WithoutCallSignature = {
- [K in keyof T]: T[K];
-};
-/**
- * @deprecated Use `createStore` and `useStore` for context usage
- */
-declare function createContext>(): {
- Provider: ({ createStore, children, }: {
- createStore: () => S;
- children: ReactNode;
- }) => ReactExports.FunctionComponentElement>;
- useStore: UseContextStore;
- useStoreApi: () => WithoutCallSignature;
-};
-export default createContext;
diff --git a/node_modules/zustand/esm/context.d.ts b/node_modules/zustand/esm/context.d.ts
deleted file mode 100644
index d16f009..0000000
--- a/node_modules/zustand/esm/context.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import ReactExports from 'react';
-import type { ReactNode } from 'react';
-import type { StoreApi } from 'zustand';
-type UseContextStore> = {
- (): ExtractState;
- (selector: (state: ExtractState) => U, equalityFn?: (a: U, b: U) => boolean): U;
-};
-type ExtractState = S extends {
- getState: () => infer T;
-} ? T : never;
-type WithoutCallSignature = {
- [K in keyof T]: T[K];
-};
-/**
- * @deprecated Use `createStore` and `useStore` for context usage
- */
-declare function createContext>(): {
- Provider: ({ createStore, children, }: {
- createStore: () => S;
- children: ReactNode;
- }) => ReactExports.FunctionComponentElement>;
- useStore: UseContextStore;
- useStoreApi: () => WithoutCallSignature;
-};
-export default createContext;
diff --git a/node_modules/zustand/esm/context.js b/node_modules/zustand/esm/context.js
deleted file mode 100644
index 5f05131..0000000
--- a/node_modules/zustand/esm/context.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import ReactExports from 'react';
-import { useStoreWithEqualityFn } from 'zustand/traditional';
-
-const {
- createElement,
- createContext: reactCreateContext,
- useContext,
- useMemo,
- useRef
-} = ReactExports;
-function createContext() {
- if (process.env.NODE_ENV !== "production") {
- console.warn(
- "[DEPRECATED] `context` will be removed in a future version. Instead use `import { createStore, useStore } from 'zustand'`. See: https://github.com/pmndrs/zustand/discussions/1180."
- );
- }
- const ZustandContext = reactCreateContext(void 0);
- const Provider = ({
- createStore,
- children
- }) => {
- const storeRef = useRef();
- if (!storeRef.current) {
- storeRef.current = createStore();
- }
- return createElement(
- ZustandContext.Provider,
- { value: storeRef.current },
- children
- );
- };
- const useContextStore = (selector, equalityFn) => {
- const store = useContext(ZustandContext);
- if (!store) {
- throw new Error(
- "Seems like you have not used zustand provider as an ancestor."
- );
- }
- return useStoreWithEqualityFn(
- store,
- selector,
- equalityFn
- );
- };
- const useStoreApi = () => {
- const store = useContext(ZustandContext);
- if (!store) {
- throw new Error(
- "Seems like you have not used zustand provider as an ancestor."
- );
- }
- return useMemo(() => ({ ...store }), [store]);
- };
- return {
- Provider,
- useStore: useContextStore,
- useStoreApi
- };
-}
-
-export { createContext as default };
diff --git a/node_modules/zustand/esm/context.mjs b/node_modules/zustand/esm/context.mjs
deleted file mode 100644
index 1d2f4ba..0000000
--- a/node_modules/zustand/esm/context.mjs
+++ /dev/null
@@ -1,61 +0,0 @@
-import ReactExports from 'react';
-import { useStoreWithEqualityFn } from 'zustand/traditional';
-
-const {
- createElement,
- createContext: reactCreateContext,
- useContext,
- useMemo,
- useRef
-} = ReactExports;
-function createContext() {
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
- console.warn(
- "[DEPRECATED] `context` will be removed in a future version. Instead use `import { createStore, useStore } from 'zustand'`. See: https://github.com/pmndrs/zustand/discussions/1180."
- );
- }
- const ZustandContext = reactCreateContext(void 0);
- const Provider = ({
- createStore,
- children
- }) => {
- const storeRef = useRef();
- if (!storeRef.current) {
- storeRef.current = createStore();
- }
- return createElement(
- ZustandContext.Provider,
- { value: storeRef.current },
- children
- );
- };
- const useContextStore = (selector, equalityFn) => {
- const store = useContext(ZustandContext);
- if (!store) {
- throw new Error(
- "Seems like you have not used zustand provider as an ancestor."
- );
- }
- return useStoreWithEqualityFn(
- store,
- selector,
- equalityFn
- );
- };
- const useStoreApi = () => {
- const store = useContext(ZustandContext);
- if (!store) {
- throw new Error(
- "Seems like you have not used zustand provider as an ancestor."
- );
- }
- return useMemo(() => ({ ...store }), [store]);
- };
- return {
- Provider,
- useStore: useContextStore,
- useStoreApi
- };
-}
-
-export { createContext as default };
diff --git a/node_modules/zustand/esm/index.d.mts b/node_modules/zustand/esm/index.d.mts
deleted file mode 100644
index 425cbbe..0000000
--- a/node_modules/zustand/esm/index.d.mts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from './vanilla.mjs';
-export * from './react.mjs';
-export { default } from './react.mjs';
diff --git a/node_modules/zustand/esm/index.d.ts b/node_modules/zustand/esm/index.d.ts
deleted file mode 100644
index 7e9c8b6..0000000
--- a/node_modules/zustand/esm/index.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from './vanilla';
-export * from './react';
-export { default } from './react';
diff --git a/node_modules/zustand/esm/index.js b/node_modules/zustand/esm/index.js
deleted file mode 100644
index 70ef1fe..0000000
--- a/node_modules/zustand/esm/index.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import { createStore } from 'zustand/vanilla';
-export * from 'zustand/vanilla';
-import ReactExports from 'react';
-import useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';
-
-const { useDebugValue } = ReactExports;
-const { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;
-let didWarnAboutEqualityFn = false;
-function useStore(api, selector = api.getState, equalityFn) {
- if (process.env.NODE_ENV !== "production" && equalityFn && !didWarnAboutEqualityFn) {
- console.warn(
- "[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"
- );
- didWarnAboutEqualityFn = true;
- }
- const slice = useSyncExternalStoreWithSelector(
- api.subscribe,
- api.getState,
- api.getServerState || api.getState,
- selector,
- equalityFn
- );
- useDebugValue(slice);
- return slice;
-}
-const createImpl = (createState) => {
- if (process.env.NODE_ENV !== "production" && typeof createState !== "function") {
- console.warn(
- "[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`."
- );
- }
- const api = typeof createState === "function" ? createStore(createState) : createState;
- const useBoundStore = (selector, equalityFn) => useStore(api, selector, equalityFn);
- Object.assign(useBoundStore, api);
- return useBoundStore;
-};
-const create = (createState) => createState ? createImpl(createState) : createImpl;
-var react = (createState) => {
- if (process.env.NODE_ENV !== "production") {
- console.warn(
- "[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`."
- );
- }
- return create(createState);
-};
-
-export { create, react as default, useStore };
diff --git a/node_modules/zustand/esm/index.mjs b/node_modules/zustand/esm/index.mjs
deleted file mode 100644
index 58e1ae5..0000000
--- a/node_modules/zustand/esm/index.mjs
+++ /dev/null
@@ -1,47 +0,0 @@
-import { createStore } from 'zustand/vanilla';
-export * from 'zustand/vanilla';
-import ReactExports from 'react';
-import useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';
-
-const { useDebugValue } = ReactExports;
-const { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;
-let didWarnAboutEqualityFn = false;
-function useStore(api, selector = api.getState, equalityFn) {
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && equalityFn && !didWarnAboutEqualityFn) {
- console.warn(
- "[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"
- );
- didWarnAboutEqualityFn = true;
- }
- const slice = useSyncExternalStoreWithSelector(
- api.subscribe,
- api.getState,
- api.getServerState || api.getState,
- selector,
- equalityFn
- );
- useDebugValue(slice);
- return slice;
-}
-const createImpl = (createState) => {
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && typeof createState !== "function") {
- console.warn(
- "[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`."
- );
- }
- const api = typeof createState === "function" ? createStore(createState) : createState;
- const useBoundStore = (selector, equalityFn) => useStore(api, selector, equalityFn);
- Object.assign(useBoundStore, api);
- return useBoundStore;
-};
-const create = (createState) => createState ? createImpl(createState) : createImpl;
-var react = (createState) => {
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
- console.warn(
- "[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`."
- );
- }
- return create(createState);
-};
-
-export { create, react as default, useStore };
diff --git a/node_modules/zustand/esm/middleware.d.mts b/node_modules/zustand/esm/middleware.d.mts
deleted file mode 100644
index e765879..0000000
--- a/node_modules/zustand/esm/middleware.d.mts
+++ /dev/null
@@ -1,5 +0,0 @@
-export * from './middleware/redux.mjs';
-export * from './middleware/devtools.mjs';
-export * from './middleware/subscribeWithSelector.mjs';
-export * from './middleware/combine.mjs';
-export * from './middleware/persist.mjs';
diff --git a/node_modules/zustand/esm/middleware.d.ts b/node_modules/zustand/esm/middleware.d.ts
deleted file mode 100644
index 1806630..0000000
--- a/node_modules/zustand/esm/middleware.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export * from './middleware/redux';
-export * from './middleware/devtools';
-export * from './middleware/subscribeWithSelector';
-export * from './middleware/combine';
-export * from './middleware/persist';
diff --git a/node_modules/zustand/esm/middleware.js b/node_modules/zustand/esm/middleware.js
deleted file mode 100644
index fcaa0c8..0000000
--- a/node_modules/zustand/esm/middleware.js
+++ /dev/null
@@ -1,583 +0,0 @@
-const reduxImpl = (reducer, initial) => (set, _get, api) => {
- api.dispatch = (action) => {
- set((state) => reducer(state, action), false, action);
- return action;
- };
- api.dispatchFromDevtools = true;
- return { dispatch: (...a) => api.dispatch(...a), ...initial };
-};
-const redux = reduxImpl;
-
-const trackedConnections = /* @__PURE__ */ new Map();
-const getTrackedConnectionState = (name) => {
- const api = trackedConnections.get(name);
- if (!api)
- return {};
- return Object.fromEntries(
- Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])
- );
-};
-const extractConnectionInformation = (store, extensionConnector, options) => {
- if (store === void 0) {
- return {
- type: "untracked",
- connection: extensionConnector.connect(options)
- };
- }
- const existingConnection = trackedConnections.get(options.name);
- if (existingConnection) {
- return { type: "tracked", store, ...existingConnection };
- }
- const newConnection = {
- connection: extensionConnector.connect(options),
- stores: {}
- };
- trackedConnections.set(options.name, newConnection);
- return { type: "tracked", store, ...newConnection };
-};
-const devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {
- const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;
- let extensionConnector;
- try {
- extensionConnector = (enabled != null ? enabled : process.env.NODE_ENV !== "production") && window.__REDUX_DEVTOOLS_EXTENSION__;
- } catch (e) {
- }
- if (!extensionConnector) {
- if (process.env.NODE_ENV !== "production" && enabled) {
- console.warn(
- "[zustand devtools middleware] Please install/enable Redux devtools extension"
- );
- }
- return fn(set, get, api);
- }
- const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);
- let isRecording = true;
- api.setState = (state, replace, nameOrAction) => {
- const r = set(state, replace);
- if (!isRecording)
- return r;
- const action = nameOrAction === void 0 ? { type: anonymousActionType || "anonymous" } : typeof nameOrAction === "string" ? { type: nameOrAction } : nameOrAction;
- if (store === void 0) {
- connection == null ? void 0 : connection.send(action, get());
- return r;
- }
- connection == null ? void 0 : connection.send(
- {
- ...action,
- type: `${store}/${action.type}`
- },
- {
- ...getTrackedConnectionState(options.name),
- [store]: api.getState()
- }
- );
- return r;
- };
- const setStateFromDevtools = (...a) => {
- const originalIsRecording = isRecording;
- isRecording = false;
- set(...a);
- isRecording = originalIsRecording;
- };
- const initialState = fn(api.setState, get, api);
- if (connectionInformation.type === "untracked") {
- connection == null ? void 0 : connection.init(initialState);
- } else {
- connectionInformation.stores[connectionInformation.store] = api;
- connection == null ? void 0 : connection.init(
- Object.fromEntries(
- Object.entries(connectionInformation.stores).map(([key, store2]) => [
- key,
- key === connectionInformation.store ? initialState : store2.getState()
- ])
- )
- );
- }
- if (api.dispatchFromDevtools && typeof api.dispatch === "function") {
- let didWarnAboutReservedActionType = false;
- const originalDispatch = api.dispatch;
- api.dispatch = (...a) => {
- if (process.env.NODE_ENV !== "production" && a[0].type === "__setState" && !didWarnAboutReservedActionType) {
- console.warn(
- '[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'
- );
- didWarnAboutReservedActionType = true;
- }
- originalDispatch(...a);
- };
- }
- connection.subscribe((message) => {
- var _a;
- switch (message.type) {
- case "ACTION":
- if (typeof message.payload !== "string") {
- console.error(
- "[zustand devtools middleware] Unsupported action format"
- );
- return;
- }
- return parseJsonThen(
- message.payload,
- (action) => {
- if (action.type === "__setState") {
- if (store === void 0) {
- setStateFromDevtools(action.state);
- return;
- }
- if (Object.keys(action.state).length !== 1) {
- console.error(
- `
- [zustand devtools middleware] Unsupported __setState action format.
- When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
- and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
- `
- );
- }
- const stateFromDevtools = action.state[store];
- if (stateFromDevtools === void 0 || stateFromDevtools === null) {
- return;
- }
- if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {
- setStateFromDevtools(stateFromDevtools);
- }
- return;
- }
- if (!api.dispatchFromDevtools)
- return;
- if (typeof api.dispatch !== "function")
- return;
- api.dispatch(action);
- }
- );
- case "DISPATCH":
- switch (message.payload.type) {
- case "RESET":
- setStateFromDevtools(initialState);
- if (store === void 0) {
- return connection == null ? void 0 : connection.init(api.getState());
- }
- return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));
- case "COMMIT":
- if (store === void 0) {
- connection == null ? void 0 : connection.init(api.getState());
- return;
- }
- return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));
- case "ROLLBACK":
- return parseJsonThen(message.state, (state) => {
- if (store === void 0) {
- setStateFromDevtools(state);
- connection == null ? void 0 : connection.init(api.getState());
- return;
- }
- setStateFromDevtools(state[store]);
- connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));
- });
- case "JUMP_TO_STATE":
- case "JUMP_TO_ACTION":
- return parseJsonThen(message.state, (state) => {
- if (store === void 0) {
- setStateFromDevtools(state);
- return;
- }
- if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {
- setStateFromDevtools(state[store]);
- }
- });
- case "IMPORT_STATE": {
- const { nextLiftedState } = message.payload;
- const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;
- if (!lastComputedState)
- return;
- if (store === void 0) {
- setStateFromDevtools(lastComputedState);
- } else {
- setStateFromDevtools(lastComputedState[store]);
- }
- connection == null ? void 0 : connection.send(
- null,
- // FIXME no-any
- nextLiftedState
- );
- return;
- }
- case "PAUSE_RECORDING":
- return isRecording = !isRecording;
- }
- return;
- }
- });
- return initialState;
-};
-const devtools = devtoolsImpl;
-const parseJsonThen = (stringified, f) => {
- let parsed;
- try {
- parsed = JSON.parse(stringified);
- } catch (e) {
- console.error(
- "[zustand devtools middleware] Could not parse the received json",
- e
- );
- }
- if (parsed !== void 0)
- f(parsed);
-};
-
-const subscribeWithSelectorImpl = (fn) => (set, get, api) => {
- const origSubscribe = api.subscribe;
- api.subscribe = (selector, optListener, options) => {
- let listener = selector;
- if (optListener) {
- const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;
- let currentSlice = selector(api.getState());
- listener = (state) => {
- const nextSlice = selector(state);
- if (!equalityFn(currentSlice, nextSlice)) {
- const previousSlice = currentSlice;
- optListener(currentSlice = nextSlice, previousSlice);
- }
- };
- if (options == null ? void 0 : options.fireImmediately) {
- optListener(currentSlice, currentSlice);
- }
- }
- return origSubscribe(listener);
- };
- const initialState = fn(set, get, api);
- return initialState;
-};
-const subscribeWithSelector = subscribeWithSelectorImpl;
-
-const combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));
-
-function createJSONStorage(getStorage, options) {
- let storage;
- try {
- storage = getStorage();
- } catch (e) {
- return;
- }
- const persistStorage = {
- getItem: (name) => {
- var _a;
- const parse = (str2) => {
- if (str2 === null) {
- return null;
- }
- return JSON.parse(str2, options == null ? void 0 : options.reviver);
- };
- const str = (_a = storage.getItem(name)) != null ? _a : null;
- if (str instanceof Promise) {
- return str.then(parse);
- }
- return parse(str);
- },
- setItem: (name, newValue) => storage.setItem(
- name,
- JSON.stringify(newValue, options == null ? void 0 : options.replacer)
- ),
- removeItem: (name) => storage.removeItem(name)
- };
- return persistStorage;
-}
-const toThenable = (fn) => (input) => {
- try {
- const result = fn(input);
- if (result instanceof Promise) {
- return result;
- }
- return {
- then(onFulfilled) {
- return toThenable(onFulfilled)(result);
- },
- catch(_onRejected) {
- return this;
- }
- };
- } catch (e) {
- return {
- then(_onFulfilled) {
- return this;
- },
- catch(onRejected) {
- return toThenable(onRejected)(e);
- }
- };
- }
-};
-const oldImpl = (config, baseOptions) => (set, get, api) => {
- let options = {
- getStorage: () => localStorage,
- serialize: JSON.stringify,
- deserialize: JSON.parse,
- partialize: (state) => state,
- version: 0,
- merge: (persistedState, currentState) => ({
- ...currentState,
- ...persistedState
- }),
- ...baseOptions
- };
- let hasHydrated = false;
- const hydrationListeners = /* @__PURE__ */ new Set();
- const finishHydrationListeners = /* @__PURE__ */ new Set();
- let storage;
- try {
- storage = options.getStorage();
- } catch (e) {
- }
- if (!storage) {
- return config(
- (...args) => {
- console.warn(
- `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`
- );
- set(...args);
- },
- get,
- api
- );
- }
- const thenableSerialize = toThenable(options.serialize);
- const setItem = () => {
- const state = options.partialize({ ...get() });
- let errorInSync;
- const thenable = thenableSerialize({ state, version: options.version }).then(
- (serializedValue) => storage.setItem(options.name, serializedValue)
- ).catch((e) => {
- errorInSync = e;
- });
- if (errorInSync) {
- throw errorInSync;
- }
- return thenable;
- };
- const savedSetState = api.setState;
- api.setState = (state, replace) => {
- savedSetState(state, replace);
- void setItem();
- };
- const configResult = config(
- (...args) => {
- set(...args);
- void setItem();
- },
- get,
- api
- );
- let stateFromStorage;
- const hydrate = () => {
- var _a;
- if (!storage)
- return;
- hasHydrated = false;
- hydrationListeners.forEach((cb) => cb(get()));
- const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;
- return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {
- if (storageValue) {
- return options.deserialize(storageValue);
- }
- }).then((deserializedStorageValue) => {
- if (deserializedStorageValue) {
- if (typeof deserializedStorageValue.version === "number" && deserializedStorageValue.version !== options.version) {
- if (options.migrate) {
- return options.migrate(
- deserializedStorageValue.state,
- deserializedStorageValue.version
- );
- }
- console.error(
- `State loaded from storage couldn't be migrated since no migrate function was provided`
- );
- } else {
- return deserializedStorageValue.state;
- }
- }
- }).then((migratedState) => {
- var _a2;
- stateFromStorage = options.merge(
- migratedState,
- (_a2 = get()) != null ? _a2 : configResult
- );
- set(stateFromStorage, true);
- return setItem();
- }).then(() => {
- postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);
- hasHydrated = true;
- finishHydrationListeners.forEach((cb) => cb(stateFromStorage));
- }).catch((e) => {
- postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);
- });
- };
- api.persist = {
- setOptions: (newOptions) => {
- options = {
- ...options,
- ...newOptions
- };
- if (newOptions.getStorage) {
- storage = newOptions.getStorage();
- }
- },
- clearStorage: () => {
- storage == null ? void 0 : storage.removeItem(options.name);
- },
- getOptions: () => options,
- rehydrate: () => hydrate(),
- hasHydrated: () => hasHydrated,
- onHydrate: (cb) => {
- hydrationListeners.add(cb);
- return () => {
- hydrationListeners.delete(cb);
- };
- },
- onFinishHydration: (cb) => {
- finishHydrationListeners.add(cb);
- return () => {
- finishHydrationListeners.delete(cb);
- };
- }
- };
- hydrate();
- return stateFromStorage || configResult;
-};
-const newImpl = (config, baseOptions) => (set, get, api) => {
- let options = {
- storage: createJSONStorage(() => localStorage),
- partialize: (state) => state,
- version: 0,
- merge: (persistedState, currentState) => ({
- ...currentState,
- ...persistedState
- }),
- ...baseOptions
- };
- let hasHydrated = false;
- const hydrationListeners = /* @__PURE__ */ new Set();
- const finishHydrationListeners = /* @__PURE__ */ new Set();
- let storage = options.storage;
- if (!storage) {
- return config(
- (...args) => {
- console.warn(
- `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`
- );
- set(...args);
- },
- get,
- api
- );
- }
- const setItem = () => {
- const state = options.partialize({ ...get() });
- return storage.setItem(options.name, {
- state,
- version: options.version
- });
- };
- const savedSetState = api.setState;
- api.setState = (state, replace) => {
- savedSetState(state, replace);
- void setItem();
- };
- const configResult = config(
- (...args) => {
- set(...args);
- void setItem();
- },
- get,
- api
- );
- let stateFromStorage;
- const hydrate = () => {
- var _a, _b;
- if (!storage)
- return;
- hasHydrated = false;
- hydrationListeners.forEach((cb) => {
- var _a2;
- return cb((_a2 = get()) != null ? _a2 : configResult);
- });
- const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;
- return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {
- if (deserializedStorageValue) {
- if (typeof deserializedStorageValue.version === "number" && deserializedStorageValue.version !== options.version) {
- if (options.migrate) {
- return options.migrate(
- deserializedStorageValue.state,
- deserializedStorageValue.version
- );
- }
- console.error(
- `State loaded from storage couldn't be migrated since no migrate function was provided`
- );
- } else {
- return deserializedStorageValue.state;
- }
- }
- }).then((migratedState) => {
- var _a2;
- stateFromStorage = options.merge(
- migratedState,
- (_a2 = get()) != null ? _a2 : configResult
- );
- set(stateFromStorage, true);
- return setItem();
- }).then(() => {
- postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);
- stateFromStorage = get();
- hasHydrated = true;
- finishHydrationListeners.forEach((cb) => cb(stateFromStorage));
- }).catch((e) => {
- postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);
- });
- };
- api.persist = {
- setOptions: (newOptions) => {
- options = {
- ...options,
- ...newOptions
- };
- if (newOptions.storage) {
- storage = newOptions.storage;
- }
- },
- clearStorage: () => {
- storage == null ? void 0 : storage.removeItem(options.name);
- },
- getOptions: () => options,
- rehydrate: () => hydrate(),
- hasHydrated: () => hasHydrated,
- onHydrate: (cb) => {
- hydrationListeners.add(cb);
- return () => {
- hydrationListeners.delete(cb);
- };
- },
- onFinishHydration: (cb) => {
- finishHydrationListeners.add(cb);
- return () => {
- finishHydrationListeners.delete(cb);
- };
- }
- };
- if (!options.skipHydration) {
- hydrate();
- }
- return stateFromStorage || configResult;
-};
-const persistImpl = (config, baseOptions) => {
- if ("getStorage" in baseOptions || "serialize" in baseOptions || "deserialize" in baseOptions) {
- if (process.env.NODE_ENV !== "production") {
- console.warn(
- "[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."
- );
- }
- return oldImpl(config, baseOptions);
- }
- return newImpl(config, baseOptions);
-};
-const persist = persistImpl;
-
-export { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };
diff --git a/node_modules/zustand/esm/middleware.mjs b/node_modules/zustand/esm/middleware.mjs
deleted file mode 100644
index c0b9cad..0000000
--- a/node_modules/zustand/esm/middleware.mjs
+++ /dev/null
@@ -1,583 +0,0 @@
-const reduxImpl = (reducer, initial) => (set, _get, api) => {
- api.dispatch = (action) => {
- set((state) => reducer(state, action), false, action);
- return action;
- };
- api.dispatchFromDevtools = true;
- return { dispatch: (...a) => api.dispatch(...a), ...initial };
-};
-const redux = reduxImpl;
-
-const trackedConnections = /* @__PURE__ */ new Map();
-const getTrackedConnectionState = (name) => {
- const api = trackedConnections.get(name);
- if (!api)
- return {};
- return Object.fromEntries(
- Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])
- );
-};
-const extractConnectionInformation = (store, extensionConnector, options) => {
- if (store === void 0) {
- return {
- type: "untracked",
- connection: extensionConnector.connect(options)
- };
- }
- const existingConnection = trackedConnections.get(options.name);
- if (existingConnection) {
- return { type: "tracked", store, ...existingConnection };
- }
- const newConnection = {
- connection: extensionConnector.connect(options),
- stores: {}
- };
- trackedConnections.set(options.name, newConnection);
- return { type: "tracked", store, ...newConnection };
-};
-const devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {
- const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;
- let extensionConnector;
- try {
- extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== "production") && window.__REDUX_DEVTOOLS_EXTENSION__;
- } catch (e) {
- }
- if (!extensionConnector) {
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && enabled) {
- console.warn(
- "[zustand devtools middleware] Please install/enable Redux devtools extension"
- );
- }
- return fn(set, get, api);
- }
- const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);
- let isRecording = true;
- api.setState = (state, replace, nameOrAction) => {
- const r = set(state, replace);
- if (!isRecording)
- return r;
- const action = nameOrAction === void 0 ? { type: anonymousActionType || "anonymous" } : typeof nameOrAction === "string" ? { type: nameOrAction } : nameOrAction;
- if (store === void 0) {
- connection == null ? void 0 : connection.send(action, get());
- return r;
- }
- connection == null ? void 0 : connection.send(
- {
- ...action,
- type: `${store}/${action.type}`
- },
- {
- ...getTrackedConnectionState(options.name),
- [store]: api.getState()
- }
- );
- return r;
- };
- const setStateFromDevtools = (...a) => {
- const originalIsRecording = isRecording;
- isRecording = false;
- set(...a);
- isRecording = originalIsRecording;
- };
- const initialState = fn(api.setState, get, api);
- if (connectionInformation.type === "untracked") {
- connection == null ? void 0 : connection.init(initialState);
- } else {
- connectionInformation.stores[connectionInformation.store] = api;
- connection == null ? void 0 : connection.init(
- Object.fromEntries(
- Object.entries(connectionInformation.stores).map(([key, store2]) => [
- key,
- key === connectionInformation.store ? initialState : store2.getState()
- ])
- )
- );
- }
- if (api.dispatchFromDevtools && typeof api.dispatch === "function") {
- let didWarnAboutReservedActionType = false;
- const originalDispatch = api.dispatch;
- api.dispatch = (...a) => {
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production" && a[0].type === "__setState" && !didWarnAboutReservedActionType) {
- console.warn(
- '[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'
- );
- didWarnAboutReservedActionType = true;
- }
- originalDispatch(...a);
- };
- }
- connection.subscribe((message) => {
- var _a;
- switch (message.type) {
- case "ACTION":
- if (typeof message.payload !== "string") {
- console.error(
- "[zustand devtools middleware] Unsupported action format"
- );
- return;
- }
- return parseJsonThen(
- message.payload,
- (action) => {
- if (action.type === "__setState") {
- if (store === void 0) {
- setStateFromDevtools(action.state);
- return;
- }
- if (Object.keys(action.state).length !== 1) {
- console.error(
- `
- [zustand devtools middleware] Unsupported __setState action format.
- When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
- and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
- `
- );
- }
- const stateFromDevtools = action.state[store];
- if (stateFromDevtools === void 0 || stateFromDevtools === null) {
- return;
- }
- if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {
- setStateFromDevtools(stateFromDevtools);
- }
- return;
- }
- if (!api.dispatchFromDevtools)
- return;
- if (typeof api.dispatch !== "function")
- return;
- api.dispatch(action);
- }
- );
- case "DISPATCH":
- switch (message.payload.type) {
- case "RESET":
- setStateFromDevtools(initialState);
- if (store === void 0) {
- return connection == null ? void 0 : connection.init(api.getState());
- }
- return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));
- case "COMMIT":
- if (store === void 0) {
- connection == null ? void 0 : connection.init(api.getState());
- return;
- }
- return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));
- case "ROLLBACK":
- return parseJsonThen(message.state, (state) => {
- if (store === void 0) {
- setStateFromDevtools(state);
- connection == null ? void 0 : connection.init(api.getState());
- return;
- }
- setStateFromDevtools(state[store]);
- connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));
- });
- case "JUMP_TO_STATE":
- case "JUMP_TO_ACTION":
- return parseJsonThen(message.state, (state) => {
- if (store === void 0) {
- setStateFromDevtools(state);
- return;
- }
- if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {
- setStateFromDevtools(state[store]);
- }
- });
- case "IMPORT_STATE": {
- const { nextLiftedState } = message.payload;
- const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;
- if (!lastComputedState)
- return;
- if (store === void 0) {
- setStateFromDevtools(lastComputedState);
- } else {
- setStateFromDevtools(lastComputedState[store]);
- }
- connection == null ? void 0 : connection.send(
- null,
- // FIXME no-any
- nextLiftedState
- );
- return;
- }
- case "PAUSE_RECORDING":
- return isRecording = !isRecording;
- }
- return;
- }
- });
- return initialState;
-};
-const devtools = devtoolsImpl;
-const parseJsonThen = (stringified, f) => {
- let parsed;
- try {
- parsed = JSON.parse(stringified);
- } catch (e) {
- console.error(
- "[zustand devtools middleware] Could not parse the received json",
- e
- );
- }
- if (parsed !== void 0)
- f(parsed);
-};
-
-const subscribeWithSelectorImpl = (fn) => (set, get, api) => {
- const origSubscribe = api.subscribe;
- api.subscribe = (selector, optListener, options) => {
- let listener = selector;
- if (optListener) {
- const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;
- let currentSlice = selector(api.getState());
- listener = (state) => {
- const nextSlice = selector(state);
- if (!equalityFn(currentSlice, nextSlice)) {
- const previousSlice = currentSlice;
- optListener(currentSlice = nextSlice, previousSlice);
- }
- };
- if (options == null ? void 0 : options.fireImmediately) {
- optListener(currentSlice, currentSlice);
- }
- }
- return origSubscribe(listener);
- };
- const initialState = fn(set, get, api);
- return initialState;
-};
-const subscribeWithSelector = subscribeWithSelectorImpl;
-
-const combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));
-
-function createJSONStorage(getStorage, options) {
- let storage;
- try {
- storage = getStorage();
- } catch (e) {
- return;
- }
- const persistStorage = {
- getItem: (name) => {
- var _a;
- const parse = (str2) => {
- if (str2 === null) {
- return null;
- }
- return JSON.parse(str2, options == null ? void 0 : options.reviver);
- };
- const str = (_a = storage.getItem(name)) != null ? _a : null;
- if (str instanceof Promise) {
- return str.then(parse);
- }
- return parse(str);
- },
- setItem: (name, newValue) => storage.setItem(
- name,
- JSON.stringify(newValue, options == null ? void 0 : options.replacer)
- ),
- removeItem: (name) => storage.removeItem(name)
- };
- return persistStorage;
-}
-const toThenable = (fn) => (input) => {
- try {
- const result = fn(input);
- if (result instanceof Promise) {
- return result;
- }
- return {
- then(onFulfilled) {
- return toThenable(onFulfilled)(result);
- },
- catch(_onRejected) {
- return this;
- }
- };
- } catch (e) {
- return {
- then(_onFulfilled) {
- return this;
- },
- catch(onRejected) {
- return toThenable(onRejected)(e);
- }
- };
- }
-};
-const oldImpl = (config, baseOptions) => (set, get, api) => {
- let options = {
- getStorage: () => localStorage,
- serialize: JSON.stringify,
- deserialize: JSON.parse,
- partialize: (state) => state,
- version: 0,
- merge: (persistedState, currentState) => ({
- ...currentState,
- ...persistedState
- }),
- ...baseOptions
- };
- let hasHydrated = false;
- const hydrationListeners = /* @__PURE__ */ new Set();
- const finishHydrationListeners = /* @__PURE__ */ new Set();
- let storage;
- try {
- storage = options.getStorage();
- } catch (e) {
- }
- if (!storage) {
- return config(
- (...args) => {
- console.warn(
- `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`
- );
- set(...args);
- },
- get,
- api
- );
- }
- const thenableSerialize = toThenable(options.serialize);
- const setItem = () => {
- const state = options.partialize({ ...get() });
- let errorInSync;
- const thenable = thenableSerialize({ state, version: options.version }).then(
- (serializedValue) => storage.setItem(options.name, serializedValue)
- ).catch((e) => {
- errorInSync = e;
- });
- if (errorInSync) {
- throw errorInSync;
- }
- return thenable;
- };
- const savedSetState = api.setState;
- api.setState = (state, replace) => {
- savedSetState(state, replace);
- void setItem();
- };
- const configResult = config(
- (...args) => {
- set(...args);
- void setItem();
- },
- get,
- api
- );
- let stateFromStorage;
- const hydrate = () => {
- var _a;
- if (!storage)
- return;
- hasHydrated = false;
- hydrationListeners.forEach((cb) => cb(get()));
- const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;
- return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {
- if (storageValue) {
- return options.deserialize(storageValue);
- }
- }).then((deserializedStorageValue) => {
- if (deserializedStorageValue) {
- if (typeof deserializedStorageValue.version === "number" && deserializedStorageValue.version !== options.version) {
- if (options.migrate) {
- return options.migrate(
- deserializedStorageValue.state,
- deserializedStorageValue.version
- );
- }
- console.error(
- `State loaded from storage couldn't be migrated since no migrate function was provided`
- );
- } else {
- return deserializedStorageValue.state;
- }
- }
- }).then((migratedState) => {
- var _a2;
- stateFromStorage = options.merge(
- migratedState,
- (_a2 = get()) != null ? _a2 : configResult
- );
- set(stateFromStorage, true);
- return setItem();
- }).then(() => {
- postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);
- hasHydrated = true;
- finishHydrationListeners.forEach((cb) => cb(stateFromStorage));
- }).catch((e) => {
- postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);
- });
- };
- api.persist = {
- setOptions: (newOptions) => {
- options = {
- ...options,
- ...newOptions
- };
- if (newOptions.getStorage) {
- storage = newOptions.getStorage();
- }
- },
- clearStorage: () => {
- storage == null ? void 0 : storage.removeItem(options.name);
- },
- getOptions: () => options,
- rehydrate: () => hydrate(),
- hasHydrated: () => hasHydrated,
- onHydrate: (cb) => {
- hydrationListeners.add(cb);
- return () => {
- hydrationListeners.delete(cb);
- };
- },
- onFinishHydration: (cb) => {
- finishHydrationListeners.add(cb);
- return () => {
- finishHydrationListeners.delete(cb);
- };
- }
- };
- hydrate();
- return stateFromStorage || configResult;
-};
-const newImpl = (config, baseOptions) => (set, get, api) => {
- let options = {
- storage: createJSONStorage(() => localStorage),
- partialize: (state) => state,
- version: 0,
- merge: (persistedState, currentState) => ({
- ...currentState,
- ...persistedState
- }),
- ...baseOptions
- };
- let hasHydrated = false;
- const hydrationListeners = /* @__PURE__ */ new Set();
- const finishHydrationListeners = /* @__PURE__ */ new Set();
- let storage = options.storage;
- if (!storage) {
- return config(
- (...args) => {
- console.warn(
- `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`
- );
- set(...args);
- },
- get,
- api
- );
- }
- const setItem = () => {
- const state = options.partialize({ ...get() });
- return storage.setItem(options.name, {
- state,
- version: options.version
- });
- };
- const savedSetState = api.setState;
- api.setState = (state, replace) => {
- savedSetState(state, replace);
- void setItem();
- };
- const configResult = config(
- (...args) => {
- set(...args);
- void setItem();
- },
- get,
- api
- );
- let stateFromStorage;
- const hydrate = () => {
- var _a, _b;
- if (!storage)
- return;
- hasHydrated = false;
- hydrationListeners.forEach((cb) => {
- var _a2;
- return cb((_a2 = get()) != null ? _a2 : configResult);
- });
- const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;
- return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {
- if (deserializedStorageValue) {
- if (typeof deserializedStorageValue.version === "number" && deserializedStorageValue.version !== options.version) {
- if (options.migrate) {
- return options.migrate(
- deserializedStorageValue.state,
- deserializedStorageValue.version
- );
- }
- console.error(
- `State loaded from storage couldn't be migrated since no migrate function was provided`
- );
- } else {
- return deserializedStorageValue.state;
- }
- }
- }).then((migratedState) => {
- var _a2;
- stateFromStorage = options.merge(
- migratedState,
- (_a2 = get()) != null ? _a2 : configResult
- );
- set(stateFromStorage, true);
- return setItem();
- }).then(() => {
- postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);
- stateFromStorage = get();
- hasHydrated = true;
- finishHydrationListeners.forEach((cb) => cb(stateFromStorage));
- }).catch((e) => {
- postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);
- });
- };
- api.persist = {
- setOptions: (newOptions) => {
- options = {
- ...options,
- ...newOptions
- };
- if (newOptions.storage) {
- storage = newOptions.storage;
- }
- },
- clearStorage: () => {
- storage == null ? void 0 : storage.removeItem(options.name);
- },
- getOptions: () => options,
- rehydrate: () => hydrate(),
- hasHydrated: () => hasHydrated,
- onHydrate: (cb) => {
- hydrationListeners.add(cb);
- return () => {
- hydrationListeners.delete(cb);
- };
- },
- onFinishHydration: (cb) => {
- finishHydrationListeners.add(cb);
- return () => {
- finishHydrationListeners.delete(cb);
- };
- }
- };
- if (!options.skipHydration) {
- hydrate();
- }
- return stateFromStorage || configResult;
-};
-const persistImpl = (config, baseOptions) => {
- if ("getStorage" in baseOptions || "serialize" in baseOptions || "deserialize" in baseOptions) {
- if ((import.meta.env ? import.meta.env.MODE : void 0) !== "production") {
- console.warn(
- "[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."
- );
- }
- return oldImpl(config, baseOptions);
- }
- return newImpl(config, baseOptions);
-};
-const persist = persistImpl;
-
-export { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };
diff --git a/node_modules/zustand/esm/middleware/combine.d.mts b/node_modules/zustand/esm/middleware/combine.d.mts
deleted file mode 100644
index d6ebb81..0000000
--- a/node_modules/zustand/esm/middleware/combine.d.mts
+++ /dev/null
@@ -1,5 +0,0 @@
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla.mjs';
-type Write = Omit & U;
-type Combine = (initialState: T, additionalStateCreator: StateCreator) => StateCreator, Mps, Mcs>;
-export declare const combine: Combine;
-export {};
diff --git a/node_modules/zustand/esm/middleware/combine.d.ts b/node_modules/zustand/esm/middleware/combine.d.ts
deleted file mode 100644
index 6e9d2d1..0000000
--- a/node_modules/zustand/esm/middleware/combine.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla';
-type Write = Omit & U;
-type Combine = (initialState: T, additionalStateCreator: StateCreator) => StateCreator, Mps, Mcs>;
-export declare const combine: Combine;
-export {};
diff --git a/node_modules/zustand/esm/middleware/devtools.d.mts b/node_modules/zustand/esm/middleware/devtools.d.mts
deleted file mode 100644
index b7624c0..0000000
--- a/node_modules/zustand/esm/middleware/devtools.d.mts
+++ /dev/null
@@ -1,49 +0,0 @@
-import type { StateCreator, StoreApi, StoreMutatorIdentifier } from '../vanilla.mjs';
-type Config = Parameters<(Window extends {
- __REDUX_DEVTOOLS_EXTENSION__?: infer T;
-} ? T : {
- connect: (param: any) => any;
-})['connect']>[0];
-declare module '../vanilla.mjs' {
- interface StoreMutators {
- 'zustand/devtools': WithDevtools;
- }
-}
-type Cast = T extends U ? T : U;
-type Write = Omit & U;
-type TakeTwo = T extends {
- length: 0;
-} ? [undefined, undefined] : T extends {
- length: 1;
-} ? [...a0: Cast, a1: undefined] : T extends {
- length: 0 | 1;
-} ? [...a0: Cast, a1: undefined] : T extends {
- length: 2;
-} ? T : T extends {
- length: 1 | 2;
-} ? T : T extends {
- length: 0 | 1 | 2;
-} ? T : T extends [infer A0, infer A1, ...unknown[]] ? [A0, A1] : T extends [infer A0, (infer A1)?, ...unknown[]] ? [A0, A1?] : T extends [(infer A0)?, (infer A1)?, ...unknown[]] ? [A0?, A1?] : never;
-type WithDevtools = Write>;
-type StoreDevtools = S extends {
- setState: (...a: infer Sa) => infer Sr;
-} ? {
- setState(...a: [...a: TakeTwo, action?: A]): Sr;
-} : never;
-export interface DevtoolsOptions extends Config {
- name?: string;
- enabled?: boolean;
- anonymousActionType?: string;
- store?: string;
-}
-type Devtools = (initializer: StateCreator, devtoolsOptions?: DevtoolsOptions) => StateCreator;
-declare module '../vanilla.mjs' {
- interface StoreMutators {
- 'zustand/devtools': WithDevtools;
- }
-}
-export type NamedSet = WithDevtools>['setState'];
-export declare const devtools: Devtools;
-export {};
diff --git a/node_modules/zustand/esm/middleware/devtools.d.ts b/node_modules/zustand/esm/middleware/devtools.d.ts
deleted file mode 100644
index 34489bd..0000000
--- a/node_modules/zustand/esm/middleware/devtools.d.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import type { StateCreator, StoreApi, StoreMutatorIdentifier } from '../vanilla';
-type Config = Parameters<(Window extends {
- __REDUX_DEVTOOLS_EXTENSION__?: infer T;
-} ? T : {
- connect: (param: any) => any;
-})['connect']>[0];
-declare module '../vanilla' {
- interface StoreMutators {
- 'zustand/devtools': WithDevtools;
- }
-}
-type Cast = T extends U ? T : U;
-type Write = Omit & U;
-type TakeTwo = T extends {
- length: 0;
-} ? [undefined, undefined] : T extends {
- length: 1;
-} ? [...a0: Cast, a1: undefined] : T extends {
- length: 0 | 1;
-} ? [...a0: Cast, a1: undefined] : T extends {
- length: 2;
-} ? T : T extends {
- length: 1 | 2;
-} ? T : T extends {
- length: 0 | 1 | 2;
-} ? T : T extends [infer A0, infer A1, ...unknown[]] ? [A0, A1] : T extends [infer A0, (infer A1)?, ...unknown[]] ? [A0, A1?] : T extends [(infer A0)?, (infer A1)?, ...unknown[]] ? [A0?, A1?] : never;
-type WithDevtools = Write>;
-type StoreDevtools = S extends {
- setState: (...a: infer Sa) => infer Sr;
-} ? {
- setState(...a: [...a: TakeTwo, action?: A]): Sr;
-} : never;
-export interface DevtoolsOptions extends Config {
- name?: string;
- enabled?: boolean;
- anonymousActionType?: string;
- store?: string;
-}
-type Devtools = (initializer: StateCreator, devtoolsOptions?: DevtoolsOptions) => StateCreator;
-declare module '../vanilla' {
- interface StoreMutators {
- 'zustand/devtools': WithDevtools;
- }
-}
-export type NamedSet = WithDevtools>['setState'];
-export declare const devtools: Devtools;
-export {};
diff --git a/node_modules/zustand/esm/middleware/immer.d.mts b/node_modules/zustand/esm/middleware/immer.d.mts
deleted file mode 100644
index 27bc45f..0000000
--- a/node_modules/zustand/esm/middleware/immer.d.mts
+++ /dev/null
@@ -1,25 +0,0 @@
-import type { Draft } from 'immer';
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla.mjs';
-type Immer = (initializer: StateCreator) => StateCreator;
-declare module '../vanilla.mjs' {
- interface StoreMutators {
- ['zustand/immer']: WithImmer;
- }
-}
-type Write = Omit & U;
-type SkipTwo = T extends {
- length: 0;
-} ? [] : T extends {
- length: 1;
-} ? [] : T extends {
- length: 0 | 1;
-} ? [] : T extends [unknown, unknown, ...infer A] ? A : T extends [unknown, unknown?, ...infer A] ? A : T extends [unknown?, unknown?, ...infer A] ? A : never;
-type WithImmer = Write>;
-type StoreImmer = S extends {
- getState: () => infer T;
- setState: infer SetState;
-} ? SetState extends (...a: infer A) => infer Sr ? {
- setState(nextStateOrUpdater: T | Partial | ((state: Draft) => void), shouldReplace?: boolean | undefined, ...a: SkipTwo): Sr;
-} : never : never;
-export declare const immer: Immer;
-export {};
diff --git a/node_modules/zustand/esm/middleware/immer.d.ts b/node_modules/zustand/esm/middleware/immer.d.ts
deleted file mode 100644
index e770ab3..0000000
--- a/node_modules/zustand/esm/middleware/immer.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import type { Draft } from 'immer';
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla';
-type Immer = (initializer: StateCreator) => StateCreator;
-declare module '../vanilla' {
- interface StoreMutators {
- ['zustand/immer']: WithImmer;
- }
-}
-type Write = Omit & U;
-type SkipTwo = T extends {
- length: 0;
-} ? [] : T extends {
- length: 1;
-} ? [] : T extends {
- length: 0 | 1;
-} ? [] : T extends [unknown, unknown, ...infer A] ? A : T extends [unknown, unknown?, ...infer A] ? A : T extends [unknown?, unknown?, ...infer A] ? A : never;
-type WithImmer = Write>;
-type StoreImmer = S extends {
- getState: () => infer T;
- setState: infer SetState;
-} ? SetState extends (...a: infer A) => infer Sr ? {
- setState(nextStateOrUpdater: T | Partial | ((state: Draft) => void), shouldReplace?: boolean | undefined, ...a: SkipTwo): Sr;
-} : never : never;
-export declare const immer: Immer;
-export {};
diff --git a/node_modules/zustand/esm/middleware/immer.js b/node_modules/zustand/esm/middleware/immer.js
deleted file mode 100644
index 4c12d2a..0000000
--- a/node_modules/zustand/esm/middleware/immer.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { produce } from 'immer';
-
-const immerImpl = (initializer) => (set, get, store) => {
- store.setState = (updater, replace, ...a) => {
- const nextState = typeof updater === "function" ? produce(updater) : updater;
- return set(nextState, replace, ...a);
- };
- return initializer(store.setState, get, store);
-};
-const immer = immerImpl;
-
-export { immer };
diff --git a/node_modules/zustand/esm/middleware/immer.mjs b/node_modules/zustand/esm/middleware/immer.mjs
deleted file mode 100644
index 4c12d2a..0000000
--- a/node_modules/zustand/esm/middleware/immer.mjs
+++ /dev/null
@@ -1,12 +0,0 @@
-import { produce } from 'immer';
-
-const immerImpl = (initializer) => (set, get, store) => {
- store.setState = (updater, replace, ...a) => {
- const nextState = typeof updater === "function" ? produce(updater) : updater;
- return set(nextState, replace, ...a);
- };
- return initializer(store.setState, get, store);
-};
-const immer = immerImpl;
-
-export { immer };
diff --git a/node_modules/zustand/esm/middleware/persist.d.mts b/node_modules/zustand/esm/middleware/persist.d.mts
deleted file mode 100644
index 529bf05..0000000
--- a/node_modules/zustand/esm/middleware/persist.d.mts
+++ /dev/null
@@ -1,119 +0,0 @@
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla.mjs';
-export interface StateStorage {
- getItem: (name: string) => string | null | Promise;
- setItem: (name: string, value: string) => void | Promise;
- removeItem: (name: string) => void | Promise;
-}
-export type StorageValue = {
- state: S;
- version?: number;
-};
-export interface PersistStorage {
- getItem: (name: string) => StorageValue | null | Promise | null>;
- setItem: (name: string, value: StorageValue) => void | Promise;
- removeItem: (name: string) => void | Promise;
-}
-type JsonStorageOptions = {
- reviver?: (key: string, value: unknown) => unknown;
- replacer?: (key: string, value: unknown) => unknown;
-};
-export declare function createJSONStorage(getStorage: () => StateStorage, options?: JsonStorageOptions): PersistStorage | undefined;
-export interface PersistOptions {
- /** Name of the storage (must be unique) */
- name: string;
- /**
- * @deprecated Use `storage` instead.
- * A function returning a storage.
- * The storage must fit `window.localStorage`'s api (or an async version of it).
- * For example the storage could be `AsyncStorage` from React Native.
- *
- * @default () => localStorage
- */
- getStorage?: () => StateStorage;
- /**
- * @deprecated Use `storage` instead.
- * Use a custom serializer.
- * The returned string will be stored in the storage.
- *
- * @default JSON.stringify
- */
- serialize?: (state: StorageValue) => string | Promise;
- /**
- * @deprecated Use `storage` instead.
- * Use a custom deserializer.
- * Must return an object matching StorageValue
- *
- * @param str The storage's current value.
- * @default JSON.parse
- */
- deserialize?: (str: string) => StorageValue | Promise>;
- /**
- * Use a custom persist storage.
- *
- * Combining `createJSONStorage` helps creating a persist storage
- * with JSON.parse and JSON.stringify.
- *
- * @default createJSONStorage(() => localStorage)
- */
- storage?: PersistStorage | undefined;
- /**
- * Filter the persisted value.
- *
- * @params state The state's value
- */
- partialize?: (state: S) => PersistedState;
- /**
- * A function returning another (optional) function.
- * The main function will be called before the state rehydration.
- * The returned function will be called after the state rehydration or when an error occurred.
- */
- onRehydrateStorage?: (state: S) => ((state?: S, error?: unknown) => void) | void;
- /**
- * If the stored state's version mismatch the one specified here, the storage will not be used.
- * This is useful when adding a breaking change to your store.
- */
- version?: number;
- /**
- * A function to perform persisted state migration.
- * This function will be called when persisted state versions mismatch with the one specified here.
- */
- migrate?: (persistedState: unknown, version: number) => S | Promise;
- /**
- * A function to perform custom hydration merges when combining the stored state with the current one.
- * By default, this function does a shallow merge.
- */
- merge?: (persistedState: unknown, currentState: S) => S;
- /**
- * An optional boolean that will prevent the persist middleware from triggering hydration on initialization,
- * This allows you to call `rehydrate()` at a specific point in your apps rendering life-cycle.
- *
- * This is useful in SSR application.
- *
- * @default false
- */
- skipHydration?: boolean;
-}
-type PersistListener = (state: S) => void;
-type StorePersist = {
- persist: {
- setOptions: (options: Partial>) => void;
- clearStorage: () => void;
- rehydrate: () => Promise | void;
- hasHydrated: () => boolean;
- onHydrate: (fn: PersistListener) => () => void;
- onFinishHydration: (fn: PersistListener) => () => void;
- getOptions: () => Partial>;
- };
-};
-type Persist = (initializer: StateCreator, options: PersistOptions) => StateCreator;
-declare module '../vanilla.mjs' {
- interface StoreMutators {
- 'zustand/persist': WithPersist;
- }
-}
-type Write = Omit & U;
-type WithPersist = S extends {
- getState: () => infer T;
-} ? Write> : never;
-export declare const persist: Persist;
-export {};
diff --git a/node_modules/zustand/esm/middleware/persist.d.ts b/node_modules/zustand/esm/middleware/persist.d.ts
deleted file mode 100644
index 829951c..0000000
--- a/node_modules/zustand/esm/middleware/persist.d.ts
+++ /dev/null
@@ -1,119 +0,0 @@
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla';
-export interface StateStorage {
- getItem: (name: string) => string | null | Promise;
- setItem: (name: string, value: string) => void | Promise;
- removeItem: (name: string) => void | Promise;
-}
-export type StorageValue = {
- state: S;
- version?: number;
-};
-export interface PersistStorage {
- getItem: (name: string) => StorageValue | null | Promise | null>;
- setItem: (name: string, value: StorageValue) => void | Promise;
- removeItem: (name: string) => void | Promise;
-}
-type JsonStorageOptions = {
- reviver?: (key: string, value: unknown) => unknown;
- replacer?: (key: string, value: unknown) => unknown;
-};
-export declare function createJSONStorage(getStorage: () => StateStorage, options?: JsonStorageOptions): PersistStorage | undefined;
-export interface PersistOptions {
- /** Name of the storage (must be unique) */
- name: string;
- /**
- * @deprecated Use `storage` instead.
- * A function returning a storage.
- * The storage must fit `window.localStorage`'s api (or an async version of it).
- * For example the storage could be `AsyncStorage` from React Native.
- *
- * @default () => localStorage
- */
- getStorage?: () => StateStorage;
- /**
- * @deprecated Use `storage` instead.
- * Use a custom serializer.
- * The returned string will be stored in the storage.
- *
- * @default JSON.stringify
- */
- serialize?: (state: StorageValue) => string | Promise;
- /**
- * @deprecated Use `storage` instead.
- * Use a custom deserializer.
- * Must return an object matching StorageValue
- *
- * @param str The storage's current value.
- * @default JSON.parse
- */
- deserialize?: (str: string) => StorageValue | Promise>;
- /**
- * Use a custom persist storage.
- *
- * Combining `createJSONStorage` helps creating a persist storage
- * with JSON.parse and JSON.stringify.
- *
- * @default createJSONStorage(() => localStorage)
- */
- storage?: PersistStorage | undefined;
- /**
- * Filter the persisted value.
- *
- * @params state The state's value
- */
- partialize?: (state: S) => PersistedState;
- /**
- * A function returning another (optional) function.
- * The main function will be called before the state rehydration.
- * The returned function will be called after the state rehydration or when an error occurred.
- */
- onRehydrateStorage?: (state: S) => ((state?: S, error?: unknown) => void) | void;
- /**
- * If the stored state's version mismatch the one specified here, the storage will not be used.
- * This is useful when adding a breaking change to your store.
- */
- version?: number;
- /**
- * A function to perform persisted state migration.
- * This function will be called when persisted state versions mismatch with the one specified here.
- */
- migrate?: (persistedState: unknown, version: number) => S | Promise;
- /**
- * A function to perform custom hydration merges when combining the stored state with the current one.
- * By default, this function does a shallow merge.
- */
- merge?: (persistedState: unknown, currentState: S) => S;
- /**
- * An optional boolean that will prevent the persist middleware from triggering hydration on initialization,
- * This allows you to call `rehydrate()` at a specific point in your apps rendering life-cycle.
- *
- * This is useful in SSR application.
- *
- * @default false
- */
- skipHydration?: boolean;
-}
-type PersistListener = (state: S) => void;
-type StorePersist = {
- persist: {
- setOptions: (options: Partial>) => void;
- clearStorage: () => void;
- rehydrate: () => Promise | void;
- hasHydrated: () => boolean;
- onHydrate: (fn: PersistListener) => () => void;
- onFinishHydration: (fn: PersistListener) => () => void;
- getOptions: () => Partial>;
- };
-};
-type Persist = (initializer: StateCreator, options: PersistOptions) => StateCreator;
-declare module '../vanilla' {
- interface StoreMutators {
- 'zustand/persist': WithPersist;
- }
-}
-type Write = Omit & U;
-type WithPersist = S extends {
- getState: () => infer T;
-} ? Write> : never;
-export declare const persist: Persist;
-export {};
diff --git a/node_modules/zustand/esm/middleware/redux.d.mts b/node_modules/zustand/esm/middleware/redux.d.mts
deleted file mode 100644
index 567c3b8..0000000
--- a/node_modules/zustand/esm/middleware/redux.d.mts
+++ /dev/null
@@ -1,21 +0,0 @@
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla.mjs';
-type Write = Omit & U;
-type Action = {
- type: string;
-};
-type StoreRedux = {
- dispatch: (a: A) => A;
- dispatchFromDevtools: true;
-};
-type ReduxState = {
- dispatch: StoreRedux['dispatch'];
-};
-type WithRedux = Write>;
-type Redux = (reducer: (state: T, action: A) => T, initialState: T) => StateCreator>, Cms, [['zustand/redux', A]]>;
-declare module '../vanilla.mjs' {
- interface StoreMutators {
- 'zustand/redux': WithRedux;
- }
-}
-export declare const redux: Redux;
-export {};
diff --git a/node_modules/zustand/esm/middleware/redux.d.ts b/node_modules/zustand/esm/middleware/redux.d.ts
deleted file mode 100644
index 41a61e1..0000000
--- a/node_modules/zustand/esm/middleware/redux.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla';
-type Write = Omit & U;
-type Action = {
- type: string;
-};
-type StoreRedux = {
- dispatch: (a: A) => A;
- dispatchFromDevtools: true;
-};
-type ReduxState = {
- dispatch: StoreRedux['dispatch'];
-};
-type WithRedux = Write>;
-type Redux = (reducer: (state: T, action: A) => T, initialState: T) => StateCreator>, Cms, [['zustand/redux', A]]>;
-declare module '../vanilla' {
- interface StoreMutators {
- 'zustand/redux': WithRedux;
- }
-}
-export declare const redux: Redux;
-export {};
diff --git a/node_modules/zustand/esm/middleware/subscribeWithSelector.d.mts b/node_modules/zustand/esm/middleware/subscribeWithSelector.d.mts
deleted file mode 100644
index 306e853..0000000
--- a/node_modules/zustand/esm/middleware/subscribeWithSelector.d.mts
+++ /dev/null
@@ -1,25 +0,0 @@
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla.mjs';
-type SubscribeWithSelector = (initializer: StateCreator) => StateCreator;
-type Write = Omit & U;
-type WithSelectorSubscribe = S extends {
- getState: () => infer T;
-} ? Write> : never;
-declare module '../vanilla.mjs' {
- interface StoreMutators {
- ['zustand/subscribeWithSelector']: WithSelectorSubscribe;
- }
-}
-type StoreSubscribeWithSelector = {
- subscribe: {
- (listener: (selectedState: T, previousSelectedState: T) => void): () => void;
- (selector: (state: T) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
- equalityFn?: (a: U, b: U) => boolean;
- fireImmediately?: boolean;
- }): () => void;
- };
-};
-export declare const subscribeWithSelector: SubscribeWithSelector;
-export {};
diff --git a/node_modules/zustand/esm/middleware/subscribeWithSelector.d.ts b/node_modules/zustand/esm/middleware/subscribeWithSelector.d.ts
deleted file mode 100644
index 3243f26..0000000
--- a/node_modules/zustand/esm/middleware/subscribeWithSelector.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import type { StateCreator, StoreMutatorIdentifier } from '../vanilla';
-type SubscribeWithSelector = (initializer: StateCreator) => StateCreator;
-type Write = Omit & U;
-type WithSelectorSubscribe = S extends {
- getState: () => infer T;
-} ? Write> : never;
-declare module '../vanilla' {
- interface StoreMutators {
- ['zustand/subscribeWithSelector']: WithSelectorSubscribe;
- }
-}
-type StoreSubscribeWithSelector = {
- subscribe: {
- (listener: (selectedState: T, previousSelectedState: T) => void): () => void;
- (selector: (state: T) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
- equalityFn?: (a: U, b: U) => boolean;
- fireImmediately?: boolean;
- }): () => void;
- };
-};
-export declare const subscribeWithSelector: SubscribeWithSelector;
-export {};
diff --git a/node_modules/zustand/esm/react.d.mts b/node_modules/zustand/esm/react.d.mts
deleted file mode 100644
index 09a1b8e..0000000
--- a/node_modules/zustand/esm/react.d.mts
+++ /dev/null
@@ -1,37 +0,0 @@
-import type { Mutate, StateCreator, StoreApi, StoreMutatorIdentifier } from './vanilla.mjs';
-type ExtractState = S extends {
- getState: () => infer T;
-} ? T : never;
-type ReadonlyStoreApi