diff --git a/app/src/components/layout/scenes/MainScene.tsx b/app/src/components/layout/scenes/MainScene.tsx
index 67dc35a..4139b5a 100644
--- a/app/src/components/layout/scenes/MainScene.tsx
+++ b/app/src/components/layout/scenes/MainScene.tsx
@@ -52,7 +52,7 @@ function MainScene() {
const { visualizationSocket } = useSocketStore();
const { selectedZone } = useSelectedZoneStore();
const { setFloatingWidget } = useFloatingWidget();
- const { clearComparisonProduct } = useComparisonProduct();
+ const { comparisonProduct, clearComparisonProduct } = useComparisonProduct();
const { selectedFloorItem, setSelectedFloorItem } = useSelectedFloorItem();
const { setName } = useAssetsStore();
const { projectId } = useParams()
@@ -120,7 +120,9 @@ function MainScene() {
>
)}
* {
- position: relative;
- z-index: 1;
- }
-
- &:nth-child(2) {
- grid-column-start: 1;
- grid-row-start: 2;
-
- .metric-label {
- white-space: normal;
- width: 50px;
- left: 230%;
- }
- }
-
- &:nth-child(3) {
- grid-row: span 2 / span 2;
- grid-column-start: 2;
- grid-row-start: 1;
- margin-top: 40%;
- left: -16px;
- position: relative;
- }
- }
-
- .metric-label {
- position: absolute;
- top: 0px;
- left: 0%;
- white-space: nowrap;
-
- transform: translate(-50%, -50%);
-
- font-size: 10px;
- z-index: 1;
- }
-
- .metric {
- width: 100%;
- height: 100%;
- position: relative;
- display: flex;
- justify-content: center;
- align-items: center;
-
- &::after {
- content: "";
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
-
- background: var(--background-color, wheat);
- clip-path: polygon(
- 25% 0%,
- 75% 0%,
- 100% 50%,
- 75% 100%,
- 25% 100%,
- 0% 50%
- );
- filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.25));
-
- z-index: 0;
- }
-
- // Content stays above the shape
- > * {
- position: relative;
- z-index: 1;
- }
- }
- }
+ .metric-value {
+ padding-top: 6px;
+ font-size: var(--font-size-xlarge);
+ color: var(--background-color-accent);
+ font-weight: 600;
}
+ }
- .simulation-tag {
- background: var(--background-color-button);
+ .label {
+ padding-bottom: 68px;
+ }
+ }
- color: var(--icon-default-color-active);
+ .metrics-right {
+ height: fit-content;
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ grid-template-rows: repeat(2, 1fr);
+
+ gap: 2px;
+ overflow: visible;
+
+ margin: auto 0;
+
+ .metric-wrapper {
+ position: relative;
+ width: 64px;
+ height: 50px;
+ overflow: visible; // allow content like labels to overflow
+
+ &:nth-child(1) {
+ .metric-label {
+ top: -57%;
+ left: 220%;
+ }
+
+ &::after {
+ content: "";
position: absolute;
- bottom: 0;
- right: 0;
- padding: 10px 5px;
- border-radius: 12px 0 0 0;
+
+ top: -100%;
+ left: 50%;
+ width: 100%; // Required for visible shape
+ height: 40px;
+ background-color: #b7b7c6;
+
+ // Custom polygon shape (adjust if needed)
+ clip-path: polygon(
+ 96% 52%,
+ 96% 54%,
+ 45% 53%,
+ 3% 100%,
+ 0 100%,
+ 42% 52%
+ );
+
+ z-index: 0; // Behind any inner content
+ }
}
+
+ // Optional: content above the shape
+ > * {
+ position: relative;
+ z-index: 1;
+ }
+
+ &:nth-child(2) {
+ grid-column-start: 1;
+ grid-row-start: 2;
+
+ .metric-label {
+ white-space: normal;
+ width: 50px;
+ left: 230%;
+ }
+ }
+
+ &:nth-child(3) {
+ grid-row: span 2 / span 2;
+ grid-column-start: 2;
+ grid-row-start: 1;
+ margin-top: 40%;
+ left: -16px;
+ position: relative;
+ }
+ }
+
+ .metric-label {
+ position: absolute;
+ top: 0px;
+ left: 0%;
+ white-space: nowrap;
+
+ transform: translate(-50%, -50%);
+
+ font-size: 10px;
+ z-index: 1;
+ }
+
+ .metric {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+
+ background: var(--background-color, wheat);
+ clip-path: polygon(
+ 25% 0%,
+ 75% 0%,
+ 100% 50%,
+ 75% 100%,
+ 25% 100%,
+ 0% 50%
+ );
+ filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.25));
+
+ z-index: 0;
+ }
+
+ // Content stays above the shape
+ > * {
+ position: relative;
+ z-index: 1;
+ }
+ }
}
+ }
+
+ .simulation-tag {
+ background: var(--background-color-button);
+
+ color: var(--icon-default-color-active);
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ padding: 10px 5px;
+ border-radius: 12px 0 0 0;
+ }
}
+ }
}
@keyframes slideInFromRight {
- from {
- transform: translateX(100%);
- opacity: 0;
- }
+ from {
+ transform: translateX(100%);
+ opacity: 0;
+ }
- to {
- transform: translateX(0);
- opacity: 1;
- }
+ to {
+ transform: translateX(0);
+ opacity: 1;
+ }
}
.energy-usage {
- position: relative;
+ position: relative;
- .energy-usage-wrapper {
-
-
- .value {
- padding-top: 25px;
- font-size: var(--font-size-xxxlarge);
- color: var(--background-color-accent);
- }
+ .energy-usage-wrapper {
+ .value {
+ padding-top: 25px;
+ font-size: var(--font-size-xxxlarge);
+ color: var(--background-color-accent);
}
+ }
- .simulation-details {
- position: absolute;
- bottom: 12px;
- right: 12px;
+ .simulation-details {
+ position: absolute;
+ bottom: 12px;
+ right: 12px;
- .simulation-wrapper {
- display: flex;
- align-items: center;
- gap: 6px;
+ .simulation-wrapper {
+ display: flex;
+ align-items: center;
+ gap: 6px;
- .icon {
- width: 20px;
- height: 20px;
- border-radius: 50%;
- background-color: var(--background-color-accent);
- }
- }
+ .icon {
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ background-color: var(--background-color-accent);
+ }
}
+ }
- .chart {
- width: 90%;
- position: absolute;
- top: 10px;
- left: 0;
- }
+ .chart {
+ width: 90%;
+ position: absolute;
+ top: 10px;
+ left: 0;
+ }
}
.throughPutCard-container {
- .layers-wrapper {
- padding: 20px 10px;
- height: 100%;
- width: 100%;
- display: flex;
- justify-content: space-between;
- position: relative;
+ .layers-wrapper {
+ padding: 20px 10px;
+ height: 100%;
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ position: relative;
- .layer-wrapper {
- display: flex;
- flex-direction: column;
+ .layer-wrapper {
+ display: flex;
+ flex-direction: column;
- &:last-child {
- justify-content: end;
- }
- }
-
- .chart {
- width: 60%;
- height: 70%;
- position: absolute;
- }
+ &:last-child {
+ justify-content: end;
+ }
}
.chart {
- width: 80%;
- height: 90%;
- position: absolute;
- bottom: 0;
- left: 0;
+ width: 60%;
+ height: 70%;
+ position: absolute;
}
+ }
+
+ .chart {
+ width: 80%;
+ height: 90%;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ }
}
.cycle-time-container {
- position: relative;
+ position: relative;
- .cycle-main {
+ .cycle-main {
+ display: flex;
+ justify-content: space-between;
+ height: 100%;
+
+ .layers-wrapper {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+
+ .layers {
display: flex;
- justify-content: space-between;
- height: 100%;
+ flex-direction: column;
+ gap: 4px;
- .layers-wrapper {
- height: 100%;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
-
- .layers {
- display: flex;
- flex-direction: column;
- gap: 4px;
-
- .layer-name {
- color: var(--background-color-accent);
- }
-
- .layer-time {
- font-size: var(--font-size-large);
- }
-
- .layer-profit {
- color: #14ca44;
- text-align: end;
-
- span {
- color: #14ca44;
- }
- }
- }
+ .layer-name {
+ color: var(--background-color-accent);
}
- }
- .chart {
- position: absolute;
- bottom: 0;
- left: 10px;
- width: 60%;
- height: 80%;
+ .layer-time {
+ font-size: var(--font-size-large);
+ }
+
+ .layer-profit {
+ color: #14ca44;
+ text-align: end;
+
+ span {
+ color: #14ca44;
+ }
+ }
+ }
}
+ }
+
+ .chart {
+ position: absolute;
+ bottom: 0;
+ left: 10px;
+ width: 60%;
+ height: 80%;
+ }
}
.overallDowntime-container {
- .totalDownTime-wrapper {
+ .totalDownTime-wrapper {
+ display: flex;
+
+ .totalDownTime {
+ width: 70%;
+ background: var(--background-color-secondary);
+ backdrop-filter: blur(20px);
+ border-radius: 12px;
+
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ // gap: 20px;
+ padding: 8px 10px;
+ margin: 44px 0;
+
+ .totalDownTime-right {
display: flex;
+ flex-direction: column;
+ gap: 6px;
+ }
- .totalDownTime {
- width: 70%;
- background: var(--background-color-secondary);
- backdrop-filter: blur(20px);
- border-radius: 12px;
+ .totalDownTime-left {
+ display: flex;
+ align-items: center;
+ gap: 6px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- // gap: 20px;
- padding: 8px 10px;
- margin: 44px 0;
-
- .totalDownTime-right {
- display: flex;
- flex-direction: column;
- gap: 6px;
- }
-
- .totalDownTime-left {
- display: flex;
- align-items: center;
- gap: 6px;
-
- .value {
- font-size: var(--font-size-xlarge);
- color: var(--background-color-button);
- }
- }
- }
-
- .chart {
- width: 30%;
- position: relative;
+ .value {
+ font-size: var(--font-size-xlarge);
+ color: var(--background-color-button);
}
+ }
}
+
+ .chart {
+ width: 30%;
+ position: relative;
+ }
+ }
}
.overallScrapRate {
- .overallScrapRate-wrapper {
- display: flex;
+ .overallScrapRate-wrapper {
+ display: flex;
- .overallScrapRate-value {
- width: 50%;
- display: flex;
- flex-direction: column;
- gap: 6px;
- margin: 40px 0;
+ .overallScrapRate-value {
+ width: 50%;
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+ margin: 40px 0;
- .overallScrapRate-key {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- }
-
- .chart {
- width: 50%;
- position: relative;
- }
+ .overallScrapRate-key {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
}
+
+ .chart {
+ width: 50%;
+ position: relative;
+ }
+ }
}