refactor: Clean up code by removing unused imports, enhancing component props, and improving styles for better maintainability
This commit is contained in:
parent
c77b62db19
commit
304ccf134a
|
@ -10,7 +10,6 @@ import {
|
||||||
import ShortcutHelper from "./shortcutHelper";
|
import ShortcutHelper from "./shortcutHelper";
|
||||||
import { useShortcutStore } from "../../store/builder/store";
|
import { useShortcutStore } from "../../store/builder/store";
|
||||||
import { usePlayButtonStore } from "../../store/usePlayButtonStore";
|
import { usePlayButtonStore } from "../../store/usePlayButtonStore";
|
||||||
import OuterClick from "../../utils/outerClick";
|
|
||||||
|
|
||||||
const Footer: React.FC = () => {
|
const Footer: React.FC = () => {
|
||||||
const { logs, setIsLogListVisible } = useLogger();
|
const { logs, setIsLogListVisible } = useLogger();
|
||||||
|
@ -19,11 +18,6 @@ const Footer: React.FC = () => {
|
||||||
const { isPlaying } = usePlayButtonStore();
|
const { isPlaying } = usePlayButtonStore();
|
||||||
const { showShortcuts, setShowShortcuts } = useShortcutStore();
|
const { showShortcuts, setShowShortcuts } = useShortcutStore();
|
||||||
|
|
||||||
OuterClick({
|
|
||||||
contextClassName: ["shortcut-helper-overlay"],
|
|
||||||
setMenuVisible: () => setShowShortcuts(false),
|
|
||||||
});
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="footer-container">
|
<div className="footer-container">
|
||||||
<div className="footer-wrapper">
|
<div className="footer-wrapper">
|
||||||
|
@ -82,7 +76,7 @@ const Footer: React.FC = () => {
|
||||||
showShortcuts ? "visible" : ""
|
showShortcuts ? "visible" : ""
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<ShortcutHelper />
|
<ShortcutHelper setShowShortcuts={setShowShortcuts}/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -29,8 +29,8 @@ import {
|
||||||
DublicateIcon,
|
DublicateIcon,
|
||||||
DuplicateInstanceIcon,
|
DuplicateInstanceIcon,
|
||||||
PlayIcon,
|
PlayIcon,
|
||||||
BrowserIcon,
|
|
||||||
} from "../icons/ShortcutIcons";
|
} from "../icons/ShortcutIcons";
|
||||||
|
import { CloseIcon } from "../icons/ExportCommonIcons";
|
||||||
|
|
||||||
interface ShortcutItem {
|
interface ShortcutItem {
|
||||||
keys: string[];
|
keys: string[];
|
||||||
|
@ -44,7 +44,13 @@ interface ShortcutGroup {
|
||||||
items: ShortcutItem[];
|
items: ShortcutItem[];
|
||||||
}
|
}
|
||||||
|
|
||||||
const ShortcutHelper = () => {
|
interface ShortcutHelperProps {
|
||||||
|
setShowShortcuts: (value: boolean) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ShortcutHelper: React.FC<ShortcutHelperProps> = ({
|
||||||
|
setShowShortcuts,
|
||||||
|
}) => {
|
||||||
const shortcuts: ShortcutGroup[] = [
|
const shortcuts: ShortcutGroup[] = [
|
||||||
{
|
{
|
||||||
category: "Essential",
|
category: "Essential",
|
||||||
|
@ -256,27 +262,26 @@ const ShortcutHelper = () => {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
category: "Miscellaneous",
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
keys: ["F5", "F11", "F12", "CTRL", "+", "R"],
|
|
||||||
name: "Browser Defaults",
|
|
||||||
description: "Reserved for browser defaults",
|
|
||||||
icon: <BrowserIcon />,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const [activeCategory, setActiveCategory] =
|
const [activeCategory, setActiveCategory] =
|
||||||
React.useState<string>("Essential");
|
React.useState<string>("Essential");
|
||||||
|
|
||||||
const activeShortcuts =
|
const activeShortcuts =
|
||||||
shortcuts.find((group) => group.category === activeCategory)?.items || [];
|
shortcuts.find((group) => group.category === activeCategory)?.items ?? [];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="shortcut-helper-container">
|
<div className="shortcut-helper-container">
|
||||||
|
<button
|
||||||
|
id="close-shortcuts-helper"
|
||||||
|
className="close-button"
|
||||||
|
title="close-btn"
|
||||||
|
onClick={() => {
|
||||||
|
setShowShortcuts(false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<CloseIcon />
|
||||||
|
</button>
|
||||||
<div className="header">
|
<div className="header">
|
||||||
<div className="header-wrapper">
|
<div className="header-wrapper">
|
||||||
{shortcuts.map((group) => (
|
{shortcuts.map((group) => (
|
||||||
|
|
|
@ -335,6 +335,7 @@ const Tools: React.FC = () => {
|
||||||
{activeModule !== "visualization" && (
|
{activeModule !== "visualization" && (
|
||||||
<button
|
<button
|
||||||
id="drop-down-button"
|
id="drop-down-button"
|
||||||
|
title="drop-down"
|
||||||
className="drop-down-option-button"
|
className="drop-down-option-button"
|
||||||
ref={dropdownRef}
|
ref={dropdownRef}
|
||||||
onClick={() => setOpenDrop(!openDrop)}
|
onClick={() => setOpenDrop(!openDrop)}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import React, { useEffect, useMemo, useRef, useState } from "react";
|
import React, { useEffect, useMemo, useRef, useState } from "react";
|
||||||
|
|
||||||
import { arrayMove } from "@dnd-kit/sortable";
|
import { arrayMove } from "@dnd-kit/sortable";
|
||||||
import { useAsset3dWidget, useSocketStore } from "../../../../store/builder/store";
|
import { useSocketStore } from "../../../../store/builder/store";
|
||||||
import { usePlayButtonStore } from "../../../../store/usePlayButtonStore";
|
import { usePlayButtonStore } from "../../../../store/usePlayButtonStore";
|
||||||
import { useWidgetStore } from "../../../../store/useWidgetStore";
|
import { useWidgetStore } from "../../../../store/useWidgetStore";
|
||||||
import { DraggableWidget } from "../2d/DraggableWidget";
|
import { DraggableWidget } from "../2d/DraggableWidget";
|
||||||
|
@ -47,7 +47,7 @@ interface PanelProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
const generateUniqueId = () =>
|
const generateUniqueId = () =>
|
||||||
`${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
`${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
|
||||||
|
|
||||||
const Panel: React.FC<PanelProps> = ({
|
const Panel: React.FC<PanelProps> = ({
|
||||||
selectedZone,
|
selectedZone,
|
||||||
|
@ -56,7 +56,6 @@ const Panel: React.FC<PanelProps> = ({
|
||||||
setZonesData,
|
setZonesData,
|
||||||
waitingPanels,
|
waitingPanels,
|
||||||
}) => {
|
}) => {
|
||||||
const { widgetSelect, setWidgetSelect } = useAsset3dWidget();
|
|
||||||
const panelRefs = useRef<{ [side in Side]?: HTMLDivElement }>({});
|
const panelRefs = useRef<{ [side in Side]?: HTMLDivElement }>({});
|
||||||
const [panelDimensions, setPanelDimensions] = useState<{
|
const [panelDimensions, setPanelDimensions] = useState<{
|
||||||
[side in Side]?: { width: number; height: number };
|
[side in Side]?: { width: number; height: number };
|
||||||
|
@ -183,7 +182,7 @@ const Panel: React.FC<PanelProps> = ({
|
||||||
|
|
||||||
// Add widget to panel
|
// Add widget to panel
|
||||||
const addWidgetToPanel = async (asset: any, panel: Side) => {
|
const addWidgetToPanel = async (asset: any, panel: Side) => {
|
||||||
const email = localStorage.getItem("email") || "";
|
const email = localStorage.getItem("email") ?? "";
|
||||||
const organization = email?.split("@")[1]?.split(".")[0];
|
const organization = email?.split("@")[1]?.split(".")[0];
|
||||||
|
|
||||||
const newWidget = {
|
const newWidget = {
|
||||||
|
@ -285,7 +284,7 @@ const Panel: React.FC<PanelProps> = ({
|
||||||
{selectedZone.activeSides.map((side) => (
|
{selectedZone.activeSides.map((side) => (
|
||||||
<div
|
<div
|
||||||
key={side}
|
key={side}
|
||||||
id="panel-wrapper"
|
id={`panel-wrapper-${side}`}
|
||||||
className={`panel ${side}-panel absolute ${
|
className={`panel ${side}-panel absolute ${
|
||||||
hiddenPanels[selectedZone.zoneId]?.includes(side) ? "hidePanel" : ""
|
hiddenPanels[selectedZone.zoneId]?.includes(side) ? "hidePanel" : ""
|
||||||
}`}
|
}`}
|
||||||
|
@ -301,14 +300,14 @@ const Panel: React.FC<PanelProps> = ({
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className={`panel-content
|
className={`panel-content ${
|
||||||
${waitingPanels === side ? `${side}-closing` : ""}
|
waitingPanels === side ? `${side}-closing` : ""
|
||||||
${
|
}${
|
||||||
!hiddenPanels[selectedZone.zoneId]?.includes(side) && waitingPanels !== side
|
!hiddenPanels[selectedZone.zoneId]?.includes(side) &&
|
||||||
|
waitingPanels !== side
|
||||||
? `${side}-opening`
|
? `${side}-opening`
|
||||||
: ""
|
: ""
|
||||||
}
|
} ${isPlaying ? "fullScreen" : ""}`}
|
||||||
${isPlaying ? "fullScreen" : ""}`}
|
|
||||||
style={{
|
style={{
|
||||||
pointerEvents:
|
pointerEvents:
|
||||||
selectedZone.lockedPanels.includes(side) ||
|
selectedZone.lockedPanels.includes(side) ||
|
||||||
|
|
|
@ -71,7 +71,7 @@ const Project: React.FC = () => {
|
||||||
const { toggleThreeD } = useThreeDStore();
|
const { toggleThreeD } = useThreeDStore();
|
||||||
|
|
||||||
// simulation store
|
// simulation store
|
||||||
const { isPlaying, setIsPlaying } = usePlayButtonStore();
|
const { isPlaying } = usePlayButtonStore();
|
||||||
|
|
||||||
// collaboration store
|
// collaboration store
|
||||||
const { selectedUser } = useSelectedUserStore();
|
const { selectedUser } = useSelectedUserStore();
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`;
|
let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`;
|
||||||
// let url_Backend_dwinzo = `http://192.168.0.102:5000`;
|
|
||||||
type Side = "top" | "bottom" | "left" | "right";
|
type Side = "top" | "bottom" | "left" | "right";
|
||||||
|
|
||||||
export const panelData = async (
|
export const panelData = async (
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
@use "../../abstracts/variables" as *;
|
@use "../../abstracts/variables" as *;
|
||||||
@use "../../abstracts/mixins" as *;
|
@use "../../abstracts/mixins" as *;
|
||||||
|
|
||||||
|
|
||||||
.footer-container {
|
.footer-container {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
@ -34,7 +33,7 @@
|
||||||
|
|
||||||
.selector {
|
.selector {
|
||||||
color: var(--text-color);
|
color: var(--text-color);
|
||||||
font-size: var(--font-size-small)
|
font-size: var(--font-size-small);
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
|
@ -166,11 +165,23 @@
|
||||||
min-height: 320px;
|
min-height: 320px;
|
||||||
height: 320px;
|
height: 320px;
|
||||||
border-radius: 18px;
|
border-radius: 18px;
|
||||||
|
pointer-events: all;
|
||||||
|
|
||||||
background: var(--background-color);
|
background: var(--background-color);
|
||||||
backdrop-filter: blur(20px);
|
backdrop-filter: blur(20px);
|
||||||
|
.close-button {
|
||||||
|
position: absolute;
|
||||||
|
@include flex-center;
|
||||||
|
height: 26px;
|
||||||
|
width: 26px;
|
||||||
|
right: 12px;
|
||||||
|
top: 10px;
|
||||||
|
background: var(--background-color);
|
||||||
|
border-radius: #{$border-radius-medium};
|
||||||
|
outline: 1px solid var(--border-color);
|
||||||
|
&:hover{
|
||||||
|
background: var(--background-color-solid);
|
||||||
|
}
|
||||||
|
}
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -192,7 +203,7 @@
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
content: '';
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
@ -244,7 +255,6 @@
|
||||||
|
|
||||||
.shortcut-intro {
|
.shortcut-intro {
|
||||||
display: flex;
|
display: flex;
|
||||||
// align-items: center;
|
|
||||||
gap: 6px;
|
gap: 6px;
|
||||||
|
|
||||||
.value-wrapper {
|
.value-wrapper {
|
||||||
|
@ -254,7 +264,6 @@
|
||||||
|
|
||||||
.description {
|
.description {
|
||||||
font-size: var(--font-size-tiny);
|
font-size: var(--font-size-tiny);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -265,14 +274,22 @@
|
||||||
gap: 6px;
|
gap: 6px;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
|
||||||
.key {
|
.key {
|
||||||
background: linear-gradient(135.11deg, #656DC2 3.48%, #9526E5 91.33%);
|
background: linear-gradient(
|
||||||
|
135.11deg,
|
||||||
|
#656dc2 3.48%,
|
||||||
|
#9526e5 91.33%
|
||||||
|
);
|
||||||
|
@include flex-center;
|
||||||
padding: 4px 10px;
|
padding: 4px 10px;
|
||||||
|
height: 25px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
font-size: var(--font-size-tiny);
|
font-size: var(--font-size-tiny);
|
||||||
color: var(--icon-default-color-active);
|
color: var(--icon-default-color-active);
|
||||||
|
&:last-child{
|
||||||
|
background: var(--background-color-button);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.key.add {
|
.key.add {
|
||||||
|
@ -295,19 +312,12 @@
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
/* or center if vertical centering is desired */
|
/* or center if vertical centering is desired */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.shortcut-helper-overlay {
|
.shortcut-helper-overlay {
|
||||||
max-height: 0;
|
max-height: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
// opacity: 0;
|
|
||||||
transform: translateY(20px);
|
transform: translateY(20px);
|
||||||
transition: all 0.3s ease-in-out;
|
transition: all 0.3s ease-in-out;
|
||||||
|
|
||||||
|
|
|
@ -347,6 +347,77 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.controls-player-container {
|
||||||
|
max-width: 50vw;
|
||||||
|
border-radius: 15px;
|
||||||
|
gap: 40px;
|
||||||
|
background: var(--background-color);
|
||||||
|
backdrop-filter: blur(20px);
|
||||||
|
cursor: pointer;
|
||||||
|
@include flex-center;
|
||||||
|
justify-content: space-between;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 40px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
color: var(--accent-color);
|
||||||
|
z-index: 100;
|
||||||
|
isolation: isolate;
|
||||||
|
font-weight: 700;
|
||||||
|
padding: 8px;
|
||||||
|
|
||||||
|
.controls-left,
|
||||||
|
.controls-right {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
font-size: var(--font-size-small);
|
||||||
|
|
||||||
|
.label {
|
||||||
|
text-transform: capitalize;
|
||||||
|
font-size: var(--font-size-small);
|
||||||
|
}
|
||||||
|
|
||||||
|
.walkMode-wrapper {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
|
||||||
|
.input-toggle-container {
|
||||||
|
padding: 0;
|
||||||
|
gap: 4px;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
font-size: var(--font-size-small);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-wrapper {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 2px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
min-width: 64px;
|
||||||
|
background: var(--background-color);
|
||||||
|
border-radius: 20px;
|
||||||
|
height: fit-content;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: color .2s;
|
||||||
|
&:hover {
|
||||||
|
outline: 1px solid var(--border-color);
|
||||||
|
color: var(--accent-color);
|
||||||
|
}
|
||||||
|
.icon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
@include flex-center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.processDisplayer {
|
.processDisplayer {
|
||||||
border-radius: #{$border-radius-large};
|
border-radius: #{$border-radius-large};
|
||||||
outline: 1px solid var(--border-color);
|
outline: 1px solid var(--border-color);
|
||||||
|
|
|
@ -12,12 +12,16 @@
|
||||||
box-shadow: #{$box-shadow-medium};
|
box-shadow: #{$box-shadow-medium};
|
||||||
border-radius: #{$border-radius-large};
|
border-radius: #{$border-radius-large};
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
transition: width 0.2s;
|
|
||||||
background: var(--background-color);
|
background: var(--background-color);
|
||||||
backdrop-filter: blur(20px);
|
backdrop-filter: blur(20px);
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
outline: 1px solid var(--border-color);
|
outline: 1px solid var(--border-color);
|
||||||
outline-offset: -1px;
|
outline-offset: -1px;
|
||||||
|
transition: transform 0.4s ease-in-out 0.01s;
|
||||||
|
|
||||||
|
&.visible {
|
||||||
|
transform: translate(-50%, -310px);
|
||||||
|
}
|
||||||
|
|
||||||
.split {
|
.split {
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
@ -47,9 +51,11 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: color-mix(in srgb,
|
background: color-mix(
|
||||||
|
in srgb,
|
||||||
var(--highlight-accent-color) 60%,
|
var(--highlight-accent-color) 60%,
|
||||||
transparent);
|
transparent
|
||||||
|
);
|
||||||
|
|
||||||
.tooltip {
|
.tooltip {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
@ -78,9 +84,11 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: color-mix(in srgb,
|
background: color-mix(
|
||||||
|
in srgb,
|
||||||
var(--highlight-accent-color) 60%,
|
var(--highlight-accent-color) 60%,
|
||||||
transparent);
|
transparent
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
.drop-down-container {
|
.drop-down-container {
|
||||||
|
@ -178,88 +186,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.tools-container {
|
|
||||||
transition: transform 0.4s ease-in-out 0.01s;
|
|
||||||
|
|
||||||
&.visible {
|
|
||||||
transform: translate(-50%, -310px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.controls-player-container {
|
|
||||||
width: 663px;
|
|
||||||
height: 30px;
|
|
||||||
border-radius: 15px;
|
|
||||||
|
|
||||||
background: var(--background-color);
|
|
||||||
backdrop-filter: blur(20px);
|
|
||||||
cursor: pointer;
|
|
||||||
@include flex-center;
|
|
||||||
justify-content: space-between;
|
|
||||||
position: fixed;
|
|
||||||
bottom: 40px;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%, 0);
|
|
||||||
color: var(--accent-color);
|
|
||||||
z-index: 100;
|
|
||||||
isolation: isolate;
|
|
||||||
font-weight: 700;
|
|
||||||
padding: 8px;
|
|
||||||
|
|
||||||
.controls-left,
|
|
||||||
.controls-right {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 12px;
|
|
||||||
font-size: var(--font-size-small);
|
|
||||||
|
|
||||||
.label {
|
|
||||||
text-transform: capitalize;
|
|
||||||
font-size: var(--font-size-small);
|
|
||||||
}
|
|
||||||
|
|
||||||
.walkMode-wrapper {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 4px;
|
|
||||||
|
|
||||||
|
|
||||||
.input-toggle-container {
|
|
||||||
padding: 0;
|
|
||||||
gap: 4px;
|
|
||||||
|
|
||||||
.label {
|
|
||||||
|
|
||||||
font-size: var(--font-size-small);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-wrapper {
|
|
||||||
background: var(--background-color);
|
|
||||||
backdrop-filter: blur(8px);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
gap: 5px;
|
|
||||||
border-radius: 15px;
|
|
||||||
padding: 2px 8px;
|
|
||||||
color: var(--highlight-text-color);
|
|
||||||
cursor: pointer;
|
|
||||||
font-size: var(--font-size-small);
|
|
||||||
|
|
||||||
.icon {
|
|
||||||
width: 16px;
|
|
||||||
height: 16px;
|
|
||||||
@include flex-center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes pulse {
|
@keyframes pulse {
|
||||||
0% {
|
0% {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
|
Loading…
Reference in New Issue