{" "}
@@ -56,7 +56,7 @@ const ViewToggle = ({ offset, isDesktop }: ViewSwitcherProps) => {
{" "}
@@ -65,7 +65,7 @@ const ViewToggle = ({ offset, isDesktop }: ViewSwitcherProps) => {
{" "}
diff --git a/src/pages/Desktop/ButtonPanel.tsx b/src/components/desktop/ButtonPanel.tsx
similarity index 72%
rename from src/pages/Desktop/ButtonPanel.tsx
rename to src/components/desktop/ButtonPanel.tsx
index 5312293..a4b6662 100644
--- a/src/pages/Desktop/ButtonPanel.tsx
+++ b/src/components/desktop/ButtonPanel.tsx
@@ -1,13 +1,12 @@
-import HelpButton from "../../components/HelpButton";
-import ResizeButton from "../../components/ResizeButton";
-import ViewToggle from "../../components/mobile/Appartment/ViewToggle";
+import HelpButton from "../HelpButton";
+import ResizeButton from "../ResizeButton";
+import ViewToggle from "../ViewToggle";
const ButtonPanel = () => {
return (
-
+
- {/*
*/}
void;
+};
+
+const ImagesButton = ({ onClick }: ImagesButtonProps) => {
+ return (
+
+ );
+};
+
+export default ImagesButton;
diff --git a/src/components/desktop/LayoutButton.tsx b/src/components/desktop/LayoutButton.tsx
new file mode 100644
index 0000000..0633425
--- /dev/null
+++ b/src/components/desktop/LayoutButton.tsx
@@ -0,0 +1,19 @@
+import LayoutIcon from "../../icons/LayoutIcon";
+
+type LayoutButtonProps = {
+ onClick: () => void;
+};
+
+const LayoutButton = ({ onClick }: LayoutButtonProps) => {
+ return (
+
+ );
+};
+
+export default LayoutButton;
diff --git a/src/components/desktop/LayoutsButtonContainer.tsx b/src/components/desktop/LayoutsButtonContainer.tsx
new file mode 100644
index 0000000..e996932
--- /dev/null
+++ b/src/components/desktop/LayoutsButtonContainer.tsx
@@ -0,0 +1,23 @@
+import ImagesButton from "./ImagesButton";
+import LayoutButton from "./LayoutButton";
+
+const LayoutsButtonContainer = () => {
+ return (
+
+ );
+};
+
+export default LayoutsButtonContainer;
diff --git a/src/components/desktop/ParameterDescription.tsx b/src/components/desktop/ParameterDescription.tsx
new file mode 100644
index 0000000..c426edf
--- /dev/null
+++ b/src/components/desktop/ParameterDescription.tsx
@@ -0,0 +1,37 @@
+import { Parameters } from "../../types/appartment";
+
+type ParameterDescriptionProps = {
+ params: Parameters;
+};
+
+const ParameterDescription = ({ params }: ParameterDescriptionProps) => {
+ return (
+
+
{params.type}
+
+
+
+
Villa Theme
+
{params.villaTheme}
+
+
+
Total no. of Bedrooms
+
{params.totalCountBedroms}
+
+
+
+
+
+
Plot area
+
{params.plotArea}
+
+
+
Total Build up Area
+
{params.totalBuildUpArea}
+
+
+
+ );
+};
+
+export default ParameterDescription;
diff --git a/src/components/mobile/Appartment/BackButton.tsx b/src/components/mobile/Appartment/BackButton.tsx
new file mode 100644
index 0000000..08a41d4
--- /dev/null
+++ b/src/components/mobile/Appartment/BackButton.tsx
@@ -0,0 +1,14 @@
+import BackIcon from "../../../icons/BackIcon";
+
+const BackButton = () => {
+ return (
+
+ );
+};
+
+export default BackButton;
diff --git a/src/components/mobile/Appartment/ButtonPanel.tsx b/src/components/mobile/Appartment/ButtonPanel.tsx
index baede1e..f64c031 100644
--- a/src/components/mobile/Appartment/ButtonPanel.tsx
+++ b/src/components/mobile/Appartment/ButtonPanel.tsx
@@ -1,9 +1,8 @@
-import BackIcon from "../../../icons/BackIcon";
-import HelpIcon from "../../../icons/HelpIcon";
import useStore from "../../../store/store";
import PopupModal from "./PopupModal";
import HelpPanel from "./HelpPanel";
import HelpButton from "../../HelpButton";
+import BackButton from "./BackButton";
const ButtonPanel = () => {
const { setModal, setPanel } = useStore();
@@ -17,19 +16,8 @@ const ButtonPanel = () => {
<>
{
-
+
- {/*
*/}
}
>
diff --git a/src/components/mobile/Appartment/Slider.tsx b/src/components/mobile/Appartment/LayoutSlider.tsx
similarity index 94%
rename from src/components/mobile/Appartment/Slider.tsx
rename to src/components/mobile/Appartment/LayoutSlider.tsx
index 06fbfce..3607a1e 100644
--- a/src/components/mobile/Appartment/Slider.tsx
+++ b/src/components/mobile/Appartment/LayoutSlider.tsx
@@ -2,11 +2,11 @@ import { useState } from "react";
import { useSwipeable } from "react-swipeable";
import { SliderType } from "../../../types/appartment";
-type SliderProps = {
+type LayoutSliderProps = {
sliders: SliderType[];
};
-const Slider = ({ sliders }: SliderProps) => {
+const LayoutSlider = ({ sliders }: LayoutSliderProps) => {
const [offset, setOffset] = useState(0);
const handleOnRight = () => {
@@ -74,4 +74,4 @@ const Slider = ({ sliders }: SliderProps) => {
);
};
-export default Slider;
+export default LayoutSlider;
diff --git a/src/components/mobile/Appartment/Parameters.tsx b/src/components/mobile/Appartment/Parameters.tsx
index 9f59dd5..ba87671 100644
--- a/src/components/mobile/Appartment/Parameters.tsx
+++ b/src/components/mobile/Appartment/Parameters.tsx
@@ -32,7 +32,7 @@ const Parameters = ({ parameters }: ParametersProps) => {
Total no. of Bedrooms
- {parameters.TotalCountBedroms}
+ {parameters.totalCountBedroms}
diff --git a/src/components/mobile/Appartment/ViewControllerModal.tsx b/src/components/mobile/Appartment/ViewControllerModal.tsx
index beb1566..d437cd2 100644
--- a/src/components/mobile/Appartment/ViewControllerModal.tsx
+++ b/src/components/mobile/Appartment/ViewControllerModal.tsx
@@ -3,9 +3,11 @@ import { SwipeEventData, useSwipeable } from "react-swipeable";
import ButtonSwipperIcon from "../../../icons/ButtonSwipperIcon";
import { Parameters as ParametersType } from "../../../types/appartment";
import Parameters from "./Parameters";
-import Slider from "./Slider";
+// import LayoutSlider from "./LayoutSlider";
+// import LayoutSlider from "./ImageSlider";
+import LayoutSlider from "./LayoutSlider";
import ImageSlider from "./ImageSlider";
-import ViewToggle from "./ViewToggle";
+import ViewToggle from "../../ViewToggle";
type ViewControllerModalProps = {
parameters: ParametersType;
@@ -67,7 +69,7 @@ const ViewControllerModal = ({ parameters }: ViewControllerModalProps) => {
className="h-[calc(100vh-110px)] overflow-y-scroll relative"
onScroll={handleOnScroll}
>
-
+
diff --git a/src/consts/viewParams.ts b/src/consts/viewParams.ts
index 23723d4..eceaca8 100644
--- a/src/consts/viewParams.ts
+++ b/src/consts/viewParams.ts
@@ -1,10 +1,10 @@
-import Parameters from "../components/mobile/Appartment/Parameters";
+import { Parameters } from "../types/appartment";
const A1MViewParams: Parameters = {
type: "A1M",
plotArea: "1080 Sq.m",
totalBuildUpArea: "472 Sq.m",
- TotalCountBedroms: 5,
+ totalCountBedroms: 5,
villaTheme: "Modern",
sliders: [
{
diff --git a/src/icons/ImagesIcon.tsx b/src/icons/ImagesIcon.tsx
new file mode 100644
index 0000000..6e9f78e
--- /dev/null
+++ b/src/icons/ImagesIcon.tsx
@@ -0,0 +1,27 @@
+const ImagesIcon = () => {
+ return (
+
+ );
+};
+
+export default ImagesIcon;
diff --git a/src/icons/LayoutIcon.tsx b/src/icons/LayoutIcon.tsx
new file mode 100644
index 0000000..ad81654
--- /dev/null
+++ b/src/icons/LayoutIcon.tsx
@@ -0,0 +1,18 @@
+const LayoutIcon = () => {
+ return (
+
+ );
+};
+
+export default LayoutIcon;
diff --git a/src/index.css b/src/index.css
index 99a27a1..7eb0648 100644
--- a/src/index.css
+++ b/src/index.css
@@ -1,5 +1,6 @@
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;600&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Noto+Sans:wght@500&display=swap");
+@import "https://js.arcgis.com/4.28/@arcgis/core/assets/esri/themes/light/main.css";
@tailwind base;
@tailwind components;
@@ -8,5 +9,5 @@
body {
font-family: "Montserrat", sans-serif;
font-family: "Noto Sans", sans-serif;
- background-color: #c7bdba;
+ background-color: #f3f2f0;
}
diff --git a/src/pages/Desktop/Apartment.tsx b/src/pages/Desktop/Apartment.tsx
index 0433933..87cc47a 100644
--- a/src/pages/Desktop/Apartment.tsx
+++ b/src/pages/Desktop/Apartment.tsx
@@ -1,9 +1,12 @@
import { Unity, useUnityContext } from "react-unity-webgl";
-import useStore from "../../store/store";
import { useEffect } from "react";
-import LoaderModal from "../../components/LoaderModal";
-import ButtonPanel from "./ButtonPanel";
import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
+import useStore from "../../store/store";
+import LoaderModal from "../../components/LoaderModal";
+import ButtonPanel from "../../components/desktop/ButtonPanel";
+import ParameterDescription from "../../components/desktop/ParameterDescription";
+import { A1MViewParams } from "../../consts/viewParams";
+import LayoutsButtonContainer from "../../components/desktop/LayoutsButtonContainer";
const Apartment = () => {
const { loader, setLoader, setSendMessageToUnity } = useStore();
@@ -58,7 +61,9 @@ const Apartment = () => {
unityProvider={unityProvider}
style={{ width: "100%", height: "100%" }}
/>
+
+
>
);
diff --git a/src/pages/Mobile/Apartment.tsx b/src/pages/Mobile/Apartment.tsx
index ac3e880..3555449 100644
--- a/src/pages/Mobile/Apartment.tsx
+++ b/src/pages/Mobile/Apartment.tsx
@@ -1,22 +1,24 @@
import { useEffect } from "react";
-import useStore from "../../store/store";
+import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
import { Unity, useUnityContext } from "react-unity-webgl";
+import useStore from "../../store/store";
import LoaderModal from "../../components/LoaderModal";
import ButtonPanel from "../../components/mobile/Appartment/ButtonPanel";
import ViewControllerModal from "../../components/mobile/Appartment/ViewControllerModal";
import { A1MViewParams } from "../../consts/viewParams";
-import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
const Apartment = () => {
const {
modal,
loader,
panel,
+ setCurrentView,
setModal,
setPanel,
setSendMessageToUnity,
setLoader,
} = useStore();
+
const {
unityProvider,
isLoaded,
@@ -40,11 +42,17 @@ const Apartment = () => {
}
};
+ const handleSetView = (view: ReactUnityEventParameter) => {
+ setCurrentView(view as number);
+ };
+
useEffect(() => {
addEventListener("SetLoaded", handleSetLoaded);
+ addEventListener("SetView", handleSetView);
return () => {
removeEventListener("SetLoaded", handleSetLoaded);
+ removeEventListener("SetView", handleSetView);
};
}, []);
@@ -58,7 +66,14 @@ const Apartment = () => {
setModal(
);
setPanel(
);
}
- }, [isLoaded]);
+ }, [
+ isLoaded,
+ sendMessage,
+ setLoader,
+ setModal,
+ setPanel,
+ setSendMessageToUnity,
+ ]);
return (
<>
diff --git a/src/store/store.ts b/src/store/store.ts
index 1a59ed1..bdadc4f 100644
--- a/src/store/store.ts
+++ b/src/store/store.ts
@@ -7,6 +7,9 @@ interface StoreType {
panel: React.ReactNode | null;
modal: React.ReactNode | null;
sendMessageToUnity: ((gameObjectName: string, methodName: string, parameter?: ReactUnityEventParameter) => void) | null;
+ currentView: number;
+
+ setCurrentView: (view: number) => void;
setModal: (modal: React.ReactNode | null) => void;
setPanel: (panel: React.ReactNode | null) => void;
setLoader: (loader: React.ReactNode | null) => void;
@@ -18,6 +21,9 @@ const useStore = create
((set) => ({
panel: null,
sendMessageToUnity: null,
loader: null,
+ currentView: 1,
+
+ setCurrentView: (view) => set(() => ({currentView: view})),
setModal: (modal) => set(() => ({ modal: modal })),
setPanel: (panel) => set(() => ({ panel: panel })),
setSendMessageToUnity: (sendMessageToUnity) => set(() => ({ sendMessageToUnity: sendMessageToUnity })),
diff --git a/src/types/appartment.ts b/src/types/appartment.ts
index b5c820e..208040b 100644
--- a/src/types/appartment.ts
+++ b/src/types/appartment.ts
@@ -7,7 +7,7 @@ type Parameters = {
type: string;
plotArea: string;
totalBuildUpArea: string;
- TotalCountBedroms: number;
+ totalCountBedroms: number;
villaTheme: string;
sliders: Slider[];
perspectiveWorkings: string[]
diff --git a/yarn.lock b/yarn.lock
index 8a34fca..69b9582 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12,6 +12,20 @@
resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
+"@arcgis/core@^4.28.10":
+ version "4.28.10"
+ resolved "https://registry.yarnpkg.com/@arcgis/core/-/core-4.28.10.tgz#777f699f50cb6955702cdbcd32b1015e19b1cb00"
+ integrity sha512-FKvicMVDwFuKX8JKLqAfukzQU2F3AG7s3tDigTcIC4ApGRbj7Nc/F9dRfPZo+aY1Vl7Sa1FjYlo6tfV93LJ2Eg==
+ dependencies:
+ "@esri/arcgis-html-sanitizer" "~3.0.1"
+ "@esri/calcite-colors" "~6.1.0"
+ "@esri/calcite-components" "^1.9.2"
+ "@popperjs/core" "~2.11.8"
+ "@zip.js/zip.js" "~2.7.29"
+ focus-trap "~7.5.3"
+ luxon "~3.4.3"
+ sortablejs "~1.15.0"
+
"@esbuild/android-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
@@ -154,6 +168,59 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
+"@esri/arcgis-html-sanitizer@~3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@esri/arcgis-html-sanitizer/-/arcgis-html-sanitizer-3.0.1.tgz#a4feaf3744bdd532012593fdb929b376a22c39cd"
+ integrity sha512-cwZJwsYCJZwtBQU2AmaiIVFg5nZcVwInPYja1/OgC9iKYO+ytZRoc5h+0S9/ygbFNoS8Nd0RX9A85stLX/BgiA==
+ dependencies:
+ xss "1.0.13"
+
+"@esri/calcite-colors@~6.1.0":
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/@esri/calcite-colors/-/calcite-colors-6.1.0.tgz#2d75e859a88772d8de91ccae40cbe29b8a4d27b8"
+ integrity sha512-wHQYWFtDa6c328EraXEVZvgOiaQyYr0yuaaZ0G3cB4C3lSkWefW34L/e5TLAhtuG3zJ/wR6pl5X1YYNfBc0/4Q==
+
+"@esri/calcite-components@^1.9.2":
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/@esri/calcite-components/-/calcite-components-1.11.0.tgz#7e7721f31b6a41761a15d30a8a7b646ed728fd33"
+ integrity sha512-H0ZqX3fEv4i0JCBEZ5SarPpd1KeXvqlEpLTtforfifIYbFAQOshP5fC2tFSL7j5pECyhBuB7rRhBiFeFejpRDw==
+ dependencies:
+ "@floating-ui/dom" "1.5.3"
+ "@stencil/core" "2.22.3"
+ "@types/color" "3.0.5"
+ color "4.2.3"
+ composed-offset-position "0.0.4"
+ dayjs "1.11.10"
+ focus-trap "7.5.4"
+ lodash-es "4.17.21"
+ sortablejs "1.15.0"
+ timezone-groups "0.8.0"
+
+"@floating-ui/core@^1.4.2":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1"
+ integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==
+ dependencies:
+ "@floating-ui/utils" "^0.2.1"
+
+"@floating-ui/dom@1.5.3":
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa"
+ integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==
+ dependencies:
+ "@floating-ui/core" "^1.4.2"
+ "@floating-ui/utils" "^0.1.3"
+
+"@floating-ui/utils@^0.1.3":
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9"
+ integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==
+
+"@floating-ui/utils@^0.2.1":
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2"
+ integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==
+
"@humanwhocodes/config-array@^0.11.13":
version "0.11.14"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
@@ -243,11 +310,21 @@
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+"@popperjs/core@~2.11.8":
+ version "2.11.8"
+ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
+ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
+
"@remix-run/router@1.14.2":
version "1.14.2"
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.14.2.tgz#4d58f59908d9197ba3179310077f25c88e49ed17"
integrity sha512-ACXpdMM9hmKZww21yEqWwiLws/UPLhNKvimN8RrYSqPSvB3ov7sLvAcfvaxePeLvccTQKGdkDIhLYApZVDFuKg==
+"@stencil/core@2.22.3":
+ version "2.22.3"
+ resolved "https://registry.yarnpkg.com/@stencil/core/-/core-2.22.3.tgz#83987e20bba855c450f6d6780e3a20192603f13f"
+ integrity sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==
+
"@swc/core-darwin-arm64@1.3.105":
version "1.3.105"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.105.tgz#2960f8a87aed01b3850d5c37f05b51d9d3747141"
@@ -327,6 +404,25 @@
resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.5.tgz#043b731d4f56a79b4897a3de1af35e75d56bc63a"
integrity sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==
+"@types/color-convert@*":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.3.tgz#e93f5c991eda87a945058b47044f5f0008b0dce9"
+ integrity sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg==
+ dependencies:
+ "@types/color-name" "*"
+
+"@types/color-name@*":
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.3.tgz#c488ac2e519c9795faa0d54e8156d54e66adc4e6"
+ integrity sha512-87W6MJCKZYDhLAx/J1ikW8niMvmGRyY+rpUxWpL1cO7F8Uu5CHuQoFv+R0/L5pgNdW4jTyda42kv60uwVIPjLw==
+
+"@types/color@3.0.5":
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/@types/color/-/color-3.0.5.tgz#658fd9286a44c21dabaa56c2e2f63da3ac15f063"
+ integrity sha512-T9yHCNtd8ap9L/r8KEESu5RDMLkoWXHo7dTureNoI1dbp25NsCN054vOu09iniIjR21MXUL+LU9bkIWrbyg8gg==
+ dependencies:
+ "@types/color-convert" "*"
+
"@types/json-schema@^7.0.12":
version "7.0.15"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
@@ -461,6 +557,11 @@
dependencies:
"@swc/core" "^1.3.96"
+"@zip.js/zip.js@~2.7.29":
+ version "2.7.33"
+ resolved "https://registry.yarnpkg.com/@zip.js/zip.js/-/zip.js-2.7.33.tgz#daeb0ab451b360f4584f5f4259ea822d56eaff02"
+ integrity sha512-3Ct8eoIkvkflNEyL3wD3GwJ2ORMobGTGO4v9giq6a4vCBcVmk1qFXtfDN2P9hJ9Eibd4zPKMiRCca4lVu+56Ig==
+
acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
@@ -630,16 +731,42 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
-color-name@~1.1.4:
+color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color-string@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
+ integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a"
+ integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
+ dependencies:
+ color-convert "^2.0.1"
+ color-string "^1.9.0"
+
+commander@^2.20.3:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
commander@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+composed-offset-position@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/composed-offset-position/-/composed-offset-position-0.0.4.tgz#ca8854abf15e3c235ecf4df125a27fe88af76ea4"
+ integrity sha512-vMlvu1RuNegVE0YsCDSV/X4X10j56mq7PCIyOKK74FxkXzGLwhOUmdkJLSdOBOMwWycobGUMgft2lp+YgTe8hw==
+
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -659,11 +786,21 @@ cssesc@^3.0.0:
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+cssfilter@0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae"
+ integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==
+
csstype@^3.0.2:
version "3.1.3"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
+dayjs@1.11.10:
+ version "1.11.10"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
+ integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
+
debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -927,6 +1064,13 @@ flatted@^3.2.9:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf"
integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==
+focus-trap@7.5.4, focus-trap@~7.5.3:
+ version "7.5.4"
+ resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.4.tgz#6c4e342fe1dae6add9c2aa332a6e7a0bbd495ba2"
+ integrity sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==
+ dependencies:
+ tabbable "^6.2.0"
+
foreground-child@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d"
@@ -1059,6 +1203,11 @@ inherits@2:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
is-binary-path@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
@@ -1183,6 +1332,11 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
+lodash-es@4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
@@ -1207,6 +1361,11 @@ lru-cache@^6.0.0:
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484"
integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==
+luxon@~3.4.3:
+ version "3.4.4"
+ resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af"
+ integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==
+
merge2@^1.3.0, merge2@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
@@ -1581,11 +1740,28 @@ signal-exit@^4.0.1:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
+ dependencies:
+ is-arrayish "^0.3.1"
+
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+sortablejs@1.15.0:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.0.tgz#53230b8aa3502bb77a29e2005808ffdb4a5f7e2a"
+ integrity sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==
+
+sortablejs@~1.15.0:
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.2.tgz#4e9f7bda4718bd1838add9f1866ec77169149809"
+ integrity sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==
+
source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
@@ -1654,6 +1830,11 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+tabbable@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
+ integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
+
tailwindcss@^3.3.5:
version "3.4.1"
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.1.tgz#f512ca5d1dd4c9503c7d3d28a968f1ad8f5c839d"
@@ -1701,6 +1882,11 @@ thenify-all@^1.0.0:
dependencies:
any-promise "^1.0.0"
+timezone-groups@0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/timezone-groups/-/timezone-groups-0.8.0.tgz#b7bd35322939bed7cfbf0624cc3eeefd0910800d"
+ integrity sha512-t7E/9sPfCU0m0ZbS7Cqw52D6CB/UyeaiIBmyJCokI1SyOyOgA/ESiQ/fbreeFaUG9QSenGlZSSk/7rEbkipbOA==
+
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -1806,6 +1992,14 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+xss@1.0.13:
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.13.tgz#6e48f616128b39f366dfadc57411e1eb5b341c6c"
+ integrity sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==
+ dependencies:
+ commander "^2.20.3"
+ cssfilter "0.0.10"
+
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"