Compare commits
123 Commits
dependabot
...
fix/jdbc-e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a120f67b7f | ||
|
|
ef154bb029 | ||
|
|
496e01eb3e | ||
|
|
f2c15185fb | ||
|
|
20c5328199 | ||
|
|
91330496f2 | ||
|
|
101700ac53 | ||
|
|
36389d7d79 | ||
|
|
f29dbe53a8 | ||
|
|
a6d34151bf | ||
|
|
4e54fac980 | ||
|
|
6e50654544 | ||
|
|
d146ebfb01 | ||
|
|
e353399d47 | ||
|
|
038083cdf4 | ||
|
|
568e66c75e | ||
|
|
5a8552ad36 | ||
|
|
da323d792a | ||
|
|
659731813a | ||
|
|
b8b20e76ba | ||
|
|
cf0b551f8f | ||
|
|
84840fe090 | ||
|
|
0dba0367f7 | ||
|
|
905341c185 | ||
|
|
b33fbc284d | ||
|
|
71f1bb9477 | ||
|
|
491e286eee | ||
|
|
469e230ebd | ||
|
|
ebb86f6d19 | ||
|
|
b68dcb7bf5 | ||
|
|
65786343ef | ||
|
|
d6933b8e49 | ||
|
|
8bd5593b2d | ||
|
|
af87713258 | ||
|
|
371c1281ca | ||
|
|
6a111a676c | ||
|
|
15da58dbf4 | ||
|
|
e37e2b0166 | ||
|
|
9f90412237 | ||
|
|
c3d94dc8ff | ||
|
|
98678deabb | ||
|
|
248c2154a2 | ||
|
|
546039e30a | ||
|
|
27bcb9c347 | ||
|
|
3f7b6a0e72 | ||
|
|
aeca59a3e4 | ||
|
|
d7caf9ae00 | ||
|
|
b5efc27763 | ||
|
|
4909978f7f | ||
|
|
f8740871ec | ||
|
|
187319ad54 | ||
|
|
9459d6556b | ||
|
|
a9d1e9ac4d | ||
|
|
c6c62dbe47 | ||
|
|
8f4bafc666 | ||
|
|
e46fbe480e | ||
|
|
7fd16b24e0 | ||
|
|
51529c8ead | ||
|
|
f53135a856 | ||
|
|
bd4eebed32 | ||
|
|
f2e7283c72 | ||
|
|
e31e833ce6 | ||
|
|
e7a99bb37f | ||
|
|
1fd4bf7499 | ||
|
|
c5851ce254 | ||
|
|
1f1976099e | ||
|
|
6a8e6b414b | ||
|
|
80d81820c9 | ||
|
|
0a62957f05 | ||
|
|
2c46bc0c39 | ||
|
|
f0189c32fc | ||
|
|
e6058f3d3e | ||
|
|
a5ec12c62a | ||
|
|
5439d395b1 | ||
|
|
bb363f8832 | ||
|
|
865aaa1fde | ||
|
|
116e5aad2d | ||
|
|
5860ce73bb | ||
|
|
527d80cd74 | ||
|
|
c99bd1d4ea | ||
|
|
c4a6ea617f | ||
|
|
a4b0beaf63 | ||
|
|
a5847aeb3a | ||
|
|
49bbc15d91 | ||
|
|
9d6694f807 | ||
|
|
eb51c5be37 | ||
|
|
90ee720d49 | ||
|
|
fd259082a6 | ||
|
|
b5323f969c | ||
|
|
6c826e93c8 | ||
|
|
aae3e6605d | ||
|
|
ea17077b0a | ||
|
|
117200eaab | ||
|
|
3216611828 | ||
|
|
1173eb2dde | ||
|
|
360b58a851 | ||
|
|
57e288abdd | ||
|
|
7fa14eb3f5 | ||
|
|
0ed2b0a53c | ||
|
|
68ace7a59b | ||
|
|
105b1b36e5 | ||
|
|
15e82f65c6 | ||
|
|
aec75bb673 | ||
|
|
f489678532 | ||
|
|
79fc5a3f24 | ||
|
|
312ec2c36b | ||
|
|
d57150e69c | ||
|
|
4b25232d4e | ||
|
|
1d1a065833 | ||
|
|
d6ecbadee1 | ||
|
|
205605060d | ||
|
|
6ef3a00e16 | ||
|
|
f70d612878 | ||
|
|
0b345c03d1 | ||
|
|
ecb508f797 | ||
|
|
38caea2568 | ||
|
|
cdad732576 | ||
|
|
0dd4cb963f | ||
|
|
c35ca82356 | ||
|
|
db6cb93df4 | ||
|
|
1f8d2ea918 | ||
|
|
3c09a38eed | ||
|
|
0525e3ece6 |
2
.github/workflows/auto-translate-ui-keys.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
name: Checkout
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
2
.github/workflows/codeql-analysis.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
exit 1;
|
||||
fi
|
||||
# Checkout
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
path: kestra
|
||||
|
||||
2
.github/workflows/global-start-release.yml
vendored
@@ -39,7 +39,7 @@ jobs:
|
||||
|
||||
# Checkout
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GH_PERSONAL_TOKEN }}
|
||||
|
||||
2
.github/workflows/main-build.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
||||
steps:
|
||||
# Targeting develop branch from develop
|
||||
- name: Trigger EE Workflow (develop push, no payload)
|
||||
uses: peter-evans/repository-dispatch@5fc4efd1a4797ddb68ffd0714a238564e4cc0e6f
|
||||
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/develop' }}
|
||||
with:
|
||||
token: ${{ secrets.GH_PERSONAL_TOKEN }}
|
||||
|
||||
6
.github/workflows/pull-request.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
- name: Check EE repo for branch with same name
|
||||
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false }}
|
||||
id: check-ee-branch
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
with:
|
||||
github-token: ${{ secrets.GH_PERSONAL_TOKEN }}
|
||||
script: |
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
|
||||
# Targeting pull request (only if not from a fork and EE has no branch with same name)
|
||||
- name: Trigger EE Workflow (pull request, with payload)
|
||||
uses: peter-evans/repository-dispatch@5fc4efd1a4797ddb68ffd0714a238564e4cc0e6f
|
||||
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697
|
||||
if: ${{ github.event_name == 'pull_request'
|
||||
&& github.event.pull_request.number != ''
|
||||
&& github.event.pull_request.head.repo.fork == false
|
||||
@@ -50,7 +50,7 @@ jobs:
|
||||
repository: kestra-io/kestra-ee
|
||||
event-type: "oss-updated"
|
||||
client-payload: >-
|
||||
{"commit_sha":"${{ github.sha }}","pr_repo":"${{ github.repository }}"}
|
||||
{"commit_sha":"${{ github.event.pull_request.head.sha }}","pr_repo":"${{ github.repository }}"}
|
||||
|
||||
file-changes:
|
||||
if: ${{ github.event.pull_request.draft == false }}
|
||||
|
||||
6
.github/workflows/vulnerabilities-check.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Checkout
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
actions: read
|
||||
steps:
|
||||
# Checkout
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -95,7 +95,7 @@ jobs:
|
||||
actions: read
|
||||
steps:
|
||||
# Checkout
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath "net.e175.klaus:zip-prefixer:0.3.1"
|
||||
classpath "net.e175.klaus:zip-prefixer:0.4.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ plugins {
|
||||
|
||||
// test
|
||||
id "com.adarshr.test-logger" version "4.0.0"
|
||||
id "org.sonarqube" version "7.0.1.6134"
|
||||
id "org.sonarqube" version "7.1.0.6387"
|
||||
id 'jacoco-report-aggregation'
|
||||
|
||||
// helper
|
||||
@@ -32,7 +32,7 @@ plugins {
|
||||
|
||||
// release
|
||||
id 'net.researchgate.release' version '3.1.0'
|
||||
id "com.gorylenko.gradle-git-properties" version "2.5.3"
|
||||
id "com.gorylenko.gradle-git-properties" version "2.5.4"
|
||||
id 'signing'
|
||||
id "com.vanniktech.maven.publish" version "0.35.0"
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ public class App implements Callable<Integer> {
|
||||
try {
|
||||
exitCode = new CommandLine(cls, new MicronautFactory(applicationContext)).execute(args);
|
||||
} catch (CommandLine.InitializationException e){
|
||||
System.err.println("Could not initialize picoli ComandLine, err: " + e.getMessage());
|
||||
System.err.println("Could not initialize picocli CommandLine, err: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
exitCode = 1;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import org.junitpioneer.jupiter.RetryingTest;
|
||||
|
||||
import static io.kestra.core.utils.Rethrow.throwRunnable;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -59,7 +58,7 @@ class FileChangedEventListenerTest {
|
||||
}
|
||||
|
||||
@FlakyTest
|
||||
@RetryingTest(2)
|
||||
@Test
|
||||
void test() throws IOException, TimeoutException {
|
||||
var tenant = TestsUtils.randomTenant(FileChangedEventListenerTest.class.getSimpleName(), "test");
|
||||
// remove the flow if it already exists
|
||||
@@ -98,7 +97,7 @@ class FileChangedEventListenerTest {
|
||||
}
|
||||
|
||||
@FlakyTest
|
||||
@RetryingTest(2)
|
||||
@Test
|
||||
void testWithPluginDefault() throws IOException, TimeoutException {
|
||||
var tenant = TestsUtils.randomTenant(FileChangedEventListenerTest.class.getName(), "testWithPluginDefault");
|
||||
// remove the flow if it already exists
|
||||
@@ -138,4 +137,4 @@ class FileChangedEventListenerTest {
|
||||
Duration.ofSeconds(10)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ kestra:
|
||||
server:
|
||||
liveness:
|
||||
enabled: false
|
||||
termination-grace-period: 5s
|
||||
micronaut:
|
||||
http:
|
||||
services:
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package io.kestra.core.exceptions;
|
||||
|
||||
/**
|
||||
* Exception that can be thrown when a Flow is not found.
|
||||
*/
|
||||
public class FlowNotFoundException extends NotFoundException {
|
||||
|
||||
/**
|
||||
* Creates a new {@link FlowNotFoundException} instance.
|
||||
*/
|
||||
public FlowNotFoundException() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new {@link NotFoundException} instance.
|
||||
*
|
||||
* @param message the error message.
|
||||
*/
|
||||
public FlowNotFoundException(final String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package io.kestra.core.exceptions;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
public class ResourceAccessDeniedException extends KestraRuntimeException {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public ResourceAccessDeniedException() {
|
||||
}
|
||||
|
||||
public ResourceAccessDeniedException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -658,18 +658,20 @@ public class Execution implements DeletedInterface, TenantInterface {
|
||||
public boolean hasFailedNoRetry(List<ResolvedTask> resolvedTasks, TaskRun parentTaskRun) {
|
||||
return this.findTaskRunByTasks(resolvedTasks, parentTaskRun)
|
||||
.stream()
|
||||
.anyMatch(taskRun -> {
|
||||
ResolvedTask resolvedTask = resolvedTasks.stream()
|
||||
.filter(t -> t.getTask().getId().equals(taskRun.getTaskId())).findFirst()
|
||||
.orElse(null);
|
||||
if (resolvedTask == null) {
|
||||
log.warn("Can't find task for taskRun '{}' in parentTaskRun '{}'",
|
||||
taskRun.getId(), parentTaskRun.getId());
|
||||
return false;
|
||||
}
|
||||
return !taskRun.shouldBeRetried(resolvedTask.getTask().getRetry())
|
||||
&& taskRun.getState().isFailed();
|
||||
});
|
||||
// NOTE: we check on isFailed first to avoid the costly shouldBeRetried() method
|
||||
.anyMatch(taskRun -> taskRun.getState().isFailed() && shouldNotBeRetried(resolvedTasks, parentTaskRun, taskRun));
|
||||
}
|
||||
|
||||
private static boolean shouldNotBeRetried(List<ResolvedTask> resolvedTasks, TaskRun parentTaskRun, TaskRun taskRun) {
|
||||
ResolvedTask resolvedTask = resolvedTasks.stream()
|
||||
.filter(t -> t.getTask().getId().equals(taskRun.getTaskId())).findFirst()
|
||||
.orElse(null);
|
||||
if (resolvedTask == null) {
|
||||
log.warn("Can't find task for taskRun '{}' in parentTaskRun '{}'",
|
||||
taskRun.getId(), parentTaskRun.getId());
|
||||
return false;
|
||||
}
|
||||
return !taskRun.shouldBeRetried(resolvedTask.getTask().getRetry());
|
||||
}
|
||||
|
||||
public boolean hasCreated() {
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
package io.kestra.core.models.executions;
|
||||
|
||||
import io.micronaut.core.annotation.Introspected;
|
||||
import lombok.Builder;
|
||||
import lombok.Value;
|
||||
import io.kestra.core.models.tasks.Output;
|
||||
import io.kestra.core.models.triggers.AbstractTrigger;
|
||||
import io.micronaut.core.annotation.Introspected;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
import lombok.Value;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
@Value
|
||||
@Builder
|
||||
@@ -21,6 +22,7 @@ public class ExecutionTrigger {
|
||||
@NotNull
|
||||
String type;
|
||||
|
||||
@Schema(type = "object", additionalProperties = Schema.AdditionalPropertiesValue.TRUE)
|
||||
Map<String, Object> variables;
|
||||
|
||||
URI logFile;
|
||||
|
||||
@@ -314,4 +314,11 @@ public class TaskRun implements TenantInterface {
|
||||
.build();
|
||||
}
|
||||
|
||||
public TaskRun addAttempt(TaskRunAttempt attempt) {
|
||||
if (this.attempts == null) {
|
||||
this.attempts = new ArrayList<>();
|
||||
}
|
||||
this.attempts.add(attempt);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
|
||||
import io.kestra.core.exceptions.InternalException;
|
||||
import io.kestra.core.models.HasUID;
|
||||
import io.kestra.core.models.annotations.PluginProperty;
|
||||
import io.kestra.core.models.flows.check.Check;
|
||||
import io.kestra.core.models.flows.sla.SLA;
|
||||
import io.kestra.core.models.listeners.Listener;
|
||||
import io.kestra.core.models.tasks.FlowableTask;
|
||||
@@ -129,6 +130,14 @@ public class Flow extends AbstractFlow implements HasUID {
|
||||
@Valid
|
||||
@PluginProperty
|
||||
List<SLA> sla;
|
||||
|
||||
@Schema(
|
||||
title = "Conditions evaluated before the flow is executed.",
|
||||
description = "A list of conditions that are evaluated before the flow is executed. If no checks are defined, the flow executes normally."
|
||||
)
|
||||
@Valid
|
||||
@PluginProperty
|
||||
List<Check> checks;
|
||||
|
||||
public Stream<String> allTypes() {
|
||||
return Stream.of(
|
||||
|
||||
@@ -43,6 +43,7 @@ public class FlowWithSource extends Flow {
|
||||
.concurrency(this.concurrency)
|
||||
.retry(this.retry)
|
||||
.sla(this.sla)
|
||||
.checks(this.checks)
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -85,6 +86,7 @@ public class FlowWithSource extends Flow {
|
||||
.concurrency(flow.concurrency)
|
||||
.retry(flow.retry)
|
||||
.sla(flow.sla)
|
||||
.checks(flow.checks)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
109
core/src/main/java/io/kestra/core/models/flows/check/Check.java
Normal file
@@ -0,0 +1,109 @@
|
||||
package io.kestra.core.models.flows.check;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Represents a check within a Kestra flow.
|
||||
* <p>
|
||||
* A {@code Check} defines a boolean condition that is evaluated when validating flow's inputs
|
||||
* and before triggering an execution.
|
||||
* <p>
|
||||
* If the condition evaluates to {@code false}, the configured {@link Behavior}
|
||||
* determines how the execution proceeds, and the {@link Style} determines how
|
||||
* the message is visually presented in the UI.
|
||||
* </p>
|
||||
*/
|
||||
@SuperBuilder
|
||||
@Getter
|
||||
@NoArgsConstructor
|
||||
public class Check {
|
||||
|
||||
/**
|
||||
* The condition to evaluate.
|
||||
*/
|
||||
@NotNull
|
||||
@NotEmpty
|
||||
String condition;
|
||||
|
||||
/**
|
||||
* The message associated with this check, will be displayed when the condition evaluates to {@code false}.
|
||||
*/
|
||||
@NotEmpty
|
||||
String message;
|
||||
|
||||
/**
|
||||
* Defines the style of the message displayed in the UI when the condition evaluates to {@code false}.
|
||||
*/
|
||||
Style style = Style.INFO;
|
||||
|
||||
/**
|
||||
* The behavior to apply when the condition evaluates to {@code false}.
|
||||
*/
|
||||
Behavior behavior = Behavior.BLOCK_EXECUTION;
|
||||
|
||||
/**
|
||||
* The visual style used to display the message when the check fails.
|
||||
*/
|
||||
public enum Style {
|
||||
/**
|
||||
* Display the message as an error.
|
||||
*/
|
||||
ERROR,
|
||||
/**
|
||||
* Display the message as a success indicator.
|
||||
*/
|
||||
SUCCESS,
|
||||
/**
|
||||
* Display the message as a warning.
|
||||
*/
|
||||
WARNING,
|
||||
/**
|
||||
* Display the message as informational content.
|
||||
*/
|
||||
INFO;
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines how the flow should behave when the condition evaluates to {@code false}.
|
||||
*/
|
||||
public enum Behavior {
|
||||
/**
|
||||
* Block the creation of the execution.
|
||||
*/
|
||||
BLOCK_EXECUTION,
|
||||
/**
|
||||
* Create the execution as failed.
|
||||
*/
|
||||
FAIL_EXECUTION,
|
||||
/**
|
||||
* Create a new execution as a result of the check failing.
|
||||
*/
|
||||
CREATE_EXECUTION;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves the effective behavior for a list of {@link Check}s based on priority.
|
||||
*
|
||||
* @param checks the list of checks whose behaviors are to be evaluated
|
||||
* @return the highest-priority behavior, or {@code CREATE_EXECUTION} if the list is empty or only contains nulls
|
||||
*/
|
||||
public static Check.Behavior resolveBehavior(List<Check> checks) {
|
||||
if (checks == null || checks.isEmpty()) {
|
||||
return Behavior.CREATE_EXECUTION;
|
||||
}
|
||||
|
||||
return checks.stream()
|
||||
.map(Check::getBehavior)
|
||||
.filter(Objects::nonNull).min(Comparator.comparingInt(Enum::ordinal))
|
||||
.orElse(Behavior.CREATE_EXECUTION);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -35,7 +35,6 @@ import static io.kestra.core.utils.Rethrow.throwFunction;
|
||||
@JsonDeserialize(using = Property.PropertyDeserializer.class)
|
||||
@JsonSerialize(using = Property.PropertySerializer.class)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor(access = AccessLevel.PACKAGE)
|
||||
@Schema(
|
||||
oneOf = {
|
||||
@@ -51,6 +50,7 @@ public class Property<T> {
|
||||
.copy()
|
||||
.configure(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS, false);
|
||||
|
||||
private final boolean skipCache;
|
||||
private String expression;
|
||||
private T value;
|
||||
|
||||
@@ -60,13 +60,23 @@ public class Property<T> {
|
||||
@Deprecated
|
||||
// Note: when not used, this constructor would not be deleted but made private so it can only be used by ofExpression(String) and the deserializer
|
||||
public Property(String expression) {
|
||||
this.expression = expression;
|
||||
this(expression, false);
|
||||
}
|
||||
|
||||
private Property(String expression, boolean skipCache) {
|
||||
this.expression = expression;
|
||||
this.skipCache = skipCache;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #ofValue(Object)} instead.
|
||||
*/
|
||||
@VisibleForTesting
|
||||
@Deprecated
|
||||
public Property(Map<?, ?> map) {
|
||||
try {
|
||||
expression = MAPPER.writeValueAsString(map);
|
||||
this.skipCache = false;
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new IllegalArgumentException(e);
|
||||
}
|
||||
@@ -79,9 +89,6 @@ public class Property<T> {
|
||||
/**
|
||||
* Returns a new {@link Property} with no cached rendered value,
|
||||
* so that the next render will evaluate its original Pebble expression.
|
||||
* <p>
|
||||
* The returned property will still cache its rendered result.
|
||||
* To re-evaluate on a subsequent render, call {@code skipCache()} again.
|
||||
*
|
||||
* @return a new {@link Property} without a pre-rendered value
|
||||
*/
|
||||
@@ -133,6 +140,7 @@ public class Property<T> {
|
||||
|
||||
/**
|
||||
* Build a new Property object with a Pebble expression.<br>
|
||||
* This property object will not cache its rendered value.
|
||||
* <p>
|
||||
* Use {@link #ofValue(Object)} to build a property with a value instead.
|
||||
*/
|
||||
@@ -142,11 +150,11 @@ public class Property<T> {
|
||||
throw new IllegalArgumentException("'expression' must be a valid Pebble expression");
|
||||
}
|
||||
|
||||
return new Property<>(expression);
|
||||
return new Property<>(expression, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Render a property then convert it to its target type.<br>
|
||||
* Render a property, then convert it to its target type.<br>
|
||||
* <p>
|
||||
* This method is designed to be used only by the {@link io.kestra.core.runners.RunContextProperty}.
|
||||
*
|
||||
@@ -164,7 +172,7 @@ public class Property<T> {
|
||||
* @see io.kestra.core.runners.RunContextProperty#as(Class, Map)
|
||||
*/
|
||||
public static <T> T as(Property<T> property, PropertyContext context, Class<T> clazz, Map<String, Object> variables) throws IllegalVariableEvaluationException {
|
||||
if (property.value == null) {
|
||||
if (property.skipCache || property.value == null) {
|
||||
String rendered = context.render(property.expression, variables);
|
||||
property.value = MAPPER.convertValue(rendered, clazz);
|
||||
}
|
||||
@@ -192,7 +200,7 @@ public class Property<T> {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T, I> T asList(Property<T> property, PropertyContext context, Class<I> itemClazz, Map<String, Object> variables) throws IllegalVariableEvaluationException {
|
||||
if (property.value == null) {
|
||||
if (property.skipCache || property.value == null) {
|
||||
JavaType type = MAPPER.getTypeFactory().constructCollectionLikeType(List.class, itemClazz);
|
||||
try {
|
||||
String trimmedExpression = property.expression.trim();
|
||||
@@ -244,7 +252,7 @@ public class Property<T> {
|
||||
*/
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
public static <T, K, V> T asMap(Property<T> property, RunContext runContext, Class<K> keyClass, Class<V> valueClass, Map<String, Object> variables) throws IllegalVariableEvaluationException {
|
||||
if (property.value == null) {
|
||||
if (property.skipCache || property.value == null) {
|
||||
JavaType targetMapType = MAPPER.getTypeFactory().constructMapType(Map.class, keyClass, valueClass);
|
||||
|
||||
try {
|
||||
|
||||
@@ -7,7 +7,6 @@ import io.kestra.core.models.tasks.runners.TaskLogLineMatcher.TaskLogMatch;
|
||||
import io.kestra.core.runners.DefaultRunContext;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.serializers.JacksonMapper;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
@@ -215,8 +214,7 @@ abstract public class PluginUtilsService {
|
||||
realNamespace = runContext.render(namespace);
|
||||
realFlowId = runContext.render(flowId);
|
||||
// validate that the flow exists: a.k.a access is authorized by this namespace
|
||||
FlowService flowService = ((DefaultRunContext)runContext).getApplicationContext().getBean(FlowService.class);
|
||||
flowService.checkAllowedNamespace(flowInfo.tenantId(), realNamespace, flowInfo.tenantId(), flowInfo.namespace());
|
||||
runContext.acl().allowNamespace(realNamespace).check();
|
||||
} else if (namespace != null || flowId != null) {
|
||||
throw new IllegalArgumentException("Both `namespace` and `flowId` must be set when `executionId` is set.");
|
||||
} else {
|
||||
|
||||
@@ -2,7 +2,6 @@ package io.kestra.core.repositories;
|
||||
|
||||
import io.kestra.core.models.QueryFilter;
|
||||
import io.kestra.core.models.executions.Execution;
|
||||
import io.kestra.core.models.executions.TaskRun;
|
||||
import io.kestra.core.models.executions.statistics.DailyExecutionStatistics;
|
||||
import io.kestra.core.models.executions.statistics.ExecutionCount;
|
||||
import io.kestra.core.models.executions.statistics.Flow;
|
||||
@@ -94,6 +93,8 @@ public interface ExecutionRepositoryInterface extends SaveRepositoryInterface<Ex
|
||||
|
||||
Flux<Execution> findAllAsync(@Nullable String tenantId);
|
||||
|
||||
Flux<Execution> findAsync(String tenantId, List<QueryFilter> filters);
|
||||
|
||||
Execution delete(Execution execution);
|
||||
|
||||
Integer purge(Execution execution);
|
||||
|
||||
@@ -8,6 +8,7 @@ import io.kestra.plugin.core.dashboard.data.Flows;
|
||||
import io.micronaut.data.model.Pageable;
|
||||
import jakarta.annotation.Nullable;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
import reactor.core.publisher.Flux;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@@ -158,6 +159,8 @@ public interface FlowRepositoryInterface extends QueryBuilderInterface<Flows.Fie
|
||||
.toList();
|
||||
}
|
||||
|
||||
Flux<Flow> findAsync(String tenantId, List<QueryFilter> filters);
|
||||
|
||||
FlowWithSource create(GenericFlow flow);
|
||||
|
||||
FlowWithSource update(GenericFlow flow, FlowInterface previous) throws ConstraintViolationException;
|
||||
|
||||
@@ -43,9 +43,9 @@ public interface TriggerRepositoryInterface extends QueryBuilderInterface<Trigge
|
||||
|
||||
/**
|
||||
* Find all triggers that match the query, return a flux of triggers
|
||||
* as the search is not paginated
|
||||
*/
|
||||
Flux<Trigger> find(String tenantId, List<QueryFilter> filters);
|
||||
Flux<Trigger> findAsync(String tenantId, List<QueryFilter> filters);
|
||||
|
||||
|
||||
default Function<String, String> sortMapping() throws IllegalArgumentException {
|
||||
return Function.identity();
|
||||
|
||||
46
core/src/main/java/io/kestra/core/runners/AclChecker.java
Normal file
@@ -0,0 +1,46 @@
|
||||
package io.kestra.core.runners;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Check if the current taskrun has access to the requested resources.
|
||||
*
|
||||
* <p>
|
||||
* IMPORTANT: remember to call the <code>check()</code> method to check the ACL.
|
||||
*
|
||||
* @see AllowedResources
|
||||
*/
|
||||
public interface AclChecker {
|
||||
|
||||
/**Tasks that need to access resources outside their namespace should use this interface to check ACL (Allowed namespaces in EE).
|
||||
* Allow all namespaces.
|
||||
* <p>
|
||||
* IMPORTANT: remember to call the <code>check()</code> method to check the ACL.
|
||||
*/
|
||||
AllowedResources allowAllNamespaces();
|
||||
|
||||
/**
|
||||
* Allow only the given namespace.
|
||||
* <p>
|
||||
* IMPORTANT: remember to call the <code>check()</code> method to check the ACL.
|
||||
*/
|
||||
AllowedResources allowNamespace(String namespace);
|
||||
|
||||
/**
|
||||
* Allow only the given namespaces.
|
||||
* <p>
|
||||
* IMPORTANT: remember to call the <code>check()</code> method to check the ACL.
|
||||
*/
|
||||
AllowedResources allowNamespaces(List<String> namespaces);
|
||||
|
||||
/**
|
||||
* Represents a set of allowed resources.
|
||||
* Tasks that need to access resources outside their namespace should call the <code>check()</code> method to check the ACL (Allowed namespaces in EE).
|
||||
*/
|
||||
interface AllowedResources {
|
||||
/**
|
||||
* Check if the current taskrun has access to the requested resources.
|
||||
*/
|
||||
void check();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package io.kestra.core.runners;
|
||||
|
||||
import io.kestra.core.services.NamespaceService;
|
||||
import io.micronaut.context.ApplicationContext;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
class AclCheckerImpl implements AclChecker {
|
||||
private final NamespaceService namespaceService;
|
||||
private final RunContext.FlowInfo flowInfo;
|
||||
|
||||
AclCheckerImpl(ApplicationContext applicationContext, RunContext.FlowInfo flowInfo) {
|
||||
this.namespaceService = applicationContext.getBean(NamespaceService.class);
|
||||
this.flowInfo = flowInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AllowedResources allowAllNamespaces() {
|
||||
return new AllowAllNamespaces(flowInfo, namespaceService);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AllowedResources allowNamespace(String namespace) {
|
||||
return new AllowNamespace(flowInfo, namespaceService, namespace);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AllowedResources allowNamespaces(List<String> namespaces) {
|
||||
return new AllowNamespaces(flowInfo, namespaceService, namespaces);
|
||||
}
|
||||
|
||||
|
||||
static class AllowAllNamespaces implements AllowedResources {
|
||||
private final RunContext.FlowInfo flowInfo;
|
||||
private final NamespaceService namespaceService;
|
||||
|
||||
AllowAllNamespaces(RunContext.FlowInfo flowInfo, NamespaceService namespaceService) {
|
||||
this.flowInfo = Objects.requireNonNull(flowInfo);
|
||||
this.namespaceService = Objects.requireNonNull(namespaceService);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void check() {
|
||||
this.namespaceService.checkAllowedAllNamespaces(flowInfo.tenantId(), flowInfo.tenantId(), flowInfo.namespace());
|
||||
}
|
||||
}
|
||||
|
||||
static class AllowNamespace implements AllowedResources {
|
||||
private final RunContext.FlowInfo flowInfo;
|
||||
private final NamespaceService namespaceService;
|
||||
private final String namespace;
|
||||
|
||||
public AllowNamespace(RunContext.FlowInfo flowInfo, NamespaceService namespaceService, String namespace) {
|
||||
this.flowInfo = Objects.requireNonNull(flowInfo);
|
||||
this.namespaceService = Objects.requireNonNull(namespaceService);
|
||||
this.namespace = Objects.requireNonNull(namespace);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void check() {
|
||||
namespaceService.checkAllowedNamespace(flowInfo.tenantId(), namespace, flowInfo.tenantId(), flowInfo.namespace());
|
||||
}
|
||||
}
|
||||
|
||||
static class AllowNamespaces implements AllowedResources {
|
||||
private final RunContext.FlowInfo flowInfo;
|
||||
private final NamespaceService namespaceService;
|
||||
private final List<String> namespaces;
|
||||
|
||||
AllowNamespaces(RunContext.FlowInfo flowInfo, NamespaceService namespaceService, List<String> namespaces) {
|
||||
this.flowInfo = Objects.requireNonNull(flowInfo);
|
||||
this.namespaceService = Objects.requireNonNull(namespaceService);
|
||||
this.namespaces = Objects.requireNonNull(namespaces);
|
||||
|
||||
if (namespaces.isEmpty()) {
|
||||
throw new IllegalArgumentException("At least one namespace must be provided");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void check() {
|
||||
namespaces.forEach(namespace -> namespaceService.checkAllowedNamespace(flowInfo.tenantId(), namespace, flowInfo.tenantId(), flowInfo.namespace()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -123,7 +123,12 @@ public class DefaultRunContext extends RunContext {
|
||||
this.traceParent = traceParent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Plugin should not use the ApplicationContext anymore, and neither should they cast to this implementation.
|
||||
* Plugin should instead rely on supported API only.
|
||||
*/
|
||||
@JsonIgnore
|
||||
@Deprecated(since = "1.2.0", forRemoval = true)
|
||||
public ApplicationContext getApplicationContext() {
|
||||
return applicationContext;
|
||||
}
|
||||
@@ -574,6 +579,11 @@ public class DefaultRunContext extends RunContext {
|
||||
return isInitialized.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AclChecker acl() {
|
||||
return new AclCheckerImpl(this.applicationContext, flowInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalPath localPath() {
|
||||
return localPath;
|
||||
|
||||
@@ -53,12 +53,10 @@ public final class ExecutableUtils {
|
||||
}
|
||||
|
||||
public static SubflowExecutionResult subflowExecutionResult(TaskRun parentTaskrun, Execution execution) {
|
||||
List<TaskRunAttempt> attempts = parentTaskrun.getAttempts() == null ? new ArrayList<>() : new ArrayList<>(parentTaskrun.getAttempts());
|
||||
attempts.add(TaskRunAttempt.builder().state(parentTaskrun.getState()).build());
|
||||
return SubflowExecutionResult.builder()
|
||||
.executionId(execution.getId())
|
||||
.state(parentTaskrun.getState().getCurrent())
|
||||
.parentTaskRun(parentTaskrun.withAttempts(attempts))
|
||||
.parentTaskRun(parentTaskrun.addAttempt(TaskRunAttempt.builder().state(parentTaskrun.getState()).build()))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import io.kestra.core.models.flows.State;
|
||||
import io.kestra.core.models.tasks.ResolvedTask;
|
||||
import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.serializers.JacksonMapper;
|
||||
import io.kestra.core.utils.ListUtils;
|
||||
import io.kestra.plugin.core.flow.Dag;
|
||||
|
||||
import java.util.*;
|
||||
@@ -143,6 +144,13 @@ public class FlowableUtils {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// have submitted, leave
|
||||
Optional<TaskRun> lastSubmitted = execution.findLastSubmitted(taskRuns);
|
||||
if (lastSubmitted.isPresent()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
|
||||
// last success, find next
|
||||
Optional<TaskRun> lastTerminated = execution.findLastTerminated(taskRuns);
|
||||
if (lastTerminated.isPresent()) {
|
||||
@@ -150,14 +158,41 @@ public class FlowableUtils {
|
||||
|
||||
if (currentTasks.size() > lastIndex + 1) {
|
||||
return Collections.singletonList(currentTasks.get(lastIndex + 1).toNextTaskRunIncrementIteration(execution, parentTaskRun.getIteration()));
|
||||
} else {
|
||||
return Collections.singletonList(currentTasks.getFirst().toNextTaskRunIncrementIteration(execution, parentTaskRun.getIteration()));
|
||||
}
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public static Optional<State.Type> resolveSequentialState(
|
||||
Execution execution,
|
||||
List<ResolvedTask> tasks,
|
||||
List<ResolvedTask> errors,
|
||||
List<ResolvedTask> _finally,
|
||||
TaskRun parentTaskRun,
|
||||
RunContext runContext,
|
||||
boolean allowFailure,
|
||||
boolean allowWarning
|
||||
) {
|
||||
if (ListUtils.emptyOnNull(tasks).stream()
|
||||
.filter(resolvedTask -> !resolvedTask.getTask().getDisabled())
|
||||
.findAny()
|
||||
.isEmpty()) {
|
||||
return Optional.of(State.Type.SUCCESS);
|
||||
}
|
||||
|
||||
return resolveState(
|
||||
execution,
|
||||
tasks,
|
||||
errors,
|
||||
_finally,
|
||||
parentTaskRun,
|
||||
runContext,
|
||||
allowFailure,
|
||||
allowWarning
|
||||
);
|
||||
}
|
||||
|
||||
public static Optional<State.Type> resolveState(
|
||||
Execution execution,
|
||||
List<ResolvedTask> tasks,
|
||||
@@ -213,7 +248,7 @@ public class FlowableUtils {
|
||||
}
|
||||
} else {
|
||||
// first call, the error flow is not ready, we need to notify the parent task that can be failed to init error flows
|
||||
if (execution.hasFailed(tasks, parentTaskRun) || terminalState == State.Type.FAILED) {
|
||||
if (execution.hasFailedNoRetry(tasks, parentTaskRun) || terminalState == State.Type.FAILED) {
|
||||
return Optional.of(execution.guessFinalState(tasks, parentTaskRun, allowFailure, allowWarning, terminalState));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,5 +192,16 @@ public abstract class RunContext implements PropertyContext {
|
||||
public record FlowInfo(String tenantId, String namespace, String id, Integer revision) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated there is no legitimate use case of this method outside the run context internal self-usage, so it should not be part of the interface
|
||||
*/
|
||||
@Deprecated(since = "1.2.0", forRemoval = true)
|
||||
public abstract boolean isInitialized();
|
||||
|
||||
/**
|
||||
* Get access to the ACL checker.
|
||||
* Plugins are responsible for using the ACL checker when they access restricted resources, for example,
|
||||
* when Namespace ACLs are used (EE).
|
||||
*/
|
||||
public abstract AclChecker acl();
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@ import io.kestra.core.models.property.PropertyContext;
|
||||
import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.models.triggers.AbstractTrigger;
|
||||
import io.kestra.core.plugins.PluginConfigurations;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.services.KVStoreService;
|
||||
import io.kestra.core.services.NamespaceService;
|
||||
import io.kestra.core.storages.InternalStorage;
|
||||
import io.kestra.core.storages.StorageContext;
|
||||
import io.kestra.core.storages.StorageInterface;
|
||||
@@ -48,7 +48,7 @@ public class RunContextFactory {
|
||||
protected StorageInterface storageInterface;
|
||||
|
||||
@Inject
|
||||
protected FlowService flowService;
|
||||
protected NamespaceService namespaceService;
|
||||
|
||||
@Inject
|
||||
protected MetricRegistry metricRegistry;
|
||||
@@ -103,7 +103,7 @@ public class RunContextFactory {
|
||||
.withLogger(runContextLogger)
|
||||
// Execution
|
||||
.withPluginConfiguration(Map.of())
|
||||
.withStorage(new InternalStorage(runContextLogger.logger(), StorageContext.forExecution(execution), storageInterface, flowService))
|
||||
.withStorage(new InternalStorage(runContextLogger.logger(), StorageContext.forExecution(execution), storageInterface, namespaceService))
|
||||
.withVariableRenderer(variableRenderer)
|
||||
.withVariables(runVariableModifier.apply(
|
||||
newRunVariablesBuilder()
|
||||
@@ -133,7 +133,7 @@ public class RunContextFactory {
|
||||
.withLogger(runContextLogger)
|
||||
// Task
|
||||
.withPluginConfiguration(pluginConfigurations.getConfigurationByPluginTypeOrAliases(task.getType(), task.getClass()))
|
||||
.withStorage(new InternalStorage(runContextLogger.logger(), StorageContext.forTask(taskRun), storageInterface, flowService))
|
||||
.withStorage(new InternalStorage(runContextLogger.logger(), StorageContext.forTask(taskRun), storageInterface, namespaceService))
|
||||
.withVariables(newRunVariablesBuilder()
|
||||
.withFlow(flow)
|
||||
.withTask(task)
|
||||
@@ -173,7 +173,7 @@ public class RunContextFactory {
|
||||
RunContextLogger runContextLogger = new RunContextLogger();
|
||||
return newBuilder()
|
||||
.withLogger(runContextLogger)
|
||||
.withStorage(new InternalStorage(runContextLogger.logger(), StorageContext.forFlow(flow), storageInterface, flowService))
|
||||
.withStorage(new InternalStorage(runContextLogger.logger(), StorageContext.forFlow(flow), storageInterface, namespaceService))
|
||||
.withVariables(variables)
|
||||
.withSecretInputs(secretInputsFromFlow(flow))
|
||||
.build();
|
||||
@@ -212,7 +212,7 @@ public class RunContextFactory {
|
||||
}
|
||||
},
|
||||
storageInterface,
|
||||
flowService
|
||||
namespaceService
|
||||
))
|
||||
.withVariables(variables)
|
||||
.withTask(task)
|
||||
|
||||
@@ -8,7 +8,7 @@ import io.kestra.core.models.tasks.runners.TaskRunner;
|
||||
import io.kestra.core.models.triggers.AbstractTrigger;
|
||||
import io.kestra.core.models.triggers.TriggerContext;
|
||||
import io.kestra.core.plugins.PluginConfigurations;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.services.NamespaceService;
|
||||
import io.kestra.core.storages.InternalStorage;
|
||||
import io.kestra.core.storages.StorageContext;
|
||||
import io.kestra.core.storages.StorageInterface;
|
||||
@@ -44,7 +44,7 @@ public class RunContextInitializer {
|
||||
protected StorageInterface storageInterface;
|
||||
|
||||
@Inject
|
||||
protected FlowService flowService;
|
||||
protected NamespaceService namespaceService;
|
||||
|
||||
@Value("${kestra.encryption.secret-key}")
|
||||
protected Optional<String> secretKey;
|
||||
@@ -135,7 +135,7 @@ public class RunContextInitializer {
|
||||
|
||||
runContext.setVariables(enrichedVariables);
|
||||
runContext.setPluginConfiguration(pluginConfigurations.getConfigurationByPluginTypeOrAliases(task.getType(), task.getClass()));
|
||||
runContext.setStorage(new InternalStorage(runContextLogger.logger(), StorageContext.forTask(taskRun), storageInterface, flowService));
|
||||
runContext.setStorage(new InternalStorage(runContextLogger.logger(), StorageContext.forTask(taskRun), storageInterface, namespaceService));
|
||||
runContext.setLogger(runContextLogger);
|
||||
runContext.setTask(task);
|
||||
|
||||
@@ -230,7 +230,7 @@ public class RunContextInitializer {
|
||||
runContextLogger.logger(),
|
||||
context,
|
||||
storageInterface,
|
||||
flowService
|
||||
namespaceService
|
||||
);
|
||||
|
||||
runContext.setLogger(runContextLogger);
|
||||
|
||||
@@ -2,7 +2,7 @@ package io.kestra.core.runners.pebble.functions;
|
||||
|
||||
import io.kestra.core.runners.LocalPath;
|
||||
import io.kestra.core.runners.LocalPathFactory;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.services.NamespaceService;
|
||||
import io.kestra.core.storages.InternalNamespace;
|
||||
import io.kestra.core.storages.Namespace;
|
||||
import io.kestra.core.storages.StorageContext;
|
||||
@@ -36,7 +36,7 @@ abstract class AbstractFileFunction implements Function {
|
||||
private static final Pattern EXECUTION_FILE = Pattern.compile(".*/.*/executions/.*/tasks/.*/.*");
|
||||
|
||||
@Inject
|
||||
protected FlowService flowService;
|
||||
protected NamespaceService namespaceService;
|
||||
|
||||
@Inject
|
||||
protected StorageInterface storageInterface;
|
||||
@@ -92,7 +92,7 @@ abstract class AbstractFileFunction implements Function {
|
||||
} else {
|
||||
namespace = (String) Optional.ofNullable(args.get(NAMESPACE)).orElse(flow.get(NAMESPACE));
|
||||
fileUri = URI.create(StorageContext.KESTRA_PROTOCOL + StorageContext.namespaceFilePrefix(namespace) + "/" + str);
|
||||
flowService.checkAllowedNamespace(tenantId, namespace, tenantId, flow.get(NAMESPACE));
|
||||
namespaceService.checkAllowedNamespace(tenantId, namespace, tenantId, flow.get(NAMESPACE));
|
||||
}
|
||||
} else {
|
||||
throw new PebbleException(null, "Unable to read the file " + path, lineNumber, self.getName());
|
||||
@@ -177,7 +177,7 @@ abstract class AbstractFileFunction implements Function {
|
||||
// 5. replace '/' with '.'
|
||||
namespace = namespace.replace("/", ".");
|
||||
|
||||
flowService.checkAllowedNamespace(tenantId, namespace, tenantId, fromNamespace);
|
||||
namespaceService.checkAllowedNamespace(tenantId, namespace, tenantId, fromNamespace);
|
||||
|
||||
return namespace;
|
||||
}
|
||||
@@ -198,7 +198,7 @@ abstract class AbstractFileFunction implements Function {
|
||||
// we will transform nsfile URI into a kestra URI so it is handled seamlessly by all functions
|
||||
String customNs = Optional.ofNullable((String) args.get(NAMESPACE)).orElse(nsFileUri.getAuthority());
|
||||
if (customNs != null) {
|
||||
flowService.checkAllowedNamespace(tenantId, customNs, tenantId, flow.get(NAMESPACE));
|
||||
namespaceService.checkAllowedNamespace(tenantId, customNs, tenantId, flow.get(NAMESPACE));
|
||||
}
|
||||
return Optional.ofNullable(customNs).orElse(flow.get(NAMESPACE));
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package io.kestra.core.runners.pebble.functions;
|
||||
import io.kestra.core.models.executions.LogEntry;
|
||||
import io.kestra.core.models.tasks.retrys.Exponential;
|
||||
import io.kestra.core.runners.pebble.PebbleUtils;
|
||||
import io.kestra.core.services.LogService;
|
||||
import io.kestra.core.services.ExecutionLogService;
|
||||
import io.kestra.core.utils.ListUtils;
|
||||
import io.kestra.core.utils.RetryUtils;
|
||||
import io.micronaut.context.annotation.Requires;
|
||||
@@ -23,7 +23,7 @@ import java.util.Map;
|
||||
@Requires(property = "kestra.repository.type")
|
||||
public class ErrorLogsFunction implements Function {
|
||||
@Inject
|
||||
private LogService logService;
|
||||
private ExecutionLogService logService;
|
||||
|
||||
@Inject
|
||||
private PebbleUtils pebbleUtils;
|
||||
|
||||
@@ -9,6 +9,7 @@ import io.kestra.core.secret.SecretNotFoundException;
|
||||
import io.kestra.core.secret.SecretService;
|
||||
import io.kestra.core.serializers.JacksonMapper;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.services.NamespaceService;
|
||||
import io.pebbletemplates.pebble.error.PebbleException;
|
||||
import io.pebbletemplates.pebble.extension.Function;
|
||||
import io.pebbletemplates.pebble.template.EvaluationContext;
|
||||
@@ -36,7 +37,7 @@ public class SecretFunction implements Function {
|
||||
private SecretService secretService;
|
||||
|
||||
@Inject
|
||||
private FlowService flowService;
|
||||
private NamespaceService namespaceService;
|
||||
|
||||
@Override
|
||||
public List<String> getArgumentNames() {
|
||||
@@ -56,7 +57,7 @@ public class SecretFunction implements Function {
|
||||
if (namespace == null) {
|
||||
namespace = flowNamespace;
|
||||
} else {
|
||||
flowService.checkAllowedNamespace(flowTenantId, namespace, flowTenantId, flowNamespace);
|
||||
namespaceService.checkAllowedNamespace(flowTenantId, namespace, flowTenantId, flowNamespace);
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
@@ -2,12 +2,15 @@ package io.kestra.core.services;
|
||||
|
||||
import io.kestra.core.models.executions.LogEntry;
|
||||
import io.kestra.core.repositories.LogRepositoryInterface;
|
||||
import io.micronaut.data.model.Pageable;
|
||||
import io.micronaut.data.model.Sort;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import org.slf4j.event.Level;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -17,9 +20,42 @@ import java.util.stream.Stream;
|
||||
*/
|
||||
@Singleton
|
||||
public class ExecutionLogService {
|
||||
|
||||
private final LogRepositoryInterface logRepository;
|
||||
|
||||
@Inject
|
||||
private LogRepositoryInterface logRepository;
|
||||
public ExecutionLogService(LogRepositoryInterface logRepository) {
|
||||
this.logRepository = logRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
* Purges log entries matching the given criteria.
|
||||
*
|
||||
* @param tenantId the tenant identifier
|
||||
* @param namespace the namespace of the flow
|
||||
* @param flowId the flow identifier
|
||||
* @param executionId the execution identifier
|
||||
* @param logLevels the list of log levels to delete
|
||||
* @param startDate the start of the date range
|
||||
* @param endDate the end of the date range.
|
||||
* @return the number of log entries deleted
|
||||
*/
|
||||
public int purge(String tenantId, String namespace, String flowId, String executionId, List<Level> logLevels, ZonedDateTime startDate, ZonedDateTime endDate) {
|
||||
return logRepository.deleteByQuery(tenantId, namespace, flowId, executionId, logLevels, startDate, endDate);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fetches the error logs of an execution.
|
||||
* <p>
|
||||
* This method limits the results to the first 25 error logs, ordered by timestamp asc.
|
||||
*
|
||||
* @return the log entries
|
||||
*/
|
||||
public List<LogEntry> errorLogs(String tenantId, String executionId) {
|
||||
return logRepository.findByExecutionId(tenantId, executionId, Level.ERROR, Pageable.from(1, 25, Sort.of(Sort.Order.asc("timestamp"))));
|
||||
}
|
||||
|
||||
public InputStream getExecutionLogsAsStream(String tenantId,
|
||||
String executionId,
|
||||
Level minLevel,
|
||||
|
||||
@@ -2,8 +2,10 @@ package io.kestra.core.services;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import io.kestra.core.exceptions.FlowProcessingException;
|
||||
import io.kestra.core.exceptions.IllegalVariableEvaluationException;
|
||||
import io.kestra.core.models.executions.Execution;
|
||||
import io.kestra.core.models.flows.*;
|
||||
import io.kestra.core.models.flows.check.Check;
|
||||
import io.kestra.core.models.tasks.RunnableTask;
|
||||
import io.kestra.core.models.topologies.FlowTopology;
|
||||
import io.kestra.core.models.triggers.AbstractTrigger;
|
||||
@@ -12,10 +14,13 @@ import io.kestra.core.models.validations.ValidateConstraintViolation;
|
||||
import io.kestra.core.plugins.PluginRegistry;
|
||||
import io.kestra.core.repositories.FlowRepositoryInterface;
|
||||
import io.kestra.core.repositories.FlowTopologyRepositoryInterface;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.runners.RunContextFactory;
|
||||
import io.kestra.core.serializers.JacksonMapper;
|
||||
import io.kestra.core.utils.ListUtils;
|
||||
import io.kestra.plugin.core.flow.Pause;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Provider;
|
||||
import jakarta.inject.Singleton;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -54,6 +59,9 @@ public class FlowService {
|
||||
@Inject
|
||||
Optional<FlowTopologyRepositoryInterface> flowTopologyRepository;
|
||||
|
||||
@Inject
|
||||
Provider<RunContextFactory> runContextFactory; // Lazy init: avoid circular dependency error.
|
||||
|
||||
/**
|
||||
* Validates and creates the given flow.
|
||||
* <p>
|
||||
@@ -85,6 +93,50 @@ public class FlowService {
|
||||
.orElseThrow(() -> new IllegalStateException("Cannot perform operation on flow. Cause: No FlowRepository"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates all checks defined in the given flow using the provided inputs.
|
||||
* <p>
|
||||
* Each check's {@link Check#getCondition()} is evaluated in the context of the flow.
|
||||
* If a condition evaluates to {@code false} or fails to evaluate due to a
|
||||
* variable error, the corresponding {@link Check} is added to the returned list.
|
||||
* </p>
|
||||
*
|
||||
* @param flow the flow containing the checks to evaluate
|
||||
* @param inputs the input values used when evaluating the conditions
|
||||
* @return a list of checks whose conditions evaluated to {@code false} or failed to evaluate
|
||||
*/
|
||||
public List<Check> getFailedChecks(Flow flow, Map<String, Object> inputs) {
|
||||
if (!ListUtils.isEmpty(flow.getChecks())) {
|
||||
RunContext runContext = runContextFactory.get().of(flow, Map.of("inputs", inputs));
|
||||
List<Check> falseConditions = new ArrayList<>();
|
||||
for (Check check : flow.getChecks()) {
|
||||
try {
|
||||
boolean result = Boolean.TRUE.equals(runContext.renderTyped(check.getCondition()));
|
||||
if (!result) {
|
||||
falseConditions.add(check);
|
||||
}
|
||||
} catch (IllegalVariableEvaluationException e) {
|
||||
log.debug("[tenant: {}] [namespace: {}] [flow: {}] Failed to evaluate check condition. Cause.: {}",
|
||||
flow.getTenantId(),
|
||||
flow.getNamespace(),
|
||||
flow.getId(),
|
||||
e.getMessage(),
|
||||
e
|
||||
);
|
||||
falseConditions.add(Check
|
||||
.builder()
|
||||
.message("Failed to evaluate check condition. Cause: " + e.getMessage())
|
||||
.behavior(Check.Behavior.BLOCK_EXECUTION)
|
||||
.style(Check.Style.ERROR)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
}
|
||||
return falseConditions;
|
||||
}
|
||||
return List.of();
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the given flow source.
|
||||
* <p>
|
||||
@@ -456,50 +508,6 @@ public class FlowService {
|
||||
return flowRepository.get().delete(flow);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if the namespace is allowed from the namespace denoted by 'fromTenant' and 'fromNamespace'.
|
||||
* As namespace restriction is an EE feature, this will always return true in OSS.
|
||||
*/
|
||||
public boolean isAllowedNamespace(String tenant, String namespace, String fromTenant, String fromNamespace) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that the namespace is allowed from the namespace denoted by 'fromTenant' and 'fromNamespace'.
|
||||
* If not, throw an IllegalArgumentException.
|
||||
*/
|
||||
public void checkAllowedNamespace(String tenant, String namespace, String fromTenant, String fromNamespace) {
|
||||
if (!isAllowedNamespace(tenant, namespace, fromTenant, fromNamespace)) {
|
||||
throw new IllegalArgumentException("Namespace " + namespace + " is not allowed.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if the namespace is allowed from all the namespace in the 'fromTenant' tenant.
|
||||
* As namespace restriction is an EE feature, this will always return true in OSS.
|
||||
*/
|
||||
public boolean areAllowedAllNamespaces(String tenant, String fromTenant, String fromNamespace) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that the namespace is allowed from all the namespace in the 'fromTenant' tenant.
|
||||
* If not, throw an IllegalArgumentException.
|
||||
*/
|
||||
public void checkAllowedAllNamespaces(String tenant, String fromTenant, String fromNamespace) {
|
||||
if (!areAllowedAllNamespaces(tenant, fromTenant, fromNamespace)) {
|
||||
throw new IllegalArgumentException("All namespaces are not allowed, you should either filter on a namespace or configure all namespaces to allow your namespace.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if require existing namespace is enabled and the namespace didn't already exist.
|
||||
* As namespace management is an EE feature, this will always return false in OSS.
|
||||
*/
|
||||
public boolean requireExistingNamespace(String tenant, String namespace) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the executable flow for the given namespace, id, and revision.
|
||||
* Warning: this method bypasses ACL so someone with only execution right can create a flow execution
|
||||
|
||||
@@ -20,9 +20,6 @@ public class KVStoreService {
|
||||
@Inject
|
||||
private StorageInterface storageInterface;
|
||||
|
||||
@Inject
|
||||
private FlowService flowService;
|
||||
|
||||
@Inject
|
||||
private NamespaceService namespaceService;
|
||||
|
||||
@@ -38,7 +35,7 @@ public class KVStoreService {
|
||||
boolean isNotSameNamespace = fromNamespace != null && !namespace.equals(fromNamespace);
|
||||
if (isNotSameNamespace && isNotParentNamespace(namespace, fromNamespace)) {
|
||||
try {
|
||||
flowService.checkAllowedNamespace(tenant, namespace, tenant, fromNamespace);
|
||||
namespaceService.checkAllowedNamespace(tenant, namespace, tenant, fromNamespace);
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new KVStoreException(String.format(
|
||||
"Cannot access the KV store. Access to '%s' namespace is not allowed from '%s'.", namespace, fromNamespace)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package io.kestra.core.services;
|
||||
|
||||
import io.kestra.core.exceptions.ResourceAccessDeniedException;
|
||||
import io.kestra.core.repositories.FlowRepositoryInterface;
|
||||
import io.kestra.core.utils.NamespaceUtils;
|
||||
import jakarta.inject.Inject;
|
||||
@@ -39,4 +40,52 @@ public class NamespaceService {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if require existing namespace is enabled and the namespace didn't already exist.
|
||||
* As namespace management is an EE feature, this will always return false in OSS.
|
||||
*/
|
||||
public boolean requireExistingNamespace(String tenant, String namespace) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if the namespace is allowed from the namespace denoted by 'fromTenant' and 'fromNamespace'.
|
||||
* As namespace restriction is an EE feature, this will always return true in OSS.
|
||||
*/
|
||||
public boolean isAllowedNamespace(String tenant, String namespace, String fromTenant, String fromNamespace) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that the namespace is allowed from the namespace denoted by 'fromTenant' and 'fromNamespace'.
|
||||
* If not, throw a ResourceAccessDeniedException.
|
||||
*
|
||||
* @throws ResourceAccessDeniedException if the namespace is not allowed.
|
||||
*/
|
||||
public void checkAllowedNamespace(String tenant, String namespace, String fromTenant, String fromNamespace) {
|
||||
if (!isAllowedNamespace(tenant, namespace, fromTenant, fromNamespace)) {
|
||||
throw new ResourceAccessDeniedException("Namespace " + namespace + " is not allowed.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if the namespace is allowed from all the namespace in the 'fromTenant' tenant.
|
||||
* As namespace restriction is an EE feature, this will always return true in OSS.
|
||||
*/
|
||||
public boolean areAllowedAllNamespaces(String tenant, String fromTenant, String fromNamespace) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that the namespace is allowed from all the namespace in the 'fromTenant' tenant.
|
||||
* If not, throw a ResourceAccessDeniedException.
|
||||
*
|
||||
* @throws ResourceAccessDeniedException if all namespaces all aren't allowed.
|
||||
*/
|
||||
public void checkAllowedAllNamespaces(String tenant, String fromTenant, String fromNamespace) {
|
||||
if (!areAllowedAllNamespaces(tenant, fromTenant, fromNamespace)) {
|
||||
throw new ResourceAccessDeniedException("All namespaces are not allowed, you should either filter on a namespace or configure all namespaces to allow your namespace.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import io.kestra.core.queues.QueueInterface;
|
||||
import io.kestra.core.runners.RunContextLogger;
|
||||
import io.kestra.core.serializers.JacksonMapper;
|
||||
import io.kestra.core.serializers.YamlParser;
|
||||
import io.kestra.core.utils.Logs;
|
||||
import io.kestra.core.utils.MapUtils;
|
||||
import io.kestra.plugin.core.flow.Template;
|
||||
import io.micronaut.context.annotation.Value;
|
||||
@@ -30,7 +31,6 @@ import io.micronaut.core.annotation.Nullable;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Named;
|
||||
import jakarta.inject.Provider;
|
||||
import jakarta.inject.Singleton;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -82,10 +82,7 @@ public class PluginDefaultService {
|
||||
|
||||
@Inject
|
||||
protected PluginRegistry pluginRegistry;
|
||||
|
||||
@Inject
|
||||
protected Provider<LogService> logService; // lazy-init
|
||||
|
||||
|
||||
@Value("{kestra.templates.enabled:false}")
|
||||
private boolean templatesEnabled;
|
||||
|
||||
@@ -255,7 +252,7 @@ public class PluginDefaultService {
|
||||
if (source == null) {
|
||||
// This should never happen
|
||||
String error = "Cannot apply plugin defaults. Cause: flow has no defined source.";
|
||||
logService.get().logExecution(flow, log, Level.ERROR, error);
|
||||
Logs.logExecution(flow, log, Level.ERROR, error);
|
||||
throw new IllegalArgumentException(error);
|
||||
}
|
||||
|
||||
@@ -311,7 +308,7 @@ public class PluginDefaultService {
|
||||
result = parseFlowWithAllDefaults(flow.getTenantId(), flow.getNamespace(), flow.getRevision(), flow.isDeleted(), source, true, false);
|
||||
} catch (Exception e) {
|
||||
if (safe) {
|
||||
logService.get().logExecution(flow, log, Level.ERROR, "Failed to read flow.", e);
|
||||
Logs.logExecution(flow, log, Level.ERROR, "Failed to read flow.", e);
|
||||
result = FlowWithException.from(flow, e);
|
||||
|
||||
// deleted is not part of the original 'source'
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
package io.kestra.core.storages;
|
||||
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.services.KVStoreService;
|
||||
import io.kestra.core.storages.kv.InternalKVStore;
|
||||
import io.kestra.core.storages.kv.KVStore;
|
||||
import io.kestra.core.services.NamespaceService;
|
||||
import jakarta.annotation.Nullable;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
@@ -33,7 +29,7 @@ public class InternalStorage implements Storage {
|
||||
private final Logger logger;
|
||||
private final StorageContext context;
|
||||
private final StorageInterface storage;
|
||||
private final FlowService flowService;
|
||||
private final NamespaceService namespaceService;
|
||||
|
||||
/**
|
||||
* Creates a new {@link InternalStorage} instance.
|
||||
@@ -52,11 +48,11 @@ public class InternalStorage implements Storage {
|
||||
* @param context The storage context.
|
||||
* @param storage The storage to delegate operations.
|
||||
*/
|
||||
public InternalStorage(Logger logger, StorageContext context, StorageInterface storage, FlowService flowService) {
|
||||
public InternalStorage(Logger logger, StorageContext context, StorageInterface storage, NamespaceService namespaceService) {
|
||||
this.logger = logger;
|
||||
this.context = context;
|
||||
this.storage = storage;
|
||||
this.flowService = flowService;
|
||||
this.namespaceService = namespaceService;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -74,8 +70,8 @@ public class InternalStorage implements Storage {
|
||||
public Namespace namespace(String namespace) {
|
||||
boolean isExternalNamespace = !namespace.equals(context.getNamespace());
|
||||
// Checks whether the contextual namespace is allowed to access the passed namespace.
|
||||
if (isExternalNamespace && flowService != null) {
|
||||
flowService.checkAllowedNamespace(
|
||||
if (isExternalNamespace && namespaceService != null) {
|
||||
namespaceService.checkAllowedNamespace(
|
||||
context.getTenantId(), namespace, // requested Tenant/Namespace
|
||||
context.getTenantId(), context.getNamespace() // from Tenant/Namespace
|
||||
);
|
||||
|
||||
@@ -1,38 +1,27 @@
|
||||
package io.kestra.core.services;
|
||||
package io.kestra.core.utils;
|
||||
|
||||
import io.kestra.core.models.executions.Execution;
|
||||
import io.kestra.core.models.executions.LogEntry;
|
||||
import io.kestra.core.models.executions.TaskRun;
|
||||
import io.kestra.core.models.flows.FlowId;
|
||||
import io.kestra.core.models.triggers.TriggerContext;
|
||||
import io.kestra.core.repositories.LogRepositoryInterface;
|
||||
import io.micronaut.data.model.Pageable;
|
||||
import io.micronaut.data.model.Sort;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.slf4j.event.Level;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
/**
|
||||
* Utility class for logging
|
||||
*/
|
||||
public final class Logs {
|
||||
|
||||
@Singleton
|
||||
public class LogService {
|
||||
private static final String FLOW_PREFIX_WITH_TENANT = "[tenant: {}] [namespace: {}] [flow: {}] ";
|
||||
private static final String EXECUTION_PREFIX_WITH_TENANT = FLOW_PREFIX_WITH_TENANT + "[execution: {}] ";
|
||||
private static final String TRIGGER_PREFIX_WITH_TENANT = FLOW_PREFIX_WITH_TENANT + "[trigger: {}] ";
|
||||
private static final String TASKRUN_PREFIX_WITH_TENANT = FLOW_PREFIX_WITH_TENANT + "[task: {}] [execution: {}] [taskrun: {}] ";
|
||||
|
||||
private Logs() {}
|
||||
|
||||
private final LogRepositoryInterface logRepository;
|
||||
|
||||
@Inject
|
||||
public LogService(LogRepositoryInterface logRepository) {
|
||||
this.logRepository = logRepository;
|
||||
}
|
||||
|
||||
public void logExecution(FlowId flow, Logger logger, Level level, String message, Object... args) {
|
||||
public static void logExecution(FlowId flow, Logger logger, Level level, String message, Object... args) {
|
||||
String finalMsg = FLOW_PREFIX_WITH_TENANT + message;
|
||||
Object[] executionArgs = new Object[] { flow.getTenantId(), flow.getNamespace(), flow.getId() };
|
||||
Object[] finalArgs = ArrayUtils.addAll(executionArgs, args);
|
||||
@@ -40,37 +29,37 @@ public class LogService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Log an execution via the execution logger named: 'execution.{flowId}'.
|
||||
* Log an {@link Execution} via the execution logger named: 'execution.{flowId}'.
|
||||
*/
|
||||
public void logExecution(Execution execution, Level level, String message, Object... args) {
|
||||
public static void logExecution(Execution execution, Level level, String message, Object... args) {
|
||||
Logger logger = logger(execution);
|
||||
logExecution(execution, logger, level, message, args);
|
||||
}
|
||||
|
||||
public void logExecution(Execution execution, Logger logger, Level level, String message, Object... args) {
|
||||
public static void logExecution(Execution execution, Logger logger, Level level, String message, Object... args) {
|
||||
Object[] executionArgs = new Object[] { execution.getTenantId(), execution.getNamespace(), execution.getFlowId(), execution.getId() };
|
||||
Object[] finalArgs = ArrayUtils.addAll(executionArgs, args);
|
||||
logger.atLevel(level).log(EXECUTION_PREFIX_WITH_TENANT + message, finalArgs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a trigger via the trigger logger named: 'trigger.{flowId}.{triggereId}'.
|
||||
* Log a {@link TriggerContext} via the trigger logger named: 'trigger.{flowId}.{triggereId}'.
|
||||
*/
|
||||
public void logTrigger(TriggerContext triggerContext, Level level, String message, Object... args) {
|
||||
public static void logTrigger(TriggerContext triggerContext, Level level, String message, Object... args) {
|
||||
Logger logger = logger(triggerContext);
|
||||
logTrigger(triggerContext, logger, level, message, args);
|
||||
}
|
||||
|
||||
public void logTrigger(TriggerContext triggerContext, Logger logger, Level level, String message, Object... args) {
|
||||
public static void logTrigger(TriggerContext triggerContext, Logger logger, Level level, String message, Object... args) {
|
||||
Object[] executionArgs = new Object[] { triggerContext.getTenantId(), triggerContext.getNamespace(), triggerContext.getFlowId(), triggerContext.getTriggerId() };
|
||||
Object[] finalArgs = ArrayUtils.addAll(executionArgs, args);
|
||||
logger.atLevel(level).log(TRIGGER_PREFIX_WITH_TENANT + message, finalArgs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a taskRun via the taskRun logger named: 'task.{flowId}.{taskId}'.
|
||||
* Log a {@link TaskRun} via the taskRun logger named: 'task.{flowId}.{taskId}'.
|
||||
*/
|
||||
public void logTaskRun(TaskRun taskRun, Level level, String message, Object... args) {
|
||||
public static void logTaskRun(TaskRun taskRun, Level level, String message, Object... args) {
|
||||
String prefix = TASKRUN_PREFIX_WITH_TENANT;
|
||||
String finalMsg = taskRun.getValue() == null ? prefix + message : prefix + "[value: {}] " + message;
|
||||
Object[] executionArgs = new Object[] { taskRun.getTenantId(), taskRun.getNamespace(), taskRun.getFlowId(), taskRun.getTaskId(), taskRun.getExecutionId(), taskRun.getId() };
|
||||
@@ -82,31 +71,19 @@ public class LogService {
|
||||
logger.atLevel(level).log(finalMsg, finalArgs);
|
||||
}
|
||||
|
||||
public int purge(String tenantId, String namespace, String flowId, String executionId, List<Level> logLevels, ZonedDateTime startDate, ZonedDateTime endDate) {
|
||||
return logRepository.deleteByQuery(tenantId, namespace, flowId, executionId, logLevels, startDate, endDate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the error logs of an execution.
|
||||
* Will limit the results to the first 25 error logs, ordered by timestamp asc.
|
||||
*/
|
||||
public List<LogEntry> errorLogs(String tenantId, String executionId) {
|
||||
return logRepository.findByExecutionId(tenantId, executionId, Level.ERROR, Pageable.from(1, 25, Sort.of(Sort.Order.asc("timestamp"))));
|
||||
}
|
||||
|
||||
private Logger logger(TaskRun taskRun) {
|
||||
private static Logger logger(TaskRun taskRun) {
|
||||
return LoggerFactory.getLogger(
|
||||
"task." + taskRun.getFlowId() + "." + taskRun.getTaskId()
|
||||
);
|
||||
}
|
||||
|
||||
private Logger logger(TriggerContext triggerContext) {
|
||||
private static Logger logger(TriggerContext triggerContext) {
|
||||
return LoggerFactory.getLogger(
|
||||
"trigger." + triggerContext.getFlowId() + "." + triggerContext.getTriggerId()
|
||||
);
|
||||
}
|
||||
|
||||
private Logger logger(Execution execution) {
|
||||
private static Logger logger(Execution execution) {
|
||||
return LoggerFactory.getLogger(
|
||||
"execution." + execution.getFlowId()
|
||||
);
|
||||
@@ -6,6 +6,7 @@ import io.kestra.core.models.flows.Input;
|
||||
import io.kestra.core.models.tasks.ExecutableTask;
|
||||
import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.services.NamespaceService;
|
||||
import io.kestra.core.utils.ListUtils;
|
||||
import io.kestra.core.validations.FlowValidation;
|
||||
import io.micronaut.core.annotation.AnnotationValue;
|
||||
@@ -52,6 +53,9 @@ public class FlowValidator implements ConstraintValidator<FlowValidation, Flow>
|
||||
@Inject
|
||||
private FlowService flowService;
|
||||
|
||||
@Inject
|
||||
private NamespaceService namespaceService;
|
||||
|
||||
@Override
|
||||
public boolean isValid(
|
||||
@Nullable Flow value,
|
||||
@@ -67,7 +71,7 @@ public class FlowValidator implements ConstraintValidator<FlowValidation, Flow>
|
||||
violations.add("Flow id is a reserved keyword: " + value.getId() + ". List of reserved keywords: " + String.join(", ", RESERVED_FLOW_IDS));
|
||||
}
|
||||
|
||||
if (flowService.requireExistingNamespace(value.getTenantId(), value.getNamespace())) {
|
||||
if (namespaceService.requireExistingNamespace(value.getTenantId(), value.getNamespace())) {
|
||||
violations.add("Namespace '" + value.getNamespace() + "' does not exist but is required to exist before a flow can be created in it.");
|
||||
}
|
||||
|
||||
|
||||
@@ -79,20 +79,30 @@ public class TimeBetween extends Condition implements ScheduleCondition {
|
||||
RunContext runContext = conditionContext.getRunContext();
|
||||
Map<String, Object> variables = conditionContext.getVariables();
|
||||
|
||||
String dateRendered = runContext.render(date).as(String.class, variables).orElseThrow();
|
||||
// cache must be skipped for date rendering as the value can change for each test
|
||||
String dateRendered = runContext.render(date).skipCache().as(String.class, variables).orElseThrow();
|
||||
OffsetTime currentDate = DateUtils.parseZonedDateTime(dateRendered).toOffsetDateTime().toOffsetTime();
|
||||
|
||||
OffsetTime beforeRendered = runContext.render(before).as(OffsetTime.class, variables).orElse(null);
|
||||
OffsetTime afterRendered = runContext.render(after).as(OffsetTime.class, variables).orElse(null);
|
||||
|
||||
|
||||
if (beforeRendered != null && afterRendered != null) {
|
||||
return currentDate.isAfter(afterRendered) && currentDate.isBefore(beforeRendered);
|
||||
// Case 1: Normal range (e.g., 16:00 -> 20:00)
|
||||
if (afterRendered.isBefore(beforeRendered)) {
|
||||
return currentDate.isAfter(afterRendered) && currentDate.isBefore(beforeRendered);
|
||||
// Case 2: Cross-midnight range (e.g., 22:00 -> 02:00)
|
||||
} else {
|
||||
return currentDate.isAfter(afterRendered) || currentDate.isBefore(beforeRendered);
|
||||
}
|
||||
|
||||
} else if (beforeRendered != null) {
|
||||
return currentDate.isBefore(beforeRendered);
|
||||
|
||||
} else if (afterRendered != null) {
|
||||
return currentDate.isAfter(afterRendered);
|
||||
|
||||
} else {
|
||||
throw new IllegalConditionEvaluation("Invalid condition with no before nor after");
|
||||
throw new IllegalConditionEvaluation("Invalid condition: no 'before' or 'after' value defined");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package io.kestra.plugin.core.dashboard.chart;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
|
||||
import io.kestra.core.models.annotations.Example;
|
||||
import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.dashboards.ColumnDescriptor;
|
||||
@@ -21,34 +20,33 @@ import lombok.experimental.SuperBuilder;
|
||||
@EqualsAndHashCode
|
||||
@Schema(
|
||||
title = "Show proportions and distributions using pie charts."
|
||||
)
|
||||
)
|
||||
@Plugin(
|
||||
examples = {
|
||||
@Example(
|
||||
title = "Display a pie chart with Executions per State.",
|
||||
full = true,
|
||||
code = { """
|
||||
code = """
|
||||
charts:
|
||||
- id: executions_pie
|
||||
type: io.kestra.plugin.core.dashboard.chart.Pie
|
||||
chartOptions:
|
||||
displayName: Total Executions
|
||||
description: Total executions per state
|
||||
legend:
|
||||
enabled: true
|
||||
colorByColumn: state
|
||||
data:
|
||||
type: io.kestra.plugin.core.dashboard.data.Executions
|
||||
columns:
|
||||
state:
|
||||
field: STATE
|
||||
total:
|
||||
agg: COUNT
|
||||
- id: executions_pie
|
||||
type: io.kestra.plugin.core.dashboard.chart.Pie
|
||||
chartOptions:
|
||||
displayName: Total Executions
|
||||
description: Total executions per state
|
||||
legend:
|
||||
enabled: true
|
||||
colorByColumn: state
|
||||
data:
|
||||
type: io.kestra.plugin.core.dashboard.data.Executions
|
||||
columns:
|
||||
state:
|
||||
field: STATE
|
||||
total:
|
||||
agg: COUNT
|
||||
"""
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
public class Pie<F extends Enum<F>, D extends DataFilter<F, ? extends ColumnDescriptor<F>>> extends DataChart<PieOption, D> {
|
||||
@Override
|
||||
public Integer minNumberOfAggregations() {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package io.kestra.plugin.core.dashboard.chart;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
|
||||
import io.kestra.core.models.annotations.Example;
|
||||
import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.dashboards.DataFilter;
|
||||
@@ -21,33 +20,32 @@ import lombok.experimental.SuperBuilder;
|
||||
@EqualsAndHashCode
|
||||
@Schema(
|
||||
title = "Display structured data in a clear, sortable table."
|
||||
)
|
||||
)
|
||||
@Plugin(
|
||||
examples = {
|
||||
@Example(
|
||||
title = "Display a table with Log counts for each level by Namespace.",
|
||||
full = true,
|
||||
code = { """
|
||||
code = """
|
||||
charts:
|
||||
- id: table_logs
|
||||
- id: table_logs
|
||||
type: io.kestra.plugin.core.dashboard.chart.Table
|
||||
chartOptions:
|
||||
displayName: Log count by level for filtered namespace
|
||||
displayName: Log count by level for filtered namespace
|
||||
data:
|
||||
type: io.kestra.plugin.core.dashboard.data.Logs
|
||||
columns:
|
||||
level:
|
||||
field: LEVEL
|
||||
count:
|
||||
agg: COUNT
|
||||
where:
|
||||
- field: NAMESPACE
|
||||
type: IN
|
||||
values:
|
||||
- dev_graph
|
||||
- prod_graph
|
||||
type: io.kestra.plugin.core.dashboard.data.Logs
|
||||
columns:
|
||||
level:
|
||||
field: LEVEL
|
||||
count:
|
||||
agg: COUNT
|
||||
where:
|
||||
- field: NAMESPACE
|
||||
type: IN
|
||||
values:
|
||||
- dev_graph
|
||||
- prod_graph
|
||||
"""
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package io.kestra.plugin.core.dashboard.chart;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
|
||||
import io.kestra.core.models.annotations.Example;
|
||||
import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.dashboards.DataFilter;
|
||||
@@ -23,42 +22,41 @@ import lombok.experimental.SuperBuilder;
|
||||
@TimeSeriesChartValidation
|
||||
@Schema(
|
||||
title = "Track trends over time with dynamic time series charts."
|
||||
)
|
||||
)
|
||||
@Plugin(
|
||||
examples = {
|
||||
@Example(
|
||||
title = "Display a chart with Executions over the last week.",
|
||||
full = true,
|
||||
code = { """
|
||||
code = """
|
||||
charts:
|
||||
- id: executions_timeseries
|
||||
type: io.kestra.plugin.core.dashboard.chart.TimeSeries
|
||||
chartOptions:
|
||||
displayName: Total Executions
|
||||
description: Executions last week
|
||||
legend:
|
||||
enabled: true
|
||||
column: date
|
||||
colorByColumn: state
|
||||
displayName: Total Executions
|
||||
description: Executions last week
|
||||
legend:
|
||||
enabled: true
|
||||
column: date
|
||||
colorByColumn: state
|
||||
data:
|
||||
type: io.kestra.plugin.core.dashboard.data.Executions
|
||||
columns:
|
||||
date:
|
||||
field: START_DATE
|
||||
displayName: Date
|
||||
state:
|
||||
field: STATE
|
||||
total:
|
||||
displayName: Executions
|
||||
agg: COUNT
|
||||
graphStyle: BARS
|
||||
duration:
|
||||
displayName: Duration
|
||||
field: DURATION
|
||||
agg: SUM
|
||||
graphStyle: LINES
|
||||
type: io.kestra.plugin.core.dashboard.data.Executions
|
||||
columns:
|
||||
date:
|
||||
field: START_DATE
|
||||
displayName: Date
|
||||
state:
|
||||
field: STATE
|
||||
total:
|
||||
displayName: Executions
|
||||
agg: COUNT
|
||||
graphStyle: BARS
|
||||
duration:
|
||||
displayName: Duration
|
||||
field: DURATION
|
||||
agg: SUM
|
||||
graphStyle: LINES
|
||||
"""
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -30,28 +30,27 @@ import lombok.experimental.SuperBuilder;
|
||||
@Example(
|
||||
title = "Display a chart with a Executions per Namespace broken out by State.",
|
||||
full = true,
|
||||
code = { """
|
||||
charts:
|
||||
- id: executions_per_namespace_bars
|
||||
type: io.kestra.plugin.core.dashboard.chart.Bar
|
||||
chartOptions:
|
||||
displayName: Executions (per namespace)
|
||||
description: Executions count per namespace
|
||||
legend:
|
||||
enabled: true
|
||||
column: namespace
|
||||
data
|
||||
type: io.kestra.plugin.core.dashboard.data.Executions
|
||||
columns:
|
||||
namespace:
|
||||
field: NAMESPACE
|
||||
state:
|
||||
field: STATE
|
||||
total:
|
||||
displayName: Executions
|
||||
agg: COUNT
|
||||
"""
|
||||
}
|
||||
code = """
|
||||
charts:
|
||||
- id: executions_per_namespace_bars
|
||||
type: io.kestra.plugin.core.dashboard.chart.Bar
|
||||
chartOptions:
|
||||
displayName: Executions (per namespace)
|
||||
description: Executions count per namespace
|
||||
legend:
|
||||
enabled: true
|
||||
column: namespace
|
||||
data
|
||||
type: io.kestra.plugin.core.dashboard.data.Executions
|
||||
columns:
|
||||
namespace:
|
||||
field: NAMESPACE
|
||||
state:
|
||||
field: STATE
|
||||
total:
|
||||
displayName: Executions
|
||||
agg: COUNT
|
||||
"""
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -30,26 +30,25 @@ import lombok.experimental.SuperBuilder;
|
||||
@Example(
|
||||
title = "Display a chart with executions in success in a given namespace.",
|
||||
full = true,
|
||||
code = { """
|
||||
charts:
|
||||
- id: kpi_success_ratio
|
||||
type: io.kestra.plugin.core.dashboard.chart.KPI
|
||||
chartOptions:
|
||||
displayName: Success Ratio
|
||||
numberType: PERCENTAGE
|
||||
width: 3
|
||||
data:
|
||||
type: io.kestra.plugin.core.dashboard.data.ExecutionsKPI
|
||||
columns:
|
||||
field: ID
|
||||
agg: COUNT
|
||||
numerator:
|
||||
- type: IN
|
||||
field: STATE
|
||||
values:
|
||||
- SUCCESS
|
||||
"""
|
||||
}
|
||||
code = """
|
||||
charts:
|
||||
- id: kpi_success_ratio
|
||||
type: io.kestra.plugin.core.dashboard.chart.KPI
|
||||
chartOptions:
|
||||
displayName: Success Ratio
|
||||
numberType: PERCENTAGE
|
||||
width: 3
|
||||
data:
|
||||
type: io.kestra.plugin.core.dashboard.data.ExecutionsKPI
|
||||
columns:
|
||||
field: ID
|
||||
agg: COUNT
|
||||
numerator:
|
||||
- type: IN
|
||||
field: STATE
|
||||
values:
|
||||
- SUCCESS
|
||||
"""
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -27,19 +27,18 @@ import lombok.experimental.SuperBuilder;
|
||||
@Example(
|
||||
title = "Display a chart with a list of Flows.",
|
||||
full = true,
|
||||
code = { """
|
||||
charts:
|
||||
- id: list_flows
|
||||
type: io.kestra.plugin.core.dashboard.chart.Table
|
||||
data:
|
||||
type: io.kestra.plugin.core.dashboard.data.Flows
|
||||
columns:
|
||||
namespace:
|
||||
field: NAMESPACE
|
||||
id:
|
||||
field: ID
|
||||
"""
|
||||
}
|
||||
code = """
|
||||
charts:
|
||||
- id: list_flows
|
||||
type: io.kestra.plugin.core.dashboard.chart.Table
|
||||
data:
|
||||
type: io.kestra.plugin.core.dashboard.data.Flows
|
||||
columns:
|
||||
namespace:
|
||||
field: NAMESPACE
|
||||
id:
|
||||
field: ID
|
||||
"""
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -28,17 +28,16 @@ import lombok.experimental.SuperBuilder;
|
||||
@Example(
|
||||
title = "Display count of Flows.",
|
||||
full = true,
|
||||
code = { """
|
||||
charts:
|
||||
- id: kpi
|
||||
code = """
|
||||
charts:
|
||||
- id: kpi
|
||||
type: io.kestra.plugin.core.dashboard.chart.KPI
|
||||
data:
|
||||
type: io.kestra.plugin.core.dashboard.data.FlowsKPI
|
||||
columns:
|
||||
field: ID
|
||||
agg: COUNT
|
||||
"""
|
||||
}
|
||||
"""
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -48,11 +48,11 @@ import java.util.Optional;
|
||||
id: compute_header
|
||||
type: io.kestra.plugin.core.debug.Return
|
||||
format: >-
|
||||
{%- if inputs.token is not empty -%}
|
||||
Bearer {{ inputs.token }}
|
||||
{%- elseif inputs.username is not empty and inputs.password is not empty -%}
|
||||
Basic {{ (inputs.username + ':' + inputs.password) | base64encode }}
|
||||
{%- endif -%}
|
||||
{%- if inputs.token is not empty -%}
|
||||
Bearer {{ inputs.token }}
|
||||
{%- elseif inputs.username is not empty and inputs.password is not empty -%}
|
||||
Basic {{ (inputs.username + ':' + inputs.password) | base64encode }}
|
||||
{%- endif -%}
|
||||
"""
|
||||
)
|
||||
},
|
||||
|
||||
@@ -54,8 +54,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
" - id: fail\n" +
|
||||
" type: io.kestra.plugin.core.execution.Assert\n" +
|
||||
" conditions:\n" +
|
||||
" - \"{{ inputs.param == 'ok' }}\"\n" +
|
||||
" - \"{{ 1 + 1 == 3 }}\"\n"
|
||||
" - \"{{ inputs.param == 'ok' }}\"\n" +
|
||||
" - \"{{ 1 + 1 == 3 }}\"\n"
|
||||
}
|
||||
)
|
||||
},
|
||||
|
||||
@@ -13,7 +13,6 @@ import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.repositories.ExecutionRepositoryInterface;
|
||||
import io.kestra.core.runners.DefaultRunContext;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.*;
|
||||
@@ -127,14 +126,13 @@ public class Count extends Task implements RunnableTask<Count.Output> {
|
||||
var flowInfo = runContext.flowInfo();
|
||||
|
||||
// check that all flows are allowed
|
||||
FlowService flowService = ((DefaultRunContext)runContext).getApplicationContext().getBean(FlowService.class);
|
||||
if (flows != null) {
|
||||
flows.forEach(flow -> flowService.checkAllowedNamespace(flowInfo.tenantId(), flow.getNamespace(), flowInfo.tenantId(), flowInfo.namespace()));
|
||||
flows.forEach(flow -> runContext.acl().allowNamespace(flow.getNamespace()).check());
|
||||
}
|
||||
|
||||
if (namespaces != null) {
|
||||
var renderedNamespaces = runContext.render(this.namespaces).asList(String.class);
|
||||
renderedNamespaces.forEach(namespace -> flowService.checkAllowedNamespace(flowInfo.tenantId(), namespace, flowInfo.tenantId(), flowInfo.namespace()));
|
||||
renderedNamespaces.forEach(namespace -> runContext.acl().allowNamespace(namespace).check());
|
||||
}
|
||||
|
||||
List<ExecutionCount> executionCounts = executionRepository.executionCounts(
|
||||
|
||||
@@ -105,7 +105,7 @@ import lombok.experimental.SuperBuilder;
|
||||
url: "{{ secret('SLACK_WEBHOOK') }}"
|
||||
payload: |
|
||||
{
|
||||
"text": "Failure alert for flow `{{ flow.namespace }}.{{ flow.id }}` with ID `{{ execution.id }}`. Here is a bit more context about why the execution failed: `{{ errorLogs()[0]['message'] }}`"
|
||||
"text": "Failure alert for flow `{{ flow.namespace }}.{{ flow.id }}` with ID `{{ execution.id }}`. Here is a bit more context about why the execution failed: `{{ errorLogs()[0]['message'] }}`"
|
||||
}
|
||||
"""
|
||||
)
|
||||
|
||||
@@ -9,7 +9,6 @@ import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.runners.DefaultRunContext;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.services.ExecutionService;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.*;
|
||||
@@ -34,10 +33,10 @@ import java.util.List;
|
||||
code = {
|
||||
"endDate: \"{{ now() | dateAdd(-1, 'MONTHS') }}\"",
|
||||
"states: ",
|
||||
" - KILLED",
|
||||
" - FAILED",
|
||||
" - WARNING",
|
||||
" - SUCCESS"
|
||||
" - KILLED",
|
||||
" - FAILED",
|
||||
" - WARNING",
|
||||
" - SUCCESS"
|
||||
}
|
||||
)
|
||||
},
|
||||
@@ -113,15 +112,14 @@ public class PurgeExecutions extends Task implements RunnableTask<PurgeExecution
|
||||
@Override
|
||||
public PurgeExecutions.Output run(RunContext runContext) throws Exception {
|
||||
ExecutionService executionService = ((DefaultRunContext)runContext).getApplicationContext().getBean(ExecutionService.class);
|
||||
FlowService flowService = ((DefaultRunContext)runContext).getApplicationContext().getBean(FlowService.class);
|
||||
|
||||
// validate that this namespace is authorized on the target namespace / all namespaces
|
||||
var flowInfo = runContext.flowInfo();
|
||||
String renderedNamespace = runContext.render(this.namespace).as(String.class).orElse(null);
|
||||
if (renderedNamespace == null){
|
||||
flowService.checkAllowedAllNamespaces(flowInfo.tenantId(), flowInfo.tenantId(), flowInfo.namespace());
|
||||
runContext.acl().allowAllNamespaces().check();
|
||||
} else if (!renderedNamespace.equals(flowInfo.namespace())) {
|
||||
flowService.checkAllowedNamespace(flowInfo.tenantId(), renderedNamespace, flowInfo.tenantId(), flowInfo.namespace());
|
||||
runContext.acl().allowNamespace(renderedNamespace).check();
|
||||
}
|
||||
|
||||
ExecutionService.PurgeResult purgeResult = executionService.purge(
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
package io.kestra.plugin.core.flow;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import io.kestra.core.exceptions.IllegalVariableEvaluationException;
|
||||
import io.kestra.core.models.annotations.Example;
|
||||
import io.kestra.core.models.annotations.Plugin;
|
||||
@@ -17,6 +11,12 @@ import io.kestra.core.models.tasks.ResolvedTask;
|
||||
import io.kestra.core.models.tasks.VoidOutput;
|
||||
import io.kestra.core.runners.FlowableUtils;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@@ -60,24 +60,23 @@ import java.util.Optional;
|
||||
namespace: company.team
|
||||
|
||||
tasks:
|
||||
- id: allow_failure
|
||||
- id: allow_failure
|
||||
type: io.kestra.plugin.core.flow.AllowFailure
|
||||
tasks:
|
||||
- id: fail_silently
|
||||
- id: fail_silently
|
||||
type: io.kestra.plugin.scripts.shell.Commands
|
||||
taskRunner:
|
||||
type: io.kestra.plugin.core.runner.Process
|
||||
commands:
|
||||
- exit 1
|
||||
- exit 1
|
||||
|
||||
- id: print_to_console
|
||||
- id: print_to_console
|
||||
type: io.kestra.plugin.scripts.shell.Commands
|
||||
taskRunner:
|
||||
type: io.kestra.plugin.core.runner.Process
|
||||
commands:
|
||||
- echo "this will run since previous failure was allowed ✅"
|
||||
|
||||
"""
|
||||
- echo "this will run since previous failure was allowed ✅"
|
||||
"""
|
||||
)
|
||||
},
|
||||
aliases = "io.kestra.core.tasks.flows.AllowFailure"
|
||||
|
||||
@@ -8,6 +8,7 @@ import io.kestra.core.models.annotations.PluginProperty;
|
||||
import io.kestra.core.models.executions.Execution;
|
||||
import io.kestra.core.models.executions.NextTaskRun;
|
||||
import io.kestra.core.models.executions.TaskRun;
|
||||
import io.kestra.core.models.flows.State;
|
||||
import io.kestra.core.models.hierarchies.GraphCluster;
|
||||
import io.kestra.core.models.hierarchies.RelationType;
|
||||
import io.kestra.core.models.property.Property;
|
||||
@@ -15,6 +16,7 @@ import io.kestra.core.models.tasks.*;
|
||||
import io.kestra.core.runners.FlowableUtils;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.utils.GraphUtils;
|
||||
import io.kestra.core.utils.ListUtils;
|
||||
import io.kestra.core.validations.DagTaskValidation;
|
||||
import io.micronaut.core.annotation.Introspected;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -176,6 +178,22 @@ public class Dag extends Task implements FlowableTask<VoidOutput> {
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<State.Type> resolveState(RunContext runContext, Execution execution, TaskRun parentTaskRun) throws IllegalVariableEvaluationException {
|
||||
List<ResolvedTask> childTasks = this.childTasks(runContext, parentTaskRun);
|
||||
|
||||
return FlowableUtils.resolveSequentialState(
|
||||
execution,
|
||||
childTasks,
|
||||
FlowableUtils.resolveTasks(this.getErrors(), parentTaskRun),
|
||||
FlowableUtils.resolveTasks(this.getFinally(), parentTaskRun),
|
||||
parentTaskRun,
|
||||
runContext,
|
||||
this.isAllowFailure(),
|
||||
this.isAllowWarning()
|
||||
);
|
||||
}
|
||||
|
||||
public List<String> dagCheckNotExistTask(List<DagTask> taskDepends) {
|
||||
List<String> dependenciesIds = taskDepends
|
||||
.stream()
|
||||
|
||||
@@ -163,15 +163,9 @@ public class EachParallel extends Parallel implements FlowableTask<VoidOutput> {
|
||||
|
||||
@Override
|
||||
public Optional<State.Type> resolveState(RunContext runContext, Execution execution, TaskRun parentTaskRun) throws IllegalVariableEvaluationException {
|
||||
List<ResolvedTask> childTasks = ListUtils.emptyOnNull(this.childTasks(runContext, parentTaskRun)).stream()
|
||||
.filter(resolvedTask -> !resolvedTask.getTask().getDisabled())
|
||||
.toList();
|
||||
List<ResolvedTask> childTasks = this.childTasks(runContext, parentTaskRun);
|
||||
|
||||
if (childTasks.isEmpty()) {
|
||||
return Optional.of(State.Type.SUCCESS);
|
||||
}
|
||||
|
||||
return FlowableUtils.resolveState(
|
||||
return FlowableUtils.resolveSequentialState(
|
||||
execution,
|
||||
childTasks,
|
||||
FlowableUtils.resolveTasks(this.getErrors(), parentTaskRun),
|
||||
|
||||
@@ -127,14 +127,9 @@ public class EachSequential extends Sequential implements FlowableTask<VoidOutpu
|
||||
|
||||
@Override
|
||||
public Optional<State.Type> resolveState(RunContext runContext, Execution execution, TaskRun parentTaskRun) throws IllegalVariableEvaluationException {
|
||||
List<ResolvedTask> childTasks = ListUtils.emptyOnNull(this.childTasks(runContext, parentTaskRun)).stream()
|
||||
.filter(resolvedTask -> !resolvedTask.getTask().getDisabled())
|
||||
.toList();
|
||||
if (childTasks.isEmpty()) {
|
||||
return Optional.of(State.Type.SUCCESS);
|
||||
}
|
||||
List<ResolvedTask> childTasks = this.childTasks(runContext, parentTaskRun);
|
||||
|
||||
return FlowableUtils.resolveState(
|
||||
return FlowableUtils.resolveSequentialState(
|
||||
execution,
|
||||
childTasks,
|
||||
FlowableUtils.resolveTasks(this.getErrors(), parentTaskRun),
|
||||
|
||||
@@ -36,23 +36,26 @@ import java.util.Optional;
|
||||
description = """
|
||||
You can control how many task groups are executed concurrently by setting the `concurrencyLimit` property. \
|
||||
|
||||
- If you set the `concurrencyLimit` property to `0`, Kestra will execute all task groups concurrently for all values. \
|
||||
- A `concurrencyLimit` of `0` means no limit — all task groups run in parallel. \
|
||||
|
||||
- If you set the `concurrencyLimit` property to `1`, Kestra will execute each task group one after the other starting with the task group for the first value in the list. \
|
||||
- A `concurrencyLimit` of `1` means full serialization — only one task group runs at a time, in order. \
|
||||
|
||||
- A `concurrencyLimit` greater than `1` allows up to that number of task groups to run in parallel. \
|
||||
|
||||
|
||||
Regardless of the `concurrencyLimit` property, the `tasks` will run one after the other — to run those in parallel, wrap them in a [Parallel](https://kestra.io/plugins/core/tasks/flow/io.kestra.plugin.core.flow.parallel) task as shown in the last example below (_see the flow `parallel_tasks_example`_). \
|
||||
|
||||
|
||||
The `values` should be defined as a JSON string or an array, e.g. a list of string values `["value1", "value2"]` or a list of key-value pairs `[{"key": "value1"}, {"key": "value2"}]`.\s
|
||||
The `values` can be defined as a JSON string or an array, e.g. a list of string values `["value1", "value2"]` or a list of key-value pairs `[{"key": "value1"}, {"key": "value2"}]`.\s
|
||||
|
||||
|
||||
You can access the current iteration value using the variable `{{ taskrun.value }}` \
|
||||
or `{{ parent.taskrun.value }}` if you are in a nested child task. You can access the batch or iteration number with `{{ taskrun.iteration }}`. \
|
||||
Access the current iteration value using `{{ taskrun.value }}` \
|
||||
or `{{ parent.taskrun.value }}` when inside a nested child task. \
|
||||
The iteration number is available via `{{ taskrun.iteration }}`. \
|
||||
|
||||
|
||||
If you need to execute more than 2-5 tasks for each value, we recommend triggering a subflow for each value for better performance and modularity. \
|
||||
Check the [flow best practices documentation](https://kestra.io/docs/best-practices/flows) for more details."""
|
||||
See the [flow best practices documentation](https://kestra.io/docs/best-practices/flows) for more details."""
|
||||
)
|
||||
@Plugin(
|
||||
examples = {
|
||||
@@ -210,12 +213,14 @@ public class ForEach extends Sequential implements FlowableTask<VoidOutput> {
|
||||
@NotNull
|
||||
@Builder.Default
|
||||
@Schema(
|
||||
title = "The number of concurrent task groups for each value in the `values` array",
|
||||
description = """
|
||||
If you set the `concurrencyLimit` property to 0, Kestra will execute all task groups concurrently for all values (zero limits!). \
|
||||
title = "The number of concurrent task groups for each value in the `values` array",
|
||||
description = """
|
||||
A `concurrencyLimit` of 0 means no limit — all task groups run in parallel.
|
||||
|
||||
A `concurrencyLimit` of 1 means full serialization — only one task group runs at a time, in order.
|
||||
|
||||
If you set the `concurrencyLimit` property to 1, Kestra will execute each task group one after the other starting with the first value in the list (limit concurrency to one task group that can be actively running at any time)."""
|
||||
A `concurrencyLimit` greater than 1 allows up to the specified number of task groups to run in parallel.
|
||||
"""
|
||||
)
|
||||
@PluginProperty
|
||||
private final Integer concurrencyLimit = 1;
|
||||
@@ -245,15 +250,9 @@ public class ForEach extends Sequential implements FlowableTask<VoidOutput> {
|
||||
|
||||
@Override
|
||||
public Optional<State.Type> resolveState(RunContext runContext, Execution execution, TaskRun parentTaskRun) throws IllegalVariableEvaluationException {
|
||||
List<ResolvedTask> childTasks = ListUtils.emptyOnNull(this.childTasks(runContext, parentTaskRun)).stream()
|
||||
.filter(resolvedTask -> !resolvedTask.getTask().getDisabled())
|
||||
.toList();
|
||||
List<ResolvedTask> childTasks = this.childTasks(runContext, parentTaskRun);
|
||||
|
||||
if (childTasks.isEmpty()) {
|
||||
return Optional.of(State.Type.SUCCESS);
|
||||
}
|
||||
|
||||
return FlowableUtils.resolveState(
|
||||
return FlowableUtils.resolveSequentialState(
|
||||
execution,
|
||||
childTasks,
|
||||
FlowableUtils.resolveTasks(this.getErrors(), parentTaskRun),
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
package io.kestra.plugin.core.flow;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.kestra.core.models.annotations.PluginProperty;
|
||||
import io.kestra.core.models.property.Property;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import io.kestra.core.exceptions.IllegalVariableEvaluationException;
|
||||
import io.kestra.core.models.annotations.Example;
|
||||
import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.annotations.PluginProperty;
|
||||
import io.kestra.core.models.executions.Execution;
|
||||
import io.kestra.core.models.executions.NextTaskRun;
|
||||
import io.kestra.core.models.executions.TaskRun;
|
||||
import io.kestra.core.models.flows.State;
|
||||
import io.kestra.core.models.hierarchies.GraphCluster;
|
||||
import io.kestra.core.models.hierarchies.RelationType;
|
||||
import io.kestra.core.models.property.Property;
|
||||
import io.kestra.core.models.tasks.FlowableTask;
|
||||
import io.kestra.core.models.tasks.ResolvedTask;
|
||||
import io.kestra.core.models.tasks.Task;
|
||||
@@ -21,12 +19,16 @@ import io.kestra.core.models.tasks.VoidOutput;
|
||||
import io.kestra.core.runners.FlowableUtils;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.utils.GraphUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.*;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@SuperBuilder
|
||||
@ToString
|
||||
@@ -42,8 +44,8 @@ import jakarta.validation.constraints.NotNull;
|
||||
@Example(
|
||||
full = true,
|
||||
title = """
|
||||
Run tasks in parallel
|
||||
""",
|
||||
Run tasks in parallel
|
||||
""",
|
||||
code = """
|
||||
id: parallel
|
||||
namespace: company.team
|
||||
@@ -68,38 +70,38 @@ import jakarta.validation.constraints.NotNull;
|
||||
@Example(
|
||||
full = true,
|
||||
title = """
|
||||
Run two sequences in parallel
|
||||
""",
|
||||
Run two sequences in parallel
|
||||
""",
|
||||
code = """
|
||||
id: parallel_sequences
|
||||
namespace: company.team
|
||||
|
||||
tasks:
|
||||
- id: parallel
|
||||
- id: parallel
|
||||
type: io.kestra.plugin.core.flow.Parallel
|
||||
tasks:
|
||||
- id: sequence1
|
||||
- id: sequence1
|
||||
type: io.kestra.plugin.core.flow.Sequential
|
||||
tasks:
|
||||
- id: task1
|
||||
- id: task1
|
||||
type: io.kestra.plugin.core.debug.Return
|
||||
format: "{{ task.id }}"
|
||||
|
||||
- id: task2
|
||||
- id: task2
|
||||
type: io.kestra.plugin.core.debug.Return
|
||||
format: "{{ task.id }}"
|
||||
|
||||
- id: sequence2
|
||||
- id: sequence2
|
||||
type: io.kestra.plugin.core.flow.Sequential
|
||||
tasks:
|
||||
- id: task3
|
||||
- id: task3
|
||||
type: io.kestra.plugin.core.debug.Return
|
||||
format: "{{ task.id }}"
|
||||
|
||||
- id: task4
|
||||
- id: task4
|
||||
type: io.kestra.plugin.core.debug.Return
|
||||
format: "{{ task.id }}"
|
||||
"""
|
||||
"""
|
||||
)
|
||||
},
|
||||
aliases = "io.kestra.core.tasks.flows.Parallel"
|
||||
@@ -176,4 +178,20 @@ public class Parallel extends Task implements FlowableTask<VoidOutput> {
|
||||
runContext.render(this.concurrent).as(Integer.class).orElseThrow()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<State.Type> resolveState(RunContext runContext, Execution execution, TaskRun parentTaskRun) throws IllegalVariableEvaluationException {
|
||||
List<ResolvedTask> childTasks = this.childTasks(runContext, parentTaskRun);
|
||||
|
||||
return FlowableUtils.resolveSequentialState(
|
||||
execution,
|
||||
childTasks,
|
||||
FlowableUtils.resolveTasks(this.getErrors(), parentTaskRun),
|
||||
FlowableUtils.resolveTasks(this.getFinally(), parentTaskRun),
|
||||
parentTaskRun,
|
||||
runContext,
|
||||
this.isAllowFailure(),
|
||||
this.isAllowWarning()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ import java.util.*;
|
||||
@Schema(
|
||||
title = "Pause the current execution and wait for approval (either by humans or other automated processes).",
|
||||
description = "All tasks downstream from the Pause task will be put on hold until the execution is manually resumed from the UI.\n\n" +
|
||||
"The Execution will be in a Paused state, and you can either manually resume it by clicking on the \"Resume\" button in the UI or by calling the POST API endpoint `/api/v1/executions/{executionId}/resume`. The execution can also be resumed automatically after the `pauseDuration`."
|
||||
"The Execution will be in a Paused state, and you can either manually resume it by clicking on the \"Resume\" button in the UI or by calling the POST API endpoint `/api/v1/executions/{executionId}/resume`. The execution can also be resumed automatically after the `pauseDuration`."
|
||||
)
|
||||
@Plugin(
|
||||
examples = {
|
||||
@@ -185,7 +185,7 @@ public class Pause extends Task implements FlowableTask<Pause.Output> {
|
||||
)
|
||||
@NotNull
|
||||
@Builder.Default
|
||||
private Property<Behavior> behavior = Property.ofValue(Behavior.RESUME);
|
||||
protected Property<Behavior> behavior = Property.ofValue(Behavior.RESUME);
|
||||
|
||||
@Valid
|
||||
@Schema(
|
||||
|
||||
@@ -8,6 +8,7 @@ import io.kestra.core.models.annotations.PluginProperty;
|
||||
import io.kestra.core.models.executions.Execution;
|
||||
import io.kestra.core.models.executions.NextTaskRun;
|
||||
import io.kestra.core.models.executions.TaskRun;
|
||||
import io.kestra.core.models.flows.State;
|
||||
import io.kestra.core.models.hierarchies.AbstractGraph;
|
||||
import io.kestra.core.models.hierarchies.GraphCluster;
|
||||
import io.kestra.core.models.hierarchies.RelationType;
|
||||
@@ -23,6 +24,7 @@ import lombok.experimental.SuperBuilder;
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@SuperBuilder
|
||||
@@ -113,6 +115,22 @@ public class Sequential extends Task implements FlowableTask<VoidOutput> {
|
||||
return FlowableUtils.resolveTasks(this.getTasks(), parentTaskRun);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<State.Type> resolveState(RunContext runContext, Execution execution, TaskRun parentTaskRun) throws IllegalVariableEvaluationException {
|
||||
List<ResolvedTask> childTasks = this.childTasks(runContext, parentTaskRun);
|
||||
|
||||
return FlowableUtils.resolveSequentialState(
|
||||
execution,
|
||||
childTasks,
|
||||
FlowableUtils.resolveTasks(this.getErrors(), parentTaskRun),
|
||||
FlowableUtils.resolveTasks(this.getFinally(), parentTaskRun),
|
||||
parentTaskRun,
|
||||
runContext,
|
||||
this.isAllowFailure(),
|
||||
this.isAllowWarning()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NextTaskRun> resolveNexts(RunContext runContext, Execution execution, TaskRun parentTaskRun) throws IllegalVariableEvaluationException {
|
||||
return FlowableUtils.resolveSequentialNexts(
|
||||
|
||||
@@ -141,12 +141,12 @@ import jakarta.validation.constraints.NotNull;
|
||||
- id: first
|
||||
type: io.kestra.plugin.scripts.shell.Commands
|
||||
commands:
|
||||
- 'echo "{{ taskrun.id }}" > {{ workingDir }}/stay.txt'
|
||||
- 'echo "{{ taskrun.id }}" > {{ workingDir }}/stay.txt'
|
||||
- id: second
|
||||
type: io.kestra.plugin.scripts.shell.Commands
|
||||
commands:
|
||||
- |
|
||||
echo '::{"outputs": {"stay":"'$(cat {{ workingDir }}/stay.txt)'"}}::''
|
||||
- |
|
||||
echo '::{"outputs": {"stay":"'$(cat {{ workingDir }}/stay.txt)'"}}::''
|
||||
"""
|
||||
),
|
||||
@Example(
|
||||
|
||||
@@ -34,10 +34,11 @@ import java.util.OptionalInt;
|
||||
@Schema(
|
||||
title = "Make an HTTP API request to a specified URL and store the response as an output.",
|
||||
description = """
|
||||
This task makes an API call to a specified URL of an HTTP server and stores the response as an output.
|
||||
Kestra offers hundreds of plugins. Before using the generic HTTP task, check if a dedicated plugin fits your use case — it's recommended to use plugins first and only fall back to HTTP when needed.
|
||||
By default, the maximum length of the response is limited to 10MB, but it can be increased to at most 2GB by using the `options.maxContentLength` property.
|
||||
Note that the response is added as an output of the task. If you need to process large API payloads, we recommend using the `Download` task instead."""
|
||||
This task makes an API call to a specified URL of an HTTP server and stores the response as an output.
|
||||
Kestra offers hundreds of plugins. Before using the generic HTTP task, check if a dedicated plugin fits your use case — it's recommended to use plugins first and only fall back to HTTP when needed.
|
||||
By default, the maximum length of the response is limited to 10MB, but it can be increased to at most 2GB by using the `options.maxContentLength` property.
|
||||
Note that the response is added as an output of the task. If you need to process large API payloads, we recommend using the `Download` task instead.
|
||||
"""
|
||||
)
|
||||
@Plugin(
|
||||
examples = {
|
||||
@@ -277,42 +278,45 @@ import java.util.OptionalInt;
|
||||
"""
|
||||
),
|
||||
@Example(
|
||||
title = "Send a multiline JSON message using HTTP POST request and inputs with a pebble expression. We recommend this method to avoid JSON string interpolation",
|
||||
full = true,
|
||||
code = """
|
||||
id: http_multiline_json
|
||||
namespace: company.team
|
||||
title = "Send a multiline JSON message using HTTP POST request and inputs with a pebble expression. We recommend this method to avoid JSON string interpolation",
|
||||
full = true,
|
||||
code = """
|
||||
id: http_multiline_json
|
||||
namespace: company.team
|
||||
|
||||
inputs:
|
||||
- id: title
|
||||
type: STRING
|
||||
defaults: This is the title of the request
|
||||
- id: message
|
||||
type: STRING
|
||||
defaults: |-
|
||||
This is my long
|
||||
multiline message.
|
||||
- id: priority
|
||||
type: INT
|
||||
defaults: 5
|
||||
inputs:
|
||||
- id: title
|
||||
type: STRING
|
||||
defaults: This is the title of the request
|
||||
- id: message
|
||||
type: STRING
|
||||
defaults: |-
|
||||
This is my long
|
||||
multiline message.
|
||||
- id: priority
|
||||
type: INT
|
||||
defaults: 5
|
||||
|
||||
tasks:
|
||||
- id: send
|
||||
type: io.kestra.plugin.core.http.Request
|
||||
uri: "https://reqres.in/api/test-request"
|
||||
method: "POST"
|
||||
body: |
|
||||
{{ {
|
||||
"title": inputs.title,
|
||||
"message": inputs.message,
|
||||
"priority": inputs.priority
|
||||
} }}
|
||||
"""
|
||||
)
|
||||
tasks:
|
||||
- id: send
|
||||
type: io.kestra.plugin.core.http.Request
|
||||
uri: "https://reqres.in/api/test-request"
|
||||
method: "POST"
|
||||
body: |
|
||||
{{ {
|
||||
"title": inputs.title,
|
||||
"message": inputs.message,
|
||||
"priority": inputs.priority
|
||||
} }}
|
||||
"""
|
||||
)
|
||||
},
|
||||
aliases = "io.kestra.plugin.fs.http.Request"
|
||||
)
|
||||
public class Request extends AbstractHttp implements RunnableTask<Request.Output> {
|
||||
|
||||
private static final int MAX_OUTPUT_BODY_BYTES = 19 * 1024 * 1024; // ~19MB safety margin
|
||||
|
||||
@Builder.Default
|
||||
@Schema(
|
||||
title = "If true, the HTTP response body will be automatically encrypted and decrypted in the outputs, provided that encryption is configured in your Kestra configuration.",
|
||||
@@ -329,7 +333,8 @@ public class Request extends AbstractHttp implements RunnableTask<Request.Output
|
||||
String body = null;
|
||||
|
||||
if (response.getBody() != null) {
|
||||
body = IOUtils.toString(ArrayUtils.toPrimitive(response.getBody()), StandardCharsets.UTF_8.name());
|
||||
byte[] bytes = getResponseBytes(response);
|
||||
body = IOUtils.toString(bytes, StandardCharsets.UTF_8.name());
|
||||
}
|
||||
|
||||
// check that the string is a valid Unicode string
|
||||
@@ -346,6 +351,17 @@ public class Request extends AbstractHttp implements RunnableTask<Request.Output
|
||||
}
|
||||
}
|
||||
|
||||
private static byte[] getResponseBytes(HttpResponse<Byte[]> response) {
|
||||
byte[] bytes = ArrayUtils.toPrimitive(response.getBody());
|
||||
if (bytes.length > MAX_OUTPUT_BODY_BYTES) {
|
||||
throw new IllegalArgumentException(
|
||||
"Response body is too large to store in task outputs (" + bytes.length + " bytes > max " + MAX_OUTPUT_BODY_BYTES + " bytes). " +
|
||||
"Use io.kestra.plugin.core.http.Download to fetch large payloads as files instead."
|
||||
);
|
||||
}
|
||||
return bytes;
|
||||
}
|
||||
|
||||
public Output output(RunContext runContext, HttpRequest request, HttpResponse<Byte[]> response, String body) throws GeneralSecurityException, URISyntaxException, IOException, IllegalVariableEvaluationException {
|
||||
boolean encrypt = runContext.render(this.encryptBody).as(Boolean.class).orElseThrow();
|
||||
return Output.builder()
|
||||
|
||||
@@ -5,9 +5,7 @@ import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.property.Property;
|
||||
import io.kestra.core.models.tasks.RunnableTask;
|
||||
import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.runners.DefaultRunContext;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
@@ -65,9 +63,7 @@ public class Delete extends Task implements RunnableTask<Delete.Output> {
|
||||
@Override
|
||||
public Output run(RunContext runContext) throws Exception {
|
||||
String renderedNamespace = runContext.render(this.namespace).as(String.class).orElseThrow();
|
||||
|
||||
FlowService flowService = ((DefaultRunContext) runContext).getApplicationContext().getBean(FlowService.class);
|
||||
flowService.checkAllowedNamespace(runContext.flowInfo().tenantId(), renderedNamespace, runContext.flowInfo().tenantId(), runContext.flowInfo().namespace());
|
||||
runContext.acl().allowNamespace(renderedNamespace).check();
|
||||
|
||||
String renderedKey = runContext.render(this.key).as(String.class).orElseThrow();
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ import io.kestra.core.models.tasks.RunnableTask;
|
||||
import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.runners.DefaultRunContext;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.services.KVStoreService;
|
||||
import io.kestra.core.storages.kv.KVValue;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -82,8 +81,7 @@ public class Get extends Task implements RunnableTask<Get.Output> {
|
||||
if (Objects.equals(renderedNamespace, flowNamespace)) {
|
||||
value = getValueWithInheritance(runContext, flowNamespace, renderedKey);
|
||||
} else {
|
||||
FlowService flowService = ((DefaultRunContext) runContext).getApplicationContext().getBean(FlowService.class);
|
||||
flowService.checkAllowedNamespace(runContext.flowInfo().tenantId(), renderedNamespace, runContext.flowInfo().tenantId(), runContext.flowInfo().namespace());
|
||||
runContext.acl().allowNamespace(renderedNamespace).check();
|
||||
value = runContext.namespaceKv(renderedNamespace).getValue(renderedKey);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,9 +5,7 @@ import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.property.Property;
|
||||
import io.kestra.core.models.tasks.RunnableTask;
|
||||
import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.runners.DefaultRunContext;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.storages.kv.KVEntry;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
@@ -18,7 +16,6 @@ import lombok.experimental.SuperBuilder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
@Slf4j
|
||||
@@ -63,9 +60,7 @@ public class GetKeys extends Task implements RunnableTask<GetKeys.Output> {
|
||||
@Override
|
||||
public Output run(RunContext runContext) throws Exception {
|
||||
String renderedNamespace = runContext.render(this.namespace).as(String.class).orElse(null);
|
||||
|
||||
FlowService flowService = ((DefaultRunContext) runContext).getApplicationContext().getBean(FlowService.class);
|
||||
flowService.checkAllowedNamespace(runContext.flowInfo().tenantId(), renderedNamespace, runContext.flowInfo().tenantId(), runContext.flowInfo().namespace());
|
||||
runContext.acl().allowNamespace(renderedNamespace).check();
|
||||
|
||||
String renderedPrefix = runContext.render(this.prefix).as(String.class).orElse(null);
|
||||
Predicate<String> filter = renderedPrefix == null ? key -> true : key -> key.startsWith(renderedPrefix);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package io.kestra.plugin.core.kv;
|
||||
|
||||
|
||||
import com.cronutils.utils.VisibleForTesting;
|
||||
import io.kestra.core.exceptions.IllegalVariableEvaluationException;
|
||||
import io.kestra.core.exceptions.ValidationErrorException;
|
||||
@@ -12,7 +11,6 @@ import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.repositories.FlowRepositoryInterface;
|
||||
import io.kestra.core.runners.DefaultRunContext;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.storages.kv.KVEntry;
|
||||
import io.kestra.core.storages.kv.KVStore;
|
||||
import io.kestra.core.utils.ListUtils;
|
||||
@@ -46,7 +44,7 @@ import java.util.concurrent.atomic.AtomicLong;
|
||||
code = """
|
||||
id: purge_kv_store
|
||||
namespace: system
|
||||
|
||||
|
||||
tasks:
|
||||
- id: purge_kv
|
||||
type: io.kestra.plugin.core.kv.PurgeKV
|
||||
@@ -135,7 +133,6 @@ public class PurgeKV extends Task implements RunnableTask<PurgeKV.Output> {
|
||||
@VisibleForTesting
|
||||
protected List<String> findNamespaces(RunContext runContext) throws IllegalVariableEvaluationException {
|
||||
String tenantId = runContext.flowInfo().tenantId();
|
||||
String currentNamespace = runContext.flowInfo().namespace();
|
||||
FlowRepositoryInterface flowRepositoryInterface = ((DefaultRunContext) runContext)
|
||||
.getApplicationContext().getBean(FlowRepositoryInterface.class);
|
||||
List<String> distinctNamespaces = flowRepositoryInterface.findDistinctNamespace(tenantId);
|
||||
@@ -177,9 +174,8 @@ public class PurgeKV extends Task implements RunnableTask<PurgeKV.Output> {
|
||||
kvNamespaces.addAll(distinctNamespaces);
|
||||
}
|
||||
|
||||
FlowService flowService = ((DefaultRunContext) runContext).getApplicationContext().getBean(FlowService.class);
|
||||
for (String ns : kvNamespaces) {
|
||||
flowService.checkAllowedNamespace(tenantId, ns, tenantId, currentNamespace);
|
||||
runContext.acl().allowNamespace(ns).check();
|
||||
}
|
||||
return kvNamespaces;
|
||||
}
|
||||
|
||||
@@ -7,8 +7,7 @@ import io.kestra.core.models.tasks.RunnableTask;
|
||||
import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.runners.DefaultRunContext;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.services.FlowService;
|
||||
import io.kestra.core.services.LogService;
|
||||
import io.kestra.core.services.ExecutionLogService;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -90,15 +89,14 @@ public class PurgeLogs extends Task implements RunnableTask<PurgeLogs.Output> {
|
||||
|
||||
@Override
|
||||
public Output run(RunContext runContext) throws Exception {
|
||||
LogService logService = ((DefaultRunContext)runContext).getApplicationContext().getBean(LogService.class);
|
||||
FlowService flowService = ((DefaultRunContext)runContext).getApplicationContext().getBean(FlowService.class);
|
||||
ExecutionLogService logService = ((DefaultRunContext)runContext).getApplicationContext().getBean(ExecutionLogService.class);
|
||||
|
||||
// validate that this namespace is authorized on the target namespace / all namespaces
|
||||
var flowInfo = runContext.flowInfo();
|
||||
if (namespace == null){
|
||||
flowService.checkAllowedAllNamespaces(flowInfo.tenantId(), flowInfo.tenantId(), flowInfo.namespace());
|
||||
runContext.acl().allowAllNamespaces().check();
|
||||
} else if (!flowInfo.namespace().equals(runContext.render(namespace).as(String.class).orElse(null))) {
|
||||
flowService.checkAllowedNamespace(flowInfo.tenantId(), runContext.render(namespace).as(String.class).orElse(null), flowInfo.tenantId(), flowInfo.namespace());
|
||||
runContext.acl().allowNamespace(runContext.render(namespace).as(String.class).orElse(null)).check();
|
||||
}
|
||||
|
||||
var logLevelsRendered = runContext.render(this.logLevels).asList(Level.class);
|
||||
|
||||
@@ -10,7 +10,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@SuperBuilder
|
||||
@@ -21,41 +20,42 @@ import java.util.Map;
|
||||
@Schema(
|
||||
title = "Output one or more values.",
|
||||
description = """
|
||||
You can use this task to return some outputs and pass them to downstream tasks.
|
||||
It's helpful for parsing and returning values from a task. You can then access these outputs in your downstream tasks
|
||||
using the expression `{{ outputs.mytask_id.values.my_output_name }}` and you can see them in the Outputs tab.
|
||||
The values can be strings, numbers, arrays, or any valid JSON object.
|
||||
"""
|
||||
You can use this task to return some outputs and pass them to downstream tasks.
|
||||
It's helpful for parsing and returning values from a task. You can then access these outputs in your downstream tasks
|
||||
using the expression `{{ outputs.mytask_id.values.my_output_name }}` and you can see them in the Outputs tab.
|
||||
The values can be strings, numbers, arrays, or any valid JSON object.
|
||||
"""
|
||||
)
|
||||
@Plugin(
|
||||
examples = {
|
||||
@Example(
|
||||
full = true,
|
||||
code = """
|
||||
id: outputs_flow
|
||||
namespace: company.team
|
||||
id: outputs_flow
|
||||
namespace: company.team
|
||||
|
||||
tasks:
|
||||
- id: output_values
|
||||
type: io.kestra.plugin.core.output.OutputValues
|
||||
values:
|
||||
taskrun_data: "{{ task.id }} > {{ taskrun.startDate }}"
|
||||
execution_data: "{{ flow.id }} > {{ execution.startDate }}"
|
||||
number_value: 42
|
||||
array_value: ["{{ task.id }}", "{{ flow.id }}", "static value"]
|
||||
nested_object:
|
||||
key1: "value1"
|
||||
key2: "{{ execution.id }}"
|
||||
tasks:
|
||||
- id: output_values
|
||||
type: io.kestra.plugin.core.output.OutputValues
|
||||
values:
|
||||
taskrun_data: "{{ task.id }} > {{ taskrun.startDate }}"
|
||||
execution_data: "{{ flow.id }} > {{ execution.startDate }}"
|
||||
number_value: 42
|
||||
array_value: ["{{ task.id }}", "{{ flow.id }}", "static value"]
|
||||
nested_object:
|
||||
key1: "value1"
|
||||
key2: "{{ execution.id }}"
|
||||
|
||||
- id: log_values
|
||||
type: io.kestra.plugin.core.log.Log
|
||||
message: |
|
||||
Got the following outputs from the previous task:
|
||||
{{ outputs.output_values.values.taskrun_data }}
|
||||
{{ outputs.output_values.values.execution_data }}
|
||||
{{ outputs.output_values.values.number_value }}
|
||||
{{ outputs.output_values.values.array_value[1] }}
|
||||
{{ outputs.output_values.values.nested_object.key2 }}"""
|
||||
- id: log_values
|
||||
type: io.kestra.plugin.core.log.Log
|
||||
message: |
|
||||
Got the following outputs from the previous task:
|
||||
{{ outputs.output_values.values.taskrun_data }}
|
||||
{{ outputs.output_values.values.execution_data }}
|
||||
{{ outputs.output_values.values.number_value }}
|
||||
{{ outputs.output_values.values.array_value[1] }}
|
||||
{{ outputs.output_values.values.nested_object.key2 }}
|
||||
"""
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package io.kestra.plugin.core.runner;
|
||||
|
||||
import io.kestra.core.exceptions.IllegalVariableEvaluationException;
|
||||
import io.kestra.core.models.annotations.Example;
|
||||
import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.property.Property;
|
||||
import io.kestra.core.models.tasks.runners.*;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.micronaut.core.annotation.Introspected;
|
||||
@@ -16,7 +14,6 @@ import lombok.experimental.SuperBuilder;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
@@ -24,8 +21,6 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
|
||||
@Introspected
|
||||
@SuperBuilder
|
||||
@ToString
|
||||
@@ -64,31 +59,31 @@ import java.util.Map;
|
||||
@Example(
|
||||
title = "Install custom Python packages before executing a Python script. Note how we use the `--break-system-packages` flag to avoid conflicts with the system packages. Make sure to use this flag if you see errors similar to `error: externally-managed-environment`.",
|
||||
code = """
|
||||
id: before_commands_example
|
||||
namespace: company.team
|
||||
id: before_commands_example
|
||||
namespace: company.team
|
||||
|
||||
inputs:
|
||||
- id: url
|
||||
type: URI
|
||||
defaults: https://jsonplaceholder.typicode.com/todos/1
|
||||
inputs:
|
||||
- id: url
|
||||
type: URI
|
||||
defaults: https://jsonplaceholder.typicode.com/todos/1
|
||||
|
||||
tasks:
|
||||
- id: transform
|
||||
type: io.kestra.plugin.scripts.python.Script
|
||||
taskRunner:
|
||||
type: io.kestra.plugin.core.runner.Process
|
||||
beforeCommands:
|
||||
- pip install kestra requests --break-system-packages
|
||||
script: |
|
||||
import requests
|
||||
from kestra import Kestra
|
||||
tasks:
|
||||
- id: transform
|
||||
type: io.kestra.plugin.scripts.python.Script
|
||||
taskRunner:
|
||||
type: io.kestra.plugin.core.runner.Process
|
||||
beforeCommands:
|
||||
- pip install kestra requests --break-system-packages
|
||||
script: |
|
||||
import requests
|
||||
from kestra import Kestra
|
||||
|
||||
url = "{{ inputs.url }}"
|
||||
url = "{{ inputs.url }}"
|
||||
|
||||
response = requests.get(url)
|
||||
print('Status Code:', response.status_code)
|
||||
Kestra.outputs(response.json())
|
||||
""",
|
||||
response = requests.get(url)
|
||||
print('Status Code:', response.status_code)
|
||||
Kestra.outputs(response.json())
|
||||
""",
|
||||
full = true
|
||||
),
|
||||
@Example(
|
||||
|
||||
@@ -6,7 +6,9 @@ import io.kestra.core.exceptions.IllegalVariableEvaluationException;
|
||||
import io.kestra.core.models.annotations.Example;
|
||||
import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.property.Property;
|
||||
import io.kestra.core.models.tasks.*;
|
||||
import io.kestra.core.models.tasks.Output;
|
||||
import io.kestra.core.models.tasks.RunnableTask;
|
||||
import io.kestra.core.models.tasks.Task;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.serializers.JacksonMapper;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -29,12 +31,11 @@ import lombok.experimental.SuperBuilder;
|
||||
@Plugin(
|
||||
examples = {
|
||||
@Example(
|
||||
code = {
|
||||
code = """
|
||||
spec: |
|
||||
type: io.kestra.plugin.core.http.Download
|
||||
{{ task.property }}: {{ task.value }}
|
||||
"""
|
||||
spec: |
|
||||
type: io.kestra.plugin.core.http.Download
|
||||
{{ task.property }}: {{ task.value }}"""
|
||||
}
|
||||
)
|
||||
},
|
||||
aliases = "io.kestra.core.tasks.templating.TemplatedTask"
|
||||
|
||||
@@ -4,50 +4,46 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import io.kestra.core.exceptions.IllegalVariableEvaluationException;
|
||||
import io.kestra.core.exceptions.InternalException;
|
||||
import io.kestra.core.models.Label;
|
||||
import io.kestra.core.models.annotations.Example;
|
||||
import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.annotations.PluginProperty;
|
||||
import io.kestra.core.models.conditions.Condition;
|
||||
import io.kestra.core.models.conditions.ConditionContext;
|
||||
import io.kestra.core.models.executions.Execution;
|
||||
import io.kestra.core.models.executions.ExecutionTrigger;
|
||||
import io.kestra.core.models.flows.State;
|
||||
import io.kestra.core.models.triggers.AbstractTrigger;
|
||||
import io.kestra.core.models.triggers.TimeWindow;
|
||||
import io.kestra.core.models.triggers.TriggerOutput;
|
||||
import io.kestra.core.models.triggers.multipleflows.MultipleCondition;
|
||||
import io.kestra.core.models.triggers.multipleflows.MultipleConditionStorageInterface;
|
||||
import io.kestra.core.models.triggers.multipleflows.MultipleConditionWindow;
|
||||
import io.kestra.core.runners.RunContext;
|
||||
import io.kestra.core.services.LabelService;
|
||||
import io.kestra.core.utils.IdUtils;
|
||||
import io.kestra.core.utils.ListUtils;
|
||||
import io.kestra.core.utils.MapUtils;
|
||||
import io.kestra.core.utils.TruthUtils;
|
||||
import io.kestra.core.validations.PreconditionFilterValidation;
|
||||
import io.micronaut.core.annotation.Nullable;
|
||||
import io.swagger.v3.oas.annotations.Hidden;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import lombok.*;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import io.kestra.core.models.annotations.Example;
|
||||
import io.kestra.core.models.annotations.Plugin;
|
||||
import io.kestra.core.models.executions.Execution;
|
||||
import io.kestra.core.models.executions.ExecutionTrigger;
|
||||
import io.kestra.core.models.flows.State;
|
||||
import io.kestra.core.models.triggers.AbstractTrigger;
|
||||
import io.kestra.core.models.triggers.TriggerOutput;
|
||||
import io.kestra.core.utils.IdUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.stream.Streams;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import io.micronaut.core.annotation.Nullable;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import static io.kestra.core.models.flows.State.Type.PAUSED;
|
||||
import static io.kestra.core.topologies.FlowTopologyService.SIMULATED_EXECUTION;
|
||||
import static io.kestra.core.utils.Rethrow.throwPredicate;
|
||||
@@ -255,11 +251,12 @@ import static io.kestra.core.utils.Rethrow.throwPredicate;
|
||||
id: flow_a
|
||||
id: flow_a
|
||||
where:
|
||||
- id: label_filter
|
||||
filters:
|
||||
- field: EXPRESSION
|
||||
type: IS_TRUE
|
||||
value: "{{ labels.type == 'orchestration' }}"""
|
||||
- id: label_filter
|
||||
filters:
|
||||
- field: EXPRESSION
|
||||
type: IS_TRUE
|
||||
value: "{{ labels.type == 'orchestration' }}
|
||||
"""
|
||||
)
|
||||
|
||||
},
|
||||
@@ -382,7 +379,7 @@ public class Flow extends AbstractTrigger implements TriggerOutput<Flow.Output>
|
||||
public static class Preconditions implements MultipleCondition {
|
||||
@NotNull
|
||||
@NotBlank
|
||||
@Pattern(regexp="^[a-zA-Z0-9][a-zA-Z0-9_-]*")
|
||||
@Pattern(regexp = "^[a-zA-Z0-9][a-zA-Z0-9_-]*")
|
||||
@Schema(title = "A unique id for the preconditions")
|
||||
@PluginProperty
|
||||
private String id;
|
||||
@@ -404,9 +401,9 @@ public class Flow extends AbstractTrigger implements TriggerOutput<Flow.Output>
|
||||
@Schema(
|
||||
title = "Whether to reset the evaluation results of preconditions after a first successful evaluation within the given time window",
|
||||
description = """
|
||||
By default, after a successful evaluation of the set of preconditions, the evaluation result is reset. This means the same set of conditions needs to be successfully evaluated again within the same time window to trigger a new execution.
|
||||
In this setup, to create multiple executions, the same set of conditions must be evaluated to `true` multiple times within the defined window.
|
||||
You can disable this by setting this property to `false`, so that within the same window, each time one of the conditions is satisfied again after a successful evaluation, it will trigger a new execution."""
|
||||
By default, after a successful evaluation of the set of preconditions, the evaluation result is reset. This means the same set of conditions needs to be successfully evaluated again within the same time window to trigger a new execution.
|
||||
In this setup, to create multiple executions, the same set of conditions must be evaluated to `true` multiple times within the defined window.
|
||||
You can disable this by setting this property to `false`, so that within the same window, each time one of the conditions is satisfied again after a successful evaluation, it will trigger a new execution."""
|
||||
)
|
||||
@PluginProperty
|
||||
@Builder.Default
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.cronutils.model.Cron;
|
||||
import com.cronutils.model.definition.CronDefinitionBuilder;
|
||||
import com.cronutils.model.time.ExecutionTime;
|
||||
import com.cronutils.parser.CronParser;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import io.kestra.core.exceptions.IllegalVariableEvaluationException;
|
||||
import io.kestra.core.exceptions.InternalException;
|
||||
@@ -505,7 +506,8 @@ public class Schedule extends AbstractTrigger implements Schedulable, TriggerOut
|
||||
));
|
||||
}
|
||||
|
||||
private synchronized ExecutionTime executionTime() {
|
||||
@VisibleForTesting
|
||||
synchronized ExecutionTime executionTime() {
|
||||
if (this.executionTime == null) {
|
||||
Cron parsed = parseCron();
|
||||
this.executionTime = ExecutionTime.forCron(parsed);
|
||||
@@ -543,11 +545,13 @@ public class Schedule extends AbstractTrigger implements Schedulable, TriggerOut
|
||||
return outputBuilder.build();
|
||||
}
|
||||
|
||||
private Optional<ZonedDateTime> truePreviousNextDateWithCondition(ExecutionTime executionTime, ConditionContext conditionContext, ZonedDateTime toTestDate, boolean next) throws InternalException {
|
||||
while (
|
||||
(next && toTestDate.getYear() < ZonedDateTime.now().getYear() + 10) ||
|
||||
(!next && toTestDate.getYear() > ZonedDateTime.now().getYear() - 10)
|
||||
) {
|
||||
@VisibleForTesting
|
||||
Optional<ZonedDateTime> truePreviousNextDateWithCondition(ExecutionTime executionTime, ConditionContext conditionContext, ZonedDateTime toTestDate, boolean next) throws InternalException {
|
||||
int upperYearBound = ZonedDateTime.now().getYear() + 10;
|
||||
int lowerYearBound = ZonedDateTime.now().getYear() - 10;
|
||||
|
||||
while ((next && toTestDate.getYear() < upperYearBound) || (!next && toTestDate.getYear() > lowerYearBound)) {
|
||||
|
||||
Optional<ZonedDateTime> currentDate = next ?
|
||||
executionTime.nextExecution(toTestDate) :
|
||||
executionTime.lastExecution(toTestDate);
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.2532 15.8272L15.2799 15.7838L15.2361 15.758L12.4006 14.0825V9.86101V9.81101H12.3506H10.8506H10.8006V9.86101V14.861V14.8894L10.825 14.9039L14.435 17.0639L14.4774 17.0893L14.5032 17.0472L15.2532 15.8272ZM9.34392 18.95H9.2904L9.29403 19.0034C9.30121 19.1088 9.30486 19.2152 9.30486 19.3224C9.30486 19.9074 9.19633 20.467 8.99836 20.9821L8.97225 21.05H9.04503H19C19.5437 21.05 20.0651 20.834 20.4496 20.4496C20.834 20.0651 21.05 19.5437 21.05 19V5C21.05 3.86222 20.1275 2.95 19 2.95H18.05V1V0.95H18H16H15.95V1V2.95H8.05V1V0.95H8H6H5.95V1V2.95H5C3.86239 2.95 2.95 3.86239 2.95 5V14.9548V15.0276L3.01794 15.0015C3.53301 14.8035 4.09249 14.695 4.67743 14.695C4.78472 14.695 4.89115 14.6987 4.9966 14.7059L5.05 14.7095V14.656V8.05H18.95V18.95H9.34392ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2576 5.50569 18.5365 5.25253 18.7053C5.25251 18.7053 5.25249 18.7053 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="io.kestra.plugin.core.condition.DateTimeBetweenCondition">
|
||||
<g id="Vector">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_1412_1508)"/>
|
||||
<path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" fill="url(#paint1_linear_1412_1508)"/>
|
||||
<g clip-path="url(#paint2_angular_1412_1508_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1002.5" y="-1002.5" width="2005" height="2005"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M49.5286 50.8406L42.1023 46.4778V35.5064H38.2074V48.414L47.5812 53.99L49.5286 50.8406Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":-4.8985871985824346e-15},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint3_angular_1412_1508_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1002.5" y="-1002.5" width="2005" height="2005"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M34.2949 59.0988H59.3682V30.7022H23.0154V47.8846C22.7387 47.8659 22.4594 47.8564 22.1778 47.8564C20.6428 47.8564 19.1743 48.1395 17.8222 48.6561V22.9576C17.8222 20.0922 20.1332 17.7946 23.0154 17.7946H25.612V12.6316H30.8053V17.7946H51.5783V12.6316H56.7715V17.7946H59.3682C62.2244 17.7946 64.5614 20.0922 64.5614 22.9576V59.0988C64.5614 60.4681 64.0143 61.7814 63.0403 62.7496C62.0664 63.7179 60.7455 64.2618 59.3682 64.2618H33.5189C34.0385 62.9175 34.3234 61.4575 34.3234 59.9312C34.3234 59.6514 34.3138 59.3739 34.2949 59.0988Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":-4.8985871985824346e-15},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint4_angular_1412_1508_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1002.5" y="-1002.5" width="2005" height="2005"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M25.2632 68.7719H22.4562V65.9649H25.2632V68.7719ZM25.2632 64.5614H22.4562V60.3509H25.2632V57.5439H22.4562V58.9474H19.6492V54.7368H28.0703V61.7544H25.2632V64.5614Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":-4.8985871985824346e-15},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="paint2_angular_1412_1508_clip_path"><path d="M49.5286 50.8406L42.1023 46.4778V35.5064H38.2074V48.414L47.5812 53.99L49.5286 50.8406Z"/></clipPath><clipPath id="paint3_angular_1412_1508_clip_path"><path d="M34.2949 59.0988H59.3682V30.7022H23.0154V47.8846C22.7387 47.8659 22.4594 47.8564 22.1778 47.8564C20.6428 47.8564 19.1743 48.1395 17.8222 48.6561V22.9576C17.8222 20.0922 20.1332 17.7946 23.0154 17.7946H25.612V12.6316H30.8053V17.7946H51.5783V12.6316H56.7715V17.7946H59.3682C62.2244 17.7946 64.5614 20.0922 64.5614 22.9576V59.0988C64.5614 60.4681 64.0143 61.7814 63.0403 62.7496C62.0664 63.7179 60.7455 64.2618 59.3682 64.2618H33.5189C34.0385 62.9175 34.3234 61.4575 34.3234 59.9312C34.3234 59.6514 34.3138 59.3739 34.2949 59.0988Z"/></clipPath><clipPath id="paint4_angular_1412_1508_clip_path"><path d="M25.2632 68.7719H22.4562V65.9649H25.2632V68.7719ZM25.2632 64.5614H22.4562V60.3509H25.2632V57.5439H22.4562V58.9474H19.6492V54.7368H28.0703V61.7544H25.2632V64.5614Z"/></clipPath><linearGradient id="paint0_linear_1412_1508" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_1412_1508" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 8.1 KiB |
@@ -1,3 +1,45 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9.34392 18.95H9.2904L9.29403 19.0034C9.30121 19.1088 9.30486 19.2152 9.30486 19.3224C9.30486 19.9074 9.19633 20.467 8.99836 20.9821L8.97225 21.05H9.04503H19C19.5437 21.05 20.0651 20.834 20.4496 20.4496C20.834 20.0651 21.05 19.5437 21.05 19V5C21.05 3.86222 20.1275 2.95 19 2.95H18.05V1V0.95H18H16H15.95V1V2.95H8.05V1V0.95H8H6H5.95V1V2.95H5C3.86239 2.95 2.95 3.86239 2.95 5V14.9548V15.0276L3.01794 15.0015C3.53301 14.8035 4.09249 14.695 4.67743 14.695C4.78472 14.695 4.89115 14.6987 4.9966 14.7059L5.05 14.7095V14.656V8.05H18.95V18.95H9.34392ZM12 10.043H11.95V10.093V15.093V15.143H12H17H17.05V15.093V10.093V10.043H17H12ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2576 5.50569 18.5365 5.25253 18.7053C5.25251 18.7053 5.25249 18.7053 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-288 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0280702 -0.0233696 0 41.1919 40.7018)"><foreignObject x="-1004.28" y="-1004.28" width="2008.56" height="2008.56"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M34.295 59.0988H59.3682V30.7022H23.0155V47.8846C22.7388 47.8659 22.4595 47.8564 22.1779 47.8564C20.6429 47.8564 19.1743 48.1395 17.8223 48.6561V22.9576C17.8223 20.0922 20.1333 17.7946 23.0155 17.7946H25.6121V12.6316H30.8054V17.7946H51.5784V12.6316H56.7716V17.7946H59.3682C62.2245 17.7946 64.5615 20.0922 64.5615 22.9576V59.0988C64.5615 60.4681 64.0143 61.7814 63.0404 62.7496C62.0665 63.7179 60.7456 64.2618 59.3682 64.2618H33.5189C34.0386 62.9176 34.3234 61.4575 34.3234 59.9312C34.3234 59.6514 34.3139 59.3739 34.295 59.0988Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.8619521693257514e-15,"m01":-46.739223480224609,"m02":64.561492919921875,"m10":56.140350341796875,"m11":3.4376050776421937e-15,"m12":12.631580352783203},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint3_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0280702 -0.0233696 0 41.1919 40.7018)"><foreignObject x="-1004.28" y="-1004.28" width="2008.56" height="2008.56"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M41.1919 36.1053H54.175V49.0129H41.1919V36.1053Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.8619521693257514e-15,"m01":-46.739223480224609,"m02":64.561492919921875,"m10":56.140350341796875,"m11":3.4376050776421937e-15,"m12":12.631580352783203},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint4_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0280702 -0.0233696 0 41.1919 40.7018)"><foreignObject x="-1004.28" y="-1004.28" width="2008.56" height="2008.56"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M25.2633 68.7719H22.4563V65.9649H25.2633V68.7719ZM25.2633 64.5614H22.4563V60.3509H25.2633V57.5439H22.4563V58.9474H19.6493V54.7368H28.0703V61.7544H25.2633V64.5614Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.8619521693257514e-15,"m01":-46.739223480224609,"m02":64.561492919921875,"m10":56.140350341796875,"m11":3.4376050776421937e-15,"m12":12.631580352783203},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-295.393" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M34.295 59.0988H59.3682V30.7022H23.0155V47.8846C22.7388 47.8659 22.4595 47.8564 22.1779 47.8564C20.6429 47.8564 19.1743 48.1395 17.8223 48.6561V22.9576C17.8223 20.0922 20.1333 17.7946 23.0155 17.7946H25.6121V12.6316H30.8054V17.7946H51.5784V12.6316H56.7716V17.7946H59.3682C62.2245 17.7946 64.5615 20.0922 64.5615 22.9576V59.0988C64.5615 60.4681 64.0143 61.7814 63.0404 62.7496C62.0665 63.7179 60.7456 64.2618 59.3682 64.2618H33.5189C34.0386 62.9176 34.3234 61.4575 34.3234 59.9312C34.3234 59.6514 34.3139 59.3739 34.295 59.0988Z"/></clipPath><clipPath id="paint3_angular_0_1_clip_path"><path d="M41.1919 36.1053H54.175V49.0129H41.1919V36.1053Z"/></clipPath><clipPath id="paint4_angular_0_1_clip_path"><path d="M25.2633 68.7719H22.4563V65.9649H25.2633V68.7719ZM25.2633 64.5614H22.4563V60.3509H25.2633V57.5439H22.4563V58.9474H19.6493V54.7368H28.0703V61.7544H25.2633V64.5614Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 12 KiB |
@@ -1,3 +1,50 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.0369 13.9759H10.9869V14.0259V16.0259V16.0759H11.0369H13.0369H13.0869V16.0259V14.0259V13.9759H13.0369H11.0369ZM7.08148 13.9759H7.03148V14.0259V16.0259V16.0759H7.08148H9.08148H9.13148V16.0259V14.0259V13.9759H9.08148H7.08148ZM9 12.05H9.05V12V10V9.95H9H7H6.95V10V12V12.05H7H9ZM13 12.05H13.05V12V10V9.95H13H11H10.95V10V12V12.05H11H13ZM17 12.05H17.05V12V10V9.95H17H15H14.95V10V12V12.05H15H17ZM5.05 14.656V8.05H18.95V18.95H9.34392H9.2904L9.29403 19.0034C9.30121 19.1088 9.30486 19.2152 9.30486 19.3224C9.30486 19.9074 9.19633 20.467 8.99836 20.9821L8.97225 21.05H9.04503H19C19.5437 21.05 20.0651 20.834 20.4496 20.4496C20.834 20.0651 21.05 19.5437 21.05 19V5C21.05 4.45631 20.834 3.93488 20.4496 3.55043C20.0651 3.16598 19.5437 2.95 19 2.95H18.05V1V0.95H18H16H15.95V1V2.95H8.05V1V0.95H8H6H5.95V1V2.95H5C4.45631 2.95 3.93488 3.16598 3.55043 3.55043C3.16598 3.93488 2.95 4.45631 2.95 5V14.9548V15.0276L3.01794 15.0015C3.53301 14.8035 4.09249 14.695 4.67743 14.695C4.78472 14.695 4.89115 14.6987 4.9966 14.7059L5.05 14.7095V14.656ZM17 16.05H17.05V16V14V13.95H17H15H14.95V14V16V16.05H15H17ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2576 5.50569 18.5365 5.25253 18.7053C5.25251 18.7053 5.25249 18.7053 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-288 -606)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.028 -0.024 0 41 40)"><foreignObject x="-1004.17" y="-1004.17" width="2008.33" height="2008.33"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M38.4318 45.5424H43.7651V50.6925H38.4318V45.5424Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.9391524462044029e-15,"m01":-48.0,"m02":65.0,"m10":56.0,"m11":3.4290112931175884e-15,"m12":12.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint3_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.028 -0.024 0 41 40)"><foreignObject x="-1004.17" y="-1004.17" width="2008.33" height="2008.33"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M27.884 45.5424H33.2173V50.6925H27.884V45.5424Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.9391524462044029e-15,"m01":-48.0,"m02":65.0,"m10":56.0,"m11":3.4290112931175884e-15,"m12":12.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint4_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.028 -0.024 0 41 40)"><foreignObject x="-1004.17" y="-1004.17" width="2008.33" height="2008.33"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M33 40.3257V35.1755H27.6667V40.3257H33Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.9391524462044029e-15,"m01":-48.0,"m02":65.0,"m10":56.0,"m11":3.4290112931175884e-15,"m12":12.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint5_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.028 -0.024 0 41 40)"><foreignObject x="-1004.17" y="-1004.17" width="2008.33" height="2008.33"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M43.6667 40.3257V35.1755H38.3333V40.3257H43.6667Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.9391524462044029e-15,"m01":-48.0,"m02":65.0,"m10":56.0,"m11":3.4290112931175884e-15,"m12":12.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint6_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.028 -0.024 0 41 40)"><foreignObject x="-1004.17" y="-1004.17" width="2008.33" height="2008.33"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M54.3333 40.3257V35.1755H49V40.3257H54.3333Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.9391524462044029e-15,"m01":-48.0,"m02":65.0,"m10":56.0,"m11":3.4290112931175884e-15,"m12":12.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint7_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.028 -0.024 0 41 40)"><foreignObject x="-1004.17" y="-1004.17" width="2008.33" height="2008.33"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M63.4379 18.6586C62.4377 17.6927 61.0812 17.1501 59.6667 17.1501H57V12H51.6667V17.1501H30.3333V12H25V17.1501H22.3333C20.9188 17.1501 19.5623 17.6927 18.5621 18.6586C17.5619 19.6244 17 20.9343 17 22.3002V47.9344C18.3885 47.4191 19.8967 47.1367 21.4731 47.1367C21.7623 47.1367 22.0491 47.1462 22.3333 47.1649V30.0254H59.6667V58.3511H33.9171C33.9365 58.6254 33.9463 58.9023 33.9463 59.1814C33.9463 60.7038 33.6538 62.1603 33.1201 63.5012H59.6667C61.0812 63.5012 62.4377 62.9586 63.4379 61.9928C64.4381 61.0269 65 59.717 65 58.3511V22.3002C65 20.9343 64.4381 19.6244 63.4379 18.6586Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.9391524462044029e-15,"m01":-48.0,"m02":65.0,"m10":56.0,"m11":3.4290112931175884e-15,"m12":12.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint8_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.028 -0.024 0 41 40)"><foreignObject x="-1004.17" y="-1004.17" width="2008.33" height="2008.33"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M54.3333 50.6259V45.4758H49V50.6259H54.3333Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.9391524462044029e-15,"m01":-48.0,"m02":65.0,"m10":56.0,"m11":3.4290112931175884e-15,"m12":12.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint9_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.028 -0.024 0 41 40)"><foreignObject x="-1004.17" y="-1004.17" width="2008.33" height="2008.33"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M24.6418 68H21.759V65.2H24.6418V68ZM24.6418 63.8H21.759V59.6H24.6418V56.8H21.759V58.2H18.8763V54H27.5245V61H24.6418V63.8Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.9391524462044029e-15,"m01":-48.0,"m02":65.0,"m10":56.0,"m11":3.4290112931175884e-15,"m12":12.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-295.393" y="-613.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M38.4318 45.5424H43.7651V50.6925H38.4318V45.5424Z"/></clipPath><clipPath id="paint3_angular_0_1_clip_path"><path d="M27.884 45.5424H33.2173V50.6925H27.884V45.5424Z"/></clipPath><clipPath id="paint4_angular_0_1_clip_path"><path d="M33 40.3257V35.1755H27.6667V40.3257H33Z"/></clipPath><clipPath id="paint5_angular_0_1_clip_path"><path d="M43.6667 40.3257V35.1755H38.3333V40.3257H43.6667Z"/></clipPath><clipPath id="paint6_angular_0_1_clip_path"><path d="M54.3333 40.3257V35.1755H49V40.3257H54.3333Z"/></clipPath><clipPath id="paint7_angular_0_1_clip_path"><path d="M63.4379 18.6586C62.4377 17.6927 61.0812 17.1501 59.6667 17.1501H57V12H51.6667V17.1501H30.3333V12H25V17.1501H22.3333C20.9188 17.1501 19.5623 17.6927 18.5621 18.6586C17.5619 19.6244 17 20.9343 17 22.3002V47.9344C18.3885 47.4191 19.8967 47.1367 21.4731 47.1367C21.7623 47.1367 22.0491 47.1462 22.3333 47.1649V30.0254H59.6667V58.3511H33.9171C33.9365 58.6254 33.9463 58.9023 33.9463 59.1814C33.9463 60.7038 33.6538 62.1603 33.1201 63.5012H59.6667C61.0812 63.5012 62.4377 62.9586 63.4379 61.9928C64.4381 61.0269 65 59.717 65 58.3511V22.3002C65 20.9343 64.4381 19.6244 63.4379 18.6586Z"/></clipPath><clipPath id="paint8_angular_0_1_clip_path"><path d="M54.3333 50.6259V45.4758H49V50.6259H54.3333Z"/></clipPath><clipPath id="paint9_angular_0_1_clip_path"><path d="M24.6418 68H21.759V65.2H24.6418V68ZM24.6418 63.8H21.759V59.6H24.6418V56.8H21.759V58.2H18.8763V54H27.5245V61H24.6418V63.8Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 21 KiB |
@@ -1,15 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.01995 21.7196V22.7471H3.9925V21.7196H5.01995ZM3.65002 18.2948H2.62258V17.9523C2.62258 17.4074 2.83908 16.8847 3.22444 16.4993C3.60981 16.114 4.13248 15.8975 4.67747 15.8975C5.22245 15.8975 5.74512 16.114 6.13049 16.4993C6.51585 16.8847 6.73235 17.4074 6.73235 17.9523C6.73235 18.6168 6.38987 19.2401 5.84875 19.6031L5.64326 19.7332C5.25283 20.0072 5.01995 20.4251 5.01995 20.8977V21.0347H3.9925V20.8977C3.9925 20.0826 4.40348 19.3223 5.08159 18.877L5.28023 18.7469C5.54737 18.5688 5.70491 18.2743 5.70491 17.9523C5.70491 17.6798 5.59666 17.4185 5.40398 17.2258C5.21129 17.0332 4.94996 16.9249 4.67747 16.9249C4.40497 16.9249 4.14364 17.0332 3.95096 17.2258C3.75827 17.4185 3.65002 17.6798 3.65002 17.9523V18.2948Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.11995 21.6196V22.8471H3.8925V21.6196H5.11995ZM3.75002 18.3948H2.52258V17.9523C2.52258 17.3808 2.74961 16.8327 3.15373 16.4286C3.55785 16.0245 4.10596 15.7975 4.67747 15.7975C5.24898 15.7975 5.79708 16.0245 6.2012 16.4286C6.60532 16.8327 6.83235 17.3808 6.83235 17.9523C6.83235 18.6508 6.47269 19.3049 5.90446 19.6861L5.90227 19.6876L5.69879 19.8164C5.33414 20.0732 5.11995 20.4609 5.11995 20.8977V21.1347H3.8925V20.8977C3.8925 20.0489 4.32041 19.2572 5.02671 18.7934L5.22476 18.6637C5.22466 18.6638 5.22486 18.6636 5.22476 18.6637C5.46383 18.5042 5.60491 18.2408 5.60491 17.9523C5.60491 17.7064 5.50719 17.4705 5.33327 17.2965C5.15934 17.1226 4.92344 17.0249 4.67747 17.0249C4.43149 17.0249 4.1956 17.1226 4.02167 17.2965C3.84774 17.4705 3.75002 17.7064 3.75002 17.9523V18.3948ZM5.08159 18.877L5.28023 18.7469C5.54737 18.5688 5.70491 18.2743 5.70491 17.9523C5.70491 17.6798 5.59666 17.4185 5.40398 17.2258C5.21129 17.0332 4.94996 16.9249 4.67747 16.9249C4.40497 16.9249 4.14364 17.0332 3.95096 17.2258C3.75827 17.4185 3.65002 17.6798 3.65002 17.9523V18.2948H2.62258V17.9523C2.62258 17.4074 2.83908 16.8847 3.22444 16.4993C3.60981 16.114 4.13248 15.8975 4.67747 15.8975C5.22245 15.8975 5.74512 16.114 6.13049 16.4993C6.51585 16.8847 6.73235 17.4074 6.73235 17.9523C6.73235 18.6168 6.38987 19.2401 5.84875 19.6031L5.64326 19.7332C5.25283 20.0072 5.01995 20.4251 5.01995 20.8977V21.0347H3.9925V20.8977C3.9925 20.0826 4.40348 19.3223 5.08159 18.877ZM5.01995 21.7196H3.9925V22.7471H5.01995V21.7196Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.0685 4H11.0685V6H13.0685V4ZM9.06851 2V8H15.0685V2H9.06851Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.0685 18H11.0685V20H13.0685V18ZM9.06851 16V22H15.0685V16H9.06851Z" fill="currentColor"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M21 18H19V20H21V18ZM17 16V22H23V16H17Z" fill="currentColor"/>
|
||||
<path d="M10.9801 8H12.9801V10H10.9801V8Z" fill="currentColor"/>
|
||||
<path d="M10.9801 11H12.9801V13H10.9801V11Z" fill="currentColor"/>
|
||||
<path d="M15.0685 11H17.0685V13H15.0685V11Z" fill="currentColor"/>
|
||||
<path d="M6.89211 11H8.89211V13H6.89211V11Z" fill="currentColor"/>
|
||||
<path d="M2.96011 11H4.96011V13H2.96011V11Z" fill="currentColor"/>
|
||||
<path d="M19 11H21V13H19V11Z" fill="currentColor"/>
|
||||
<path d="M19 14H21V16H19V14Z" fill="currentColor"/>
|
||||
<path d="M10.9801 14H12.9801V16H10.9801V14Z" fill="currentColor"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-624 -606)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0271343 -0.025731 0 39.7661 39.7661)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M65.4971 66.9004H44.9131V48.6553H65.4971V66.9004ZM53.333 64.5615H56.1406V61.7549H53.333V64.5615ZM50.5264 54.7373H53.333V53.333H56.1406V56.1406H53.333V60.3506H56.1406V57.5439H58.9473V50.5264H50.5264V54.7373ZM26.9014 35.79H39.7666V40.9355H26.9014V53.8018H39.7666V58.9473H21.7549V33.2168H26.9014V35.79ZM65.4971 46.082H44.9131V30.6436H65.4971V46.082ZM50.0586 40.9355H60.3516V35.79H50.0586V40.9355ZM34.6201 28.0703H14.0352V12.6318H34.6201V28.0703ZM19.1816 22.9238H29.4736V17.7783H19.1816V22.9238ZM49.123 22.4561H40.7021V21.0527H49.123V22.4561ZM57.5439 19.6494H40.7021V18.2461H57.5439V19.6494ZM57.5439 16.8418H40.7021V15.4385H57.5439V16.8418Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.1511334526831058e-15,"m01":-51.46191406250,"m02":65.49707031250,"m10":54.26855468750,"m11":3.3229907202086094e-15,"m12":12.63183593750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-631.393" y="-613.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M65.4971 66.9004H44.9131V48.6553H65.4971V66.9004ZM53.333 64.5615H56.1406V61.7549H53.333V64.5615ZM50.5264 54.7373H53.333V53.333H56.1406V56.1406H53.333V60.3506H56.1406V57.5439H58.9473V50.5264H50.5264V54.7373ZM26.9014 35.79H39.7666V40.9355H26.9014V53.8018H39.7666V58.9473H21.7549V33.2168H26.9014V35.79ZM65.4971 46.082H44.9131V30.6436H65.4971V46.082ZM50.0586 40.9355H60.3516V35.79H50.0586V40.9355ZM34.6201 28.0703H14.0352V12.6318H34.6201V28.0703ZM19.1816 22.9238H29.4736V17.7783H19.1816V22.9238ZM49.123 22.4561H40.7021V21.0527H49.123V22.4561ZM57.5439 19.6494H40.7021V18.2461H57.5439V19.6494ZM57.5439 16.8418H40.7021V15.4385H57.5439V16.8418Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 8.0 KiB |
@@ -1,10 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_483_2879)">
|
||||
<path d="M0.95 5V5.05H1H1.95V15.2203V15.3031L2.0233 15.2645C2.62159 14.9495 3.29196 14.7529 4.00329 14.7059L4.05 14.7029V14.6561V5.05H5H5.05V5V4.05H18.95V5V5.05H19H19.95V18.95H19H18.95V19V19.95H9.34382H9.29701L9.29393 19.9967C9.24697 20.708 9.05036 21.3784 8.73528 21.9767L8.69668 22.05H8.77952H18.95V23V23.05H19H23H23.05V23V19V18.95H23H22.05V5.05H23H23.05V5V1V0.95H23H19H18.95V1V1.95H5.05V1V0.95H5H1H0.95V1V5ZM9.02514 18.0166L9.03689 18.05H9.07231H18H18.05V18V9V8.95H18H14.05V6V5.95H14H6H5.95V6V14V14.05H6H8.95V17.807V17.8166L8.95355 17.8256C8.97868 17.8886 9.00255 17.9523 9.02514 18.0166ZM14 14.05H14.05V14V11.05H15.95V15.95H11.05V14.05H14ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2576 5.5057 18.5364 5.25256 18.7052C5.25253 18.7053 5.2525 18.7053 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65ZM8.05 11.95V8.05H11.95V11.95H8.05Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-736 -606)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0210527 -0.0259648 0 42.8066 42.1055)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M22.4561 63.1582H19.6484V60.3516H22.4561V63.1582ZM25.2627 56.1406H22.4561V58.9473H19.6484V54.7373H22.4561V51.9297H19.6484V53.334H16.8418V49.123H25.2627V56.1406ZM63.29 55.3945C62.8134 57.5261 60.9067 58.9473 58.7617 58.9473H31.4619C31.9884 57.6469 32.2802 56.2264 32.2803 54.7373C32.2803 54.561 32.2746 54.3853 32.2666 54.2109H58.7617L62.5752 40H31.5918L29.5918 47.4512C28.5042 46.1776 27.138 45.1508 25.5859 44.4648L28.0176 35.2627H68.7715L63.29 55.3945ZM42.0791 25.7891H58.7617C60.0259 25.7891 61.2389 26.2884 62.1328 27.1768C63.0267 28.0651 63.5283 29.2701 63.5283 30.5264H23.0127V43.6826C22.3761 43.5705 21.7215 43.5088 21.0527 43.5088C20.0837 43.5088 19.1431 43.6315 18.2461 43.8623V25.7891C18.2462 24.533 18.7479 23.3286 19.6416 22.4404C20.5355 21.5521 21.7485 21.0527 23.0127 21.0527H37.3125L42.0791 25.7891Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.1797765070692204e-15,"m01":-51.92968750,"m02":68.7714843750,"m10":42.105468750,"m11":2.5782164607862949e-15,"m12":21.0527343750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_483_2879">
|
||||
<rect width="24" height="24" fill="white"/>
|
||||
</clipPath>
|
||||
<filter id="filter0_ii_0_1" x="-743.393" y="-613.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M22.4561 63.1582H19.6484V60.3516H22.4561V63.1582ZM25.2627 56.1406H22.4561V58.9473H19.6484V54.7373H22.4561V51.9297H19.6484V53.334H16.8418V49.123H25.2627V56.1406ZM63.29 55.3945C62.8134 57.5261 60.9067 58.9473 58.7617 58.9473H31.4619C31.9884 57.6469 32.2802 56.2264 32.2803 54.7373C32.2803 54.561 32.2746 54.3853 32.2666 54.2109H58.7617L62.5752 40H31.5918L29.5918 47.4512C28.5042 46.1776 27.138 45.1508 25.5859 44.4648L28.0176 35.2627H68.7715L63.29 55.3945ZM42.0791 25.7891H58.7617C60.0259 25.7891 61.2389 26.2884 62.1328 27.1768C63.0267 28.0651 63.5283 29.2701 63.5283 30.5264H23.0127V43.6826C22.3761 43.5705 21.7215 43.5088 21.0527 43.5088C20.0837 43.5088 19.1431 43.6315 18.2461 43.8623V25.7891C18.2462 24.533 18.7479 23.3286 19.6416 22.4404C20.5355 21.5521 21.7485 21.0527 23.0127 21.0527H37.3125L42.0791 25.7891Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 8.3 KiB |
@@ -1,3 +1,47 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.9646 7.46464L12.9293 7.5L12.9646 7.53536L16.4646 11.0354L16.5 11.0707L16.5354 11.0354L22.1354 5.43536L22.1707 5.4L22.1354 5.36464L20.7354 3.96464L20.7 3.92929L20.6646 3.96464L16.5 8.12929L14.4354 6.06464L14.4 6.02929L14.3646 6.06464L12.9646 7.46464ZM2 6.95H1.95V7V9V9.05H2H11H11.05V9V7V6.95H11H2ZM19.6354 11.9646L19.6 11.9293L19.5646 11.9646L17 14.5293L14.4354 11.9646L14.4 11.9293L14.3646 11.9646L12.9646 13.3646L12.9293 13.4L12.9646 13.4354L15.5293 16L12.9646 18.5646L12.9293 18.6L12.9646 18.6354L14.3646 20.0354L14.4 20.0707L14.4354 20.0354L17 17.4707L19.5646 20.0354L19.6 20.0707L19.6354 20.0354L21.0354 18.6354L21.0707 18.6L21.0354 18.5646L18.4707 16L21.0354 13.4354L21.0707 13.4L21.0354 13.3646L19.6354 11.9646ZM7.86302 15.8475H7.73589L7.82896 15.9341C8.41889 16.483 8.86523 17.1841 9.10555 17.9747L9.11633 18.0102H9.15339H10.9299H10.9799V17.9602V15.8975V15.8475H10.9299H7.86302ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2575 5.50576 18.5363 5.2527 18.7051C5.25263 18.7052 5.25255 18.7052 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29345 20.0402 5.67099 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-848 -606)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0224561 -0.0252632 0 40.7016 40.7017)"><foreignObject x="-1004.45" y="-1004.45" width="2008.91" height="2008.91"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M43.0897 26.8926L51.8878 35.5395L65.9648 21.7044L62.4455 18.2456L51.8878 28.622L46.6089 23.4338L43.0897 26.8926Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.0938448028120348e-15,"m01":-50.526317596435547,"m02":65.964797973632812,"m10":44.912281036376953,"m11":2.7500841044654023e-15,"m12":18.245605468750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint3_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0224561 -0.0252632 0 40.7016 40.7017)"><foreignObject x="-1004.45" y="-1004.45" width="2008.91" height="2008.91"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M15.4385 25.6573H38.0622V30.5984H15.4385V25.6573Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.0938448028120348e-15,"m01":-50.526317596435547,"m02":65.964797973632812,"m10":44.912281036376953,"m11":2.7500841044654023e-15,"m12":18.245605468750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint4_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0224561 -0.0252632 0 40.7016 40.7017)"><foreignObject x="-1004.45" y="-1004.45" width="2008.91" height="2008.91"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M59.6804 38.0101L63.1997 41.4689L56.6639 47.8923L63.1997 54.3158L59.6804 57.7746L53.1447 51.3511L46.6089 57.7746L43.0897 54.3158L49.6254 47.8923L43.0897 41.4689L46.6089 38.0101L53.1447 44.4336L59.6804 38.0101Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.0938448028120348e-15,"m01":-50.526317596435547,"m02":65.964797973632812,"m10":44.912281036376953,"m11":2.7500841044654023e-15,"m12":18.245605468750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint5_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0224561 -0.0252632 0 40.7016 40.7017)"><foreignObject x="-1004.45" y="-1004.45" width="2008.91" height="2008.91"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M22.456 63.1579H19.649V60.3509H22.456V63.1579ZM22.456 58.9474H19.649V54.7368H22.456V51.9298H19.649V53.3333H16.842V49.1228H25.263V56.1403H22.456V58.9474Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.0938448028120348e-15,"m01":-50.526317596435547,"m02":65.964797973632812,"m10":44.912281036376953,"m11":2.7500841044654023e-15,"m12":18.245605468750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint6_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0224561 -0.0252632 0 40.7016 40.7017)"><foreignObject x="-1004.45" y="-1004.45" width="2008.91" height="2008.91"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M29.4736 47.7193H37.8946V53.3333H29.4736V47.7193Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.0938448028120348e-15,"m01":-50.526317596435547,"m02":65.964797973632812,"m10":44.912281036376953,"m11":2.7500841044654023e-15,"m12":18.245605468750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-855.393" y="-613.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M43.0897 26.8926L51.8878 35.5395L65.9648 21.7044L62.4455 18.2456L51.8878 28.622L46.6089 23.4338L43.0897 26.8926Z"/></clipPath><clipPath id="paint3_angular_0_1_clip_path"><path d="M15.4385 25.6573H38.0622V30.5984H15.4385V25.6573Z"/></clipPath><clipPath id="paint4_angular_0_1_clip_path"><path d="M59.6804 38.0101L63.1997 41.4689L56.6639 47.8923L63.1997 54.3158L59.6804 57.7746L53.1447 51.3511L46.6089 57.7746L43.0897 54.3158L49.6254 47.8923L43.0897 41.4689L46.6089 38.0101L53.1447 44.4336L59.6804 38.0101Z"/></clipPath><clipPath id="paint5_angular_0_1_clip_path"><path d="M22.456 63.1579H19.649V60.3509H22.456V63.1579ZM22.456 58.9474H19.649V54.7368H22.456V51.9298H19.649V53.3333H16.842V49.1228H25.263V56.1403H22.456V58.9474Z"/></clipPath><clipPath id="paint6_angular_0_1_clip_path"><path d="M29.4736 47.7193H37.8946V53.3333H29.4736V47.7193Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 15 KiB |
@@ -1,5 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M21 13V16H23V22H17V16H19V13H13V16H15V22H8.99999V16H11V13H4.99999V14.6562C4.89453 14.6488 4.787 14.645 4.67743 14.645C4.08626 14.645 3.5207 14.7547 2.99999 14.9548V13C2.99999 11.89 3.88999 11 4.99999 11H11V8H8.99999V2H15V8H13V11H19C20.11 11 21 11.89 21 13ZM13 4H11V6H13V4ZM11 20H13V18H11V20ZM19 20H21V18H19V20Z" fill="currentColor"/>
|
||||
<path d="M5.01992 21.7196V22.7471H3.99248V21.7196H5.01992ZM3.65 18.2948H2.62256V17.9523C2.62256 17.4074 2.83905 16.8847 3.22442 16.4993C3.60978 16.114 4.13245 15.8975 4.67744 15.8975C5.22243 15.8975 5.7451 16.114 6.13046 16.4993C6.51583 16.8847 6.73232 17.4074 6.73232 17.9523C6.73232 18.6168 6.38984 19.2401 5.84872 19.6031L5.64324 19.7332C5.25281 20.0072 5.01992 20.4251 5.01992 20.8977V21.0347H3.99248V20.8977C3.99248 20.0826 4.40346 19.3223 5.08157 18.877L5.28021 18.7469C5.54734 18.5688 5.70488 18.2743 5.70488 17.9523C5.70488 17.6798 5.59663 17.4185 5.40395 17.2258C5.21127 17.0332 4.94994 16.9249 4.67744 16.9249C4.40495 16.9249 4.14361 17.0332 3.95093 17.2258C3.75825 17.4185 3.65 17.6798 3.65 17.9523V18.2948Z" fill="currentColor"/>
|
||||
<path d="M5.04999 14.6562V13.05H10.95V15.95H8.99999H8.94999V16V22V22.05H8.99999H15H15.05V22V16V15.95H15H13.05V13.05H18.95V15.95H17H16.95V16V22V22.05H17H23H23.05V22V16V15.95H23H21.05V13C21.05 11.8624 20.1376 10.95 19 10.95H13.05V8.05H15H15.05V8V2V1.95H15H8.99999H8.94999V2V8V8.05H8.99999H10.95V10.95H4.99999C3.86238 10.95 2.94999 11.8624 2.94999 13V14.9548V15.0276L3.01793 15.0015C3.533 14.8035 4.09248 14.695 4.67743 14.695C4.78585 14.695 4.89221 14.6987 4.99649 14.7061L5.04999 14.7098V14.6562ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2576 5.50569 18.5365 5.25253 18.7053C5.25251 18.7053 5.25249 18.7053 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65ZM11.05 5.95V4.05H12.95V5.95H11.05ZM12.95 18.05V19.95H11.05V18.05H12.95ZM20.95 18.05V19.95H19.05V18.05H20.95Z" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-400 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0271343 -0.025731 0 39.7661 39.7659)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M65.4971 66.9001H44.9131V48.655H65.4971V66.9001ZM53.333 61.7546V64.5613H56.1406V61.7546H53.333ZM50.5264 50.5261V54.737H53.333V53.3328H56.1406V56.1404H53.333V60.3503H56.1406V57.5437H58.9473V50.5261H50.5264ZM26.9014 35.7898H39.7666V40.9353H26.9014V53.8015H39.7666V58.947H21.7549V33.2165H26.9014V35.7898ZM65.4971 46.0818H44.9131V30.6433H65.4971V46.0818ZM50.0586 40.9353H60.3516V35.7898H50.0586V40.9353ZM34.6201 28.0701H14.0352V12.6316H34.6201V28.0701ZM19.1816 22.9236H29.4736V17.7781H19.1816V22.9236Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.1511334526831058e-15,"m01":-51.46191406250,"m02":65.49707031250,"m10":54.26855468750,"m11":3.3229907202086094e-15,"m12":12.631580352783203},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-407.393" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M65.4971 66.9001H44.9131V48.655H65.4971V66.9001ZM53.333 61.7546V64.5613H56.1406V61.7546H53.333ZM50.5264 50.5261V54.737H53.333V53.3328H56.1406V56.1404H53.333V60.3503H56.1406V57.5437H58.9473V50.5261H50.5264ZM26.9014 35.7898H39.7666V40.9353H26.9014V53.8015H39.7666V58.947H21.7549V33.2165H26.9014V35.7898ZM65.4971 46.0818H44.9131V30.6433H65.4971V46.0818ZM50.0586 40.9353H60.3516V35.7898H50.0586V40.9353ZM34.6201 28.0701H14.0352V12.6316H34.6201V28.0701ZM19.1816 22.9236H29.4736V17.7781H19.1816V22.9236Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 7.7 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3.2 14.8668V14.9353L3.26524 14.9144C3.71036 14.772 4.18486 14.695 4.67743 14.695C7.23309 14.695 9.30486 16.7668 9.30486 19.3224C9.30486 19.9074 9.19633 20.467 8.99836 20.9821L8.97225 21.05H9.04503H19.25C19.7937 21.05 20.3151 20.834 20.6996 20.4496C21.084 20.0651 21.3 19.5437 21.3 19V5C21.3 3.86222 20.3775 2.95 19.25 2.95H5.25C4.11239 2.95 3.2 3.86239 3.2 5V14.8668ZM13.9559 10.7127V12.6971H12.5659V6.40205H14.6361L16.354 11.0594L16.3661 11.0921H16.4009H16.4709H16.5222L16.5209 11.0408L16.4509 8.34142V6.40205H17.8409V12.6971H15.8306L14.0477 7.93452L14.0356 7.90205H14.0009H13.9359H13.8846L13.8859 7.95332L13.9559 10.7127ZM8.11584 10.5221V12.6971H6.66084V6.40705H10.8458V7.62205H8.16584H8.11584V7.67205V9.20705V9.25705H8.16584H10.7708V10.4721H8.16584H8.11584V10.5221ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2575 5.50576 18.5363 5.2527 18.7051C5.25263 18.7052 5.25255 18.7052 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-512 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0266665 -0.0259648 0 41.4033 39.2983)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M21.0527 65.9648H18.2451V63.1582H21.0527V65.9648ZM23.8594 58.9473H21.0527V61.7539H18.2451V57.5439H21.0527V54.7363H18.2451V56.1406H15.4385V51.9297H23.8594V58.9473ZM61.8867 58.2012C61.4101 60.3327 59.5033 61.7538 57.3584 61.7539H30.0576C30.5841 60.4536 30.8769 59.0331 30.877 57.5439C30.8769 57.3677 30.8713 57.1918 30.8633 57.0176H57.3584L61.1719 42.8066H30.1885L28.1885 50.2578C27.1009 48.9844 25.7345 47.9575 24.1826 47.2715L26.6133 38.0703H67.3682L61.8867 58.2012ZM40.6748 28.5967H57.3584C58.6223 28.5967 59.8347 29.0954 60.7285 29.9834C61.6224 30.8717 62.1249 32.0768 62.125 33.333H21.6084V46.4893C20.972 46.3772 20.317 46.3154 19.6484 46.3154C18.6794 46.3155 17.7387 46.4381 16.8418 46.6689V28.5967C16.8419 27.3405 17.3445 26.1353 18.2383 25.2471C19.1321 24.3589 20.3444 23.8595 21.6084 23.8594H26.667V16.8418H43.5088V12.6318H58.9473V23.8594H43.5088V19.6494H29.4736V23.8594H35.9082L40.6748 28.5967ZM46.3154 21.0527H56.1406V15.4385H46.3154V21.0527Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.1797765070692204e-15,"m01":-51.92968750,"m02":67.36816406250,"m10":53.33300781250,"m11":3.2657050349528538e-15,"m12":12.63183593750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-519.393" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M21.0527 65.9648H18.2451V63.1582H21.0527V65.9648ZM23.8594 58.9473H21.0527V61.7539H18.2451V57.5439H21.0527V54.7363H18.2451V56.1406H15.4385V51.9297H23.8594V58.9473ZM61.8867 58.2012C61.4101 60.3327 59.5033 61.7538 57.3584 61.7539H30.0576C30.5841 60.4536 30.8769 59.0331 30.877 57.5439C30.8769 57.3677 30.8713 57.1918 30.8633 57.0176H57.3584L61.1719 42.8066H30.1885L28.1885 50.2578C27.1009 48.9844 25.7345 47.9575 24.1826 47.2715L26.6133 38.0703H67.3682L61.8867 58.2012ZM40.6748 28.5967H57.3584C58.6223 28.5967 59.8347 29.0954 60.7285 29.9834C61.6224 30.8717 62.1249 32.0768 62.125 33.333H21.6084V46.4893C20.972 46.3772 20.317 46.3154 19.6484 46.3154C18.6794 46.3155 17.7387 46.4381 16.8418 46.6689V28.5967C16.8419 27.3405 17.3445 26.1353 18.2383 25.2471C19.1321 24.3589 20.3444 23.8595 21.6084 23.8594H26.667V16.8418H43.5088V12.6318H58.9473V23.8594H43.5088V19.6494H29.4736V23.8594H35.9082L40.6748 28.5967ZM46.3154 21.0527H56.1406V15.4385H46.3154V21.0527Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 8.6 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.8535 22.6116L15.9138 22.7161L15.9451 22.5995L17.6105 16.3841L17.6236 16.3353L17.5746 16.3227L11.4092 14.7439L11.294 14.7144L11.3535 14.8173L13.2787 18.152C11.9441 18.6335 10.5143 18.6115 9.23579 18.1511L9.14793 18.1194L9.1703 18.2101C9.25821 18.5663 9.30486 18.9389 9.30486 19.3224C9.30486 19.6549 9.26981 19.979 9.20324 20.2915L9.19326 20.3383L9.23962 20.3503C10.8923 20.7778 12.6818 20.682 14.3405 19.991L15.8535 22.6116ZM5.66599 14.8008L5.75741 14.8207L5.72315 14.7337C4.78394 12.3469 5.49802 9.61459 7.47363 7.98062L7.5062 7.95369L7.48507 7.91709L6.47507 6.16772L6.44677 6.11871L6.40162 6.15282C3.72603 8.17426 2.61247 11.6314 3.52559 14.7899L3.53888 14.8359L3.58538 14.8246C3.93549 14.7399 4.30118 14.695 4.67743 14.695C5.01677 14.695 5.34752 14.7315 5.66599 14.8008ZM8.14426 5.1467L8.09227 5.1688L8.12051 5.21772L9.13551 6.97575L9.15657 7.01222L9.19609 6.99767C10.0177 6.6951 10.9075 6.57063 11.8192 6.6625L11.8617 6.66678L11.8726 6.62553L12.3947 4.64979L12.4091 4.59516L12.3531 4.58748C10.8894 4.38681 9.4412 4.59545 8.14426 5.1467ZM17.6554 7.77257L17.7043 7.74433L17.6703 7.6992C16.8226 6.57308 15.6689 5.68207 14.3013 5.12414L14.2486 5.10264L14.2341 5.15766L13.723 7.09242L13.7123 7.13265L13.75 7.15041C14.569 7.53695 15.286 8.0849 15.8422 8.77076L15.869 8.80391L15.906 8.78257L17.6554 7.77257ZM19.1506 13.6934L19.2056 13.7083L19.2133 13.652C19.4139 12.1888 19.2278 10.7392 18.6764 9.44177L18.6543 9.38978L18.6054 9.41802L16.856 10.428L16.8191 10.4493L16.8343 10.4891C17.1452 11.3052 17.2662 12.2086 17.1829 13.1158L17.179 13.1576L17.2195 13.1687L19.1506 13.6934ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2575 5.50576 18.5363 5.2527 18.7051C5.25263 18.7052 5.25255 18.7052 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29345 20.0402 5.67099 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-624 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0280698 -0.0235088 0 38.9473 39.2983)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M21.0527 67.3682H18.2451V64.5615H21.0527V67.3682ZM62.4561 49.0059L42.4561 64.5615L22.4561 49.0059L26.0557 46.2061L42.4561 58.9395L58.834 46.1836L62.4561 49.0059ZM23.8594 60.3506H21.0527V63.1572H18.2451V58.9473H21.0527V56.1396H18.2451V57.5439H15.4385V53.333H23.8594V60.3506ZM62.4561 38.0508L42.4561 53.6055L22.4561 38.0508L26.0557 35.25L42.4561 47.9834L58.834 35.2285L62.4561 38.0508ZM62.4561 26.7832L42.4561 42.3389L22.4561 26.7832L42.4561 11.2285L62.4561 26.7832ZM29.7002 26.7832L42.4561 36.7168L55.2119 26.7832L42.4561 16.8506L29.7002 26.7832Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.8789963780486393e-15,"m01":-47.0175781250,"m02":62.45605468750,"m10":56.13964843750,"m11":3.4375620907201206e-15,"m12":11.2285156250},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-631.393" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M21.0527 67.3682H18.2451V64.5615H21.0527V67.3682ZM62.4561 49.0059L42.4561 64.5615L22.4561 49.0059L26.0557 46.2061L42.4561 58.9395L58.834 46.1836L62.4561 49.0059ZM23.8594 60.3506H21.0527V63.1572H18.2451V58.9473H21.0527V56.1396H18.2451V57.5439H15.4385V53.333H23.8594V60.3506ZM62.4561 38.0508L42.4561 53.6055L22.4561 38.0508L26.0557 35.25L42.4561 47.9834L58.834 35.2285L62.4561 38.0508ZM62.4561 26.7832L42.4561 42.3389L22.4561 26.7832L42.4561 11.2285L62.4561 26.7832ZM29.7002 26.7832L42.4561 36.7168L55.2119 26.7832L42.4561 16.8506L29.7002 26.7832Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 7.8 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22.2076 6.2047L22.2086 6.20439L22.2036 6.19555L19.9841 2.23647C19.984 2.23631 19.9839 2.23615 19.9839 2.23599C19.8952 2.07028 19.7086 1.95 19.5 1.95H15C14.7914 1.95 14.6048 2.07028 14.5161 2.23599C14.5161 2.23615 14.516 2.23631 14.5159 2.23647L12.2964 6.19555L12.2955 6.19505L12.2924 6.2047L12.2024 6.4847L12.1975 6.5L12.2024 6.5153L12.2924 6.7953L12.2914 6.79561L12.2964 6.80445L14.5159 10.7635C14.516 10.7637 14.5161 10.7639 14.5161 10.764C14.6048 10.9297 14.7914 11.05 15 11.05H19.5C19.7086 11.05 19.8952 10.9297 19.9839 10.764C19.9839 10.7639 19.984 10.7637 19.9841 10.7635L22.2036 6.80445L22.2045 6.80495L22.2076 6.7953L22.2976 6.5153L22.3025 6.5L22.2976 6.4847L22.2076 6.2047ZM22.2076 17.2047L22.2086 17.2044L22.2036 17.1955L19.9841 13.2365C19.984 13.2363 19.9839 13.2361 19.9839 13.236C19.8952 13.0703 19.7086 12.95 19.5 12.95H15C14.7914 12.95 14.6048 13.0703 14.5161 13.236C14.5161 13.2361 14.516 13.2363 14.5159 13.2365L12.2964 17.1955L12.2955 17.1951L12.2924 17.2047L12.2024 17.4847L12.1975 17.5L12.2024 17.5153L12.2924 17.7953L12.2914 17.7956L12.2964 17.8045L14.5159 21.7635C14.516 21.7637 14.5161 21.7639 14.5161 21.764C14.6048 21.9297 14.7914 22.05 15 22.05H19.5C19.7086 22.05 19.8952 21.9297 19.9839 21.764C19.9839 21.7639 19.984 21.7637 19.9841 21.7635L22.2036 17.8045L22.2045 17.8049L22.2076 17.7953L22.2976 17.5153L22.3025 17.5L22.2976 17.4847L22.2076 17.2047ZM12.9576 11.7047L12.9586 11.7044L12.9536 11.6955L10.7341 7.73647C10.734 7.73631 10.7339 7.73615 10.7339 7.73599C10.6452 7.57028 10.4586 7.45 10.25 7.45H5.75C5.54136 7.45 5.35475 7.57028 5.26614 7.73599C5.26605 7.73615 5.26597 7.73631 5.26588 7.73647L3.04639 11.6955L3.0455 11.6951L3.0424 11.7047L2.9524 11.9847L2.94748 12L2.9524 12.0153L3.0424 12.2953L3.04143 12.2956L3.04639 12.3045L4.37614 14.6764L4.39137 14.7036L4.42247 14.7019C4.50687 14.6973 4.59187 14.695 4.67743 14.695C6.18421 14.695 7.52278 15.4151 8.3678 16.5302L8.38281 16.55H8.40765H10.25C10.4586 16.55 10.6452 16.4297 10.7339 16.264C10.7339 16.2639 10.734 16.2637 10.7341 16.2635L12.9536 12.3045L12.9545 12.3049L12.9576 12.2953L13.0476 12.0153L13.0525 12L13.0476 11.9847L12.9576 11.7047ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2576 5.50569 18.5365 5.25253 18.7053C5.25251 18.7053 5.25249 18.7053 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-736 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0259648 -0.0238599 0 40.7017 40)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M22.4561 65.9648H19.6484V63.1582H22.4561V65.9648ZM57.7441 41.8242C58.2151 41.8242 58.6366 42.1025 58.835 42.4814L64.3379 52.4854L64.5615 53.1934L64.3379 53.9004L58.835 63.9043C58.6366 64.2832 58.2151 64.5615 57.7441 64.5615H46.5889C46.118 64.5614 45.6963 64.2832 45.498 63.9043L39.9951 53.9004L39.7725 53.1934L39.9951 52.4854L45.498 42.4814C45.6963 42.1026 46.118 41.8244 46.5889 41.8242H57.7441ZM25.2627 58.9473H22.4561V61.7539H19.6484V57.5439H22.4561V54.7363H19.6484V56.1406H16.8418V51.9297H25.2627V58.9473ZM34.8145 27.9297C35.2854 27.9297 35.707 28.208 35.9053 28.5869L41.4082 38.5908L41.6318 39.2979L41.4082 40.0059L35.9053 50.0098C35.707 50.3887 35.2854 50.6669 34.8145 50.667H30.2471C28.1299 47.8198 24.7756 45.9805 21 45.9805C20.7858 45.9805 20.5727 45.9864 20.3613 45.998L17.0654 40.0059L16.8418 39.2979L17.0654 38.5908L22.5684 28.5869C22.7667 28.208 23.1882 27.9297 23.6592 27.9297H34.8145ZM57.7441 14.0352C58.2151 14.0352 58.6366 14.3134 58.835 14.6924L64.3379 24.6963L64.5615 25.4033L64.3379 26.1113L58.835 36.1152C58.6366 36.4941 58.2151 36.7715 57.7441 36.7715H46.5889C46.118 36.7714 45.6963 36.4941 45.498 36.1152L39.9951 26.1113L39.7725 25.4033L39.9951 24.6963L45.498 14.6924C45.6963 14.3135 46.118 14.0353 46.5889 14.0352H57.7441Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.9219907116600835e-15,"m01":-47.71972656250,"m02":64.56152343750,"m10":51.92968750,"m11":3.1797765070692204e-15,"m12":14.035156250},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-743.393" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M22.4561 65.9648H19.6484V63.1582H22.4561V65.9648ZM57.7441 41.8242C58.2151 41.8242 58.6366 42.1025 58.835 42.4814L64.3379 52.4854L64.5615 53.1934L64.3379 53.9004L58.835 63.9043C58.6366 64.2832 58.2151 64.5615 57.7441 64.5615H46.5889C46.118 64.5614 45.6963 64.2832 45.498 63.9043L39.9951 53.9004L39.7725 53.1934L39.9951 52.4854L45.498 42.4814C45.6963 42.1026 46.118 41.8244 46.5889 41.8242H57.7441ZM25.2627 58.9473H22.4561V61.7539H19.6484V57.5439H22.4561V54.7363H19.6484V56.1406H16.8418V51.9297H25.2627V58.9473ZM34.8145 27.9297C35.2854 27.9297 35.707 28.208 35.9053 28.5869L41.4082 38.5908L41.6318 39.2979L41.4082 40.0059L35.9053 50.0098C35.707 50.3887 35.2854 50.6669 34.8145 50.667H30.2471C28.1299 47.8198 24.7756 45.9805 21 45.9805C20.7858 45.9805 20.5727 45.9864 20.3613 45.998L17.0654 40.0059L16.8418 39.2979L17.0654 38.5908L22.5684 28.5869C22.7667 28.208 23.1882 27.9297 23.6592 27.9297H34.8145ZM57.7441 14.0352C58.2151 14.0352 58.6366 14.3134 58.835 14.6924L64.3379 24.6963L64.5615 25.4033L64.3379 26.1113L58.835 36.1152C58.6366 36.4941 58.2151 36.7715 57.7441 36.7715H46.5889C46.118 36.7714 45.6963 36.4941 45.498 36.1152L39.9951 26.1113L39.7725 25.4033L39.9951 24.6963L45.498 14.6924C45.6963 14.3135 46.118 14.0353 46.5889 14.0352H57.7441Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 9.1 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M20.8047 22.7654L20.8401 22.8006L20.8753 22.7653L22.1453 21.4953L22.1807 21.46L22.1453 21.4246L20.75 20.0293V20.0193L20.7353 20.0046L2.42534 1.69463L2.39012 1.65941L2.35477 1.69449L1.07477 2.96449L1.03923 2.99975L1.07454 3.03524L2.94999 4.92061V14.9548V15.0276L3.01792 15.0015C3.533 14.8035 4.09248 14.695 4.67743 14.695C7.23309 14.695 9.30486 16.7668 9.30486 19.3224C9.30486 19.9074 9.19634 20.4669 8.99837 20.982L8.97226 21.05H9.04504H19.0794L20.8047 22.7654ZM6.19999 2.94998H6.07927L6.16463 3.03534L20.9646 17.8353L21.05 17.9207V17.8V8.99998V8.97927L21.0353 8.96463L15.0353 2.96463L15.0207 2.94998H15H6.19999ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2576 5.5057 18.5364 5.25256 18.7052C5.25253 18.7053 5.2525 18.7053 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65ZM14.05 9.94998V4.62069L19.3793 9.94998H14.05Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-848 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0274868 -0.0275098 0 40.1982 38.5747)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M16.2373 11.1582L63.9629 58.8447L63.9922 58.874V58.8984L67.6377 62.543L67.708 62.6133L67.6377 62.6836L64.3271 65.9912L64.2568 66.0615L64.1865 65.9922L59.6797 61.5156H33.3672L33.4199 61.3789C33.9371 60.0343 34.2206 58.5728 34.2207 57.0459C34.2205 50.3736 28.8069 44.965 22.1289 44.9648C20.6005 44.9649 19.1379 45.2478 17.792 45.7646L17.6562 45.8164V19.5244L12.7588 14.6064L12.6885 14.5352L12.7598 14.4648L16.0957 11.1572L16.167 11.0879L16.2373 11.1582ZM24.0586 65.9648H21.251V63.1582H24.0586V65.9648ZM26.8652 58.9473H24.0586V61.7539H21.251V57.5439H24.0586V54.7363H21.251V56.1406H18.4443V51.9297H26.8652V58.9473ZM49.1055 14.4658L64.7441 30.0918L64.7734 30.1211V53.3223L64.6025 53.1523L26.0264 14.6064L25.8555 14.4365H49.0762L49.1055 14.4658ZM46.5283 32.667H60.5225L46.5283 18.6836V32.667Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.3689748683656245e-15,"m01":-55.019531250,"m02":67.70800781250,"m10":54.97363281250,"m11":3.3661644130466347e-15,"m12":11.0878906250},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-855.393" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M16.2373 11.1582L63.9629 58.8447L63.9922 58.874V58.8984L67.6377 62.543L67.708 62.6133L67.6377 62.6836L64.3271 65.9912L64.2568 66.0615L64.1865 65.9922L59.6797 61.5156H33.3672L33.4199 61.3789C33.9371 60.0343 34.2206 58.5728 34.2207 57.0459C34.2205 50.3736 28.8069 44.965 22.1289 44.9648C20.6005 44.9649 19.1379 45.2478 17.792 45.7646L17.6562 45.8164V19.5244L12.7588 14.6064L12.6885 14.5352L12.7598 14.4648L16.0957 11.1572L16.167 11.0879L16.2373 11.1582ZM24.0586 65.9648H21.251V63.1582H24.0586V65.9648ZM26.8652 58.9473H24.0586V61.7539H21.251V57.5439H24.0586V54.7363H21.251V56.1406H18.4443V51.9297H26.8652V58.9473ZM49.1055 14.4658L64.7441 30.0918L64.7734 30.1211V53.3223L64.6025 53.1523L26.0264 14.6064L25.8555 14.4365H49.0762L49.1055 14.4658ZM46.5283 32.667H60.5225L46.5283 18.6836V32.667Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 8.2 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.5852 13.4517L14.4686 13.4829L14.5731 13.5433L17.1277 15.0182C15.4747 17.8275 11.8532 18.7857 9.02503 17.1528C8.9479 17.1083 8.87197 17.0621 8.7973 17.0144L8.72666 17.0808C9.09506 17.7449 9.30486 18.5091 9.30486 19.3224C9.30486 19.3979 9.30305 19.4729 9.29949 19.5474L9.29771 19.5846L9.3328 19.5969C12.9019 20.8552 16.9674 19.4483 18.9464 16.0682L21.5013 17.5433L21.6059 17.6036L21.5746 17.487L20.1105 12.0229L20.0976 11.9746L20.0493 11.9876L14.5852 13.4517ZM6.92875 15.2786L6.99547 15.2084L6.96778 15.1638L6.94826 15.1319L6.91222 15.1416L6.87576 15.1514L6.75395 15.184L6.86503 15.2437C6.88636 15.2552 6.9076 15.2668 6.92875 15.2786ZM16.025 5.02846C12.1877 2.813 7.28923 4.11338 5.05366 7.93174L2.49875 6.45667L2.39422 6.39631L2.42546 6.51291L3.88956 11.977L3.9025 12.0253L3.9508 12.0124L9.4149 10.5483L9.5315 10.517L9.42696 10.4567L6.87236 8.98177C8.5254 6.17248 12.1469 5.21427 14.975 6.84712C15.8339 7.34301 16.5429 8.03866 17.0323 8.83618L17.0518 8.86799L17.0878 8.85833L19.0822 8.32393L19.1425 8.30778L19.1136 8.25246C18.4342 6.95395 17.3933 5.81842 16.025 5.02846ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2575 5.50576 18.5363 5.2527 18.7051C5.25263 18.7052 5.25255 18.7052 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.4429 5.29345 20.0402 5.67099 19.7748L5.87548 19.6453L5.87549 19.6453L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8474 4.67744 15.8474C4.11919 15.8474 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65ZM10.975 13.7753C11.9602 14.3441 13.2066 14.0102 13.7754 13.025C14.3392 12.0484 14.0016 10.7884 13.025 10.2246C12.0486 9.66089 10.7936 9.98962 10.2247 10.975C9.65587 11.9602 9.98983 13.2065 10.975 13.7753Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-960 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.023187 -0.0278237 0 40.7017 39.2983)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M22.3711 62.4853H19.2803V59.3936H22.3711V62.4853ZM68.5254 55.2353L60.9375 50.8887C55.2208 60.7117 43.3636 64.8134 32.96 61.1748C32.9705 60.9565 32.9756 60.7365 32.9756 60.5156C32.9755 58.1337 32.3562 55.8952 31.2686 53.9502C31.4885 54.0895 31.7123 54.2244 31.9395 54.3545C40.312 59.15 51.045 56.2973 55.8789 47.9912L48.29 43.6445L64.25 39.4023L68.5254 55.2353ZM25.4629 54.7559H22.3711V57.8477H19.2803V53.2109H22.3711V50.1191H19.2803V51.665H16.1885V47.0273H25.4629V54.7559ZM35.6426 36.4004C37.2636 33.6152 40.8397 32.686 43.6221 34.2793C46.4045 35.873 47.3672 39.4359 45.7607 42.1963C44.1397 44.9814 40.5888 45.9252 37.7812 44.3174C34.9735 42.7092 34.0215 39.1858 35.6426 36.4004ZM20.4658 27.708C26.9207 16.6165 41.2046 12.8191 52.3848 19.2227C56.356 21.4973 59.3775 24.7675 61.3496 28.5068L55.5244 30.0547C54.0821 27.723 51.9932 25.6909 49.4639 24.2422C41.0914 19.4467 30.3593 22.2995 25.5254 30.6055L33.1133 34.9521L17.1543 39.1943L12.8779 23.3613L20.4658 27.708Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.4074244466985757e-15,"m01":-55.64746093750,"m02":68.5253906250,"m10":46.374011993408203,"m11":2.8395894407270538e-15,"m12":16.111324310302734},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-967.393" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M22.3711 62.4853H19.2803V59.3936H22.3711V62.4853ZM68.5254 55.2353L60.9375 50.8887C55.2208 60.7117 43.3636 64.8134 32.96 61.1748C32.9705 60.9565 32.9756 60.7365 32.9756 60.5156C32.9755 58.1337 32.3562 55.8952 31.2686 53.9502C31.4885 54.0895 31.7123 54.2244 31.9395 54.3545C40.312 59.15 51.045 56.2973 55.8789 47.9912L48.29 43.6445L64.25 39.4023L68.5254 55.2353ZM25.4629 54.7559H22.3711V57.8477H19.2803V53.2109H22.3711V50.1191H19.2803V51.665H16.1885V47.0273H25.4629V54.7559ZM35.6426 36.4004C37.2636 33.6152 40.8397 32.686 43.6221 34.2793C46.4045 35.873 47.3672 39.4359 45.7607 42.1963C44.1397 44.9814 40.5888 45.9252 37.7812 44.3174C34.9735 42.7092 34.0215 39.1858 35.6426 36.4004ZM20.4658 27.708C26.9207 16.6165 41.2046 12.8191 52.3848 19.2227C56.356 21.4973 59.3775 24.7675 61.3496 28.5068L55.5244 30.0547C54.0821 27.723 51.9932 25.6909 49.4639 24.2422C41.0914 19.4467 30.3593 22.2995 25.5254 30.6055L33.1133 34.9521L17.1543 39.1943L12.8779 23.3613L20.4658 27.708Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 8.6 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4.45624 14.7002L4.52349 14.6971L4.50103 14.6336C4.20904 13.8085 4.05 12.922 4.05 12C4.05 7.62761 7.62761 4.05 12 4.05C16.3724 4.05 19.95 7.62761 19.95 12C19.95 16.3724 16.3724 19.95 12 19.95C11.078 19.95 10.1914 19.7909 9.36629 19.4989L9.30282 19.4765L9.29966 19.5437C9.26727 20.2319 9.08455 20.8808 8.78361 21.4582L8.7566 21.51L8.81198 21.5286C9.8148 21.8667 10.8871 22.05 12 22.05C17.5276 22.05 22.05 17.5276 22.05 12C22.05 6.47239 17.5276 1.95 12 1.95C6.47239 1.95 1.95 6.47239 1.95 12C1.95 13.1129 2.13333 14.1851 2.4713 15.1879L2.48996 15.2432L2.54179 15.2162C3.11919 14.9153 3.76801 14.7326 4.45624 14.7002ZM15.8406 15.6432L15.8867 15.6701L15.9105 15.6224L16.6105 14.2224L16.6316 14.1802L16.5907 14.1567L12.6158 11.8711V7V6.95H12.5658H11.0658H11.0158V7V12.8V12.8287L11.0406 12.8432L15.8406 15.6432ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2576 5.50569 18.5365 5.25253 18.7053C5.25251 18.7053 5.25249 18.7053 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-1072 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0266763 -0.0266665 0 40.7017 39.3081)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M24.4287 65.9844H21.3379V62.8926H24.4287V65.9844ZM40.7021 12.6318C55.3686 12.632 67.3682 24.5042 67.3682 39.0146C67.3681 53.5251 55.3686 65.3972 40.7021 65.3975C37.7492 65.3975 34.9038 64.9165 32.2432 64.0293C33.0544 62.4894 33.5465 60.7582 33.6338 58.9229C35.8482 59.6982 38.2281 60.1211 40.7021 60.1211C52.4353 60.1209 62.0351 50.6229 62.0352 39.0146C62.0352 27.4063 52.4353 17.9084 40.7021 17.9082C28.9688 17.9082 19.3682 27.4062 19.3682 39.0146C19.3682 41.4622 19.7955 43.8161 20.5791 46.0068C18.7241 46.0932 16.9745 46.5802 15.418 47.3828C14.5213 44.7506 14.0352 41.9361 14.0352 39.0146C14.0352 24.504 26.0355 12.6318 40.7021 12.6318ZM27.5205 58.2549H24.4287V61.3467H21.3379V56.71H24.4287V53.6182H21.3379V55.1641H18.2461V50.5264H27.5205V58.2549ZM42.2109 38.751L52.877 44.8184L51.0107 48.5127L38.2109 41.125V25.8232H42.2109V38.751Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.2657050349528538e-15,"m01":-53.33300781250,"m02":67.36816406250,"m10":53.35253906250,"m11":3.2669010454743769e-15,"m12":12.63183593750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-1079.39" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M24.4287 65.9844H21.3379V62.8926H24.4287V65.9844ZM40.7021 12.6318C55.3686 12.632 67.3682 24.5042 67.3682 39.0146C67.3681 53.5251 55.3686 65.3972 40.7021 65.3975C37.7492 65.3975 34.9038 64.9165 32.2432 64.0293C33.0544 62.4894 33.5465 60.7582 33.6338 58.9229C35.8482 59.6982 38.2281 60.1211 40.7021 60.1211C52.4353 60.1209 62.0351 50.6229 62.0352 39.0146C62.0352 27.4063 52.4353 17.9084 40.7021 17.9082C28.9688 17.9082 19.3682 27.4062 19.3682 39.0146C19.3682 41.4622 19.7955 43.8161 20.5791 46.0068C18.7241 46.0932 16.9745 46.5802 15.418 47.3828C14.5213 44.7506 14.0352 41.9361 14.0352 39.0146C14.0352 24.504 26.0355 12.6318 40.7021 12.6318ZM27.5205 58.2549H24.4287V61.3467H21.3379V56.71H24.4287V53.6182H21.3379V55.1641H18.2461V50.5264H27.5205V58.2549ZM42.2109 38.751L52.877 44.8184L51.0107 48.5127L38.2109 41.125V25.8232H42.2109V38.751Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 8.3 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.99836 20.9821L8.97225 21.05H9.04503H19C20.1276 21.05 21.05 20.1276 21.05 19V5C21.05 3.87239 20.1276 2.95 19 2.95H5C3.87239 2.95 2.95 3.87239 2.95 5V14.9548V15.0276L3.01794 15.0015C3.53301 14.8035 4.09249 14.695 4.67743 14.695C4.92834 14.695 5.17456 14.715 5.41459 14.7534L5.49493 14.7663L5.47011 14.6888C5.19663 13.8352 5.05 12.9257 5.05 12C5.05 9.72486 5.93561 7.54906 7.4113 6.05952L8.91048 6.71541C7.63308 7.9327 6.95 9.92055 6.95 12C6.95 13.4793 7.29558 14.9112 7.9541 16.0526L7.95261 16.0534L7.96192 16.0628C8.27143 16.3747 8.5368 16.7303 8.74795 17.1197L8.74632 17.1206L8.75583 17.1305C8.80637 17.1831 8.85792 17.2345 8.91048 17.2846L8.89402 17.2918L8.84699 17.3124L8.8688 17.3588C9.14852 17.9549 9.30486 18.6203 9.30486 19.3224C9.30486 19.9074 9.19633 20.467 8.99836 20.9821ZM11.9464 12.9814L11.9121 12.8956L11.859 12.9713L10.474 14.95H9.09936L11.3402 11.9298L11.3576 11.9063L11.3456 11.8795L10.0772 9.05H11.2661L12.0536 11.0186L12.0879 11.1044L12.141 11.0287L13.526 9.05H14.9013L12.7597 11.9704L12.7427 11.9936L12.7541 12.0199L14.0238 14.95H12.7339L11.9464 12.9814ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2575 5.50576 18.5363 5.2527 18.7051C5.25263 18.7052 5.25255 18.7052 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65ZM18.95 12C18.95 14.2751 18.0644 16.4509 16.5887 17.9405L15.0867 17.2834C16.3648 15.974 17.05 14.083 17.05 12C17.05 9.92055 16.3669 7.9327 15.0895 6.71541L16.5887 6.05952C18.0644 7.54906 18.95 9.72486 18.95 12Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-1184 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0252729 -0.0224556 0 40.7017 42.1147)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M25.832 67.3877H22.7412V64.2959H25.832V67.3877ZM28.9238 59.6582H25.832V62.75H22.7412V58.1133H25.832V55.0215H22.7412V56.5674H19.6494V51.9297H28.9238V59.6582ZM58.167 16.8418C60.9114 16.8418 63.1571 19.0876 63.1572 21.832V56.7627C63.1572 59.5072 60.9115 61.7529 58.167 61.7529H33.2939C34.041 60.2496 34.4639 58.5563 34.4639 56.7637C34.4638 53.0579 32.6678 49.7723 29.8994 47.7275C28.8002 45.2183 28.2266 42.2989 28.2266 39.2979C28.2266 34.0583 29.9733 29.0672 33.2168 26.0732L29.2246 24.3271C25.4822 28.0697 23.2364 33.5594 23.2363 39.2979C23.2364 41.4518 23.5533 43.5707 24.1465 45.5752C23.8462 45.5511 23.5428 45.5361 23.2363 45.5361C21.4434 45.5361 19.7496 45.9587 18.2461 46.7061V21.832C18.2463 19.0877 20.492 16.842 23.2363 16.8418H58.167ZM48.1875 26.0732C51.431 29.0672 53.1777 34.0583 53.1777 39.2979C53.1776 44.5372 51.4309 49.278 48.1875 52.5215L52.1797 54.2676C55.9219 50.5251 58.1669 45.0361 58.167 39.2979C58.1669 33.5595 55.9221 28.0697 52.1797 24.3271L48.1875 26.0732ZM38.9551 39.0479L33.2168 46.7822H36.96L40.4521 41.792L42.4482 46.7822H45.9414L42.6982 39.2979L48.1875 31.8125H44.4443L40.9512 36.8027L38.9551 31.8125H35.7119L38.9551 39.0479Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.7500138007307802e-15,"m01":-44.91113281250,"m02":63.15722656250,"m10":50.54589843750,"m11":3.0950437779488733e-15,"m12":16.8417968750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-1191.39" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M25.832 67.3877H22.7412V64.2959H25.832V67.3877ZM28.9238 59.6582H25.832V62.75H22.7412V58.1133H25.832V55.0215H22.7412V56.5674H19.6494V51.9297H28.9238V59.6582ZM58.167 16.8418C60.9114 16.8418 63.1571 19.0876 63.1572 21.832V56.7627C63.1572 59.5072 60.9115 61.7529 58.167 61.7529H33.2939C34.041 60.2496 34.4639 58.5563 34.4639 56.7637C34.4638 53.0579 32.6678 49.7723 29.8994 47.7275C28.8002 45.2183 28.2266 42.2989 28.2266 39.2979C28.2266 34.0583 29.9733 29.0672 33.2168 26.0732L29.2246 24.3271C25.4822 28.0697 23.2364 33.5594 23.2363 39.2979C23.2364 41.4518 23.5533 43.5707 24.1465 45.5752C23.8462 45.5511 23.5428 45.5361 23.2363 45.5361C21.4434 45.5361 19.7496 45.9587 18.2461 46.7061V21.832C18.2463 19.0877 20.492 16.842 23.2363 16.8418H58.167ZM48.1875 26.0732C51.431 29.0672 53.1777 34.0583 53.1777 39.2979C53.1776 44.5372 51.4309 49.278 48.1875 52.5215L52.1797 54.2676C55.9219 50.5251 58.1669 45.0361 58.167 39.2979C58.1669 33.5595 55.9221 28.0697 52.1797 24.3271L48.1875 26.0732ZM38.9551 39.0479L33.2168 46.7822H36.96L40.4521 41.792L42.4482 46.7822H45.9414L42.6982 39.2979L48.1875 31.8125H44.4443L40.9512 36.8027L38.9551 31.8125H35.7119L38.9551 39.0479Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 9.0 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19 2.95H18.05V1V0.95H18H16H15.95V1V2.95H8.05V1V0.95H8H6H5.95V1V2.95H5C3.87239 2.95 2.95 3.87239 2.95 5V14.9548V15.0276L3.01794 15.0015C3.53301 14.8035 4.09249 14.695 4.67743 14.695C4.78472 14.695 4.89115 14.6987 4.9966 14.7059L5.05 14.7095V14.656V8.05H18.95V18.95H9.34392H9.2904L9.29403 19.0034C9.30121 19.1088 9.30486 19.2152 9.30486 19.3224C9.30486 19.9074 9.19633 20.467 8.99836 20.9821L8.97225 21.05H9.04503H19C20.1376 21.05 21.05 20.1376 21.05 19V5C21.05 3.87255 20.1378 2.95 19 2.95ZM6.95 15.2615V15.2905L6.97514 15.3049C7.69013 15.7147 8.2853 16.3099 8.69509 17.0249L8.70949 17.05H8.73847H9H9.05V17V10V9.95H9H7H6.95V10V15.2615ZM17.05 10V9.95H17H15H14.95V10V17V17.05H15H17H17.05V17V10ZM5.06992 21.7196V21.6696H5.01992H3.99248H3.94248V21.7196V22.7471V22.7971H3.99248H5.01992H5.06992V22.7471V21.7196ZM3.65 18.3448H3.7V18.2948V17.9523C3.7 17.6931 3.80298 17.4445 3.98629 17.2612C4.16959 17.0779 4.41821 16.9749 4.67744 16.9749C4.93667 16.9749 5.18529 17.0779 5.3686 17.2612C5.5519 17.4445 5.65488 17.6931 5.65488 17.9523C5.65488 18.2576 5.50569 18.5365 5.25253 18.7053C5.25251 18.7053 5.25249 18.7053 5.25247 18.7053L5.05417 18.8352L5.05413 18.8352C4.36192 19.2897 3.94248 20.0657 3.94248 20.8977V21.0347V21.0847H3.99248H5.01992H5.06992V21.0347V20.8977C5.06992 20.443 5.29346 20.0402 5.67101 19.7748L5.87548 19.6453L5.87549 19.6454L5.87658 19.6446C6.43125 19.2725 6.78232 18.6338 6.78232 17.9523C6.78232 17.3941 6.56056 16.8587 6.16582 16.464C5.77108 16.0692 5.23569 15.8475 4.67744 15.8475C4.11919 15.8475 3.58381 16.0692 3.18906 16.464C2.79432 16.8587 2.57256 17.3941 2.57256 17.9523V18.2948V18.3448H2.62256H3.65Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-400 -606)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0280698 -0.0233696 0 41.1919 40.7017)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M25.2627 68.7715H22.4561V65.9648H25.2627V68.7715ZM28.0703 61.7539H25.2627V64.5615H22.4561V60.3506H25.2627V57.5439H22.4561V58.9473H19.6494V54.7373H28.0703V61.7539ZM30.8057 17.7949H51.5781V12.6318H56.7715V17.7949H59.3682C62.2504 17.795 64.5615 20.1184 64.5615 22.958V59.0986C64.5615 61.9641 62.2504 64.2617 59.3682 64.2617H33.5186C34.0382 62.9176 34.3232 61.4577 34.3232 59.9316C34.3232 59.6518 34.3138 59.3737 34.2949 59.0986H59.3682V30.7021H23.0156V47.8848C22.7389 47.866 22.4593 47.8564 22.1777 47.8564C20.6427 47.8564 19.1743 48.1397 17.8223 48.6562V22.958C17.8223 20.1183 20.1593 17.7949 23.0156 17.7949H25.6123V12.6318H30.8057V17.7949ZM33.4014 53.9355H32.7227C31.6472 52.0701 30.0853 50.5175 28.209 49.4482V35.8652H33.4014V53.9355ZM54.1748 53.9355H48.9814V35.8652H54.1748V53.9355Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.8619542869081195e-15,"m01":-46.73925781250,"m02":64.56152343750,"m10":56.13964843750,"m11":3.4375620907201206e-15,"m12":12.63183593750},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-407.393" y="-613.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M25.2627 68.7715H22.4561V65.9648H25.2627V68.7715ZM28.0703 61.7539H25.2627V64.5615H22.4561V60.3506H25.2627V57.5439H22.4561V58.9473H19.6494V54.7373H28.0703V61.7539ZM30.8057 17.7949H51.5781V12.6318H56.7715V17.7949H59.3682C62.2504 17.795 64.5615 20.1184 64.5615 22.958V59.0986C64.5615 61.9641 62.2504 64.2617 59.3682 64.2617H33.5186C34.0382 62.9176 34.3232 61.4577 34.3232 59.9316C34.3232 59.6518 34.3138 59.3737 34.2949 59.0986H59.3682V30.7021H23.0156V47.8848C22.7389 47.866 22.4593 47.8564 22.1777 47.8564C20.6427 47.8564 19.1743 48.1397 17.8223 48.6562V22.958C17.8223 20.1183 20.1593 17.7949 23.0156 17.7949H25.6123V12.6318H30.8057V17.7949ZM33.4014 53.9355H32.7227C31.6472 52.0701 30.0853 50.5175 28.209 49.4482V35.8652H33.4014V53.9355ZM54.1748 53.9355H48.9814V35.8652H54.1748V53.9355Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 8.2 KiB |
@@ -1,7 +1,43 @@
|
||||
<svg width="81" height="80" viewBox="0 0 81 80" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.4367 13.2937C15.9061 11.8722 17.709 11.4243 19.1061 11.5108H22.1744C23.6741 11.5108 24.8899 12.7265 24.8899 14.2263C24.8899 15.726 23.6741 16.9418 22.1744 16.9418H18.885L18.7632 16.9312C18.7495 16.9317 18.6815 16.9339 18.583 16.9664C18.4757 17.0018 18.3459 17.0684 18.2128 17.1972C17.988 17.4146 17.431 18.1358 17.431 20.1419V59.8581C17.431 61.8641 17.988 62.5853 18.2128 62.8028C18.3459 62.9316 18.4757 62.9982 18.583 63.0335C18.6815 63.066 18.7495 63.0683 18.7632 63.0687L18.885 63.0582H22.1744C23.6741 63.0582 24.8899 64.274 24.8899 65.7737C24.8899 67.2734 23.6741 68.4892 22.1744 68.4892H19.1061C17.709 68.5756 15.9061 68.1277 14.4367 66.7063C12.8735 65.1941 12 62.8932 12 59.8581V20.1419C12 17.1068 12.8735 14.8059 14.4367 13.2937Z" />
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M66.5633 13.2937C65.0939 11.8722 63.291 11.4243 61.8939 11.5108H58.8256C57.3259 11.5108 56.1101 12.7265 56.1101 14.2263C56.1101 15.726 57.3259 16.9418 58.8256 16.9418H62.115L62.2368 16.9312C62.2505 16.9317 62.3185 16.9339 62.417 16.9664C62.5243 17.0018 62.6541 17.0684 62.7872 17.1972C63.012 17.4146 63.569 18.1358 63.569 20.1419V59.8581C63.569 61.8641 63.012 62.5853 62.7872 62.8028C62.6541 62.9316 62.5243 62.9982 62.417 63.0335C62.3185 63.066 62.2505 63.0683 62.2368 63.0687L62.115 63.0582H58.8256C57.3259 63.0582 56.1101 64.274 56.1101 65.7737C56.1101 67.2734 57.3259 68.4892 58.8256 68.4892H61.8939C63.291 68.5756 65.0939 68.1277 66.5633 66.7063C68.1265 65.1941 69 62.8932 69 59.8581V20.1419C69 17.1068 68.1265 14.8059 66.5633 13.2937Z" />
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3952 29.0209C23.3952 27.5211 24.611 26.3054 26.1107 26.3054H55.2862C56.786 26.3054 58.0017 27.5211 58.0017 29.0209C58.0017 30.5206 56.786 31.7364 55.2862 31.7364H26.1107C24.611 31.7364 23.3952 30.5206 23.3952 29.0209Z" />
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3952 40.5151C23.3952 39.0154 24.611 37.7996 26.1107 37.7996H44.9042C46.4039 37.7996 47.6197 39.0154 47.6197 40.5151C47.6197 42.0149 46.4039 43.2306 44.9042 43.2306H26.1107C24.611 43.2306 23.3952 42.0149 23.3952 40.5151Z" />
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3952 52.133C23.3952 50.6333 24.611 49.4175 26.1107 49.4175H51.8255C53.3253 49.4175 54.541 50.6333 54.541 52.133C54.541 53.6328 53.3253 54.8485 51.8255 54.8485H26.1107C24.611 54.8485 23.3952 53.6328 23.3952 52.133Z" />
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-512 -606)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0217544 -0.0203506 0 41.4033 41.4038)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M57.0762 63.1582H52.3975V58.3857H57.0762V63.1582ZM44.9121 58.9473H21.0527V53.333H44.9121V58.9473ZM61.7539 51.2285H57.0762V56H52.3975V48.8418H57.0762V44.0703H52.3975V46.4561H47.7197V39.2979H61.7539V51.2285ZM44.9121 47.7197H21.0527V42.1055H44.9121V47.7197ZM61.7539 36.4912H21.0527V30.877H61.7539V36.4912ZM61.7539 25.2627H21.0527V19.6494H61.7539V25.2627Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.4922280053216433e-15,"m01":-40.7011718750,"m02":61.753906250,"m10":43.50878906250,"m11":2.6641449886699283e-15,"m12":19.64941406250},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-519.393" y="-613.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M57.0762 63.1582H52.3975V58.3857H57.0762V63.1582ZM44.9121 58.9473H21.0527V53.333H44.9121V58.9473ZM61.7539 51.2285H57.0762V56H52.3975V48.8418H57.0762V44.0703H52.3975V46.4561H47.7197V39.2979H61.7539V51.2285ZM44.9121 47.7197H21.0527V42.1055H44.9121V47.7197ZM61.7539 36.4912H21.0527V30.877H61.7539V36.4912ZM61.7539 25.2627H21.0527V19.6494H61.7539V25.2627Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 7.4 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22 21H2V3H4V19H6V10H10V19H12V6H16V19H18V14H22V21Z" fill="white"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-1520 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0224561 -0.0252632 0 40.7016 40.7018)"><foreignObject x="-1044.53" y="-1044.53" width="2089.06" height="2089.06"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M65.9648 63.1579H15.4385V18.2456H20.4911V58.1676H25.5437V35.7115H35.649V58.1676H40.7016V25.731H50.8069V58.1676H55.8595V45.692H65.9648V63.1579Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.0938448028120348e-15,"m01":-50.526317596435547,"m02":65.964797973632812,"m10":44.912281036376953,"m11":2.7500841044654023e-15,"m12":18.245613098144531},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-1527.39" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M65.9648 63.1579H15.4385V18.2456H20.4911V58.1676H25.5437V35.7115H35.649V58.1676H40.7016V25.731H50.8069V58.1676H55.8595V45.692H65.9648V63.1579Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 179 B After Width: | Height: | Size: 7.0 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 5H20V7H4V5ZM4 9H20V11H4V9ZM4 13H20V15H4V13ZM4 17H14V19H4V17Z" fill="white"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-1632 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0151582 -0.0252632 0 40.7017 40.4209)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M62.3271 25.2627C64.3228 25.2628 65.9648 26.8548 65.9648 28.8252V52.0166C65.9648 53.987 64.3228 55.579 62.3271 55.5791H19.0762C17.0805 55.579 15.4385 53.9871 15.4385 52.0166V28.8252C15.4385 26.8548 17.0805 25.2628 19.0762 25.2627H62.3271ZM50.4277 40.4209H45.5518L52.8535 48.707L60.1289 40.4209H55.2783V32.3623H50.4277V40.4209ZM22.7393 48.4805H27.5898V39.2334L32.4404 45.1709L37.291 39.2334V48.4805H42.167V32.3623H37.291L32.4404 38.2988L27.5898 32.3623H22.7393V48.4805Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.0938477674273502e-15,"m01":-50.52636718750,"m02":65.964843750,"m10":30.316406250,"m11":1.8563444899500790e-15,"m12":25.26269531250},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-1639.39" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M62.3271 25.2627C64.3228 25.2628 65.9648 26.8548 65.9648 28.8252V52.0166C65.9648 53.987 64.3228 55.579 62.3271 55.5791H19.0762C17.0805 55.579 15.4385 53.9871 15.4385 52.0166V28.8252C15.4385 26.8548 17.0805 25.2628 19.0762 25.2627H62.3271ZM50.4277 40.4209H45.5518L52.8535 48.707L60.1289 40.4209H55.2783V32.3623H50.4277V40.4209ZM22.7393 48.4805H27.5898V39.2334L32.4404 45.1709L37.291 39.2334V48.4805H42.167V32.3623H37.291L32.4404 38.2988L27.5898 32.3623H22.7393V48.4805Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 7.6 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.18 19.6L14.17 16.12C15.15 15.4 15.83 14.28 15.97 13H20C19.83 15.76 18.35 18.16 16.18 19.6ZM13 7.03V3C17.3 3.26 20.74 6.7 21 11H16.97C16.74 8.91 15.09 7.26 13 7.03ZM7 12.5C7 13.14 7.13 13.75 7.38 14.3L3.9 16.31C3.32 15.16 3 13.87 3 12.5C3 7.97 6.54 4.27 11 4V8.03C8.75 8.28 7 10.18 7 12.5ZM11.5 21C8.53 21 5.92 19.5 4.4 17.18L7.88 15.17C8.7 16.28 10 17 11.5 17C12.14 17 12.75 16.87 13.3 16.62L15.31 20.1C14.16 20.68 12.87 21 11.5 21Z" fill="white"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-1744 -326)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.025731 -0.025731 0 40.7017 40.7018)"><foreignObject x="-1038.86" y="-1038.86" width="2077.73" height="2077.73"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M38.1286 14.9708V66.4328C25.0058 65.1462 14.9707 54.0819 14.9707 40.7018C14.9707 27.3216 25.0058 16.2573 38.1286 14.9708ZM43.2748 14.9708V38.1287H66.4327C65.1461 25.7778 55.6257 16.2573 43.2748 14.9708ZM43.2748 43.2749V66.4328C55.3684 65.1462 65.1461 55.6257 66.4327 43.2749H43.2748Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.1511383231225525e-15,"m01":-51.461990356445312,"m02":66.432693481445312,"m10":51.461990356445312,"m11":3.1511383231225525e-15,"m12":14.970760345458984},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-1751.39" y="-333.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M38.1286 14.9708V66.4328C25.0058 65.1462 14.9707 54.0819 14.9707 40.7018C14.9707 27.3216 25.0058 16.2573 38.1286 14.9708ZM43.2748 14.9708V38.1287H66.4327C65.1461 25.7778 55.6257 16.2573 43.2748 14.9708ZM43.2748 43.2749V66.4328C55.3684 65.1462 65.1461 55.6257 66.4327 43.2749H43.2748Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 565 B After Width: | Height: | Size: 7.3 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5 4H19C19.5304 4 20.0391 4.21071 20.4142 4.58579C20.7893 4.96086 21 5.46957 21 6V18C21 18.5304 20.7893 19.0391 20.4142 19.4142C20.0391 19.7893 19.5304 20 19 20H5C4.46957 20 3.96086 19.7893 3.58579 19.4142C3.21071 19.0391 3 18.5304 3 18V6C3 5.46957 3.21071 4.96086 3.58579 4.58579C3.96086 4.21071 4.46957 4 5 4ZM5 8V12H11V8H5ZM13 8V12H19V8H13ZM5 14V18H11V14H5ZM13 14V18H19V14H13Z" fill="white"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-1296 -466)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0224561 -0.0252632 0 40.7016 39.2982)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60.3506 16.8421C61.8395 16.8421 63.2675 17.4338 64.3203 18.4866C65.3731 19.5395 65.9648 20.9674 65.9648 22.4564V56.14C65.9648 57.6288 65.3731 59.0569 64.3203 60.1097C63.2675 61.1625 61.8395 61.7542 60.3506 61.7542H21.0527C19.5638 61.7542 18.1358 61.1625 17.083 60.1097C16.0302 59.0569 15.4385 57.6288 15.4385 56.14V22.4564C15.4385 20.9674 16.0302 19.5395 17.083 18.4866C18.1358 17.4338 19.5638 16.8421 21.0527 16.8421H60.3506ZM21.0527 56.14H37.8945V44.9124H21.0527V56.14ZM43.5088 56.14H60.3506V44.9124H43.5088V56.14ZM21.0527 39.2982H37.8945V28.0706H21.0527V39.2982ZM43.5088 39.2982H60.3506V28.0706H43.5088V39.2982Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.0938448028120348e-15,"m01":-50.526317596435547,"m02":65.964797973632812,"m10":44.912281036376953,"m11":2.7500841044654023e-15,"m12":16.842102050781250},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-1303.39" y="-473.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M60.3506 16.8421C61.8395 16.8421 63.2675 17.4338 64.3203 18.4866C65.3731 19.5395 65.9648 20.9674 65.9648 22.4564V56.14C65.9648 57.6288 65.3731 59.0569 64.3203 60.1097C63.2675 61.1625 61.8395 61.7542 60.3506 61.7542H21.0527C19.5638 61.7542 18.1358 61.1625 17.083 60.1097C16.0302 59.0569 15.4385 57.6288 15.4385 56.14V22.4564C15.4385 20.9674 16.0302 19.5395 17.083 18.4866C18.1358 17.4338 19.5638 16.8421 21.0527 16.8421H60.3506ZM21.0527 56.14H37.8945V44.9124H21.0527V56.14ZM43.5088 56.14H60.3506V44.9124H43.5088V56.14ZM21.0527 39.2982H37.8945V28.0706H21.0527V39.2982ZM43.5088 39.2982H60.3506V28.0706H43.5088V39.2982Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 7.9 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16 11.78L20.24 4.45L21.97 5.45L16.74 14.5L10.23 10.75L5.46 19H22V21H2V3H4V17.54L9.5 8L16 11.78Z" fill="white"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-1408 -466)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0255 -0.026 0 39 41.5)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M36 67H13V44H36V67ZM65 66H42V35H65V66ZM15 39H37V41H13V16H15V39ZM36.4102 20.8965L25.5537 33.4678L23.0312 30.9453L17.5615 36.9131L16.0869 35.5615L22.9688 28.0547L25.4463 30.5322L34.8965 19.5898L36.4102 20.8965ZM65 32H42V16H65V32Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.1840817637818772e-15,"m01":-52.0,"m02":65.0,"m10":51.0,"m11":3.1228495402666270e-15,"m12":16.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-1415.39" y="-473.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M36 67H13V44H36V67ZM65 66H42V35H65V66ZM15 39H37V41H13V16H15V39ZM36.4102 20.8965L25.5537 33.4678L23.0312 30.9453L17.5615 36.9131L16.0869 35.5615L22.9688 28.0547L25.4463 30.5322L34.8965 19.5898L36.4102 20.8965ZM65 32H42V16H65V32Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 225 B After Width: | Height: | Size: 7.1 KiB |
@@ -1,11 +1,43 @@
|
||||
<svg width="512" height="512" viewBox="0 0 512 512" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1765_9330)">
|
||||
<path d="M244.592 215.915C251.569 208.938 262.881 208.938 269.858 215.915L298.537 244.595C305.514 251.572 305.514 262.883 298.537 269.86L269.858 298.54C262.881 305.517 251.569 305.517 244.592 298.54L215.913 269.86C208.936 262.883 208.936 251.572 215.913 244.595L244.592 215.915Z" />
|
||||
<path d="M376.685 215.687C383.537 208.835 394.646 208.835 401.498 215.687L430.63 244.818C437.482 251.67 437.482 262.78 430.63 269.632L401.498 298.763C394.646 305.615 383.537 305.615 376.685 298.763L347.553 269.632C340.701 262.78 340.701 251.67 347.553 244.818L376.685 215.687Z" />
|
||||
<path d="M244.818 83.8243C251.671 76.9722 262.78 76.9722 269.632 83.8243L298.763 112.956C305.616 119.808 305.616 130.917 298.763 137.769L269.632 166.901C262.78 173.753 251.671 173.753 244.818 166.901L215.687 137.769C208.835 130.917 208.835 119.808 215.687 112.956L244.818 83.8243Z" />
|
||||
<path d="M232.611 178.663C239.588 185.64 239.588 196.951 232.611 203.928L203.931 232.608C196.955 239.585 185.643 239.585 178.666 232.608L149.986 203.928C143.01 196.952 143.01 185.64 149.986 178.663L178.666 149.983C185.643 143.006 196.955 143.006 203.931 149.983L232.611 178.663Z" />
|
||||
<path d="M166.901 244.818C173.753 251.67 173.753 262.78 166.901 269.632L137.77 298.763C130.918 305.615 119.808 305.615 112.956 298.763L83.8246 269.632C76.9725 262.78 76.9725 251.67 83.8246 244.818L112.956 215.687C119.808 208.835 130.918 208.835 137.77 215.687L166.901 244.818Z" />
|
||||
<path d="M364.472 178.663C371.449 185.64 371.449 196.951 364.472 203.928L335.793 232.608C328.816 239.585 317.504 239.585 310.527 232.608L281.848 203.928C274.871 196.952 274.871 185.64 281.848 178.663L310.527 149.983C317.504 143.006 328.816 143.006 335.793 149.983L364.472 178.663Z" />
|
||||
<path d="M285.45 367.015C301.037 382.602 301.037 407.873 285.45 423.46C269.863 439.047 244.591 439.047 229.004 423.46C213.417 407.873 213.417 382.602 229.004 367.015C244.591 351.428 269.863 351.428 285.45 367.015Z" />
|
||||
</g>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-1520 -466)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0255 -0.026 0 39 41.5)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M15 65H37V67H13V42H15V65ZM65 67H42V46H65V67ZM22 63H17V56H22V63ZM29 63H24V49H29V63ZM36 63H31V48H36V63ZM22 55H17V53H22V55ZM22 52H17V44H22V52ZM65 43H42V16H65V43ZM36 37H13V16H36V37Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.1840817637818772e-15,"m01":-52.0,"m02":65.0,"m10":51.0,"m11":3.1228495402666270e-15,"m12":16.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-1527.39" y="-473.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M15 65H37V67H13V42H15V65ZM65 67H42V46H65V67ZM22 63H17V56H22V63ZM29 63H24V49H29V63ZM36 63H31V48H36V63ZM22 55H17V53H22V55ZM22 52H17V44H22V52ZM65 43H42V16H65V43ZM36 37H13V16H36V37Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 7.0 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11 15H6L13 1V9H18L11 23V15Z" fill="white"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-1632 -466)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0255 -0.026 0 39 41.5)"><foreignObject x="-1000" y="-1000" width="2000" height="2000"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M36 67H13V50H36V67ZM55.5 46.6367H63L52.5 67V55.3633H45L55.5 35V46.6367ZM49.8604 52.4541H55.5V54.6797L58.1396 49.5459H52.5V47.3203L49.8604 52.4541ZM36 44H13V16H36V44ZM65 32H42V16H65V32Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":3.1840817637818772e-15,"m01":-52.0,"m02":65.0,"m10":51.0,"m11":3.1228495402666270e-15,"m12":16.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-1639.39" y="-473.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M36 67H13V50H36V67ZM55.5 46.6367H63L52.5 67V55.3633H45L55.5 35V46.6367ZM49.8604 52.4541H55.5V54.6797L58.1396 49.5459H52.5V47.3203L49.8604 52.4541ZM36 44H13V16H36V44ZM65 32H42V16H65V32Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 157 B After Width: | Height: | Size: 7.0 KiB |
@@ -1,3 +1,43 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18 7C16.9 7 16 7.9 16 9V15C16 16.1 16.9 17 18 17H20C21.1 17 22 16.1 22 15V11H20V15H18V9H22V7H18ZM2 7V17H8V15H4V7H2ZM11 7C9.9 7 9 7.9 9 9V15C9 16.1 9.9 17 11 17H13C14.1 17 15 16.1 15 15V9C15 7.9 14.1 7 13 7H11ZM11 9H13V15H11V9Z" fill="white"/>
|
||||
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="80" height="80" fill="#F2F2F2"/>
|
||||
<g filter="url(#filter0_ii_0_1)">
|
||||
<rect width="1936" height="1336" transform="translate(-64 -606)" fill="white"/>
|
||||
<g filter="url(#filter1_i_0_1)">
|
||||
<path d="M0 20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80H20C8.95431 80 0 71.0457 0 60V20Z" fill="url(#paint0_linear_0_1)"/>
|
||||
</g>
|
||||
<g clip-path="url(#paint1_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.0245614 -0.0196491 0 40.7019 40)"><foreignObject x="-1050.89" y="-1050.89" width="2101.79" height="2101.79"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(144, 65, 255, 1) 0deg,rgba(239, 206, 255, 1) 223.269deg,rgba(241, 211, 255, 1) 299.423deg,rgba(144, 65, 255, 1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M25.965 15.4386C24.6622 15.4386 23.4127 15.9561 22.4915 16.8774C21.5703 17.7986 21.0527 19.0481 21.0527 20.3509V59.6491C21.0527 60.9519 21.5703 62.2014 22.4915 63.1226C23.4127 64.0439 24.6622 64.5614 25.965 64.5614H55.4387C56.7415 64.5614 57.991 64.0439 58.9122 63.1226C59.8334 62.2014 60.351 60.9519 60.351 59.6491V30.1754L45.6141 15.4386H25.965ZM25.965 20.3509H43.158V32.6316H55.4387V59.6491H25.965V20.3509ZM30.8773 40V44.9123H50.5264V40H30.8773ZM30.8773 49.8246V54.7368H43.158V49.8246H30.8773Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"stopsVar":[{"color":{"r":0.56707918643951416,"g":0.25785005092620850,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94001245498657227,"g":0.81056565046310425,"b":1.0,"a":1.0},"position":0.62019228935241699},{"color":{"r":0.94596540927886963,"g":0.82936447858810425,"b":1.0,"a":1.0},"position":0.83173078298568726}],"transform":{"m00":2.4063236178770066e-15,"m01":-39.298244476318359,"m02":60.350978851318359,"m10":49.122806549072266,"m11":3.0079044164671399e-15,"m12":15.43859863281250},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
<g clip-path="url(#paint2_angular_0_1_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0 0.04 -0.04 0 40 40)"><foreignObject x="-1025" y="-1025" width="2050" height="2050"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(181, 231, 255, 1) 0deg,rgba(241, 117, 255, 1) 72.6923deg,rgba(241, 117, 255, 0.1) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"stopsVar":[{"color":{"r":0.71089994907379150,"g":0.90845167636871338,"b":1.0,"a":1.0},"position":0.0},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":1.0},"position":0.20192307233810425},{"color":{"r":0.94509804248809814,"g":0.45882353186607361,"b":1.0,"a":0.10000000149011612},"position":1.0}],"transform":{"m00":4.8985871985824346e-15,"m01":-80.0,"m02":80.0,"m10":80.0,"m11":4.8985871985824346e-15,"m12":0.0},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_ii_0_1" x="-71.3934" y="-613.393" width="1950.79" height="1350.79" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dx="-3.6967" dy="3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
<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"/>
|
||||
<feOffset dx="3.6967" dy="-3.6967"/>
|
||||
<feGaussianBlur stdDeviation="1.84835"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.402353 0 0 0 0 0.616941 0 0 0 0 0.557333 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="effect1_innerShadow_0_1" result="effect2_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_0_1" x="0" y="0" width="80" height="82" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<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"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="1"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.75 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_0_1"/>
|
||||
</filter>
|
||||
<clipPath id="paint1_angular_0_1_clip_path"><path d="M25.965 15.4386C24.6622 15.4386 23.4127 15.9561 22.4915 16.8774C21.5703 17.7986 21.0527 19.0481 21.0527 20.3509V59.6491C21.0527 60.9519 21.5703 62.2014 22.4915 63.1226C23.4127 64.0439 24.6622 64.5614 25.965 64.5614H55.4387C56.7415 64.5614 57.991 64.0439 58.9122 63.1226C59.8334 62.2014 60.351 60.9519 60.351 59.6491V30.1754L45.6141 15.4386H25.965ZM25.965 20.3509H43.158V32.6316H55.4387V59.6491H25.965V20.3509ZM30.8773 40V44.9123H50.5264V40H30.8773ZM30.8773 49.8246V54.7368H43.158V49.8246H30.8773Z"/></clipPath><clipPath id="paint2_angular_0_1_clip_path"><path d="M60 76.6667V80H20V76.6667H60ZM76.6667 60V20C76.6667 10.7953 69.2047 3.33333 60 3.33333H20C10.7953 3.33333 3.33333 10.7953 3.33333 20V60C3.33333 69.2047 10.7953 76.6667 20 76.6667V80C8.95431 80 0 71.0457 0 60V20C0 8.95431 8.95431 0 20 0H60C71.0457 0 80 8.95431 80 20V60C80 71.0457 71.0457 80 60 80V76.6667C69.2047 76.6667 76.6667 69.2047 76.6667 60Z"/></clipPath><linearGradient id="paint0_linear_0_1" x1="73.3333" y1="68.3333" x2="11.6667" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#01000B"/>
|
||||
<stop offset="1" stop-color="#520188"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 356 B After Width: | Height: | Size: 7.7 KiB |