feat(studio): give replication destinations a brand mark (#50251)

## What kind of change does this PR introduce?

Studio UI polish. This is the first PR in the Pipelines review stack and
targets `master`. Resolves DEPR-674.

## What is the current behaviour?

Replication destinations use generic line icons across the destination
picker, pipelines list, and replication diagram. The existing shared
ClickHouse and Snowflake assets also use older artwork.

## What is the new behaviour?

Adds a reusable `DestinationLogo` treatment and uses it consistently
across Replication surfaces. BigQuery, ClickHouse, DuckLake, and
Snowflake now use their colour brand marks, while destinations without a
dedicated asset retain their existing line icon in the same frame.

The refreshed ClickHouse and Snowflake artwork replaces the canonical
shared assets, so existing consumers such as the Wrappers catalogue
receive the updated marks too.

| Light | Dark |
| --- | --- |
| <img width="572" height="804" alt="CleanShot 2026-09-11 at 16 48
42@2x"
src="https://github.com/user-attachments/assets/5c2eaef3-8714-4c0a-8bcc-7c8618abd677"
/> | <img width="552" height="788" alt="CleanShot 2026-09-11 at 16 47
30@2x"
src="https://github.com/user-attachments/assets/2aff8775-cdc1-4d6b-9f78-7b40d42e102a"
/> |

| Add Pipeline form |
| --- |
| <img width="1252" height="730" alt="CleanShot 2026-09-11 at 16 48
57@2x"
src="https://github.com/user-attachments/assets/025a158c-57ee-495e-8356-00ed1717d09d"
/> |

## To test

1. Open `/project/<ref>/database/replication` and start adding a
pipeline.
2. Confirm the BigQuery, ClickHouse, DuckLake, and Snowflake marks
appear consistently in the destination picker, pipelines list, and
replication diagram.
3. Open the ClickHouse and Snowflake entries in the Wrappers catalogue
and confirm they use the refreshed artwork.
4. Confirm Analytics Bucket retains its existing fallback icon within
the same frame.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Visual Updates**
* Destination logos now display dedicated brand marks for ClickHouse,
DuckLake, Snowflake, and BigQuery.
* Updated replication destination selectors, rows, and diagrams to use
consistent destination logos.
  * Adjusted the destination type column width for improved layout.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
Danny White authored and GitHub committed 2026-09-14 09:31:27 +10:00
1 parent 26585dd4a4
commit ffc76c1e36
9 files changed
+102 -24

No files matched your search

@@ -0,0 +1,61 @@
import { cn, StatusIcon } from 'ui'
import { DestinationIcon } from './DestinationIcon'
import type { DestinationType } from './DestinationPanel/DestinationPanel.types'
import { BASE_PATH } from '@/lib/constants'
// Destinations with a brand mark. Anything absent falls back to the line icon in the same frame,
// so a new destination type never renders an empty square.
const BRAND_MARK_BY_TYPE: Partial<Record<DestinationType, string>> = {
BigQuery: `${BASE_PATH}/img/icons/bigquery-icon.svg`,
ClickHouse: `${BASE_PATH}/img/icons/clickhouse-icon.svg`,
DuckLake: `${BASE_PATH}/img/icons/ducklake-icon.svg`,
Snowflake: `${BASE_PATH}/img/icons/snowflake-icon.svg`,
}
const SIZE_CLASS_NAME = {
small: { frame: 'h-8 w-8 rounded-md', mark: 'h-4 w-4', icon: 16 },
large: { frame: 'h-14 w-14 rounded-lg', mark: 'h-6 w-6', icon: 24 },
} as const
interface DestinationLogoProps {
type: DestinationType
size?: keyof typeof SIZE_CLASS_NAME
className?: string
/** Destructive badge on the bottom-right corner (e.g. table replication errors). */
hasErrors?: boolean
}
/**
* A destination's brand mark in a square app-icon frame, used wherever a destination is the
* subject: the list rows, the pipeline header, and the replication diagram.
*/
export const DestinationLogo = ({
type,
size = 'small',
className,
hasErrors = false,
}: DestinationLogoProps) => {
const sizing = SIZE_CLASS_NAME[size]
const brandMark = BRAND_MARK_BY_TYPE[type]
return (
<span className={cn('relative inline-flex shrink-0', className)}>
<span className={cn('flex items-center justify-center border bg-surface-100', sizing.frame)}>
{brandMark === undefined ? (
<DestinationIcon type={type} size={sizing.icon} className="text-foreground-light" />
) : (
<img src={brandMark} alt="" aria-hidden className={sizing.mark} />
)}
</span>
{hasErrors && (
<span
className="absolute -bottom-1 -right-1 rounded-sm bg-background outline outline-2 outline-background"
aria-hidden
>
<StatusIcon variant="destructive" />
</span>
)}
</span>
)
}
@@ -10,7 +10,7 @@ import {
} from 'ui'
import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout'
import { DestinationIcon } from '../DestinationIcon'
import { DestinationLogo } from '../DestinationLogo'
import { useDestinationInformation } from '../useDestinationInformation'
import {
useIsETLBigQueryPrivateAlpha,
@@ -163,11 +163,7 @@ export const DestinationTypeSelection = () => {
<SelectTrigger className="h-auto py-2">
{selectedOption ? (
<div className="flex items-center gap-x-3 text-left">
<DestinationIcon
type={selectedOption.value}
size={20}
className="shrink-0 text-foreground-light"
/>
<DestinationLogo type={selectedOption.value} />
<span className="text-sm text-foreground">{selectedOption.label}</span>
</div>
) : (
@@ -182,11 +178,7 @@ export const DestinationTypeSelection = () => {
{group.options.map((option) => (
<SelectItem key={option.value} value={option.value} className="py-2">
<div className="flex items-center gap-x-3">
<DestinationIcon
type={option.value}
size={20}
className="shrink-0 text-foreground-light"
/>
<DestinationLogo type={option.value} />
<div className="flex flex-col gap-y-0.5">
<span className="text-foreground">{option.label}</span>
<span className="text-xs text-foreground-lighter">
@@ -15,7 +15,7 @@ import {
import { ShimmeringLoader } from 'ui-patterns/ShimmeringLoader'
import { DeleteDestination } from './DeleteDestination'
import { DestinationIcon } from './DestinationIcon'
import { DestinationLogo } from './DestinationLogo'
import { PipelineStatus } from './PipelineStatus'
import { PipelineStatusName, STATUS_REFRESH_FREQUENCY_MS } from './Replication.constants'
import { getFormattedLagValue } from './ReplicationPipelineStatus/ReplicationPipelineStatus.utils'
@@ -149,11 +149,7 @@ export const DestinationRow = ({ destinationId }: DestinationRowProps) => {
)}
{isPipelineSuccess && (
<TableRow>
<TableCell>
{type ? (
<DestinationIcon type={type} size={18} className="text-foreground-light" />
) : null}
</TableCell>
<TableCell>{type ? <DestinationLogo type={type} /> : null}</TableCell>
<TableCell className="max-w-[180px]">
{isPipelineLoading ? (
@@ -277,7 +277,7 @@ export const Destinations = () => {
<Table>
<TableHeader>
<TableRow>
<TableHead key="type" className="w-[20px]" />
<TableHead key="type" className="w-[40px]" />
<TableHead key="name" className="w-[250px]">
Name
</TableHead>
@@ -4,7 +4,7 @@ import { PropsWithChildren } from 'react'
import { AWS_REGIONS } from 'shared-data'
import { cn, Tooltip, TooltipContent, TooltipTrigger } from 'ui'
import { DestinationIcon } from '../DestinationIcon'
import { DestinationLogo } from '../DestinationLogo'
import { getStatusName } from '../Pipeline.utils'
import { STATUS_REFRESH_FREQUENCY_MS } from '../Replication.constants'
import { getReplicationDestinationType } from './Nodes.utils'
@@ -75,8 +75,7 @@ export const ReplicationNode = ({ id }: { id: string }) => {
const type = getReplicationDestinationType(destination?.config)
return (
<NodeContainer className="justify-start gap-x-3">
{type ? <DestinationIcon type={type} size={20} className="text-foreground-light" /> : null}
<NodeContainer>
<div className="text-sm flex flex-col gap-y-0.5">
<div className="flex items-center">
<p>{type}</p>
@@ -101,6 +100,7 @@ export const ReplicationNode = ({ id }: { id: string }) => {
<p className="text-foreground-light">{destination?.name}</p>
<p className="text-foreground-light">ID: {destination?.id}</p>
</div>
{type ? <DestinationLogo type={type} /> : null}
<Handle type="target" position={Position.Left} className="opacity-25" />
</NodeContainer>
)
@@ -1 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path fill="#4386fa" d="M14.48 58.196.558 34.082a4.163 4.163 0 0 1 0-4.164L14.48 5.805a4.163 4.163 0 0 1 3.6-2.082h27.857c1.48.007 2.845.8 3.585 2.082l13.92 24.113a4.163 4.163 0 0 1 0 4.164L49.52 58.196a4.163 4.163 0 0 1-3.6 2.082H18.07a4.167 4.167 0 0 1-3.593-2.082z"/><path d="M40.697 24.235s3.87 9.283-1.406 14.545-14.883 1.894-14.883 1.894L43.95 60.27h1.984a4.163 4.163 0 0 0 3.6-2.082L58.75 42.23z" opacity=".1"/><path fill="#fff" d="M45.267 43.23 41 38.953a.67.67 0 0 0-.158-.12 11.63 11.63 0 1 0-2.032 2.037.67.67 0 0 0 .113.15l4.277 4.277a.67.67 0 0 0 .947 0l1.12-1.12a.67.67 0 0 0 0-.947zM31.64 40.464a8.75 8.75 0 1 1 8.749-8.749 8.75 8.75 0 0 1-8.749 8.749zm-5.593-9.216v3.616a6.426 6.426 0 0 0 2.338 2.375v-6.013zm4.375-2.998v9.772a6.45 6.45 0 0 0 2.338 0V28.25zm6.764 6.606v-2.142H34.85v4.5a6.43 6.43 0 0 0 2.338-2.368z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#34a853" d="M311.9 418.9c-8.8 0-16-7.2-16-16V257.1c0-8.8 7.2-16 16-16s16 7.2 16 16v145.8c0 8.8-7.2 16-16 16ZM147.6 418.9c-8.8 0-16-7.2-16-16V202.4c0-8.8 7.2-16 16-16s16 7.2 16 16v200.5c0 8.8-7.2 16-16 16Z"/>
<path fill="#34a853" d="M229.8 437.4c-8.8 0-16-7.2-16-16V147.6c0-8.8 7.2-16 16-16s16 7.2 16 16v273.7c0 8.8-7.2 16-16 16Z"/>
<path fill="#fbbc04" d="M229.8 437.4c-114.5 0-207.6-93.1-207.6-207.6h32c0 96.8 78.8 175.6 175.6 175.6s175.6-78.8 175.6-175.6h32c0 114.5-93.1 207.6-207.6 207.6Z"/>
<path fill="#ea4335" d="M437.4 229.8h-32c0-96.8-78.8-175.6-175.6-175.6S54.1 132.9 54.1 229.8h-32c0-114.5 93.2-207.7 207.7-207.7s207.6 93.1 207.6 207.6Z"/>
<path fill="#4285f4" d="m487.4 464.8-100-100c32.3-37.6 49.9-85 49.9-135.1s-21.6-107.6-60.8-146.8l-22.6 22.6c33.2 33.2 51.4 77.3 51.4 124.2s-18.3 90.9-51.5 124.1c-5 5-7.5 7-11.8 10.8l122.8 122.8c3.1 3.1 7.2 4.7 11.3 4.7s8.2-1.6 11.3-4.7c6.2-6.2 6.2-16.4 0-22.6Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 903 B

After

Width:  |  Height:  |  Size: 1006 B

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="Layer_1" x="0" y="0" style="enable-background:new 0 0 96 96" version="1.1" viewBox="0 0 96 96"><style>.st0{fill:#ffb200}</style><path d="M2.6 0h5.5c1.4 0 2.6 1.2 2.6 2.6v90.8c0 1.4-1.2 2.6-2.6 2.6H2.6C1.2 96 0 94.8 0 93.4V2.6C0 1.2 1.2 0 2.6 0z" class="st0"/><path d="M0 85.3h10.7v8.1c0 1.4-1.2 2.6-2.6 2.6H2.6C1.2 96 0 94.8 0 93.4v-8.1z" style="fill:red"/><path d="M23.9 0h5.5C30.8 0 32 1.2 32 2.6v90.8c0 1.4-1.2 2.6-2.6 2.6h-5.5c-1.4 0-2.6-1.2-2.6-2.6V2.6c0-1.4 1.2-2.6 2.6-2.6zM45.3 0h5.5c1.4 0 2.6 1.2 2.6 2.6v90.8c0 1.4-1.2 2.6-2.6 2.6h-5.5c-1.4 0-2.6-1.2-2.6-2.6V2.6c0-1.4 1.1-2.6 2.6-2.6zM66.6 0h5.5c1.4 0 2.6 1.2 2.6 2.6v90.8c0 1.4-1.2 2.6-2.6 2.6h-5.5c-1.4 0-2.6-1.2-2.6-2.6V2.6C64 1.2 65.2 0 66.6 0zM87.9 37.3h5.5c1.4 0 2.6 1.2 2.6 2.6V56c0 1.4-1.2 2.6-2.6 2.6h-5.5c-1.4 0-2.6-1.2-2.6-2.6V39.9c0-1.4 1.2-2.6 2.6-2.6z" class="st0"/></svg>
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="512" height="512" rx="36" fill="#FCFF74"/>
<path d="M90 89.9612C90 87.6505 91.6505 86 93.9612 86H123.67C125.981 86 127.631 87.6505 127.631 89.9612V422.369C127.631 424.68 125.981 426.33 123.67 426.33H93.9612C91.6505 426.33 90 424.68 90 422.369V89.9612ZM165.592 89.9612C165.592 87.6505 167.243 86 169.553 86H199.262C201.573 86 203.223 87.6505 203.223 89.9612V422.369C203.223 424.68 201.573 426.33 199.262 426.33H169.553C167.243 426.33 165.592 424.68 165.592 422.369V89.9612ZM241.184 89.9612C241.184 87.6505 242.835 86 245.146 86H274.854C277.165 86 278.816 87.6505 278.816 89.9612V422.369C278.816 424.68 277.165 426.33 274.854 426.33H245.146C242.835 426.33 241.184 424.68 241.184 422.369V89.9612ZM316.777 89.9612C316.777 87.6505 318.427 86 320.738 86H350.447C352.757 86 354.408 87.6505 354.408 89.9612V422.369C354.408 424.68 352.757 426.33 350.447 426.33H320.738C318.427 426.33 316.777 424.68 316.777 422.369V89.9612ZM392.369 222.33C392.369 220.019 394.019 218.369 396.33 218.369H426.039C428.35 218.369 430 220.019 430 222.33V290C430 292.311 428.35 293.961 426.039 293.961H396.33C394.019 293.961 392.369 292.311 392.369 290V222.33Z" fill="#141600"/>
</svg>

Before

Width:  |  Height:  |  Size: 912 B

After

Width:  |  Height:  |  Size: 1.2 KiB

@@ -0,0 +1,11 @@
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_42)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M256 0C114.618 0 0 114.618 0 256C0 397.381 114.618 512 256 512C397.382 512 512 397.381 512 256C512 114.618 397.382 0 256 0Z" fill="#2EAFFF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M223.708 129.455C270.255 129.455 310.982 154.472 332.508 191.71H355.782C387.782 191.71 414.546 217.31 414.546 249.89C414.546 281.89 388.364 308.654 355.782 308.654H338.908C319.708 351.127 277.817 380.799 228.946 382.545H217.309C150.4 379.054 97.4543 323.781 97.4543 256.29C97.4543 186.472 153.891 129.455 223.708 129.455ZM223.708 167.855C175.417 167.855 135.855 207.419 135.855 255.71C135.855 304.581 175.417 343.563 223.708 343.563C262.691 343.563 295.855 317.963 307.491 283.054L311.564 269.672H355.782C366.255 269.672 375.564 260.363 375.564 249.89C375.564 239.419 366.835 230.11 355.782 230.11H308.655L303.417 219.054C289.455 188.799 259.2 167.855 223.708 167.855Z" fill="#1D1D1B"/>
</g>
<defs>
<clipPath id="clip0_1_42">
<rect width="512" height="512" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -1 +1,10 @@
<svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 146.36 139.16"><path d="m134.81 60.1-16.47 9.49L134.81 79a8.65 8.65 0 1 1-8.67 15L96.63 77a8.68 8.68 0 0 1-4.33-7.75 8.48 8.48 0 0 1 .31-2 8.68 8.68 0 0 1 4-5.19l29.51-16.94A8.69 8.69 0 0 1 138 48.31a8.58 8.58 0 0 1-3.19 11.79Zm-15.59 46-29.5-16.97a8.72 8.72 0 0 0-13.06 7.48v33.9a8.69 8.69 0 0 0 17.37 0v-19l16.51 9.49a8.66 8.66 0 1 0 8.68-15Zm-34-33.16-12.3 12.15a2.44 2.44 0 0 1-1.54.65h-3.61a2.51 2.51 0 0 1-1.54-.65L54 72.9a2.45 2.45 0 0 1-.64-1.52v-3.6a2.5 2.5 0 0 1 .64-1.53l12.23-12.19a2.5 2.5 0 0 1 1.54-.64h3.61a2.45 2.45 0 0 1 1.54.64l12.26 12.19a2.49 2.49 0 0 1 .63 1.53v3.6a2.44 2.44 0 0 1-.63 1.52Zm-9.8-3.38a2.59 2.59 0 0 0-.69-1.56l-3.55-3.51a2.51 2.51 0 0 0-1.54-.64h-.13a2.46 2.46 0 0 0-1.53.64L64.43 68a2.51 2.51 0 0 0-.63 1.55v.13a2.41 2.41 0 0 0 .63 1.52L68 74.7a2.48 2.48 0 0 0 1.53.64h.13a2.51 2.51 0 0 0 1.54-.64l3.55-3.53a2.49 2.49 0 0 0 .65-1.52ZM19.93 33.08 49.44 50a8.73 8.73 0 0 0 13.07-7.49V8.64a8.69 8.69 0 0 0-17.37 0v19l-16.53-9.5a8.65 8.65 0 1 0-8.68 15Zm64.76 18.08a8.64 8.64 0 0 0 5-1.13l29.5-17a8.65 8.65 0 1 0-8.68-15L94 27.61v-19a8.69 8.69 0 0 0-17.37 0v33.9a8.66 8.66 0 0 0 8.06 8.65ZM54.48 88a8.58 8.58 0 0 0-5 1.13l-29.55 16.93a8.66 8.66 0 1 0 8.68 15l16.53-9.49v19a8.69 8.69 0 0 0 17.37 0V96.61A8.65 8.65 0 0 0 54.48 88Zm-8-15.87a8.61 8.61 0 0 0-4-10L13 45.14a8.69 8.69 0 0 0-11.83 3.17A8.59 8.59 0 0 0 4.35 60.1l16.47 9.49L4.35 79A8.65 8.65 0 1 0 13 94l29.48-17a8.59 8.59 0 0 0 3.99-4.87Zm93.15-56.22h-1.33v1.63h1.32c.61 0 1-.28 1-.8s-.36-.83-1-.83Zm-2.94-1.5h3c1.62 0 2.7.89 2.7 2.27a2.16 2.16 0 0 1-1.08 1.9l1.17 1.68v.34h-1.69l-1.17-1.6h-1.32v1.6h-1.62Zm8.3 3.22a5.48 5.48 0 0 0-5.58-5.83c-3.31 0-5.51 2.39-5.51 5.83 0 3.28 2.2 5.82 5.51 5.82a5.47 5.47 0 0 0 5.59-5.82Zm1.38 0c0 3.89-2.6 7.14-7 7.14s-6.89-3.28-6.89-7.14 2.57-7.14 6.89-7.14 6.99 3.24 6.99 7.14Z" style="fill:#29b5e8;fill-rule:evenodd"/></svg>
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_30)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M433.357 229.996L388.335 256.027L433.357 281.976C436.135 283.489 438.583 285.543 440.556 288.017C442.529 290.491 443.987 293.334 444.845 296.38C445.703 299.426 445.942 302.613 445.55 305.752C445.158 308.892 444.141 311.922 442.56 314.663C440.98 317.404 438.867 319.801 436.345 321.713C433.824 323.625 430.946 325.014 427.881 325.797C424.815 326.58 421.623 326.742 418.494 326.274C415.365 325.805 412.361 324.715 409.659 323.068L329.016 276.519C323.826 273.544 319.97 268.697 318.238 262.971C317.452 260.48 317.092 257.874 317.174 255.263C317.229 253.394 317.501 251.525 317.993 249.656C319.657 243.651 323.603 238.534 328.989 235.399L409.604 188.904C412.301 187.349 415.278 186.34 418.365 185.936C421.452 185.532 424.589 185.74 427.595 186.548C430.602 187.357 433.419 188.749 435.887 190.647C438.356 192.545 440.425 194.91 441.979 197.608C443.55 200.297 444.574 203.27 444.991 206.357C445.408 209.443 445.21 212.581 444.408 215.591C443.607 218.6 442.218 221.421 440.321 223.891C438.424 226.361 436.057 228.445 433.357 229.996ZM390.723 356.138L310.148 309.671C305.999 307.241 301.2 306.155 296.41 306.56C290.439 306.998 284.857 309.682 280.786 314.072C276.715 318.462 274.459 324.23 274.472 330.217V423.261C274.396 426.424 274.953 429.569 276.111 432.513C277.269 435.457 279.004 438.14 281.214 440.404C283.424 442.667 286.064 444.466 288.98 445.694C291.895 446.922 295.027 447.555 298.19 447.555C301.353 447.555 304.485 446.922 307.4 445.694C310.316 444.466 312.956 442.667 315.166 440.404C317.376 438.14 319.111 435.457 320.269 432.513C321.427 429.569 321.984 426.424 321.908 423.261V371.214L367.025 397.258C369.718 398.823 372.694 399.841 375.781 400.253C378.868 400.665 382.006 400.464 385.016 399.66C388.025 398.856 390.846 397.466 393.316 395.57C395.787 393.673 397.859 391.308 399.413 388.608C402.56 383.148 403.412 376.663 401.783 370.576C400.153 364.489 396.176 359.296 390.723 356.138ZM297.733 265.113L264.226 298.579C263.079 299.649 261.59 300.277 260.024 300.353H250.188C248.624 300.267 247.138 299.64 245.986 298.579L212.479 265.113C211.436 263.964 210.824 262.488 210.746 260.938V251.088C210.746 249.724 211.51 247.828 212.479 246.859L245.958 213.407C247.113 212.353 248.599 211.735 250.16 211.66H260.024C261.388 211.66 263.257 212.424 264.226 213.407L297.733 246.873C298.688 247.828 299.466 249.724 299.466 251.102V260.952C299.378 262.5 298.767 263.958 297.733 265.113ZM270.952 255.836C270.845 254.266 270.216 252.778 269.165 251.607L259.478 241.934C258.317 240.88 256.828 240.259 255.263 240.174H254.881C253.326 240.265 251.851 240.892 250.706 241.948L241.02 251.607C239.992 252.785 239.391 254.275 239.314 255.836V256.218C239.314 257.569 240.051 259.438 241.006 260.393L250.706 270.079C251.661 271.048 253.53 271.853 254.881 271.853H255.263C256.824 271.757 258.307 271.131 259.465 270.079L269.165 260.393C270.215 259.244 270.841 257.771 270.938 256.218L270.952 255.836ZM119.475 155.807L200.091 202.329C204.429 204.825 209.232 205.821 213.843 205.439C219.815 204.988 225.395 202.297 229.466 197.905C233.537 193.513 235.798 187.744 235.794 181.755V88.711C235.646 82.519 233.082 76.6307 228.65 72.3039C224.218 67.9771 218.27 65.5549 212.076 65.5549C205.883 65.5549 199.934 67.9771 195.503 72.3039C191.071 76.6307 188.507 82.519 188.358 88.711V140.772L143.2 114.687C137.748 111.539 131.268 110.686 125.186 112.316C119.104 113.946 113.919 117.925 110.771 123.377C107.623 128.83 106.77 135.31 108.4 141.392C110.03 147.474 114.023 152.659 119.475 155.807ZM296.423 205.439C301.209 205.831 305.999 204.745 310.148 202.329L390.723 155.807C396.174 152.654 400.151 147.466 401.78 141.383C403.41 135.3 402.558 128.819 399.413 123.364C396.269 117.919 391.09 113.946 385.016 112.318C378.942 110.691 372.471 111.543 367.025 114.687L321.894 140.786V88.6837C321.894 82.3951 319.396 76.364 314.95 71.9173C310.503 67.4706 304.472 64.9724 298.183 64.9724C291.895 64.9724 285.864 67.4706 281.417 71.9173C276.97 76.364 274.472 82.3951 274.472 88.6837V181.742C274.459 187.731 276.714 193.503 280.784 197.897C284.854 202.291 290.437 204.981 296.41 205.426L296.423 205.439ZM213.843 306.56C209.048 306.152 204.244 307.239 200.091 309.671L119.462 356.138C114.016 359.303 110.047 364.498 108.423 370.584C106.799 376.67 107.653 383.151 110.799 388.608C113.948 394.045 119.126 398.01 125.196 399.632C131.266 401.253 137.732 400.4 143.173 397.258L188.331 371.214V423.275C188.331 429.565 190.83 435.598 195.278 440.046C199.726 444.494 205.759 446.993 212.049 446.993C218.339 446.993 224.372 444.494 228.82 440.046C233.268 435.598 235.767 429.565 235.767 423.275V330.217C235.783 324.232 233.53 318.463 229.462 314.073C225.393 309.683 219.812 306.998 213.843 306.56ZM191.987 262.971C192.778 260.447 193.106 257.841 193.051 255.263C192.938 251.21 191.784 247.254 189.701 243.775C187.618 240.296 184.675 237.412 181.155 235.399L100.607 188.904C97.9102 187.345 94.9319 186.333 91.8432 185.927C88.7544 185.521 85.6159 185.728 82.6073 186.536C79.5987 187.345 76.7791 188.739 Line truncated
</g>
<defs>
<clipPath id="clip0_1_30">
<rect width="382" height="382" fill="white" transform="translate(65 65)"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB