-

+
-
Asset name
-
Uploaded on-12 Jan 23
+
{assetName}
+
{uploadedOn}
- 1.5k
+ {views}
@@ -39,17 +66,17 @@ const Card: React.FC = () => {
-
-
-
-
-
+ {[...Array(5)].map((_, index) => (
+
+ ))}
- ₹ 36,500/unit
+ ₹ {price}/unit
-
Buy now
+
+ Buy now
+
);
};
diff --git a/app/src/modules/market/CardsContainer.tsx b/app/src/modules/market/CardsContainer.tsx
index 27d4a6b..96a47e4 100644
--- a/app/src/modules/market/CardsContainer.tsx
+++ b/app/src/modules/market/CardsContainer.tsx
@@ -1,15 +1,149 @@
-import React from "react";
+import React, { useState } from "react";
import Card from "./Card";
+import AssetPreview from "./AssetPreview";
+import RenderOverlay from "../../components/templates/Overlay";
const CardsContainer: React.FC = () => {
- const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
+ const array = [
+ {
+ id: 1,
+ name: "Asset 1",
+ uploadedOn: "12 Jan 23",
+ price: 36500,
+ rating: 4.5,
+ views: 500,
+ },
+ {
+ id: 2,
+ name: "Asset 2",
+ uploadedOn: "14 Jan 23",
+ price: 45000,
+ rating: 4.0,
+ views: 500,
+ },
+ {
+ id: 3,
+ name: "Asset 3",
+ uploadedOn: "15 Jan 23",
+ price: 52000,
+ rating: 4.8,
+ views: 500,
+ },
+ {
+ id: 4,
+ name: "Asset 4",
+ uploadedOn: "18 Jan 23",
+ price: 37000,
+ rating: 3.9,
+ views: 500,
+ },
+ {
+ id: 5,
+ name: "Asset 5",
+ uploadedOn: "20 Jan 23",
+ price: 60000,
+ rating: 5.0,
+ views: 500,
+ },
+ {
+ id: 6,
+ name: "Asset 6",
+ uploadedOn: "22 Jan 23",
+ price: 46000,
+ rating: 4.2,
+ views: 500,
+ },
+ {
+ id: 7,
+ name: "Asset 7",
+ uploadedOn: "25 Jan 23",
+ price: 38000,
+ rating: 4.3,
+ views: 500,
+ },
+ {
+ id: 8,
+ name: "Asset 8",
+ uploadedOn: "27 Jan 23",
+ price: 41000,
+ rating: 4.1,
+ views: 500,
+ },
+ {
+ id: 9,
+ name: "Asset 9",
+ uploadedOn: "30 Jan 23",
+ price: 55000,
+ rating: 4.6,
+ views: 500,
+ },
+ {
+ id: 10,
+ name: "Asset 10",
+ uploadedOn: "2 Feb 23",
+ price: 49000,
+ rating: 4.4,
+ views: 500,
+ },
+ {
+ id: 11,
+ name: "Asset 11",
+ uploadedOn: "5 Feb 23",
+ price: 62000,
+ rating: 5.0,
+ views: 500,
+ },
+ {
+ id: 12,
+ name: "Asset 12",
+ uploadedOn: "7 Feb 23",
+ price: 53000,
+ rating: 4.7,
+ views: 500,
+ },
+ ];
+
+ const [selectedCard, setSelectedCard] = useState<{
+ assetName: string;
+ uploadedOn: string;
+ price: number;
+ rating: number;
+ views: number;
+ } | null>(null);
+
+ const handleCardSelect = (cardData: {
+ assetName: string;
+ uploadedOn: string;
+ price: number;
+ rating: number;
+ views: number;
+ }) => {
+ setSelectedCard(cardData);
+ };
+
return (
Products You May Like
- {array.map((index) => (
-
+ {array.map((asset) => (
+
))}
+ {/*
*/}
+ {selectedCard && (
+
+ )}
+ {/* */}
);
diff --git a/app/src/pages/Project.tsx b/app/src/pages/Project.tsx
index 95da878..ade4d6f 100644
--- a/app/src/pages/Project.tsx
+++ b/app/src/pages/Project.tsx
@@ -18,6 +18,7 @@ import { useNavigate } from "react-router-dom";
import { usePlayButtonStore } from "../store/usePlayButtonStore";
import SimulationUI from "../modules/simulation/simulationUI";
import MarketPlace from "../modules/market/MarketPlace";
+import SimulationPlayer from "../components/ui/simulation/simulationPlayer";
const Project: React.FC = () => {
let navigate = useNavigate();
@@ -61,6 +62,7 @@ const Project: React.FC = () => {
{activeModule !== "market" &&
}
{/*
*/}
+ {isPlaying && activeModule === "simulation" &&
}
);
};
diff --git a/app/src/styles/base/reset.scss b/app/src/styles/base/reset.scss
index b37f940..82d286e 100644
--- a/app/src/styles/base/reset.scss
+++ b/app/src/styles/base/reset.scss
@@ -1,7 +1,14 @@
* {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- user-select: none;
- font-size: var(--font-size-regular);
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ user-select: none;
+ font-size: var(--font-size-regular);
+}
+
+input[type="password"]::-ms-reveal, /* For Microsoft Edge */
+input[type="password"]::-ms-clear, /* For Edge clear button */
+input[type="password"]::-webkit-clear-button, /* For Chrome/Safari clear button */
+input[type="password"]::-webkit-inner-spin-button { /* Just in case */
+ display: none;
}
diff --git a/app/src/styles/components/input.scss b/app/src/styles/components/input.scss
index 3020c7d..36ac8ff 100644
--- a/app/src/styles/components/input.scss
+++ b/app/src/styles/components/input.scss
@@ -280,28 +280,24 @@ input {
.dropdown-menu {
position: absolute;
- top: 100%;
- left: 0;
- background-color: #ffffff;
- border: 1px solid #cccccc;
+ top: 110%;
+ right: -16px;
+ background-color: var(--background-color);
+ border: 1px solid var(--border-color);
border-radius: 5px;
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
+ box-shadow: #{$box-shadow-medium};
z-index: 1000;
min-width: 200px;
overflow: auto;
- max-height: 600px;
+ max-height: 400px;
.dropdown-content {
display: flex;
flex-direction: column;
gap: 6px;
-
.nested-dropdown {
- // &:first-child{
margin-left: 0;
- // }
}
-
padding: 10px;
}
@@ -309,13 +305,13 @@ input {
display: block;
padding: 5px 10px;
text-decoration: none;
- color: #000000;
+ color: var(--text-color);
font-size: 14px;
cursor: pointer;
transition: background-color 0.3s ease;
&:hover {
- background-color: #f0f0f0;
+ background-color: var(--background-color);
}
}
@@ -329,15 +325,20 @@ input {
padding: 5px 10px;
cursor: pointer;
font-size: 14px;
- color: #000000;
+ color: var(--text-color);
transition: background-color 0.3s ease;
+ border-radius: #{$border-radius-small};
+ .arrow-container{
+ @include flex-center;
+ }
&:hover {
- background-color: #f0f0f0;
+ background-color: var(--background-color);
}
&.open {
- background-color: #e0e0e0;
+ color: var(--accent-color);
+ background-color: var(--highlight-accent-color);
}
.icon {
@@ -349,7 +350,7 @@ input {
.submenu {
margin-top: 5px;
padding-left: 20px;
- border-left: 2px solid #cccccc;
+ border-left: 2px solid var(--border-color);
display: flex;
flex-direction: column;
gap: 6px;
@@ -576,26 +577,26 @@ input {
color: var(--text-disabled);
}
}
- .entered-emails{
+ .entered-emails {
@include flex-center;
gap: 2px;
background: var(--background-color-gray);
padding: 0 4px;
border-radius: #{$border-radius-large};
- span{
+ span {
height: 14px;
width: 14px;
line-height: 12px;
text-align: center;
border-radius: #{$border-radius-small};
- &:hover{
+ &:hover {
background: var(--accent-color);
color: var(--primary-color);
}
}
}
}
- .invite-button{
+ .invite-button {
padding: 4px 12px;
border-radius: #{$border-radius-large};
background: var(--accent-color);
diff --git a/app/src/styles/components/marketPlace/marketPlace.scss b/app/src/styles/components/marketPlace/marketPlace.scss
index 2ae2790..cac366e 100644
--- a/app/src/styles/components/marketPlace/marketPlace.scss
+++ b/app/src/styles/components/marketPlace/marketPlace.scss
@@ -2,186 +2,356 @@
@use "../../abstracts/mixins.scss" as *;
.marketplace-wrapper {
- height: 100vh;
- width: 100vw;
- z-index: #{$z-index-marketplace};
- background-color: var(--background-color-secondary);
- position: absolute;
- left: 0;
- padding: 100px 50px;
+ height: 100vh;
+ width: 100vw;
+ z-index: #{$z-index-marketplace};
+ background-color: var(--background-color-secondary);
+ position: absolute;
+ left: 0;
+ padding: 100px 50px;
+ padding-bottom: 32px;
+ backdrop-filter: blur(6px);
- .marketplace-container {
- padding: 20px 2px;
- height: calc(100vh - 120px);
- background-color: var(--background-color);
- box-shadow: #{$box-shadow-medium};
- border-radius: #{$border-radius-extra-large};
+ .marketplace-container {
+ position: relative;
+ padding: 20px 2px;
+ height: 100%;
+ background-color: var(--background-color);
+ box-shadow: #{$box-shadow-medium};
+ border-radius: #{$border-radius-extra-large};
+ }
+
+ .marketPlace {
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ left: calc(120px / 2);
+ top: 100px;
+ padding: 14px;
+ padding-bottom: 60px;
+ display: flex;
+ flex-direction: column;
+ gap: 24px;
+
+ .filter-search-container {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ gap: 12px;
+
+ .search-wrapper {
+ min-width: 60%;
+ max-width: 684px;
+ padding: 0;
+ border-radius: $border-radius-large;
+
+ .search-container {
+ border: none !important;
+ box-shadow: $box-shadow-medium;
+ border-radius: $border-radius-large;
+
+ input {
+ border: none !important;
+ outline: none;
+ }
+ }
+ }
+
+ .regularDropdown-container {
+ max-width: 159px;
+ }
+
+ .button {
+ padding: 5px 20px;
+ border: 1px solid var(--accent-color);
+ border-radius: 14px;
+ }
+
+ .rating-container {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+
+ .stars {
+ display: flex;
+ align-items: center;
+ }
+ }
}
- .marketPlace {
- width: 100%;
- height: 100%;
- overflow: auto;
- left: calc(120px / 2);
- top: 100px;
- padding: 14px;
- padding-bottom: 60px;
- display: flex;
- flex-direction: column;
- gap: 24px;
+ .cards-container-container {
+ padding: 0px 20px;
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
- .filter-search-container {
+ .header {
+ color: var(--text-color);
+ font-weight: $medium-weight;
+ font-size: $xlarge;
+ }
+
+ .cards-wrapper-container {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 28px;
+
+ .card-container {
+ width: calc(25% - 23px);
+ border-radius: 18px;
+ padding: 12px;
+ box-shadow: 0px 2px 10.5px 0px #0000000d;
+ border: 1px solid var(--background-accent-transparent, #e0dfff80);
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ gap: 6px;
+
+ .icon {
+ position: absolute;
+ top: 12px;
+ left: 12px;
+ width: 30px;
+ height: 30px;
+ border-radius: 10px;
+ padding: 5px;
+ background-color: var(--accent-color);
+ }
+
+ .image-container {
width: 100%;
display: flex;
- align-items: center;
- gap: 12px;
+ justify-content: center;
+ }
- .search-wrapper {
- min-width: 60%;
- max-width: 684px;
- padding: 0;
- border-radius: $border-radius-large ;
+ .assets-container {
+ display: flex;
+ justify-content: space-between;
- .search-container {
- border: none !important;
- box-shadow: $box-shadow-medium;
- border-radius: $border-radius-large ;
+ .name-container {
+ display: flex;
+ flex-direction: column;
+ gap: 3px;
- input {
- border: none !important;
- outline: none;
+ .asstes-container {
+ font-weight: #{$bold-weight};
+ font-size: $regular;
+ }
- }
- }
+ .assets-date {
+ color: var(--accent-color);
+ font-size: $small;
+ }
}
- .regularDropdown-container {
- max-width: 159px;
- }
+ .details {
+ display: flex;
+ align-items: center;
+ gap: 10px;
- .button {
- padding: 5px 20px;
- border: 1px solid var(--accent-color);
- border-radius: 14px;
- }
-
- .rating-container {
+ .content {
display: flex;
align-items: center;
gap: 6px;
-
- .stars {
- display: flex;
- align-items: center;
-
- }
+ }
}
- }
+ }
- .cards-container-container {
- padding: 0px 20px;
+ .vendor-icon {
+ font-weight: #{$bold-weight};
+ font-size: $regular;
+ }
+
+ .stars-container {
display: flex;
- flex-direction: column;
- gap: 6px;
+ justify-content: space-between;
+ }
- .header {
- color: var(--text-color);
- font-weight: $medium-weight;
- font-size: $xlarge;
- }
-
- .cards-wrapper-container {
- display: flex;
- flex-wrap: wrap;
- gap: 28px;
-
- .card-container {
- width: calc(25% - 23px);
- border-radius: 18px;
- padding: 12px;
- box-shadow: 0px 2px 10.5px 0px #0000000D;
- border: 1px solid var(--background-accent-transparent, #E0DFFF80);
- position: relative;
- display: flex;
- flex-direction: column;
- justify-content: center;
- gap: 6px;
-
- .icon {
- position: absolute;
- top: 12px;
- left: 12px;
- width: 30px;
- height: 30px;
- border-radius: 10px;
- padding: 5px;
- background-color: var(--accent-color);
- }
-
- .image-container {
- width: 100%;
- display: flex;
- justify-content: center;
- }
-
- .assets-container {
- display: flex;
- justify-content: space-between;
-
- .name-container {
- display: flex;
- flex-direction: column;
- gap: 3px;
-
- .asstes-container {
- font-weight: #{$bold-weight};
- font-size: $regular ;
- }
-
- .assets-date {
- color: var(--accent-color);
- font-size: $small;
- }
- }
-
- .details {
- display: flex;
- align-items: center;
- gap: 10px;
-
- .content {
- display: flex;
- align-items: center;
- gap: 6px;
- }
- }
- }
-
- .vendor-icon {
-
- font-weight: #{$bold-weight};
- font-size: $regular ;
- }
-
- .stars-container {
- display: flex;
- justify-content: space-between;
- }
-
- .buy-now-button {
- width: 100%;
- background-color: var(--background-color-secondary);
- border-radius: $border-radius-extra-large ;
- padding: 8px 0;
- @include flex-center;
- color: var(--accent-color);
-
- &:hover {
- cursor: pointer;
- }
- }
- }
+ .buy-now-button {
+ width: 100%;
+ background-color: var(--background-color-secondary);
+ border-radius: $border-radius-extra-large;
+ padding: 8px 0;
+ @include flex-center;
+ color: var(--accent-color);
+
+ &:hover {
+ cursor: pointer;
}
+ }
}
+ }
}
+ }
+}
+
+.assetPreview-wrapper {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 3;
+
+ .assetPreview {
+ width: 100%;
+ height: 100%;
+ background-color: var(--background-color);
+ display: flex;
+ gap: 12px;
+ z-index: 100;
+ border-radius: 20px;
+ }
+
+ // Image Preview Section
+ .image-preview {
+ width: 50%;
+ height: 100%;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ }
+ }
+
+ // Asset Details Section
+ .asset-details-preview {
+ width: 50%;
+ padding: 50px 20px;
+ overflow-y: auto;
+ }
+
+ // Organization Section (Top part with image and details)
+ .organization {
+ display: flex;
+ align-items: center;
+ margin-bottom: 20px;
+ gap: 10px;
+
+ .image {
+ @include flex-center;
+ height: 30px;
+ width: 30px;
+ min-height: 26px;
+ min-width: 26px;
+ border-radius: 50%;
+ font-weight: var(--font-weight-bold);
+ color: var(--background-color);
+ background-color: var(--accent-color);
+ }
+
+ .organization-details {
+ display: flex;
+ flex-direction: column;
+
+ .organization-name {
+ font-weight: bold;
+ margin-bottom: 5px;
+
+ font-weight: #{$bold-weight};
+ font-size: $regular;
+ }
+
+ .follow {
+ color: var(--accent-color);
+ cursor: pointer;
+ }
+ }
+ }
+
+ // Asset Details
+ .asset-details {
+ margin-top: 20px;
+
+ .asset-name {
+ font-size: 1.5em;
+ font-weight: bold;
+ margin-bottom: 10px;
+ font-weight: #{$bold-weight};
+ font-size: $large;
+ }
+
+ .asset-description {
+ margin-bottom: 20px;
+ color: #666;
+ }
+
+ .asset-review {
+ width: fit-content;
+ padding: 5px 10px;
+ display: flex;
+ align-items: center;
+ margin-bottom: 20px;
+ outline: 1px solid #909090cc;
+ border-radius: 6px;
+
+ .asset-rating {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ margin-right: 10px;
+ font-weight: bold;
+ position: relative;
+
+ font-weight: #{$bold-weight};
+ font-size: $regular;
+
+ &::after {
+ margin-left: 5px;
+ content: "";
+ display: block;
+ width: 2px;
+ height: 12px;
+ background-color: #ccc;
+ }
+ }
+
+ .asset-view {
+ font-weight: #{$bold-weight};
+ font-size: $regular;
+ }
+ }
+
+ .asset-price {
+ font-size: $xxlarge;
+ font-weight: bold;
+ margin-bottom: 20px;
+ }
+ }
+
+ // Button Container and Button Styles
+ .button-container {
+ display: flex;
+ gap: 10px;
+ }
+
+ .button {
+ color: white;
+ padding: 10px 20px;
+ border-radius: 5px;
+ cursor: pointer;
+ text-align: center;
+
+ &:first-child {
+ outline: 1px solid var(--accent-color);
+ color: var(--accent-color);
+ }
+
+ &:last-child {
+ background-color: var(--accent-color);
+ color: var(--background-color);
+ }
+ }
+
+ .closeButton {
+ color: var(--accent-color);
+ position: absolute;
+ top: 18px;
+ left: 18px;
+ @include flex-center;
+ cursor: pointer;
+ font-size: var(--font-size-large);
+ }
}
diff --git a/app/src/styles/components/simulation/simulation.scss b/app/src/styles/components/simulation/simulation.scss
new file mode 100644
index 0000000..eb109c2
--- /dev/null
+++ b/app/src/styles/components/simulation/simulation.scss
@@ -0,0 +1,114 @@
+@use "../../abstracts/variables" as *;
+@use "../../abstracts/mixins" as *;
+
+.simulation-player-wrapper {
+ position: fixed;
+ bottom: 32px;
+ left: 50%;
+ z-index: 2;
+ transform: translate(-50%, 0);
+ .simulation-player-container {
+ .controls-container {
+ @include flex-center;
+ gap: 12px;
+ margin-bottom: 4px;
+ .simulation-button-container {
+ @include flex-center;
+ gap: 2px;
+ padding: 6px 8px;
+ min-width: 64px;
+ background-color: var(--background-color);
+ border-radius: #{$border-radius-small};
+ cursor: pointer;
+ &:hover {
+ background-color: var(--highlight-accent-color);
+ color: var(--accent-color);
+ path {
+ stroke: var(--accent-color);
+ }
+ }
+ }
+ }
+ .speed-control-container {
+ @include flex-center;
+ gap: 18px;
+ padding: 5px 16px;
+ background: var(--background-color);
+ border-radius: #{$border-radius-medium};
+ box-sizing: #{$box-shadow-medium};
+ .min-value,
+ .max-value {
+ font-weight: var(--font-weight-bold);
+ }
+ .slider-container {
+ width: 580px;
+ max-width: 80vw;
+ height: 28px;
+ background: var(--background-color-gray);
+ border-radius: #{$border-radius-small};
+ position: relative;
+ padding: 4px 26px;
+ .custom-slider {
+ height: 100%;
+ width: 100%;
+ position: relative;
+ .slider-input {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+ z-index: 3;
+ cursor: pointer;
+ }
+ .slider-handle {
+ position: absolute;
+ width: 42px;
+ line-height: 20px;
+ text-align: center;
+ background: var(--accent-color);
+ color: var(--primary-color);
+ border-radius: #{$border-radius-small};
+ transform: translateX(-50%);
+ cursor: pointer;
+ z-index: 2;
+ }
+ }
+ .marker{
+ position: absolute;
+ background-color: var(--text-disabled);
+ width: 2px;
+ height: 12px;
+ border-radius: 1px;
+ top: 8px;
+ }
+ .marker.marker-10{
+ left: 10%;
+ }
+ .marker.marker-20{
+ left: 20%;
+ }
+ .marker.marker-30{
+ left: 30%;
+ }
+ .marker.marker-40{
+ left: 40%;
+ }
+ .marker.marker-50{
+ left: 50%;
+ }
+ .marker.marker-60{
+ left: 60%;
+ }
+ .marker.marker-70{
+ left: 70%;
+ }
+ .marker.marker-80{
+ left: 80%;
+ }
+ .marker.marker-90{
+ left: 90%;
+ }
+ }
+ }
+ }
+}
diff --git a/app/src/styles/components/visualization/ui/styledWidgets.scss b/app/src/styles/components/visualization/ui/styledWidgets.scss
index 6006308..9c72fae 100644
--- a/app/src/styles/components/visualization/ui/styledWidgets.scss
+++ b/app/src/styles/components/visualization/ui/styledWidgets.scss
@@ -8,7 +8,7 @@
flex-direction: column;
gap: 6px;
width: 100%;
- min-width: 250px;
+ // min-width: 1450px;
.header {
display: flex;
justify-content: center;
diff --git a/app/src/styles/main.scss b/app/src/styles/main.scss
index fa6ce51..34c0074 100644
--- a/app/src/styles/main.scss
+++ b/app/src/styles/main.scss
@@ -20,8 +20,9 @@
@use 'components/tools';
@use 'components/visualization/floating/energyConsumed';
@use 'components/visualization/ui/styledWidgets';
-@use './components/visualization/floating/common';
-@use './components/marketPlace/marketPlace.scss';
+@use 'components/visualization/floating/common';
+@use 'components/marketPlace/marketPlace';
+@use 'components/simulation/simulation';
// layout
@use 'layout/loading';
diff --git a/app/src/styles/pages/realTimeViz.scss b/app/src/styles/pages/realTimeViz.scss
index f4c9ab9..4c4c9ae 100644
--- a/app/src/styles/pages/realTimeViz.scss
+++ b/app/src/styles/pages/realTimeViz.scss
@@ -1,4 +1,5 @@
@use "../abstracts/variables.scss" as *;
+@use "../abstracts/mixins.scss" as *;
// Main Container
.realTime-viz {
@@ -35,7 +36,7 @@
}
}
- .zoon-wrapper {
+ .zone-wrapper {
display: flex;
background-color: var(--background-color);
position: absolute;
@@ -43,15 +44,32 @@
left: 50%;
transform: translate(-50%, 0);
gap: 6px;
- padding: 4px;
+
border-radius: 8px;
max-width: 80%;
overflow: auto;
- max-width: calc(100% - 450px);
+ // max-width: calc(100% - 450px);
+
&::-webkit-scrollbar {
display: none;
}
+ .arrow {
+ background-color: var(--highlight-accent-color);
+ color: var(--background-color);
+ }
+
+ .zones-wrapper {
+ padding: 6px;
+ display: flex;
+ gap: 6px;
+ border-radius: #{$border-radius-medium};
+ overflow-x: auto;
+ &::-webkit-scrollbar {
+ display: none;
+ }
+ }
+
.zone {
width: auto;
background-color: var(--background-color);
@@ -68,28 +86,10 @@
}
}
- .zoon-wrapper.bottom {
+ .zone-wrapper.bottom {
bottom: 210px;
}
- @media (max-width: 1024px) {
- width: 80%; // Increase width to take more space on smaller screens
- height: 500px; // Reduce height to fit smaller screens
- left: 50%; // Center horizontally
-
- .main-container {
- margin: 0 15px; // Reduce margin for better spacing
- }
-
- .zoon-wrapper {
- bottom: 5px; // Adjust position for smaller screens
-
- &.bottom {
- bottom: 150px; // Adjust for bottom placement
- }
- }
- }
-
.content-container {
display: flex;
height: 100vh;
@@ -104,7 +104,7 @@
margin: 0 30px;
transition: height 0.3s ease, margin 0.3s ease;
- .zoon-wrapper {
+ .zone-wrapper {
display: flex;
background-color: rgba(224, 223, 255, 0.5);
position: absolute;
@@ -150,15 +150,15 @@
transition: all 0.3s ease;
border-radius: 6px;
overflow: visible !important;
+ z-index: $z-index-tools;
.panel-content {
position: relative;
height: 100%;
padding: 10px;
- overflow: auto;
display: flex;
flex-direction: column;
- gap: 10px;
+ gap: 6px;
background-color: var(--background-color);
&::-webkit-scrollbar {
@@ -167,8 +167,7 @@
.chart-container {
width: 100%;
- height: 24% !important;
-
+ height: 25% !important;
min-height: 150px;
max-height: 100%;
border: 1px dotted #a9a9a9;
@@ -176,6 +175,70 @@
box-shadow: 0px 2px 6px 0px rgba(60, 60, 67, 0.1);
padding: 6px 0;
background-color: white;
+ position: relative;
+
+ .kebab {
+ width: 30px;
+ height: 30px;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ z-index: 10;
+ cursor: pointer;
+ @include flex-center;
+ }
+
+ .kebab-options {
+ position: absolute;
+ top: 12px;
+ right: -100px;
+ transform: translate(0px, 0);
+ background-color: var(--background-color);
+ z-index: 10;
+
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+ border-radius: 4px;
+
+ box-shadow: var(--box-shadow-medium);
+
+ .btn {
+ display: flex;
+ gap: 6px;
+ align-items: center;
+ padding: 5px 10px;
+ color: var(--text-color);
+
+ &:hover {
+ .label {
+ color: var(--accent-color);
+ }
+ }
+
+ &:hover {
+ background-color: var(--highlight-accent-color);
+ width: 100%;
+
+ svg {
+ &:first-child {
+ fill: var(--accent-color);
+ }
+
+ &:last-child {
+ fill: auto;
+ stroke: var(--accent-color);
+ }
+ }
+ }
+ }
+
+ .btn-blur {
+ color: var(--text-disabled);
+ cursor: not-allowed;
+ pointer-events: none;
+ }
+ }
}
.close-btn {
@@ -194,8 +257,6 @@
left: 0;
right: 0;
-
-
.panel-content {
display: flex;
flex-direction: row;
@@ -236,19 +297,21 @@
}
}
-.playingFlase{
- .zoon-wrapper{
- bottom: 300px !important;
+.playingFlase {
+ .zone-wrapper.bottom {
+ bottom: 300px;
}
}
+
// Side Buttons
.side-button-container {
position: absolute;
display: flex;
background-color: var(--background-color);
- padding: 5px;
- border-radius: 8px;
+ padding: 2px;
+ border-radius: 2px;
transition: transform 0.3s ease;
+ box-shadow: #{$box-shadow-medium};
.extra-Bs {
display: flex;
@@ -285,6 +348,24 @@
border: none;
color: var(--background-color);
border-radius: 4px;
+ .add-icon {
+ @include flex-center;
+ transition: rotate 0.2s;
+ }
+ path {
+ stroke: var(--primary-color);
+ stroke-width: 2;
+ }
+ }
+ .active {
+ background: #ffe3e0;
+ .add-icon {
+ rotate: 45deg;
+ path {
+ stroke: #f65648;
+ stroke-width: 2;
+ }
+ }
}
&.top {
@@ -401,3 +482,33 @@
}
}
}
+
+.arrow {
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ border: none;
+ cursor: pointer;
+ z-index: 10;
+ height: 100%;
+}
+
+.left-arrow {
+ left: 0;
+}
+
+.right-arrow {
+ right: 0;
+}
+
+.zone {
+ padding: 10px;
+ border: 1px solid #ccc;
+ border-radius: 5px;
+ cursor: pointer;
+}
+
+.zone.active {
+ background-color: #007bff;
+ color: white;
+}
diff --git a/compose.yaml b/compose.yaml
index 33328bc..2b5e419 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -1,24 +1,24 @@
-services:
- frontend:
- build:
- context: ./app
- dockerfile: Dockerfile
- args:
- - REACT_APP_SERVER_SOCKET_API_BASE_URL=185.100.212.76:8000
- - REACT_APP_SERVER_REST_API_BASE_URL=185.100.212.76:5000
- - REACT_APP_SERVER_MARKETPLACE_URL=185.100.212.76:50011
- container_name: dwinzo-beta
- stdin_open: true
- tty: true
- ports:
- - "8200:3000"
- environment:
- - WDS_SOCKET_PORT=0
- - PORT=3000
- - DOCSIFY_PORT=8201
- volumes:
- - ./app:/app
-
-volumes:
- frontend:
- driver: local
+services:
+ frontend:
+ build:
+ context: ./app
+ dockerfile: Dockerfile
+ args:
+ - REACT_APP_SERVER_SOCKET_API_BASE_URL=185.100.212.76:8000
+ - REACT_APP_SERVER_REST_API_BASE_URL=185.100.212.76:5000
+ - REACT_APP_SERVER_MARKETPLACE_URL=185.100.212.76:50011
+ container_name: dwinzo-beta
+ stdin_open: true
+ tty: true
+ ports:
+ - "8200:3000"
+ environment:
+ - WDS_SOCKET_PORT=0
+ - PORT=3000
+ - DOCSIFY_PORT=8201
+ volumes:
+ - ./app:/app
+
+volumes:
+ frontend:
+ driver: local