This commit is contained in:
CNERC-SD-010\kyu committed 2025-02-12 17:01:12 +09:00
1 parent 507d541a2d
commit 435829e28e
3056 files changed
+3547802

No files matched your search

+68
View File
@@ -0,0 +1,68 @@
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# Eclipse IDE #
/.settings/
/.classpath
/.project
/bin/
/tmp/
/target/
/.factorypath
/build/
# IntelliJ IDEA #
.idea/
*.iws
*.iml
*.ipr
/out/
# NetBeans IDE #
/nbproject/private/
/build/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
# VS Code #
.vscode/
# Maven
log/
**/target/
# Gradle
.gradle
**/build/
# Other common build directories
out/
# macOS specific
.DS_Store
# Windows specific
Thumbs.db
+15
View File
@@ -0,0 +1,15 @@
FROM nexus.172-26-10-182.nip.io:5000/openjdk-17:latest
ENV TZ=Asia/Seoul
RUN mkdir -p /apigw-app
WORKDIR /apigw-app
ADD ./US_API_GW.jar /apigw-app/US_API_GW.jar
RUN chmod +x /apigw-app/US_API_GW.jar
EXPOSE 8080
ENTRYPOINT java -jar US_API_GW.jar
+158
View File
@@ -0,0 +1,158 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.12</version><!-- 이건 스프링부트 버전입니다 -->
<relativePath />
</parent>
<groupId>egov</groupId>
<artifactId>US_API_GW</artifactId>
<version>1.4.592</version>
<name>US_API_GW</name>
<description>MSA Sample Project</description>
<properties>
<java.version>17</java.version>
<spring-cloud.version>2021.0.8</spring-cloud.version>
</properties>
<repositories>
<repository>
<id>mvn2s</id>
<url>https://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe</id>
<url>https://maven.egovframe.go.kr/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.egovframe.rte</groupId>
<artifactId>org.egovframe.rte.fdl.crypto</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.12.4</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.12.4</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.12.4</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.28</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>US_API_GW</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,20 @@
package egovframework.msa.sample;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.reactive.function.client.WebClient;
@SpringBootApplication
public class GatewayServerApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayServerApplication.class, args);
}
@Bean
public WebClient.Builder webClientBuilder() {
return WebClient.builder();
}
}
@@ -0,0 +1,460 @@
package egovframework.msa.sample.config;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.Base64;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.crypto.SecretKey;
import org.egovframe.rte.fdl.cryptography.impl.ARIACipher;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpCookie;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.util.MultiValueMap;
import org.springframework.util.ObjectUtils;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.util.UriUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.MalformedJwtException;
import io.jsonwebtoken.UnsupportedJwtException;
import io.jsonwebtoken.io.Decoders;
import io.jsonwebtoken.security.Keys;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
@Configuration
@Getter
@Slf4j
public class GatewayJwtProvider {
private static final String CRYPTO_ALGORITHM = "SHA-256";
private static final String CRYPTO_SALT = "035e35d21d529f4dcbe998beb4367ed3";
private static final String ROLE_GRANTED = "O";
@Value("${token.accessSecret}")
private String accessSecret;
@Value("${token.refreshSecret}")
private String refreshSecret;
@Value("${token.accessExpiration}")
private String accessExpiration;
@Value("${token.refreshExpiration}")
private String refreshExpiration;
@Value("${json.role.path}")
private String roleJsonPath;
@Value("${json.statTarget.path}")
private String statTargetPath;
public SecretKey getSigningKey(String secret) {
byte[] keyBytes = Decoders.BASE64.decode(secret);
return Keys.hmacShaKeyFor(keyBytes);
}
public int accessValidateToken(String token) {
try {
accessExtractClaims(token);
return 200;
} catch (MalformedJwtException | UnsupportedJwtException | IllegalArgumentException e) {
log.error("GatewayJwtProvider.accessValidateToken Invalid Access Token: {}", token, e);
return 400;
} catch (ExpiredJwtException e) {
log.error("GatewayJwtProvider.accessValidateToken Expired Access Token: {}", token, e);
return 401;
}
}
public int refreshValidateToken(String token) {
try {
refreshExtractClaims(token);
return 200;
} catch (MalformedJwtException | UnsupportedJwtException | IllegalArgumentException e) {
log.error("GatewayJwtProvider.refreshValidateToken Invalid Access Token: {}", token, e);
return 400;
} catch (ExpiredJwtException e) {
log.error("GatewayJwtProvider.refreshValidateToken Expired Access Token: {}", token, e);
return 401;
}
}
public Claims accessExtractClaims(String token) {
SecretKey key = getSigningKey(this.accessSecret);
return Jwts.parser().verifyWith(key).build().parseSignedClaims(token).getPayload();
}
public Claims refreshExtractClaims(String token) {
SecretKey key = getSigningKey(this.refreshSecret);
return Jwts.parser().verifyWith(key).build().parseSignedClaims(token).getPayload();
}
public String extractUserId(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("userId")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("userId").toString()), StandardCharsets.UTF_8);
}
public String extractUserNm(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("userNm")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("userNm").toString()), StandardCharsets.UTF_8);
}
public String extractAuthId(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("authId")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("authId").toString()), StandardCharsets.UTF_8);
}
public String extractAuthNm(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("authNm")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("authNm").toString()), StandardCharsets.UTF_8);
}
public String extractDeptCd(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("deptCd")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("deptCd").toString()), StandardCharsets.UTF_8);
}
public String extractDeptNm(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("deptNm")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("deptNm").toString()), StandardCharsets.UTF_8);
}
public String extractParntsDeptCd(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("parntsDeptCd")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("parntsDeptCd").toString()), StandardCharsets.UTF_8);
}
public String extractParntsDeptNm(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("parntsDeptNm")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("parntsDeptNm").toString()), StandardCharsets.UTF_8);
}
public String extractParntsRealWorkDeptCd(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("parntsRealWorkDeptCd")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("parntsRealWorkDeptCd").toString()), StandardCharsets.UTF_8);
}
public String extractRealWorkDeptCd(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("realWorkDeptCd")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("realWorkDeptCd").toString()), StandardCharsets.UTF_8);
}
public String extractRealWorkDeptNm(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("realWorkDeptNm")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("realWorkDeptNm").toString()), StandardCharsets.UTF_8);
}
public String extractWorkSttusCd(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("workSttusCd")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("workSttusCd").toString()), StandardCharsets.UTF_8);
}
public String extractWorkSttusNm(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("workSttusNm")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("workSttusNm").toString()), StandardCharsets.UTF_8);
}
public String extractUserSeCd(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("userSeCd")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("userSeCd").toString()), StandardCharsets.UTF_8);
}
public String extractAuthPgrmList(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("authPgrmList")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("authPgrmList").toString()), StandardCharsets.UTF_8);
}
public String extractDeptList(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("deptList")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("deptList").toString()), StandardCharsets.UTF_8);
}
public String extractPswdChngDt(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("pswdChngDt")) ?
"" : UriUtils.encode(decrypt(accessExtractClaims(token).get("pswdChngDt").toString()), StandardCharsets.UTF_8);
}
public String extractLoginDt(String token) {
return ObjectUtils.isEmpty(accessExtractClaims(token).get("loginDt")) ?
"" : UriUtils.encode(accessExtractClaims(token).get("loginDt").toString(), StandardCharsets.UTF_8);
}
public String refreshExtractPswdChngDt(String token) {
return ObjectUtils.isEmpty(refreshExtractClaims(token).get("pswdChngDt")) ?
"" : UriUtils.encode(refreshExtractClaims(token).get("pswdChngDt").toString(), StandardCharsets.UTF_8);
}
public String refreshExtractAuthId(String token) {
return ObjectUtils.isEmpty(refreshExtractClaims(token).get("authId")) ?
"" : UriUtils.encode(decrypt(refreshExtractClaims(token).get("authId").toString()), StandardCharsets.UTF_8);
}
public Map<String, String> getUserAgent(ServerWebExchange exchange) {
String userAgent = exchange.getRequest().getHeaders().getFirst("User-Agent");
Map<String, String> parsedData = new HashMap<>();
parsedData.put("browser", "");
parsedData.put("version", "");
parsedData.put("os", "");
parsedData.put("device", "");
if (userAgent == null) {
return parsedData;
}
// 브라우저와 버전을 추출
if (userAgent.contains("Firefox")) {
parsedData.put("browser", "Firefox");
String version = userAgent.substring(userAgent.indexOf("Firefox/") + "Firefox/".length()).split(" ")[0];
parsedData.put("version", version);
} else if (userAgent.contains("Chrome") && userAgent.contains("Safari")) {
parsedData.put("browser", "Chrome");
String version = userAgent.substring(userAgent.indexOf("Chrome/") + "Chrome/".length()).split(" ")[0];
parsedData.put("version", version);
} else if (userAgent.contains("Safari") && userAgent.contains("Version")) {
parsedData.put("browser", "Safari");
String version = userAgent.substring(userAgent.indexOf("Version/") + "Version/".length()).split(" ")[0];
parsedData.put("version", version);
} else if (userAgent.contains("MSIE")) {
parsedData.put("browser", "Internet Explorer");
String version = userAgent.substring(userAgent.indexOf("MSIE ") + "MSIE ".length()).split(" ")[0];
parsedData.put("version", version);
} else if (userAgent.contains("Trident")) {
parsedData.put("browser", "Internet Explorer");
String version = userAgent.substring(userAgent.indexOf("rv:") + "rv:".length()).split("\\)")[0];
parsedData.put("version", version);
}
// 운영 체제를 추출
if (userAgent.contains("Windows NT")) {
String osVersion = userAgent.substring(userAgent.indexOf("Windows NT") + "Windows NT ".length()).split(";")[0];
parsedData.put("os", "Windows NT " + osVersion);
} else if (userAgent.contains("Mac OS X")) {
String osVersion = userAgent.substring(userAgent.indexOf("Mac OS X") + "Mac OS X ".length()).split("\\)")[0];
parsedData.put("os", "Mac OS X " + osVersion);
} else if (userAgent.contains("Linux")) {
parsedData.put("os", "Linux");
}
// 장치 유형을 추출 (간단히 모바일과 데스크톱으로 구분)
if (userAgent.contains("Mobi") || userAgent.contains("Android")) {
parsedData.put("device", "MOB");
} else {
parsedData.put("device", "PC");
}
return parsedData;
}
public String getCurrentDate() {
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
return dateFormat.format(date);
}
public String getClientIp() {
InetAddress address;
try {
address = InetAddress.getLocalHost();
return address.getHostAddress();
} catch (UnknownHostException e) {
log.error("GatewayJwtProvider.getClientIp Client Ip Invalid", e);
return "0.0.0.0";
}
}
public String decrypt(String s) {
byte[] decryptBaseByte = Base64.getDecoder().decode(s);
ARIACipher cipher = new ARIACipher();
cipher.setPassword(CRYPTO_SALT);
byte[] decryptByte = cipher.decrypt(decryptBaseByte);
return new String(decryptByte, StandardCharsets.UTF_8);
}
public ServerHttpRequest headerSetting(ServerWebExchange exchange, String accessToken) {
return exchange.getRequest().mutate()
.headers(httpHeaders -> {
httpHeaders.set("X-CONECT-SE-CD", getUserAgent(exchange).get("device"));
httpHeaders.set("X-CONECT-DT", getCurrentDate());
httpHeaders.set("X-CONECT-IP", getClientIp());
httpHeaders.set("X-MAC-ADRS", "");
httpHeaders.set("X-USER-ID", extractUserId(accessToken));
httpHeaders.set("X-USER-NM", extractUserNm(accessToken));
httpHeaders.set("X-AUTH-ID", extractAuthId(accessToken));
httpHeaders.set("X-DEPT-CD", extractDeptCd(accessToken));
httpHeaders.set("X-PARNTS-DEPT-CD", extractParntsDeptCd(accessToken));
httpHeaders.set("X-PARNTS-REAL-WORK-DEPT-CD", extractParntsRealWorkDeptCd(accessToken));
httpHeaders.set("X-REAL-WORK-DEPT-CD", extractRealWorkDeptCd(accessToken));
httpHeaders.set("X-USER-SE-CD", extractUserSeCd(accessToken));
httpHeaders.set("X-AUTH-PGRM", extractAuthPgrmList(accessToken));
httpHeaders.set("X-DEPT-LIST", extractDeptList(accessToken));
})
.build();
}
public void expandedLogSetting(ServerWebExchange exchange, String accessToken) {
StringBuilder sb = new StringBuilder();
sb.append("userIdLog=");
sb.append(UriUtils.decode(extractUserId(accessToken), StandardCharsets.UTF_8));
sb.append(",userNmLog=");
sb.append(UriUtils.decode(extractUserNm(accessToken), StandardCharsets.UTF_8));
sb.append(",authIdLog=");
sb.append(UriUtils.decode(extractAuthId(accessToken), StandardCharsets.UTF_8));
sb.append(",authNmLog=");
sb.append(UriUtils.decode(extractAuthNm(accessToken), StandardCharsets.UTF_8));
sb.append(",deptCdLog=");
sb.append(UriUtils.decode(extractRealWorkDeptCd(accessToken), StandardCharsets.UTF_8));
sb.append(",deptNmLog=");
sb.append(UriUtils.decode(extractRealWorkDeptNm(accessToken), StandardCharsets.UTF_8));
sb.append(",conectSeCdLog=");
sb.append(UriUtils.decode(getUserAgent(exchange).get("device"), StandardCharsets.UTF_8));
sb.append(",conectDtLog=");
sb.append(UriUtils.decode(getCurrentDate(), StandardCharsets.UTF_8));
sb.append(",conectIpLog=");
sb.append(UriUtils.decode(getClientIp(), StandardCharsets.UTF_8));
sb.append(",parntsRealWorkDeptCdLog=");
sb.append(UriUtils.decode(extractParntsRealWorkDeptCd(accessToken), StandardCharsets.UTF_8));
sb.append(",realWorkDeptCdLog=");
sb.append(UriUtils.decode(extractRealWorkDeptCd(accessToken), StandardCharsets.UTF_8));
sb.append(",realWorkDeptNmLog=");
sb.append(UriUtils.decode(extractRealWorkDeptNm(accessToken), StandardCharsets.UTF_8));
sb.append(",workSttusCdLog=");
sb.append(UriUtils.decode(extractWorkSttusCd(accessToken), StandardCharsets.UTF_8));
sb.append(",workSttusNmLog=");
sb.append(UriUtils.decode(extractWorkSttusNm(accessToken), StandardCharsets.UTF_8));
sb.append(",loginDtLog=");
sb.append(UriUtils.decode(extractLoginDt(accessToken), StandardCharsets.UTF_8));
log.debug("AuthGatewayFilterFactory tokenInfo -- {}", sb);
}
public void logSetting(ServerWebExchange exchange, String accessToken) {
StringBuilder sb = new StringBuilder();
sb.append("userIdLog=");
sb.append(UriUtils.decode(extractUserId(accessToken), StandardCharsets.UTF_8));
sb.append(",userNmLog=");
sb.append(UriUtils.decode(extractUserNm(accessToken), StandardCharsets.UTF_8));
sb.append(",deptNmLog=");
sb.append(UriUtils.decode(extractRealWorkDeptNm(accessToken), StandardCharsets.UTF_8));
sb.append(",conectSeCdLog=");
sb.append(UriUtils.decode(getUserAgent(exchange).get("device"), StandardCharsets.UTF_8));
sb.append(",conectDtLog=");
sb.append(UriUtils.decode(getCurrentDate(), StandardCharsets.UTF_8));
log.debug("AuthGatewayFilterFactory tokenInfo -- {}", sb);
}
public String getCookie(ServerHttpRequest request, String coookieName) {
String cookieValue = "";
MultiValueMap<String, HttpCookie> cookies = request.getCookies();
HttpCookie sessionIdCookie = cookies.getFirst(coookieName);
if (sessionIdCookie != null) {
cookieValue = sessionIdCookie.getValue();
}
return cookieValue;
}
public Boolean getJsonPgrmRoleList(String path, String authId) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
List<Map<String, String>> list;
Resource resource = new ClassPathResource(roleJsonPath);
if (!resource.exists()) {
log.error("BackGatewayFilterFactory classPath 경로가 잘못되었거나 경로에 파일이 존재하지 않습니다.");
return false;
}
try (InputStream inputStream = resource.getInputStream()) {
list = objectMapper.readValue(inputStream, new TypeReference<List<Map<String, String>>>() {});
} catch (IOException e) {
log.error("GatewayJwtProvider getJsonPgrmRoleList ERROR " + e);
return false;
}
// 특정 URL에 해당하는 항목 찾기
Optional<Map<String, String>> result = list.stream()
.filter(map -> path.equals(map.get("URL")))
.findFirst();
// 결과 체크 및 authId 값 검사
if (result.isPresent()) {
Map<String, String> map = result.get();
String roleValue = map.get(authId);
log.debug(roleValue);
return ROLE_GRANTED.equals(roleValue);
}
return false;
}
public String getParntsDeptNm(String accessToken) {
if (ObjectUtils.isEmpty(accessToken)) {
return "";
}
String deptNm = "";
String extractedRealWorkDeptNm = extractRealWorkDeptNm(accessToken);
if (!ObjectUtils.isEmpty(extractedRealWorkDeptNm)) {
deptNm = UriUtils.decode(extractRealWorkDeptNm(accessToken), StandardCharsets.UTF_8);
}
return extractBetween(deptNm, "서울특별시 ", " ");
}
private static String extractBetween(String input, String start, String end) {
String patternStr = Pattern.quote(start) + "(.*?)" + Pattern.quote(end);
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
return matcher.group(1);
} else { // // NOSONAR -- 공백이 없는 경우 문자열의 끝까지 추출
patternStr = Pattern.quote(start) + "(.*)";
pattern = Pattern.compile(patternStr);
matcher = pattern.matcher(input);
if (matcher.find()) {
return matcher.group(1);
}
return "";
}
}
public String generateHash(String data) {
StringBuilder sb = new StringBuilder();
try {
MessageDigest md = MessageDigest.getInstance(CRYPTO_ALGORITHM);
byte[] bytes = md.digest(data.getBytes(StandardCharsets.UTF_8));
for (byte b : bytes) {
sb.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));
}
} catch (NoSuchAlgorithmException e) { // NOSONAR --
sb.setLength(0);
}
return sb.toString();
}
}
@@ -0,0 +1,49 @@
package egovframework.msa.sample.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.web.server.SecurityWebFilterChain;
import org.springframework.security.web.server.header.XFrameOptionsServerHttpHeadersWriter;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
@Configuration
@EnableWebFluxSecurity
public class GatewaySecurityConfig {
@Bean
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
http.csrf().disable()
.cors().and()
.formLogin().disable()
.httpBasic().disable()
.authorizeExchange()
.pathMatchers(HttpMethod.PUT, "/**").authenticated()
.pathMatchers(HttpMethod.DELETE, "/**").authenticated()
.pathMatchers(HttpMethod.PATCH, "/**").authenticated()
.pathMatchers(HttpMethod.HEAD, "/**").authenticated()
.pathMatchers(HttpMethod.OPTIONS, "/**").authenticated()
.pathMatchers(HttpMethod.TRACE, "/**").authenticated()
.anyExchange().permitAll().and()
.headers(headers -> headers.frameOptions(frameOptions -> frameOptions.mode(XFrameOptionsServerHttpHeadersWriter.Mode.SAMEORIGIN)));
return http.build();
}
@Bean
public CorsWebFilter corsWebFilter() {
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
// 내부망 및 외부망 도메인 허용
config.addAllowedOriginPattern("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return new CorsWebFilter(source);
}
}
@@ -0,0 +1,128 @@
package egovframework.msa.sample.controller;
import java.util.List;
import java.util.Locale;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import egovframework.msa.sample.config.GatewayJwtProvider;
import lombok.extern.slf4j.Slf4j;
@Controller
@Slf4j
public class GatewayController {
private static final String ACCESS_TOKEN = "at";
private static final String REFRESH_TOKEN = "rt";
private final GatewayJwtProvider gatewayJwtProvider;
public GatewayController(GatewayJwtProvider gatewayJwtProvider) {
this.gatewayJwtProvider = gatewayJwtProvider;
}
@GetMapping("/ercs-main")
public String getErcsMain(ServerHttpRequest request, ServerHttpResponse response, Model model) {
boolean isMobi = isMobile(request);
model.addAttribute("isMobi", isMobi);
return "ercs/ercsMain";
}
@GetMapping("/menu.do")
public String getErcsMenu(ServerHttpRequest request, ServerHttpResponse resopnse, Model model) {
boolean isMobi = isMobile(request);
model.addAttribute("isMobi", isMobi);
return "ercs/menu";
}
@GetMapping("/header.do")
public String getErcsHeader() {
return "ercs/header";
}
@GetMapping("/")
public String index(ServerHttpRequest request, ServerHttpResponse response, Model model) {
boolean isMobi = isMobile(request);
//String redirectLoginUrl = isMobi ? "/auth/mobLogin.do" : "/auth/login.do";
String accessToken = gatewayJwtProvider.getCookie(request, ACCESS_TOKEN);
String refreshToken = gatewayJwtProvider.getCookie(request, REFRESH_TOKEN);
// 엑세스토큰이 있는 경우
if (!ObjectUtils.isEmpty(accessToken)) {
String pswdChngDt = gatewayJwtProvider.extractPswdChngDt(accessToken);
log.debug("GatewayController pswdChngDt = {}", pswdChngDt);
if (ObjectUtils.isEmpty(pswdChngDt)) {
String refreshPswdChngDt = gatewayJwtProvider.refreshExtractPswdChngDt(refreshToken);
log.debug("GatewayController pswdChngDt = {}", refreshPswdChngDt);
if (ObjectUtils.isEmpty(refreshPswdChngDt)) {
model.addAttribute("loginErrorMsg", "비정상적인 접근입니다. 비밀번호를 변경해주세요.");
}
return "redirect:/auth/pswdChange.do";
}
// 액세스토큰이 없는 경우
} else {
// refreshToken도 없음
if (ObjectUtils.isEmpty(refreshToken)) {
return "redirect:/auth/login.do";
} else { // refreshToken 있음
String pswdChngDt = gatewayJwtProvider.refreshExtractPswdChngDt(refreshToken);
if (ObjectUtils.isEmpty(pswdChngDt)) {
model.addAttribute("loginErrorMsg", "비정상적인 접근입니다. 비밀번호를 변경해주세요.");
return "redirect:/auth/pswdChange.do";
}
}
}
model.addAttribute("isMobi", isMobi);
return "index";
}
private static boolean isMobile(ServerHttpRequest request) {
List<String> userAgent = request.getHeaders().get("User-Agent");
String userAgentString = "";
if (ObjectUtils.isEmpty(userAgent)) {
return false;
} else {
userAgentString = userAgent.toString().toUpperCase(Locale.ENGLISH);;
}
if (userAgentString.indexOf("MOBI") > -1) {
return true;
} else {
return false;
}
}
@GetMapping("/error")
public String error(@RequestParam String url, @RequestParam String status, Model model) {
log.debug("GatewayController error url >>> {}", url);
log.debug("GatewayController error status >>> {}", status);
model.addAttribute("url", url);
model.addAttribute("status", status);
return "error";
}
@GetMapping("/captcha")
public String captcha(@RequestParam(required = false, defaultValue = "") String pod, Model model) {
log.debug("capcha");
model.addAttribute("pod", pod);
return "captcha";
}
}
@@ -0,0 +1,273 @@
package egovframework.msa.sample.filter;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseCookie;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.util.UriUtils;
import egovframework.msa.sample.config.GatewayJwtProvider;
import egovframework.msa.sample.token.GatewayToken;
import egovframework.msa.sample.token.GatewayTokenService;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import reactor.core.publisher.Mono;
@Slf4j
@Component
public class AuthGatewayFilterFactory extends AbstractGatewayFilterFactory<AuthGatewayFilterFactory.Config> {
@Value("${auth.host}")
private String authHost;
private final WebClient.Builder webClientBuilder;
private final GatewayJwtProvider gatewayJwtProvider;
private final GatewayTokenService gatewayTokenService;
private String accessToken;
private String refreshToken;
public AuthGatewayFilterFactory(WebClient.Builder webClientBuilder, GatewayJwtProvider gatewayJwtProvider, GatewayTokenService gatewayTokenService) {
super(Config.class);
this.webClientBuilder = webClientBuilder;
this.gatewayJwtProvider = gatewayJwtProvider;
this.gatewayTokenService = gatewayTokenService;
}
/**
* AuthGatewayFilter 시작
* application.yml 에 route filter를 적용한 url은 모두 해당 필터에 걸림
*
* 토큰 검증 흐름
* 1. AccessToken Null 체크
* 2. RefreshToken Null 체크
* 3. AccessToken 검증
* 4. RefreshToken 검증
*/
@Override
public GatewayFilter apply(Config config) {
return (exchange, chain) -> {
String path = exchange.getRequest().getURI().getPath();
// 특정 경로 필터링 예외 처리
if (path.contains("/bsi_ui/com") || path.contains("/bsi_ui/css") || path.contains("/bsi_ui/js") || path.contains("/bsi_ui/fonts")
|| path.contains("/bsi_ui/img") || path.contains("/adi_ui/com") || path.contains("/adi_ui/images")
|| path.contains("/gis_ui/img") || path.contains("/gis_ui/js") || path.contains("/gis_ui/css")
|| path.contains("/dsr_ui/css") || path.contains("/dsr_ui/fonts")
|| path.contains("/dsr_ui/gis") || path.contains("/dsr_ui/img") || path.contains("/dsr_ui/js")
|| path.contains("/dsr_ui/kendo") || path.contains("/opt_ui/js") || path.contains("/opt_ui/img")
|| path.contains("/opt_ui/*.svg") || path.contains("/opt_ui/favicon.ico") || path.contains("/adi/images")
|| path.contains("/dictionary.json") || path.contains(".svg")) {
return chain.filter(exchange);
}
// 쿠키에서 accessToken, refreshToken 가져오기
accessToken = gatewayJwtProvider.getCookie(exchange.getRequest(), "at");
refreshToken = gatewayJwtProvider.getCookie(exchange.getRequest(), "rt");
if (ObjectUtils.isEmpty(accessToken)) { // 1. AccessToken 이 없을 경우
if (ObjectUtils.isEmpty(refreshToken)) { // 1.1 RefreshToken 도 없으면 401 에러
return onError(exchange);
}
// 1.2 RefreshToken 로컬 검증 (형식, 만료여부 등)
if (gatewayJwtProvider.refreshValidateToken(refreshToken) == 400 || gatewayJwtProvider.refreshValidateToken(refreshToken) == 401) {
// 1.2.1 refreshToken 로컬 검증 유효하지 않으면 401 에러
return onError(exchange);
} else { // NOSONAR
// 1.2.2 refreshToken 로컬 검증 유효하면 서버 검증
String refreshTokenValidateUrl = authHost + "/auth/validateRefreshToken.do";
String tokenRecreateUrl = authHost + "/auth/recreateToken.do";
return webClientBuilder.build().get()
.uri(refreshTokenValidateUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(Boolean.class)
.flatMap(isValid -> { // 1.2.2.1 refreshToken 서버 검증
if (Boolean.TRUE.equals(isValid)) { // 1.2.2.1.1 refreshToken 서버 검증 성공 시 accessToken 재발급
return webClientBuilder.build().post()
.uri(tokenRecreateUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(Map.class)
.flatMap(response -> {
String newAt = (String) response.get("at");
String newRt = (String) response.get("rt");
// 쿠키에 accessToken 추가
ResponseCookie accessTokenCookie = ResponseCookie.from("at", newAt)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getAccessExpiration())) / 1000 + 10)
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(accessTokenCookie);
// refreshToken 도 있으면 refreshToken 도 쿠키에 추가
if (!ObjectUtils.isEmpty(newRt)) {
log.debug("시스템관리자는 리프레시토큰 쿠키에 추가 됨 {}", newRt);
ResponseCookie refreshTokenCookie = ResponseCookie.from("rt", newRt)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getRefreshExpiration())) / 1000 + 10)
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(refreshTokenCookie);
}
// 여기서 헤더 셋팅
gatewayJwtProvider.logSetting(exchange, newAt);
ServerHttpRequest request = gatewayJwtProvider.headerSetting(exchange, newAt);
//return chain.filter(exchange);
return chain.filter(exchange.mutate().request(request).build());
});
} else { // 1.2.2.1.2 refreshToken 서버 검증 실패 401 에러
return onError(exchange);
}
});
}
}
// 2. AcessToken 이 유효하지 않은 경우 (형식, 키, 만료여부 등)
if (gatewayJwtProvider.accessValidateToken(accessToken) == 400 || gatewayJwtProvider.accessValidateToken(accessToken) == 401) { // NOSONAR
// 2.1 RefreshToken null 체크
if (ObjectUtils.isEmpty(refreshToken)) {
return onError(exchange);
}
// 2.2 RefreshToken 로컬 검증 (형식, 키, 만료여부 등)
if (gatewayJwtProvider.refreshValidateToken(refreshToken) == 400 || gatewayJwtProvider.refreshValidateToken(refreshToken) == 401) {
// 2.2.1 RefreshToken 로컬 검증 실패시
return onError(exchange);
} else { // 2.2.2 RefreshToken 로컬 검증 성공시
String refreshTokenValidateUrl = authHost + "/auth/validateRefreshToken.do";
String tokenRecreateUrl = authHost + "/auth/recreateToken.do";
return webClientBuilder.build().get()
.uri(refreshTokenValidateUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(Boolean.class)
.flatMap(isValid -> { // 2.2.2.1 refreshToken 서버 검증
if (Boolean.TRUE.equals(isValid)) { // 2.2.2.1.1 refreshToken 서버 검증 성공 시 accessToken 재발급
return webClientBuilder.build().post()
.uri(tokenRecreateUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(Map.class)
.flatMap(response -> {
String newAt = (String) response.get("at");
String newRt = (String) response.get("rt");
// 쿠키에 accessToken 추가
ResponseCookie accessTokenCookie = ResponseCookie.from("at", newAt)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getAccessExpiration())) / 1000 + 10)
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(accessTokenCookie);
// refreshToken 도 있으면 refreshToken 도 쿠키에 추가
if (!ObjectUtils.isEmpty(newRt)) { // NOSONAR
log.debug("시스템관리자는 리프레시토큰 쿠키에 추가 됨 {}", newRt);
ResponseCookie refreshTokenCookie = ResponseCookie.from("rt", newRt)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getRefreshExpiration())) / 1000 + 10)
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(refreshTokenCookie);
}
// 여기서 헤더 셋팅
gatewayJwtProvider.logSetting(exchange, newAt);
ServerHttpRequest request = gatewayJwtProvider.headerSetting(exchange, newAt);
//return chain.filter(exchange);
return chain.filter(exchange.mutate().request(request).build());
});
} else { // 2.2.2.1.2 refreshToken 서버 검증 실패 시 401 에러
return onError(exchange);
}
});
}
} else { // 3. AccessToken 이 유효한 경우 사용자 정보 추출 및 토큰 검증
String username = UriUtils.decode(gatewayJwtProvider.extractUserId(accessToken), StandardCharsets.UTF_8);
GatewayToken gatewayToken = gatewayTokenService.findToken(username);
if (gatewayToken == null) {
return onError(exchange);
}
// 3.1 RefreshToken 일치 여부 확인
if (refreshToken.equals(gatewayToken.getRefreshToken())) { // 3.1.1 클라이언트 쿠키속 refreshToken 과 일치하면 사용자 정보 추출 및 헤더 셋팅
gatewayJwtProvider.logSetting(exchange, accessToken);
ServerHttpRequest request = gatewayJwtProvider.headerSetting(exchange, accessToken);
return chain.filter(exchange.mutate().request(request).build());
} else { // 3.1.2 클라이언트 쿠키속 refreshToken 과 일치하지 않으면 401 에러
return onError(exchange);
}
}
};
}
@Data
public static class Config {}
private static Mono<Void> onError(ServerWebExchange exchange) {
ServerHttpResponse response = exchange.getResponse();
response.setStatusCode(HttpStatus.UNAUTHORIZED);
// accessToken 쿠키 삭제
ResponseCookie deleteAccessTokenCookie = ResponseCookie.from("at", "")
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge(0) // 쿠키 즉시 삭제
.build();
response.addCookie(deleteAccessTokenCookie);
// refreshToken 쿠키 삭제
ResponseCookie deleteRefreshTokenCookie = ResponseCookie.from("rt", "")
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge(0) // 쿠키 즉시 삭제
.build();
response.addCookie(deleteRefreshTokenCookie);
DataBuffer buffer = response.bufferFactory().wrap("The requested token is invalid.".getBytes(StandardCharsets.UTF_8));
return response.writeWith(Mono.just(buffer));
}
private static boolean isLocalhost(ServerHttpRequest request) {
String host = request.getURI().getHost();
return "localhost".equals(host);
}
}
@@ -0,0 +1,295 @@
package egovframework.msa.sample.filter;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseCookie;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.util.UriUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import egovframework.msa.sample.config.GatewayJwtProvider;
import egovframework.msa.sample.token.GatewayToken;
import egovframework.msa.sample.token.GatewayTokenService;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import reactor.core.publisher.Mono;
@Component
@Slf4j
public class BackGatewayFilterFactory extends AbstractGatewayFilterFactory<BackGatewayFilterFactory.Config> {
@Value("${auth.host}")
private String authHost;
private final WebClient.Builder webClientBuilder;
private final GatewayJwtProvider gatewayJwtProvider;
private final GatewayTokenService gatewayTokenService;
private String accessToken;
private String refreshToken;
public BackGatewayFilterFactory(WebClient.Builder webClientBuilder, GatewayJwtProvider gatewayJwtProvider, GatewayTokenService gatewayTokenService) {
super(Config.class);
this.webClientBuilder = webClientBuilder;
this.gatewayJwtProvider = gatewayJwtProvider;
this.gatewayTokenService = gatewayTokenService;
}
@Data
public static class Config {}
/**
* BackGatewayFilter 시작
*/
@Override
public GatewayFilter apply(Config config) {
log.debug("BackGatewayFilterFactory Filter Start");
return (exchange, chain) -> {
String path = exchange.getRequest().getURI().getPath();
if (path.endsWith("/health") || path.endsWith("/info") || path.contains("/bsi/files/downloadNotice.do") ||
path.contains("/bsi/stats/insertMenuStats.do") || path.contains("/dsr_ui/css") || path.contains("/dsr_ui/fonts")
|| path.contains(".svg")) {
return chain.filter(exchange);
}
// 쿠키에서 accessToken, refreshToken 가져오기
accessToken = gatewayJwtProvider.getCookie(exchange.getRequest(), "at");
refreshToken = gatewayJwtProvider.getCookie(exchange.getRequest(), "rt");
if (ObjectUtils.isEmpty(accessToken)) { // NOSONAR -- 1. AccessToken 이 없을 경우
log.debug("AuthGatewayFilterFactory accessToken null...");
if (ObjectUtils.isEmpty(refreshToken)) { // 1.1 RefreshToken 도 없으면 401 에러
log.debug("AuthGatewayFilterFactory refreshToken null...");
return onError(exchange.getResponse());
}
// 1.2 RefreshToken 로컬 검증 (형식, 만료여부 등)
if (gatewayJwtProvider.refreshValidateToken(refreshToken) == 400 || gatewayJwtProvider.refreshValidateToken(refreshToken) == 401) { // NOSONAR --
// 1.2.1 refreshToken 로컬 검증 유효하지 않으면 401 에러
log.debug("AuthGatewayFilterFactory refreshToken local invalid...");
return onError(exchange.getResponse());
} else { // NOSONAR
log.debug("AuthGatewayFilterFactory refreshToken local validate SUCCESS");
// 1.2.2 refreshToken 로컬 검증 유효하면 서버 검증
String refreshTokenValidateUrl = authHost + "/auth/validateRefreshToken.do";
String tokenRecreateUrl = authHost + "/auth/recreateToken.do";
return webClientBuilder.build().get()
.uri(refreshTokenValidateUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(Boolean.class)
.flatMap(isValid -> { // 1.2.2.1 refreshToken 서버 검증
log.debug("AuthGatewayFilterFactory refreshToken server validate isValid >>> {}", isValid);
if (Boolean.TRUE.equals(isValid)) { // NOSONAR -- 1.2.2.1.1 refreshToken 서버 검증 성공 시 accessToken 재발급
return webClientBuilder.build().post()
.uri(tokenRecreateUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(Map.class)
.flatMap(response -> {
String newAt = (String) response.get("at");
String newRt = (String) response.get("rt");
// 쿠키에 accessToken 추가
ResponseCookie accessTokenCookie = ResponseCookie.from("at", newAt)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getAccessExpiration())) / 1000 + 10)
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(accessTokenCookie);
// refreshToken 도 있으면 refreshToken 도 쿠키에 추가
if (!ObjectUtils.isEmpty(newRt)) { // NOSONAR -- 리팩토리 예정
log.debug("시스템관리자는 리프레시토큰 쿠키에 추가 됨 {}", newRt);
ResponseCookie refreshTokenCookie = ResponseCookie.from("rt", newRt)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getRefreshExpiration())) / 1000 + 10)
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(refreshTokenCookie);
}
String tokenAuthId = gatewayJwtProvider.extractAuthId(newAt);
boolean hasPermission = checkPermission(path, tokenAuthId);
if (!hasPermission) {
log.debug("권한 없는 사용자 접근 발생 -- 403 에러 반환");
return onError(exchange.getResponse());
}
// 여기서 헤더 셋팅
//gatewayJwtProvider.logSetting(exchange, token);
ServerHttpRequest request = gatewayJwtProvider.headerSetting(exchange, newAt);
return chain.filter(exchange.mutate().request(request).build());
});
} else { // 1.2.2.1.2 refreshToken 서버 검증 실패 401 에러
return onError(exchange.getResponse());
}
});
}
}
// 2. AcessToken 이 유효하지 않은 경우 (형식, 키, 만료여부 등)
if (gatewayJwtProvider.accessValidateToken(accessToken) == 400 || gatewayJwtProvider.accessValidateToken(accessToken) == 401) { // NOSONAR
log.debug("AuthGatewayFilterFactory accessToken invalid...");
// 2.1 RefreshToken null 체크
if (ObjectUtils.isEmpty(refreshToken)) {
log.debug("AuthGatewayFilterFactory refreshToken null...");
return onError(exchange.getResponse());
}
// 2.2 RefreshToken 로컬 검증 (형식, 키, 만료여부 등)
if (gatewayJwtProvider.refreshValidateToken(refreshToken) == 400 || gatewayJwtProvider.refreshValidateToken(refreshToken) == 401) {
log.debug("AuthGatewayFilterFactory refreshToken local invalid..."); // 2.2.1 RefreshToken 로컬 검증 실패시
return onError(exchange.getResponse());
} else { // 2.2.2 RefreshToken 로컬 검증 성공시
log.debug("AuthGatewayFilterFactory refreshToken local validate SUCCESS");
String refreshTokenValidateUrl = authHost + "/auth/validateRefreshToken.do";
String tokenRecreateUrl = authHost + "/auth/recreateToken.do";
return webClientBuilder.build().get()
.uri(refreshTokenValidateUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(Boolean.class)
.flatMap(isValid -> { // 2.2.2.1 refreshToken 서버 검증
log.debug("AuthGatewayFilterFactory refresh accessToken isvalid >>> {}", isValid);
if (Boolean.TRUE.equals(isValid)) { // 2.2.2.1.1 refreshToken 서버 검증 성공 시 accessToken 재발급
return webClientBuilder.build().post()
.uri(tokenRecreateUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(Map.class)
.flatMap(response -> {
String newAt = (String) response.get("at");
String newRt = (String) response.get("rt");
// 쿠키에 accessToken 추가
ResponseCookie accessTokenCookie = ResponseCookie.from("at", newAt)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getAccessExpiration())) / 1000 + 10)
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(accessTokenCookie);
// refreshToken 도 있으면 refreshToken 도 쿠키에 추가
if (!ObjectUtils.isEmpty(newRt)) { // NOSONAR -- 리팩토리 예정
log.debug("시스템관리자는 리프레시토큰 쿠키에 추가 됨 {}", newRt);
ResponseCookie refreshTokenCookie = ResponseCookie.from("rt", newRt)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getRefreshExpiration())) / 1000 + 10)
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(refreshTokenCookie);
}
String tokenAuthId = gatewayJwtProvider.extractAuthId(newAt);
boolean hasPermission = checkPermission(path, tokenAuthId);
if (!hasPermission) {
log.debug("권한 없는 사용자 접근 발생 -- 403 에러 반환");
return onError(exchange.getResponse());
}
// 여기서 헤더 셋팅
//gatewayJwtProvider.logSetting(exchange, token);
ServerHttpRequest request = gatewayJwtProvider.headerSetting(exchange, newAt);
return chain.filter(exchange.mutate().request(request).build());
});
} else { // 2.2.2.1.2 refreshToken 서버 검증 실패 시 401 에러
return onError(exchange.getResponse());
}
});
}
} else { // 3. AccessToken 이 유효한 경우 사용자 정보 추출 및 토큰 검증
String username = UriUtils.decode(gatewayJwtProvider.extractUserId(accessToken), StandardCharsets.UTF_8);
String tokenAuthId = gatewayJwtProvider.extractAuthId(accessToken);
log.debug("AuthGatewayFilterFactory username >>> {}", username);
log.debug("AuthGatewayFilterFactory tokenAuthId >>> {}", tokenAuthId);
GatewayToken gatewayToken = gatewayTokenService.findToken(username);
if (gatewayToken == null) {
return onError(exchange.getResponse());
}
boolean hasPermission = checkPermission(path, tokenAuthId);
if (!hasPermission) {
log.debug("권한 없는 사용자 접근 발생 -- 403 에러 반환");
return onError(exchange.getResponse());
}
// 3.1 RefreshToken 일치 여부 확인
if (refreshToken.equals(gatewayToken.getRefreshToken())) { // 3.1.1 클라이언트 쿠키속 refreshToken 과 일치하면 사용자 정보 추출 및 헤더 셋팅
//gatewayJwtProvider.logSetting(exchange, accessToken);
ServerHttpRequest request = gatewayJwtProvider.headerSetting(exchange, accessToken);
log.debug("AuthGatewayFilterFactory headerSetting Complete >>>>>>> {}", request);
return chain.filter(exchange.mutate().request(request).build());
} else { // 3.1.2 클라이언트 쿠키속 refreshToken 과 일치하지 않으면 401 에러
return onError(exchange.getResponse());
}
}
};
}
/**
* @methodName : onError
* @author : wb_10_park1
* @date : 2024.11.11
* @description : 403 에러 반환 메서드
* @param response
* @return
*/
private static Mono<Void> onError(ServerHttpResponse response) {
response.setStatusCode(HttpStatus.FORBIDDEN);
response.getHeaders().setContentType(MediaType.TEXT_PLAIN);
response.getHeaders().add("Content-Type", "text/plain; charset=UTF-8");
DataBuffer buffer = response.bufferFactory().wrap("NOT ALLOWED -- You are sending a wrong and dangerous request or you do not have access..".getBytes(StandardCharsets.UTF_8));
return response.writeWith(Mono.just(buffer));
}
private static boolean isLocalhost(ServerHttpRequest request) {
String host = request.getURI().getHost();
return "localhost".equals(host);
}
private boolean checkPermission(String path, String authId) {
boolean hasPermission;
try {
hasPermission = gatewayJwtProvider.getJsonPgrmRoleList(path, authId);
log.debug("checkPermission hasPermission 결과 ===== {} : {} : {}", path, authId, hasPermission);
} catch (JsonProcessingException e) {
log.debug("checkPermission JsonPrecessingException == > ", e);
return false;
}
return hasPermission;
}
}
@@ -0,0 +1,255 @@
package egovframework.msa.sample.filter;
import java.nio.charset.StandardCharsets;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseCookie;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.server.ServerWebExchange;
import egovframework.msa.sample.config.GatewayJwtProvider;
import egovframework.msa.sample.token.GatewayToken;
import egovframework.msa.sample.token.GatewayTokenService;
import lombok.Data;
import reactor.core.publisher.Mono;
@Component
public class FrontGatewayFilterFactory extends AbstractGatewayFilterFactory<FrontGatewayFilterFactory.Config> {
@Value("${auth.host}")
private String authHost;
@Data
public static class Config {}
private final WebClient.Builder webClientBuilder;
private final GatewayJwtProvider gatewayJwtProvider;
private final GatewayTokenService gatewayTokenService;
private String accessToken;
private String refreshToken;
public FrontGatewayFilterFactory(WebClient.Builder webClientBuilder, GatewayJwtProvider gatewayJwtProvider, GatewayTokenService gatewayTokenService) {
super(Config.class);
this.webClientBuilder = webClientBuilder;
this.gatewayJwtProvider = gatewayJwtProvider;
this.gatewayTokenService = gatewayTokenService;
}
/** @methodName : apply
* @author : wb_10_park1
* @date : 2024.08.22
* @description : 게이트웨이 프론트엔드 필터 적용 메서드
* @param exchange
* @return
*
* 액세스 토큰을 검증하고, 레디스 서버에서 refreshToken 을 검증한다.
*
* 1. AccessToken 이 null 인경우
* 2. AccessToken 이 유효하지 않은 경우 (형식, 키, 만료여부 등)
* 3. AccessToken 이 유효한 경우
*/
@Override
public GatewayFilter apply(Config config) {
String recreateAccessTokenUrl = authHost + "/auth/recreateAccessToken.do";
return (exchange, chain) -> {
String path = exchange.getRequest().getURI().getPath();
// 특정 경로 필터링 예외 처리
if (path.contains("/bsi_ui/com") || path.contains("/bsi_ui/css") || path.contains("/bsi_ui/js")
|| path.contains("/bsi_ui/img") || path.contains("/adi_ui/com") || path.contains("/adi_ui/images")
|| path.contains("/gis_ui/img") || path.contains("/gis_ui/js") || path.contains("/gis_ui/css")
|| path.contains("/dsr_ui/css") || path.contains("/dsr_ui/fonts")
|| path.contains("/dsr_ui/gis") || path.contains("/dsr_ui/img") || path.contains("/dsr_ui/js")
|| path.contains("/dsr_ui/kendo") || path.contains("/opt_ui/js") || path.contains("/opt_ui/img")
|| path.contains("/opt_ui/*.svg") || path.contains("/opt_ui/favicon.ico") || path.contains("/adi/images")
|| path.contains("/dictionary.json") || path.contains(".svg")) {
return chain.filter(exchange);
}
/*********************************************/
/* 토큰 검증 & 재발급 */
/*********************************************/
// 쿠키에서 accessToken, refreshToken 가져오기
accessToken = gatewayJwtProvider.getCookie(exchange.getRequest(), "at");
// redis 조회 데이터
String tokenKey = gatewayJwtProvider.generateHash(accessToken);
String username = gatewayTokenService.findTokenById(tokenKey);
/* 1. AccessToken 이 null 인 경우 */
if (ObjectUtils.isEmpty(accessToken)) {
// 1-1. redis 토큰 검증
if (ObjectUtils.isEmpty(username)) {
return onError(exchange);
}
GatewayToken gatewayToken = gatewayTokenService.findToken(username);
if (ObjectUtils.isEmpty(gatewayToken)) {
return onError(exchange);
}
refreshToken = gatewayToken.getRefreshToken();
// 1-2. accessToken 재발급 & refreshToken 연장
return webClientBuilder.build().get()
.uri(recreateAccessTokenUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(String.class)
.flatMap(token -> {
ResponseCookie cookie = ResponseCookie.from("at", token)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getAccessExpiration())) / 1000 + 10) // NOSONAR -- 6시간 + 10초
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(cookie);
// 여기서 헤더 셋팅
ServerHttpRequest request = gatewayJwtProvider.headerSetting(exchange, token);
return chain.filter(exchange.mutate().request(request).build());
});
}
/* 2. AccessToken 이 유효하지 않은 경우 (형식, 키, 만료여부 등) */
if (gatewayJwtProvider.accessValidateToken(accessToken) == 400) {
// 2-1. redis 토큰 검증
if (ObjectUtils.isEmpty(username)) {
return onError(exchange);
}
GatewayToken gatewayToken = gatewayTokenService.findToken(username);
if (ObjectUtils.isEmpty(gatewayToken)) {
return onError(exchange);
}
refreshToken = gatewayToken.getRefreshToken();
// 2-2. accessToken 재발급 & refreshToken 연장
return webClientBuilder.build().get()
.uri(recreateAccessTokenUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(String.class)
.flatMap(token -> {
ResponseCookie cookie = ResponseCookie.from("at", token)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getAccessExpiration())) / 1000 + 10) // NOSONAR -- 6시간 + 10초
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(cookie);
// 여기서 헤더 셋팅
ServerHttpRequest request = gatewayJwtProvider.headerSetting(exchange, token);
return chain.filter(exchange.mutate().request(request).build());
});
}
/* 3. AccessToken 이 유효한 경우 */
if (gatewayJwtProvider.accessValidateToken(accessToken) == 200) {
// 3-1. redis 토큰 검증
if (ObjectUtils.isEmpty(username)) {
return onError(exchange);
}
GatewayToken gatewayToken = gatewayTokenService.findToken(username);
if (ObjectUtils.isEmpty(gatewayToken)) {
return onError(exchange);
}
refreshToken = gatewayToken.getRefreshToken();
// 3-2. accessToken 재발급 & refreshToken 연장
return webClientBuilder.build().get()
.uri(recreateAccessTokenUrl)
.header("rt", refreshToken)
.retrieve()
.bodyToMono(String.class)
.flatMap(token -> {
ResponseCookie cookie = ResponseCookie.from("at", token)
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge((Long.parseLong(gatewayJwtProvider.getAccessExpiration())) / 1000 + 10) // NOSONAR -- 6시간 + 10초
.sameSite("Strict")
.build();
exchange.getResponse().addCookie(cookie);
// 여기서 헤더 셋팅
ServerHttpRequest request = gatewayJwtProvider.headerSetting(exchange, token);
return chain.filter(exchange.mutate().request(request).build());
});
}
return chain.filter(exchange);
};
}
/**
* @methodName : onError
* @author : wb_10_park1
* @date : 2024.08.22
* @description : 에러 메서드
* @param exchange
* @return
*/
private static Mono<Void> onError(ServerWebExchange exchange) {
ServerHttpResponse response = exchange.getResponse();
response.setStatusCode(HttpStatus.UNAUTHORIZED);
// accessToken 쿠키 삭제
ResponseCookie deleteAccessTokenCookie = ResponseCookie.from("at", "")
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge(0) // NOSONAR -- 쿠키 즉시 삭제
.build();
response.addCookie(deleteAccessTokenCookie);
// refreshToken 쿠키 삭제
ResponseCookie deleteRefreshTokenCookie = ResponseCookie.from("rt", "")
.httpOnly(true)
.secure(!isLocalhost(exchange.getRequest()))
.path("/")
.maxAge(0) // NOSONAR -- 쿠키 즉시 삭제
.build();
response.addCookie(deleteRefreshTokenCookie);
DataBuffer buffer = response.bufferFactory().wrap("The requested token is invalid".getBytes(StandardCharsets.UTF_8));
return response.writeWith(Mono.just(buffer));
}
/**
* @methodName : isLocalhost
* @author : wb_10_park1
* @date : 2024.08.22
* @description : 로컬 호스트 여부 확인
* @param request
* @return
*/
private static boolean isLocalhost(ServerHttpRequest request) {
String host = request.getURI().getHost();
return "localhost".equals(host);
}
}
@@ -0,0 +1,51 @@
package egovframework.msa.sample.filter.global;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.ResponseCookie;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import lombok.extern.slf4j.Slf4j;
import reactor.core.publisher.Mono;
@Component
@Slf4j
public class InterGatewayFilterFactory implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
String extIp = exchange.getRequest().getHeaders().getFirst("X-External-IP");
boolean extState = Boolean.parseBoolean(exchange.getRequest().getHeaders().getFirst("X-External-Request"));
log.debug("##### InterGatewayFilterFactory extIp >>> {}", extIp);
log.debug("##### InterGatewayFilterFactory extState >>> {}", extState);
// 헤더값을 수정하여 로그인 검증서버로 넘기기
ServerHttpRequest modifiedRequest = exchange.getRequest().mutate()
.header("X-External-IP", extIp)
.header("X-External-Request", String.valueOf(extState))
.build();
// 외부 접근시
if (extState) {
ServerHttpResponse response = exchange.getResponse();
ResponseCookie cookie = ResponseCookie.from("exReq", "true")
.path("/")
.httpOnly(true)
.secure(true)
.build();
response.addCookie(cookie);
}
return chain.filter(exchange.mutate().request(modifiedRequest).build());
}
@Override
public int getOrder() {
return -1;
}
}
@@ -0,0 +1,164 @@
package egovframework.msa.sample.filter.global;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.util.UriUtils;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import egovframework.msa.sample.config.GatewayJwtProvider;
import lombok.extern.slf4j.Slf4j;
import reactor.core.publisher.Mono;
/**
* @packageName : egovframework.msa.sample.filter
* @fileName : LogFilter.java
* @author : wb_10_park1
* @date : 2024.08.14
* @description :
*<pre>
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2024.08.14 wb_10_park1 최초 생성
* </pre>
*/
@Slf4j
@Component
public class LogFilter implements GlobalFilter {
@Value("${json.statTarget.path}")
private String statTargetPath;
@Value("${bsi.backend.host}")
private String bsiBackendHost;
private final GatewayJwtProvider gatewayJwtProvider;
private final WebClient.Builder webClientBuilder;
private String accessToken;
private String parntsDeptNm;
private String userId;
public LogFilter(GatewayJwtProvider gatewayJwtProvider, WebClient.Builder webClientBuilder) {
this.gatewayJwtProvider = gatewayJwtProvider;
this.webClientBuilder = webClientBuilder;
}
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
return chain.filter(exchange).doFinally(signalType -> {
String responsePath = exchange.getRequest().getURI().getPath();
String statusCode = exchange.getResponse().getStatusCode() != null
? exchange.getResponse().getStatusCode().toString()
: "NON";
accessToken = gatewayJwtProvider.getCookie(exchange.getRequest(), "at");
if (ObjectUtils.isEmpty(accessToken)) {
logResponse("UNKNOWN", "UNKNOWN", responsePath, statusCode);
} else {
handleAccessToken(accessToken, responsePath, statusCode);
}
});
}
private void handleAccessToken(String accessToken, String responsePath, String statusCode) {
String validateAccessToken = Integer.toString(gatewayJwtProvider.accessValidateToken(accessToken));
if ("200".equals(validateAccessToken)) {
String extractedDeptNm = gatewayJwtProvider.getParntsDeptNm(accessToken);
String extractedUserId = gatewayJwtProvider.extractUserId(accessToken);
if (!ObjectUtils.isEmpty(extractedDeptNm) && !ObjectUtils.isEmpty(extractedUserId)) {
parntsDeptNm = extractedDeptNm;
userId = UriUtils.decode(extractedUserId, StandardCharsets.UTF_8);
logResponse(userId, parntsDeptNm, responsePath, statusCode);
processStats(responsePath, accessToken);
}
}
}
private void logResponse(String userId, String parntsDeptNm, String responsePath, String statusCode) {
log.info("내부망 RESPONSE TRACE LOG -- traceUrl={},traceStatus={},traceId={},traceParntsDept={},traceTime={}",
responsePath, statusCode, userId, parntsDeptNm,
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")));
}
private void processStats(String responsePath, String accessToken) {
Resource resource = new ClassPathResource(statTargetPath);
if (!resource.exists()) {
log.error("로그 필터 classPath 경로 오류");
} else {
try (InputStream inputStream = resource.getInputStream()) {
ObjectMapper objectMapper = new ObjectMapper();
List<Map<String, String>> list = objectMapper.readValue(inputStream, new TypeReference<List<Map<String, String>>>() {
});
Optional<Map<String, String>> result = list.stream()
.filter(map -> responsePath.equals(map.get("URL")))
.findFirst();
result.ifPresent(map -> processResult(map, accessToken));
} catch (IOException e) {
log.error("LogFilter IOException --- " + e);
}
}
}
private void processResult(Map<String, String> map, String accessToken) {
String url = map.get("URL");
String menu = map.get("PARNTS_MENU");
String deptCd = UriUtils.decode(
gatewayJwtProvider.extractParntsRealWorkDeptCd(accessToken),
StandardCharsets.UTF_8
);
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDate = now.format(formatter);
log.info("내부망 RESPONSE TRACE LOG -- traceUrl={},traceStatus={},traceId={},traceParntsDept={},traceTime={}",
url, deptCd, userId, parntsDeptNm,
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")));
Map<String, String> requestBody = Map.of(
"url", url,
"menuNm", menu,
"deptCd", deptCd
);
String menuStatsUrl = bsiBackendHost + "/bsi/stats/insertMenuStats.do";
webClientBuilder.build().post()
.uri(menuStatsUrl)
.body(BodyInserters.fromValue(requestBody))
.retrieve()
.bodyToMono(Void.class)
.subscribe(response -> log.info("이용률 통계 insert API 성공"),
error -> log.error("이용률 통계 insert API 실패", error));
}
}
@@ -0,0 +1,70 @@
package egovframework.msa.sample.token;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.time.Duration;
@Configuration
@EnableRedisRepositories("egovframework.msa.sample.token")
public class GatewayRedisConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.password}")
private String password;
@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setHostName(this.host);
redisStandaloneConfiguration.setPort(this.port);
redisStandaloneConfiguration.setPassword(this.password);
return new LettuceConnectionFactory(redisStandaloneConfiguration);
}
@Bean
public RedisTemplate<String, GatewayToken> authRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, GatewayToken> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new Jackson2JsonRedisSerializer<>(GatewayToken.class));
return template;
}
@Bean
public RedisTemplate<String, String> tokenRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, String> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new StringRedisSerializer());
return template;
}
@Bean
public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {
RedisCacheConfiguration cacheConfig = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofHours(1L))
.disableCachingNullValues();
return RedisCacheManager.RedisCacheManagerBuilder
.fromConnectionFactory(redisConnectionFactory)
.cacheDefaults(cacheConfig)
.build();
}
}
@@ -0,0 +1,22 @@
package egovframework.msa.sample.token;
import org.springframework.data.redis.core.RedisHash;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@RedisHash("Token")
public class GatewayToken {
private String username;
//private String tokenKey;
private String refreshToken;
private String regDate;
private String userNm;
private String realWorkDeptCd;
private String clsfNm;
private String lastCUDdate;
}
@@ -0,0 +1,51 @@
package egovframework.msa.sample.token;
import java.util.HashSet;
import java.util.Set;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.redis.core.Cursor;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ScanOptions;
import org.springframework.stereotype.Service;
@Service
public class GatewayTokenService {
private final RedisTemplate<String, GatewayToken> authRedisTemplate;
private final RedisTemplate<String, String> tokenRedisTemplate;
public GatewayTokenService(RedisTemplate<String, GatewayToken> authRedisTemplate,
RedisTemplate<String, String> tokenRedisTemplate) {
this.authRedisTemplate = authRedisTemplate;
this.tokenRedisTemplate = tokenRedisTemplate;
}
@Cacheable(value="Token", key="#username")
public GatewayToken findToken(String username) {
return authRedisTemplate.opsForValue().get(username);
}
@Cacheable(value="TokenKey", key="#tokenKey")
public String findTokenById(String tokenKey) {
return tokenRedisTemplate.opsForValue().get(tokenKey) != null ? tokenRedisTemplate.opsForValue().get(tokenKey) : "";
}
public long getKeyCount() {
Set<String> keys = new HashSet<>();
Cursor<byte[]> cursor = authRedisTemplate.getConnectionFactory().getConnection().scan(ScanOptions.scanOptions().match("*").build()); // NOSONAR
while (cursor.hasNext()) {
keys.add(new String(cursor.next())); // NOSONAR
}
return keys.size();
}
public Set<String> getAllKeys() {
Set<String> keys = new HashSet<>();
Cursor<byte[]> cursor = authRedisTemplate.getConnectionFactory().getConnection().scan(ScanOptions.scanOptions().match("*").build()); // NOSONAR
while (cursor.hasNext()) {
keys.add(new String(cursor.next())); // NOSONAR
}
return keys;
}
}
+228
View File
@@ -0,0 +1,228 @@
server:
port: 80
servlet:
encoding:
charset: UTF-8
enabled: true
force: true
spring:
main:
web-application-type: reactive
application:
name: api-gw
#redis:
#host: ${redis.host:redis-primary-0.redis-headless.api-gw.svc.cluster.local}
#port: ${redis.port:6379}
#password: ${redis.password:Thqkd119!@}
redis:
host: 172.26.10.46
port: 30079
password: Thqkd119!@
cloud:
gateway:
httpclient:
pool:
max-idle-time: 1000
# default-filters:
# - DedupeResponseHeader=Access-Control-Allow-Origin Access-Control-Allow-Credentials
#
# globalcors:
# cors-Configurations:
# '[/**]':
# allowedOrigins:
# - "https://api-gw-ext.210-90-169-94.nip.io" # 외부망 경로
# - '${private.cloud.gateway.url}'
# - '${auth.server.url}'
# - 'https://sb-dev.172-26-10-182.nip.io'
# allowCredentials: true
# allowedHeaders: '*'
# allowedMethods:
# - GET
# - POST
# - PUT
# - DELETE
routes:
# openapi.seoul.go.kr
- id: openapi_pmisPjtPhoto_route
uri: http://openapi.seoul.go.kr:8088/647264687153656f3531414f656375/xml/pmisPjtPhoto/**
predicates:
- Path=/647264687153656f3531414f656375/xml/pmisPjtPhoto/**
# 인증서버
- id: author_route
uri: http://localhost:8090
predicates:
- Path=/auth/**
# 기준정보
- id: bsi_file_route
uri: ${bsi.backend.server.url:lb://bsi-backend}
predicates:
- Path=/bsi/files/**
filters:
- RewritePath=/bsi/files/(?<segment>.*), /bsi/files/${segment}
- id: bsi_ui_route
uri: ${bsi.frontend.server.url:lb://bsi-frontend}
predicates:
- Path=/bsi_ui/**
filters:
- RewritePath=/bsi_ui/(?<segment>.*), /bsi_ui/${segment}
- name: Auth
- id: bsi_route
uri: http://localhost:8085
predicates:
- Path=/bsi/**
filters:
- RewritePath=/bsi/(?<segment>.*), /bsi/${segment}
- name: Back
#재난정보
- id: dsr_ui_route
uri: http://localhost:8081
predicates:
- Path=/dsr_ui/**
filters:
- RewritePath=/dsr_ui/(?<segment>.*), /dsr_ui/${segment}
- name: Auth
- id: dsr_route
uri: http://localhost:8082
predicates:
- Path=/dsr/**
filters:
- RewritePath=/dsr/(?<segment>.*), /dsr/${segment}
- name: Back
# 작전현장
- id: opt_ui_route
uri: ${opt.frontend.server.url:lb://opt-frontend}
predicates:
- Path=/opt_ui/**
filters:
- RewritePath=/opt_ui/(?<segment>.*), /opt_ui/${segment}
- name: Auth
- id: opt_route
uri: ${opt.backend.server.url:lb://opt-backend}
predicates:
- Path=/opt/**
filters:
- RewritePath=/opt/(?<segment>.*), /opt/${segment}
- name: Back
# 부가정보
- id: adi_ui_route
uri: http://localhost:8083
predicates:
- Path=/adi_ui/**
filters:
- RewritePath=/adi_ui/(?<segment>.*), /adi_ui/${segment}
- name: Auth
- id: adi_route
uri: http://localhost:8084
predicates:
- Path=/adi/**
filters:
- RewritePath=/adi/(?<segment>.*), /adi/${segment}
- name: Back
# 지리정보(GIS)
- id: gis_ui_route
uri: ${gis.frontend.server.url:lb://gis-frontend}
predicates:
- Path=/gis_ui/**
filters:
- RewritePath=/gis_ui/(?<segment>.*), /gis_ui/${segment}
- name: Auth
- id: gis_route
uri: ${gis.backend.server.url:lb://gis-backend}
predicates:
- Path=/gis/**
filters:
- RewritePath=/gis/(?<segment>.*), /gis/${segment}
- name: Back
# 연계
- id: wad_route
uri: ${wad.backend.server.url:lb://wad-backend}
predicates:
- Path=/wad/**
# 긴통단 지휘통제
- id: dnc_ui_route
# uri: ${dnc.frontend.server.url:lb://dnc-frontend}
uri: http://localhost:8080
predicates:
- Path=/dnc_ui/**
filters:
- RewritePath=/dnc_ui/(?<segment>.*), /dnc_ui/${segment}
- id: dnc_route
# uri: ${dnc.backend.server.url:lb://dnc-backend}
uri: http://localhost:8081
predicates:
- Path=/dnc/**
filters:
- RewritePath=/dnc/(?<segment>.*), /dnc/${segment}
#auth:
#host: ${auth.server.url:lb://auth-server}
auth:
host: http://localhost:8090
#bsi:
# backend:
# host: ${bsi.backend.server.url:lb://bsi-backend}
bsi:
backend:
host: http://localhost:8085
token:
accessSecret: ${access.token.secret:BA2E0C5454AC60E5C04D4D241D2022AB6085855446BF223089B509967ABFA1CF}
refreshSecret: ${refresh.token.secret:BA2E0C5454AC60E5C04D4D241D2022AB6085855446BF223089B509967ABFA1CF}
dataSecret: ${data.secret:BA2E0C5454AC60E5C04D4D241D2022AB6085855446BF223089B509967ABFA1CF}
accessExpiration: 43200000 # TTL (millisecond, 12 hours)
refreshExpiration: 86400000 # TTL (millisecond, 24 hours)
#accessExpiration: 300000 # TTL (millisecond, 15 minutes)
#refreshExpiration: 1800000 # TTL (millisecond, 30 minutes)
logging:
level:
org.springframework.web: DEBUG
egovframework.msa.sample: DEBUG
org.thymeleaf: DEBUG
management:
endpoints:
web:
base-path: /
#json:
# role:
# path: classpath:/static/role.json
# dictionary:
# path: classpath:/static/dictionary.json
# statTarget:
# path: classpath:/static/statTarget.json
json:
role:
path: /static/role.json
dictionary:
path: /static/dictionary.json
statTarget:
path: /static/statTarget.json
+191
View File
@@ -0,0 +1,191 @@
server:
port: 8080
servlet:
encoding:
charset: UTF-8
enabled: true
force: true
spring:
main:
web-application-type: reactive
application:
name: api-gw
redis:
host: ${redis.host:redis-primary-0.redis-headless.api-gw.svc.cluster.local}
port: ${redis.port:6379}
password: ${redis.password:Thqkd119!@}
cloud:
gateway:
httpclient:
pool:
max-idle-time: 1000
# default-filters:
# - DedupeResponseHeader=Access-Control-Allow-Origin Access-Control-Allow-Credentials
#
# globalcors:
# cors-Configurations:
# '[/**]':
# allowedOrigins:
# - "https://api-gw-ext.210-90-169-94.nip.io" # 외부망 경로
# - '${private.cloud.gateway.url}'
# - '${auth.server.url}'
# - 'https://sb-dev.172-26-10-182.nip.io'
# allowCredentials: true
# allowedHeaders: '*'
# allowedMethods:
# - GET
# - POST
# - PUT
# - DELETE
routes:
# openapi.seoul.go.kr
- id: openapi_pmisPjtPhoto_route
uri: http://openapi.seoul.go.kr:8088/647264687153656f3531414f656375/xml/pmisPjtPhoto/**
predicates:
- Path=/647264687153656f3531414f656375/xml/pmisPjtPhoto/**
# 인증서버
- id: author_route
uri: ${auth.server.url:lb://auth-server}
predicates:
- Path=/auth/**
# 기준정보
- id: bsi_file_route
uri: ${bsi.backend.server.url:lb://bsi-backend}
predicates:
- Path=/bsi/files/**
filters:
- RewritePath=/bsi/files/(?<segment>.*), /bsi/files/${segment}
- id: bsi_ui_route
uri: ${bsi.frontend.server.url:lb://bsi-frontend}
predicates:
- Path=/bsi_ui/**
filters:
- RewritePath=/bsi_ui/(?<segment>.*), /bsi_ui/${segment}
- name: Auth
- id: bsi_route
uri: ${bsi.backend.server.url:lb://bsi-backend}
predicates:
- Path=/bsi/**
filters:
- RewritePath=/bsi/(?<segment>.*), /bsi/${segment}
- name: Back
#재난정보
- id: dsr_ui_route
uri: ${dsr.frontend.server.url:lb://dsr-frontend}
predicates:
- Path=/dsr_ui/**
filters:
- RewritePath=/dsr_ui/(?<segment>.*), /dsr_ui/${segment}
- name: Auth
- id: dsr_route
uri: ${dsr.backend.server.url:lb://dsr-backend}
predicates:
- Path=/dsr/**
filters:
- RewritePath=/dsr/(?<segment>.*), /dsr/${segment}
- name: Back
# 작전현장
- id: opt_ui_route
uri: ${opt.frontend.server.url:lb://opt-frontend}
predicates:
- Path=/opt_ui/**
filters:
- RewritePath=/opt_ui/(?<segment>.*), /opt_ui/${segment}
- name: Auth
- id: opt_route
uri: ${opt.backend.server.url:lb://opt-backend}
predicates:
- Path=/opt/**
filters:
- RewritePath=/opt/(?<segment>.*), /opt/${segment}
- name: Back
# 부가정보
- id: adi_ui_route
uri: ${adi.frontend.server.url:lb://adi-frontend}
predicates:
- Path=/adi_ui/**
filters:
- RewritePath=/adi_ui/(?<segment>.*), /adi_ui/${segment}
- name: Auth
- id: adi_route
uri: ${adi.backend.server.url:lb://adi-backend}
predicates:
- Path=/adi/**
filters:
- RewritePath=/adi/(?<segment>.*), /adi/${segment}
- name: Back
# 지리정보(GIS)
- id: gis_ui_route
uri: ${gis.frontend.server.url:lb://gis-frontend}
predicates:
- Path=/gis_ui/**
filters:
- RewritePath=/gis_ui/(?<segment>.*), /gis_ui/${segment}
- name: Auth
- id: gis_route
uri: ${gis.backend.server.url:lb://gis-backend}
predicates:
- Path=/gis/**
filters:
- RewritePath=/gis/(?<segment>.*), /gis/${segment}
- name: Back
# 연계
- id: wad_route
uri: ${wad.backend.server.url:lb://wad-backend}
predicates:
- Path=/wad/**
auth:
host: ${auth.server.url:lb://auth-server}
bsi:
backend:
host: ${bsi.backend.server.url:lb://bsi-backend}
token:
accessSecret: ${access.token.secret:BA2E0C5454AC60E5C04D4D241D2022AB6085855446BF223089B509967ABFA1CF}
refreshSecret: ${refresh.token.secret:BA2E0C5454AC60E5C04D4D241D2022AB6085855446BF223089B509967ABFA1CF}
dataSecret: ${data.secret:BA2E0C5454AC60E5C04D4D241D2022AB6085855446BF223089B509967ABFA1CF}
accessExpiration: 43200000 # TTL (millisecond, 12 hours)
refreshExpiration: 86400000 # TTL (millisecond, 24 hours)
#accessExpiration: 300000 # TTL (millisecond, 15 minutes)
#refreshExpiration: 1800000 # TTL (millisecond, 30 minutes)
logging:
level:
org.springframework.web: DEBUG
egovframework.msa.sample: DEBUG
org.thymeleaf: DEBUG
management:
endpoints:
web:
base-path: /
json:
role:
path: classpath:/static/role.json
dictionary:
path: classpath:/static/dictionary.json
statTarget:
path: classpath:/static/statTarget.json
+30
View File
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n" />
</Console>
</Appenders>
<Loggers>
<Logger name="java.sql" level="INFO" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="egovframework" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="org.egovframe" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
</Logger>
<!-- log SQL with timing information, post execution -->
<Logger name="jdbc.sqltiming" level="INFO" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="org.springframework" level="INFO" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Root level="INFO">
<AppenderRef ref="console" level="INFO"/>
</Root>
</Loggers>
</Configuration>
+330
View File
@@ -0,0 +1,330 @@
@charset "utf-8";
@import url(//fonts.googleapis.com/earlyaccess/nanumgothic.css);
/* base */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video
{margin:0; padding:0; border:0;}
/* Common */
img,fieldset{border:0;}
ul,ol,li{list-style:none;}
em,address{font-style:normal;}
img{vertical-align:top;}
hr {display: none;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
table{border-collapse:collapse; border-spacing:0; width:100%;}
/* default */
.fl-L{float:left !important;}
.fl-R{float:right !important;}
.fl-N{float:none !important;}
.align-L{text-align:left !important;}
.align-C{text-align:center !important;}
.align-R{text-align:right !important;}
.align-J{ text-align:justify !important;}
.align-T{vertical-align:top !important;}
.align-M{vertical-align:middle !important;}
.align-B{vertical-align:bottom !important;}
/* hidden 적용 */
#accessibility {position:fixed !important;top:0; left:0; width:100%; text-align:center; z-index:9999;}
#accessibility h1{position:absolute; top:0; left:-9999px; height:1px; width:1px; overflow:hidden; font-size:0; text-align:left; line-height:0; z-index:-99;}
#accessibility a{display:block; height:1px; width:1px; margin-bottom:-1px; overflow:hidden; text-align:center; color:#000; white-space:nowrap;}
#accessibility a:focus,
#accessibility a:active {height:auto; width:100%; padding:5px; margin-bottom:10px; background:#FFFFCC; position:absolute; top:0;}
.hidden, legend{position:absolute; left:-9999px;top:-9999px;overflow:hidden; height:0; width:0; font-size:0; visibility:hidden; text-align:left;}
caption{overflow:hidden; height:0; width:0; font-size:0; visibility:hidden; text-align:left; text-indent:-99999px; line-height:0;}
.none{display:none;}
select{border:1px solid #d2d2d2;color:#555;height:23px;padding:1px;font-family:"나눔고딕", "nanum gothic","돋움",Dotum,arial,sans-serif; font-size:1em}
textarea{width:95%;border:1px solid #d2d2d2; font-family:"나눔고딕", "nanum gothic","돋움",Dotum,arial,sans-serif; line-height:150%;}
input[type="file"]{border:0px solid #d2d2d2;color:#555;}
input[type="image"]{border:0;width:auto;height:auto;}
input[type="checkbox"],input[type="radio"],.checkbox{border:0;vertical-align:middle;width:13px;height:13px;margin:2px 2px 2px 5px;padding:0}
input, button { font-family:"나눔고딕", "nanum gothic","돋움",Dotum,arial,sans-serif;}
button {cursor: pointer; }
.clearfix{*zoom:1;}
.clearfix:after{content:"";display:block;clear:both;height:0;}
/* clear 적용 */
.clear {clear:both;}
/* html5 블럭인식 */
section, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, summary, caption, ul, li{display: block;}
/* font 설정 */
body{font-family:"나눔고딕", "nanum gothic","돋움",Dotum,arial,sans-serif; font-size:12px; color:#444;}
.bold{font-weight:bold;}
.bigfont {font-size:13px; line-height:200%;}
.txt_red {color:#c00 !important;}
.txt_blue {color:#2009c4!important;}
/* width size */
.w0{width:0 !important;}
.w1{width:1% !important;}
.w2{width:2% !important;}
.w3{width:3% !important;}
.w4{width:4% !important;}
.w5{width:5% !important;}
.w6{width:6% !important;}
.w7{width:7% !important;}
.w8{width:8% !important;}
.w9{width:9% !important;}
.w10{width:10% !important;}
.w11{width:11% !important;}
.w12{width:12% !important;}
.w13{width:13% !important;}
.w14{width:14% !important;}
.w15{width:15% !important;}
.w16{width:16% !important;}
.w17{width:17% !important;}
.w18{width:18% !important;}
.w19{width:19% !important;}
.w20{width:20% !important;}
.w21{width:21% !important;}
.w22{width:22% !important;}
.w23{width:23% !important;}
.w24{width:24% !important;}
.w25{width:25% !important;}
.w26{width:26% !important;}
.w27{width:27% !important;}
.w28{width:28% !important;}
.w29{width:29% !important;}
.w30{width:30% !important;}
.w31{width:31% !important;}
.w32{width:32% !important;}
.w33{width:33% !important;}
.w34{width:34% !important;}
.w35{width:35% !important;}
.w36{width:36% !important;}
.w37{width:37% !important;}
.w38{width:38% !important;}
.w39{width:39% !important;}
.w40{width:40% !important;}
.w45{width:45% !important;}
.w50{width:50% !important;}
.w55{width:55% !important;}
.w60{width:60% !important;}
.w65{width:65% !important;}
.w69{width:69% !important;}
.w70{width:70% !important;}
.w75{width:75% !important;}
.w80{width:80% !important;}
.w85{width:85% !important;}
.w90{width:90% !important;}
.w91{width:91% !important;}
.w92{width:92% !important;}
.w93{width:93% !important;}
.w94{width:94% !important;}
.w95{width:95% !important;}
.w96{width:96% !important;}
.w97{width:97% !important;}
.w98{width:98% !important;}
.w99{width:99% !important;}
.w100{width:100% !important;}
.wx5{width:5px !important;}
.wx10{width:10px !important;}
.wx15{width:15px !important;}
.wx20{width:20px !important;}
.wx25{width:25px !important;}
.wx30{width:30px !important;}
.wx35{width:35px !important;}
.wx40{width:40px !important;}
.wx45{width:45px !important;}
.wx50{width:50px !important;}
.wx55{width:55px !important;}
.wx60{width:60px !important;}
.wx65{width:65px !important;}
.wx70{width:70px !important;}
.wx75{width:75px !important;}
.wx80{width:80px !important;}
.wx85{width:85px !important;}
.wx90{width:90px !important;}
.wx95{width:95px !important;}
.wx100{width:100px !important;}
.wx110{width:110px !important;}
.wx115{width:115px !important;}
.wx120{width:120px !important;}
.wx125{width:125px !important;}
.wx130{width:130px !important;}
.wx135{width:135px !important;}
.wx140{width:140px !important;}
.wx145{width:145px !important;}
.wx150{width:150px !important;}
.wx155{width:155px !important;}
.wx160{width:160px !important;}
.wx165{width:165px !important;}
.wx170{width:170px !important;}
.wx175{width:175px !important;}
.wx180{width:180px !important;}
.wx185{width:185px !important;}
.wx190{width:190px !important;}
.wx195{width:195px !important;}
.wx200{width:200px !important;}
.wx210{width:210px !important;}
.wx220{width:220px !important;}
.wx224{width:224px !important;}
.wx230{width:230px !important;}
.wx240{width:240px !important;}
.wx250{width:250px !important;}
.wx260{width:260px !important;}
.wx270{width:270px !important;}
.wx280{width:280px !important;}
.wx290{width:290px !important;}
.wx300{width:300px !important;}
.wx310{width:310px !important;}
.wx320{width:320px !important;}
.wx330{width:330px !important;}
.wx340{width:340px !important;}
.wx350{width:350px !important;}
.wx360{width:360px !important;}
.wx370{width:370px !important;}
.wx380{width:380px !important;}
.wx390{width:390px !important;}
.wx400{width:400px !important;}
.wx500{width:500px !important;}
.wx510{width:510px !important;}
.wx520{width:520px !important;}
.wx525{width:525px !important;}
.wx580{width:580px !important;}
/* padding */
.p1{padding:1px; !important;}
.ptb40{padding-top:40px !important;padding-bottom:40px !important;}
.pb0{padding-bottom:0 !important;}
.pb5{padding-bottom:5px !important;}
.pb10{padding-bottom:10px !important;}
.pb15{padding-bottom:15px !important;}
.pb20{padding-bottom:20px !important;}
.pb25{padding-bottom:25px !important;}
.pb30{padding-bottom:30px !important;}
.pb35{padding-bottom:35px !important;}
.pb40{padding-bottom:40px !important;}
.pb45{padding-bottom:45px !important;}
.pb46{padding-bottom:46px !important;}
.pb50{padding-bottom:50px !important;}
.pb60{padding-bottom:60px !important;}
.pb70{padding-bottom:70px !important;}
.pb80{padding-bottom:80px !important;}
.pb90{padding-bottom:90px !important;}
.pb100{padding-bottom:100px !important;}
.pb110{padding-bottom:110px !important;}
.pb120{padding-bottom:120px !important;}
.pb130{padding-bottom:130px !important;}
.pb140{padding-bottom:140px !important;}
.pb150{padding-bottom:150px !important;}
.pt6{padding-top:6px !important;}
.pt10{padding-top:10px !important;}
.pt20{padding-top:20px !important;}
.pt30{padding-top:30px !important;}
.pl20{padding-left:22px !important;}
.pl35{padding-left:35px !important;}
/* margin */
.mg0{margin:0 !important;}
.mb0{margin-bottom:0px !important;}
.mb1{margin-bottom:1px !important;}
.mb2{margin-bottom:2px !important;}
.mb3{margin-bottom:3px !important;}
.mb4{margin-bottom:4px !important;}
.mb5{margin-bottom:5px !important;}
.mb6{margin-bottom:6px !important;}
.mb7{margin-bottom:7px !important;}
.mb8{margin-bottom:8px !important;}
.mb9{margin-bottom:9px !important;}
.mb10{margin-bottom:10px !important;}
.mb11{margin-bottom:11px !important;}
.mb12{margin-bottom:12px !important;}
.mb13{margin-bottom:13px !important;}
.mb14{margin-bottom:14px !important;}
.mb15{margin-bottom:15px !important;}
.mb16{margin-bottom:16px !important;}
.mb17{margin-bottom:17px !important;}
.mb18{margin-bottom:18px !important;}
.mb19{margin-bottom:19px !important;}
.mb20{margin-bottom:20px !important;}
.mb21{margin-bottom:21px !important;}
.mb22{margin-bottom:22px !important;}
.mb23{margin-bottom:23px !important;}
.mb24{margin-bottom:24px !important;}
.mb25{margin-bottom:25px !important;}
.mb26{margin-bottom:26px !important;}
.mb27{margin-bottom:27px !important;}
.mb28{margin-bottom:28px !important;}
.mb29{margin-bottom:29px !important;}
.mb30{margin-bottom:30px !important;}
.mb31{margin-bottom:31px !important;}
.mb32{margin-bottom:32px !important;}
.mb33{margin-bottom:33px !important;}
.mb34{margin-bottom:34px !important;}
.mb35{margin-bottom:35px !important;}
.mb36{margin-bottom:36px !important;}
.mb37{margin-bottom:37px !important;}
.mb38{margin-bottom:38px !important;}
.mb39{margin-bottom:39px !important;}
.mb40{margin-bottom:40px !important;}
.mb45{margin-bottom:45px !important;}
.mb50{margin-bottom:50px !important;}
.mb53{margin-bottom:53px !important;}
.mb55{margin-bottom:55px !important;}
.mb60{margin-bottom:60px !important;}
.mb65{margin-bottom:65px !important;}
.mb70{margin-bottom:70px !important;}
.mb75{margin-bottom:75px !important;}
.mb80{margin-bottom:80px !important;}
.mb85{margin-bottom:85px !important;}
.mb90{margin-bottom:90px !important;}
.mb95{margin-bottom:95px !important;}
.mb100{margin-bottom:100px !important;}
.mr0{margin-right:0 !important;}
.mr6{margin-right:6px !important;}
.mr7{margin-right:7px !important;}
.mr15{margin-right:15px !important;}
.mt-25{margin-top:-25px !important;}
.mt0{margin-top:0px !important;}
.mt5{margin-top:5px !important;}
.mt10{margin-top:10px !important;}
.mt15{margin-top:15px !important;}
.mt18{margin-top:18px !important;}
.mt20{margin-top:20px !important;}
.mt25{margin-top:25px !important;}
.mt30{margin-top:30px !important;}
.mt40{margin-top:40px !important;}
.mt60{margin-top:60px !important;}
.mt200{margin-top:200px !important;}
.ml164{margin-left:164px !important;}
.ml50{margin-left:50px !important;}
.ml30{margin-left:30px !important;}
.ml28{margin-left:28px !important;}
.ml20{margin-left:20px !important;}
.ml19{margin-left:19px !important;}
.ml18{margin-left:18px !important;}
.ml11{margin-left:11px !important;}
.ml10{margin-left:10px !important;}
.ml9{margin-left:9px !important;}
.ml7{margin-left:7px !important;}
.ml5{margin-left:5px !important;}
.ml2{margin-left:2px !important;}
.ml1{margin-left:1px !important;}
File diff suppressed because it is too large. Load diff
+95
View File
@@ -0,0 +1,95 @@
{
"passwords":[
"!@#$AHmeD",
"$$Awojide",
"01Brandon$",
"12345Aa*",
"123@abcA",
"123abcA!",
"123qweC!",
"20yuvi91Z!",
"2r3F8ebF#",
"72Logan!",
"8469939912M@c",
"@Pr0ject",
"A1!?*hind",
"AAbc123!@#",
"Ac%%19!?",
"Amy#1sameer",
"AupaAlaves.",
"Austin6!",
"Avadhesh67@",
"B24318c*",
"Barca123#",
"Bell!@#",
"Boogaboo7!",
"Costy2014!",
"Coxa1974@",
"Diit25!@",
"Doraray@",
"FACEbook1234@",
"FAIZbls92@",
"Fine@flies",
"Fv$$indi@",
"Getme$in",
"Gtl123$",
"Hlubkojxwb@",
"Ichangeditagain.",
"India123#",
"Jansen1!",
"Jitendra0143$$$$",
"Joeljoy789@",
"Kath@28kapli",
"Kutty0220@",
"Man_143@kumar",
"Manith@123#",
"Meer1234%^&*",
"Munde88kesye*",
"Navpreet@",
"P@$$w0rd",
"P@ssw0rd",
"P@ssword",
"Pa$$W0rd",
"Padden666!",
"Passwd@12#",
"Payal1404...",
"Pizza2014!",
"Portal2014*",
"Power123@",
"Pr0Metr!c",
"Qwert123@#",
"Qwerty1@",
"Renuga123$",
"Ruth@lav.me",
"S%23_wAimon_24%A",
"S@lut1ons",
"STprow21**",
"Sab2189@in",
"Shansdivs1!",
"Singhsukhr@j",
"Sm@had1k",
"Smile$%#",
"Swetha123*",
"Tasleem123**",
"Test123$",
"Th3.r1rs",
"VlorianVeliu9!",
"acjk361mz@T",
"aloksaini@123A",
"amanindian1@E",
"b_deviney@yahoo.comHappyeft0nes",
"cc9e@10QIEb@",
"emie93@UTeM",
"gOPI232$",
"hUSSEIN.",
"ja1ja1hanum@N",
"m@nN08love",
"premium@ASCII",
"zC.n",
"qkek",
"skfk",
"love",
"tkrhk",
"Tkrhk"
]
}
@@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../../../source/dist/scss/common/common.css"],"names":[],"mappings":";AACQ;AACR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACQ;;;AAGV;EACE;EACQ;;;AAGV;EACE;EACQ;;;AAGV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACQ;;;AAGV;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;;;AAGV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACQ;;;AAGV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACQ;;;AAGV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACI;EACI;EACR;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACI;EACI;EACR;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACI;EACI;EACR;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACQ;;;AAGV;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACQ;;;AAGV;EACE;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAALine truncated
@@ -0,0 +1,21 @@
/* Error: Undefined mixin.
* ,
* 190 | / @include size-medium {
* 191 | | font-size: var(--wb-button--mobile-font-size-#{$unit});
* 192 | \ }
* '
* source/dist/scss/common/mixins/_utils.scss 190:2 btn-size()
* source/dist/scss/component/_button.scss 68:3 button-size-variable()
* source/dist/scss/component/_button.scss 254:2 @import
* source/dist/scss/component/component.scss 6:9 root stylesheet */
body::before {
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
"Droid Sans Mono", monospace, monospace;
white-space: pre;
display: block;
padding: 1em;
margin-bottom: 1em;
border-bottom: 2px solid black;
content: "Error: Undefined mixin.\a \2577 \a 190 \2502 \250c @include size-medium {\a 191 \2502 \2502 font-size: var(--wb-button--mobile-font-size-#{$unit});\a 192 \2502 \2514 }\a \2575 \a source/dist/scss/common/mixins/_utils.scss 190:2 btn-size()\a source/dist/scss/component/_button.scss 68:3 button-size-variable()\a source/dist/scss/component/_button.scss 254:2 @import\a source/dist/scss/component/component.scss 6:9 root stylesheet";
}
@@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../../../source/dist/scss/component/component.css"],"names":[],"mappings":";AACA;AACA;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACI;EACI;EACR;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACQ;;;AAGV;EACE;;;AAGF;EACE;EACQ;;;AAGV;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;AACA;EACE;;;AAEF","file":"component.css"}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../../../source/dist/scss/component/index.css"],"names":[],"mappings":";AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACQ;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACI;EACI;EACR;EACQ;EACR;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACQ;EACR;EACQ;EACR;EACQ;EACR;EACQ;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACI;EACI;EACR;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACI;EACI;EACR;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACI;EACI;EACR;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACI;EACI;EACR;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACI;EACI;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACQ;EACR;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACI;EACI;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACQ;EACR;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACI;EACI;EACR;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACA;EACA;EACA;EACA;EACI;EACI;EACR;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACI;EACI;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACQ;EACR;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACI;EACI;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;Line truncated
+22
View File
@@ -0,0 +1,22 @@
/* Error: Undefined mixin.
* ,
* 190 | / @include size-medium {
* 191 | | font-size: var(--wb-button--mobile-font-size-#{$unit});
* 192 | \ }
* '
* source/dist/scss/common/mixins/_utils.scss 190:2 btn-size()
* source/dist/scss/component/_button.scss 68:3 button-size-variable()
* source/dist/scss/component/_button.scss 254:2 @import
* source/dist/scss/component/component.scss 6:9 @import
* source/dist/scss/component/output.scss 7:10 root stylesheet */
body::before {
font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
"Droid Sans Mono", monospace, monospace;
white-space: pre;
display: block;
padding: 1em;
margin-bottom: 1em;
border-bottom: 2px solid black;
content: "Error: Undefined mixin.\a \2577 \a 190 \2502 \250c @include size-medium {\a 191 \2502 \2502 font-size: var(--wb-button--mobile-font-size-#{$unit});\a 192 \2502 \2514 }\a \2575 \a source/dist/scss/common/mixins/_utils.scss 190:2 btn-size()\a source/dist/scss/component/_button.scss 68:3 button-size-variable()\a source/dist/scss/component/_button.scss 254:2 @import\a source/dist/scss/component/component.scss 6:9 @import\a source/dist/scss/component/output.scss 7:10 root stylesheet";
}
@@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../../../source/dist/scss/common/common.scss","../../../source/dist/scss/common/_root.scss","../../../source/dist/scss/common/mixins/_breakpoints.scss","../../../source/dist/scss/common/_icon.scss","../../../source/dist/scss/common/mixins/_icons.scss","../../../source/dist/scss/common/_dropdown.scss","../../../source/dist/scss/common/mixins/_utils.scss","../../../source/dist/scss/common/_reset.scss","../../../source/dist/scss/component/_button.scss"],"names":[],"mappings":";AAGQ;ACCR;EAEC;EACA;EAIC;EAAA;EAKA;EAAA;EAKA;EAAA;EAID;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAIC;EAAA;EAAA;EAAA;EAAA;EAID;EAIC;EAAA;EAAA;EAAA;EAAA;;;AAUD;EAEC;EACA;;;ACzCD;ED+CA;IAEC;;;AErED;ECcA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADlBC;ECWD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADvBA;EACC;;AAED;EACC;;AAED;EACC;;AAGF;ECHA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADAA;ECPA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADGA;ECVA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADMA;ECbA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADSA;EChBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADYA;ECnBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADeA;ECtBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADkBA;ECzBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADsBA;EC7BA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADyBA;EChCA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD4BA;ECnCA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADgCA;ECvCA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADmCA;EC1CA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADsCA;EC7CA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADyCC;EACC;;AAGD;EACC;;AAGF;ECxDA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADmDC;EACC;;AAGF;EC9DA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADyDC;EACC;;AAGF;ECpEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD+DC;EACC;;AAGF;EC1EA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADqEC;EACC;;AAGF;EChFA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD2EC;EACC;;AAGF;ECtFA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADkFA;ECzFA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD4ED;EC5FA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADuFC;EACC;;AAGF;EClGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD6FC;EACC;;AAIF;ECzGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADoGC;EACC;;AAIF;EChHA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD6GA;ECpHA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADgHA;ECvHA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADmHA;EC1HA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADuHA;EC9HA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADkHD;EClIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ED6HC;;AAGD;ECvIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADoIA;EC3IA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADwIA;EC/IA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD4IA;ECnJA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADsID;ECtJA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADyID;ECzJA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD4ID;EC5JA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADgJD;EChKA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD6JA;ECpKA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADgKC;EACC;;AAIF;EC5KA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADyKA;EChLA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD6KA;ECpLA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADiLA;ECxLA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADqLA;EC5LA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADyLA;EChMA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD6LA;ECpMA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADiMA;ECxMA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADqMA;EC5MA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADyMA;EChNA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD6MA;ECpNA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADiNA;ECxNA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADoNA;EC3NA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADwNA;EC/NA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD4NA;ECnOA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADgOA;ECvOA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADoOA;EC3OA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADwOA;EC/OA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD4OA;ECnPA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADgPA;ECvPA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADoPA;EC3PA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADwPA;EC/PA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD4PA;ECnQA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADgQA;ECvQA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AD2PD;EC3QA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADwQA;EC/QA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ADgRC;EACC;;;AE9QH;AACA;EAxBC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKA;EACA;EACA;EACA;EACA;EACA;EACA;EAUA;EACA;;AACA;ECjBA,UADmB;EAEnB,KDiBuB;ECfvB,MDeiC;EAChC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;ECdM;EANN,ODsBiB;ECrBjB,QDqBiB;EC/BlB,UADmB;EAGnB,QD8BwB;EC7BxB,MD6BkC;EAChC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EClBD,SADsB;EAEtB,aDkByC;ECjBzC,iBAHkD;EAIlD,gBDgB4B;EAC1B;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EC7BD,SADsB;EAEtB,aAFiC;EAGjC,iBD4B4B;EC3B5B,gBAJmE;EDgCjE;EACA;EACA;;AAED;EACC;;AACA;ECrCF,SADsB;EAEtB,aDqC8C;ECpC9C,iBDoC6B;ECnC7B,gBAJmE;EDwChE;EACA;EACA;EACA;EACA;EACA;EACA;;AHjFHLine truncated
File diff suppressed because it is too large. Load diff
+1
View File
@@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../../source/dist/scss/index.css"],"names":[],"mappings":";AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACQ;;;AAGV;EACE;EACQ;;;AAGV;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACQ;;;AAGV;EACE;EACQ;;;AAGV;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACQ;;;AAGV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACI;EACJ;EACI;EACI;EACR;EACA;EACQ;;;AAGV;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACQ;EACR;EACA;EACI;EACI;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACQ;;;AAGV;EACE;EACQ;;;AAGV;EACE;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACI;EACI;EACR;EACQ;EACR;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;EACA;;;AAGF;EACE;EACI;EACI;EACR;EACI;EACJ;EACQ;EACR;EACA;EACA;EACA;EACI;EACI;EACR;EACLine truncated
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+1
View File
@@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../../source/dist/scss/reset.scss"],"names":[],"mappings":"AAAA;AAEA;AACA;EACE;EACA;;;AAGF;EACE;EACA;;;AAIF;AACA;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AACA;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAGF;AACA;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;AACA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;;;AAGF;AAEE;EACE;;;AAIJ;EACE;;;AAIF;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAS;;;AAGT;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAS;;;AAGT;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAS;;;AAGT;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAS;;;AAGT;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAS;;;AAGT;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAS;;;AAGT;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAS;;;AAGT;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAO;;;AACP;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAS;;;AAGT;EAAO;;;AACP;EAAW;;;AACX;EAAW;;;AACX;EAAY;;;AACZ;EAAc;;;AACd;EAAS;;;AACT;EAAY;;;AACZ;EAAe;;;AACf;EAAY;;;AAGZ;EAAgB;;;AAChB;EAAc;;;AACd;EAAiB;;;AACjB;EAAkB;;;AAClB;EAAiB;;;AACjB;EAAiB;;;AAGjB;EAAc;;;AACd;EAAY;;;AACZ;EAAe;;;AACf;EAAiB;;;AACjB;EAAgB;;;AAGhB;EAAY;;;AACZ;EAAa;;;AACb;EAAW;;;AACX;EAAc;;;AACd;EAAe;;;AAGf;EAAe;;;AAGf;EAAQ;;;AACR;EAAQ;;;AACR;EAAQ;;;AACR;EAAS;;;AACT;EAAS;;;AACT;EAAS;;;AACT;EAAS;;;AACT;EAAS;;;AACT;EAAS;;;AACT;EAAS;;;AAET;EACE;;;AAGF;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AAEd;EAAgB;;;AAChB;EAAgB;;;AAChB;EAAsB;;;AACtB;EAAsB;;;AAEtB;EAAiB;;;AACjB;EAAe;;;AAEf;EAAiB;;;AACjB;EAAe","file":"reset.css"}
Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="12" height="24" viewBox="0 0 12 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.45199 6.57999L3.51299 5.51999L9.29199 11.297C9.38514 11.3896 9.45907 11.4996 9.50952 11.6209C9.55997 11.7421 9.58594 11.8722 9.58594 12.0035C9.58594 12.1348 9.55997 12.2648 9.50952 12.3861C9.45907 12.5073 9.38514 12.6174 9.29199 12.71L3.51299 18.49L2.45299 17.43L7.87699 12.005L2.45199 6.57999Z" fill="#6D7882"/>
</svg>

After

Width:  |  Height:  |  Size: 428 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.4125 8.5L5.525 6.80467L4.0875 7.75061L3.5 6.75553L5.05 6.00614L3.5 5.24447L4.0875 4.24939L5.525 5.19533L5.4125 3.5H6.5875L6.475 5.19533L7.9125 4.24939L8.5 5.24447L6.95 6.00614L8.5 6.75553L7.9125 7.75061L6.475 6.80467L6.5875 8.5H5.4125Z" fill="#DE3412"/>
</svg>

After

Width:  |  Height:  |  Size: 369 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.252 18.6842C13.9173 18.6842 13.6827 18.5171 13.2895 18.1485L10.2595 15.3864L4.60948 15.3946C2.11484 15.4032 0.775551 14.0135 0.775551 11.561V5.14925C0.775551 2.69675 2.11484 1.31567 4.60912 1.31567H15.3905C17.8763 1.31567 19.2241 2.68817 19.2241 5.14925V11.561C19.2241 14.0217 17.8766 15.3946 15.3905 15.3864H14.997V17.8221C14.997 18.341 14.7209 18.6842 14.252 18.6842ZM9.94126 9.79496C10.3766 9.79496 10.6277 9.53532 10.6445 9.09174L10.753 4.95674C10.7698 4.49603 10.4266 4.16996 9.94948 4.16996C9.48091 4.16996 9.11269 4.5046 9.12912 4.96496L9.25484 9.09174C9.27162 9.54389 9.51412 9.79496 9.94126 9.79496ZM9.94126 12.8753C10.4184 12.8753 10.8788 12.4903 10.8788 11.971C10.8788 11.4517 10.4266 11.0675 9.94126 11.0675C9.44734 11.0675 9.00376 11.4439 9.00376 11.971C9.00376 12.4985 9.45591 12.8753 9.94126 12.8753Z" fill="#DE3412"/>
</svg>

After

Width:  |  Height:  |  Size: 950 B

+10
View File
@@ -0,0 +1,10 @@
<svg width="35" height="34" viewBox="0 0 35 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2244_15248)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M34.0636 7.83696V9.99689C34.0636 10.1904 33.93 10.353 33.7401 10.3904L32.5745 10.6202L31.735 12.6463L32.3968 13.6332C32.5046 13.7939 32.4842 14.0033 32.3474 14.1402L30.82 15.6675C30.6832 15.8043 30.4738 15.8248 30.313 15.717L29.3261 15.0552L27.3 15.8946L27.0702 17.0603C27.0327 17.2501 26.8702 17.3837 26.6767 17.3837H25.581L23.0316 12.968C23.7733 13.4387 24.6531 13.7114 25.5966 13.7114C28.2446 13.7114 30.3912 11.5648 30.3912 8.91693C30.3912 6.26904 28.2446 4.12239 25.5966 4.12239C22.9487 4.12239 20.8021 6.26898 20.8021 8.91693C20.8021 8.983 20.8038 9.04868 20.8064 9.11409L19.703 7.20285C19.5059 6.86132 19.2681 6.55904 18.9974 6.30006L19.4583 5.18748L18.7965 4.20062C18.6887 4.03992 18.7092 3.83047 18.846 3.69361L20.3733 2.16633C20.5102 2.02954 20.7196 2.00908 20.8803 2.11686L21.8671 2.77866L23.8932 1.93929L24.1231 0.77366C24.1605 0.583805 24.323 0.450195 24.5166 0.450195H26.6766C26.8701 0.450195 27.0327 0.583805 27.0701 0.77366L27.3 1.93929L29.3261 2.77866L30.3129 2.11686C30.4737 2.00908 30.683 2.02954 30.82 2.16633L32.3473 3.69361C32.4842 3.83047 32.5045 4.03992 32.3968 4.20062L31.735 5.18748L32.5744 7.21361L33.74 7.44344C33.9299 7.48089 34.0635 7.64339 34.0635 7.83696H34.0636ZM25.5968 12.5065C26.0307 12.5065 26.3824 12.1548 26.3824 11.7209C26.3824 11.287 26.0307 10.9352 25.5968 10.9352C25.1629 10.9352 24.8111 11.287 24.8111 11.7209C24.8111 12.1548 25.1629 12.5065 25.5968 12.5065ZM25.5968 10.0975C25.9121 10.0975 26.1678 9.84183 26.1678 9.5264V5.8983C26.1678 5.58293 25.9121 5.32727 25.5968 5.32727C25.2814 5.32727 25.0257 5.58293 25.0257 5.8983V9.5264C25.0257 9.84177 25.2814 10.0975 25.5968 10.0975ZM31.2359 29.0374C31.7882 29.9941 31.7882 31.0891 31.2359 32.0457C30.6835 33.0023 29.7352 33.5499 28.6306 33.5499H3.95497C2.85037 33.5499 1.90202 33.0023 1.34972 32.0457C0.797488 31.0891 0.797488 29.994 1.34972 29.0374L13.6875 7.66769C14.2398 6.71104 15.1882 6.16352 16.2928 6.16352C17.3974 6.16352 18.3457 6.71104 18.898 7.66769L31.2359 29.0374ZM21.9941 20.1354C21.651 19.4656 21.2679 18.8187 20.8004 17.787C20.522 17.1726 20.3466 16.5912 20.3648 16.0763C19.1544 17.4823 19.824 18.7393 19.3191 20.2547C19.0185 17.3783 15.3982 15.1449 18.572 11.8525C12.1866 13.4098 14.3974 17.5602 13.5688 20.1606C12.6918 22.9128 10.7283 19.5372 11.8636 16.6187C10.449 17.8213 9.43196 20.3466 9.31097 22.7532C9.01028 28.7338 12.5061 31.0691 16.5444 31.0869C19.7357 31.0869 22.7243 29.1906 23.2235 25.9137C23.5098 24.0347 22.8673 21.8404 21.994 20.1354H21.9941ZM18.454 23.2841C17.4302 22.5815 16.4154 22.2188 16.5156 20.3255C14.9211 21.2748 14.8902 22.8084 15.2627 24.1117C15.6134 25.3392 14.5219 25.9423 13.6143 25.1019C13.1493 24.6713 12.821 23.964 12.7164 23.4634C12.4953 24.0179 12.3633 24.6565 12.3305 25.309C12.1678 28.5448 14.125 29.9066 16.4542 29.9066C17.39 29.8929 18.1959 29.6357 18.8785 29.1625C21.041 27.6632 20.4985 24.687 18.454 23.2841Z" fill="#CDD1D5"/>
</g>
<defs>
<clipPath id="clip0_2244_15248">
<rect width="34" height="34" fill="white" transform="translate(0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

+10
View File
@@ -0,0 +1,10 @@
<svg width="35" height="34" viewBox="0 0 35 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2244_15254)">
<path d="M26.4007 31.8751H4.57031V4.01652H9.00784V4.84507C9.00784 5.43183 9.48351 5.90757 10.0703 5.90757H19.8382C20.425 5.90757 20.9007 5.43183 20.9007 4.84507V4.01652H25.3382V11.9199C25.3382 12.5066 25.8139 12.9824 26.4007 12.9824C26.9875 12.9824 27.4632 12.5066 27.4632 11.9199V2.95402C27.4632 2.36725 26.9875 1.89152 26.4007 1.89152H20.9007V1.0625C20.9007 0.475734 20.425 0 19.8382 0H10.0703C9.48351 0 9.00784 0.475734 9.00784 1.0625V1.89152H3.50781C2.92098 1.89152 2.44531 2.36725 2.44531 2.95402V32.9376C2.44531 33.5244 2.92098 34.0001 3.50781 34.0001H26.4007C26.9875 34.0001 27.4632 33.5244 27.4632 32.9376C27.4632 32.3509 26.9875 31.8751 26.4007 31.8751ZM11.1328 2.125H18.7757V3.78257H11.1328V2.125ZM22.4576 12.6451H13.9594C13.3725 12.6451 12.8969 12.1693 12.8969 11.5826C12.8969 10.9958 13.3725 10.5201 13.9594 10.5201H22.4577C23.0445 10.5201 23.5202 10.9958 23.5202 11.5826C23.5202 12.1693 23.0445 12.6451 22.4576 12.6451ZM11.4619 10.1083C11.4619 9.52153 10.9862 9.04579 10.3994 9.04579H7.45088C6.86405 9.04579 6.38838 9.52153 6.38838 10.1083V13.0568C6.38838 13.6436 6.86405 14.1193 7.45088 14.1193H10.3994C10.9862 14.1193 11.4619 13.6436 11.4619 13.0568V10.1083ZM9.33689 11.9944H8.51338V11.1709H9.33689V11.9944ZM20.3486 19.6722H13.9593C13.3725 19.6722 12.8968 19.1965 12.8968 18.6097C12.8968 18.0229 13.3725 17.5472 13.9593 17.5472H20.3486C20.9355 17.5472 21.4111 18.0229 21.4111 18.6097C21.4111 19.1965 20.9355 19.6722 20.3486 19.6722ZM11.4619 17.1355C11.4619 16.5487 10.9862 16.073 10.3994 16.073H7.45088C6.86405 16.073 6.38838 16.5487 6.38838 17.1355V20.084C6.38838 20.6708 6.86405 21.1465 7.45088 21.1465H10.3994C10.9862 21.1465 11.4619 20.6708 11.4619 20.084V17.1355ZM9.33689 19.0215H8.51338V18.1979H9.33689V19.0215ZM17.9331 24.5747C18.5199 24.5747 18.9956 25.0504 18.9956 25.6372C18.9956 26.224 18.5199 26.6997 17.9331 26.6997H13.9593C13.3725 26.6997 12.8968 26.224 12.8968 25.6372C12.8968 25.0504 13.3725 24.5747 13.9593 24.5747H17.9331ZM10.3994 23.1005H7.45088C6.86405 23.1005 6.38838 23.5762 6.38838 24.163V27.1115C6.38838 27.6982 6.86405 28.174 7.45088 28.174H10.3994C10.9862 28.174 11.4619 27.6982 11.4619 27.1115V24.163C11.4619 23.5761 10.9862 23.1005 10.3994 23.1005ZM9.33689 26.049H8.51338V25.2255H9.33689V26.049ZM26.4005 21.7567C23.0072 21.7567 20.2466 24.5176 20.2466 27.9111C20.2466 28.5598 20.5437 29.7574 22.5331 30.4898C23.5712 30.872 24.9447 31.0825 26.4007 31.0825C27.8567 31.0825 29.2302 30.8721 30.2683 30.4898C32.2577 29.7574 32.5548 28.5598 32.5548 27.9111C32.5548 24.5176 29.7941 21.7567 26.4005 21.7567ZM29.5341 28.4957C28.737 28.7891 27.595 28.9574 26.4007 28.9574C25.2065 28.9574 24.0644 28.7891 23.2673 28.4957C22.5838 28.244 22.3716 27.9791 22.3716 27.911C22.3716 25.6892 24.1789 23.8817 26.4005 23.8817C28.6223 23.8817 30.4298 25.6892 30.4298 27.911C30.4298 27.9791 30.2176 28.244 29.5341 28.4957ZM22.9852 17.6717C22.9852 19.5552 24.5173 21.0875 26.4006 21.0875C28.284 21.0875 29.8164 19.5552 29.8164 17.6717C29.8164 15.7884 28.2841 14.2563 26.4006 14.2563C24.5173 14.2563 22.9852 15.7884 22.9852 17.6717ZM27.6913 17.6717C27.6913 18.3834 27.1122 18.9625 26.4005 18.9625C25.689 18.9625 25.1101 18.3834 25.1101 17.6717C25.1101 16.9602 25.689 16.3813 26.4005 16.3813C27.1122 16.3813 27.6913 16.9602 27.6913 17.6717Z" fill="#F4F5F6"/>
</g>
<defs>
<clipPath id="clip0_2244_15254">
<rect width="34" height="34" fill="white" transform="translate(0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg width="35" height="34" viewBox="0 0 35 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2244_15260)">
<path d="M25.9489 17.6696V6.23321C25.9489 5.25442 25.1247 4.43018 24.1459 4.43018H22.3944H16.7792H11.2156H5.65196H3.84893C2.87014 4.43018 2.0459 5.25442 2.0459 6.23321V30.6514C2.0459 31.6302 2.87014 32.4544 3.84893 32.4544H24.0944C25.1247 32.4544 25.8974 31.6302 25.8974 30.6514V25.7059" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M22.3428 6.74844V1.54541" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.7793 6.74844V1.54541" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M11.2158 6.74844V1.54541" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.65234 6.74844V1.54541" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6.68262 17.4636H20.6947" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6.68262 12.5696H20.6947" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6.68262 22.3574H16.0584" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6.68262 27.2515H15.7493" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M32.1307 19.5242L24.8671 26.7878L19.0459 28.6424L20.8489 22.8212L28.1126 15.5575C29.2459 14.4242 30.9974 14.4242 32.1307 15.5575C32.6974 16.1242 32.955 16.8454 32.955 17.5666C32.955 18.2878 32.6974 19.009 32.1307 19.5242Z" stroke="#F4F5F6" stroke-width="2.09952" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_2244_15260">
<rect width="34" height="34" fill="white" transform="translate(0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

+14
View File
@@ -0,0 +1,14 @@
<svg width="35" height="34" viewBox="0 0 35 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2244_15279)">
<path d="M30.25 1.0625H4.75C3.62323 1.06379 2.54297 1.51198 1.74622 2.30872C0.949476 3.10547 0.501294 4.18573 0.5 5.3125L0.5 28.6875C0.501294 29.8143 0.949476 30.8945 1.74622 31.6913C2.54297 32.488 3.62323 32.9362 4.75 32.9375H30.25C31.3768 32.9362 32.457 32.488 33.2538 31.6913C34.0505 30.8945 34.4987 29.8143 34.5 28.6875V5.3125C34.4987 4.18573 34.0505 3.10547 33.2538 2.30872C32.457 1.51198 31.3768 1.06379 30.25 1.0625ZM32.375 28.6875C32.375 29.2511 32.1511 29.7916 31.7526 30.1901C31.3541 30.5886 30.8136 30.8125 30.25 30.8125H4.75C4.18641 30.8125 3.64591 30.5886 3.2474 30.1901C2.84888 29.7916 2.625 29.2511 2.625 28.6875V5.3125C2.625 4.74891 2.84888 4.20841 3.2474 3.8099C3.64591 3.41138 4.18641 3.1875 4.75 3.1875H30.25C30.8136 3.1875 31.3541 3.41138 31.7526 3.8099C32.1511 4.20841 32.375 4.74891 32.375 5.3125V28.6875Z" fill="#F4F5F6"/>
<path d="M11.125 8.5H23.875C24.1568 8.5 24.427 8.38806 24.6263 8.1888C24.8256 7.98954 24.9375 7.71929 24.9375 7.4375C24.9375 7.15571 24.8256 6.88546 24.6263 6.6862C24.427 6.48694 24.1568 6.375 23.875 6.375H11.125C10.8432 6.375 10.573 6.48694 10.3737 6.6862C10.1744 6.88546 10.0625 7.15571 10.0625 7.4375C10.0625 7.71929 10.1744 7.98954 10.3737 8.1888C10.573 8.38806 10.8432 8.5 11.125 8.5Z" fill="#F4F5F6"/>
<path d="M6.875 8.5C7.4618 8.5 7.9375 8.0243 7.9375 7.4375C7.9375 6.8507 7.4618 6.375 6.875 6.375C6.2882 6.375 5.8125 6.8507 5.8125 7.4375C5.8125 8.0243 6.2882 8.5 6.875 8.5Z" fill="#F4F5F6"/>
<path d="M28.125 8.5C28.7118 8.5 29.1875 8.0243 29.1875 7.4375C29.1875 6.8507 28.7118 6.375 28.125 6.375C27.5382 6.375 27.0625 6.8507 27.0625 7.4375C27.0625 8.0243 27.5382 8.5 28.125 8.5Z" fill="#F4F5F6"/>
<path d="M26 24.7031H13.2287C13.2657 24.7004 13.2955 24.7031 13.3331 24.6989C15.807 24.5807 18.1994 23.7776 20.2434 22.379C21.8696 21.2011 23.1704 19.6297 24.0237 17.812L25.0505 19.8658C25.1391 20.0423 25.275 20.1907 25.443 20.2944C25.6111 20.3981 25.8047 20.4531 26.0021 20.4531C26.1667 20.4535 26.3292 20.4151 26.4762 20.3411C26.601 20.2788 26.7124 20.1924 26.8038 20.087C26.8953 19.9816 26.9651 19.8592 27.0092 19.7268C27.0534 19.5944 27.071 19.4546 27.0611 19.3154C27.0512 19.1762 27.014 19.0403 26.9516 18.9155L24.8266 14.6655C24.8208 14.654 24.81 14.6476 24.8038 14.6366C24.7628 14.5699 24.7144 14.508 24.6595 14.4521C24.624 14.4048 24.5847 14.3605 24.542 14.3195C24.4884 14.2825 24.4315 14.2503 24.372 14.2235C24.3102 14.185 24.2444 14.1531 24.1759 14.1283C24.1634 14.1245 24.1546 14.1147 24.1415 14.1113C24.0905 14.1047 24.0392 14.102 23.9878 14.1032C23.9139 14.0911 23.8389 14.0872 23.7641 14.0915C23.6914 14.1032 23.6202 14.1226 23.5516 14.1493C23.5004 14.159 23.45 14.1727 23.4009 14.1901L19.1509 16.3151C18.8988 16.4411 18.7071 16.6621 18.618 16.9295C18.5288 17.1969 18.5495 17.4887 18.6755 17.7408C18.8016 17.9929 19.0226 18.1846 19.2899 18.2737C19.5573 18.3629 19.8491 18.3422 20.1012 18.2161L21.882 17.3258C21.1934 18.6419 20.2092 19.7806 19.0066 20.6524C17.2729 21.8185 15.2522 22.4861 13.165 22.5824C12.8095 22.6102 12.4888 22.6162 12.1875 22.6157V13.0156C12.1875 12.7338 12.0756 12.4636 11.8763 12.2643C11.677 12.0651 11.4068 11.9531 11.125 11.9531C10.8432 11.9531 10.573 12.0651 10.3737 12.2643C10.1744 12.4636 10.0625 12.7338 10.0625 13.0156V25.7656C10.0625 26.0474 10.1744 26.3177 10.3737 26.5169C10.573 26.7162 10.8432 26.8281 11.125 26.8281H26C26.2818 26.8281 26.552 26.7162 26.7513 26.5169C26.9506 26.3177 27.0625 26.0474 27.0625 25.7656C27.0625 25.4838 26.9506 25.2136 26.7513 25.0143C26.552 24.8151 26.2818 24.7031 26 24.7031Z" fill="#F4F5F6"/>
</g>
<defs>
<clipPath id="clip0_2244_15279">
<rect width="34" height="34" fill="white" transform="translate(0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

+16
View File
@@ -0,0 +1,16 @@
<svg width="35" height="34" viewBox="0 0 35 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2244_15290)">
<path d="M25.2913 33.9999C20.214 33.9999 16.083 29.8689 16.083 24.7916C16.083 19.7143 20.214 15.5833 25.2913 15.5833C30.3687 15.5833 34.4997 19.7143 34.4997 24.7916C34.4997 29.8689 30.3687 33.9999 25.2913 33.9999ZM25.2913 17.7083C21.3856 17.7083 18.208 20.8858 18.208 24.7916C18.208 28.6973 21.3856 31.8749 25.2913 31.8749C29.1971 31.8749 32.3747 28.6973 32.3747 24.7916C32.3747 20.8858 29.1971 17.7083 25.2913 17.7083Z" fill="#F4F5F6"/>
<path d="M25.292 29.7501C24.7055 29.7501 24.2295 29.2741 24.2295 28.6876V23.7292C24.2295 23.1427 24.7055 22.6667 25.292 22.6667C25.8785 22.6667 26.3545 23.1427 26.3545 23.7292V28.6876C26.3545 29.2741 25.8785 29.7501 25.292 29.7501Z" fill="#F4F5F6"/>
<path d="M25.292 21.9583C25.8788 21.9583 26.3545 21.4826 26.3545 20.8958C26.3545 20.3089 25.8788 19.8333 25.292 19.8333C24.7052 19.8333 24.2295 20.3089 24.2295 20.8958C24.2295 21.4826 24.7052 21.9583 25.292 21.9583Z" fill="#F4F5F6"/>
<path d="M12.1875 29.75H4.39583C2.24675 29.75 0.5 28.0032 0.5 25.8542V3.89583C0.5 1.74675 2.24675 0 4.39583 0H19.2708C21.4199 0 23.1667 1.74675 23.1667 3.89583V11.6875C23.1667 12.274 22.6907 12.75 22.1042 12.75C21.5177 12.75 21.0417 12.274 21.0417 11.6875V3.89583C21.0417 2.91975 20.2469 2.125 19.2708 2.125H4.39583C3.41975 2.125 2.625 2.91975 2.625 3.89583V25.8542C2.625 26.8302 3.41975 27.625 4.39583 27.625H12.1875C12.774 27.625 13.25 28.101 13.25 28.6875C13.25 29.274 12.774 29.75 12.1875 29.75Z" fill="#F4F5F6"/>
<path d="M14.3125 18.4166C13.726 18.4166 13.25 17.9406 13.25 17.3541V8.14575C13.25 7.55925 13.726 7.08325 14.3125 7.08325H17.8542C18.4407 7.08325 18.9167 7.55925 18.9167 8.14575V14.5208C18.9167 15.1073 18.4407 15.5833 17.8542 15.5833C17.2677 15.5833 16.7917 15.1073 16.7917 14.5208V9.20825H15.375V17.3541C15.375 17.9406 14.899 18.4166 14.3125 18.4166Z" fill="#F4F5F6"/>
<path d="M9.35417 21.25H5.8125C5.226 21.25 4.75 20.774 4.75 20.1875V13.8125C4.75 13.226 5.226 12.75 5.8125 12.75H9.35417C9.94067 12.75 10.4167 13.226 10.4167 13.8125V20.1875C10.4167 20.774 9.94067 21.25 9.35417 21.25ZM6.875 19.125H8.29167V14.875H6.875V19.125Z" fill="#F4F5F6"/>
<path d="M12.1872 21.25H4.39551C3.80901 21.25 3.33301 20.774 3.33301 20.1875C3.33301 19.601 3.80901 19.125 4.39551 19.125H12.1872C12.7737 19.125 13.2497 19.601 13.2497 20.1875C13.2497 20.774 12.7737 21.25 12.1872 21.25Z" fill="#F4F5F6"/>
</g>
<defs>
<clipPath id="clip0_2244_15290">
<rect width="34" height="34" fill="white" transform="translate(0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+10
View File
@@ -0,0 +1,10 @@
<svg width="35" height="34" viewBox="0 0 35 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2244_15330)">
<path d="M33.9787 20.196C33.5891 19.5174 32.7235 19.2822 32.0449 19.6761L30.6608 20.4737C29.8038 19.55 28.6874 18.8785 27.4181 18.5881V17C27.4181 16.218 26.7848 15.5833 26.0014 15.5833C25.218 15.5833 24.5847 16.218 24.5847 17V18.5881C23.3154 18.8785 22.1977 19.5486 21.342 20.4737L19.9579 19.6761C19.2793 19.2837 18.4123 19.5188 18.0242 20.196C17.6332 20.8746 17.8669 21.7402 18.5441 22.1297L19.9367 22.9316C19.7539 23.5238 19.6278 24.14 19.6278 24.7917C19.6278 25.4433 19.7539 26.0596 19.9367 26.6517L18.5441 27.4536C17.8655 27.8432 17.6318 28.7102 18.0242 29.3873C18.2862 29.8421 18.7623 30.0971 19.2524 30.0971C19.4918 30.0971 19.7355 30.0362 19.9579 29.9072L21.342 29.1097C22.1991 30.0333 23.3154 30.7048 24.5847 30.9952V32.5833C24.5847 33.3667 25.218 34 26.0014 34C26.7848 34 27.4181 33.3667 27.4181 32.5833V30.9952C28.6874 30.7048 29.8052 30.0347 30.6608 29.1097L32.0449 29.9072C32.2673 30.0362 32.511 30.0971 32.7504 30.0971C33.2406 30.0971 33.718 29.8421 33.9787 29.3873C34.3697 28.7087 34.1359 27.8432 33.4587 27.4536L32.0662 26.6517C32.2489 26.0596 32.375 25.4433 32.375 24.7917C32.375 24.14 32.2489 23.5238 32.0662 22.9316L33.4587 22.1297C34.1373 21.7402 34.3711 20.8732 33.9787 20.196ZM26 28.3333C24.0464 28.3333 22.4583 26.7452 22.4583 24.7917C22.4583 22.8381 24.0464 21.25 26 21.25C27.9536 21.25 29.5417 22.8381 29.5417 24.7917C29.5417 26.7452 27.9536 28.3333 26 28.3333ZM27.4167 2.83333H18.1687C17.9505 2.83333 17.7309 2.78092 17.5368 2.68458L13.0644 0.447667C12.4779 0.154417 11.8206 0 11.1647 0H7.58333C3.67758 0 0.5 3.17758 0.5 7.08333V24.0833C0.5 27.9891 3.67758 31.1667 7.58333 31.1667H13.25C14.0334 31.1667 14.6667 30.5334 14.6667 29.75C14.6667 28.9666 14.0334 28.3333 13.25 28.3333H7.58333C5.24017 28.3333 3.33333 26.4265 3.33333 24.0833V11.3333H31.6667V15.5833C31.6667 16.3653 32.2999 17 33.0833 17C33.8667 17 34.5 16.3653 34.5 15.5833V9.91667C34.5 6.01092 31.3224 2.83333 27.4167 2.83333ZM3.33333 7.08333C3.33333 4.74017 5.24017 2.83333 7.58333 2.83333H11.1647C11.3828 2.83333 11.6024 2.88575 11.7965 2.98208L16.2675 5.21758C16.854 5.51083 17.5113 5.66525 18.1672 5.66525H27.4153C29.2598 5.66525 30.8181 6.85383 31.4046 8.49858H3.33333V7.08333Z" fill="#F4F5F6"/>
</g>
<defs>
<clipPath id="clip0_2244_15330">
<rect width="34" height="34" fill="white" transform="translate(0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,5 @@
<svg width="4" height="16" viewBox="0 0 4 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="2" cy="2" r="2" fill="#DE3412"/>
<circle cx="2" cy="8" r="2" fill="#346FB2"/>
<circle cx="2" cy="14" r="2" fill="#228738"/>
</svg>

After

Width:  |  Height:  |  Size: 237 B

+7
View File
@@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Frame 27">
<g id="person">
<path id="Vector (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M16.0007 4.41743C13.6246 4.41743 11.306 5.14812 9.35932 6.51044C7.4126 7.87276 5.93192 9.80079 5.11805 12.0331C4.30418 14.2654 4.19648 16.694 4.80958 18.9896C5.3108 20.8663 6.27395 22.5799 7.60239 23.9784C8.0639 22.4005 8.96383 20.9747 10.2106 19.8743C11.0188 19.161 11.9446 18.6093 12.9381 18.2381C12.6625 18.0497 12.4031 17.835 12.1637 17.5956C11.1463 16.5782 10.5747 15.1982 10.5747 13.7593C10.5747 12.3204 11.1463 10.9405 12.1637 9.92305C13.1812 8.9056 14.5611 8.334 16 8.334C17.4389 8.334 18.8188 8.9056 19.8363 9.92305C20.8537 10.9405 21.4253 12.3204 21.4253 13.7593C21.4253 15.1982 20.8537 16.5782 19.8363 17.5956C19.5969 17.835 19.3374 18.0497 19.0619 18.2381C20.0554 18.6093 20.9812 19.161 21.7894 19.8743C23.0364 20.9749 23.9365 22.4011 24.3979 23.9795C25.7269 22.5808 26.6904 20.8668 27.1917 18.9896C27.8048 16.694 27.6971 14.2654 26.8833 12.0331C26.0694 9.80079 24.5887 7.87276 22.642 6.51044C20.6953 5.14812 18.3767 4.41743 16.0007 4.41743ZM24.3934 26.0364C24.4029 26.0292 24.4122 26.0217 24.4214 26.014C26.4754 24.2867 27.9485 21.9695 28.641 19.3767C29.3334 16.7838 29.2118 14.0407 28.2925 11.5193C27.3733 8.99791 25.7008 6.82021 23.502 5.28148C21.3032 3.74275 18.6844 2.91743 16.0007 2.91743C13.3169 2.91743 10.6981 3.74275 8.49929 5.28148C6.30048 6.82021 4.62806 8.99791 3.70879 11.5193C2.78952 14.0407 2.66789 16.7838 3.36037 19.3767C4.05274 21.9691 5.52544 24.2859 7.57887 26.0131C9.93392 28.0012 12.918 29.0892 16 29.0833C19.0699 29.0891 22.0427 28.0097 24.3934 26.0364ZM23.1309 25.1294C22.8389 23.5337 22.019 22.0776 20.7969 20.999C19.4724 19.83 17.7666 19.1848 16.0001 19.1847M23.1309 25.1294C21.1004 26.7217 18.5899 27.5885 16.0015 27.5833H15.9985C13.4101 27.5885 10.8996 26.7217 8.86904 25.1294C9.16106 23.5337 9.981 22.0776 11.2031 20.999C12.5276 19.83 14.2335 19.1848 16.0001 19.1847M16.0001 17.6847C14.959 17.6847 13.9605 17.2711 13.2244 16.535C12.4882 15.7988 12.0747 14.8004 12.0747 13.7593C12.0747 12.7183 12.4882 11.7198 13.2244 10.9837C13.9605 10.2476 14.9589 9.834 16 9.834C17.0411 9.834 18.0395 10.2476 18.7756 10.9837C19.5118 11.7198 19.9253 12.7183 19.9253 13.7593C19.9253 14.8004 19.5118 15.7988 18.7756 16.535C18.0395 17.2711 17.0411 17.6847 16.0001 17.6847Z" fill="#58616A" style="fill:#58616A;fill:color(display-p3 0.3451 0.3804 0.4157);fill-opacity:1;"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+15
View File
@@ -0,0 +1,15 @@
<svg width="341" height="49" viewBox="0 0 341 49" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path d="M70.16 13.04H75.04V15.18H70.16V13.04ZM65.12 8.66H67.26V11.36C67.26 12.52 67.16 13.6467 66.96 14.74C66.76 15.8333 66.4533 16.8533 66.04 17.8C65.6267 18.7467 65.1 19.58 64.46 20.3C63.8333 21.02 63.0867 21.6 62.22 22.04L60.56 19.92C61.3467 19.5467 62.02 19.06 62.58 18.46C63.1533 17.86 63.6267 17.18 64 16.42C64.3867 15.6467 64.6667 14.8333 64.84 13.98C65.0267 13.1133 65.12 12.24 65.12 11.36V8.66ZM65.66 8.66H67.78V11.36C67.78 12.2267 67.8667 13.0867 68.04 13.94C68.2133 14.78 68.4733 15.5667 68.82 16.3C69.18 17.0333 69.64 17.6867 70.2 18.26C70.76 18.82 71.4267 19.2733 72.2 19.62L70.6 21.74C69.7333 21.3133 68.9867 20.7533 68.36 20.06C67.7333 19.3533 67.22 18.5467 66.82 17.64C66.4333 16.7333 66.14 15.7467 65.94 14.68C65.7533 13.6133 65.66 12.5067 65.66 11.36V8.66ZM73.7 7.22H76.36V25.8H73.7V7.22ZM86.2384 16.06H88.8784V18.66H86.2384V16.06ZM87.5984 7.42C89.7051 7.42 91.3451 7.69333 92.5184 8.24C93.7051 8.77333 94.2984 9.55333 94.2984 10.58C94.2984 11.5933 93.7051 12.3733 92.5184 12.92C91.3451 13.4667 89.7051 13.74 87.5984 13.74C85.4784 13.74 83.8251 13.4667 82.6384 12.92C81.4651 12.3733 80.8784 11.5933 80.8784 10.58C80.8784 9.55333 81.4651 8.77333 82.6384 8.24C83.8251 7.69333 85.4784 7.42 87.5984 7.42ZM87.5784 9.36C86.6984 9.36 85.9651 9.40667 85.3784 9.5C84.7918 9.58 84.3518 9.71333 84.0584 9.9C83.7784 10.0733 83.6384 10.3 83.6384 10.58C83.6384 10.86 83.7784 11.0933 84.0584 11.28C84.3518 11.4533 84.7918 11.58 85.3784 11.66C85.9651 11.74 86.6984 11.78 87.5784 11.78C88.4718 11.78 89.2118 11.74 89.7984 11.66C90.3851 11.58 90.8184 11.4533 91.0984 11.28C91.3784 11.0933 91.5184 10.86 91.5184 10.58C91.5184 10.3 91.3784 10.0733 91.0984 9.9C90.8184 9.71333 90.3851 9.58 89.7984 9.5C89.2118 9.40667 88.4718 9.36 87.5784 9.36ZM79.1984 14.52H95.9584V16.62H79.1984V14.52ZM81.1184 17.84H93.9184V22.58H83.7784V24.22H81.1384V20.74H91.2984V19.8H81.1184V17.84ZM81.1384 23.64H94.4184V25.66H81.1384V23.64ZM97.5769 16.88H114.337V18.98H97.5769V16.88ZM99.4569 20.14H112.297V25.78H109.637V22.24H99.4569V20.14ZM99.6769 13.72H112.577V15.74H99.6769V13.72ZM99.6769 7.68H112.417V9.7H102.317V14.76H99.6769V7.68ZM101.557 10.72H112.017V12.66H101.557V10.72ZM124.935 9.56H129.435V11.58H124.935V9.56ZM124.935 12.96H129.435V14.96H124.935V12.96ZM128.835 7.26H131.495V16.76H128.835V7.26ZM119.255 17.46H131.495V22.42H121.915V24.76H119.295V20.5H128.875V19.52H119.255V17.46ZM119.295 23.5H132.035V25.58H119.295V23.5ZM116.775 8.02H119.415V10.16H122.935V8.02H125.555V16.24H116.775V8.02ZM119.415 12.16V14.18H122.935V12.16H119.415ZM138.914 8.68H141.094V11.36C141.094 12.56 140.987 13.7133 140.774 14.82C140.56 15.9133 140.234 16.94 139.794 17.9C139.367 18.8467 138.814 19.6867 138.134 20.42C137.467 21.14 136.674 21.7133 135.754 22.14L134.174 19.94C134.987 19.58 135.687 19.1067 136.274 18.52C136.874 17.92 137.367 17.24 137.754 16.48C138.14 15.7067 138.427 14.8867 138.614 14.02C138.814 13.1533 138.914 12.2667 138.914 11.36V8.68ZM139.434 8.68H141.594V11.36C141.594 12.2267 141.687 13.0733 141.874 13.9C142.06 14.7267 142.34 15.5067 142.714 16.24C143.1 16.9733 143.58 17.6267 144.154 18.2C144.74 18.76 145.427 19.2067 146.214 19.54L144.674 21.7C143.78 21.2867 143 20.7333 142.334 20.04C141.68 19.3467 141.14 18.5467 140.714 17.64C140.287 16.72 139.967 15.7333 139.754 14.68C139.54 13.6133 139.434 12.5067 139.434 11.36V8.68ZM147.114 7.22H149.774V25.8H147.114V7.22ZM170.023 7.24H172.703V20.7H170.023V7.24ZM164.523 8.6H167.303C167.303 10.2933 166.97 11.8067 166.303 13.14C165.637 14.46 164.657 15.6 163.363 16.56C162.07 17.5067 160.49 18.2533 158.623 18.8L157.583 16.7C159.117 16.26 160.397 15.7 161.423 15.02C162.45 14.34 163.223 13.5667 163.743 12.7C164.263 11.82 164.523 10.8733 164.523 9.86V8.6ZM158.643 8.6H166.183V10.76H158.643V8.6ZM160.383 23.34H173.063V25.46H160.383V23.34ZM160.383 19.56H163.043V24.14H160.383V19.56ZM177.722 17.8H180.342V19.72H187.842V17.8H190.482V25.58H177.722V17.8ZM180.342 21.78V23.46H187.842V21.78H180.342ZM177.802 7.98H189.522V10.1H177.802V7.98ZM175.742 14.46H192.522V16.6H175.742V14.46ZM187.922 7.98H190.542V9.46C190.542 10.2333 190.522 11.0533 190.482 11.92C190.442 12.7733 190.295 13.78 190.042 14.94L187.362 15.12C187.642 13.92 187.802 12.8733 187.842 11.98C187.895 11.0867 187.922 10.2467 187.922 9.46V7.98ZM196.06 8.32H207.66V10.42H196.06V8.32ZM194.14 16.2H210.9V18.36H194.14V16.2ZM201.08 17.72H203.76V25.78H201.08V17.72ZM206.3 8.32H208.92V9.96C208.92 10.6267 208.907 11.3333 208.88 12.08C208.867 12.8267 208.814 13.6467 208.72 14.54C208.627 15.42 208.454 16.4067 208.2 17.5L205.6 17.18C205.947 15.6467 206.147 14.3067 206.2 13.16C206.267 12 206.3 10.9333 206.3 9.96V8.32ZM212.539 21.48H229.319V23.64H212.539V21.48ZM219.599 17.38H222.239V22.08H219.599V17.38ZM219.499 9.66H221.759V10.34C221.759 11.1133 221.645 11.8533 221.419 12.56C221.205 13.2667 220.885 13.9267 220.459 14.54C220.045 15.1533 219.532 15.7 218.919 16.18C218.305 16.66 217.605 17.0733 216.819 17.42C216.032 17.7667 215.172 18.0267 214.239 18.2L213.179 16.08C214.005 15.9467 214.752 15.7467 215.419 15.48C216.099 15.21Line truncated
<mask id="mask0_2244_47" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="2" width="341" height="47">
<path fill-rule="evenodd" clip-rule="evenodd" d="M61 2H0V29V49H61H341V29H61V2Z" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_2244_47)">
<rect x="6" y="2" width="335" height="44" fill="url(#pattern0_2244_47)"/>
</g>
<defs>
<pattern id="pattern0_2244_47" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_2244_47" transform="matrix(0.00294985 0 0 0.0224591 0 -0.0390185)"/>
</pattern>
<image id="image0_2244_47" width="339" height="48" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVMAAAAwCAYAAACsXJk0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABU6ADAAQAAAABAAAAMAAAAAAUGtZnAAA0pElEQVR4Ae19CXwURfZ/dc/kggAREkAQCAoilwQQJRzLhENFQYMa4bcqBtaVdRUEFFF2XYLHeqCCKLpeXN4blQByiByjHPFAEuRUEMIdSAgBArlmuv/fVz01UzPpOQIB9L9Tn09S1VWvXlW9evXqvVfVPYz9XsLU3NXsuZzE30t3wv0IUyBMgTAFqkMBtTrA5xVW0V9lVmW+l0CdmmNjU3Myzmu7YeRhCoQpEKZADVBAqQEcNYdiam4OkBUzEqway2OPdc51C9cnOufVXENhTGEKhCkQpkDNUuB3JkxzxjKmTGNMH4f4VsQLmKJ0gmCNY07kXSSBmpaWZjlwktVTK1iC5mSRlkh2wnmaFWRnZ5b6TofNZrOesibUjlIdUZUVVrfmHxHp0Mo1a3kdR8Fpu93u8K13sZ7bp6VF1ipg9aMtrD71oczJis4ksKKtmZkV1elTdWj0e8BbnT78fw6rJCenRTtrOWpZLcyiK1aHojusSqX1ElVllrPhh5riKaJ7TeI6l3mkftQ9yWKJNv5oZD2XBvzVXR3X3aYxJYnKVaZnpRR/l+cP1it/Qufp7KXch5muTIYgfRW1WzBdT4SmuoBFUB4b4QV/gR4KClhM35TkwT2v7TKmrKIs1uHQNk17bfYkNL+LukCCJD+f1detlssrdK31DT2vTa5dKyZe0zF8V1AVpp0+U1po/+aH7F4pw3YqDufuxo1ZUWZmplPAdLOlNbZi81B11ljkBYs1lVVYNH2/M4pty/4qsyj5hrT6rJK1wgZUH60XsQi2i+cnp8WwKNaUKfijoLODrJwddBSweiPvGvJw00sbDaLsg4ePfDnrw/mgPcun51BDMBqFiscXLhher/H6Vvb3rLBSMX6xIdpsabHljDWGdhHrr5pvvq4xZ6CN1Re+Os988Raw5hZVaYt2+EYXSn0Fc+7U9O0nE9i+UDZEEqRdurXt0fKKlndUVmKvr6zcXVB0ouTGvr2GOpzOyLPhB9qca4KnaLzVxSVv6rrOYnTGSqLAy3Z7Zokf+rk3E91pjfCFUSyOSssZ6xntiHbZsKG3PHimtDTeH41qVJiujuuRpCvO2RhAkgJupYD/01Zd0j1P0aM7pxTbi307W+VZY7lY8Kn4y2Wafi8XpKSd6iyJTcuJY+M6B8dRBan/DF+m1RSW79D1TT/aM93CxOlkMXF1avcZeGOfLoTpl517GqJ/M5HcRZN3+LjWomOXDiP+nDbovmu6doyPjo7yS9eysvL7N/y0ufCjT7+ctXHTljnQZPcITZUE6fpVny7z31vzkp278o7dO+qxm1D6g6WctZv1zotZmq5jHSrOkX99LBX5ay21WcKYB0b8++qOVw0gLD9v3vH1jDdnP2rVWSwJ0sE39+1A+YsWr2LQUt9H0j1+yiehRbidqtLMAgb1XbCBaET1RfClt8j3jcU8AK/TH+2pjjxeXxyBnsX4AbOP4KCGt8r4x5g3T50qCXkjUy1Khbyxhjo2s37pCiuB4vBbJHiKFj5pQcPSBj005u/DHzaDD5Q34415r36y8MunIChLad6dFawehCymrWpQFUtU8+bN7nlkTPq9VAreLp77/hc7Ba8TP0DCfJqMzSaQYJc3dauD1Q+Fp6g9WYEQcy6vPbKYQsVF+OTNF4Kvfp06sflTnp3xAIpyqdw3yJtJaemZeN/ymJhahXt+2/NZ7uYdDcRcmNGI1ozfRe+LNNizS5CuhnkeZwKbqCulKGOdTcq8s1R9LjRTCACY+Sr8p5rSBwA2CK8s5mDpSE/3rnBuT2ZM26Pv0BuB1S1MymD+lFU46ni1hF2Pnsn879Kx090v/fuxxwMJUVGXYHr1vKYxhO5jz7zwRuxye/ZzKONtVUcjFfgoJsEJscLnkoRd61aJDUS5U1FSetjSSnQHawPh2q1N65Z8frZs+aWbpikjocFaKioq3NoYpSHAsKZ9ArRdEtICt1iwgCoiyEA0kjGZ0Vsul9M0D2UWfZM/2hOspiiNRJ/kusHS27b/2omEjBtOUa64vn+v7u7nEBPyxlqdsZmhX75i7XcZz864B2W7HOUs8uSpEsOKMAMOkFfp0KKcDgfEpLUpbaBWq9pJc+pV5xQ4IiMjS9Z9t6FSRqfpmltD47yhsvrDbh+ULoSJDCunxabu1BiqhcBTqOyrQPiuPeLFUHFRXyoiHbXq1q6TIjYDZCVmPPdaWyg9m2UrkGApkHuDtHJsJn8zcqr+f3nGHJbz8w5uhYpSXxpRP2tMmOqKNt+PIHW1ryTB/E+HyT9HdMg01iFAjWCDXjsOPtOHIUghVOE3VciPWrPC1IxpqyPUyI86oG/yMCFIoXk6Xpkxa8fipfY5MBkLXWMhDT3+5oG29PFjRl5FsPR3Y//ed65a9cMcwLgFt4Cn+PEnp+bKz/7SFou6PsLhPEzlquYtCB8ZPWIksumPdejQhgtSSt8+5MZE/E2mdEgBpqYhtA1oWuhEu5DqSkDWMxDe5WV1pSy/SUVnCX4LXQWqrh+hRSz3zV+d+Ab1oxvUrxdN5SRcZG0N8+PPDPSHzpPv2lirMzZPZU+qvLwiFn5LU5ruP3C4ZOZbH3gtaE9NT8pitZw+eDB/BZmmLJp1IEtEbKAeKO/Uuu9+CshncDOEJNj5HBi0CNnf7rvWfJ+9exr8yVpmrW2NUJvLkEnt2nT5OWfTl8g7JedTmkx7M41UhouwquUK3HRynlm6RoTpyrjksehWolkDcp6u6NNWx9ngQ7UXy/leaSvUcTqe0Vki/tNfHIZBpj8JAhv+fldBhfmkaU4vE2r/ofwynSklWKDHsGwxGpXoHE35vp23WJyqb554fv7pCUkiHSieOv29DY5ox2kzGBKaZvnVz+NjqH41nxoWCystPnX6m6XLvulEZphc3KhhfDRp7ZR3rOgEaBhcwJGvmLs4gvgVFaa0Hz9mxEOCHmSioy/uRU+uHdKKgi5mhdVHH4ebzU2gsdn6JDcWgpzG9/n8ZXkUi0AaIvkn6cBH5Mlxs8sujTVrU4ahNJmgI0ZNLIQvuCy5b1opuXp8Yc71mebG/k22lwIgXB5YtweB323piLYUC0sgV9HJuqwkoC9XZTFwfVmF60vUDzFWNIulYYtmTVrK8Fe0anHt5h3baGOuIkxlOErTvLz82qw8RVHyMRY6YC6AC6YAilFPX1jf53MWphCOcTDhJ0Mr9cVt8gwXgEqwDKf1IQQF16PIV0oHUEyFSabTvVMbm9DZHkLtswaB78bSs+ctdbSIqEYYVSwxQnlZeSMzhMT8v/22dx3KrqRy0jjfnD7lGmioSXv3H3JrO5jgWKG9Cjxrv9v4tRM+WvF8trGqWhwO+BbN6tPiEvmyZrZ23Yb8L5et5m0PujGlsRBiAtY3VhW9Fo1B5EMLiVKZs9r8k5DASletz15kt2d/RwcEhA+HcxaNqdc9+cTfnxD4t2/fWaxY9CPmoxJQjNHhGp5+8OSYp5JT0kovb9nc3f+ft/y6k/spXeAuP13QuYCAalo7plYfVHNvdNBwuVA2G5uuWmopujbs5oEp5Ldzh6xFK3bu3nvgJaZpRymTBLs4OXcDnW1CsZDZrtPhI/nMyfUDLb/XrLee/7PQUsnqAQ/MA1RRSt/k4dVpqvBYUdkrr82eBh/vt6KeOIzDoWYBDjrbiHyKaZNM6Z38ZEJCg42fZH75OrK4hk3nDQePeWvifXpf2/Grdd/XBswJqludYLOl1ou/NMFGG5dcr2+f5HZfLPi648CBAw8uXboU54z+A9WVLbjlX6/NH/33e67yX8NTUu3F4KkqUmVgKgjJEIOuK2MB6l+YlkEDFb3SFBxAAVpRjFP9ENuoDhiOiiKdTidf1KIeHN6NDx3J75Dx+JhXxIEEMYQol2O6RjR/4YoZlZVazG1DbrhRMCsJTpGW4SlNAu6L+V8t+3Lpqldw6lrgWy6eQzHzVUWt3L1n/1a61iLqyfHIvz2+DE7Vr0DEK6CZ3S00s4SGDaK7denI543Sch3fNDH9oQKlrrwZtGzRtKXKFLdw8q3j79nltyIBKDQw5TrbbU07tGvd3tb7OvcisK/9YS2E7T5/eKqbT5tirdoxgrPg4Io4pZRzzaN6qDQW07BRA3c/4Xsu1l0atO/YsHijTpXGdhs5cuhAmXbUINw9nR98ZEqDCiv7/qcVmUEFR6hmfkWlYxds1wgcrMS4Npq11F6vvnfSxv5nSlOIiYk+iA1xuwJBW1lR6WUhGBCB/+u6/mu2PTPXDAo+eq9s2qhdm3XvzM8Xr0QhF6Z0WNSx01VXyMAxMVGNa5U7ayEvKE3keqT8VChRff6SfsdDsgVAMJ2T2sWnDu4/ceGilfmgy8/iBodcX6Sprlyf5leUBYvdzBUM8IKVW1miuy061afA/aUuE98w/90g55pwVlgadGjbur2M5+r2ba49dPhISaADCWhTkTjhbGU5prTFSWbjRctWb4Om57wkrk6LDu3bxLa58vLYurG13fQ9WXLa8cuvu0u2bP2l5Hjxqb1YgL+Akbtdcow1Ax5+lcVXrI4Yfkei3C9/6fzDRx+Y+NSrpCVwLUeG693jmqti0Q/SrOUNgQS9P2Ev16d0QUFlnQ7tOnSQ8xPi68PKiKj2IpRxiNPvpk0a3T35iYeGC4FDm82y5d/OOtmAFdDVGLkOpd20r8a1IdC7j6xZb9nxawvNotyEhb8JTkp+gu7bjtmzZrHWim8Q19BdhmsrmmItcz8bCYW0pOKy6K5Dbun39Ih7bm8lysLine truncated
</defs>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

+9
View File
@@ -0,0 +1,9 @@
<svg width="360" height="180" viewBox="0 0 360 180" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect width="360" height="180" fill="url(#pattern0_1735_6477)"/>
<defs>
<pattern id="pattern0_1735_6477" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_1735_6477" transform="scale(0.00277778 0.00555556)"/>
</pattern>
<image id="image0_1735_6477" width="360" height="180" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAC0CAYAAAC5brY1AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAARo3SURBVHgBzP0JtDVZVh4Gnogbd3z3Df+Q+f85VtacUEANCCShAgpjg4SlRWHRYENrUYDtJVAvobJpDGIqtARSyzSDupe6lzVQbktyS93LIBuQrWW7kERLtgRFlagqsiqzsrKycvjzn9505yGiz7f3/uKciBv3vffnVNq5Xv7v3RvDiRPn7LPPt7+9d/Ls3aJwkez3nDueOXdpxzl8czRxbs9/djrXf4+nelyS+GP6/hj/+4k/ftDR4ycL53L/777/br5yLvXHLfy/69y5+/ece+nENQquvVw71/PXGft79TL9fJXrdafLahtxD7SJbbm269zNU/286889GPi2+O/H1h5K1vJtbeu5uAfuiXtcHep94/vUBdfd6fprpHqvWHCtbjv0TyxXdvR+6AfITkfbjOdC+/hMc9+Wg772IfoOP5f9uU/7v+/4dv2hfed+5zhc9yHflolv+zv8MU/493R7oZ+1ffue8e14o++Dof994e9z6M+/6b+/5u/9kt0T7+aRnv7+km/fLN9s+5v8te/318CLxrjot7WfVtGxLf/9dd//L56Evsa17xvi5ej4mC70HeP3WOqfYRyhn1a1tuCd4d2dWBvwO/oH72Q0176M23NpoP04sWdt++N3fd/0O/r3C8faTzgfn9Xf51mCNu/6n1sj5zotvT8Ez4s+QvsxTob2nk9n4T03CcbuyZEe0OulLm0lbjJel9/jGvsHbfms00ldniXuC4vE3fXvdJ67lyV4P4/6Z/iCb9u6qH637/tk4J/LN8M9Z+9m4D/DlDxZab9dynQ8QfD3XkvH6HX/3DfYH/75j/xny0Lv9Wz8nlt63rHNt3d63fBJ/w5WxfY2ox/e5fvq9885bptc9m1+tBX0BuT+3eq7x9zG+8V4wbvEGLvu23brdHNMQscM/fPO/TPcHYd+xPzG+bNIl/A7PDP6frKs6iVK37exnek4xzhO4y+hZKAkMOj8GHDLlQ5EKC1MnFH0YBjseIBeWxuE7/DDm0Ih4wWjoXiwTqYP0iR4SEwk3Af39WNQGogffJ6m2lgKOnjQ1RcGweTEsXumbNCpK/8ci3W1E9CGnk1ynIPvcA384Pp7/ep96oLrQjlMGybbWeMFL53KGQKFgJeX2r3RR1iY0McYCHiZaLu0JdOBL9fxx/bS6Jq5Kl4cj8H3bj+QMK8xeN/hlcWOv+6TXlF/eix6Un6u+Hs82NPJgwmHCbqb6juvy54/4Dr6yyv/o6kpXLc5UPGuZ6vQf3gm/A4Fdmekg+7qzub106SqWJ21cdWgdPDuUrsu7gelh8UVn+20o/MTVeYYe/KdKWSMY/QTPsN7LKyPcfzsjEW5LlC8GAM4t8i1vRQuHhC0Ac9/e6QT7tpeaEtdMO673bRsf6edlH9DhsNMlPPCv/DRaOUmXus9lK/cV+8W7nHfr8PM3bM83Fflu24YuFgaMK6w+LetGVPfZ0MbI0t8Hj04/u7Zd/H0we8Y9jgPz9WLxhg+O43mBIyL+7f0DwXv7LYZGS9H+q1NpZgm1b8x9u768X5nrPMRyhk6qD4mZZHuqkGGxffqrh4PgW6CLsSc4A/GKn6gmKUvuzrv6wLDYxndq+xPGRiZDlZYbYcTVdYLG8ywNDiZdkyhYqLg3/g7CjoCk2lsSh2KfLrabJBYki50AB4YDxgLrkGrk9cez4NChqAdnVYYUOggWPEUdB6+G0XKFYNTrKiWLkaHY7Wkz1LSmJizlbuw4L6TSAG0bAXF8+JaeAbc82QaVuGWKS5890xkkc/WOrAf7KplPLc+xyN9ZqLWzaOmfDH5PnGq50DwnLgurK4XZnrsZf9OHvPHPzVV5R8PfCySb++rgm219P3h3aBdsDriwYXfMXagNKGYoAzxPHhPHPAncx0nsGzZv7hm3DdcrDB48YNr4Rz5PNOJgOsuzIjABIFSlAU20c+GNnZwT4wBKGOMA1yX950tqm2fXlBB8/qYG7gUJhInPNvet4V2nYfnxy4U/Yjv0Xd1RS1j1xTydJq7k5O17/PE7XlTds+vkms/KKCcY8n9nyOv4Xq+8e/q52JZXu9sKpwmwS7r5my7FZrbGDzx/XLVFhwcGrdgYw1tuBaOwXiBMr+1UIMBFvZDfR1v/WgM4furbXeu3Fjo+H45gnbUFyT8nTXMd7w3GHnQhxjb0IkcP3jHGFMYe6dmRGIhhoGL3fI2I6O8Z67ntqPxSoGhtmpS0Fj5cSNazDgIkwONxICDBYWLYRvPBmCCQFFiZdjtVW+0WFe3qnjIZYNig/UTW9YLgxz6tZeFyRkPbEw+tCWLBiQs+j1TyrSi8QxoJzqlvs3EIMfEwoKD73BvKABYe8mWgY6Pl2t3YUHfxQoBLxH9jAkABYx/p4ugJDAIlpH1fCteUPzP7aVCFAd4LrOc1lzc/HfP+3655X+Oa30tA9EmxcNQfqla5rCSAG3cXeg5+A5teqPvx4VBGdLeVN81BhYWkssDHaToXyiuue0IMP5bDX2HsQCLEv9iEGP7j2uu82rfcCdGCwSCCYHv8shAyKKdEBZdbDfxGdpaRO8I407G9lwteUhsKOAc7mTOEhyHe4wM/oOFBcG98DnnD+4DmKo+1kRRT/VeaBNgDU5OfNeKrILcP+hksnZrr0GhnPF7pS026JceO8j8BUejtUvGK/emdu6+cqdwD/fCTqsuD3T1vc/OUCB4JlxDLOZIoeGuWbRrrYh93rRAwADCI9xZKPzxvO+HU//3TtRGrD80Xs6SZV5tx71IVhtvEOiIpkthTGPuYjHGrhZz9P6hGhiXzPCM4cy1GSLclfcvsNhgvGABOIh27qJb4/GJ/8m21Om7wMR50XBinIPJIbiyaX0oYjmua0rQPocViL+5lUeD03iQFJvbC2lUsrna4MGBaQLKwCkcDOjgnU6YUGtYoANVGBDcH0oPEwDtwMSFMmjCjyBoD9rYNjwTAkWJz6CAOAkpAtfcg3Ju2bXjLQt2B1iosCWCZcU2U7qmRPDSPl/Da9kPULbTQhUqrCEOVlH2/vOrDVunllmZh75PjlY6gR/z93hqEo7BpH3Rf/9m//leoUobgn4XWMCOQ19iYOFv9O9Lp9ruYTcoVygtWBf1CTG2xUh2KuafYN9nNWsW70dwZqcTAoNeFopFeA84B2Pi2Cz2YWRV7xuWiPaJgk3Dol0+81IV/m4S5gHvHUvbFDkW8Vun4Xv8jfdBIwNzBddbNBgjmPB4Hkx63At/w6LGLgK71cx39MoGKrDmFDDASXXAYWziuNnM8OhCFTp+PznRm97vf39st+VurxKBsAhnw8I+PEc5Q2DpekNesGP0/UM9hSrQbTAKeA0Y/cTA53aP+NJcqHEedmdiwVofjtcBMqHAYgesdnTOjgbQCJT+6h52snyucW3+YnzW5yjeDcbvrQibxrhEuwF5pGaJJw0QHeYKxmLffBv4fX1Gf3PhxphxRUAUyuvBuoRCwwSAGX83mrCZbf1j5XZqWO/ctugQDBI0BKsLAHc0uoi2DtssFGxhY1w77rRTw7Obvo/lvl2dcJzkmJxQbmgHJz86fNuWA5N+VFOE6AsoPVznKFol+zW44jyhRUhBf2JgiTUZTXK0T3YghQ5wLIYFFEttgcjNCsbWNCkUvnje/1zrqrMPE4ALDKVl2B+cMiNgYdH1jlebO1NcAw6f+SL0KxaVk6gf0Nax4XKwVLHjQNuIs0Gw+ACzxniqD1AqSFjUsMJ3ukHBNknHHC7o+6FZ06O17oxy8z/ILqkwCz4NTl8Z/J2w+0L/TM5w2EHoJELb0X9o/gN7wXm9bAcLGc+GycjXjOfBsxdbroutMM/DXML4wDOhT9JuUu7q+v6FnZ5UNZBATb4Bc68NM8PyoNChnGezoHlgdc+9ydrzA+XL/cuf+2Mn/lLPL85XzhAs3oDCsNt6Keqrq9jat9XyzUES8D8vzFUXoM3dmtXOP3HL+DoYw3BE1o+HVY2d3ZE7W/AMgPjG7t6knWy+l1W+qZuuGsQbwyE4BospxtuNY11cMb6xYxpFTnfMPYxV/EBfwIDBOz5vzJVjq7boZOLRnAcLAZOBDqOe4YqxwEJJif6bYHAJlrdQq4VKjRMT181rA0O2t8V25xoaDOWLiVDUOqpl1k7LnG9Y7dAhXLHRFqx0EHQot6ZNnnQsIk0Y5GipVjzayD7Y6QRM/SJCaAgCpbZnfVNfdGDVxZ5lHFe3nuVZnG0Ba7gZHguW0p5BPphAcBgmZmnjPeB3KOqRPSuU+ucbGCdv8wNqPNHFF8+7C2ZCbdHG9bjgxTsODEIom5FZkYf++ntdxZ85FlrmJcfuBNcQZ0xbB/s2Z10nC0yP0SJg2bgfcOy9NCwYMDKgnI/sGfaNFTOwsVFfYDGesrQKW9HhHLOW0DbZ0dkucohFaqbvhBMc90IbmsbTNnZKUQSnNxQrHIJtr0nmi6KiOGSn5xXt2EMZAwNvZ/O1KedwUbBAMOan9hmcioBELvtz9nuJu+k1KyzVtjlROWcAdXXwt1P/xMiYKFDWvDy+fyYaCxhP3lAXpY3joHBjfyWbH+/wwP4Qp79TWOO6LbKy24QxcQHoAmO6/zIgjqTJIZrrGKLgnU+WwfikXBnov3Ti453huB1zJHJ8xooY+hDvHDoR9ziabDdCKPX7lv2JAcrBUjnAHETiJLCL40Z9cwbBk702utiuwQtQ7LNVwCPxQmKHBCYEB3jXvPOZef9pbZO5Ae93ngdLBvfK12Ggr/Ow3R2b4/Jwukm7QsdjwEEhUFmIwl1sOg7wzFj5YIVDuQNKwRYO560vYIHwnom1GXjjbBXLine truncated
</defs>
</svg>

After

Width:  |  Height:  |  Size: 95 KiB

+166
View File
@@ -0,0 +1,166 @@
<svg width="360" height="180" viewBox="0 0 360 180" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<mask id="mask0_262_16132" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="360" height="180">
<rect width="360" height="180" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_262_16132)">
<rect width="360" height="180" fill="url(#pattern0_262_16132)"/>
<circle cx="177.19" cy="18.0401" r="2.376" fill="#FB2B3A"/>
<circle cx="245.09" cy="53.2398" r="2.376" fill="#FF9900"/>
<circle cx="30.376" cy="56.376" r="2.376" fill="#FB2B3A"/>
<circle cx="341.376" cy="35.376" r="2.376" fill="#FF9900"/>
<circle cx="170.376" cy="107.376" r="2.376" fill="#00B75F"/>
<circle cx="214.376" cy="103.376" r="2.376" fill="#005DCA"/>
<g opacity="0.2" filter="url(#filter0_d_262_16132)">
<circle cx="40.3" cy="34.3" r="20.3" fill="white"/>
</g>
<circle opacity="0.4" cx="40.3" cy="34.3" r="14.6193" fill="white"/>
<g clip-path="url(#clip0_262_16132)">
<path d="M40.3 27.1997C36.7937 27.1997 33.9416 30.0519 33.9416 33.5581C33.9416 34.7003 34.4795 36.1413 35.5818 37.9642C36.4982 39.4782 37.6338 40.9823 38.6332 42.3071C39.0947 42.9181 39.5297 43.4958 39.865 43.9739C39.9646 44.1167 40.1273 44.1997 40.3 44.1997C40.4726 44.1997 40.6353 44.1167 40.7349 43.9739C41.0703 43.4958 41.5053 42.9181 41.9668 42.3071C42.9662 40.9823 44.0984 39.4782 45.0182 37.9642C46.1205 36.1413 46.6584 34.7003 46.6584 33.5581C46.6584 30.0519 43.8062 27.1997 40.3 27.1997ZM40.3 36.4966C38.6797 36.4966 37.3615 35.1784 37.3615 33.5581C37.3615 31.9378 38.6797 30.6196 40.3 30.6196C41.9203 30.6196 43.2385 31.9378 43.2385 33.5581C43.2385 35.1784 41.9203 36.4966 40.3 36.4966Z" fill="#FF9900"/>
<circle cx="40.4308" cy="33.4767" r="4.70769" fill="white"/>
<g clip-path="url(#clip1_262_16132)">
<g clip-path="url(#clip2_262_16132)">
<path d="M40.3063 32.0454C38.793 32.0454 37.5674 33.271 37.5674 34.7842H43.0451C43.0451 33.271 41.8195 32.0454 40.3063 32.0454Z" fill="#FFD15C"/>
<path d="M39.6184 34.5591L39.1307 32.6832C39.0306 32.3205 39.5559 31.5576 40.3063 31.5576C41.0566 31.5576 41.5819 32.3205 41.4818 32.6832L40.9941 34.5591H39.6184Z" fill="#F8B64C"/>
<path d="M42.945 34.3843H37.6675C37.4674 34.3843 37.2923 34.5469 37.2923 34.7595C37.2923 34.9721 37.4549 35.1346 37.6675 35.1346H42.9325C43.1326 35.1346 43.3077 34.9721 43.3077 34.7595C43.3077 34.5468 43.1451 34.3843 42.945 34.3843Z" fill="#FF7058"/>
</g>
</g>
</g>
<g opacity="0.2" filter="url(#filter1_d_262_16132)">
<circle cx="200.9" cy="51.9" r="27.9" fill="white"/>
</g>
<g clip-path="url(#clip3_262_16132)">
<path d="M200.9 42.3999C196.404 42.3999 192.746 46.0574 192.746 50.5536C192.746 52.0183 193.436 53.8662 194.85 56.2037C196.025 58.1453 197.481 60.0741 198.763 61.7729C199.354 62.5564 199.912 63.2972 200.342 63.9104C200.47 64.0935 200.679 64.1999 200.9 64.1999C201.121 64.1999 201.33 64.0935 201.458 63.9104C201.888 63.2972 202.446 62.5564 203.037 61.7729C204.319 60.0741 205.771 58.1453 206.95 56.2037C208.364 53.8662 209.054 52.0183 209.054 50.5536C209.054 46.0574 205.396 42.3999 200.9 42.3999ZM200.9 54.3218C198.822 54.3218 197.132 52.6314 197.132 50.5536C197.132 48.4758 198.822 46.7854 200.9 46.7854C202.978 46.7854 204.668 48.4758 204.668 50.5536C204.668 52.6314 202.978 54.3218 200.9 54.3218Z" fill="#FB2B3A"/>
<circle cx="201.068" cy="50.449" r="6.03692" fill="white"/>
<g clip-path="url(#clip4_262_16132)">
<path d="M200.975 54.1382C200.351 54.1382 199.755 53.9598 199.254 53.6224C198.785 53.3068 198.41 52.8633 198.169 52.34C197.928 51.8166 197.836 51.2433 197.901 50.6818C197.971 50.0815 198.223 49.5135 198.63 49.0391C198.692 48.9673 198.791 48.9414 198.88 48.9742C198.969 49.007 199.028 49.0916 199.028 49.1861C199.028 49.4211 199.14 49.6301 199.336 49.7595C199.491 49.8619 199.672 49.8967 199.847 49.861V48.507C199.847 47.9344 200.053 47.3796 200.425 46.9449L200.804 46.5032C200.847 46.4532 200.909 46.4243 200.975 46.4243C201.041 46.4243 201.104 46.4531 201.147 46.5032L203.321 49.0391C203.727 49.5134 203.979 50.0815 204.049 50.6818C204.115 51.2432 204.022 51.8166 203.782 52.34C203.541 52.8633 203.166 53.3068 202.697 53.6224C202.195 53.9598 201.6 54.1382 200.975 54.1382Z" fill="#FF595F"/>
<path d="M203.321 49.0391L201.147 46.5032C201.104 46.4531 201.041 46.4243 200.975 46.4243V54.1382C201.6 54.1382 202.195 53.9598 202.697 53.6224C203.166 53.3068 203.541 52.8633 203.782 52.34C204.022 51.8166 204.115 51.2432 204.049 50.6818C203.979 50.0815 203.727 49.5135 203.321 49.0391Z" fill="#F40052"/>
<path d="M202.206 51.4621L201.147 50.2264C201.104 50.1763 201.041 50.1475 200.975 50.1475C200.909 50.1475 200.847 50.1763 200.804 50.2264L199.744 51.4621C199.327 51.9486 199.235 52.6124 199.502 53.1945C199.77 53.7766 200.335 54.1382 200.975 54.1382C201.616 54.1382 202.18 53.7766 202.448 53.1945C202.716 52.6124 202.623 51.9486 202.206 51.4621Z" fill="#FFBE40"/>
<path d="M201.147 50.2264C201.104 50.1763 201.041 50.1475 200.975 50.1475V54.1382C201.616 54.1382 202.18 53.7766 202.448 53.1945C202.716 52.6124 202.623 51.9486 202.206 51.4621L201.147 50.2264Z" fill="#FF9F40"/>
<path d="M201.713 52.5342L201.147 51.8738C201.104 51.8237 201.041 51.7949 200.975 51.7949C200.909 51.7949 200.847 51.8238 200.804 51.8738L200.238 52.5342C199.988 52.8257 199.932 53.2235 200.093 53.5724C200.253 53.9213 200.591 54.138 200.975 54.138C201.359 54.138 201.697 53.9213 201.858 53.5724C202.018 53.2236 201.963 52.8257 201.713 52.5342Z" fill="#FFDF40"/>
<path d="M197.956 47.9367C197.831 47.9367 197.73 47.8355 197.73 47.7107V47.3486C197.73 47.2237 197.831 47.1226 197.956 47.1226C198.081 47.1226 198.182 47.2237 198.182 47.3486V47.7107C198.182 47.8355 198.081 47.9367 197.956 47.9367Z" fill="#FFBE40"/>
<path d="M198.802 48.508C198.677 48.508 198.576 48.4068 198.576 48.282V47.9198C198.576 47.795 198.677 47.6938 198.802 47.6938C198.926 47.6938 199.028 47.795 199.028 47.9198V48.282C199.028 48.4068 198.926 48.508 198.802 48.508Z" fill="#FFBE40"/>
<path d="M203.239 48.0119C203.114 48.0119 203.013 47.9107 203.013 47.7859V47.4237C203.013 47.2989 203.114 47.1978 203.239 47.1978C203.364 47.1978 203.465 47.2989 203.465 47.4237V47.7859C203.465 47.9107 203.364 48.0119 203.239 48.0119Z" fill="#FF9F40"/>
<path d="M199.327 47.4694C199.203 47.4694 199.101 47.3683 199.101 47.2435V46.8813C199.101 46.7565 199.203 46.6553 199.327 46.6553C199.452 46.6553 199.553 46.7565 199.553 46.8813V47.2434C199.553 47.3683 199.452 47.4694 199.327 47.4694Z" fill="#FFBE40"/>
<path d="M201.147 51.8738C201.104 51.8237 201.041 51.7949 200.975 51.7949V54.138C201.359 54.138 201.698 53.9213 201.858 53.5724C202.018 53.2236 201.963 52.8257 201.713 52.5342L201.147 51.8738Z" fill="#FFBE40"/>
</g>
</g>
<g filter="url(#filter2_f_262_16132)">
<rect x="360" y="197" width="360" height="84" transform="rotate(-180 360 197)" fill="url(#paint0_linear_262_16132)"/>
</g>
<g opacity="0.2" filter="url(#filter3_d_262_16132)">
<circle cx="307.45" cy="67.45" r="33.45" fill="white"/>
</g>
<circle opacity="0.4" cx="307.45" cy="67.4503" r="24.0895" fill="white"/>
<g clip-path="url(#clip5_262_16132)">
<path d="M307.45 54.7002C302.191 54.7002 297.912 58.9784 297.912 64.2378C297.912 65.9511 298.719 68.1126 300.373 70.8469C301.747 73.118 303.451 75.3741 304.95 77.3613C305.642 78.2777 306.295 79.1443 306.798 79.8615C306.947 80.0757 307.191 80.2002 307.45 80.2002C307.709 80.2002 307.953 80.0757 308.102 79.8615C308.605 79.1443 309.258 78.2777 309.95 77.3613C311.449 75.3741 313.148 73.118 314.527 70.8469C316.181 68.1126 316.988 65.9511 316.988 64.2378C316.988 58.9784 312.709 54.7002 307.45 54.7002ZM307.45 68.6455C305.02 68.6455 303.042 66.6683 303.042 64.2378C303.042 61.8073 305.02 59.8301 307.45 59.8301C309.88 59.8301 311.858 61.8073 311.858 64.2378C311.858 66.6683 309.88 68.6455 307.45 68.6455Z" fill="#005DCA"/>
<circle cx="307.646" cy="64.1157" r="7.06154" fill="white"/>
<g clip-path="url(#clip6_262_16132)">
<g clip-path="url(#clip7_262_16132)">
<path d="M305.325 67.7505H309.879C310.33 67.7505 310.696 67.383 310.696 66.9315V63.4305L310.971 63.705C310.999 63.7335 311.038 63.7485 311.077 63.7485C311.115 63.7485 311.154 63.7335 311.182 63.705C311.241 63.6465 311.241 63.5505 311.182 63.492L308.179 60.489C307.861 60.171 307.342 60.171 307.023 60.489L304.551 62.9625L304.02 63.492C303.961 63.5505 303.961 63.6465 304.02 63.705C304.078 63.7635 304.174 63.7635 304.233 63.705L304.507 63.4305V66.9315C304.507 67.383 304.873 67.7505 305.325 67.7505ZM306.046 64.581C306.046 64.4985 306.114 64.431 306.196 64.431H307.026V63.6015C307.026 63.519 307.093 63.4515 307.176 63.4515H308.028C308.11 63.4515 308.178 63.519 308.178 63.6015V64.431H309.007C309.09 64.431 309.157 64.4985 309.157 64.581V65.433C309.157 65.5155 309.09 65.583 309.007 65.583H308.178V66.4125C308.178 66.495 308.11 66.5625 308.028 66.5625H307.176C307.093 66.5625 307.026 66.495 307.026 66.4125V65.583H306.196C306.114 65.583 306.046 65.5155 306.046 65.433V64.581Z" fill="#005DCA"/>
</g>
</g>
</g>
<g opacity="0.2" filter="url(#filter4_d_262_16132)">
<circle cx="120.92" cy="89.92" r="22.92" fill="white"/>
</g>
<circle opacity="0.4" cx="120.92" cy="89.9197" r="16.5062" fill="white"/>
<path d="M120.92 82.2798C116.99 82.2798 113.794 85.4763 113.794 89.406C113.794 90.6861 114.397 92.3011 115.632 94.3441C116.659 96.041 117.932 97.7267 119.052 99.2115C119.569 99.8962 120.057 100.544 120.432 101.08C120.544 101.24 120.726 101.333 120.92 101.333C121.113 101.333 121.296 101.24 121.407 101.08C121.783 100.544 122.271 99.8962 122.788 99.2115C123.908 97.7267 125.177 96.041 126.208 94.3441C127.443 92.3011 128.046 90.6861 128.046 89.406C128.046 85.4763 124.85 82.2798 120.92 82.2798ZM120.92 92.6993C119.104 92.6993 117.627 91.222 117.627 89.406C117.627 87.59 119.104 86.1127 120.92 86.1127C122.736 86.1127 124.213 87.59 124.213 89.406C124.213 91.222 122.736 92.6993 120.92 92.6993Z" fill="#00B75F"/>
<circle cx="121.067" cy="89.3147" r="5.27617" fill="white"/>
<g clip-path="url(#clip8_262_16132)">
<path d="M117.543 87.8148L117.543 90.5166L124.297 90.5166L124.297 87.8148L117.543 87.8148ZM123.96 89.1657C123.96 89.6631 123.556 90.0663 123.059 90.0663C122.562 90.0663 122.158 89.6631 122.158 89.1657C122.158 88.6683 122.562 88.2651 123.059 88.2651C123.556 88.2651 123.96 88.6683 123.96 89.1657ZM121.821 89.1657C121.821 89.6631 121.417 90.0663 120.92 90.0663C120.423 90.0663 120.019 89.6631 120.019 89.1657C120.019 88.6683 120.423 88.2651 120.92 88.2651C121.417 88.2651 121.821 88.6683 121.821 89.1657ZM119.682 89.1657C119.682 89.6631 119.278 90.0663 118.781 90.0663C118.284 90.0663 117.88 89.6631 117.88 89.1657C117.88 88.6683 118.284 88.2651 118.781 88.2651C119.278 88.2651 119.682 88.6683 119.682 89.1657Z" fill="#414042"/>
<path d="M120.92 88.2647C121.417 88.2647 121.821 88.6679 121.821 89.1653C121.821 89.6627 121.417 90.0659 120.92 90.0659C120.423 90.0659 120.019 89.6627 120.019 89.1653C120.019 88.6679 120.423 88.2647 120.92 88.2647Z" fill="#FF9811"/>
<path d="M118.781 88.2647C119.278 88.2647 119.682 88.6679 119.682 89.1653C119.682 89.6627 119.278 90.0659 118.781 90.0659C118.284 90.0659 117.88 89.6627 117.88 89.1653C117.88 88.6679 118.284 88.2647 118.781 88.2647Z" fill="#D80027"/>
<path d="M123.059 88.2647C123.556 88.2647 123.96 88.6679 123.96 89.1653C123.96 89.6627 123.556 90.0659 123.059 90.0659C122.562 90.0659 122.158 89.6627 122.158 89.1653C122.158 88.6679 122.562 88.2647 123.059 88.2647Z" fill="#4E901E"/>
<path d="M117.43 87.8145L117.43 90.5163C117.43 90.5785 117.481 90.6289 117.543 90.6289L124.297 90.6289C124.359 90.6289 124.41 90.5785 124.41 90.5163L124.41 87.8145C124.41 87.7523 124.359 87.7019 124.297 87.7019L117.543 87.7019C117.481 87.7019 117.43 87.7523 117.43 87.8145ZM124.185 87.9271L124.185 90.4038L117.655 90.4038L117.655 87.9271L124.185 87.9271Z" fill="#231F20"/>
<path d="M121.933 89.1655C121.933 88.6059 121.48 88.1523 120.92 88.1523C120.36 88.1523 119.907 88.6059 119.907 89.1655C119.907 89.7251 120.36 90.1787 120.92 90.1787C121.479 90.1781 121.933 89.7248 121.933 89.1655ZM120.132 89.1655C120.132 88.7303 120.485 88.3775 120.92 88.3775C121.355 88.3775 121.708 88.7303 121.708 89.1655C121.708 89.6008 121.355 89.9536 120.92 89.9536C120.485 89.9531 120.132 89.6005 120.132 89.1655Z" fill="#231F20"/>
<path d="M119.794 89.1655C119.794 88.6059 119.341 88.1523 118.781 88.1523C118.221 88.1523 117.768 88.6059 117.768 89.1655C117.768 89.7251 118.221 90.1787 118.781 90.1787C119.34 90.1781 119.794 89.7248 119.794 89.1655ZM117.993 89.1655C117.993 88.7303 118.346 88.3775 118.781 88.3775C119.216 88.3775 119.569 88.7303 119.569 89.1655C119.569 89.6008 119.216 89.9536 118.781 89.9536C118.346 89.9531 117.993 89.6005 117.993 89.1655Z" fill="#231F20"/>
<path d="M124.072 89.1655C124.072 88.6059 123.619 88.1523 123.059 88.1523C122.499 88.1523 122.046 88.6059 122.046 89.1655C122.046 89.7251 122.499 90.1787 123.059 90.1787C123.618 90.1781 124.072 89.7248 124.072 89.1655ZM122.271 89.1655C122.271 88.7303 122.624 88.3775 123.059 88.3775C123.494 88.3775 123.847 88.7303 123.847 89.1655C123.847 89.6008 123.494 89.9536 123.059 89.9536C122.624 89.9531 122.271 89.6005 122.271 89.1655Z" fill="#231F20"/>
</g>
</g>
<defs>
<pattern id="pattern0_262_16132" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_262_16132" transform="scale(0.000244141 0.000488281)"/>
</pattern>
<filter id="filter0_d_262_16132" x="13" y="9" width="54.6" height="54.6001" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feMorphology radius="4" operator="dilate" in="SourceAlpha" result="effect1_dropShadow_262_16132"/>
<feOffset dy="2"/>
<feGaussianBlur stdDeviation="1.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0.36371 0 0 0 0 0.790673 0 0 0 0.2 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_262_16132"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_262_16132" result="shape"/>
</filter>
<filter id="filter1_d_262_16132" x="166" y="19" width="69.8" height="69.7998" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feMorphology radius="4" operator="dilate" in="SourceAlpha" result="effect1_dropShadow_262_16132"/>
<feOffset dy="2"/>
<feGaussianBlur stdDeviation="1.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0.36371 0 0 0 0 0.790673 0 0 0 0.2 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_262_16132"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_262_16132" result="shape"/>
</filter>
<filter id="filter2_f_262_16132" x="-4" y="109" width="368" height="92" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="2" result="effect1_foregroundBlur_262_16132"/>
</filter>
<filter id="filter3_d_262_16132" x="263.5" y="26.5" width="87.9" height="87.8999" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feMorphology radius="6" operator="dilate" in="SourceAlpha" result="effect1_dropShadow_262_16132"/>
<feOffset dy="3"/>
<feGaussianBlur stdDeviation="2.25"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0.36371 0 0 0 0 0.790673 0 0 0 0.2 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_262_16132"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_262_16132" result="shape"/>
</filter>
<filter id="filter4_d_262_16132" x="89.6" y="61" width="62.64" height="62.6398" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feMorphology radius="4.8" operator="dilate" in="SourceAlpha" result="effect1_dropShadow_262_16132"/>
<feOffset dy="2.4"/>
<feGaussianBlur stdDeviation="1.8"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0.36371 0 0 0 0 0.790673 0 0 0 0.2 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_262_16132"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_262_16132" result="shape"/>
</filter>
<linearGradient id="paint0_linear_262_16132" x1="545.688" y1="393.8" x2="545.688" y2="96.2" gradientUnits="userSpaceOnUse">
<stop offset="0.345" stop-color="white" stop-opacity="0"/>
<stop offset="0.63" stop-color="white"/>
</linearGradient>
<clipPath id="clip0_262_16132">
<rect width="17" height="17" fill="white" transform="translate(31.8 27.1997)"/>
</clipPath>
<clipPath id="clip1_262_16132">
<rect width="6.01538" height="6.01538" fill="white" transform="translate(37.2923 30.3384)"/>
</clipPath>
<clipPath id="clip2_262_16132">
<rect width="6.01538" height="6.01538" fill="white" transform="translate(37.2923 30.3384)"/>
</clipPath>
<clipPath id="clip3_262_16132">
<rect width="21.8" height="21.8" fill="white" transform="translate(190 42.3999)"/>
</clipPath>
<clipPath id="clip4_262_16132">
<rect width="7.71385" height="7.71385" fill="white" transform="translate(197.043 46.4243)"/>
</clipPath>
<clipPath id="clip5_262_16132">
<rect width="25.5" height="25.5" fill="white" transform="translate(294.7 54.7002)"/>
</clipPath>
<clipPath id="clip6_262_16132">
<rect width="9.02308" height="9.02308" fill="white" transform="translate(302.938 59.4077)"/>
</clipPath>
<clipPath id="clip7_262_16132">
<rect width="9" height="9" fill="white" transform="translate(303.1 59.5005)"/>
</clipPath>
<clipPath id="clip8_262_16132">
<rect width="6.97975" height="6.97975" fill="white" transform="translate(117.43 92.6553) rotate(-90)"/>
</clipPath>
<image id="image0_262_16132" width="4096" height="2048" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAEAAAAAgACAYAAACmkva+AAAAAXNSR0IArs4c6QAAIABJREFUeF7svQdzHEeWLXzaoT0aoLeiDK2o0cxIY3bf+/a999M3dnY2dsxqjBxFUSIpegvTDkA3ur443SixUMiqvFWV5dCVEQjNsLPS3PT3nntu6ae3loVjkkolYL0FtFeOdujpJrAfsKenOsBKBaiUgwtosg883w7+neSLehU40z2ac3sH2BpLSjicp1xalFerHP320Ubw8pL6gu2+0AM47pI03AXejiQ548nDdrLNZ7vyObU/Aziug12zbapWFu1ge/zScA94O4xe93xtNoF2/XBZM2uxTthPU4nr/0TbvzTueptj83I11YcslLPaAHrNwy3h/sL5qEpci5K9cncKvB4AHPu0k91ezhl3X4O07dkWMDU4h4PUbSIvx3q1CUi20jz0lf24sKbf3yg77q3cC9K6CXUP1plE9o83Ze3kvG6tAGuu9eueK+wz1+GrAcA7y3FOPINOtBZyUSXuSy/70SSg2gOTukNJ70PSORRNEsXXKglcFO5JXnOGe4VuTbPeN0NgtHf8xoBnNGWg2ytf9IG96fHrf9ge8a6/UtV/ndRepW/J4RySOz2/2Bj53+mbNeBk+/CbMe3zn3Oa9y93erYNTEOeydLz328c+CZ7PVy8E53JxDmpG3/qI6jn0KV/zCxsbOl2A/9SzrWB6yuAn5rnqwHweqJrTfK/f9YDVh0N354BX2yp21FtWLiyUsL5CiAQragzFMl3O8DrEHonUQU+mcpl4HLPwgeu02BiAd+PgJcH59/vekDLIaM3+8CXEXRzV5rAlca7+dK3gDtDYBhgfnB9dpsWrtRKWA85fbk13N0DXhjQz9hivtoGLq68O193LODv28BORt62jaaFmyul+Zx3r1fK48c94Nkomm6hUgJu94ATjnHZ4xjvAG89dB9R53Lev+fb6vKahQ+1NzP/nj7dWrxvk9INcR126urzly3lGcg25TVJ78te/aNOi/qePCS+izqCt4GuL9RxUu9tUietq9Prd95XaYdyJt5Xec89Tuny+tHejCcLPXFWE3U9TLZdR9XOPK0f03KW6DqebCa310v6x/OAerRzq/rc9jlFXQvfRCrdH/+dutW0dMv6XpjJQZmd73nr26lXpSxUiTZB6mWdiec/177XN2Za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 truncated
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.3 MiB

File diff suppressed because it is too large. Load diff
+875
View File
@@ -0,0 +1,875 @@
@import "tokens";
.flex{
display: flex;
}
.d-block{
display: block !important;
}
/* Body 스크롤 비활성화 */
.no-scroll {
overflow: hidden;
height: 100%;
}
/* Content 스크롤 활성화 */
.scrollable {
overflow-y: auto;
scroll-behavior: smooth; /* 부드러운 스크롤 */
-webkit-overflow-scrolling: touch; /* iOS 스크롤 동작 개선 */
}
.w-100{
width:100%;
}
.justify-end{
justify-content: end;
}
.gap-2{
gap: .5rem;
}
.btn-wrap .k-button{
min-width: 9.375rem !important;
}
.k-input-flat, .k-dropdownlist {
border-bottom: 1px solid #cdcdcd !important;
min-height: 2.1875rem;
}
.k-input-md .k-input-inner, .k-picker-md .k-input-inner{
max-height: 9.375rem;
width:100%;
border:none;
padding: $tb-figma-semantic-padding-metric-3
}
.wrap {
align-items: flex-start;
background-color: $tb-figma-primitive-color-light-gray-color-0-1;
display: flex;
flex-direction: column;
position: relative;
row-gap: $tb-figma-spacing-w-bspacing-0;
width: 100%;
height:100%;
}
.k-static{
position: static !important;
}
.wrap .alarm {
border : .0625rem solid $tb-figma-primitive-color-light-danger-color-50-1;
border-radius: $tb-figma-spacing-w-bspacing-3;
align-items: center;
box-sizing: border-box;
column-gap: $tb-figma-spacing-w-bspacing-2;
display: flex;
justify-content: center;
padding: $tb-figma-spacing-w-bspacing-3;
position: absolute;
right: 32px;
top: 82px;
}
.wrap .text {
font-weight: 700;
line-height: 150%;
text-align: center;
font-size: 1.2rem;
}
.wrap .Container {
align-items: flex-start;
align-self: stretch;
column-gap: $tb-figma-spacing-w-bspacing-0;
display: grid;
grid-template-columns: 90px 1fr;
height: 100%;
padding-bottom: 50px;
}
.wrap .Content {
align-items: flex-start;
align-self: stretch;
box-sizing: border-box;
display: flex;
flex: 1 0 0;
flex-direction: column;
padding: $tb-figma-spacing-w-bspacing-9 $tb-figma-spacing-w-bspacing-8;
row-gap: $tb-figma-spacing-w-bspacing-7;
}
.wrap .Section {
align-items: flex-start;
align-self: stretch;
display: flex;
flex-direction: column;
row-gap: $tb-figma-spacing-w-bspacing-4;
}
.wrap .tit-import{
color: $tb-figma-primitive-color-light-danger-color-60-1;
font-weight: 700;
line-height: 18px;
position: absolute;
right:0;
}
.wrap .frame-3465198-1 {
align-items: flex-start;
display: flex;
flex-direction: column;
row-gap: 2px;
}
.wrap .grid-area {
align-items: flex-start;
align-self: stretch;
background-color: $tb-figma-primitive-color-light-secondary-color-10-1;
background-image: none;
border-bottom-left-radius: $tb-figma-spacing-w-bspacing-4;
border-bottom-right-radius: $tb-figma-spacing-w-bspacing-4;
border-top-left-radius: $tb-figma-spacing-w-bspacing-4;
border-top-right-radius: $tb-figma-spacing-w-bspacing-4;
box-sizing: border-box;
display: flex;
flex-direction: column;
padding-bottom: $tb-figma-spacing-w-bspacing-6;
padding-left: $tb-figma-spacing-w-bspacing-7;
padding-right: $tb-figma-spacing-w-bspacing-7;
padding-top: $tb-figma-spacing-w-bspacing-8;
row-gap: $tb-figma-spacing-w-bspacing-5;
}
.ico-title-be{
width: .5rem !important;
height: 1.5rem !important;
}
.wrap .grid {
align-items: flex-start;
align-self: stretch;
background-image: none;
border-bottom-left-radius: $tb-figma-spacing-w-bspacing-3;
border-bottom-right-radius: $tb-figma-spacing-w-bspacing-3;
border-top-left-radius: $tb-figma-spacing-w-bspacing-3;
border-top-right-radius: $tb-figma-spacing-w-bspacing-3;
display: flex;
flex-direction: column;
min-height: 360px;
overflow: hidden;
row-gap: $tb-figma-spacing-kendo-spacing-0-1;
.k-grid.k-grid-md{
background-color: transparent;
border:none;
.k-grid-pager{
background: none;
border:none;
justify-content: center;
}
}
}
.wrap .header-row {
align-items: flex-start;
align-self: stretch;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
}
.wrap .header-cell-7 {
align-items: flex-start;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
height: 40px;
justify-content: center;
width: 100px;
}
.wrap .base-grid-header-cell-7 {
align-items: center;
align-self: stretch;
background-color: $tb-figma-primitive-color-light-graphic-color-50-2;
background-image: none;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-40-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
flex: 1 0 0;
height: 40px;
justify-content: center;
width: 100px;
}
.wrap .content-7 {
align-items: center;
column-gap: $tb-figma-spacing-kendo-spacing-1-2;
display: flex;
height: 28px;
min-height: 28px;
}
.wrap .text-21 {
color: $tb-figma-primitive-color-light-gray-color-5-1;
font-family: "Pretendard GOV";
font-feature-settings: "liga" off, "clig" off;
font-size: 13px;
font-weight: 700;
line-height: 28px;
text-align: center;
}
.wrap .header-cell-6 {
align-items: flex-start;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
flex: 1 0 0;
height: 40px;
justify-content: center;
}
.wrap .base-grid-header-cell-6 {
align-items: center;
align-self: stretch;
background-color: $tb-figma-primitive-color-light-graphic-color-50-2;
background-image: none;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-40-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
flex: 1 0 0;
height: 40px;
justify-content: center;
}
.wrap .content-6 {
align-items: center;
column-gap: $tb-figma-spacing-kendo-spacing-1-2;
display: flex;
height: 28px;
min-height: 28px;
}
.wrap .text-20 {
color: $tb-figma-primitive-color-light-gray-color-5-1;
font-family: "Pretendard GOV";
font-feature-settings: "liga" off, "clig" off;
font-size: 13px;
font-weight: 700;
line-height: 28px;
text-align: center;
}
.wrap .header-cell-5 {
align-items: flex-start;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
height: 40px;
justify-content: center;
width: 150px;
}
.wrap .base-grid-header-cell-5 {
align-items: center;
align-self: stretch;
background-color: $tb-figma-primitive-color-light-graphic-color-50-2;
background-image: none;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-40-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
flex: 1 0 0;
height: 40px;
justify-content: center;
width: 150px;
}
.wrap .content-5 {
align-items: center;
column-gap: $tb-figma-spacing-kendo-spacing-1-2;
display: flex;
height: 28px;
min-height: 28px;
}
.wrap .text-19 {
color: $tb-figma-primitive-color-light-gray-color-5-1;
font-family: "Pretendard GOV";
font-feature-settings: "liga" off, "clig" off;
font-size: 13px;
font-weight: 700;
line-height: 28px;
text-align: center;
}
.wrap .header-cell-4 {
align-items: flex-start;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
height: 40px;
justify-content: center;
width: 150px;
}
.wrap .base-grid-header-cell-4 {
align-items: center;
align-self: stretch;
background-color: $tb-figma-primitive-color-light-graphic-color-50-2;
background-image: none;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-40-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
flex: 1 0 0;
height: 40px;
justify-content: center;
width: 150px;
}
.wrap .content-4 {
align-items: center;
column-gap: $tb-figma-spacing-kendo-spacing-1-2;
display: flex;
height: 28px;
min-height: 28px;
}
.wrap .text-18 {
color: $tb-figma-primitive-color-light-gray-color-5-1;
font-family: "Pretendard GOV";
font-feature-settings: "liga" off, "clig" off;
font-size: 13px;
font-weight: 700;
line-height: 28px;
text-align: center;
}
.wrap .header-cell-3 {
align-items: flex-start;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
height: 40px;
justify-content: center;
width: 250px;
}
.wrap .base-grid-header-cell-3 {
align-items: center;
align-self: stretch;
background-color: $tb-figma-primitive-color-light-graphic-color-50-2;
background-image: none;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-40-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
flex: 1 0 0;
height: 40px;
justify-content: center;
width: 250px;
}
.wrap .content-3 {
align-items: center;
column-gap: $tb-figma-spacing-kendo-spacing-1-2;
display: flex;
height: 28px;
min-height: 28px;
}
.wrap .text-17 {
color: $tb-figma-primitive-color-light-gray-color-5-1;
font-family: "Pretendard GOV";
font-feature-settings: "liga" off, "clig" off;
font-size: 13px;
font-weight: 700;
line-height: 28px;
text-align: center;
}
.wrap .header-cell-2 {
align-items: flex-start;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
flex: 1 0 0;
height: 40px;
justify-content: center;
}
.wrap .base-grid-header-cell-2 {
align-items: center;
align-self: stretch;
background-color: $tb-figma-primitive-color-light-graphic-color-50-2;
background-image: none;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-40-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
flex: 1 0 0;
height: 40px;
justify-content: center;
}
.wrap .content-2 {
align-items: center;
column-gap: $tb-figma-spacing-kendo-spacing-1-2;
display: flex;
height: 28px;
min-height: 28px;
}
.wrap .text-16 {
color: $tb-figma-primitive-color-light-gray-color-5-1;
font-family: "Pretendard GOV";
font-feature-settings: "liga" off, "clig" off;
font-size: 13px;
font-weight: 700;
line-height: 28px;
text-align: center;
}
.wrap .header-cell-1 {
align-items: flex-start;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
height: 40px;
justify-content: center;
width: 170px;
}
.wrap .base-grid-header-cell-1 {
align-items: center;
align-self: stretch;
background-color: $tb-figma-primitive-color-light-graphic-color-50-2;
background-image: none;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-40-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
flex: 1 0 0;
height: 40px;
justify-content: center;
width: 170px;
}
.wrap .content-1 {
align-items: center;
column-gap: $tb-figma-spacing-kendo-spacing-1-2;
display: flex;
height: 28px;
min-height: 28px;
}
.wrap .text-15 {
color: $tb-figma-primitive-color-light-gray-color-5-1;
font-family: "Pretendard GOV";
font-feature-settings: "liga" off, "clig" off;
font-size: 13px;
font-weight: 700;
line-height: 28px;
text-align: center;
}
.wrap .header-cell {
align-items: flex-start;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
height: 40px;
justify-content: center;
width: 53px;
}
.wrap .base-grid-header-cell {
align-items: center;
align-self: stretch;
background-color: $tb-figma-primitive-color-light-graphic-color-50-2;
background-image: none;
border-bottom-left-radius: $tb-figma-border-radii-border-radius-null;
border-bottom-right-radius: $tb-figma-border-radii-border-radius-null;
border-right-color: $tb-figma-primitive-color-light-gray-color-40-1;
border-right-style: solid;
border-right-width: 1px;
border-top-left-radius: $tb-figma-border-radii-border-radius-null;
border-top-right-radius: $tb-figma-border-radii-border-radius-null;
box-sizing: border-box;
column-gap: $tb-figma-spacing-kendo-spacing-0-1;
display: flex;
height: 40px;
justify-content: center;
padding-left: $tb-figma-spacing-w-bspacing-5;
padding-right: $tb-figma-spacing-w-bspacing-5;
width: 53px;
}
.wrap .content {
align-items: center;
column-gap: $tb-figma-spacing-kendo-spacing-1-2;
display: flex;
height: 28px;
min-height: 28px;
}
.wrap .text-14 {
color: $tb-figma-primitive-color-light-gray-color-5-1;
font-family: "Pretendard GOV";
font-feature-settings: "liga" off, "clig" off;
font-size: 13px;
font-weight: 700;
line-height: 28px;
text-align: center;
}
.wrap .column-num {
align-items: flex-start;
column-gap: $tb-figma-spacing-w-bspacing-1;
display: flex;
}
.wrap .frame-3465173 {
align-items: flex-start;
column-gap: $tb-figma-spacing-w-bspacing-1;
display: flex;
}
.wrap .text-13 {
align-items: center;
box-sizing: border-box;
column-gap: 10px;
display: flex;
justify-content: center;
padding-left: 1px;
padding-right: 1px;
}
.wrap .caption-10 {
color: $tb-figma-primitive-color-light-gray-color-90-1;
font-family: "Pretendard GOV";
font-size: 13px;
font-weight: 400;
line-height: 150%;
text-align: center;
}
.wrap .text-12 {
align-items: center;
box-sizing: border-box;
column-gap: 10px;
display: flex;
justify-content: center;
padding-left: 1px;
padding-right: 1px;
}
.column-num .num {
color: $tb-figma-primitive-color-light-danger-color-50-1;
}
.k-radio{
width: 1.8rem !important;
height: 1.8rem !important;
}
.wrap .cont-area {
align-items: flex-start;
align-self: stretch;
border-bottom-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-bottom-left-radius: $tb-figma-spacing-w-bspacing-4;
border-bottom-right-radius: $tb-figma-spacing-w-bspacing-4;
border-bottom-style: solid;
border-bottom-width: 1px;
border-left-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-left-style: solid;
border-left-width: 1px;
border-right-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-right-style: solid;
border-right-width: 1px;
border-top-color: $tb-figma-primitive-color-light-gray-color-30-1;
border-top-left-radius: $tb-figma-spacing-w-bspacing-4;
border-top-right-radius: $tb-figma-spacing-w-bspacing-4;
border-top-style: solid;
border-top-width: 1px;
box-sizing: border-box;
display: flex;
flex-direction: column;
padding-bottom: $tb-figma-spacing-w-bspacing-6;
padding-left: $tb-figma-spacing-w-bspacing-7;
padding-right: $tb-figma-spacing-w-bspacing-7;
padding-top: $tb-figma-spacing-w-bspacing-8;
row-gap: $tb-figma-spacing-w-bspacing-5;
}
.wrap .form-sec {
align-items: flex-start;
align-self: stretch;
display: flex;
flex-direction: column;
row-gap: $tb-figma-spacing-w-bspacing-3;
}
.wrap .label {
color: $tb-figma-primitive-color-light-gray-color-70-1;
font-weight: 700;
}
.wrap .area-title {
position: relative;
width: 100%;
align-items: center;
column-gap: $tb-figma-spacing-w-bspacing-2;
display: flex;
}
.wrap .h-6-title {
color: $tb-figma-primitive-color-light-gray-color-100-1;
font-size: 21px;
font-weight: 700;
line-height: 150%;
text-align: center;
}
.wrap .title {
align-items: center;
align-self: stretch;
column-gap: $tb-figma-spacing-w-bspacing-4;
display: flex;
}
.wrap .h-5-title{
color: $tb-figma-primitive-color-light-gray-color-100-1;
font-size: 25px;
font-weight: 700;
line-height: 150%;
text-align: center;
}
.wrap .h-7-title {
align-items: center;
column-gap: 10px;
display: flex;
justify-content: center;
font-size: 2rem;
font-weight: 800;
color:$tb-figma-primitive-color-high-contrast-gray-color-50;
}
.wrap .head {
align-items: flex-start;
background-color: #fff;
border-bottom-left-radius: $tb-figma-spacing-w-bspacing-0;
border-bottom-right-radius: $tb-figma-spacing-w-bspacing-0;
border-top-left-radius: $tb-figma-spacing-w-bspacing-0;
border-top-right-radius: $tb-figma-spacing-w-bspacing-0;
display: flex;
justify-content: space-evenly;
width: 100%;
position: sticky;
top: 0;
z-index: 9;
}
.wrap .header {
@extend %tb-effects-figma-effects-shadow-y-12;
align-items: center;
border-bottom-left-radius: $tb-figma-spacing-w-bspacing-0;
border-bottom-right-radius: $tb-figma-spacing-w-bspacing-0;
border-top-left-radius: $tb-figma-spacing-w-bspacing-0;
border-top-right-radius: $tb-figma-spacing-w-bspacing-0;
box-sizing: border-box;
display: flex;
flex: 1 0 0;
justify-content: space-between;
padding-bottom: $tb-figma-spacing-w-bspacing-4;
padding-left: $tb-figma-spacing-w-bspacing-4;
padding-right: $tb-figma-spacing-w-bspacing-4;
padding-top: $tb-figma-spacing-w-bspacing-4;
width: 100%;
}
.wrap .user-info-container {
align-items: center;
column-gap: $tb-figma-spacing-w-bspacing-3;
display: flex;
}
.wrap .button-group {
align-items: center;
column-gap: $tb-figma-spacing-w-bspacing-3;
display: grid;
grid-template-columns: 1fr 1fr;
}
.wrap .text-2 {
align-items: center;
border-bottom-color: $tb-figma-primitive-color-light-gray-color-50-3;
border-bottom-left-radius: $tb-figma-semantic-radius-small-1-1;
border-bottom-right-radius: $tb-figma-semantic-radius-small-1-1;
border-bottom-style: solid;
border-bottom-width: 1px;
border-left-color: $tb-figma-primitive-color-light-gray-color-50-3;
border-left-style: solid;
border-left-width: 1px;
border-right-color: $tb-figma-primitive-color-light-gray-color-50-3;
border-right-style: solid;
border-right-width: 1px;
border-top-color: $tb-figma-primitive-color-light-gray-color-50-3;
border-top-left-radius: $tb-figma-semantic-radius-small-1-1;
border-top-right-radius: $tb-figma-semantic-radius-small-1-1;
border-top-style: solid;
border-top-width: 1px;
box-sizing: border-box;
column-gap: 10px;
display: flex;
justify-content: center;
max-width: 110px;
min-width: 100px;
padding-bottom: $tb-figma-spacing-w-bspacing-3;
padding-left: $tb-figma-spacing-w-bspacing-3;
padding-right: $tb-figma-spacing-w-bspacing-3;
padding-top: $tb-figma-spacing-w-bspacing-3;
}
.wrap .logout-text {
color: $tb-figma-primitive-color-light-gray-color-60-2;
font-size: 15px;
font-weight: 700;
line-height: 150%;
}
.wrap .text-1 {
align-items: center;
border-bottom-color: $tb-figma-primitive-color-light-gray-color-50-3;
border-bottom-left-radius: $tb-figma-semantic-radius-small-1-1;
border-bottom-right-radius: $tb-figma-semantic-radius-small-1-1;
border-bottom-style: solid;
border-bottom-width: 1px;
border-left-color: $tb-figma-primitive-color-light-gray-color-50-3;
border-left-style: solid;
border-left-width: 1px;
border-right-color: $tb-figma-primitive-color-light-gray-color-50-3;
border-right-style: solid;
border-right-width: 1px;
border-top-color: $tb-figma-primitive-color-light-gray-color-50-3;
border-top-left-radius: $tb-figma-semantic-radius-small-1-1;
border-top-right-radius: $tb-figma-semantic-radius-small-1-1;
border-top-style: solid;
border-top-width: 1px;
box-sizing: border-box;
column-gap: 10px;
display: flex;
justify-content: center;
max-width: 110px;
min-width: 100px;
padding-bottom: $tb-figma-spacing-w-bspacing-3;
padding-left: $tb-figma-spacing-w-bspacing-3;
padding-right: $tb-figma-spacing-w-bspacing-3;
padding-top: $tb-figma-spacing-w-bspacing-3;
}
.wrap .mobile-text {
color: $tb-figma-primitive-color-light-gray-color-60-2;
font-size: 15px;
font-weight: 700;
line-height: 150%;
}
.head-user{
display: flex;
align-items: center;
gap: $tb-figma-spacing-w-bspacing-2;
margin-right: $tb-figma-spacing-w-bspacing-4;
}
.wrap .text {
align-items: center;
border-radius: $tb-figma-spacing-w-bspacing-4;
box-sizing: border-box;
display: flex;
justify-content: center;
padding-left: $tb-figma-spacing-w-bspacing-2;
i{
color:var(--wb-color-light-point-50);
}
}
.wrap .text-group {
align-items: center;
column-gap: $tb-figma-spacing-w-bspacing-2;
display: flex;
}
.wrap .name {
color: $tb-figma-primitive-color-light-primary-color-50-4;
font-size: 15px;
font-weight: 700;
line-height: 150%;
}
.wrap .department {
color: $tb-figma-primitive-color-light-gray-color-95-1;
font-size: 15px;
font-weight: 700;
line-height: 150%;
}
.wrap .proicons-person-circle {
height: 32px;
overflow: hidden;
width: 32px;
}
.wrap .logo-container {
height: 49px;
position: relative;
width: 341px;
}
.wrap .mask-group {
flex-shrink: 0;
height: 47px;
left: 0px;
position: absolute;
top: 2px;
width: 341px;
}
.wrap .image {
flex-shrink: 0;
height: 44px;
left: 6px;
position: absolute;
top: 0px;
width: 335px;
}
.wrap .system-name {
color: $tb-figma-primitive-color-light-primary-color-95-2;
font-size: 20px;
font-weight: 700;
left: 60px;
line-height: 150%;
position: absolute;
top: 0px;
}
+929
View File
@@ -0,0 +1,929 @@
// Compatible with @progress/kendo-theme-default v.10.0.0
$tb-figma-primitive-number-metric-5: 8px;
$tb-figma-primitive-number-metric-3: 4px;
$tb-kendo-input-border-width: 1px;
$tb-figma-mode-border-width-static-medium: 2px;
$tb-figma-mode-border-width-static-regular: 1px;
$tb-figma-mode-border-width-variable-medium: 3px;
$tb-figma-mode-border-width-variable-regular: 2px;
$tb-figma-mode-shadow-blur-3: 16px;
$tb-figma-mode-shadow-blur-4: 24px;
$tb-figma-mode-shadow-y-3: 8px;
$tb-figma-mode-shadow-y-4: 16px;
$tb-figma-primitive-number-metric-0: 0px;
$tb-figma-primitive-number-metric-1: 1px;
$tb-figma-primitive-number-metric-10: 24px;
$tb-figma-primitive-number-metric-11: 28px;
$tb-figma-primitive-number-metric-12: 32px;
$tb-figma-primitive-number-metric-13: 36px;
$tb-figma-primitive-number-metric-14: 40px;
$tb-figma-primitive-number-metric-15: 44px;
$tb-figma-primitive-number-metric-16: 48px;
$tb-figma-primitive-number-metric-17: 56px;
$tb-figma-primitive-number-metric-18: 64px;
$tb-figma-primitive-number-metric-19: 72px;
$tb-figma-primitive-number-metric-2: 2px;
$tb-figma-primitive-number-metric-20: 80px;
$tb-figma-primitive-number-metric-21: 96px;
$tb-figma-primitive-number-metric-4: 6px;
$tb-figma-primitive-number-metric-6: 10px;
$tb-figma-primitive-number-metric-7: 12px;
$tb-figma-primitive-number-metric-8: 16px;
$tb-figma-primitive-number-metric-9: 20px;
$tb-figma-primitive-number-max: 1000px;
$tb-figma-primitive-typo-letter-spacing-metric-0: 0px;
$tb-figma-primitive-typo-letter-spacing-metric-1: 1px;
$tb-figma-responsive-font-size-body-large: 19px;
$tb-figma-responsive-font-size-body-medium: 17px;
$tb-figma-responsive-font-size-body-small: 15px;
$tb-figma-responsive-font-size-body-xsmall: 13px;
$tb-figma-responsive-font-size-display-large: 60px;
$tb-figma-responsive-font-size-display-medium: 44px;
$tb-figma-responsive-font-size-display-small: 36px;
$tb-figma-responsive-font-size-heading-large: 32px;
$tb-figma-responsive-font-size-heading-medium: 24px;
$tb-figma-responsive-font-size-heading-small: 19px;
$tb-figma-responsive-font-size-heading-xlarge: 40px;
$tb-figma-responsive-font-size-heading-xsmall: 17px;
$tb-figma-responsive-font-size-heading-xxsmall: 15px;
$tb-figma-responsive-font-size-label-large: 19px;
$tb-figma-responsive-font-size-label-medium: 17px;
$tb-figma-responsive-font-size-label-small: 15px;
$tb-figma-responsive-font-size-label-xsmall: 13px;
$tb-figma-responsive-font-size-navigation-depth-medium: 17px;
$tb-figma-responsive-font-size-navigation-depth-medium-bold: 17px;
$tb-figma-responsive-font-size-navigation-depth-small: 15px;
$tb-figma-responsive-font-size-navigation-depth-small-bold: 15px;
$tb-figma-responsive-font-size-navigation-title-medium: 24px;
$tb-figma-responsive-font-size-navigation-title-small: 19px;
$tb-figma-border-radii-border-radius-full: 9999px;
$tb-figma-spacing-kendo-spacing-1-1: 4px;
$tb-figma-spacing-kendo-spacing-0-1: 0px;
$tb-figma-primitive-number-metric-3-1: 4px;
$tb-figma-primitive-number-metric-5-1: 8px;
$tb-figma-size-space-metric-100: 4px;
$tb-figma-spacing-kendo-spacing-1-2: 12px;
$tb-figma-spacing-kendo-spacing-15: 6px;
$tb-figma-spacing-kendo-spacing-2-1: 8px;
$tb-figma-spacing-kendo-spacing-2-2: 8px;
$tb-figma-spacing-kendo-spacing-7: 28px;
$tb-figma-spacing-kendo-spacing-0-2: 0px;
$tb-figma-spacing-w-bspacing-0: 0px;
$tb-figma-spacing-w-bspacing-1: 2px;
$tb-figma-spacing-w-bspacing-11: 56px;
$tb-figma-spacing-w-bspacing-2: 4px;
$tb-figma-spacing-w-bspacing-3: 8px;
$tb-figma-spacing-w-bspacing-4: 12px;
$tb-figma-spacing-w-bspacing-5: 16px;
$tb-figma-spacing-w-bspacing-6: 20px;
$tb-figma-spacing-w-bspacing-7: 24px;
$tb-figma-spacing-w-bspacing-8: 32px;
$tb-figma-spacing-w-bspacing-9: 40px;
$tb-figma-typography-letter-spacing-null-6: 1.25px;
$tb-figma-semantic-padding-metric-3: $tb-figma-primitive-number-metric-5;
$tb-kendo-button-padding-x: $tb-figma-semantic-padding-metric-3;
$tb-kendo-button-padding-y: $tb-figma-primitive-number-metric-3;
$tb-figma-responsive-gap-layout-breadcrumb-h-1: $tb-figma-primitive-number-metric-14;
$tb-figma-responsive-gap-layout-contents-footer: $tb-figma-primitive-number-metric-18;
$tb-figma-responsive-gap-layout-contents-right: $tb-figma-primitive-number-metric-14;
$tb-figma-responsive-gap-layout-h-1-h-2: $tb-figma-primitive-number-metric-16;
$tb-figma-responsive-gap-layout-h-2-h-2: $tb-figma-primitive-number-metric-20;
$tb-figma-responsive-gap-layout-h-2-h-3: $tb-figma-primitive-number-metric-14;
$tb-figma-responsive-gap-layout-h-3-h-3: $tb-figma-primitive-number-metric-18;
$tb-figma-responsive-gap-layout-h-3-h-4: $tb-figma-primitive-number-metric-10;
$tb-figma-responsive-gap-layout-h-4-h-4: $tb-figma-primitive-number-metric-14;
$tb-figma-responsive-gap-layout-h-4-h-5: $tb-figma-primitive-number-metric-8;
$tb-figma-responsive-gap-layout-h-5-h-5: $tb-figma-primitive-number-metric-12;
$tb-figma-responsive-gap-layout-header-breadcrumb: $tb-figma-primitive-number-metric-10;
$tb-figma-responsive-gap-layout-image-text-large: $tb-figma-primitive-number-metric-12;
$tb-figma-responsive-gap-layout-image-text-medium: $tb-figma-primitive-number-metric-10;
$tb-figma-responsive-gap-layout-image-text-small: $tb-figma-primitive-number-metric-9;
$tb-figma-responsive-gap-layout-left-contents: $tb-figma-primitive-number-metric-18;
$tb-figma-responsive-gap-layout-text-text-large: $tb-figma-primitive-number-metric-9;
$tb-figma-responsive-gap-layout-text-text-medium: $tb-figma-primitive-number-metric-8;
$tb-figma-responsive-gap-layout-text-text-small: $tb-figma-primitive-number-metric-7;
$tb-figma-responsive-gap-layout-title-body-large: $tb-figma-primitive-number-metric-10;
$tb-figma-responsive-gap-layout-title-body-medium: $tb-figma-primitive-number-metric-9;
$tb-figma-responsive-gap-layout-title-body-small: $tb-figma-primitive-number-metric-8;
$tb-figma-responsive-padding-card-large: $tb-figma-primitive-number-metric-14;
$tb-figma-responsive-padding-card-medium: $tb-figma-primitive-number-metric-12;
$tb-figma-responsive-padding-card-small: $tb-figma-primitive-number-metric-10;
$tb-figma-responsive-padding-card-xsmall: $tb-figma-primitive-number-metric-8;
$tb-figma-semantic-gap-metric-1: $tb-figma-primitive-number-metric-2;
$tb-figma-semantic-gap-metric-10: $tb-figma-primitive-number-metric-16;
$tb-figma-semantic-gap-metric-11: $tb-figma-primitive-number-metric-18;
$tb-figma-semantic-gap-metric-12: $tb-figma-primitive-number-metric-20;
$tb-figma-semantic-gap-metric-2: $tb-figma-primitive-number-metric-3;
$tb-figma-semantic-gap-metric-3: $tb-figma-primitive-number-metric-5;
$tb-figma-semantic-gap-metric-4: $tb-figma-primitive-number-metric-7;
$tb-figma-semantic-gap-metric-5: $tb-figma-primitive-number-metric-8;
$tb-figma-semantic-gap-metric-6: $tb-figma-primitive-number-metric-9;
$tb-figma-semantic-gap-metric-7: $tb-figma-primitive-number-metric-10;
$tb-figma-semantic-gap-metric-8: $tb-figma-primitive-number-metric-12;
$tb-figma-semantic-gap-metric-9: $tb-figma-primitive-number-metric-14;
$tb-figma-semantic-padding-metric-1: $tb-figma-primitive-number-metric-2;
$tb-figma-semantic-padding-metric-10: $tb-figma-primitive-number-metric-14;
$tb-figma-semantic-padding-metric-2: $tb-figma-primitive-number-metric-3;
$tb-figma-semantic-padding-metric-4: $tb-figma-primitive-number-metric-6;
$tb-figma-semantic-padding-metric-5: $tb-figma-primitive-number-metric-7;
$tb-figma-semantic-padding-metric-6: $tb-figma-primitive-number-metric-8;
$tb-figma-semantic-padding-metric-7: $tb-figma-primitive-number-metric-9;
$tb-figma-semantic-padding-metric-8: $tb-figma-primitive-number-metric-10;
$tb-figma-semantic-padding-metric-9: $tb-figma-primitive-number-metric-12;
$tb-figma-semantic-radius-large-1: $tb-figma-primitive-number-metric-6;
$tb-figma-semantic-radius-large-2: $tb-figma-primitive-number-metric-6;
$tb-figma-semantic-radius-max: $tb-figma-primitive-number-max;
$tb-figma-semantic-radius-medium-1: $tb-figma-primitive-number-metric-4;
$tb-figma-semantic-radius-medium-2: $tb-figma-primitive-number-metric-4;
$tb-figma-semantic-radius-medium-3: $tb-figma-primitive-number-metric-5;
$tb-figma-semantic-radius-medium-4: $tb-figma-primitive-number-metric-5;
$tb-figma-semantic-radius-small-1: $tb-figma-primitive-number-metric-3;
$tb-figma-semantic-radius-small-2: $tb-figma-primitive-number-metric-3;
$tb-figma-semantic-radius-small-3: $tb-figma-primitive-number-metric-3;
$tb-figma-semantic-radius-xlarge-1: $tb-figma-primitive-number-metric-7;
$tb-figma-semantic-radius-xlarge-2: $tb-figma-primitive-number-metric-7;
$tb-figma-semantic-radius-xsmall-1: $tb-figma-primitive-number-metric-2;
$tb-figma-semantic-radius-xsmall-2: $tb-figma-primitive-number-metric-2;
$tb-figma-semantic-radius-xsmall-3: $tb-figma-primitive-number-metric-2;
$tb-figma-semantic-size-height-metric-1: $tb-figma-primitive-number-metric-5;
$tb-figma-semantic-size-height-metric-10: $tb-figma-primitive-number-metric-19;
$tb-figma-semantic-size-height-metric-11: $tb-figma-primitive-number-metric-20;
$tb-figma-semantic-size-height-metric-2: $tb-figma-primitive-number-metric-8;
$tb-figma-semantic-size-height-metric-3: $tb-figma-primitive-number-metric-9;
$tb-figma-semantic-size-height-metric-4: $tb-figma-primitive-number-metric-10;
$tb-figma-semantic-size-height-metric-5: $tb-figma-primitive-number-metric-12;
$tb-figma-semantic-size-height-metric-6: $tb-figma-primitive-number-metric-14;
$tb-figma-semantic-size-height-metric-7: $tb-figma-primitive-number-metric-16;
$tb-figma-semantic-size-height-metric-8: $tb-figma-primitive-number-metric-17;
$tb-figma-semantic-size-height-metric-9: $tb-figma-primitive-number-metric-18;
$tb-figma-border-radii-border-radius-md: $tb-figma-spacing-kendo-spacing-1-1;
$tb-figma-border-radii-border-radius-null: $tb-figma-spacing-kendo-spacing-0-1;
$tb-figma-semantic-radius-medium-3-1: $tb-figma-primitive-number-metric-5-1;
$tb-figma-semantic-radius-small-1-1: $tb-figma-primitive-number-metric-3-1;
$tb-on-app-surface: #3d3d3d;
$tb-surface-alt: #ffffff;
$tb-border: rgba(0, 0, 0, 0.08);
$tb-figma-primitive-color-high-contrast-primary-color-50: #256ef4;
$tb-figma-primitive-color-high-contrast-primary-color-60: #0b50d0;
$tb-figma-primitive-color-high-contrast-gray-color-5: #f4f5f6;
$tb-figma-primitive-color-high-contrast-gray-color-90: #1e2124;
$tb-on-primary: #ffffff;
$tb-error: #f31700;
$tb-figma-primitive-color-high-contrast-gray-color-50: #6d7882;
$tb-base: #f5f5f5;
$tb-figma-primitive-color-light-primary-color-10: #d8e5fd;
$tb-figma-primitive-color-light-gray-color-50: #6d7882;
$tb-figma-primitive-color-high-contrast-gray-color-30: #b1b8be;
$tb-figma-primitive-color-high-contrast-primary-color-70: #083891;
$tb-app-surface: #ffffff;
$tb-kendo-scrollview-navigation-color: white;
$tb-figma-primitive-color-light-gray-color-20: #cdd1d5;
$tb-figma-primitive-color-light-alpha-white-0: rgba(255, 255, 255, 0);
$tb-figma-primitive-color-light-primary-color-50: #256ef4;
$tb-figma-primitive-color-light-primary-color-5: #ecf2fe;
$tb-figma-primitive-color-light-secondary-color-70: #063a74;
$tb-figma-primitive-color-light-secondary-color-5: #eef2f7;
$tb-figma-primitive-color-light-gray-color-0: #ffffff;
$tb-figma-primitive-color-light-secondary-color-10: #d6e0eb;
$tb-figma-primitive-color-high-contrast-alpha-white-10: rgba(255, 255, 255, 0.1);
$tb-figma-primitive-color-light-alpha-white-100: #ffffff;
$tb-figma-primitive-color-high-contrast-alpha-white-25: rgba(255, 255, 255, 0.25);
$tb-figma-primitive-color-light-alpha-white-50: rgba(255, 255, 255, 0.5);
$tb-figma-primitive-color-light-alpha-white-75: rgba(255, 255, 255, 0.75);
$tb-figma-primitive-color-light-alpha-black-0: rgba(0, 0, 0, 0);
$tb-figma-primitive-color-light-alpha-black-10: rgba(0, 0, 0, 0.1);
$tb-figma-primitive-color-light-alpha-black-100: #000000;
$tb-figma-primitive-color-light-alpha-black-25: rgba(0, 0, 0, 0.25);
$tb-figma-primitive-color-light-alpha-black-50: rgba(0, 0, 0, 0.5);
$tb-figma-primitive-color-light-alpha-black-75: rgba(0, 0, 0, 0.75);
$tb-figma-mode-color-alpha-shadow-1: rgba(0, 0, 0, 0.12);
$tb-figma-mode-color-alpha-shadow-2: rgba(0, 0, 0, 0.2);
$tb-figma-mode-color-alpha-shadow-3: rgba(0, 0, 0, 0.4);
$tb-figma-primitive-color-light-gray-color-10: #e6e8ea;
$tb-figma-primitive-color-light-gray-color-5: #f4f5f6;
$tb-figma-primitive-color-light-gray-color-90: #1e2124;
$tb-figma-primitive-color-light-danger-color-50: #de3412;
$tb-figma-primitive-color-light-danger-color-10: #fcdfd9;
$tb-figma-primitive-color-light-gray-color-30: #b1b8be;
$tb-figma-primitive-color-light-gray-color-60: #58616a;
$tb-figma-primitive-color-light-information-color-50: #0b78cb;
$tb-figma-primitive-color-light-information-color-10: #d3ebfd;
$tb-figma-primitive-color-light-point-color-50: #d63d4a;
$tb-figma-primitive-color-light-point-color-10: #f5d6d9;
$tb-figma-primitive-color-light-success-color-50: #228738;
$tb-figma-primitive-color-light-success-color-10: #d8eedd;
$tb-figma-primitive-color-light-warning-color-50: #9e6a00;
$tb-figma-primitive-color-light-warning-color-10: #ffe0a3;
$tb-figma-primitive-color-light-primary-color-60: #0b50d0;
$tb-figma-primitive-color-light-primary-color-70: #083891;
$tb-figma-primitive-color-light-primary-color-20: #b1cefb;
$tb-figma-primitive-color-light-gray-color-40: #8a949e;
$tb-figma-primitive-color-light-danger-color-5: #fdefec;
$tb-figma-primitive-color-light-information-color-5: #e7f4fe;
$tb-figma-mode-color-element-logo-text: #ffffff;
$tb-figma-primitive-color-light-point-color-5: #fbeff0;
$tb-figma-primitive-color-light-success-color-5: #eaf6ec;
$tb-figma-primitive-color-light-warning-color-30: #ffb114;
$tb-figma-primitive-color-light-warning-color-5: #fff3db;
$tb-figma-primitive-color-light-graphic-color-50: #61758f;
$tb-figma-primitive-color-light-graphic-color-70: #39506c;
$tb-figma-primitive-color-light-graphic-color-90: #223a58;
$tb-figma-primitive-color-light-graphic-color-30: #98acc5;
$tb-figma-primitive-color-light-graphic-color-10: #e5ecf9;
$tb-figma-primitive-color-high-contrast-point-color-20: #ebadb2;
$tb-figma-primitive-color-high-contrast-point-color-40: #d65c66;
$tb-figma-primitive-color-high-contrast-point-color-70: #7a1f26;
$tb-figma-primitive-color-light-gray-color-80: #33363d;
$tb-figma-primitive-color-light-gray-color-70: #464c53;
$tb-figma-primitive-color-light-secondary-color-80: #052b57;
$tb-figma-mode-color-link-visited: #c49ff9;
$tb-figma-primitive-color-light-gray-color-95: #131416;
$tb-figma-primitive-color-light-danger-color-60: #bd2c0f;
$tb-figma-primitive-color-light-information-color-60: #096ab3;
$tb-figma-primitive-color-light-point-color-60: #ab2b36;
$tb-figma-primitive-color-light-success-color-60: #267337;
$tb-figma-primitive-color-light-warning-color-60: #8a5c00;
$tb-figma-primitive-color-high-contrast-alpha-black-0: rgba(0, 0, 0, 0);
$tb-figma-primitive-color-high-contrast-alpha-black-10: rgba(0, 0, 0, 0.1);
$tb-figma-primitive-color-high-contrast-alpha-black-100: #000000;
$tb-figma-primitive-color-high-contrast-alpha-black-25: rgba(0, 0, 0, 0.25);
$tb-figma-primitive-color-high-contrast-alpha-black-50: rgba(0, 0, 0, 0.5);
$tb-figma-primitive-color-high-contrast-alpha-black-75: rgba(0, 0, 0, 0.75);
$tb-figma-primitive-color-high-contrast-alpha-white-0: rgba(255, 255, 255, 0);
$tb-figma-primitive-color-high-contrast-alpha-white-100: #ffffff;
$tb-figma-primitive-color-high-contrast-alpha-white-50: rgba(255, 255, 255, 0.5);
$tb-figma-primitive-color-high-contrast-alpha-white-75: rgba(255, 255, 255, 0.75);
$tb-figma-primitive-color-high-contrast-danger-color-10: #fcdfd9;
$tb-figma-primitive-color-high-contrast-danger-color-20: #f7afa1;
$tb-figma-primitive-color-high-contrast-danger-color-30: #f48771;
$tb-figma-primitive-color-high-contrast-danger-color-40: #f05f42;
$tb-figma-primitive-color-high-contrast-danger-color-5: #fdefec;
$tb-figma-primitive-color-high-contrast-danger-color-50: #de3412;
$tb-figma-primitive-color-high-contrast-danger-color-60: #bd2c0f;
$tb-figma-primitive-color-high-contrast-danger-color-70: #8a240f;
$tb-figma-primitive-color-high-contrast-danger-color-80: #5c180a;
$tb-figma-primitive-color-high-contrast-danger-color-90: #390d05;
$tb-figma-primitive-color-high-contrast-danger-color-95: #260903;
$tb-figma-primitive-color-high-contrast-graphic-color-10: #e5ecf9;
$tb-figma-primitive-color-high-contrast-graphic-color-30: #98acc5;
$tb-figma-primitive-color-high-contrast-graphic-color-50: #61758f;
$tb-figma-primitive-color-high-contrast-graphic-color-70: #39506c;
$tb-figma-primitive-color-high-contrast-graphic-color-90: #223a58;
$tb-figma-primitive-color-high-contrast-gray-color-0: #ffffff;
$tb-figma-primitive-color-high-contrast-gray-color-10: #e6e8ea;
$tb-figma-primitive-color-high-contrast-gray-color-100: #000000;
$tb-figma-primitive-color-high-contrast-gray-color-20: #cdd1d5;
$tb-figma-primitive-color-high-contrast-gray-color-40: #8a949e;
$tb-figma-primitive-color-high-contrast-gray-color-60: #58616a;
$tb-figma-primitive-color-high-contrast-gray-color-70: #464c53;
$tb-figma-primitive-color-high-contrast-gray-color-80: #33363d;
$tb-figma-primitive-color-high-contrast-gray-color-95: #131416;
$tb-figma-primitive-color-high-contrast-information-color-10: #d3ebfd;
$tb-figma-primitive-color-high-contrast-information-color-20: #9ed2fa;
$tb-figma-primitive-color-high-contrast-information-color-30: #5fb5f7;
$tb-figma-primitive-color-high-contrast-information-color-40: #2098f3;
$tb-figma-primitive-color-high-contrast-information-color-5: #e7f4fe;
$tb-figma-primitive-color-high-contrast-information-color-50: #0b78cb;
$tb-figma-primitive-color-high-contrast-information-color-60: #096ab3;
$tb-figma-primitive-color-high-contrast-information-color-70: #085691;
$tb-figma-primitive-color-high-contrast-information-color-80: #053961;
$tb-figma-primitive-color-high-contrast-information-color-90: #03253f;
$tb-figma-primitive-color-high-contrast-information-color-95: #021a2c;
$tb-figma-primitive-color-high-contrast-point-color-10: #f5d6d9;
$tb-figma-primitive-color-high-contrast-point-color-30: #e0858c;
$tb-figma-primitive-color-high-contrast-point-color-5: #fbeff0;
$tb-figma-primitive-color-high-contrast-point-color-50: #d63d4a;
$tb-figma-primitive-color-high-contrast-point-color-60: #ab2b36;
$tb-figma-primitive-color-high-contrast-point-color-80: #521419;
$tb-figma-primitive-color-high-contrast-point-color-90: #310c0f;
$tb-figma-primitive-color-high-contrast-point-color-95: #21080a;
$tb-figma-primitive-color-high-contrast-primary-color-10: #d8e5fd;
$tb-figma-primitive-color-high-contrast-primary-color-20: #b1cefb;
$tb-figma-primitive-color-high-contrast-primary-color-30: #86aff9;
$tb-figma-primitive-color-high-contrast-primary-color-40: #4c87f6;
$tb-figma-primitive-color-high-contrast-primary-color-5: #ecf2fe;
$tb-figma-primitive-color-high-contrast-primary-color-80: #052561;
$tb-figma-primitive-color-high-contrast-primary-color-90: #03163a;
$tb-figma-primitive-color-high-contrast-primary-color-95: #020f27;
$tb-figma-primitive-color-high-contrast-secondary-color-10: #d5ebf1;
$tb-figma-primitive-color-high-contrast-secondary-color-20: #abd8e3;
$tb-figma-primitive-color-high-contrast-secondary-color-30: #75c0d1;
$tb-figma-primitive-color-high-contrast-secondary-color-40: #3d9fb8;
$tb-figma-primitive-color-high-contrast-secondary-color-5: #edf6f8;
$tb-figma-primitive-color-high-contrast-secondary-color-50: #268097;
$tb-figma-primitive-color-high-contrast-secondary-color-60: #1f687a;
$tb-figma-primitive-color-high-contrast-secondary-color-70: #17505e;
$tb-figma-primitive-color-high-contrast-secondary-color-80: #113b45;
$tb-figma-primitive-color-high-contrast-secondary-color-90: #0e3139;
$tb-figma-primitive-color-high-contrast-secondary-color-95: #091f25;
$tb-figma-primitive-color-high-contrast-success-color-10: #d8eedd;
$tb-figma-primitive-color-high-contrast-success-color-20: #a9dab4;
$tb-figma-primitive-color-high-contrast-success-color-30: #7ec88e;
$tb-figma-primitive-color-high-contrast-success-color-40: #3fa654;
$tb-figma-primitive-color-high-contrast-success-color-5: #eaf6ec;
$tb-figma-primitive-color-high-contrast-success-color-50: #228738;
$tb-figma-primitive-color-high-contrast-success-color-60: #267337;
$tb-figma-primitive-color-high-contrast-success-color-70: #285d33;
$tb-figma-primitive-color-high-contrast-success-color-80: #1f4727;
$tb-figma-primitive-color-high-contrast-success-color-90: #122b18;
$tb-figma-primitive-color-high-contrast-success-color-95: #0e2012;
$tb-figma-primitive-color-high-contrast-warning-color-10: #ffe0a3;
$tb-figma-primitive-color-high-contrast-warning-color-20: #ffc95c;
$tb-figma-primitive-color-high-contrast-warning-color-30: #ffb114;
$tb-figma-primitive-color-high-contrast-warning-color-40: #c78500;
$tb-figma-primitive-color-high-contrast-warning-color-5: #fff3db;
$tb-figma-primitive-color-high-contrast-warning-color-50: #9e6a00;
$tb-figma-primitive-color-high-contrast-warning-color-60: #8a5c00;
$tb-figma-primitive-color-high-contrast-warning-color-70: #614100;
$tb-figma-primitive-color-high-contrast-warning-color-80: #422c00;
$tb-figma-primitive-color-high-contrast-warning-color-90: #2e1f00;
$tb-figma-primitive-color-high-contrast-warning-color-95: #241800;
$tb-figma-primitive-color-light-alpha-white-10: rgba(255, 255, 255, 0.1);
$tb-figma-primitive-color-light-alpha-white-25: rgba(255, 255, 255, 0.25);
$tb-figma-primitive-color-light-danger-color-20: #f7afa1;
$tb-figma-primitive-color-light-danger-color-30: #f48771;
$tb-figma-primitive-color-light-danger-color-40: #f05f42;
$tb-figma-primitive-color-light-danger-color-70: #8a240f;
$tb-figma-primitive-color-light-danger-color-80: #5c180a;
$tb-figma-primitive-color-light-danger-color-90: #390d05;
$tb-figma-primitive-color-light-danger-color-95: #260903;
$tb-figma-primitive-color-light-gray-color-100: #000000;
$tb-figma-primitive-color-light-information-color-20: #9ed2fa;
$tb-figma-primitive-color-light-information-color-30: #5fb5f7;
$tb-figma-primitive-color-light-information-color-40: #2098f3;
$tb-figma-primitive-color-light-information-color-70: #085691;
$tb-figma-primitive-color-light-information-color-80: #053961;
$tb-figma-primitive-color-light-information-color-90: #03253f;
$tb-figma-primitive-color-light-information-color-95: #021a2c;
$tb-figma-primitive-color-light-point-color-20: #ebadb2;
$tb-figma-primitive-color-light-point-color-30: #e0858c;
$tb-figma-primitive-color-light-point-color-40: #d65c66;
$tb-figma-primitive-color-light-point-color-70: #7a1f26;
$tb-figma-primitive-color-light-point-color-80: #521419;
$tb-figma-primitive-color-light-point-color-90: #310c0f;
$tb-figma-primitive-color-light-point-color-95: #21080a;
$tb-figma-primitive-color-light-primary-color-30: #86aff9;
$tb-figma-primitive-color-light-primary-color-40: #4c87f6;
$tb-figma-primitive-color-light-primary-color-80: #052561;
$tb-figma-primitive-color-light-primary-color-90: #03163a;
$tb-figma-primitive-color-light-primary-color-95: #020f27;
$tb-figma-primitive-color-light-secondary-color-20: #bacbde;
$tb-figma-primitive-color-light-secondary-color-30: #90b0d5;
$tb-figma-primitive-color-light-secondary-color-40: #6b96c7;
$tb-figma-primitive-color-light-secondary-color-50: #346fb2;
$tb-figma-primitive-color-light-secondary-color-60: #1c589c;
$tb-figma-primitive-color-light-secondary-color-90: #031f3f;
$tb-figma-primitive-color-light-secondary-color-95: #02162c;
$tb-figma-primitive-color-light-success-color-20: #a9dab4;
$tb-figma-primitive-color-light-success-color-30: #7ec88e;
$tb-figma-primitive-color-light-success-color-40: #3fa654;
$tb-figma-primitive-color-light-success-color-70: #285d33;
$tb-figma-primitive-color-light-success-color-80: #1f4727;
$tb-figma-primitive-color-light-success-color-90: #122b18;
$tb-figma-primitive-color-light-success-color-95: #0e2012;
$tb-figma-primitive-color-light-warning-color-20: #ffc95c;
$tb-figma-primitive-color-light-warning-color-40: #c78500;
$tb-figma-primitive-color-light-warning-color-70: #614100;
$tb-figma-primitive-color-light-warning-color-80: #422c00;
$tb-figma-primitive-color-light-warning-color-90: #2e1f00;
$tb-figma-primitive-color-light-warning-color-95: #241800;
$tb-figma-colors-gray: linear-gradient(180deg, rgba(255, 255, 255, 0) 25%, #f4f5f6 100%);
$tb-figma-colors-secondary: linear-gradient(180deg, rgba(255, 255, 255, 0) 25%, #eef2f7 100%);
$tb-figma-colors-white: linear-gradient(180deg, rgba(255, 255, 255, 0.25) 25%, #ffffff 100%);
$tb-figma-primitive-color-light-alpha-white-10-1: rgba(255, 255, 255, 0.1);
$tb-figma-primitive-color-light-danger-color-50-1: #de3412;
$tb-figma-primitive-color-light-danger-color-60-1: #bd2c0f;
$tb-figma-primitive-color-light-graphic-color-50-2: #61758f;
$tb-figma-primitive-color-light-gray-color-0-1: #ffffff;
$tb-figma-primitive-color-light-gray-color-100-1: #000000;
$tb-figma-primitive-color-light-gray-color-20-1: #cdd1d5;
$tb-figma-primitive-color-light-gray-color-30-1: #b1b8be;
$tb-figma-primitive-color-light-gray-color-40-1: #8a949e;
$tb-figma-primitive-color-light-gray-color-5-1: #f4f5f6;
$tb-figma-primitive-color-light-gray-color-50-3: #6d7882;
$tb-figma-primitive-color-light-gray-color-60-2: #58616a;
$tb-figma-primitive-color-light-gray-color-70-1: #464c53;
$tb-figma-primitive-color-light-gray-color-90-1: #1e2124;
$tb-figma-primitive-color-light-gray-color-95-1: #131416;
$tb-figma-primitive-color-light-primary-color-50-4: #256ef4;
$tb-figma-primitive-color-light-primary-color-60-3: #0b50d0;
$tb-figma-primitive-color-light-primary-color-80-1: #052561;
$tb-figma-primitive-color-light-primary-color-95-2: #020f27;
$tb-figma-primitive-color-light-secondary-color-10-1: #d6e0eb;
$tb-figma-primitive-color-light-secondary-color-80-2: #052b57;
$tb-figma-tailwindcss-blue-color-600: #2563eb;
$tb-figma-mode-color-button-primary-fill: $tb-figma-primitive-color-high-contrast-primary-color-50;
$tb-primary: $tb-figma-mode-color-button-primary-fill;
$tb-figma-mode-color-button-primary-fill-hover: $tb-figma-primitive-color-high-contrast-primary-color-60;
$tb-primary-hover: $tb-figma-mode-color-button-primary-fill-hover;
$tb-kendo-button-bg: $tb-figma-primitive-color-high-contrast-gray-color-5;
$tb-kendo-button-text: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-base-on-surface: $tb-figma-primitive-color-high-contrast-gray-color-50;
$tb-kendo-chip-outline-hover-text: $tb-base;
$tb-kendo-chip-outline-selected-text: $tb-kendo-chip-outline-hover-text;
$tb-primary-subtle: $tb-figma-primitive-color-light-primary-color-10;
$tb-kendo-input-text: $tb-figma-primitive-color-light-gray-color-50;
$tb-kendo-input-border: $tb-figma-primitive-color-high-contrast-gray-color-30;
$tb-kendo-input-hover-border: $tb-figma-primitive-color-high-contrast-gray-color-5;
$tb-kendo-input-flat-border: $tb-kendo-input-border;
$tb-kendo-input-invalid-border: $tb-error;
$tb-kendo-listbox-text: $tb-on-app-surface;
$tb-kendo-panelbar-item-selected-text: $tb-on-primary;
$tb-figma-mode-color-button-primary-fill-pressed: $tb-figma-primitive-color-high-contrast-primary-color-70;
$tb-primary-active: $tb-figma-mode-color-button-primary-fill-pressed;
$tb-kendo-splitter-border: $tb-border;
$tb-on-base: $tb-base-on-surface;
$tb-figma-disabled: $tb-figma-primitive-color-high-contrast-gray-color-80;
$tb-figma-primary: $tb-figma-primitive-color-high-contrast-alpha-black-0;
$tb-figma-primary-active: $tb-figma-primitive-color-high-contrast-primary-color-50;
$tb-figma-primary-hover: $tb-figma-primitive-color-high-contrast-primary-color-95;
$tb-figma-primary-pressed: $tb-figma-primitive-color-high-contrast-primary-color-90;
$tb-figma-primary-selected: $tb-figma-primitive-color-high-contrast-primary-color-95;
$tb-figma-secondary: $tb-figma-primitive-color-light-alpha-black-0;
$tb-figma-secondary-active: $tb-figma-primitive-color-high-contrast-secondary-color-60;
$tb-figma-secondary-hover: $tb-figma-primitive-color-high-contrast-secondary-color-95;
$tb-figma-secondary-on: $tb-figma-primitive-color-high-contrast-alpha-black-0;
$tb-figma-secondary-on-hover: $tb-figma-primitive-color-high-contrast-gray-color-100;
$tb-figma-secondary-on-pressed: $tb-figma-primitive-color-high-contrast-secondary-color-90;
$tb-figma-secondary-on-selected: $tb-figma-primitive-color-high-contrast-gray-color-95;
$tb-figma-secondary-pressed: $tb-figma-primitive-color-high-contrast-secondary-color-90;
$tb-figma-secondary-selected: $tb-figma-primitive-color-high-contrast-secondary-color-95;
$tb-figma-white: $tb-figma-primitive-color-light-gray-color-100;
$tb-figma-mode-color-alpha-base-0: $tb-figma-primitive-color-light-alpha-black-0;
$tb-figma-mode-color-alpha-base-10: $tb-figma-primitive-color-high-contrast-alpha-black-10;
$tb-figma-mode-color-alpha-base-100: $tb-figma-primitive-color-high-contrast-alpha-black-100;
$tb-figma-mode-color-alpha-base-25: $tb-figma-primitive-color-high-contrast-alpha-black-25;
$tb-figma-mode-color-alpha-base-50: $tb-figma-primitive-color-high-contrast-alpha-black-50;
$tb-figma-mode-color-alpha-base-75: $tb-figma-primitive-color-high-contrast-alpha-black-75;
$tb-figma-mode-color-alpha-inverse-0: $tb-figma-primitive-color-high-contrast-alpha-white-0;
$tb-figma-mode-color-alpha-inverse-10: $tb-figma-primitive-color-high-contrast-alpha-black-25;
$tb-figma-mode-color-alpha-inverse-100: $tb-figma-primitive-color-high-contrast-alpha-white-100;
$tb-figma-mode-color-alpha-inverse-25: $tb-figma-primitive-color-high-contrast-alpha-white-25;
$tb-figma-mode-color-alpha-inverse-50: $tb-figma-primitive-color-high-contrast-alpha-white-50;
$tb-figma-mode-color-alpha-inverse-75: $tb-figma-primitive-color-high-contrast-alpha-white-75;
$tb-figma-mode-color-background-dim: $tb-figma-primitive-color-high-contrast-alpha-black-75;
$tb-figma-mode-color-background-gray-subtle: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-figma-mode-color-background-gray-subtler: $tb-figma-primitive-color-high-contrast-gray-color-95;
$tb-figma-mode-color-background-inverse: $tb-figma-primitive-color-high-contrast-gray-color-10;
$tb-figma-mode-color-background-white: $tb-figma-primitive-color-high-contrast-gray-color-100;
$tb-figma-mode-color-border-danger: $tb-figma-primitive-color-high-contrast-danger-color-50;
$tb-figma-mode-color-border-danger-light: $tb-figma-primitive-color-high-contrast-danger-color-90;
$tb-figma-mode-color-border-disabled: $tb-figma-primitive-color-high-contrast-gray-color-70;
$tb-figma-mode-color-border-gray: $tb-figma-primitive-color-high-contrast-gray-color-70;
$tb-figma-mode-color-border-gray-dark: $tb-figma-primitive-color-high-contrast-gray-color-40;
$tb-figma-mode-color-border-gray-darker: $tb-figma-primitive-color-high-contrast-gray-color-10;
$tb-figma-mode-color-border-gray-light: $tb-figma-primitive-color-high-contrast-gray-color-80;
$tb-figma-mode-color-border-information: $tb-figma-primitive-color-high-contrast-information-color-50;
$tb-figma-mode-color-border-information-light: $tb-figma-primitive-color-high-contrast-information-color-90;
$tb-figma-mode-color-border-inverse: $tb-figma-primitive-color-high-contrast-gray-color-100;
$tb-figma-mode-color-border-point: $tb-figma-primitive-color-high-contrast-point-color-50;
$tb-figma-mode-color-border-point-light: $tb-figma-primitive-color-high-contrast-point-color-90;
$tb-figma-mode-color-border-primary: $tb-figma-primitive-color-high-contrast-primary-color-50;
$tb-figma-mode-color-border-primary-light: $tb-figma-primitive-color-high-contrast-primary-color-90;
$tb-figma-mode-color-border-secondary: $tb-figma-primitive-color-high-contrast-secondary-color-60;
$tb-figma-mode-color-border-secondary-light: $tb-figma-primitive-color-high-contrast-secondary-color-90;
$tb-figma-mode-color-border-success: $tb-figma-primitive-color-high-contrast-success-color-50;
$tb-figma-mode-color-border-success-light: $tb-figma-primitive-color-high-contrast-success-color-90;
$tb-figma-mode-color-border-transparency: $tb-figma-primitive-color-high-contrast-alpha-white-25;
$tb-figma-mode-color-border-warning: $tb-figma-primitive-color-high-contrast-warning-color-50;
$tb-figma-mode-color-border-warning-light: $tb-figma-primitive-color-high-contrast-warning-color-90;
$tb-figma-mode-color-button-disabled-border: $tb-figma-primitive-color-high-contrast-gray-color-70;
$tb-figma-mode-color-button-disabled-fill: $tb-figma-primitive-color-high-contrast-gray-color-80;
$tb-figma-mode-color-button-secondary-border: $tb-figma-primitive-color-high-contrast-primary-color-50;
$tb-figma-mode-color-button-secondary-fill: $tb-figma-primitive-color-high-contrast-primary-color-95;
$tb-figma-mode-color-button-secondary-fill-hover: $tb-figma-primitive-color-high-contrast-primary-color-90;
$tb-figma-mode-color-button-secondary-fill-pressed: $tb-figma-primitive-color-high-contrast-primary-color-80;
$tb-figma-mode-color-button-tertiary-border: $tb-figma-primitive-color-high-contrast-gray-color-40;
$tb-figma-mode-color-button-tertiary-fill: $tb-figma-primitive-color-high-contrast-alpha-black-0;
$tb-figma-mode-color-button-tertiary-fill-hover: $tb-figma-primitive-color-high-contrast-gray-color-95;
$tb-figma-mode-color-button-tertiary-fill-pressed: $tb-figma-primitive-color-high-contrast-gray-color-80;
$tb-figma-mode-color-button-text-border: $tb-figma-primitive-color-high-contrast-alpha-white-50;
$tb-figma-mode-color-button-text-fill: $tb-figma-primitive-color-high-contrast-alpha-black-0;
$tb-figma-mode-color-button-text-fill-hover: $tb-figma-primitive-color-high-contrast-secondary-color-95;
$tb-figma-mode-color-button-text-fill-pressed: $tb-figma-primitive-color-high-contrast-secondary-color-90;
$tb-figma-mode-color-divider-error: $tb-figma-primitive-color-high-contrast-danger-color-50;
$tb-figma-mode-color-divider-gray: $tb-figma-primitive-color-high-contrast-gray-color-70;
$tb-figma-mode-color-divider-gray-dark: $tb-figma-primitive-color-high-contrast-gray-color-50;
$tb-figma-mode-color-divider-gray-darker: $tb-figma-primitive-color-high-contrast-gray-color-10;
$tb-figma-mode-color-divider-gray-light: $tb-figma-primitive-color-high-contrast-gray-color-80;
$tb-figma-mode-color-divider-inverse: $tb-figma-primitive-color-high-contrast-gray-color-100;
$tb-figma-mode-color-divider-point: $tb-figma-primitive-color-high-contrast-point-color-50;
$tb-figma-mode-color-divider-primary: $tb-figma-primitive-color-high-contrast-primary-color-50;
$tb-figma-mode-color-divider-primary-light: $tb-figma-primitive-color-high-contrast-primary-color-90;
$tb-figma-mode-color-divider-secondary: $tb-figma-primitive-color-high-contrast-secondary-color-60;
$tb-figma-mode-color-divider-secondary-light: $tb-figma-primitive-color-high-contrast-secondary-color-90;
$tb-figma-mode-color-element-danger: $tb-figma-primitive-color-high-contrast-danger-color-50;
$tb-figma-mode-color-element-danger-lighter: $tb-figma-primitive-color-high-contrast-danger-color-95;
$tb-figma-mode-color-element-disabled-dark: $tb-figma-primitive-color-high-contrast-gray-color-60;
$tb-figma-mode-color-element-disabled-light: $tb-figma-primitive-color-high-contrast-gray-color-80;
$tb-figma-mode-color-element-gray: $tb-figma-primitive-color-high-contrast-gray-color-50;
$tb-figma-mode-color-element-gray-dark: $tb-figma-primitive-color-high-contrast-gray-color-40;
$tb-figma-mode-color-element-gray-light: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-figma-mode-color-element-gray-lighter: $tb-figma-primitive-color-high-contrast-gray-color-95;
$tb-figma-mode-color-element-information: $tb-figma-primitive-color-high-contrast-information-color-50;
$tb-figma-mode-color-element-information-lighter: $tb-figma-primitive-color-high-contrast-information-color-95;
$tb-figma-mode-color-element-inverse: $tb-figma-primitive-color-high-contrast-gray-color-95;
$tb-figma-mode-color-element-inverse-static: $tb-figma-primitive-color-high-contrast-gray-color-0;
$tb-figma-mode-color-element-point: $tb-figma-primitive-color-high-contrast-point-color-50;
$tb-figma-mode-color-element-point-light: $tb-figma-primitive-color-high-contrast-point-color-90;
$tb-figma-mode-color-element-point-lighter: $tb-figma-primitive-color-high-contrast-point-color-95;
$tb-figma-mode-color-element-primary: $tb-figma-primitive-color-high-contrast-primary-color-50;
$tb-figma-mode-color-element-primary-light: $tb-figma-primitive-color-high-contrast-primary-color-90;
$tb-figma-mode-color-element-primary-lighter: $tb-figma-primitive-color-high-contrast-primary-color-95;
$tb-figma-mode-color-element-secondary: $tb-figma-primitive-color-high-contrast-secondary-color-60;
$tb-figma-mode-color-element-secondary-light: $tb-figma-primitive-color-high-contrast-secondary-color-90;
$tb-figma-mode-color-element-secondary-lighter: $tb-figma-primitive-color-high-contrast-secondary-color-95;
$tb-figma-mode-color-element-success: $tb-figma-primitive-color-high-contrast-success-color-50;
$tb-figma-mode-color-element-success-lighter: $tb-figma-primitive-color-high-contrast-success-color-95;
$tb-figma-mode-color-element-warning: $tb-figma-primitive-color-high-contrast-warning-color-30;
$tb-figma-mode-color-element-warning-lighter: $tb-figma-primitive-color-high-contrast-warning-color-95;
$tb-figma-mode-color-graphic-blue: $tb-figma-primitive-color-high-contrast-graphic-color-50;
$tb-figma-mode-color-graphic-blue-dark: $tb-figma-primitive-color-high-contrast-graphic-color-70;
$tb-figma-mode-color-graphic-blue-darker: $tb-figma-primitive-color-high-contrast-graphic-color-90;
$tb-figma-mode-color-graphic-blue-subtle: $tb-figma-primitive-color-high-contrast-graphic-color-30;
$tb-figma-mode-color-graphic-blue-subtler: $tb-figma-primitive-color-high-contrast-graphic-color-10;
$tb-figma-mode-color-graphic-brand: $tb-figma-primitive-color-high-contrast-primary-color-50;
$tb-figma-mode-color-graphic-red: $tb-figma-primitive-color-high-contrast-point-color-20;
$tb-figma-mode-color-graphic-red-dark: $tb-figma-primitive-color-high-contrast-point-color-40;
$tb-figma-mode-color-graphic-red-darker: $tb-figma-primitive-color-high-contrast-point-color-70;
$tb-figma-mode-color-graphic-red-subtle: $tb-figma-primitive-color-high-contrast-point-color-10;
$tb-figma-mode-color-graphic-red-subtler: $tb-figma-primitive-color-high-contrast-point-color-5;
$tb-figma-mode-color-icon-danger: $tb-figma-primitive-color-high-contrast-danger-color-20;
$tb-figma-mode-color-icon-danger-static: $tb-figma-primitive-color-high-contrast-danger-color-50;
$tb-figma-mode-color-icon-disabled: $tb-figma-primitive-color-high-contrast-gray-color-60;
$tb-figma-mode-color-icon-disabled-on: $tb-figma-primitive-color-high-contrast-gray-color-50;
$tb-figma-mode-color-icon-gray: $tb-figma-primitive-color-high-contrast-gray-color-5;
$tb-figma-mode-color-icon-gray-fill: $tb-figma-primitive-color-high-contrast-gray-color-70;
$tb-figma-mode-color-icon-gray-light: $tb-figma-primitive-color-high-contrast-gray-color-20;
$tb-figma-mode-color-icon-gray-static: $tb-figma-primitive-color-high-contrast-gray-color-80;
$tb-figma-mode-color-icon-information: $tb-figma-primitive-color-high-contrast-information-color-20;
$tb-figma-mode-color-icon-information-static: $tb-figma-primitive-color-high-contrast-information-color-50;
$tb-figma-mode-color-icon-inverse: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-figma-mode-color-icon-inverse-static: $tb-figma-primitive-color-high-contrast-gray-color-0;
$tb-figma-mode-color-icon-point: $tb-figma-primitive-color-high-contrast-point-color-20;
$tb-figma-mode-color-icon-point-static: $tb-figma-primitive-color-high-contrast-point-color-50;
$tb-figma-mode-color-icon-primary: $tb-figma-primitive-color-high-contrast-primary-color-20;
$tb-figma-mode-color-icon-primary-static: $tb-figma-primitive-color-high-contrast-primary-color-50;
$tb-figma-mode-color-icon-secondary: $tb-figma-primitive-color-high-contrast-secondary-color-20;
$tb-figma-mode-color-icon-secondary-static: $tb-figma-primitive-color-high-contrast-secondary-color-80;
$tb-figma-mode-color-icon-success: $tb-figma-primitive-color-high-contrast-success-color-20;
$tb-figma-mode-color-icon-success-static: $tb-figma-primitive-color-high-contrast-success-color-50;
$tb-figma-mode-color-icon-warning: $tb-figma-primitive-color-high-contrast-warning-color-20;
$tb-figma-mode-color-icon-warning-static: $tb-figma-primitive-color-high-contrast-warning-color-50;
$tb-figma-mode-color-input-border: $tb-figma-primitive-color-high-contrast-gray-color-40;
$tb-figma-mode-color-input-border-active: $tb-figma-primitive-color-high-contrast-primary-color-50;
$tb-figma-mode-color-input-border-disabled: $tb-figma-primitive-color-high-contrast-gray-color-70;
$tb-figma-mode-color-input-border-error: $tb-figma-primitive-color-high-contrast-danger-color-50;
$tb-figma-mode-color-input-surface: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-figma-mode-color-input-surface-disabled: $tb-figma-primitive-color-high-contrast-gray-color-95;
$tb-figma-mode-color-link-default: $tb-figma-primitive-color-high-contrast-primary-color-30;
$tb-figma-mode-color-link-hover: $tb-figma-primitive-color-high-contrast-primary-color-20;
$tb-figma-mode-color-link-pressed: $tb-figma-primitive-color-high-contrast-primary-color-10;
$tb-figma-mode-color-surface-danger-subtler: $tb-figma-primitive-color-high-contrast-danger-color-95;
$tb-figma-mode-color-surface-disabled: $tb-figma-primitive-color-high-contrast-gray-color-70;
$tb-figma-mode-color-surface-gray-subtle: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-figma-mode-color-surface-gray-subtler: $tb-figma-primitive-color-high-contrast-gray-color-95;
$tb-figma-mode-color-surface-information-subtler: $tb-figma-primitive-color-high-contrast-information-color-95;
$tb-figma-mode-color-surface-inverse: $tb-figma-primitive-color-high-contrast-gray-color-10;
$tb-figma-mode-color-surface-inverse-static: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-figma-mode-color-surface-point-subtler: $tb-figma-primitive-color-high-contrast-point-color-95;
$tb-figma-mode-color-surface-primary-subtler: $tb-figma-primitive-color-high-contrast-primary-color-95;
$tb-figma-mode-color-surface-secondary-subtler: $tb-figma-primitive-color-high-contrast-secondary-color-95;
$tb-figma-mode-color-surface-success-subtler: $tb-figma-primitive-color-high-contrast-success-color-95;
$tb-figma-mode-color-surface-warning-subtler: $tb-figma-primitive-color-high-contrast-warning-color-95;
$tb-figma-mode-color-surface-white: $tb-figma-primitive-color-high-contrast-gray-color-100;
$tb-figma-mode-color-surface-white-static: $tb-figma-primitive-color-high-contrast-gray-color-0;
$tb-figma-mode-color-surface-white-subtle: $tb-figma-primitive-color-high-contrast-gray-color-95;
$tb-figma-mode-color-surface-white-subtler: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-figma-mode-color-text-basic: $tb-figma-primitive-color-high-contrast-gray-color-5;
$tb-figma-mode-color-text-basic-inverse: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-figma-mode-color-text-bolder: $tb-figma-primitive-color-high-contrast-gray-color-10;
$tb-figma-mode-color-text-bolder-inverse: $tb-figma-primitive-color-high-contrast-gray-color-95;
$tb-figma-mode-color-text-danger: $tb-figma-primitive-color-high-contrast-danger-color-20;
$tb-figma-mode-color-text-disabled: $tb-figma-primitive-color-high-contrast-gray-color-60;
$tb-figma-mode-color-text-disabled-on: $tb-figma-primitive-color-high-contrast-gray-color-50;
$tb-figma-mode-color-text-information: $tb-figma-primitive-color-high-contrast-information-color-20;
$tb-figma-mode-color-text-inverse-static: $tb-figma-primitive-color-high-contrast-gray-color-0;
$tb-figma-mode-color-text-point: $tb-figma-primitive-color-high-contrast-point-color-20;
$tb-figma-mode-color-text-primary: $tb-figma-primitive-color-high-contrast-primary-color-20;
$tb-figma-mode-color-text-secondary: $tb-figma-primitive-color-high-contrast-secondary-color-20;
$tb-figma-mode-color-text-static: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-figma-mode-color-text-subtle: $tb-figma-primitive-color-high-contrast-gray-color-20;
$tb-figma-mode-color-text-subtle-inverse: $tb-figma-primitive-color-high-contrast-gray-color-70;
$tb-figma-mode-color-text-success: $tb-figma-primitive-color-high-contrast-success-color-20;
$tb-figma-mode-color-text-warning: $tb-figma-primitive-color-high-contrast-warning-color-20;
$tb-primary-subtle-hover: $tb-figma-primitive-color-high-contrast-information-color-20;
$tb-primary-subtle-active: $tb-figma-primitive-color-high-contrast-primary-color-30;
$tb-primary-emphasis: $tb-figma-primitive-color-high-contrast-primary-color-30;
$tb-primary-on-subtle: $tb-figma-primitive-color-high-contrast-primary-color-70;
$tb-primary-on-surface: $tb-figma-primitive-color-high-contrast-primary-color-40;
$tb-secondary-subtle: $tb-figma-primitive-color-high-contrast-gray-color-5;
$tb-secondary-subtle-hover: $tb-figma-primitive-color-high-contrast-gray-color-10;
$tb-secondary-subtle-active: $tb-figma-primitive-color-high-contrast-gray-color-20;
$tb-secondary: $tb-figma-primitive-color-high-contrast-gray-color-50;
$tb-secondary-hover: $tb-figma-primitive-color-high-contrast-gray-color-60;
$tb-secondary-active: $tb-figma-primitive-color-high-contrast-gray-color-70;
$tb-secondary-emphasis: $tb-figma-primitive-color-high-contrast-gray-color-10;
$tb-secondary-on-subtle: $tb-figma-primitive-color-high-contrast-gray-color-80;
$tb-on-secondary: $tb-figma-primitive-color-high-contrast-gray-color-0;
$tb-secondary-on-surface: $tb-figma-primitive-color-high-contrast-gray-color-90;
$tb-tertiary-subtle: $tb-figma-primitive-color-high-contrast-graphic-color-30;
$tb-tertiary-subtle-hover: $tb-figma-primitive-color-high-contrast-graphic-color-30;
$tb-tertiary-subtle-active: $tb-figma-primitive-color-high-contrast-graphic-color-50;
$tb-tertiary: $tb-figma-primitive-color-high-contrast-gray-color-10;
$tb-tertiary-hover: $tb-figma-primitive-color-high-contrast-gray-color-20;
$tb-tertiary-active: $tb-figma-primitive-color-high-contrast-gray-color-30;
$tb-tertiary-emphasis: $tb-figma-primitive-color-high-contrast-graphic-color-10;
$tb-tertiary-on-subtle: $tb-figma-primitive-color-high-contrast-graphic-color-70;
$tb-on-tertiary: $tb-figma-primitive-color-high-contrast-gray-color-100;
$tb-tertiary-on-surface: $tb-figma-primitive-color-high-contrast-graphic-color-30;
$tb-kendo-font-family: inherit;
$tb-kendo-font-size: 14px;
$tb-kendo-font-weight-normal: 400;
$tb-kendo-line-height: 1.4285714286;
$enable-gradients: true;
$tb-typography: (
kendo-default-typography: (
font-family: 'inherit',
font-size: 14px,
font-weight: 400,
line-height: 1.4285714286,
),
figma-typography-body-large: (
font-family: 'Pretendard GOV',
font-size: 19px,
font-weight: normal,
line-height: 150%,
),
figma-typography-body-large-bold: (
font-family: 'Pretendard GOV',
font-size: 19px,
font-weight: bold,
line-height: 150%,
),
figma-typography-body-medium: (
font-family: 'Pretendard GOV',
font-size: 17px,
font-weight: normal,
line-height: 150%,
),
figma-typography-body-medium-bold: (
font-family: 'Pretendard GOV',
font-size: 17px,
font-weight: bold,
line-height: 150%,
),
figma-typography-body-small: (
font-family: 'Pretendard GOV',
font-size: 15px,
font-weight: normal,
line-height: 150%,
),
figma-typography-body-small-bold: (
font-family: 'Pretendard GOV',
font-size: 15px,
font-weight: bold,
line-height: 150%,
),
figma-typography-body-xsmall: (
font-family: 'Pretendard GOV',
font-size: 13px,
font-weight: normal,
line-height: 150%,
),
figma-typography-body-xsmall-bold: (
font-family: 'Pretendard GOV',
font-size: 13px,
font-weight: bold,
line-height: 150%,
),
figma-typography-display-large: (
font-family: 'Pretendard GOV',
font-size: 60px,
font-weight: bold,
line-height: 150%,
letter-spacing: 1px,
),
figma-typography-display-medium: (
font-family: 'Pretendard GOV',
font-size: 44px,
font-weight: bold,
line-height: 150%,
letter-spacing: 1px,
),
figma-typography-display-small: (
font-family: 'Pretendard GOV',
font-size: 36px,
font-weight: bold,
line-height: 150%,
letter-spacing: 1px,
),
figma-typography-heading-large: (
font-family: 'Pretendard GOV',
font-size: 32px,
font-weight: bold,
line-height: 150%,
letter-spacing: 1px,
),
figma-typography-heading-medium: (
font-family: 'Pretendard GOV',
font-size: 24px,
font-weight: bold,
line-height: 150%,
),
figma-typography-heading-small: (
font-family: 'Pretendard GOV',
font-size: 19px,
font-weight: bold,
line-height: 150%,
),
figma-typography-heading-xlarge: (
font-family: 'Pretendard GOV',
font-size: 40px,
font-weight: bold,
line-height: 150%,
letter-spacing: 1px,
),
figma-typography-heading-xsmall: (
font-family: 'Pretendard GOV',
font-size: 17px,
font-weight: bold,
line-height: 150%,
),
figma-typography-heading-xxsmall: (
font-family: 'Pretendard GOV',
font-size: 15px,
font-weight: bold,
line-height: 150%,
),
figma-typography-label-large: (
font-family: 'Pretendard GOV',
font-size: 19px,
font-weight: normal,
line-height: 150%,
),
figma-typography-label-medium: (
font-family: 'Pretendard GOV',
font-size: 17px,
font-weight: normal,
line-height: 150%,
),
figma-typography-label-small: (
font-family: 'Pretendard GOV',
font-size: 15px,
font-weight: normal,
line-height: 150%,
),
figma-typography-label-xsmall: (
font-family: 'Pretendard GOV',
font-size: 13px,
font-weight: normal,
line-height: 150%,
),
figma-typography-navigation-depth-medium: (
font-family: 'Pretendard GOV',
font-size: 17px,
font-weight: normal,
line-height: 150%,
),
figma-typography-navigation-depth-medium-bold: (
font-family: 'Pretendard GOV',
font-size: 17px,
font-weight: bold,
line-height: 150%,
),
figma-typography-navigation-depth-small: (
font-family: 'Pretendard GOV',
font-size: 15px,
font-weight: normal,
line-height: 150%,
),
figma-typography-navigation-depth-small-bold: (
font-family: 'Pretendard GOV',
font-size: 15px,
font-weight: bold,
line-height: 150%,
),
figma-typography-navigation-title-medium: (
font-family: 'Pretendard GOV',
font-size: 24px,
font-weight: bold,
line-height: 150%,
),
figma-typography-navigation-title-small: (
font-family: 'Pretendard GOV',
font-size: 19px,
font-weight: bold,
line-height: 150%,
),
figma-typography-underline-large: (
font-family: 'Pretendard GOV',
font-size: 19px,
font-weight: normal,
line-height: 150%,
text-decoration-line: underline,
),
figma-typography-underline-medium: (
font-family: 'Pretendard GOV',
font-size: 17px,
font-weight: normal,
line-height: 150%,
text-decoration-line: underline,
),
figma-typography-underline-small: (
font-family: 'Pretendard GOV',
font-size: 15px,
font-weight: normal,
line-height: 150%,
text-decoration-line: underline,
),
figma-typography-underline-xsmall: (
font-family: 'Pretendard GOV',
font-size: 13px,
font-weight: normal,
line-height: 150%,
text-decoration-line: underline,
),
figma-typography-base-text-md-default-body-2-grid-grid-cell-text: (
font-family: 'Roboto',
font-size: 14px,
font-weight: normal,
line-height: 28px,
),
);
@mixin typography-classes ($typography) {
@each $selector, $property in $typography {
&-#{$selector} {
@each $propName, $propValue in $property {
#{$propName}: #{$propValue};
}
} &-#{$selector}-important {
@each $propName, $propValue in $property {
#{$propName}: $propValue !important;
}
}
}
}
$tb-effects: (
tb-internal-none-effects: (
box-shadow: (none), filter: (none), backdrop-filter: (none), ),
figma-effects-shadow-1: (
box-shadow: (0px 0px 2px 0 rgba(0, 0, 0, 0.05000000074505806), 0px 1px 2px 0 rgba(0, 0, 0, 0.05000000074505806)), ),
figma-effects-shadow-2: (
box-shadow: (0px 4px 8px 0 rgba(0, 0, 0, 0.07999999821186066), 0px 0px 2px 0 rgba(0, 0, 0, 0.05000000074505806)), ),
figma-effects-shadow-3: (
box-shadow: (0px 8px 16px 0 rgba(0, 0, 0, 0.11999999731779099), 0px 0px 2px 0 rgba(0, 0, 0, 0.07999999821186066)), ),
figma-effects-shadow-4: (
box-shadow: (0px 16px 24px 0 rgba(0, 0, 0, 0.11999999731779099), 0px 0px 2px 0 rgba(0, 0, 0, 0.07999999821186066)), ),
figma-effects-shadow-out: (
box-shadow: (0px 4px 5px 0 rgba(0, 0, 0, 0.07999999821186066)), ),
figma-effects-shadow-y-12: (
box-shadow: (0px 4px 15px 0 rgba(0, 0, 0, 0.10000000149011612)), ),
);
@mixin tb-effect($effect-name, $default: null) {
$effect: map-get($tb-effects, $effect-name);
@if $effect != null {
@if map-has-key($effect, box-shadow) {
box-shadow: map-get($effect, box-shadow);
}
@if map-has-key($effect, filter) {
filter: map-get($effect, filter);
}
@if map-has-key($effect, backdrop-filter) {
backdrop-filter: map-get($effect, backdrop-filter);
}
} @else if $default != null {
@warn "Warning: Effect #{$effect-name} not found. Applying default.";
box-shadow: $default;
} @else {
@error "Error: Effect #{$effect-name} not found in \$tb-effects map.";
}
}
@mixin effects-classes ($effects) {
@each $selector, $property in $effects {
&-#{$selector} {
@each $propName, $propValue in $property {
#{$propName}: $propValue;
}
} &-#{$selector}-important {
@each $propName, $propValue in $property {
#{$propName}: $propValue !important;
}
}
}
}
%tb-typography {
@include typography-classes($tb-typography);
}
%tb-effects {
@include effects-classes($tb-effects);
}
@@ -0,0 +1,143 @@
//사이즈 정의
@mixin dropdown-size-variable() {
--wb-dropdown--menu-radius: var(--wb-radius-medium4);
--wb-dropdown--menu-padding: var(--wb-padding-3);
--wb-dropdown--menu-margin-top: var(--wb-padding-6);
--wb-dropdown--menu-gap: var(--wb-gap-3);
--wb-dropdown--list-item-radius: var(--wb-radius-medium2);
--wb-dropdown--list-item-height: var(--wb-size-height-7);
--wb-dropdown--list-item-pc-font-size: var(--wb-pc-font-size-navigation-depth-medium);
--wb-dropdown--list-item-mobile-font-size: var(--wb-mobile-font-size-navigation-depth-medium);
}
//컬러 정의
@mixin dropdown-color-variable($mode: light) {
--wb-dropdown--menu-color-border: var(--wb-#{$mode}-color-border-gray-light);
--wb-dropdown--menu-color-surface: var(--wb-#{$mode}-color-surface-white-subtler);
--wb-dropdown--menu-color-alpha-shadow: 0 0 0.2rem 0 var(--wb-#{$mode}-color-alpha-shadow1), 0 0.4rem 0.8rem 0 var(--wb-#{$mode}-color-alpha-shadow2);
--wb-dropdown--list-item-color-action-hover: var(--wb-#{$mode}-color-action-secondary-hover);
--wb-dropdown--list-item-color-action-pressed: var(--wb-#{$mode}-color-action-secondary-pressed);
--wb-dropdown--list-item-color-action-selected: var(--wb-#{$mode}-color-action-secondary-selected);
--wb-dropdown--list-item-color-text-selected: var(--wb-#{$mode}-color-text-secondary);
}
//모드 설정
$mode-setting: light;
/* wb-drop-wrap */
.wb-drop-wrap {
@include dropdown-size-variable();
@include dropdown-color-variable(#{$mode-setting});
display: inline-flex;
position: relative;
.drop-menu {
@include position($t: 100%, $l: 50%);
display: none;
z-index: 6;
min-width: 13rem;
border-radius: var(--wb-dropdown--menu-radius);
padding: var(--wb-dropdown--menu-padding);
margin-top: var(--wb-dropdown--menu-margin-top);
background-color: var(--wb-dropdown--menu-color-surface);
border: 0.1rem solid var(--wb-dropdown--menu-color-border);
box-shadow: var(--wb-dropdown--menu-color-alpha-shadow);
transform: translateX(-50%);
&::before {
@include pseudo();
@include square(1.2rem);
@include position($b: 100%, $l: 50%);
display: block;
margin-bottom: -0.5rem;
margin-left: -0.6rem;
transform: rotate(-135deg);
background-color: var(--wb-dropdown--menu-color-surface);
border: 0.1rem solid var(--wb-dropdown--menu-color-border);
border-top-color: transparent;
border-left-color: transparent;
}
.drop-in {
// @include flex-layout($fd: column, $ai: flex-start);
gap: var(--wb-dropdown--menu-gap);
position: relative;
z-index: 1;
}
.drop-top {
width: 100%;
padding: var(--wb-padding-3) var(--wb-padding-6);
border-bottom: 0.1rem solid var(--wb-dropdown--menu-color-border);
}
.drop-bottom {
// @include flex-layout($jc: center);
width: 100%;
padding: var(--wb-padding-3) 0;
border-top: 0.1rem solid var(--wb-dropdown--menu-color-border);
}
.drop-list {
width: 100%;
.item-link {
// @include flex-layout($jc: flex-start, $ai: center);
width: 100%;
gap: var(--wb-gap-3);
padding: 0 var(--wb-padding-6);
font-size: var(--wb-dropdown--list-item-pc-font-size);
border-radius: var(--wb-dropdown--list-item-radius);
height: var(--wb-dropdown--list-item-height);
background-color: var(--wb-dropdown--menu-color-surface);
.ico-go {
@include svg-icon($size: var(--wb-icon--size-medium), $mode: #{$mode-setting});
}
&:hover {
background-color: var(--wb-dropdown--list-item-color-action-hover);
}
&:active {
background-color: var(--wb-dropdown--list-item-color-action-pressed);
}
&.active {
font-weight: var(--wb-font-weight-bold);
color: var(--wb-dropdown--list-item-color-text-selected);
background-color: var(--wb-dropdown--list-item-color-action-selected);
}
}
}
}
&.drop-left {
.drop-menu {
left: 0;
right: unset;
transform: none;
&::before {
left: 2.4rem;
margin-left: 0;
}
}
}
&.drop-right {
.drop-menu {
left: unset;
right: 0;
transform: none;
&::before {
left: unset;
right: 2.4rem;
}
}
}
}
//고대비모드
@include color-mode($mode: high-contrast) {
//모드 설정
$mode-setting: high-contrast;
/* wb-drop-wrap */
.wb-drop-wrap {
@include dropdown-color-variable(#{$mode-setting});
.drop-list {
.item-link {
.ico-go {
@include svg-icon($size: var(--wb-icon--size-medium), $mode: #{$mode-setting});
}
}
}
}
}
@@ -0,0 +1,4 @@
@import "mixins/breakpoints";
@import "mixins/utils";
@import "mixins/icons";
@import "mixins/form";
@@ -0,0 +1,3 @@
//@use 'sass:map';
//scss variables 모음
@import "variables_for_code";
+50
View File
@@ -0,0 +1,50 @@
.svg-icon {
&.ico-angle { //꺽쇠모양
@include icon-set(ico-angle, pure);
//disabled (for selectbox)
&.disabled {
@include icon-set(ico_angle_disabled, $effect: pure);
}
//default: down
&.up {
transform: rotate(180deg);
}
&.left {
transform: rotate(90deg);
}
&.right {
transform: rotate(-90deg);
}
}
&.ico-user{
@include icon-set(ico-user, pure);
}
&.ico-mark {
@include icon-set(ico-mark, pure);
}
&.ico-title-be {
@include icon-set(ico-title-be, pure);
}
&.ico-menu01 {
@include icon-set(ico-menu01, pure);
}
&.ico-menu02 {
@include icon-set(ico-menu02, pure);
}
&.ico-menu03 {
@include icon-set(ico-menu03, pure);
}
&.ico-menu04 {
@include icon-set(ico-menu04, pure);
}
&.ico-menu05 {
@include icon-set(ico-menu05, pure);
}
&.ico-menu06 {
@include icon-set(ico-menu06, pure);
}
&.ico-menu07 {
@include icon-set(ico-menu07, pure);
}
}
@@ -0,0 +1,7 @@
//@use 'sass:map';
//*** mixin
//mixin
@import "group_mixins";
+115
View File
@@ -0,0 +1,115 @@
@import "../tokens";
.menu{
height:100%;
background-color: $tb-figma-primitive-color-light-secondary-color-80-2;
.menu-container {
align-items: flex-start;
align-self: stretch;
background-image: none;
column-gap: 10px;
display: flex;
align-items: center;
background-image: none;
box-sizing: border-box;
flex-direction: column;
padding-bottom: $tb-figma-spacing-w-bspacing-8;
padding-top: $tb-figma-spacing-w-bspacing-8;
row-gap: $tb-figma-spacing-w-bspacing-7;
}
}
.group {
left: 15.58px;
position: absolute;
top: 15.58px;
}
.menu-item-container {
position: relative;
align-items: center;
border-bottom-left-radius: $tb-figma-semantic-radius-medium-3-1;
border-bottom-right-radius: $tb-figma-semantic-radius-medium-3-1;
border-top-left-radius: $tb-figma-semantic-radius-medium-3-1;
border-top-right-radius: $tb-figma-semantic-radius-medium-3-1;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
padding-bottom: $tb-figma-spacing-w-bspacing-4;
padding-left: $tb-figma-spacing-w-bspacing-2;
padding-right: $tb-figma-spacing-w-bspacing-2;
padding-top: $tb-figma-spacing-w-bspacing-4;
row-gap: $tb-figma-spacing-w-bspacing-0;
&.active .menu-sub {
display: block;
opacity: 1;
}
&:hover{
background-color: $tb-figma-primitive-color-light-alpha-white-10;
}
&:focus{
background-color: $tb-figma-primitive-color-light-alpha-white-25;
}
.menu-sub{
position: absolute;
top:0;
right: -234px;
background: #fff;
@include tb-effect('figma-effects-shadow-3');
border-radius: 0 $tb-figma-spacing-w-bspacing-2 $tb-figma-spacing-w-bspacing-2 0;
padding: $tb-figma-spacing-w-bspacing-7;
z-index: 9;
width: 21.875rem;
display: none;
transition: max-height 0.3s ease, opacity 0.3s ease;
opacity: 0;
.container{
display: grid;
grid-template-columns: repeat(auto-fill, minmax(45%, auto));
gap: $tb-figma-semantic-padding-metric-5;
li{
display: flex;
flex-direction: column;
gap: $tb-figma-semantic-gap-metric-3;
flex: 1 1 50%;
.element-2-depth{
border: 1px solid $tb-figma-primitive-color-light-primary-color-30;
border-radius: $tb-figma-spacing-w-bspacing-2;
text-align: center;
padding: $tb-figma-spacing-w-bspacing-2;
font-weight: 600;
}
ul{
li{
a{
text-align: center;
&:hover{
color: $tb-figma-primitive-color-light-primary-color-60-3
}
&:focus{
color: $tb-figma-primitive-color-light-primary-color-80
}
}
~li{
margin-top: $tb-figma-semantic-gap-metric-3;
}
}
}
}
}
}
}
.wrap .element-1-depth {
align-items: center;
display: flex;
flex-direction: column;
row-gap: 8px;
}
.wrap .menu-item-text {
color: $tb-figma-primitive-color-light-gray-color-30-1;
font-size: 15px;
font-weight: 700;
line-height: 150%;
text-align: center;
}
@@ -0,0 +1,49 @@
// Spacing (4의 배수)
$spacing-0: 0;
$spacing-4: 0.25rem;
$spacing-8: 0.5rem;
$spacing-12: 0.75rem;
$spacing-16: 1rem;
$spacing-20: 1.25rem;
$spacing-24: 1.5rem;
$spacing-28: 1.75rem;
$spacing-32: 2rem;
$spacing-36: 2.25rem;
$spacing-40: 2.5rem;
$spacing-44: 2.75rem;
$spacing-48: 3rem;
$spacing-52: 3.25rem;
$spacing-56: 3.5rem;
$spacing-60: 3.75rem;
$spacing-64: 4rem;
// Font Size (4의 배수)
$font-12: 0.75rem;
$font-16: 1rem;
$font-14: 0.875rem;
$font-18: 1.125rem;
$font-20: 1.25rem;
$font-24: 1.5rem;
$font-28: 1.75rem;
$font-32: 2rem;
$font-36: 2.25rem;
$font-40: 2.5rem;
// Border Radius (4의 배수)
$radius-4: 0.25rem;
$radius-8: 0.5rem;
$radius-12: 0.75rem;
$radius-16: 1rem;
$radius-20: 1.25rem;
$radius-24: 1.5rem;
$radius-28: 1.75rem;
$radius-32: 2rem;
// Line Height (4의 배수)
$line-16: 1rem;
$line-20: 1.25rem;
$line-24: 1.5rem;
$line-28: 1.75rem;
$line-32: 2rem;
$line-36: 2.25rem;
$line-40: 2.5rem;
+2
View File
@@ -0,0 +1,2 @@
//*** path setting
$url: "../.." !default; //img
+318
View File
@@ -0,0 +1,318 @@
/* reset */
//모드 설정
$mode-setting: light;
html, body {
position: relative;
width: 100%;
height: 100%;
font-family: var(--wb-font-family-base);
color: var(--wb-#{$mode-setting}-color-text-basic);
font-weight: var(--wb-font-weight-regular);
line-height: var(--wb-line-height-base);
word-break: keep-all;
word-wrap: break-word;
-webkit-tap-highlight-color : transparent;
scroll-behavior: smooth;
}
html {
font-size: var(--wb-font-size-base);
}
body {
background-color: var(--wb-#{$mode-setting}-color-background-white);
font-size: var(--wb-pc-font-size-body-xsmall);
overflow-x: hidden;
}
//시스템 고대비모드 켜도 우리 style 적용되도록
* {
//forced-color-adjust: none;
}
//고대비모드
@include color-mode(high-contrast) {
//모드 설정
$mode-setting: high-contrast;
html, body {
color: var(--wb-#{$mode-setting}-color-text-basic);
}
body {
background-color: var(--wb-#{$mode-setting}-color-background-white);
}
}
*:focus {
//@include focus();
outline: 0.2rem solid var(--wb-light-color-border-inverse);
outline-offset: 0;
box-shadow: var(--wb-box-shadow-outline);
transition: outline 0s, box-shadow 0s !important;
}
::-moz-selection {
background: var(--wb-color-light-secondary-50);
color: var(--wb-color-light-gray-0);
}
::selection {
background: var(--wb-color-light-secondary-50);
color: var(--wb-color-light-gray-0);
}
body,
div,
p,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
dl,
dt,
dd,
table,
th,
td,
form,
fieldset,
legend,
input,
textarea,
a,
button,
select,
ul,
li,
span,
em,
label,
:before,
:after {
margin: 0;
padding: 0;
box-sizing: border-box;
-webkit-text-size-adjust: none;
font-family: inherit;
line-height: var(--wb-line-height-base);
letter-spacing: inherit;
}
pre {
font-family: inherit;
}
input,
textarea,
a,
button,
select,
span,
label,
:before,
:after {
font: {
size: inherit;
weight: inherit;
}
}
h1,
h2,
h3,
h4,
h5,
h6,
strong {
font-weight: var(--wb-font-weight-bold);
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section {
display: block;
margin: 0;
padding: 0;
box-sizing: border-box;
}
img,
fieldset {
border: 0
}
fieldset {
min-width: 100%;
}
img {
max-width: 100%;
vertical-align: top;
}
ul,
ol {
list-style: none;
}
em,
address,
i {
font-style: normal;
}
a,
button {
transition: var(--wb-transition-base);
}
a,
a:hover,
a:active,
a:focus {
color: inherit;
text-decoration: none;
}
button,
input[type="submit"],
input[type="button"] {
overflow: visible;
margin: 0;
background-color: transparent;
border: none;
-webkit-appearance: button;
cursor: pointer;
font: inherit;
color: inherit;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}
textarea {
resize: none;
}
label {
cursor: pointer;
}
select {
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
input[type="text"],
input[type="tel"],
input[type="password"],
input[type="file"],
input[type="number"],
input[type="email"],
input[type="date"],
input[type="search"],
textarea {
-webkit-box-shadow: none;
box-shadow: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
-webkit-tap-highlight-color: transparent;
}
input[type="number"] {
-moz-appearance: textfield;
margin: 0;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type='text']::-ms-clear {
display: none;
}
caption {
position: static !important;
margin: 0 !important;
}
table {
table-layout: fixed;
max-width: none;
width: auto;
min-width: 100%;
border-collapse: collapse;
}
[role="button"] {
cursor: pointer;
}
.img img {
min-width: 100%;
max-width: 100%;
}
.img.bg-img {
background-size: cover;
}
.blind,
hr,
.sr-only,
legend,
caption {
@include sr-only;
}
.hide {
display: none !important;
}
.show {
display: block !important;
}
.al {
text-align: left !important;
}
.ac {
text-align: center !important;
}
.ar {
text-align: right !important;
}
.underline {
@include underline();
}
.break-all {
word-break: break-all;
}
//svg icon
.svg-icon {
@include svg-icon();
&.pure {
@include svg-icon($effect: pure);
}
}
.inner {
max-width: var(--wb-contents-wrap-size);
padding-left: var(--wb-contents-padding-x);
padding-right: var(--wb-contents-padding-x);
}
//responsive mobile
@include size-medium {
body {
font-size: var(--wb-mobile-font-size-body-medium);
}
.pc-only {
display: none !important;
}
.pc-only.read {
@include sr-only;
}
.mob-line {
display: block;
line-height: inherit;
}
}
+65
View File
@@ -0,0 +1,65 @@
@import "group_variables";
//모드 설정
$mode-setting: light;
:root {
//* PRIMITIVE *
--wb-font-family-base: var(--wb-typo-font-type);
--wb-font-size-base: #{$font-size-base};
//line heights
@each $type, $value in $font-line-heights {
--wb-line-height-#{$type}: #{$value};
}
//letter spacings
@each $type, $value in $font-letter-spacings {
--wb-letter-spacing-#{$type}: #{$value};
}
//font weight
@each $type, $value in $font-weights {
--wb-font-weight-#{$type}: #{$value};
}
//transition
--wb-transition-base: #{$transition-base};
--wb-transition-fade: #{$transition-fade};
--wb-transition-collapse: #{$transition-collapse};
--wb-transition-collapse-width: #{$transition-collapse-width};
//contents size
--wb-contents-size: #{$contents-size};
--wb-contents-padding-x: #{$contents-padding-x-pc};
--wb-contents-wrap-size: #{$contents-wrap-size};
//box shadow (only for focus outline)
--wb-box-shadow-outline: 0 0 0 0.4rem var(--wb-#{$mode-setting}-color-border-primary);
--wb-box-shadow-outline-inset: inset 0 0 0 0.2rem var(--wb-#{$mode-setting}-color-border-primary);
//screen zoom sizes
@each $type, $value in $screen-zoom-sizes {
--wb-zoom-#{$type}: #{$value};
}
//text underline offset
--wb-font-underline-offset: #{$font-underline-offset-default};
//svg icon size
@each $size, $value in $icon-sizes {
--wb-icon--size-#{$size}: #{$value};
}
}
//고대비모드
@include color-mode($mode: high-contrast) {
//모드 설정
$mode-setting: high-contrast;
:root {
//box shadow (only for focus outline)
--wb-box-shadow-outline: 0 0 0 0.4rem var(--wb-#{$mode-setting}-color-border-primary);
--wb-box-shadow-outline-inset: inset 0 0 0 0.2rem var(--wb-#{$mode-setting}-color-border-primary);
}
}
@@ -0,0 +1,69 @@
//CONTENTS MAX WIDTH
$contents-size: 1200px !default;
$contents-padding-x-pc: 28px !default;
$contents-padding-x-mobile: 16px !default;
$contents-wrap-size: $contents-size + ($contents-padding-x-pc * 2) !default;
//BREAK POINTS
$breakpoint-small: 360px !default;
$breakpoint-medium: 768px !default;
$breakpoint-large: 1024px !default;
$breakpoint-xlarge: 1280px !default;
$breakpoint-xxlarge: 1440px !default;
//TYPO CUSTOM
$font-family-base: "Pretendard GOV", sans-serif !default;
$font-size-base: 62.5% !default; //10px 1rem으로 설정
$font-letter-spacings: (
none: var(--wb-typo-letter-spacing-0),
wide: var(--wb-typo-letter-spacing-1),
) !default;
//font weight
$font-weight-regular: 400 !default;
$font-weight-bold: 700 !default;
$font-weights: (
regular: $font-weight-regular,
bold: $font-weight-bold,
) !default;
//line height style
$font-line-height-none: 1 !default;
$font-line-height-base: 1.5 !default;
$font-line-heights: (
none: $font-line-height-none,
base: $font-line-height-base,
) !default;
//TYPO UNDERLINE OFFESET
$font-underline-offset-default: 0.3rem !default;
//IMG BACKGROUND URL
$url: "../../img" !default;
//TRANSITION
$transition-base: .4s ease-in-out !default;
$transition-fade: opacity .4s linear !default;
$transition-collapse: max-height .4s ease !default;
$transition-collapse-width: width .4s ease !default;
//SVG ICON SIZE
$icon-sizes: (
xsmall: var(--wb-size-height-2),
small: var(--wb-size-height-2),
medium: var(--wb-size-height-3),
large: var(--wb-size-height-4),
xlarge: var(--wb-size-height-4),
) !default;
//SCREEN ZOOM
$screen-zoom-sizes: (
small: 0.9,
medium: 1,
large: 1.1,
xlarge: 1.3,
xxlarge: 1.5,
) !default;
/////////////////////////////////// variable group setting ///////////////////////////////////////////////////
@@ -0,0 +1,782 @@
:root {
/* PRIMITIVE */
--wb-color-light-primary-5: #ecf2fe;
--wb-color-light-primary-10: #d8e5fd;
--wb-color-light-primary-20: #b1cefb;
--wb-color-light-primary-30: #86aff9;
--wb-color-light-primary-40: #4c87f6;
--wb-color-light-primary-50: #256ef4;
--wb-color-light-primary-60: #0b50d0;
--wb-color-light-primary-70: #083891;
--wb-color-light-primary-80: #052561;
--wb-color-light-primary-90: #03163a;
--wb-color-light-primary-95: #020f27;
--wb-color-light-secondary-5: #eef2f7;
--wb-color-light-secondary-10: #d6e0eb;
--wb-color-light-secondary-20: #bacbde;
--wb-color-light-secondary-30: #90b0d5;
--wb-color-light-secondary-40: #6b96c7;
--wb-color-light-secondary-50: #346fb2;
--wb-color-light-secondary-60: #1c589c;
--wb-color-light-secondary-70: #063a74;
--wb-color-light-secondary-80: #052b57;
--wb-color-light-secondary-90: #031f3f;
--wb-color-light-secondary-95: #02162c;
--wb-color-light-gray-0: #ffffff;
--wb-color-light-gray-5: #f4f5f6;
--wb-color-light-gray-10: #e6e8ea;
--wb-color-light-gray-20: #cdd1d5;
--wb-color-light-gray-30: #b1b8be;
--wb-color-light-gray-40: #8a949e;
--wb-color-light-gray-50: #6d7882;
--wb-color-light-gray-60: #58616a;
--wb-color-light-gray-70: #464c53;
--wb-color-light-gray-80: #33363d;
--wb-color-light-gray-90: #1e2124;
--wb-color-light-gray-95: #131416;
--wb-color-light-gray-100: #000000;
--wb-color-light-alpha-black100: #000000;
--wb-color-light-alpha-black75: #000000bf;
--wb-color-light-alpha-black50: #00000080;
--wb-color-light-alpha-black25: #00000040;
--wb-color-light-alpha-black10: #0000001a;
--wb-color-light-alpha-black0: #00000000;
--wb-color-light-alpha-white100: #ffffff;
--wb-color-light-alpha-white75: #ffffffbf;
--wb-color-light-alpha-white50: #ffffff80;
--wb-color-light-alpha-white25: #ffffff40;
--wb-color-light-alpha-white10: #ffffff1a;
--wb-color-light-alpha-white0: #ffffff00;
--wb-color-light-danger-5: #fdefec;
--wb-color-light-danger-10: #fcdfd9;
--wb-color-light-danger-20: #f7afa1;
--wb-color-light-danger-30: #f48771;
--wb-color-light-danger-40: #f05f42;
--wb-color-light-danger-50: #de3412;
--wb-color-light-danger-60: #bd2c0f;
--wb-color-light-danger-70: #8a240f;
--wb-color-light-danger-80: #5c180a;
--wb-color-light-danger-90: #390d05;
--wb-color-light-danger-95: #260903;
--wb-color-light-information-5: #e7f4fe;
--wb-color-light-information-10: #d3ebfd;
--wb-color-light-information-20: #9ed2fa;
--wb-color-light-information-30: #5fb5f7;
--wb-color-light-information-40: #2098f3;
--wb-color-light-information-50: #0b78cb;
--wb-color-light-information-60: #096ab3;
--wb-color-light-information-70: #085691;
--wb-color-light-information-80: #053961;
--wb-color-light-information-90: #03253f;
--wb-color-light-information-95: #021a2c;
--wb-color-light-warning-5: #fff3db;
--wb-color-light-warning-10: #ffe0a3;
--wb-color-light-warning-20: #ffc95c;
--wb-color-light-warning-30: #ffb114;
--wb-color-light-warning-40: #c78500;
--wb-color-light-warning-50: #9e6a00;
--wb-color-light-warning-60: #8a5c00;
--wb-color-light-warning-70: #614100;
--wb-color-light-warning-80: #422c00;
--wb-color-light-warning-90: #2e1f00;
--wb-color-light-warning-95: #241800;
--wb-color-light-success-5: #eaf6ec;
--wb-color-light-success-10: #d8eedd;
--wb-color-light-success-20: #a9dab4;
--wb-color-light-success-30: #7ec88e;
--wb-color-light-success-40: #3fa654;
--wb-color-light-success-50: #228738;
--wb-color-light-success-60: #267337;
--wb-color-light-success-70: #285d33;
--wb-color-light-success-80: #1f4727;
--wb-color-light-success-90: #122b18;
--wb-color-light-success-95: #0e2012;
--wb-color-light-point-5: #fbeff0;
--wb-color-light-point-10: #f5d6d9;
--wb-color-light-point-20: #ebadb2;
--wb-color-light-point-30: #e0858c;
--wb-color-light-point-40: #d65c66;
--wb-color-light-point-50: #d63d4a;
--wb-color-light-point-60: #ab2b36;
--wb-color-light-point-70: #7a1f26;
--wb-color-light-point-80: #521419;
--wb-color-light-point-90: #310c0f;
--wb-color-light-point-95: #21080a;
--wb-color-light-graphic-10: #e5ecf9;
--wb-color-light-graphic-30: #98acc5;
--wb-color-light-graphic-50: #61758f;
--wb-color-light-graphic-70: #39506c;
--wb-color-light-graphic-90: #223a58;
--wb-color-high-contrast-gray-0: #ffffff;
--wb-color-high-contrast-gray-5: #f4f5f6;
--wb-color-high-contrast-gray-10: #e6e8ea;
--wb-color-high-contrast-gray-20: #cdd1d5;
--wb-color-high-contrast-gray-30: #b1b8be;
--wb-color-high-contrast-gray-40: #8a949e;
--wb-color-high-contrast-gray-50: #6d7882;
--wb-color-high-contrast-gray-60: #58616a;
--wb-color-high-contrast-gray-70: #464c53;
--wb-color-high-contrast-gray-80: #33363d;
--wb-color-high-contrast-gray-90: #1e2124;
--wb-color-high-contrast-gray-95: #131416;
--wb-color-high-contrast-gray-100: #000000;
--wb-color-high-contrast-primary-5: #ecf2fe;
--wb-color-high-contrast-primary-10: #d8e5fd;
--wb-color-high-contrast-primary-20: #b1cefb;
--wb-color-high-contrast-primary-30: #86aff9;
--wb-color-high-contrast-primary-40: #4c87f6;
--wb-color-high-contrast-primary-50: #256ef4;
--wb-color-high-contrast-primary-60: #0b50d0;
--wb-color-high-contrast-primary-70: #083891;
--wb-color-high-contrast-primary-80: #052561;
--wb-color-high-contrast-primary-90: #03163a;
--wb-color-high-contrast-primary-95: #020f27;
--wb-color-high-contrast-secondary-5: #edf6f8;
--wb-color-high-contrast-secondary-10: #d5ebf1;
--wb-color-high-contrast-secondary-20: #abd8e3;
--wb-color-high-contrast-secondary-30: #75c0d1;
--wb-color-high-contrast-secondary-40: #3d9fb8;
--wb-color-high-contrast-secondary-50: #268097;
--wb-color-high-contrast-secondary-60: #1f687a;
--wb-color-high-contrast-secondary-70: #17505e;
--wb-color-high-contrast-secondary-80: #113b45;
--wb-color-high-contrast-secondary-90: #0e3139;
--wb-color-high-contrast-secondary-95: #091f25;
--wb-color-high-contrast-point-5: #fbeff0;
--wb-color-high-contrast-point-10: #f5d6d9;
--wb-color-high-contrast-point-20: #ebadb2;
--wb-color-high-contrast-point-30: #e0858c;
--wb-color-high-contrast-point-40: #d65c66;
--wb-color-high-contrast-point-50: #d63d4a;
--wb-color-high-contrast-point-60: #ab2b36;
--wb-color-high-contrast-point-70: #7a1f26;
--wb-color-high-contrast-point-80: #521419;
--wb-color-high-contrast-point-90: #310c0f;
--wb-color-high-contrast-point-95: #21080a;
--wb-color-high-contrast-danger-5: #fdefec;
--wb-color-high-contrast-danger-10: #fcdfd9;
--wb-color-high-contrast-danger-20: #f7afa1;
--wb-color-high-contrast-danger-30: #f48771;
--wb-color-high-contrast-danger-40: #f05f42;
--wb-color-high-contrast-danger-50: #de3412;
--wb-color-high-contrast-danger-60: #bd2c0f;
--wb-color-high-contrast-danger-70: #8a240f;
--wb-color-high-contrast-danger-80: #5c180a;
--wb-color-high-contrast-danger-90: #390d05;
--wb-color-high-contrast-danger-95: #260903;
--wb-color-high-contrast-warning-5: #fff3db;
--wb-color-high-contrast-warning-10: #ffe0a3;
--wb-color-high-contrast-warning-20: #ffc95c;
--wb-color-high-contrast-warning-30: #ffb114;
--wb-color-high-contrast-warning-40: #c78500;
--wb-color-high-contrast-warning-50: #9e6a00;
--wb-color-high-contrast-warning-60: #8a5c00;
--wb-color-high-contrast-warning-70: #614100;
--wb-color-high-contrast-warning-80: #422c00;
--wb-color-high-contrast-warning-90: #2e1f00;
--wb-color-high-contrast-warning-95: #241800;
--wb-color-high-contrast-success-5: #eaf6ec;
--wb-color-high-contrast-success-10: #d8eedd;
--wb-color-high-contrast-success-20: #a9dab4;
--wb-color-high-contrast-success-30: #7ec88e;
--wb-color-high-contrast-success-40: #3fa654;
--wb-color-high-contrast-success-50: #228738;
--wb-color-high-contrast-success-60: #267337;
--wb-color-high-contrast-success-70: #285d33;
--wb-color-high-contrast-success-80: #1f4727;
--wb-color-high-contrast-success-90: #122b18;
--wb-color-high-contrast-success-95: #0e2012;
--wb-color-high-contrast-information-5: #e7f4fe;
--wb-color-high-contrast-information-10: #d3ebfd;
--wb-color-high-contrast-information-20: #9ed2fa;
--wb-color-high-contrast-information-30: #5fb5f7;
--wb-color-high-contrast-information-40: #2098f3;
--wb-color-high-contrast-information-50: #0b78cb;
--wb-color-high-contrast-information-60: #096ab3;
--wb-color-high-contrast-information-70: #085691;
--wb-color-high-contrast-information-80: #053961;
--wb-color-high-contrast-information-90: #03253f;
--wb-color-high-contrast-information-95: #021a2c;
--wb-color-high-contrast-alpha-black100: #000000;
--wb-color-high-contrast-alpha-black75: #000000bf;
--wb-color-high-contrast-alpha-black50: #00000080;
--wb-color-high-contrast-alpha-black25: #00000040;
--wb-color-high-contrast-alpha-black10: #0000001a;
--wb-color-high-contrast-alpha-black0: #00000000;
--wb-color-high-contrast-alpha-white100: #ffffff;
--wb-color-high-contrast-alpha-white75: #ffffffbf;
--wb-color-high-contrast-alpha-white50: #ffffff80;
--wb-color-high-contrast-alpha-white25: #ffffff40;
--wb-color-high-contrast-alpha-white10: #ffffff1a;
--wb-color-high-contrast-alpha-white0: #ffffff00;
--wb-color-high-contrast-graphic-10: #e5ecf9;
--wb-color-high-contrast-graphic-30: #98acc5;
--wb-color-high-contrast-graphic-50: #61758f;
--wb-color-high-contrast-graphic-70: #39506c;
--wb-color-high-contrast-graphic-90: #223a58;
--wb-typo-font-type: Pretendard GOV;
--wb-typo-font-weight-regular: Regular;
--wb-typo-font-weight-bold: Bold;
--wb-typo-letter-spacing-0: 0rem;
--wb-typo-letter-spacing-1: 0.1rem;
--wb-number-0: 0rem;
--wb-number-1: 0.1rem;
--wb-number-2: 0.2rem;
--wb-number-3: 0.4rem;
--wb-number-4: 0.6rem;
--wb-number-5: 0.8rem;
--wb-number-6: 1rem;
--wb-number-7: 1.2rem;
--wb-number-8: 1.6rem;
--wb-number-9: 2rem;
--wb-number-10: 2.4rem;
--wb-number-11: 2.8rem;
--wb-number-12: 3.2rem;
--wb-number-13: 3.6rem;
--wb-number-14: 4rem;
--wb-number-15: 4.4rem;
--wb-number-16: 4.8rem;
--wb-number-17: 5.6rem;
--wb-number-18: 6.4rem;
--wb-number-19: 7.2rem;
--wb-number-20: 8rem;
--wb-number-21: 9.6rem;
--wb-number-max: 100rem;
/* MODE-LIGHT */
--wb-light-color-surface-gray-subtler: var(--wb-color-light-gray-5);
--wb-light-color-surface-gray-subtle: var(--wb-color-light-gray-10);
--wb-light-color-surface-disabled: var(--wb-color-light-gray-20);
--wb-light-color-surface-primary-subtler: var(--wb-color-light-primary-5);
--wb-light-color-surface-secondary-subtler: var(--wb-color-light-secondary-5);
--wb-light-color-surface-danger-subtler: var(--wb-color-light-danger-5);
--wb-light-color-surface-warning-subtler: var(--wb-color-light-warning-5);
--wb-light-color-surface-success-subtler: var(--wb-color-light-success-5);
--wb-light-color-surface-information-subtler: var(--wb-color-light-information-5);
--wb-light-color-surface-point-subtler: var(--wb-color-light-point-5);
--wb-light-color-surface-white: var(--wb-color-light-gray-0);
--wb-light-color-surface-inverse: var(--wb-color-light-gray-90);
--wb-light-color-surface-white-static: var(--wb-color-light-gray-0);
--wb-light-color-surface-inverse-static: var(--wb-color-light-gray-90);
--wb-light-color-surface-white-subtle: var(--wb-color-light-gray-0);
--wb-light-color-surface-white-subtler: var(--wb-color-light-gray-0);
--wb-light-color-border-gray-light: var(--wb-color-light-gray-20);
--wb-light-color-border-gray: var(--wb-color-light-gray-30);
--wb-light-color-border-secondary-light: var(--wb-color-light-secondary-10);
--wb-light-color-border-danger-light: var(--wb-color-light-danger-10);
--wb-light-color-border-danger: var(--wb-color-light-danger-50);
--wb-light-color-border-warning-light: var(--wb-color-light-warning-10);
--wb-light-color-border-warning: var(--wb-color-light-warning-50);
--wb-light-color-border-success-light: var(--wb-color-light-success-10);
--wb-light-color-border-success: var(--wb-color-light-success-50);
--wb-light-color-border-information-light: var(--wb-color-light-information-10);
--wb-light-color-border-information: var(--wb-color-light-information-50);
--wb-light-color-border-gray-dark: var(--wb-color-light-gray-60);
--wb-light-color-border-primary: var(--wb-color-light-primary-50);
--wb-light-color-border-disabled: var(--wb-color-light-gray-30);
--wb-light-color-border-gray-darker: var(--wb-color-light-gray-90);
--wb-light-color-border-secondary: var(--wb-color-light-secondary-70);
--wb-light-color-border-inverse: var(--wb-color-light-gray-0);
--wb-light-color-border-transparency: var(--wb-color-light-alpha-black0);
--wb-light-color-border-primary-light: var(--wb-color-light-primary-10);
--wb-light-color-border-point: var(--wb-color-light-point-50);
--wb-light-color-border-point-light: var(--wb-color-light-point-10);
--wb-light-color-divider-gray-light: var(--wb-color-light-gray-20);
--wb-light-color-divider-gray: var(--wb-color-light-gray-40);
--wb-light-color-divider-gray-dark: var(--wb-color-light-gray-50);
--wb-light-color-divider-primary: var(--wb-color-light-primary-50);
--wb-light-color-divider-secondary-light: var(--wb-color-light-secondary-10);
--wb-light-color-divider-secondary: var(--wb-color-light-secondary-70);
--wb-light-color-divider-error: var(--wb-color-light-danger-50);
--wb-light-color-divider-primary-light: var(--wb-color-light-primary-10);
--wb-light-color-divider-inverse: var(--wb-color-light-gray-0);
--wb-light-color-divider-gray-darker: var(--wb-color-light-gray-90);
--wb-light-color-divider-point: var(--wb-color-light-point-50);
--wb-light-color-text-bolder: var(--wb-color-light-gray-95);
--wb-light-color-text-subtle: var(--wb-color-light-gray-70);
--wb-light-color-text-disabled: var(--wb-color-light-gray-40);
--wb-light-color-text-disabled-on: var(--wb-color-light-gray-50);
--wb-light-color-text-primary: var(--wb-color-light-primary-60);
--wb-light-color-text-secondary: var(--wb-color-light-secondary-80);
--wb-light-color-text-danger: var(--wb-color-light-danger-60);
--wb-light-color-text-warning: var(--wb-color-light-warning-60);
--wb-light-color-text-success: var(--wb-color-light-success-60);
--wb-light-color-text-information: var(--wb-color-light-information-60);
--wb-light-color-text-basic: var(--wb-color-light-gray-90);
--wb-light-color-text-point: var(--wb-color-light-point-60);
--wb-light-color-text-bolder-inverse: var(--wb-color-light-gray-0);
--wb-light-color-text-basic-inverse: var(--wb-color-light-gray-0);
--wb-light-color-text-subtle-inverse: var(--wb-color-light-gray-30);
--wb-light-color-text-inverse-static: var(--wb-color-light-gray-0);
--wb-light-color-text-static: var(--wb-color-light-gray-90);
--wb-light-color-icon-gray: var(--wb-color-light-gray-80);
--wb-light-color-icon-gray-fill: var(--wb-color-light-gray-20);
--wb-light-color-icon-inverse: var(--wb-color-light-gray-0);
--wb-light-color-icon-primary: var(--wb-color-light-primary-50);
--wb-light-color-icon-secondary: var(--wb-color-light-secondary-80);
--wb-light-color-icon-point: var(--wb-color-light-point-50);
--wb-light-color-icon-danger: var(--wb-color-light-danger-50);
--wb-light-color-icon-warning: var(--wb-color-light-warning-50);
--wb-light-color-icon-success: var(--wb-color-light-success-50);
--wb-light-color-icon-information: var(--wb-color-light-information-50);
--wb-light-color-icon-gray-light: var(--wb-color-light-gray-70);
--wb-light-color-icon-disabled: var(--wb-color-light-gray-40);
--wb-light-color-icon-disabled-on: var(--wb-color-light-gray-50);
--wb-light-color-icon-inverse-static: var(--wb-color-light-gray-0);
--wb-light-color-icon-primary-static: var(--wb-color-light-primary-50);
--wb-light-color-icon-secondary-static: var(--wb-color-light-secondary-80);
--wb-light-color-icon-point-static: var(--wb-color-light-point-50);
--wb-light-color-icon-danger-static: var(--wb-color-light-danger-50);
--wb-light-color-icon-warning-static: var(--wb-color-light-warning-50);
--wb-light-color-icon-success-static: var(--wb-color-light-success-50);
--wb-light-color-icon-information-static: var(--wb-color-light-information-50);
--wb-light-color-icon-gray-static: var(--wb-color-light-gray-80);
--wb-light-color-link-default: var(--wb-color-light-primary-50);
--wb-light-color-link-hover: var(--wb-color-light-primary-60);
--wb-light-color-link-pressed: var(--wb-color-light-primary-70);
--wb-light-color-link-visited: #5917b8;
--wb-light-color-button-primary-fill: var(--wb-color-light-primary-50);
--wb-light-color-button-primary-fill-hover: var(--wb-color-light-primary-60);
--wb-light-color-button-primary-fill-pressed: var(--wb-color-light-primary-70);
--wb-light-color-button-secondary-fill: var(--wb-color-light-primary-5);
--wb-light-color-button-secondary-fill-hover: var(--wb-color-light-primary-10);
--wb-light-color-button-secondary-fill-pressed: var(--wb-color-light-primary-20);
--wb-light-color-button-secondary-border: var(--wb-color-light-primary-50);
--wb-light-color-button-tertiary-fill: var(--wb-color-light-alpha-white0);
--wb-light-color-button-tertiary-fill-hover: var(--wb-color-light-gray-5);
--wb-light-color-button-tertiary-fill-pressed: var(--wb-color-light-gray-10);
--wb-light-color-button-tertiary-border: var(--wb-color-light-gray-60);
--wb-light-color-button-disabled-fill: var(--wb-color-light-gray-20);
--wb-light-color-button-text-fill-hover: var(--wb-color-light-secondary-5);
--wb-light-color-button-text-fill-pressed: var(--wb-color-light-secondary-10);
--wb-light-color-button-text-fill: var(--wb-color-light-alpha-white0);
--wb-light-color-button-text-border: var(--wb-color-light-alpha-black0);
--wb-light-color-button-disabled-border: var(--wb-color-light-gray-30);
--wb-light-color-background-white: var(--wb-color-light-gray-0);
--wb-light-color-background-inverse: var(--wb-color-light-gray-90);
--wb-light-color-background-gray-subtler: var(--wb-color-light-gray-5);
--wb-light-color-background-gray-subtle: var(--wb-color-light-gray-10);
--wb-light-color-background-dim: var(--wb-color-light-alpha-black75);
--wb-light-color-element-disabled-light: var(--wb-color-light-gray-20);
--wb-light-color-element-disabled-dark: var(--wb-color-light-gray-40);
--wb-light-color-element-gray-lighter: var(--wb-color-light-gray-5);
--wb-light-color-element-gray-light: var(--wb-color-light-gray-10);
--wb-light-color-element-gray: var(--wb-color-light-gray-50);
--wb-light-color-element-primary-lighter: var(--wb-color-light-primary-5);
--wb-light-color-element-primary-light: var(--wb-color-light-primary-10);
--wb-light-color-element-primary: var(--wb-color-light-primary-50);
--wb-light-color-element-secondary-lighter: var(--wb-color-light-secondary-5);
--wb-light-color-element-secondary-light: var(--wb-color-light-secondary-10);
--wb-light-color-element-secondary: var(--wb-color-light-secondary-70);
--wb-light-color-element-point-lighter: var(--wb-color-light-point-5);
--wb-light-color-element-point-light: var(--wb-color-light-point-10);
--wb-light-color-element-point: var(--wb-color-light-point-50);
--wb-light-color-element-danger-lighter: var(--wb-color-light-danger-5);
--wb-light-color-element-danger: var(--wb-color-light-danger-50);
--wb-light-color-element-warning-lighter: var(--wb-color-light-warning-5);
--wb-light-color-element-warning: var(--wb-color-light-warning-30);
--wb-light-color-element-success-lighter: var(--wb-color-light-success-5);
--wb-light-color-element-success: var(--wb-color-light-success-50);
--wb-light-color-element-information-lighter: var(--wb-color-light-information-5);
--wb-light-color-element-information: var(--wb-color-light-information-50);
--wb-light-color-element-inverse: var(--wb-color-light-gray-0);
--wb-light-color-element-gray-dark: var(--wb-color-light-gray-60);
--wb-light-color-element-inverse-static: var(--wb-color-light-gray-0);
--wb-light-color-action-white: var(--wb-color-light-gray-0);
--wb-light-color-action-primary: var(--wb-color-light-alpha-white0);
--wb-light-color-action-primary-hover: var(--wb-color-light-primary-5);
--wb-light-color-action-primary-pressed: var(--wb-color-light-primary-10);
--wb-light-color-action-secondary: var(--wb-color-light-alpha-white0);
--wb-light-color-action-secondary-hover: var(--wb-color-light-secondary-5);
--wb-light-color-action-secondary-pressed: var(--wb-color-light-secondary-10);
--wb-light-color-action-secondary-selected: var(--wb-color-light-secondary-5);
--wb-light-color-action-secondary-on: var(--wb-color-light-alpha-white0);
--wb-light-color-action-secondary-on-hover: var(--wb-color-light-gray-0);
--wb-light-color-action-secondary-on-pressed: var(--wb-color-light-secondary-10);
--wb-light-color-action-secondary-on-selected: var(--wb-color-light-gray-0);
--wb-light-color-action-secondary-active: var(--wb-color-light-secondary-70);
--wb-light-color-action-primary-active: var(--wb-color-light-primary-50);
--wb-light-color-action-disabled: var(--wb-color-light-gray-20);
--wb-light-color-action-primary-selected: var(--wb-color-light-primary-5);
--wb-light-color-input-border: var(--wb-color-light-gray-60);
--wb-light-color-input-border-disabled: var(--wb-color-light-gray-30);
--wb-light-color-input-border-active: var(--wb-color-light-primary-50);
--wb-light-color-input-border-error: var(--wb-color-light-danger-50);
--wb-light-color-input-surface: var(--wb-color-light-gray-0);
--wb-light-color-input-surface-disabled: var(--wb-color-light-gray-20);
--wb-light-color-graphic-blue-subtler: var(--wb-color-light-graphic-10);
--wb-light-color-graphic-blue-subtle: var(--wb-color-light-graphic-30);
--wb-light-color-graphic-blue: var(--wb-color-light-graphic-50);
--wb-light-color-graphic-blue-dark: var(--wb-color-light-graphic-70);
--wb-light-color-graphic-blue-darker: var(--wb-color-light-graphic-90);
--wb-light-color-graphic-red-subtler: var(--wb-color-light-point-5);
--wb-light-color-graphic-red-subtle: var(--wb-color-light-point-10);
--wb-light-color-graphic-red: var(--wb-color-high-contrast-point-20);
--wb-light-color-graphic-red-dark: var(--wb-color-high-contrast-point-40);
--wb-light-color-graphic-red-darker: var(--wb-color-high-contrast-point-70);
--wb-light-color-graphic-brand: var(--wb-color-light-primary-50);
--wb-light-color-alpha-base100: var(--wb-color-light-alpha-white100);
--wb-light-color-alpha-base50: var(--wb-color-light-alpha-white50);
--wb-light-color-alpha-base25: var(--wb-color-high-contrast-alpha-white25);
--wb-light-color-alpha-base0: var(--wb-color-light-alpha-white0);
--wb-light-color-alpha-inverse100: var(--wb-color-light-alpha-black100);
--wb-light-color-alpha-inverse50: var(--wb-color-light-alpha-black50);
--wb-light-color-alpha-inverse25: var(--wb-color-light-alpha-black25);
--wb-light-color-alpha-inverse0: var(--wb-color-light-alpha-black0);
--wb-light-color-alpha-base75: var(--wb-color-light-alpha-white75);
--wb-light-color-alpha-inverse75: var(--wb-color-light-alpha-black75);
--wb-light-color-alpha-inverse10: var(--wb-color-light-alpha-black10);
--wb-light-color-alpha-base10: var(--wb-color-high-contrast-alpha-white10);
--wb-light-color-alpha-shadow1: #0000000d;
--wb-light-color-alpha-shadow2: #00000014;
--wb-light-color-alpha-shadow3: #0000001f;
--wb-light-border-width-variable-regular: 0.1rem;
--wb-light-border-width-variable-medium: 0.2rem;
--wb-light-border-width-static-regular: 0.1rem;
--wb-light-border-width-static-medium: 0.2rem;
/* MODE-HIGH-CONTRAST */
--wb-high-contrast-color-surface-gray-subtler: var(--wb-color-high-contrast-gray-95);
--wb-high-contrast-color-surface-gray-subtle: var(--wb-color-high-contrast-gray-90);
--wb-high-contrast-color-surface-disabled: var(--wb-color-high-contrast-gray-70);
--wb-high-contrast-color-surface-primary-subtler: var(--wb-color-high-contrast-primary-95);
--wb-high-contrast-color-surface-secondary-subtler: var(--wb-color-high-contrast-secondary-95);
--wb-high-contrast-color-surface-danger-subtler: var(--wb-color-high-contrast-danger-95);
--wb-high-contrast-color-surface-warning-subtler: var(--wb-color-high-contrast-warning-95);
--wb-high-contrast-color-surface-success-subtler: var(--wb-color-high-contrast-success-95);
--wb-high-contrast-color-surface-information-subtler: var(--wb-color-high-contrast-information-95);
--wb-high-contrast-color-surface-point-subtler: var(--wb-color-high-contrast-point-95);
--wb-high-contrast-color-surface-white: var(--wb-color-high-contrast-gray-100);
--wb-high-contrast-color-surface-inverse: var(--wb-color-high-contrast-gray-10);
--wb-high-contrast-color-surface-white-static: var(--wb-color-high-contrast-gray-0);
--wb-high-contrast-color-surface-inverse-static: var(--wb-color-high-contrast-gray-90);
--wb-high-contrast-color-surface-white-subtle: var(--wb-color-high-contrast-gray-95);
--wb-high-contrast-color-surface-white-subtler: var(--wb-color-high-contrast-gray-90);
--wb-high-contrast-color-border-gray-light: var(--wb-color-high-contrast-gray-80);
--wb-high-contrast-color-border-gray: var(--wb-color-high-contrast-gray-70);
--wb-high-contrast-color-border-secondary-light: var(--wb-color-high-contrast-secondary-90);
--wb-high-contrast-color-border-danger-light: var(--wb-color-high-contrast-danger-90);
--wb-high-contrast-color-border-danger: var(--wb-color-high-contrast-danger-50);
--wb-high-contrast-color-border-warning-light: var(--wb-color-high-contrast-warning-90);
--wb-high-contrast-color-border-warning: var(--wb-color-high-contrast-warning-50);
--wb-high-contrast-color-border-success-light: var(--wb-color-high-contrast-success-90);
--wb-high-contrast-color-border-success: var(--wb-color-high-contrast-success-50);
--wb-high-contrast-color-border-information-light: var(--wb-color-high-contrast-information-90);
--wb-high-contrast-color-border-information: var(--wb-color-high-contrast-information-50);
--wb-high-contrast-color-border-gray-dark: var(--wb-color-high-contrast-gray-40);
--wb-high-contrast-color-border-primary: var(--wb-color-high-contrast-primary-50);
--wb-high-contrast-color-border-disabled: var(--wb-color-high-contrast-gray-70);
--wb-high-contrast-color-border-gray-darker: var(--wb-color-high-contrast-gray-10);
--wb-high-contrast-color-border-secondary: var(--wb-color-high-contrast-secondary-60);
--wb-high-contrast-color-border-inverse: var(--wb-color-high-contrast-gray-100);
--wb-high-contrast-color-border-transparency: var(--wb-color-high-contrast-alpha-white25);
--wb-high-contrast-color-border-primary-light: var(--wb-color-high-contrast-primary-90);
--wb-high-contrast-color-border-point: var(--wb-color-high-contrast-point-50);
--wb-high-contrast-color-border-point-light: var(--wb-color-high-contrast-point-90);
--wb-high-contrast-color-divider-gray-light: var(--wb-color-high-contrast-gray-80);
--wb-high-contrast-color-divider-gray: var(--wb-color-high-contrast-gray-70);
--wb-high-contrast-color-divider-gray-dark: var(--wb-color-high-contrast-gray-50);
--wb-high-contrast-color-divider-primary: var(--wb-color-high-contrast-primary-50);
--wb-high-contrast-color-divider-secondary-light: var(--wb-color-high-contrast-secondary-90);
--wb-high-contrast-color-divider-secondary: var(--wb-color-high-contrast-secondary-60);
--wb-high-contrast-color-divider-error: var(--wb-color-high-contrast-danger-50);
--wb-high-contrast-color-divider-primary-light: var(--wb-color-high-contrast-primary-90);
--wb-high-contrast-color-divider-inverse: var(--wb-color-high-contrast-gray-100);
--wb-high-contrast-color-divider-gray-darker: var(--wb-color-high-contrast-gray-10);
--wb-high-contrast-color-divider-point: var(--wb-color-high-contrast-point-50);
--wb-high-contrast-color-text-bolder: var(--wb-color-high-contrast-gray-10);
--wb-high-contrast-color-text-subtle: var(--wb-color-high-contrast-gray-20);
--wb-high-contrast-color-text-disabled: var(--wb-color-high-contrast-gray-60);
--wb-high-contrast-color-text-disabled-on: var(--wb-color-high-contrast-gray-50);
--wb-high-contrast-color-text-primary: var(--wb-color-high-contrast-primary-20);
--wb-high-contrast-color-text-secondary: var(--wb-color-high-contrast-secondary-20);
--wb-high-contrast-color-text-danger: var(--wb-color-high-contrast-danger-20);
--wb-high-contrast-color-text-warning: var(--wb-color-high-contrast-warning-20);
--wb-high-contrast-color-text-success: var(--wb-color-high-contrast-success-20);
--wb-high-contrast-color-text-information: var(--wb-color-high-contrast-information-20);
--wb-high-contrast-color-text-basic: var(--wb-color-high-contrast-gray-5);
--wb-high-contrast-color-text-point: var(--wb-color-high-contrast-point-20);
--wb-high-contrast-color-text-bolder-inverse: var(--wb-color-high-contrast-gray-95);
--wb-high-contrast-color-text-basic-inverse: var(--wb-color-high-contrast-gray-90);
--wb-high-contrast-color-text-subtle-inverse: var(--wb-color-high-contrast-gray-70);
--wb-high-contrast-color-text-inverse-static: var(--wb-color-high-contrast-gray-0);
--wb-high-contrast-color-text-static: var(--wb-color-high-contrast-gray-90);
--wb-high-contrast-color-icon-gray: var(--wb-color-high-contrast-gray-5);
--wb-high-contrast-color-icon-gray-fill: var(--wb-color-high-contrast-gray-70);
--wb-high-contrast-color-icon-inverse: var(--wb-color-high-contrast-gray-90);
--wb-high-contrast-color-icon-primary: var(--wb-color-high-contrast-primary-20);
--wb-high-contrast-color-icon-secondary: var(--wb-color-high-contrast-secondary-20);
--wb-high-contrast-color-icon-point: var(--wb-color-high-contrast-point-20);
--wb-high-contrast-color-icon-danger: var(--wb-color-high-contrast-danger-20);
--wb-high-contrast-color-icon-warning: var(--wb-color-high-contrast-warning-20);
--wb-high-contrast-color-icon-success: var(--wb-color-high-contrast-success-20);
--wb-high-contrast-color-icon-information: var(--wb-color-high-contrast-information-20);
--wb-high-contrast-color-icon-gray-light: var(--wb-color-high-contrast-gray-20);
--wb-high-contrast-color-icon-disabled: var(--wb-color-high-contrast-gray-60);
--wb-high-contrast-color-icon-disabled-on: var(--wb-color-high-contrast-gray-50);
--wb-high-contrast-color-icon-inverse-static: var(--wb-color-high-contrast-gray-0);
--wb-high-contrast-color-icon-primary-static: var(--wb-color-high-contrast-primary-50);
--wb-high-contrast-color-icon-secondary-static: var(--wb-color-high-contrast-secondary-80);
--wb-high-contrast-color-icon-point-static: var(--wb-color-high-contrast-point-50);
--wb-high-contrast-color-icon-danger-static: var(--wb-color-high-contrast-danger-50);
--wb-high-contrast-color-icon-warning-static: var(--wb-color-high-contrast-warning-50);
--wb-high-contrast-color-icon-success-static: var(--wb-color-high-contrast-success-50);
--wb-high-contrast-color-icon-information-static: var(--wb-color-high-contrast-information-50);
--wb-high-contrast-color-icon-gray-static: var(--wb-color-high-contrast-gray-80);
--wb-high-contrast-color-link-default: var(--wb-color-high-contrast-primary-30);
--wb-high-contrast-color-link-hover: var(--wb-color-high-contrast-primary-20);
--wb-high-contrast-color-link-pressed: var(--wb-color-high-contrast-primary-10);
--wb-high-contrast-color-link-visited: #c49ff9;
--wb-high-contrast-color-button-primary-fill: var(--wb-color-high-contrast-primary-50);
--wb-high-contrast-color-button-primary-fill-hover: var(--wb-color-high-contrast-primary-60);
--wb-high-contrast-color-button-primary-fill-pressed: var(--wb-color-high-contrast-primary-70);
--wb-high-contrast-color-button-secondary-fill: var(--wb-color-high-contrast-primary-95);
--wb-high-contrast-color-button-secondary-fill-hover: var(--wb-color-high-contrast-primary-90);
--wb-high-contrast-color-button-secondary-fill-pressed: var(--wb-color-high-contrast-primary-80);
--wb-high-contrast-color-button-secondary-border: var(--wb-color-high-contrast-primary-50);
--wb-high-contrast-color-button-tertiary-fill: var(--wb-color-high-contrast-alpha-black0);
--wb-high-contrast-color-button-tertiary-fill-hover: var(--wb-color-high-contrast-gray-95);
--wb-high-contrast-color-button-tertiary-fill-pressed: var(--wb-color-high-contrast-gray-80);
--wb-high-contrast-color-button-tertiary-border: var(--wb-color-high-contrast-gray-40);
--wb-high-contrast-color-button-disabled-fill: var(--wb-color-high-contrast-gray-80);
--wb-high-contrast-color-button-text-fill-hover: var(--wb-color-high-contrast-secondary-95);
--wb-high-contrast-color-button-text-fill-pressed: var(--wb-color-high-contrast-secondary-90);
--wb-high-contrast-color-button-text-fill: var(--wb-color-high-contrast-alpha-black0);
--wb-high-contrast-color-button-text-border: var(--wb-color-high-contrast-alpha-white50);
--wb-high-contrast-color-button-disabled-border: var(--wb-color-high-contrast-gray-70);
--wb-high-contrast-color-background-white: var(--wb-color-high-contrast-gray-100);
--wb-high-contrast-color-background-inverse: var(--wb-color-high-contrast-gray-10);
--wb-high-contrast-color-background-gray-subtler: var(--wb-color-high-contrast-gray-95);
--wb-high-contrast-color-background-gray-subtle: var(--wb-color-high-contrast-gray-90);
--wb-high-contrast-color-background-dim: var(--wb-color-high-contrast-alpha-black75);
--wb-high-contrast-color-element-disabled-light: var(--wb-color-high-contrast-gray-80);
--wb-high-contrast-color-element-disabled-dark: var(--wb-color-high-contrast-gray-60);
--wb-high-contrast-color-element-gray-lighter: var(--wb-color-high-contrast-gray-95);
--wb-high-contrast-color-element-gray-light: var(--wb-color-high-contrast-gray-90);
--wb-high-contrast-color-element-gray: var(--wb-color-high-contrast-gray-50);
--wb-high-contrast-color-element-primary-lighter: var(--wb-color-high-contrast-primary-95);
--wb-high-contrast-color-element-primary-light: var(--wb-color-high-contrast-primary-90);
--wb-high-contrast-color-element-primary: var(--wb-color-high-contrast-primary-50);
--wb-high-contrast-color-element-secondary-lighter: var(--wb-color-high-contrast-secondary-95);
--wb-high-contrast-color-element-secondary-light: var(--wb-color-high-contrast-secondary-90);
--wb-high-contrast-color-element-secondary: var(--wb-color-high-contrast-secondary-60);
--wb-high-contrast-color-element-point-lighter: var(--wb-color-high-contrast-point-95);
--wb-high-contrast-color-element-point-light: var(--wb-color-high-contrast-point-90);
--wb-high-contrast-color-element-point: var(--wb-color-high-contrast-point-50);
--wb-high-contrast-color-element-danger-lighter: var(--wb-color-high-contrast-danger-95);
--wb-high-contrast-color-element-danger: var(--wb-color-high-contrast-danger-50);
--wb-high-contrast-color-element-warning-lighter: var(--wb-color-high-contrast-warning-95);
--wb-high-contrast-color-element-warning: var(--wb-color-high-contrast-warning-30);
--wb-high-contrast-color-element-success-lighter: var(--wb-color-high-contrast-success-95);
--wb-high-contrast-color-element-success: var(--wb-color-high-contrast-success-50);
--wb-high-contrast-color-element-information-lighter: var(--wb-color-high-contrast-information-95);
--wb-high-contrast-color-element-information: var(--wb-color-high-contrast-information-50);
--wb-high-contrast-color-element-inverse: var(--wb-color-high-contrast-gray-95);
--wb-high-contrast-color-element-gray-dark: var(--wb-color-high-contrast-gray-40);
--wb-high-contrast-color-element-inverse-static: var(--wb-color-high-contrast-gray-0);
--wb-high-contrast-color-action-white: var(--wb-color-light-gray-100);
--wb-high-contrast-color-action-primary: var(--wb-color-high-contrast-alpha-black0);
--wb-high-contrast-color-action-primary-hover: var(--wb-color-high-contrast-primary-95);
--wb-high-contrast-color-action-primary-pressed: var(--wb-color-high-contrast-primary-90);
--wb-high-contrast-color-action-secondary: var(--wb-color-light-alpha-black0);
--wb-high-contrast-color-action-secondary-hover: var(--wb-color-high-contrast-secondary-95);
--wb-high-contrast-color-action-secondary-pressed: var(--wb-color-high-contrast-secondary-90);
--wb-high-contrast-color-action-secondary-selected: var(--wb-color-high-contrast-secondary-95);
--wb-high-contrast-color-action-secondary-on: var(--wb-color-high-contrast-alpha-black0);
--wb-high-contrast-color-action-secondary-on-hover: var(--wb-color-high-contrast-gray-100);
--wb-high-contrast-color-action-secondary-on-pressed: var(--wb-color-high-contrast-secondary-90);
--wb-high-contrast-color-action-secondary-on-selected: var(--wb-color-high-contrast-gray-95);
--wb-high-contrast-color-action-secondary-active: var(--wb-color-high-contrast-secondary-60);
--wb-high-contrast-color-action-primary-active: var(--wb-color-high-contrast-primary-50);
--wb-high-contrast-color-action-disabled: var(--wb-color-high-contrast-gray-80);
--wb-high-contrast-color-action-primary-selected: var(--wb-color-high-contrast-primary-95);
--wb-high-contrast-color-input-border: var(--wb-color-high-contrast-gray-40);
--wb-high-contrast-color-input-border-disabled: var(--wb-color-high-contrast-gray-70);
--wb-high-contrast-color-input-border-active: var(--wb-color-high-contrast-primary-50);
--wb-high-contrast-color-input-border-error: var(--wb-color-high-contrast-danger-50);
--wb-high-contrast-color-input-surface: var(--wb-color-high-contrast-gray-90);
--wb-high-contrast-color-input-surface-disabled: var(--wb-color-high-contrast-gray-95);
--wb-high-contrast-color-graphic-blue-subtler: var(--wb-color-high-contrast-graphic-10);
--wb-high-contrast-color-graphic-blue-subtle: var(--wb-color-high-contrast-graphic-30);
--wb-high-contrast-color-graphic-blue: var(--wb-color-high-contrast-graphic-50);
--wb-high-contrast-color-graphic-blue-dark: var(--wb-color-high-contrast-graphic-70);
--wb-high-contrast-color-graphic-blue-darker: var(--wb-color-high-contrast-graphic-90);
--wb-high-contrast-color-graphic-red-subtler: var(--wb-color-high-contrast-point-5);
--wb-high-contrast-color-graphic-red-subtle: var(--wb-color-high-contrast-point-10);
--wb-high-contrast-color-graphic-red: var(--wb-color-high-contrast-point-20);
--wb-high-contrast-color-graphic-red-dark: var(--wb-color-high-contrast-point-40);
--wb-high-contrast-color-graphic-red-darker: var(--wb-color-high-contrast-point-70);
--wb-high-contrast-color-graphic-brand: var(--wb-color-high-contrast-primary-50);
--wb-high-contrast-color-alpha-base100: var(--wb-color-high-contrast-alpha-black100);
--wb-high-contrast-color-alpha-base50: var(--wb-color-high-contrast-alpha-black50);
--wb-high-contrast-color-alpha-base25: var(--wb-color-high-contrast-alpha-black25);
--wb-high-contrast-color-alpha-base0: var(--wb-color-light-alpha-black0);
--wb-high-contrast-color-alpha-inverse100: var(--wb-color-high-contrast-alpha-white100);
--wb-high-contrast-color-alpha-inverse50: var(--wb-color-high-contrast-alpha-white50);
--wb-high-contrast-color-alpha-inverse25: var(--wb-color-high-contrast-alpha-white25);
--wb-high-contrast-color-alpha-inverse0: var(--wb-color-high-contrast-alpha-white0);
--wb-high-contrast-color-alpha-base75: var(--wb-color-high-contrast-alpha-black75);
--wb-high-contrast-color-alpha-inverse75: var(--wb-color-high-contrast-alpha-white75);
--wb-high-contrast-color-alpha-inverse10: var(--wb-color-high-contrast-alpha-black25);
--wb-high-contrast-color-alpha-base10: var(--wb-color-high-contrast-alpha-black10);
--wb-high-contrast-color-alpha-shadow1: #0000001f;
--wb-high-contrast-color-alpha-shadow2: #00000033;
--wb-high-contrast-color-alpha-shadow3: #00000066;
--wb-high-contrast-border-width-variable-regular: 0.2rem;
--wb-high-contrast-border-width-variable-medium: 0.3rem;
--wb-high-contrast-border-width-static-regular: 0.1rem;
--wb-high-contrast-border-width-static-medium: 0.2rem;
/* RESPONSIVE-PC */
--wb-pc-font-size-display-large: 6rem;
--wb-pc-font-size-display-medium: 4.4rem;
--wb-pc-font-size-display-small: 3.6rem;
--wb-pc-font-size-body-large: 1.9rem;
--wb-pc-font-size-body-medium: 1.7rem;
--wb-pc-font-size-body-small: 1.5rem;
--wb-pc-font-size-body-xsmall: 1.3rem;
--wb-pc-font-size-label-large: 1.9rem;
--wb-pc-font-size-label-medium: 1.7rem;
--wb-pc-font-size-label-small: 1.5rem;
--wb-pc-font-size-label-xsmall: 1.3rem;
--wb-pc-font-size-heading-large: 3.2rem;
--wb-pc-font-size-heading-medium: 2.4rem;
--wb-pc-font-size-heading-small: 1.9rem;
--wb-pc-font-size-heading-xsmall: 1.7rem;
--wb-pc-font-size-heading-xxsmall: 1.5rem;
--wb-pc-font-size-heading-xlarge: 4rem;
--wb-pc-font-size-navigation-title-medium: 2.4rem;
--wb-pc-font-size-navigation-title-small: 1.9rem;
--wb-pc-font-size-navigation-depth-medium-bold: 1.7rem;
--wb-pc-font-size-navigation-depth-medium: 1.7rem;
--wb-pc-font-size-navigation-depth-small-bold: 1.5rem;
--wb-pc-font-size-navigation-depth-small: 1.5rem;
--wb-pc-gap-layout-header-breadcrumb: var(--wb-number-10);
--wb-pc-gap-layout-left-contents: var(--wb-number-18);
--wb-pc-gap-layout-contents-right: var(--wb-number-14);
--wb-pc-gap-layout-h1-h2: var(--wb-number-16);
--wb-pc-gap-layout-h2-h2: var(--wb-number-20);
--wb-pc-gap-layout-h2-h3: var(--wb-number-14);
--wb-pc-gap-layout-h3-h3: var(--wb-number-18);
--wb-pc-gap-layout-h3-h4: var(--wb-number-10);
--wb-pc-gap-layout-h4-h4: var(--wb-number-14);
--wb-pc-gap-layout-h4-h5: var(--wb-number-8);
--wb-pc-gap-layout-h5-h5: var(--wb-number-12);
--wb-pc-gap-layout-title-body-small: var(--wb-number-8);
--wb-pc-gap-layout-title-body-medium: var(--wb-number-9);
--wb-pc-gap-layout-title-body-large: var(--wb-number-10);
--wb-pc-gap-layout-breadcrumb-h1: var(--wb-number-14);
--wb-pc-gap-layout-contents-footer: var(--wb-number-18);
--wb-pc-gap-layout-text-text-large: var(--wb-number-9);
--wb-pc-gap-layout-text-text-medium: var(--wb-number-8);
--wb-pc-gap-layout-text-text-small: var(--wb-number-7);
--wb-pc-gap-layout-image-text-small: var(--wb-number-9);
--wb-pc-gap-layout-image-text-medium: var(--wb-number-10);
--wb-pc-gap-layout-image-text-large: var(--wb-number-12);
--wb-pc-padding-card-large: var(--wb-number-14);
--wb-pc-padding-card-medium: var(--wb-number-12);
--wb-pc-padding-card-small: var(--wb-number-10);
--wb-pc-padding-card-xsmall: var(--wb-number-8);
/* RESPONSIVE-MOBILE */
--wb-mobile-font-size-display-large: 4.4rem;
--wb-mobile-font-size-display-medium: 3.2rem;
--wb-mobile-font-size-display-small: 2.8rem;
--wb-mobile-font-size-body-large: 1.9rem;
--wb-mobile-font-size-body-medium: 1.7rem;
--wb-mobile-font-size-body-small: 1.5rem;
--wb-mobile-font-size-body-xsmall: 1.3rem;
--wb-mobile-font-size-label-large: 1.9rem;
--wb-mobile-font-size-label-medium: 1.7rem;
--wb-mobile-font-size-label-small: 1.5rem;
--wb-mobile-font-size-label-xsmall: 1.3rem;
--wb-mobile-font-size-heading-large: 2.4rem;
--wb-mobile-font-size-heading-medium: 2.2rem;
--wb-mobile-font-size-heading-small: 1.9rem;
--wb-mobile-font-size-heading-xsmall: 1.7rem;
--wb-mobile-font-size-heading-xxsmall: 1.5rem;
--wb-mobile-font-size-heading-xlarge: 2.8rem;
--wb-mobile-font-size-navigation-title-medium: 2.2rem;
--wb-mobile-font-size-navigation-title-small: 1.9rem;
--wb-mobile-font-size-navigation-depth-medium-bold: 1.7rem;
--wb-mobile-font-size-navigation-depth-medium: 1.7rem;
--wb-mobile-font-size-navigation-depth-small-bold: 1.5rem;
--wb-mobile-font-size-navigation-depth-small: 1.5rem;
--wb-mobile-gap-layout-header-breadcrumb: var(--wb-number-8);
--wb-mobile-gap-layout-left-contents: 0rem;
--wb-mobile-gap-layout-contents-right: 0rem;
--wb-mobile-gap-layout-h1-h2: var(--wb-number-12);
--wb-mobile-gap-layout-h2-h2: var(--wb-number-14);
--wb-mobile-gap-layout-h2-h3: var(--wb-number-10);
--wb-mobile-gap-layout-h3-h3: var(--wb-number-12);
--wb-mobile-gap-layout-h3-h4: var(--wb-number-8);
--wb-mobile-gap-layout-h4-h4: var(--wb-number-10);
--wb-mobile-gap-layout-h4-h5: var(--wb-number-7);
--wb-mobile-gap-layout-h5-h5: var(--wb-number-8);
--wb-mobile-gap-layout-title-body-small: var(--wb-number-5);
--wb-mobile-gap-layout-title-body-medium: var(--wb-number-7);
--wb-mobile-gap-layout-title-body-large: var(--wb-number-9);
--wb-mobile-gap-layout-breadcrumb-h1: var(--wb-number-12);
--wb-mobile-gap-layout-contents-footer: var(--wb-number-14);
--wb-mobile-gap-layout-text-text-large: var(--wb-number-8);
--wb-mobile-gap-layout-text-text-medium: var(--wb-number-7);
--wb-mobile-gap-layout-text-text-small: var(--wb-number-6);
--wb-mobile-gap-layout-image-text-small: var(--wb-number-8);
--wb-mobile-gap-layout-image-text-medium: var(--wb-number-9);
--wb-mobile-gap-layout-image-text-large: var(--wb-number-10);
--wb-mobile-padding-card-large: var(--wb-number-10);
--wb-mobile-padding-card-medium: var(--wb-number-10);
--wb-mobile-padding-card-small: var(--wb-number-9);
--wb-mobile-padding-card-xsmall: var(--wb-number-7);
/* SEMANTIC */
--wb-gap-1: var(--wb-number-2);
--wb-gap-2: var(--wb-number-3);
--wb-gap-3: var(--wb-number-5);
--wb-gap-4: var(--wb-number-7);
--wb-gap-5: var(--wb-number-8);
--wb-gap-6: var(--wb-number-9);
--wb-gap-7: var(--wb-number-10);
--wb-gap-8: var(--wb-number-12);
--wb-gap-9: var(--wb-number-14);
--wb-gap-10: var(--wb-number-16);
--wb-gap-11: var(--wb-number-18);
--wb-gap-12: var(--wb-number-20);
--wb-padding-1: var(--wb-number-2);
--wb-padding-2: var(--wb-number-3);
--wb-padding-3: var(--wb-number-5);
--wb-padding-4: var(--wb-number-6);
--wb-padding-5: var(--wb-number-7);
--wb-padding-6: var(--wb-number-8);
--wb-padding-7: var(--wb-number-9);
--wb-padding-8: var(--wb-number-10);
--wb-padding-9: var(--wb-number-12);
--wb-padding-10: var(--wb-number-14);
--wb-size-height-1: var(--wb-number-5);
--wb-size-height-2: var(--wb-number-8);
--wb-size-height-3: var(--wb-number-9);
--wb-size-height-4: var(--wb-number-10);
--wb-size-height-5: var(--wb-number-12);
--wb-size-height-6: var(--wb-number-14);
--wb-size-height-7: var(--wb-number-16);
--wb-size-height-8: var(--wb-number-17);
--wb-size-height-9: var(--wb-number-18);
--wb-size-height-10: var(--wb-number-19);
--wb-size-height-11: var(--wb-number-20);
--wb-radius-xsmall1: var(--wb-number-2);
--wb-radius-xsmall2: var(--wb-number-2);
--wb-radius-xsmall3: var(--wb-number-2);
--wb-radius-small1: var(--wb-number-3);
--wb-radius-small2: var(--wb-number-3);
--wb-radius-small3: var(--wb-number-3);
--wb-radius-medium1: var(--wb-number-4);
--wb-radius-medium2: var(--wb-number-4);
--wb-radius-medium3: var(--wb-number-5);
--wb-radius-medium4: var(--wb-number-5);
--wb-radius-large1: var(--wb-number-6);
--wb-radius-large2: var(--wb-number-6);
--wb-radius-xlarge1: var(--wb-number-7);
--wb-radius-xlarge2: var(--wb-number-7);
--wb-radius-max: var(--wb-number-max);
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,28 @@
{
"version": 3,
"mappings": "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 truncated
"sources": [
"common.scss",
"_path.scss",
"_wb_tokens.scss",
"_include.scss",
"_group_mixins.scss",
"mixins/_breakpoints.scss",
"_group_variables.scss",
"_variables_for_code.scss",
"mixins/_utils.scss",
"mixins/_icons.scss",
"mixins/_form.scss",
"mixins/_mixin.scss",
"_root.scss",
"_group_variables.scss",
"_variables_for_code.scss",
"_icon.scss",
"_dropdown.scss",
"_menu.scss",
"../_tokens.scss",
"_reset.scss"
],
"names": [],
"file": "common.css"
}
+13
View File
@@ -0,0 +1,13 @@
//공통
@import "path";
@import "wb_tokens";
@import "include";
@import "root";
@import "icon";
@import "dropdown";
@import "menu";
@import "reset";
@@ -0,0 +1,45 @@
@import "../group_variables";
@mixin size-medium { // 767까지
@media (max-width: ($breakpoint-medium - 1px)) {
@content;
}
}
@mixin size-medium-more { // 768이상
@media (min-width: calc($breakpoint-medium)) {
@content;
}
}
@mixin size-medium-to-large { // 768 ~ 1023
@media (min-width: calc($breakpoint-medium)) and (max-width: ($breakpoint-large - 1px)) {
@content
}
}
//tablet size 이하
@mixin size-large-less { // 1023까지
@media (max-width: ($breakpoint-large - 1px)) {
@content
}
}
//tablet size 이상
@mixin size-large-more { // 1024이상
@media (min-width: calc($breakpoint-large)) {
@content;
}
}
//소형 데스크톱
@mixin size-large-to-xlarge { // 1024 ~ 1279
@media (min-width: calc($breakpoint-large)) and (max-width: calc($breakpoint-xlarge - 1px)) {
@content;
}
}
@mixin size-xlarge { // 1280 이상
@media (min-width: $breakpoint-xlarge) {
@content;
}
}
@@ -0,0 +1,197 @@
@import 'mixin';
// Grid 설정 변수
$prefix: "grid"; // 변수 프리픽스
$grid-columns: 12; // 기본 컬럼 수
$grid-gutter-width: 1rem; // 기본 컬럼 간격
$grid-breakpoints: ( // 반응형 브레이크포인트
xs: 1200px,
);
$gutters: (sm: 0.5rem, md: 1rem, lg: 2rem); // Gutter 유틸리티
// Grid 클래스 활성화 여부
$enable-grid-classes: true !default; // Grid 클래스를 생성할지 여부
$enable-cssgrid: true !default; // CSS Grid 지원 활성화 여부
// Breakpoint Helper Mixin
@mixin media-breakpoint-up($breakpoint, $breakpoints) {
$value: map-get($breakpoints, $breakpoint);
@if $value != null {
@media (min-width: $value) {
@content;
}
} @else {
@error "Error: Breakpoint '#{$breakpoint}' not found in map.";
}
}
// Row Mixin
@mixin make-row($gutter: $grid-gutter-width) {
--#{$prefix}-gutter-x: #{$gutter};
--#{$prefix}-gutter-y: 0;
display: flex;
flex-wrap: wrap;
margin-left: calc(-0.5 * var(--#{$prefix}-gutter-x));
margin-right: calc(-0.5 * var(--#{$prefix}-gutter-x));
margin-top: calc(-1 * var(--#{$prefix}-gutter-y));
}
// Column Ready Mixin
@mixin make-col-ready() {
box-sizing: border-box;
flex-shrink: 0;
width: 100%;
max-width: 100%;
padding-left: calc(var(--#{$prefix}-gutter-x) / 2);
padding-right: calc(var(--#{$prefix}-gutter-x) / 2);
margin-top: var(--#{$prefix}-gutter-y);
}
// Flexbox Column Mixin
@mixin make-col($size: null, $columns: $grid-columns) {
@if $size == null {
flex: 1 1 0;
max-width: 100%;
} @else if type-of($size) == 'number' and type-of($columns) == 'number' and $columns > 0 {
flex: 0 0 percentage($size / $columns);
max-width: percentage($size / $columns);
} @else {
@error "Error: Invalid $size or $columns value. Received: Size=#{$size}, Columns=#{$columns}";
}
}
// CSS Grid Mixin
@mixin make-cssgrid($columns: $grid-columns) {
display: grid;
grid-template-columns: repeat($columns, 1fr);
gap: var(--#{$prefix}-gutter-x) var(--#{$prefix}-gutter-y);
}
// Generate Columns for Flexbox and Grid
@mixin make-grid-columns($columns: $grid-columns, $breakpoints: $grid-breakpoints) {
@each $breakpoint, $value in $breakpoints {
$infix: if($breakpoint == "xs", "", "-#{$breakpoint}");
@include media-breakpoint-up($breakpoint, $breakpoints) {
// Flexbox Columns
@for $i from 1 through $columns {
.col#{$infix}-#{$i} {
@include make-col($i, $columns);
}
}
// CSS Grid Columns
@for $i from 1 through $columns {
.g-col#{$infix}-#{$i} {
grid-column: span $i;
}
}
// Gutter Utilities
@each $key, $gutter in $gutters {
.g#{$infix}-#{$key} {
--#{$prefix}-gutter-x: #{$gutter};
--#{$prefix}-gutter-y: #{$gutter};
}
}
}
}
}
// Row Styles
.row {
@include make-row();
> * {
@include make-col-ready();
}
}
// Generate All Grid Classes
@if $enable-grid-classes {
@include make-grid-columns();
}
// CSS Grid Container
@if $enable-cssgrid {
.grid {
@include make-cssgrid($grid-columns);
}
}
// Base Styles
.filter {
display: flex;
flex-direction: column;
gap: 2rem; // 각 row 간의 간격 설정
width: 100%;
// Common Input Styles
.sec-input {
@include flex(row, center, start, center);
gap: 1.25rem;
.input-label{
@include flex(row, center, start, center);
font-size: var(--wb-pc-font-size-body-xsmall);
color: var(--wb-color-light-gray-70);
font-weight: var(--wb-typo-font-weight-bold);
text-align: left;
&.w-lg{
flex: 100px 0 0;
}
&.w-m{
flex: 70px 0 0;
}
&.w-auto{
flex: 0;
}
}
.input-group {
display: flex;
align-items: center;
gap: .75rem;
height:100%;
flex: 1;
.input{
width:100%;
height:100%;
input{
font-size: var(--wb-pc-font-size-body-small);
height:100%;
}
span{
@include flex(row, center, start, center);
height:100%;
font-size: var(--wb-pc-font-size-body-small);
color: var(--wb-color-light-gray-70);
border-right: none;
border-left: none;
}
}
}
}
// Button Group Styles
.btn-wrap {
display: flex;
justify-content: flex-end;
gap: 0.5rem;
height:100%;
button {
flex-shrink: 0; // 버튼 크기 고정
flex:1;
}
}
}
.k-list-md .k-list-item, .k-list-md .k-list-optionlabel{
font-size: var(--wb-pc-font-size-body-small);
}
table{
th,td{
font-size: 1.25rem !important
}
}
@@ -0,0 +1,35 @@
//svg img
@mixin svg-icon($size: var(--wb-icon--size-large), $mode: light, $effect: null) {
display: inline-flex;
@include square($size);
background-color: var(--wb-#{$mode}-color-text-basic);
@if ($effect == 'pure') { //mask 효과 없이 디자인된 svg 그대로 사용
background-color: transparent !important;
}
forced-color-adjust: none;
// @media (forced-colors: active) {
// }
}
//svg icon setting
@mixin icon-set ($name, $effect: null) {
-webkit-mask-repeat: no-repeat;
-webkit-mask-position: center center;
-webkit-mask-size: contain;
mask-repeat: no-repeat;
mask-position: center center;
mask-size: contain;
-webkit-mask-image: url(#{$url}/dist/images/#{$name}.svg);
mask-image: url(#{$url}/dist/images/#{$name}.svg);
@if ($effect == 'pure') { //mask 효과 없이 디자인된 svg 그대로 사용
-webkit-mask-image: none;
mask-image: none;
background-image: url(#{$url}/dist/images/#{$name}.svg);
background-color: transparent !important;
background-size: contain;
background-position: center;
background-repeat: no-repeat;
-webkit-mask: none;
mask: none;
}
}
@@ -0,0 +1,150 @@
@mixin resetLayout {
width: 100%;
margin: 0 auto;
box-sizing: border-box;
@content;
}
@mixin flex($direction, $wrap: nowrap, $justify: flex-start, $align: stretch) {
display: flex;
flex-direction: $direction;
flex-wrap: $wrap;
justify-content: $justify;
align-items: $align;
}
@mixin grid($columns, $rows: auto, $flow: row) {
display: grid;
grid-template-columns: $columns;
grid-template-rows: $rows;
grid-auto-flow: $flow;
}
@mixin transition {
transition: all ease 0.3s;
}
@mixin border-radius($radius: 0.75rem) {
border-radius: $radius;
}
@mixin transform($trans, $num) {
transform: #{$trans}(#{$num});
}
// Spacing Utilities
@mixin spacing-utilities {
@each $direction in (t, r, b, l) {
$i: 2; // 초기 값
@while $i <= 100 {
.m#{$direction}-#{$i} {
margin-#{$direction}: #{$i / 16}rem;
}
.p#{$direction}-#{$i} {
padding-#{$direction}: #{$i / 16}rem;
}
$i: $i + 2; // 루프 증가
}
}
}
@mixin flex-utilities {
.flex {
display: flex;
&-row {
flex-direction: row;
}
&-col {
flex-direction: column;
}
&-wrap {
flex-wrap: wrap;
}
&-nowrap {
flex-wrap: nowrap;
}
&-1 {
flex: 1;
}
&-auto {
flex: auto;
}
&-initial {
flex: initial;
}
&-none {
flex: none;
}
}
// Justify Content Utilities
@each $value, $cssValue in (start: flex-start, end: flex-end, center: center, between: space-between, around: space-around, evenly: space-evenly) {
.justify-#{$value} {
justify-content: #{$cssValue};
}
}
// Align Items Utilities
@each $value in (start, end, center, baseline, stretch) {
.items-#{$value} {
align-items: #{$value};
}
}
// Align Self Utilities
@each $value in (auto, start, end, center, stretch) {
.self-#{$value} {
align-self: #{$value};
}
}
}
// Grid Utilities
@mixin grid-utilities {
.grid {
display: grid;
}
// Grid Columns
@for $i from 1 through 12 {
.grid-cols-#{$i} {
grid-template-columns: repeat(#{$i}, minmax(0, 1fr));
}
}
// Grid Rows
@for $i from 1 through 6 {
.grid-rows-#{$i} {
grid-template-rows: repeat(#{$i}, minmax(0, 1fr));
}
}
.grid-flow-row {
grid-auto-flow: row;
}
.grid-flow-col {
grid-auto-flow: column;
}
.grid-flow-row-dense {
grid-auto-flow: row dense;
}
.grid-flow-col-dense {
grid-auto-flow: column dense;
}
}
@@ -0,0 +1,197 @@
//focus color
//추후삭제
@mixin focus($offset: -.4rem, $color: var(--wb-light-color-border-primary), $alpha: .8) {
box-shadow: var(--wb-box-shadow-outline-inset);
outline-offset: $offset;
}
//flex 확대 축소
@mixin flex-size($shrink, $grow) {
flex-shrink: $shrink;
flex-grow: $grow;
}
//position
@mixin position($p: absolute, $t: null, $b: null, $l: null, $r: null) {
position: $p;
top: $t;
bottom: $b;
left: $l;
right: $r;
}
//square rectangle
@mixin square($w, $h: $w) {
width: $w;
height: $h;
}
//pseudo element wb
@mixin pseudo($c: null) {
@if $c != null {
content: "" + $c + "";
} @else {
content: "";
}
};
// //flex layout
// @mixin flex-layout($d: flex, $ai: flex-start, $jc: flex-start, $fd: row) {
// display: $d;
// align-items: $ai;
// justify-content: $jc;
// flex-direction: $fd;
// }
//group contents
@mixin group-wrap() {
display: flex;
flex-wrap: wrap;
align-items: stretch;
position: relative;
width: 100%;
}
@mixin group() {
flex: 1 1 auto;
position: relative;
width: 1%;
min-width: 0;
}
//flex item equal width
@mixin equal-width() {
flex: 1 1 0px;
min-width: 0;
}
//position 중앙 정렬
@mixin position-center($type: both) {
//좌우중앙
@if ($type == 'x') {
left: 50%;
transform: translateX(-50%)
}
//상하중앙
@else if ($type == 'y') {
top: 50%;
transform: translateY(-50%);
}
//상하좌우중앙
@else if ($type == 'both') {
left: 50%;
top: 50%;
transform: translateX(-50%) translateY(-50%);
}
}
//transform 기준점 중앙 정렬
@mixin transform-origin($x: 50%, $y: 50%) {
transform-origin: $x $y;
}
// **** text attr **** //
//text ellipsis
@mixin ellipsis($line) {
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: $line;
}
//sr-only
@mixin sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}
//reset text : popover/tooltip
@mixin reset-text {
font-size: var(--wb-pc-font-size-body-medium);
font-style: normal;
font-weight: var(--wb-font-weight-regular);
line-height: var(--wb-line-height-base);
text-align: left;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
//word-break: normal;
white-space: normal;
word-spacing: normal;
line-break: auto;
}
//css animation visibility
@mixin visibility($v) {
@if ($v == hidden) {
visibility: hidden;
z-index: -1;
opacity: 0;
}
@else if ($v == visible) {
visibility: visible;
z-index: auto;
opacity: 1;
}
}
// **** scroll **** //
@mixin scrollbar-mode($mode: light) {
&::-webkit-scrollbar-thumb {
background-color: var(--wb-#{$mode}-color-element-secondary-light);
border-radius: .8rem;
}
&::-webkit-scrollbar-track {
background-color: var(--wb-#{$mode}-color-element-secondary-lighter);
}
}
@mixin scrollbar($mode: light) {
$mode-wb: $mode;
&::-webkit-scrollbar {
width: 0.8rem;
}
@include scrollbar-mode(#{$mode-wb});
}
//text underline
@mixin underline($offset: var(--wb-font-underline-offset)) {
text-decoration: underline;
text-underline-offset: $offset;
}
//color mode wb
@mixin color-mode($mode: light) {
[data-wb-mode="#{$mode}"] {
@content;
}
}
//사이즈별 variable
@mixin btn-size($unit) {
//unit value: xsmall small medium larger xlarge
gap: var(--wb-button--gap-#{$unit});
height: var(--wb-button--size-height-#{$unit});
padding: var(--wb-button--padding-y-#{$unit}) var(--wb-button--padding-x-#{$unit});
border-radius: var(--wb-button--radius-#{$unit});
font-size: var(--wb-button--pc-font-size-#{$unit});
font-weight: var(--wb-button--font-weight-#{$unit});
& {
.svg-icon {
@include square(var(--wb-icon--size-#{$unit}));
}
}
}
//고대비모드인경우 border-width가 두꺼워짐
@mixin border-size-mode ($mode: light, $size: regular) {
border-width: var(--wb-#{$mode}-border-width-variable-#{$size});
}
@@ -0,0 +1,586 @@
//사이즈 정의
@mixin button-size-variable() {
//변수 배열 설정
$button-size: (
xsmall: (
size-height: var(--wb-size-height-5),
padding-x: var(--wb-padding-4),
padding-y: 0,
gap: var(--wb-gap-1),
radius: var(--wb-radius-small3),
pc-font-size: var(--wb-pc-font-size-label-small),
mobile-font-size: var(--wb-mobile-font-size-label-small),
font-weight: var(--wb-font-weight-regular),
),
small: (
size-height: var(--wb-size-height-6),
padding-x: var(--wb-padding-5),
padding-y: 0,
gap: var(--wb-gap-1),
radius: var(--wb-radius-medium1),
pc-font-size: var(--wb-pc-font-size-label-small),
mobile-font-size: var(--wb-mobile-font-size-label-small),
font-weight: var(--wb-font-weight-regular),
),
medium: (
size-height: var(--wb-size-height-7),
padding-x: var(--wb-padding-6),
padding-y: 0,
gap: var(--wb-gap-2),
radius: var(--wb-radius-medium2),
pc-font-size: var(--wb-pc-font-size-label-medium),
mobile-font-size: var(--wb-mobile-font-size-label-medium),
font-weight: var(--wb-font-weight-regular),
),
large: (
size-height: var(--wb-size-height-8),
padding-x: var(--wb-padding-7),
padding-y: 0,
gap: var(--wb-gap-2),
radius: var(--wb-radius-medium3),
pc-font-size: var(--wb-pc-font-size-label-large),
mobile-font-size: var(--wb-mobile-font-size-label-large),
font-weight: var(--wb-font-weight-regular),
),
xlarge: (
size-height: var(--wb-size-height-9),
padding-x: var(--wb-padding-8),
padding-y: 0,
gap: var(--wb-gap-2),
radius: var(--wb-radius-medium4),
pc-font-size: var(--wb-pc-font-size-label-large),
mobile-font-size: var(--wb-mobile-font-size-label-large),
font-weight: var(--wb-font-weight-regular),
),
) !default;
//css variable 생성
@each $size, $types in $button-size {
@each $type, $value in $types {
//css variable 생성
--wb-button--#{$type}-#{$size}: #{$value};
}
}
//class 정의
& {
@include btn-size(large);
& {
@each $size, $types in $button-size {
&.#{$size} {
@include btn-size(#{$size});
}
}
}
}
}
//컬러 정의
@mixin button-color-variable($mode) {
//변수 배열 정의
$button-color-variable: (
primary: (
fill: var(--wb-#{$mode}-color-button-primary-fill),
fill-hover: var(--wb-#{$mode}-color-button-primary-fill-hover),
fill-pressed: var(--wb-#{$mode}-color-button-primary-fill-pressed),
fill-disabled: var(--wb-#{$mode}-color-button-disabled-fill),
border: var(--wb-#{$mode}-color-button-primary-fill),
border-disabled: var(--wb-#{$mode}-color-button-disabled-border),
text: var(--wb-#{$mode}-color-text-inverse-static),
text-disabled: var(--wb-#{$mode}-color-text-disabled-on),
),
secondary: (
fill: var(--wb-#{$mode}-color-button-secondary-fill),
fill-hover: var(--wb-#{$mode}-color-button-secondary-fill-hover),
fill-pressed: var(--wb-#{$mode}-color-button-secondary-fill-pressed),
fill-disabled: var(--wb-#{$mode}-color-button-disabled-fill),
border: var(--wb-#{$mode}-color-button-secondary-border),
border-disabled: var(--wb-#{$mode}-color-button-disabled-border),
text: var(--wb-#{$mode}-color-text-primary),
text-disabled: var(--wb-#{$mode}-color-text-disabled-on),
),
tertiary: (
fill: var(--wb-#{$mode}-color-button-tertiary-fill),
fill-hover: var(--wb-#{$mode}-color-button-tertiary-fill-hover),
fill-pressed: var(--wb-#{$mode}-color-button-tertiary-fill-pressed),
fill-disabled: var(--wb-#{$mode}-color-button-disabled-fill),
border: var(--wb-#{$mode}-color-button-tertiary-border),
border-disabled: var(--wb-#{$mode}-color-button-disabled-border),
text: var(--wb-#{$mode}-color-text-basic),
text-disabled: var(--wb-#{$mode}-color-text-disabled-on),
),
text: (
fill: var(--wb-#{$mode}-color-button-text-fill),
fill-hover: var(--wb-#{$mode}-color-button-text-fill-hover),
fill-pressed: var(--wb-#{$mode}-color-button-text-fill-pressed),
fill-disabled: var(--wb-#{$mode}-color-button-text-fill),
border: var(--wb-#{$mode}-color-button-text-border),
border-disabled: var(--wb-#{$mode}-color-border-transparency),
text: var(--wb-#{$mode}-color-text-basic),
text-disabled: var(--wb-#{$mode}-color-text-disabled),
),
link: (
fill: var(--wb-#{$mode}-color-button-text-fill),
fill-hover: var(--wb-#{$mode}-color-button-text-fill),
fill-pressed: var(--wb-#{$mode}-color-button-text-fill),
fill-disabled: var(--wb-#{$mode}-color-button-text-fill),
border: var(--wb-#{$mode}-color-button-text-border),
border-disabled: var(--wb-#{$mode}-color-border-transparency),
text: var(--wb-#{$mode}-color-link-default),
text-disabled: var(--wb-#{$mode}-color-text-disabled),
),
) !default;
//css variable 생성
@each $color, $types in $button-color-variable {
@each $type, $value in $types {
--wb-button--color-#{$color}-#{$type}: #{$value};
}
}
//class 생성
& {
@include btn-color(primary);
& {
//컬러 별 class
@each $color, $types in $button-color-variable {
&.#{$color} {
@include btn-color(#{$color});
&:not(.icon) {
.svg-icon {
@include btn-color-icon(#{$color});
}
}
&:hover {
@include btn-color-hover(#{$color});
}
&:active,
&:focus {
@include btn-color-pressed(#{$color});
}
&[disabled],
&.disabled {
@include btn-color-disabled(#{$color});
&:not(.icon) {
.svg-icon {
background-color: var(--wb-button--color-#{$color}-text-disabled);
}
}
&:hover {
@include btn-color-disabled(#{$color});
}
}
}
}
}
}
}
/* icon 버튼 사이즈 */
$button-icon-size: (
xsmall: var(--wb-size-height-2),
small: var(--wb-size-height-3),
medium: var(--wb-size-height-4),
large: var(--wb-size-height-5),
xlarge: var(--wb-size-height-6),
) !default;
//text버튼은 높이와 좌우 padding값이 달라 재정의 함
@mixin btn-text-variable() {
//text버튼은 높이와 좌우 padding값이 달라 재정의 함
--wb-button--size-height-xsmall: var(--wb-size-height-3);
--wb-button--padding-x-xsmall: var(--wb-padding-1);
--wb-button--padding-y-xsmall: var(--wb-number-0);
--wb-button--size-height-small: var(--wb-size-height-4);
--wb-button--padding-x-small: var(--wb-padding-1);
--wb-button--padding-y-small: var(--wb-number-0);
--wb-button--size-height-medium: var(--wb-size-height-5);
--wb-button--padding-x-medium: var(--wb-padding-1);
--wb-button--padding-y-medium: var(--wb-number-2);
--wb-button--size-height-large: var(--wb-size-height-6);
--wb-button--padding-x-large: var(--wb-padding-1);
--wb-button--padding-y-large: 0.5rem;
--wb-button--size-height-xlarge: var(--wb-size-height-7);
--wb-button--padding-x-xlarge: var(--wb-padding-1);
--wb-button--padding-y-xlarge: 0.9rem;
}
//link버튼은 font size와 좌우 padding값이 달라 재정의 함
@mixin btn-link-variable() {
--wb-button--pc-font-size-xsmall: var(--wb-pc-font-size-label-small);
--wb-button--mobile-font-size-xsmall: var(--wb-mobile-font-size-label-small);
--wb-button--padding-x-xsmall: var(--wb-padding-1);
--wb-button--pc-font-size-small: var(--wb-pc-font-size-label-small);
--wb-button--mobile-font-size-small: var(--wb-mobile-font-size-label-small);
--wb-button--padding-x-small: var(--wb-padding-1);
--wb-button--pc-font-size-medium: var(--wb-pc-font-size-label-medium);
--wb-button--mobile-font-size-medium: var(--wb-mobile-font-size-label-medium);
--wb-button--padding-x-medium: var(--wb-padding-1);
--wb-button--pc-font-size-large: var(--wb-pc-font-size-label-large);
--wb-button--mobile-font-size-large: var(--wb-mobile-font-size-label-large);
--wb-button--padding-x-large: var(--wb-padding-1);
--wb-button--pc-font-size-xlarge: var(--wb-pc-font-size-label-large);
--wb-button--mobile-font-size-xlarge: var(--wb-mobile-font-size-label-large);
--wb-button--padding-x-xlarge: var(--wb-padding-1);
}
//컬러별 variable
@mixin btn-color($color) {
background-color: var(--wb-button--color-#{$color}-fill);
border-color: var(--wb-button--color-#{$color}-border);
color: var(--wb-button--color-#{$color}-text);
}
@mixin btn-color-hover($color) {
background-color: var(--wb-button--color-#{$color}-fill-hover);
}
@mixin btn-color-pressed($color) {
background-color: var(--wb-button--color-#{$color}-fill-pressed);
}
@mixin btn-color-disabled($color) {
background-color: var(--wb-button--color-#{$color}-fill-disabled);
border-color: var(--wb-button--color-#{$color}-border-disabled);
color: var(--wb-button--color-#{$color}-text-disabled);
}
@mixin btn-color-icon($color) {
background-color: var(--wb-button--color-#{$color}-text);
}
//모드 설정
$mode-setting: light;
.wb-btn {
@include button-size-variable();
}
.wb-btn {
@include button-color-variable(#{$mode-setting});
& {
//기본버튼: primary large
// @include flex-layout($d: inline-flex, $ai: center, $jc: center);
width: auto;
border-style: solid;
cursor: pointer;
white-space: nowrap;
transition: var(--wb-transition-base);
@include border-size-mode(#{$mode-setting});
}
.svg-icon {
@include btn-color-icon(primary);
transition: var(--wb-transition-base);
}
&:hover {
@include btn-color-hover(primary);
}
// &:active,
// &:focus {
// @include btn-color-pressed(primary);
// }
&[disabled],
&.disabled {
@include btn-color-disabled(primary);
cursor: default;
&:hover {
@include btn-color-disabled(primary);
}
}
&.text { //높이를 가짐
@include btn-text-variable();
//large 사이즈 기준 기본 세팅수정
display: inline-block;
height: auto !important;
padding: var(--wb-button--padding-y-large) var(--wb-button--padding-x-large);
text-align: left;
white-space: normal;
&.xsmall {
min-height: var(--wb-button--size-height-xsmall);
padding: var(--wb-button--padding-y-xsmall) var(--wb-button--padding-x-xsmall);
.svg-icon {
margin-bottom: -0.3rem;
}
}
&.small {
padding: var(--wb-button--padding-y-small) var(--wb-button--padding-x-small);
.svg-icon {
margin-bottom: -0.3rem;
}
}
&.medium {
padding: var(--wb-button--padding-y-medium) var(--wb-button--padding-x-medium);
.svg-icon {
margin-bottom: -0.4rem;
}
}
&.large {
padding: var(--wb-button--padding-y-large) var(--wb-button--padding-x-large);
.svg-icon {
margin-bottom: -0.5rem;
}
}
&.xlarge {
padding: var(--wb-button--padding-y-xlarge) var(--wb-button--padding-x-xlarge);
.svg-icon {
margin-bottom: -0.6rem;
}
}
&.h-auto {
height: auto;
padding: var(--wb-padding-1) !important;
}
.svg-icon {
display: inline-block;
margin-bottom: -0.5rem;
}
}
&.link { //링크인 경우 (텍스트 버튼과 비슷해보이지만 높이값 없음)
@include btn-link-variable();
//large 사이즈 기준 기본 세팅수정
display: inline-block;
height: auto !important;
padding: 0 var(--wb-button--padding-x-large);
font-size: var(--wb-button--pc-font-size-large);
text-align: left;
white-space: normal;
@include size-medium {
font-size: var(--wb-button--mobile-font-size-large);
}
&.xsmall {
padding: 0 var(--wb-button--padding-x-xsmall);
font-size: var(--wb-button--pc-font-size-xsmall);
@include size-medium {
font-size: var(--wb-button--mobile-font-size-xsmall);
}
.svg-icon {
margin-bottom: -0.3rem;
}
}
&.small {
padding: 0 var(--wb-button--padding-x-small);
font-size: var(--wb-button--pc-font-size-small);
@include size-medium {
font-size: var(--wb-button--mobile-font-size-small);
}
.svg-icon {
margin-bottom: -0.3rem;
}
}
&.medium {
padding: 0 var(--wb-button--padding-x-medium);
font-size: var(--wb-button--pc-font-size-medium);
@include size-medium {
font-size: var(--wb-button--mobile-font-size-medium);
}
.svg-icon {
margin-bottom: -0.4rem;
}
}
&.large {
padding: 0 var(--wb-button--padding-x-large);
font-size: var(--wb-button--pc-font-size-large);
@include size-medium {
font-size: var(--wb-button--mobile-font-size-large);
}
.svg-icon {
margin-bottom: -0.5rem;
}
}
&.xlarge {
padding: 0 var(--wb-button--padding-x-xlarge);
font-size: var(--wb-button--pc-font-size-xlarge);
@include size-medium {
font-size: var(--wb-button--mobile-font-size-xlarge);
}
.svg-icon {
margin-bottom: -0.6rem;
}
}
&.basic {
$color: var(--wb-#{$mode-setting}-color-text-basic);
color: $color;
@include underline();
text-decoration-color: var(--wb-#{$mode-setting}-color-border-transparency);
.svg-icon {
background-color: $color;
}
&:hover,
&:active,
&:focus {
text-decoration-color: inherit;
}
}
&:hover {
$color: var(--wb-#{$mode-setting}-color-link-hover);
color: $color;
.svg-icon {
background-color: $color;
}
}
&:active,
&:focus {
$color: var(--wb-#{$mode-setting}-color-link-pressed);
color: $color;
.svg-icon {
background-color: $color;
}
}
&:visited {
$color: var(--wb-#{$mode-setting}-color-link-visited);
color: $color;
text-decoration: none;
.svg-icon {
background-color: $color;
}
}
.svg-icon {
display: inline-block;
margin-bottom: -0.5rem;
}
}
/* icon 버튼 (텍스트 없음) */
&.icon {
@each $size, $value in $button-icon-size {
--wb-button--icon-size-#{$size}: #{$value};
}
//기본 세팅
@include square(var(--wb-button--icon-size-medium));
padding: 0 !important;
background-color: transparent;
border-color: var(--wb-#{$mode-setting}-color-border-transparency);
color: inherit;
border: 0;
&:hover,
&:active {
background-color: inherit;
}
& {
@each $size, $value in $button-icon-size {
&.#{$size} {
@include square(var(--wb-button--icon-size-#{$size}));
//icon size
.svg-icon {
@include square(100%);
}
}
}
}
.svg-icon {
background-color: var(--wb-#{$mode-setting}-color-text-basic);
}
&.pure {
.svg-icon {
background-color: transparent;
}
}
//새로고침, 토글 등 보더 아이콘 버튼 형태
&.border {
background-color: var(--wb-#{$mode-setting}-color-background-white);
border: 0.1rem solid var(--wb-#{$mode-setting}-color-border-gray);
border-radius: var(--wb-radius-max);
//icon size 1.6rem
&.large {
.svg-icon {
@include square(var(--wb-icon--size-xsmall));
}
}
&.xlarge {
.svg-icon {
@include square(var(--wb-icon--size-xlarge));
}
}
&[disabled],
&.disabled {
background-color: var(--wb-#{$mode-setting}-color-button-disabled-fill);
}
}
}
}
//고대비모드
@include color-mode($mode: high-contrast) {
//모드 설정
$mode-setting: high-contrast;
.wb-btn {
@include border-size-mode(#{$mode-setting});
@include button-color-variable(#{$mode-setting});
&.text {
//class명 검토
&.ico-filter {
.num {
color: var(--wb-#{$mode-setting}-color-text-basic-inverse);
background-color: var(--wb-#{$mode-setting}-color-element-primary);
}
}
}
&.link {
&.basic {
$color: var(--wb-#{$mode-setting}-color-text-basic);
color: $color;
&:not(.icon) {
.svg-icon {
background-color: $color;
}
}
}
&:hover {
$color: var(--wb-#{$mode-setting}-color-link-hover);
color: $color;
&:not(.icon) {
.svg-icon {
background-color: $color;
}
}
}
&:active,
&:focus {
$color: var(--wb-#{$mode-setting}-color-link-pressed);
color: $color;
&:not(.icon) {
.svg-icon {
background-color: $color;
}
}
}
&:visited {
$color: var(--wb-#{$mode-setting}-color-link-visited);
color: $color;
&:not(.icon) {
.svg-icon {
background-color: $color;
}
}
}
}
/* icon 버튼 (텍스트 없음) */
&.icon {
background-color: transparent;
border-color: var(--wb-#{$mode-setting}-color-border-transparency);
.svg-icon {
background-color: var(--wb-#{$mode-setting}-color-text-basic);
}
//새로고침, 토글 등 보더 아이콘 버튼 형태
&.border {
background-color: var(--wb-#{$mode-setting}-color-background-white);
border-color: var(--wb-#{$mode-setting}-color-border-gray);
&[disabled],
&.disabled {
background-color: var(--wb-#{$mode-setting}-color-button-disabled-fill);
}
}
}
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,19 @@
{
"version": 3,
"mappings": "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 truncated
"sources": [
"component.scss",
"../common/_include.scss",
"../common/_group_mixins.scss",
"../common/mixins/_breakpoints.scss",
"../common/_group_variables.scss",
"../common/_variables_for_code.scss",
"../common/mixins/_utils.scss",
"../common/mixins/_icons.scss",
"../common/mixins/_form.scss",
"../common/mixins/_mixin.scss",
"_button.scss"
],
"names": [],
"file": "component.css"
}
@@ -0,0 +1,44 @@
//only component
//공통
@import "../common/include";
//component
@import "button";
// @import "tab";
// @import "table";
// @import "text_list";
// @import "modal";
// @import "help_panel";
// @import "accordion";
// @import "spinner";
// @import "contextual_help";
// @import "tooltip";
// @import "file_upload";
// @import "coach_mark";
// @import "disclosure";
// @import "skip_link";
// @import "masthead";
// @import "header";
// @import "main_menu";
// @import "footer";
// @import "identifier";
// @import "side_navigation";
// @import "structured_list";
// @import "critical_alerts";
// @import "in_page_navigation";
// @import "carousel";
// @import "pagination";
// @import "breadcrumb";
// @import "step_indicator";
// @import "badge";
// @import "tag";
// @import "form_layout";
// @import "input";
// @import "select";
// @import "form_check";
// @import "form_chip";
// @import "switch";
// @import "calendar";
// @import "resize";
// @import "language_switcher";
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,40 @@
{
"version": 3,
"mappings": "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 truncated
"sources": [
"output.scss",
"../common/common.scss",
"../common/_path.scss",
"../common/_wb_tokens.scss",
"../common/_include.scss",
"../common/_group_mixins.scss",
"../common/mixins/_breakpoints.scss",
"../common/_group_variables.scss",
"../common/_variables_for_code.scss",
"../common/mixins/_utils.scss",
"../common/mixins/_icons.scss",
"../common/mixins/_form.scss",
"../common/mixins/_mixin.scss",
"../common/_root.scss",
"../common/_group_variables.scss",
"../common/_variables_for_code.scss",
"../common/_icon.scss",
"../common/_dropdown.scss",
"../common/_menu.scss",
"../_tokens.scss",
"../common/_reset.scss",
"component.scss",
"../common/_include.scss",
"../common/_group_mixins.scss",
"../common/mixins/_breakpoints.scss",
"../common/_group_variables.scss",
"../common/_variables_for_code.scss",
"../common/mixins/_utils.scss",
"../common/mixins/_icons.scss",
"../common/mixins/_form.scss",
"../common/mixins/_mixin.scss",
"_button.scss"
],
"names": [],
"file": "output.css"
}
@@ -0,0 +1,8 @@
//component with common setting file
//common
@import "../common/common";
//component
@import "component";
@@ -0,0 +1,9 @@
@use '@progress/kendo-theme-bootstrap/scss/all.scss' as *;
@use 'tokens' as *;
.m-login .wrap-container-group-158{
left: 8px;
position: absolute;
top: 253px;
}
@@ -0,0 +1,474 @@
@use '@progress/kendo-theme-bootstrap/scss/all.scss' as *;
@use 'tokens' as *;
.m-login{
background-color: #ffffff;
background-image: none;
height: 800px;
overflow: hidden;
position: relative;
width: 360px;
}
.m-login .frame-164{
align-items: flex-start;
background-color: #f3f9ff;
background-image: none;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
box-sizing: border-box;
display: flex;
flex-direction: column;
left: 7px;
overflow: hidden;
padding-bottom: 29px;
padding-left: 10px;
padding-right: 39px;
padding-top: 29px;
position: absolute;
row-gap: 10px;
top: 586px;
width: 345px;
}
.m-login .group-169{
height: 146.17px;
position: relative;
width: 320px;
}
.m-login .frame-163{
align-items: flex-start;
background-color: #ffffff;
background-image: none;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
box-sizing: border-box;
display: flex;
flex-direction: column;
left: 0px;
overflow: hidden;
padding-bottom: 15px;
padding-left: 20px;
padding-right: 20px;
padding-top: 15px;
position: absolute;
row-gap: 10px;
top: 101.4px;
width: 320px;
}
.m-login .group-168-2{
height: 14.77px;
position: relative;
width: 275.25px;
}
.m-login .vector-2{
left: 270px;
position: absolute;
top: 0.6px;
}
.m-login .group-167-2{
height: 14.77px;
left: 0px;
position: absolute;
top: 0px;
width: 242px;
}
.m-login .가스계소화설비-안전관리-메뉴얼-및-경고문{
color: #000000;
font-family: NanumSquare;
font-size: font-size-12;
font-style: normal;
font-weight: 400;
left: 24px;
line-height: normal;
position: absolute;
top: 0px;
}
.m-login .group-166-2{
left: 0px;
position: absolute;
top: 0.64px;
}
.m-login .frame-162{
align-items: flex-start;
background-color: #ffffff;
background-image: none;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
box-sizing: border-box;
display: flex;
flex-direction: column;
left: 0px;
overflow: hidden;
padding-bottom: 15px;
padding-left: 20px;
padding-right: 20px;
padding-top: 15px;
position: absolute;
row-gap: 10px;
top: 50.7px;
width: 320px;
}
.m-login .group-168-1{
height: 14.77px;
position: relative;
width: 275.25px;
}
.m-login .vector-1{
left: 270px;
position: absolute;
top: 1.3px;
}
.m-login .group-167-1{
height: 14.77px;
left: 0px;
position: absolute;
top: 0px;
width: 244px;
}
.m-login .제-1-회-위험물-안전관리-우수사례-경진대회{
color: #000000;
font-family: NanumSquare;
font-size: font-size-12;
font-style: normal;
font-weight: 400;
left: 24px;
line-height: normal;
position: absolute;
top: 0px;
}
.m-login .group-166-1{
left: 0px;
position: absolute;
top: 0.64px;
}
.m-login .frame-161{
align-items: flex-start;
background-color: #ffffff;
background-image: none;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
box-sizing: border-box;
display: flex;
flex-direction: column;
left: 0px;
overflow: hidden;
padding-bottom: 15px;
padding-left: 20px;
padding-right: 20px;
padding-top: 15px;
position: absolute;
row-gap: 10px;
top: 0px;
width: 320px;
}
.m-login .group-168{
height: 14.77px;
position: relative;
width: 275.25px;
}
.m-login .group-167{
flex-shrink: 0;
height: 14.77px;
left: 0px;
position: absolute;
top: 0px;
width: 275.25px;
}
.m-login .vector{
left: 270px;
position: absolute;
top: 1px;
}
.m-login .겨울철-화재안전대책-공동주택-정책홍보{
color: #000000;
font-family: NanumSquare;
font-size: font-size-12;
font-style: normal;
font-weight: 400;
left: 24px;
line-height: normal;
position: absolute;
text-align: center;
top: 0px;
}
.m-login .group-166{
left: 0px;
position: absolute;
top: 0.64px;
}
.m-login .소방안전지도{
color: #000000;
font-family: NanumSquare;
font-size: 18px;
font-style: normal;
font-weight: 800;
left: 130px;
line-height: normal;
position: absolute;
top: 201px;
}
.m-login .mask-group-1{
flex-shrink: 0;
height: 180px;
left: 0px;
position: absolute;
top: 0px;
width: 360px;
}
.m-login .group-158{
height: 300.8px;
left: 8px;
position: absolute;
top: 253px;
width: 343.33px;
}
.m-login .frame-165{
align-items: center;
background-color: #ffffff;
background-image: none;
border-bottom-color: #d3d3d3;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
border-bottom-style: solid;
border-bottom-width: 1px;
border-left-color: #d3d3d3;
border-left-style: solid;
border-left-width: 1px;
border-right-color: #d3d3d3;
border-right-style: solid;
border-right-width: 1px;
border-top-color: #d3d3d3;
border-top-left-radius: 0px;
border-top-right-radius: 0px;
border-top-style: solid;
border-top-width: 1px;
box-sizing: border-box;
display: flex;
flex-direction: column;
left: 0px;
overflow: hidden;
padding-bottom: 39px;
padding-left: 31px;
padding-right: 31px;
padding-top: 39px;
position: absolute;
row-gap: 10px;
top: 66px;
width: 343px;
}
.m-login .frame-158{
align-items: center;
display: flex;
flex-direction: column;
row-gap: 34.8px;
}
.m-login .group-165{
background-color: #002e64;
background-image: none;
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
border-top-left-radius: 6px;
border-top-right-radius: 6px;
flex-shrink: 0;
height: 50px;
position: relative;
width: 280px;
}
.m-login .로그인{
color: #ffffff;
font-family: NanumSquare;
font-size: font-size-12;
font-style: normal;
font-weight: 800;
left: 124px;
line-height: normal;
position: absolute;
top: 18px;
}
.m-login .group-164{
height: 72px;
position: relative;
width: 280px;
}
.m-login .group-163{
height: 30px;
left: 0px;
position: absolute;
top: 42px;
width: 280px;
}
.m-login .rectangle-22{
border-bottom-color: #d0d0d0;
border-bottom-style: solid;
border-bottom-width: 0.6px;
flex-shrink: 0;
height: 30px;
left: 64.9px;
position: absolute;
top: 0px;
width: 215.1px;
}
.m-login .비밀번호{
color: #1a1a1a;
font-family: NanumSquare;
font-size: 12px;
font-style: normal;
font-weight: 700;
left: 0px;
line-height: normal;
position: absolute;
top: 9px;
width: 46.67px;
}
.m-login .group-162{
height: 30px;
left: 0px;
position: absolute;
top: 0px;
width: 280px;
}
.m-login .rectangle-21{
border-bottom-color: #d0d0d0;
border-bottom-style: solid;
border-bottom-width: 0.6px;
flex-shrink: 0;
height: 30px;
left: 64.9px;
position: absolute;
top: 0px;
width: 215.1px;
}
.m-login .아이디{
color: #1a1a1a;
font-family: NanumSquare;
font-size: 12px;
font-style: normal;
font-weight: 700;
left: 0px;
line-height: normal;
position: absolute;
top: 9px;
width: 35px;
}
.m-login .frame-166{
align-items: flex-start;
display: flex;
left: 0px;
position: absolute;
top: 0px;
}
.m-login .frame-157{
align-items: center;
border-bottom-left-radius: 25px;
border-bottom-right-radius: 25px;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
column-gap: 10px;
display: flex;
height: 66px;
justify-content: center;
width: 114px;
}
.m-login .모바일공무원증-로그인{
color: $tb-figma-gray-color-02;
font-family: NanumSquare;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: normal;
text-align: center;
}
.m-login .frame-156{
align-items: center;
border-bottom-left-radius: 25px;
border-bottom-right-radius: 25px;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
column-gap: 10px;
display: flex;
height: 66px;
justify-content: center;
width: 115px;
}
.m-login .gpki-인중서-로그인{
color: $tb-figma-gray-color-02;
font-family: NanumSquare;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: normal;
text-align: center;
}
.m-login .frame-155{
align-items: center;
background-color: #005dca;
background-image: none;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
box-sizing: border-box;
column-gap: 10px;
display: flex;
justify-content: center;
padding-bottom: 26px;
padding-top: 26px;
width: 114.33px;
}
.m-login .아이디-로그인{
color: #ffffff;
font-family: NanumSquare;
font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: normal;
}
@@ -0,0 +1,3 @@
@use 'common-styles-overrides' as *;
@use 'login' as *;
File diff suppressed because it is too large. Load diff
+46
View File
@@ -0,0 +1,46 @@
{
"version": 3,
"mappings": "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 truncated
"sources": [
"index.scss",
"_tokens.scss",
"_overrides.scss",
"_tokens.scss",
"_page.scss",
"_tokens.scss",
"componants/output.scss",
"common/common.scss",
"common/_path.scss",
"common/_wb_tokens.scss",
"common/_include.scss",
"common/_group_mixins.scss",
"common/mixins/_breakpoints.scss",
"common/_group_variables.scss",
"common/_variables_for_code.scss",
"common/mixins/_utils.scss",
"common/mixins/_icons.scss",
"common/mixins/_form.scss",
"common/mixins/_mixin.scss",
"common/_root.scss",
"common/_group_variables.scss",
"common/_variables_for_code.scss",
"common/_icon.scss",
"common/_dropdown.scss",
"common/_menu.scss",
"_tokens.scss",
"common/_reset.scss",
"componants/component.scss",
"common/_include.scss",
"common/_group_mixins.scss",
"common/mixins/_breakpoints.scss",
"common/_group_variables.scss",
"common/_variables_for_code.scss",
"common/mixins/_utils.scss",
"common/mixins/_icons.scss",
"common/mixins/_form.scss",
"common/mixins/_mixin.scss",
"componants/_button.scss"
],
"names": [],
"file": "index.css"
}
+4
View File
@@ -0,0 +1,4 @@
@import 'tokens';
@import 'overrides';
@import 'page';
@import './componants/output';
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Loaded 100 of 3056 files, more files were not shown because too many files have changed in this diff. Show more