feat: (onboarding): new flow part 3 (#6358)

* feat: onboarding v2 base setup

* feat: add onboarding v2 base setup and styles

- added header
- questionnaire blocks
- basic styling
- search based on UI config method (basic for UI behaviour)
- empty state result UI

* refactor: update class names in OnboardingPageV2 styles

* refactor(onboarding): components for QuestionBlock structural changes

* feat(onboarding): question block filterByCategory added

* feat(onboarding): component structure update and style updates

filterByCategory styling
spacing and styling fixes for options
steps style for question block
header styling update for sticky
added actions on header

* refactor(onboarding): bem SCSS nested way, this is the way

* refactor: moved the flow to another file

* feat: onboarding v2 base setup

* refactor: color variable fixes

* feat: onboarding part 3 changes

* feat: update handle select framework logic

* feat: add logos

* chore: remove old files

* feat: remove unwanted styles

* feat: minor ui updates

* feat: integrate invite team members and ingestion key details api

* feat: update docs links

* feat: added logos and fixed links

* feat: added and fixed links

* feat: handle routing after onboarding

* chore: update base url for docs links - testing

* feat: improve ux

* chore: update file

* feat: reset filters on next and back

* feat: update config

* feat: update api to use getIngestionData

* feat: show region and ingestion details

* feat: push changes behind feature flag

* feat: adding padding to onboarding container

* feat: add log events

* feat: handle back button state

* feat: redirect to onboarding v3 if ff is true and current path is get_started

* fix: update multi ingestion key test case

* feat: enable copy to clipboard

---------

Co-authored-by: Sudeep MP <sudipmelepunathilmp@gmail.com>
Co-authored-by: CheetoDa <Chitgupta24@gmail.com>
This commit is contained in:
Yunus M 2025-03-02 13:05:22 +05:30 committed by GitHub
parent 735b565992
commit 3661fd878e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
88 changed files with 5450 additions and 43 deletions

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="19.932999999999996 68.509 228.155 228.155" xmlns="http://www.w3.org/2000/svg"><path d="M101.885 207.092c7.865 0 14.241 6.376 14.241 14.241v61.09c0 7.865-6.376 14.24-14.241 14.24-7.864 0-14.24-6.375-14.24-14.24v-61.09c0-7.864 6.376-14.24 14.24-14.24z" fill="#a4c639"/><path d="M69.374 133.645c-.047.54-.088 1.086-.088 1.638v92.557c0 9.954 7.879 17.973 17.66 17.973h94.124c9.782 0 17.661-8.02 17.661-17.973v-92.557c0-.552-.02-1.1-.066-1.638H69.374z" fill="#a4c639"/><path d="M166.133 207.092c7.865 0 14.241 6.376 14.241 14.241v61.09c0 7.865-6.376 14.24-14.241 14.24-7.864 0-14.24-6.375-14.24-14.24v-61.09c0-7.864 6.376-14.24 14.24-14.24zM46.405 141.882c7.864 0 14.24 6.376 14.24 14.241v61.09c0 7.865-6.376 14.241-14.24 14.241-7.865 0-14.241-6.376-14.241-14.24v-61.09c-.001-7.865 6.375-14.242 14.241-14.242zM221.614 141.882c7.864 0 14.24 6.376 14.24 14.241v61.09c0 7.865-6.376 14.241-14.24 14.241-7.865 0-14.241-6.376-14.241-14.24v-61.09c0-7.865 6.376-14.242 14.241-14.242zM69.79 127.565c.396-28.43 25.21-51.74 57.062-54.812h14.312c31.854 3.073 56.666 26.384 57.062 54.812H69.79z" fill="#a4c639"/><path d="M74.743 70.009l15.022 26.02M193.276 70.009l-15.023 26.02" fill="none" stroke="#a4c639" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><path d="M114.878 102.087c.012 3.974-3.277 7.205-7.347 7.216-4.068.01-7.376-3.202-7.388-7.176v-.04c-.011-3.975 3.278-7.205 7.347-7.216 4.068-.011 7.376 3.2 7.388 7.176v.04zM169.874 102.087c.012 3.974-3.277 7.205-7.347 7.216-4.068.01-7.376-3.202-7.388-7.176v-.04c-.011-3.975 3.278-7.205 7.347-7.216 4.068-.011 7.376 3.2 7.388 7.176v.04z" fill="#ffffff"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve">
<g>
<linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="15.9594" y1="-13.0143" x2="44.3068" y2="15.3332" gradientTransform="matrix(1 0 0 -1 0 61)">
<stop offset="9.677000e-02" style="stop-color:#0095D5"/>
<stop offset="0.3007" style="stop-color:#238AD9"/>
<stop offset="0.6211" style="stop-color:#557BDE"/>
<stop offset="0.8643" style="stop-color:#7472E2"/>
<stop offset="1" style="stop-color:#806EE3"/>
</linearGradient>
<polygon id="XMLID_2_" style="fill:url(#XMLID_3_);" points="0,60 30.1,29.9 60,60 "/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="4.2092" y1="48.9409" x2="20.6734" y2="65.405" gradientTransform="matrix(1 0 0 -1 0 61)">
<stop offset="0.1183" style="stop-color:#0095D5"/>
<stop offset="0.4178" style="stop-color:#3C83DC"/>
<stop offset="0.6962" style="stop-color:#6D74E1"/>
<stop offset="0.8333" style="stop-color:#806EE3"/>
</linearGradient>
<polygon style="fill:url(#SVGID_1_);" points="0,0 30.1,0 0,32.5 "/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-10.1017" y1="5.8362" x2="45.7315" y2="61.6694" gradientTransform="matrix(1 0 0 -1 0 61)">
<stop offset="0.1075" style="stop-color:#C757BC"/>
<stop offset="0.2138" style="stop-color:#D0609A"/>
<stop offset="0.4254" style="stop-color:#E1725C"/>
<stop offset="0.6048" style="stop-color:#EE7E2F"/>
<stop offset="0.743" style="stop-color:#F58613"/>
<stop offset="0.8232" style="stop-color:#F88909"/>
</linearGradient>
<polygon style="fill:url(#SVGID_2_);" points="30.1,0 0,31.7 0,60 30.1,29.9 60,0 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1 @@
<svg width="2370" height="2500" viewBox="0 0 256 270" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet"><path d="M127.606.341L.849 44.95 20.88 211.022l106.86 58.732 107.412-59.528L255.175 44.16 127.606.341z" fill="#B3B3B3"/><path d="M242.532 53.758L127.31 14.466v241.256l96.561-53.441 18.66-148.523z" fill="#A6120D"/><path d="M15.073 54.466l17.165 148.525 95.07 52.731V14.462L15.074 54.465z" fill="#DD1B16"/><path d="M159.027 142.898L127.31 157.73H93.881l-15.714 39.305-29.228.54L127.31 23.227l31.717 119.672zm-3.066-7.467l-28.44-56.303-23.329 55.334h23.117l28.652.97z" fill="#F2F2F2"/><path d="M127.309 23.226l.21 55.902 26.47 55.377h-26.62l-.06 23.189 36.81.035 17.204 39.852 27.967.518-81.981-174.873z" fill="#B3B3B3"/></svg>

After

Width:  |  Height:  |  Size: 749 B

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 98.18" style="enable-background:new 0 0 122.88 98.18" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;} .st0{fill:#1668dc;} .st1{fill:#FFFFFF;}</style><g><path class="st0" d="M3.42,0h116.05c1.88,0,3.41,1.54,3.41,3.41v91.36c0,1.88-1.54,3.41-3.41,3.41l-116.05,0 C1.54,98.18,0,96.65,0,94.77L0,3.41C0,1.53,1.54,0,3.42,0L3.42,0L3.42,0z M25.89,8.19c2.05,0,3.72,1.67,3.72,3.72 c0,2.05-1.67,3.72-3.72,3.72c-2.05,0-3.72-1.67-3.72-3.72C22.17,9.85,23.83,8.19,25.89,8.19L25.89,8.19z M103.07,7.69l2.52,2.77 l2.52-2.77l1.97,1.79l-2.69,2.96l2.69,2.96l-1.97,1.79l-2.52-2.77l-2.52,2.77l-1.97-1.79l2.69-2.96l-2.69-2.96L103.07,7.69 L103.07,7.69z M14.52,8.19c2.05,0,3.72,1.67,3.72,3.72c0,2.05-1.67,3.72-3.72,3.72c-2.05,0-3.72-1.67-3.72-3.72 C10.79,9.85,12.46,8.19,14.52,8.19L14.52,8.19z M37.26,8.19c2.05,0,3.72,1.67,3.72,3.72c0,2.05-1.67,3.72-3.72,3.72 c-2.05,0-3.72-1.67-3.72-3.72C33.54,9.85,35.21,8.19,37.26,8.19L37.26,8.19z M14.05,22.75h93.33c1.77,0,3.22,1.49,3.22,3.22v59.2 c0,1.73-1.49,3.22-3.22,3.22l-93.33,0c-1.73,0-3.22-1.45-3.22-3.22v-59.2C10.84,24.2,12.29,22.75,14.05,22.75L14.05,22.75 L14.05,22.75z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg width="2207" height="2500" viewBox="0 0 256 290" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M256 199.305l-127.957-18.797L0 199.329l128.01 47.439L256 199.305" fill="#B7CA9D"/><path d="M25.621 197.113l21.63 6.761 1.971-2.238V50.284l-1.971-2.585-21.63 8.274v141.14" fill="#4B612C"/><path d="M123.832 190.423l-76.581 13.451V47.703l76.581 17.222v125.498" fill="#759C3E"/><path d="M89.686 216.889l-29.848-9.201V14.928L89.686.004l2.612 2.845v210.858l-2.612 3.182" fill="#4B612C"/><path d="M191.967 192.894L89.686 216.889V0l102.281 39.866v153.028" fill="#759C3E"/><path d="M127.965 244.714L0 199.329v26.324l127.965 63.983v-44.922" fill="#4B612C"/><path d="M256 225.622l-128.035 64.014v-44.922L256 199.305v26.317" fill="#759C3E"/><path d="M220.039 155.692h-31.026l-88.445 6.026L128 166.775l92.039-11.083" fill="#B7CA9D"/><path d="M100.568 219.906l27.42 8.226.789-.849-.023-61.849-.789-.758-27.397-2.958v58.188" fill="#4B612C"/><path d="M220.039 155.692l-92.074 8.98.023 63.46 92.051-27.711v-44.729" fill="#759C3E"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="504.09" height="215.994"
viewBox="0 0 504.09 215.994" overflow="visible" enable-background="new 0 0 504.09 215.994" xml:space="preserve">
<path fill="#092E20" d="M504.09,187.994c0,15.464-12.536,28-28,28H28c-15.464,0-28-12.536-28-28V28C0,12.536,12.536,0,28,0h448.09
c15.464,0,28,12.536,28,28V187.994z"/>
<g>
<g>
<path fill="#FFFFFF" d="M86.945,33.919h23.872v110.496c-12.246,2.325-21.237,3.255-31.002,3.255
c-29.142,0-44.333-13.174-44.333-38.443c0-24.336,16.122-40.147,41.078-40.147c3.875,0,6.82,0.311,10.386,1.239V33.919z
M86.945,89.539c-2.79-0.929-5.115-1.239-8.06-1.239c-12.091,0-19.067,7.441-19.067,20.46c0,12.713,6.666,19.688,18.912,19.688
c2.634,0,4.805-0.155,8.215-0.618V89.539z"/>
<path fill="#FFFFFF" d="M148.793,70.783v55.341c0,19.065-1.395,28.21-5.58,36.117c-3.876,7.596-8.992,12.399-19.532,17.67
l-22.167-10.541c10.541-4.96,15.656-9.297,18.911-15.966c3.411-6.819,4.497-14.727,4.497-35.498V70.783H148.793z M124.922,34.046
h23.871v24.493h-23.871V34.046z"/>
<path fill="#FFFFFF" d="M163.212,76.209c10.542-4.961,20.617-7.13,31.623-7.13c12.246,0,20.306,3.255,23.872,9.611
c2.014,3.564,2.634,8.214,2.634,18.137v48.517c-10.697,1.552-24.182,2.636-34.102,2.636c-19.996,0-28.988-6.977-28.988-22.476
c0-16.744,11.936-24.493,41.234-26.975v-5.271c0-4.339-2.17-5.888-8.216-5.888c-8.835,0-18.756,2.479-28.058,7.285V76.209z
M200.57,114.187c-15.812,1.552-20.927,4.031-20.927,10.231c0,4.65,2.946,6.821,9.456,6.821c3.566,0,6.82-0.311,11.471-1.084
V114.187z"/>
<path fill="#FFFFFF" d="M232.968,74.505c14.105-3.722,25.731-5.426,37.512-5.426c12.246,0,21.082,2.788,26.354,8.216
c4.96,5.113,6.509,10.693,6.509,22.632v46.813h-23.871v-45.884c0-9.145-3.1-12.557-11.625-12.557c-3.255,0-6.2,0.311-11.007,1.706
v56.734h-23.871V74.505z"/>
<path fill="#FFFFFF" d="M312.623,159.761c8.372,4.339,16.742,6.354,25.577,6.354c15.655,0,22.321-6.354,22.321-21.546
c0-0.154,0-0.31,0-0.467c-4.65,2.326-9.301,3.257-15.5,3.257c-20.927,0-34.26-13.797-34.26-35.652
c0-27.128,19.688-42.473,54.564-42.473c10.232,0,19.688,1.084,31.159,3.407l-8.174,17.222c-6.356-1.241-0.509-0.167-5.312-0.632
v2.48l0.309,10.074l0.154,13.022c0.155,3.253,0.155,6.51,0.311,9.764c0,2.945,0,4.342,0,6.512c0,20.462-1.705,30.073-6.82,37.977
c-7.441,11.627-20.307,17.362-38.598,17.362c-9.301,0-17.36-1.396-25.732-4.651V159.761z M360.057,88.455c-0.31,0-0.619,0-0.774,0
h-1.706c-4.649-0.155-10.074,1.084-13.796,3.409c-5.734,3.257-8.681,9.146-8.681,17.518c0,11.937,5.892,18.756,16.432,18.756
c3.255,0,5.891-0.62,8.99-1.55v-1.705v-6.51c0-2.79-0.154-5.892-0.154-9.146l-0.154-11.006l-0.156-7.905V88.455z"/>
<path fill="#FFFFFF" d="M433.543,68.77c23.871,0,38.443,15.037,38.443,39.371c0,24.957-15.19,40.613-39.373,40.613
c-23.873,0-38.599-15.036-38.599-39.216C394.015,84.424,409.207,68.77,433.543,68.77z M433.076,129.533
c9.147,0,14.573-7.596,14.573-20.773c0-13.019-5.271-20.771-14.415-20.771c-9.457,0-14.884,7.598-14.884,20.771
C418.351,121.938,423.777,129.533,433.076,129.533z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,7 @@
<svg width="456" height="456" viewBox="0 0 456 456" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="456" height="456" fill="#512BD4"/>
<path d="M81.2738 291.333C78.0496 291.333 75.309 290.259 73.052 288.11C70.795 285.906 69.6665 283.289 69.6665 280.259C69.6665 277.173 70.795 274.529 73.052 272.325C75.309 270.121 78.0496 269.019 81.2738 269.019C84.5518 269.019 87.3193 270.121 89.5763 272.325C91.887 274.529 93.0424 277.173 93.0424 280.259C93.0424 283.289 91.887 285.906 89.5763 288.11C87.3193 290.259 84.5518 291.333 81.2738 291.333Z" fill="white"/>
<path d="M210.167 289.515H189.209L133.994 202.406C132.597 200.202 131.441 197.915 130.528 195.546H130.044C130.474 198.081 130.689 203.508 130.689 211.827V289.515H112.149V171H134.477L187.839 256.043C190.096 259.57 191.547 261.994 192.192 263.316H192.514C191.977 260.176 191.708 254.859 191.708 247.365V171H210.167V289.515Z" fill="white"/>
<path d="M300.449 289.515H235.561V171H297.87V187.695H254.746V221.249H294.485V237.861H254.746V272.903H300.449V289.515Z" fill="white"/>
<path d="M392.667 187.695H359.457V289.515H340.272V187.695H307.143V171H392.667V187.695Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 70 80" fill="#fff" fill-rule="evenodd" width="2188" height="2500"><style>.B{fill:#f58536}.C{fill:#9d5025}</style><use xlink:href="#A" x="2.188" y="2.5"/><symbol id="A" overflow="visible"><path d="M3.51 14.898L0 16.56v46.88l3.51 1.662L17.423 40 3.51 14.898z" class="C"/><path d="M11.694 63.285L3.51 65.102V14.898l8.183 1.77v46.618z" class="B"/><path d="M7.382 13.06l4.312-2.03L21.9 40 11.694 68.97l-4.312-2.03V13.06z" class="C"/><path d="M21.9 66.24l-10.205 2.73V11.03L21.9 13.77v52.47z" class="B"/><path d="M16.5 8.747l5.4-2.556L55.616 40 21.9 73.8l-5.4-2.546V8.747z" class="C"/><path d="M58.357 61.03L21.9 73.8V6.19l36.458 12.614V61.03z" class="B"/><path d="M53.634 33.693l-6.807.418-18.82-1.506L35 0l18.645 33.693z" fill="#6b3a19"/><path d="M35 31.934V0l-6.982 3.304v29.3l6.982-.67z" class="C"/><path d="M53.635 33.693V8.824L35 0v31.934l18.645 1.76z" class="B"/><path d="M53.634 46.094l-6.448-.39-19.18 1.536L35 80l18.645-33.907z" fill="#fbbf93"/><path d="M28.008 47.24v29.465L35 80V47.842l-6.982-.602z" class="C"/><path d="M35 47.842V80l18.645-8.824V46.093L35 47.842z" class="B"/><path d="M70 44.558l-4.004-.156-10.38.865L60 68.163l10-23.605z" fill="#fbbf93"/><path d="M60 45.49v22.672l10-4.733V44.558l-10 .933z" class="B"/><path d="M70 35.248l-4.004.155-10.38-.875L60 11.837l10 23.41z" fill="#6b3a19"/><path d="M70 35.248V16.57l-10-4.733v22.46l10 .952z" class="B"/><path d="M55.616 67.065L60 68.163V45.5l-4.394-.224v21.798zm0-54.13L60 11.837v22.46l-4.394.233V12.935z" class="C"/></symbol></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="64" height="64"><path d="M32 24.795c-1.164.296-1.884.013-2.53-.957l-4.594-6.356-.664-.88-5.365 7.257c-.613.873-1.256 1.253-2.4.944l6.87-9.222-6.396-8.33c1.1-.214 1.86-.105 2.535.88l4.765 6.435 4.8-6.4c.615-.873 1.276-1.205 2.38-.883l-2.48 3.288-3.36 4.375c-.4.5-.345.842.023 1.325L32 24.795zM.008 15.427l.562-2.764C2.1 7.193 8.37 4.92 12.694 8.3c2.527 1.988 3.155 4.8 3.03 7.95H1.48c-.214 5.67 3.867 9.092 9.07 7.346 1.825-.613 2.9-2.042 3.438-3.83.273-.896.725-1.036 1.567-.78-.43 2.236-1.4 4.104-3.45 5.273-3.063 1.75-7.435 1.184-9.735-1.248C1 21.6.434 19.812.18 17.9c-.04-.316-.12-.617-.18-.92q.008-.776.008-1.552zm1.498-.38h12.872c-.084-4.1-2.637-7.012-6.126-7.037-3.83-.03-6.58 2.813-6.746 7.037z"/></svg>

After

Width:  |  Height:  |  Size: 777 B

View File

@ -0,0 +1 @@
<svg height="376pt" viewBox="31 16.6 309.2 337.4" width="376pt" xmlns="http://www.w3.org/2000/svg"><g fill="#f0ad4e"><path d="m65.9 24.7c-23.2 24-34.9 48.2-34.9 72.3 0 5.5.4 10.2 1 10.5s1 1.6 1 2.8c0 2.8 2.4 9.7 5.6 16.2 4.2 8.7 10.3 14.8 26.9 26.8 13 9.4 20.2 20 22.6 33.4l1.3 7.2 3.6-1.5c9.1-3.9 16.1-5.3 37-7.5 13.4-1.4 18.6-3.4 24.8-9.5 8.8-8.8 4.6-14.5-22.9-30.8-29.6-17.6-40.2-25.8-51.7-40.1-9.2-11.5-13.9-21-16.2-32.8-2.2-11 .8-28.4 7.5-44 1.9-4.6 3.5-8.6 3.5-9 0-2.1-3.3.1-9.1 6z"/><path d="m332.5 32.8c-.5.4-1.8 2.4-2.7 4.4-5.8 12.4-25 24.1-55.3 33.5-2.7.9-7.5 2.3-10.5 3.3-3 .9-8.9 2.8-13 4-50.9 15.5-59.8 23.5-78 69.5-8.2 20.6-12.5 27.5-21 33.1-7.1 4.8-12.9 6.4-29 8.4-25.6 3.1-35.5 6.1-43.5 13.2-4.9 4.2-6.5 8.6-6.5 17.4 0 4-.4 7.5-.8 7.8-.5.3-1.4 3-2.1 6.1-1 4.2-1 6.3-.1 9 1.4 4.1 5.3 7.5 8.8 7.5 2.5 0 2.6-.7.7-5.2-.4-1.1.2-2.5 1.9-4.3 2.2-2.2 3.3-2.5 10.1-2.5 7.8 0 10.4-.8 14.1-4.2 2.1-1.9 2.2-1.9 5 1.2 5.9 6.5 21.3 15.7 40.5 24.3 9.1 4.1 14.8 9 19.1 16.6 2.9 5 3.3 6.4 3.3 13.6 0 11.7-4.2 19.7-12.4 23.5-1.4.7-3.4 1.6-4.3 2.1-1 .5-4.7.9-8.3.9h-6.5l-2.1 4.7c-1.2 2.7-2.7 6-3.5 7.4-1.1 2.2-1.1 2.9 0 4.5 1.3 1.7 1.7 1.5 6.5-3.4 5-5.1 8.1-6.6 8.1-3.8 0 .8-1.8 2.8-3.9 4.5-4.9 3.9-5.6 6.7-3.3 13.3 1.9 5.4 4.4 7 5 3.3.2-1.1 1.7-3.3 3.3-4.9 1.6-1.5 2.9-3.4 2.9-4.1s.7-1.8 1.5-2.5c2.2-1.8 3.1 1.4 1.7 6.4-.9 3.4-.8 4.4.5 5.8 1 1.1 1.3 2.6.9 4.3-.4 1.8-.2 2.5.7 2.5 1.4 0 4.7-3.1 4.7-4.4 0-.4.9-2.1 2.1-3.7 2.1-3 2.2-3.6.3-14.2-.3-2-.2-3.7.2-3.7 2.1 0 9.3 4.6 9.7 6.2.7 2.6 3.7 1.1 3.7-1.9 0-3.8-2.7-8-6-9.5-3.3-1.4-3.9-3.6-1.2-4.4 6.3-2 12.2-5.6 17.5-10.9 6.4-6.2 7.5-7.5 11.6-13.5 5.7-8.3 11-12 17.1-12 8.4 0 34.8 11.8 55.2 24.7 9.5 6 28.1 19 31.2 21.8.6.6 4 3.1 7.6 5.7 3.6 2.5 9.8 7.3 13.8 10.7 4 3.3 7.6 6.1 8 6.1 3.3 0 4.4-8.6 1.5-11.2-1-.8-4.5-3-7.8-4.8-7.3-4.1-21.4-13.6-27.5-18.7-13.8-11.3-31.4-33.4-43.1-54.1-1.1-1.7-2.8-4.8-3.9-6.8-8.4-14.7-24.4-33.4-28.7-33.4-1.7 0-1.7-.1 1-13 .8-4.1 2-11.1 2.6-15.5 1.8-12.2 4.4-26.1 6.3-33 5.4-20.3 16.9-34.4 37.8-46.2 29.3-16.7 41-27 49.4-43.7 4.5-8.9 5.4-11.1 8.1-21.1 1.4-5.1 3.1-17.5 2.4-17.5-.2 0-.8.4-1.4.8z"/><path d="m159.5 269.3c-.2.7-.5 3.2-.8 5.8-.6 7-5.3 16.3-10.7 21.3-6.5 6.1-10.5 8-13.9 6.7-1.4-.5-5.4-1.3-8.8-1.6-5-.6-6.8-.3-9.2 1.1-2.6 1.5-3.1 2.5-3.1 5.6 0 4.4-.1 4.3 3.6 2.3 1.6-.8 3.5-1.5 4.2-1.5 2.1 0 1.3 2-1.3 3.2-2.9 1.3-3.7 3.8-3.9 11.6-.1 5.9 1.7 8.2 3.3 4 .5-1.3 2.4-3.1 4.2-4.1 1.9-1 4.5-3.6 5.9-5.7 2.6-4.4 4-5.1 4-2.1 0 6.4 3.3 6.7 6.1.5 1.7-3.4 2.6-4.3 3.8-3.8 3.3 1.4 7.2 1.6 8.6.4s1.3-1.6-.6-3.6c-1.2-1.3-2.1-2.5-1.8-2.7 2.2-1.6 7-2.7 11.9-2.7 8.8 0 10-1.5 10-12.8 0-11.5-3-19.7-7.9-21.8-2.5-1-3.3-1.1-3.6-.1zm80.5 21.5c0 .5 3.7 2.8 8.3 5.1 22.1 11.7 35.7 24.4 40.8 38.5 2.3 6.1 2.4 8.3.4 12.9-2.5 6.1-2.9 6 13.3 5.5 14.6-.5 23.2-2.1 23.2-4.4 0-1.1-12-12.4-16.4-15.3-1.2-.8-2.3-1.8-2.6-2.1s-2.3-1.9-4.5-3.6c-2.2-1.6-4.6-3.4-5.2-3.9-.7-.6-2.3-1.8-3.5-2.7-1.3-1-4.1-3.2-6.3-4.9s-5.6-4-7.5-5c-4.6-2.5-7.4-4.3-8-5-.7-.8-14.5-8.3-21-11.4-3-1.4-6.3-3-7.2-3.5-2.2-1.2-3.8-1.3-3.8-.2z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path d="M56.813 127.586c-1.903-.227-3.899-.52-4.434-.652a48.078 48.078 0 00-2.375-.5 36.042 36.042 0 01-2.703-.633c-4.145-1.188-4.442-1.285-7.567-2.563-2.875-1.172-8.172-3.91-9.984-5.156-.496-.344-.96-.621-1.031-.621-.07 0-1.23-.816-2.578-1.813-8.57-6.343-15.004-14.043-19.653-23.527-.8-1.629-1.453-3.074-1.453-3.21 0-.134-.144-.505-.32-.817-.363-.649-.88-2.047-1.297-3.492a20.047 20.047 0 00-.625-1.813c-.195-.46-.352-1.02-.352-1.246 0-.227-.195-.965-.433-1.645-.238-.675-.43-1.472-.43-1.77 0-.296-.187-1.32-.418-2.276C.598 73.492 0 67.379 0 63.953c0-3.422.598-9.535 1.16-11.894.23-.957.418-2 .418-2.32 0-.321.145-.95.32-1.4.18-.448.41-1.253.516-1.788.11-.535.36-1.457.563-2.055l.59-1.726c.433-1.293.835-2.387 1.027-2.813.11-.238.539-1.21.957-2.16.676-1.535 2.125-4.43 2.972-5.945.309-.555.426-.739 2.098-3.352 2.649-4.148 7.176-9.309 11.39-12.988 1.485-1.297 6.446-5.063 6.669-5.063.062 0 .53-.281 1.043-.625 1.347-.902 2.668-1.668 4.39-2.531a53.06 53.06 0 001.836-.953c.285-.164.82-.41 3.567-1.64.605-.27 1.257-.516 3.136-1.173.414-.144 1.246-.449 1.84-.672.598-.222 1.301-.406 1.563-.406.258 0 .937-.18 1.508-.402.57-.223 1.605-.477 2.304-.563.696-.082 1.621-.277 2.055-.43.43-.148 1.61-.34 2.621-.425a72.572 72.572 0 003.941-.465c2.688-.394 8.532-.394 11.192 0a75.02 75.02 0 003.781.445c.953.079 2.168.278 2.703.442.535.16 1.461.36 2.055.433.594.079 1.594.325 2.222.551.63.23 1.344.414 1.59.414s.754.137 1.125.309c.375.168 1.168.449 1.766.625.594.18 1.613.535 2.27.797.652.261 1.527.605 1.945.761.77.29 6.46 3.137 7.234 3.622 6.281 3.917 9.512 6.476 13.856 10.964 5.238 5.414 8.715 10.57 12.254 18.16.25.536.632 1.329.851 1.758.215.434.395.942.395 1.13 0 .19.18.76.402 1.269.602 1.383 1.117 2.957 1.36 4.16.12.59.343 1.32.495 1.621.153.3.332 1.063.403 1.688.07.624.277 1.648.453 2.269 1.02 3.531 1.527 13.934.91 18.535-.183 1.367-.39 3.02-.46 3.672-.118 1.117-.708 4.004-1.212 5.945l-.52 2.055c-.98 3.957-3.402 9.594-6.359 14.809-1.172 2.07-5.101 7.668-5.843 8.324-.067.058-.399.45-.735.863-.336.418-1.414 1.586-2.39 2.594-4.301 4.441-7.77 7.187-13.86 10.969-.722.449-6.847 3.441-7.992 3.906-.594.238-1.586.64-2.203.89-.613.247-1.297.454-1.512.458-.215.003-.781.195-1.258.425-.476.23-1.082.422-1.351.426-.266.004-1.043.192-1.727.418-.683.23-1.633.477-2.11.55-.476.075-1.495.278-2.269.45-.773.172-3.11.508-5.187.746a59.06 59.06 0 01-13.945-.031zm4.703-12.5c.3-.234.609-.7.691-1.027.18-.723 29.234-58.97 29.781-59.7.461-.617.504-1.605.082-1.953-.222-.187-3.004-.246-10.43-.234-5.57.012-10.253.016-10.406.012-.226-.008-.273-3.73-.25-19.672.016-10.817-.035-19.766-.113-19.89-.078-.126-.383-.227-.68-.227-.418 0-.613.18-.87.808-.485 1.168-1.825 3.82-8.348 16.485a3554.569 3554.569 0 00-4.055 7.89c-1.156 2.262-2.98 5.813-4.047 7.89a8751.248 8751.248 0 00-8.598 16.759c-4.933 9.636-5.53 10.785-5.742 11.039-.41.496-.633 1.64-.402 2.07.21.394.629.41 11.043.394 5.953-.007 10.863.024 10.914.07.137.141.086 37.31-.055 38.196-.093.582-.031.89.235 1.156.46.461.586.457 1.25-.066zm0 0" fill="#049688"/></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,242 @@
<svg version="1.1" id="Layer_1" xmlns:x="ns_extend;" xmlns:i="ns_ai;" xmlns:graph="ns_graphs;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 108.6 78" style="enable-background:new 0 0 108.6 78;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:url(#SVGID_2_);}
.st2{opacity:0.8;fill:url(#SVGID_3_);enable-background:new ;}
.st3{opacity:0.8;fill:url(#SVGID_4_);enable-background:new ;}
.st4{opacity:0.8;fill:url(#SVGID_5_);enable-background:new ;}
.st5{fill:url(#SVGID_6_);}
.st6{opacity:0.8;fill:url(#SVGID_7_);enable-background:new ;}
.st7{opacity:0.3;fill:url(#SVGID_8_);enable-background:new ;}
.st8{opacity:0.3;fill:url(#SVGID_9_);enable-background:new ;}
.st9{opacity:0.3;fill:url(#SVGID_10_);enable-background:new ;}
.st10{opacity:0.3;fill:url(#SVGID_11_);enable-background:new ;}
.st11{fill:url(#SVGID_12_);}
.st12{opacity:0.3;fill:url(#SVGID_13_);enable-background:new ;}
.st13{opacity:0.8;fill:url(#SVGID_14_);enable-background:new ;}
.st14{fill:url(#SVGID_15_);}
.st15{fill:url(#SVGID_16_);}
.st16{fill:#282E38;}
</style>
<metadata>
<sfw xmlns="ns_sfw;">
<slices>
</slices>
<sliceSourceBounds bottomLeftOrigin="true" height="78" width="108.6" x="-147.2" y="2.8">
</sliceSourceBounds>
</sfw>
</metadata>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="110.5698" y1="70.9492" x2="2.0982" y2="62.3315" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.2986" style="stop-color:#0097CE">
</stop>
<stop offset="0.3791" style="stop-color:#0999C5">
</stop>
<stop offset="0.5119" style="stop-color:#229DAD">
</stop>
<stop offset="0.6469" style="stop-color:#42A38F">
</stop>
<stop offset="0.7352" style="stop-color:#5DAD82">
</stop>
<stop offset="0.9239" style="stop-color:#A1C661">
</stop>
<stop offset="1" style="stop-color:#BED153">
</stop>
</linearGradient>
<path class="st0" d="M108.3,17.3c-2.5-0.4-8-0.5-18.9,1.8c-1.3,0.3-2.6,0.5-3.9,0.4c-1.4-0.2-2.9-0.5-4.2-0.9
c-6-2.1-10.9-1.4-13.8,0.1c-1.7,0.9-3.2,2.3-4.3,3.9c-1.8,2.5-5.6,10-10.7,12c-2.9,1.9-6,3.8-8.8,6.6c-1.7,1.8-2.2,6.1-6.8,10.3
c-4.5,6.7-10.2,12.5-16.9,17c-8.6,6.1-15.9,8-15.9,8s19.2,5.4,40.2-4.7c16-7.7,24.3-22.6,26.2-25.9L81,28c0.9-1.6,2.6-3.8,4.2-4.6
c0.5-0.3,1-0.5,1.1-0.6c1.2-0.6,2.4-1.1,3.6-1.5c7.3-2.7,14.9-2.9,18.4-3.3C108.7,17.9,108.7,17.4,108.3,17.3z">
</path>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-3.3872" y1="99.1067" x2="101.7764" y2="70.6323" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="8.199000e-02" style="stop-color:#3D65AF">
</stop>
<stop offset="0.2305" style="stop-color:#2372B8">
</stop>
<stop offset="0.5058" style="stop-color:#00B8BB">
</stop>
</linearGradient>
<path class="st1" d="M108.3,17.3c-2.5-0.4-8-0.5-18.9,1.8c-1.3,0.3-2.6,0.5-3.9,0.4c-1.4-0.2-2.9-0.5-4.2-0.9
c-6.1-2.1-10.8-1.5-13.8,0.1c-1.7,0.9-3.2,2.3-4.3,3.9c-1.8,2.5-5.6,10-10.7,12c-5.8-5.5-10.9-10.2-15.8-14.3
c-2.8-2.2-5.5-4.4-7.8-5.9c-5.7-4-11.6-7.6-17.8-10.7C8.3,2.5,5.5,1.4,2.4,0.2C1.1-0.2,0.3,0.4,0.1,1.5C0,1.8-0.1,2.8,0.5,4.4
C2,8.6,3.9,12.6,6.1,16.5C7,18.1,8,19.7,9,21.4c4.9,7.8,10.6,15,17,21.4c1.3,1.3,2.6,2.5,4,3.6c1.7,1.4,3.4,2.7,5.2,3.9
c0.2,0.1,1,0.6,1.6,1c1.2,0.6,2.7,1.4,3.7,1.8c4,1.9,8.4,2.8,12.8,2.8c6.4,0.2,11.6-1.9,14.2-5.4c1.1-1.5,2.1-3,3-4.6L81,28
c0.9-1.6,2.6-3.8,4.2-4.6c0.5-0.3,1-0.5,1.1-0.6c1.1-0.5,1.1-0.4,2.3-0.8c7.4-2.7,16.3-3.6,19.8-4c0.1,0,0.1,0,0.2-0.1
c0.1-0.1,0.1-0.1,0.1-0.2c0-0.1,0-0.2-0.1-0.2C108.5,17.4,108.4,17.3,108.3,17.3z">
</path>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-4.240106e-02" y1="111.6313" x2="57.0864" y2="96.1629" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st2" d="M0,2.1C0,2,0.1,1.8,0,1.7C0.1,1.8,0.1,2,0,2.1z">
</path>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="14.2865" y1="112.4456" x2="67.4928" y2="112.4456" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st3" d="M4.9,1C4.8,1,4.7,0.9,4.6,1C4.8,1,4.9,1.1,5.1,1.2C5.1,1.1,5,1.1,4.9,1z">
</path>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="15.0621" y1="111.7076" x2="62.3568" y2="111.7076" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st4" d="M6.7,1.8c-0.1,0-0.2-0.1-0.2-0.1c0.1,0.1,0.3,0.1,0.5,0.2C6.8,1.8,6.7,1.8,6.7,1.8z">
</path>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="5.8502" y1="99.4376" x2="54.3686" y2="86.3005" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#2483C5">
</stop>
<stop offset="0.1672" style="stop-color:#2486C7">
</stop>
<stop offset="0.676" style="stop-color:#29B1DF">
</stop>
<stop offset="0.9352" style="stop-color:#2BC2E8">
</stop>
</linearGradient>
<path class="st5" d="M40.7,35.7c3.9,0.6,8,0.2,11.7-1.2c-3.5-3.3-6.8-6.3-9.9-9c-1.6-1.4-3.1-2.7-4.5-3.9c-0.1-0.1-0.2-0.1-0.2-0.2
c-0.4-0.4-0.8-0.6-1.1-0.9c-0.1-0.1-0.2-0.2-0.2-0.2C33.7,18,31,16,28.8,14.4C22.9,10.3,17,6.5,11,3.7c-0.5-0.3-1-0.5-1.6-0.8
C9.2,2.8,9.1,2.8,8.9,2.7C32,15.4,39.4,26.9,40.7,35.7z">
</path>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="9.0343" y1="108.5579" x2="56.3287" y2="108.5579" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st6" d="M0.9,5.5C0.7,5.2,0.6,4.8,0.4,4.4C0.6,4.7,0.7,5.1,0.9,5.5z">
</path>
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="0" y1="111.2669" x2="5.794769e-02" y2="111.2669" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st7" d="M0,2.3c0-0.1,0-0.1,0.1-0.1C0.1,2.2,0.1,2.2,0,2.3z">
</path>
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="228.4462" y1="112.9745" x2="117.6531" y2="112.9745" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st8" d="M2.5,0.1C3.2,0.4,3.9,0.7,4.6,1C3.9,0.7,3.2,0.4,2.5,0.1z">
</path>
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="42.7481" y1="110.1772" x2="21.7874" y2="110.1772" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st9" d="M0,2.3C0,3,0.2,3.7,0.4,4.4C0.2,3.7,0,3,0,2.3z">
</path>
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="220.6359" y1="111.1786" x2="115.833" y2="111.1786" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st10" d="M8.6,2.6l0.3,0.2c-0.6-0.3-1.3-0.6-2-0.9C7.1,2,7.3,2.1,7.5,2.2C7.9,2.3,8.2,2.4,8.6,2.6z">
</path>
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="-3.6727" y1="91.1328" x2="42.6712" y2="78.5846" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#3B67AD">
</stop>
<stop offset="0.5697" style="stop-color:#227CAA">
</stop>
<stop offset="0.9352" style="stop-color:#118AA8">
</stop>
</linearGradient>
<path class="st11" d="M15.4,23.3C9.2,18.3,3.4,11.2,0.9,5.6c5.8,14.9,20.9,36,34.3,44.8c0.2,0.2,1,0.6,1.7,1
c1.7-2.7,4.9-8.3,3.8-15.7C32.4,34.6,23.5,30,15.4,23.3z">
</path>
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="133.4601" y1="112.0615" x2="70.578" y2="112.0615" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0" style="stop-color:#682C90">
</stop>
<stop offset="0.496" style="stop-color:#817CB9">
</stop>
<stop offset="1" style="stop-color:#FFFFFF">
</stop>
</linearGradient>
<path class="st12" d="M6.4,1.7L5.2,1.2c0.1,0,0.1,0.1,0.2,0.1C5.7,1.4,6,1.5,6.4,1.7z">
</path>
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="755.9692" y1="95.6936" x2="4900.1494" y2="95.6936" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#000000">
</stop>
<stop offset="0.3277" style="stop-color:#00334B">
</stop>
<stop offset="0.5276" style="stop-color:#006190">
</stop>
<stop offset="0.6723" style="stop-color:#007FBB">
</stop>
<stop offset="0.7457" style="stop-color:#008ACC">
</stop>
</linearGradient>
<path class="st13" d="M15.4,23.3c8.1,6.7,17,11.2,25.3,12.3C39.4,26.9,32,15.3,8.9,2.8c-0.1,0-0.2-0.1-0.3-0.2
c-0.3-0.2-0.7-0.3-1-0.5C7.4,2,7.2,2,7,1.8C6.8,1.8,6.7,1.7,6.5,1.7C6.1,1.5,5.8,1.3,5.4,1.2c-0.1,0-0.1-0.1-0.2-0.1
C5,1.1,4.9,1,4.7,1C4,0.7,3.3,0.4,2.6,0.1C1.2-0.3,0.5,0.4,0.2,1.4c0,0.1,0,0.2-0.1,0.4c-0.1,0.1,0,0.3,0,0.5c0,0.1,0,0.1-0.1,0.1
c0,0.7,0.2,1.4,0.4,2.1c0.1,0.4,0.3,0.8,0.5,1.2C3.4,11.2,9.3,18.3,15.4,23.3z">
</path>
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="-2.6385" y1="102.0505" x2="43.843" y2="89.4649" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1297" style="stop-color:#3A67B0">
</stop>
<stop offset="0.5622" style="stop-color:#357FBD">
</stop>
<stop offset="0.9352" style="stop-color:#3290C6">
</stop>
</linearGradient>
<path class="st14" d="M15.4,23.3c8.1,6.7,17,11.2,25.3,12.3C39.4,26.9,32,15.3,8.9,2.8c-0.1,0-0.2-0.1-0.3-0.2
c-0.3-0.2-0.7-0.3-1-0.5C7.4,2,7.2,2,7,1.8C6.8,1.8,6.7,1.7,6.5,1.7C6.1,1.5,5.8,1.3,5.4,1.2c-0.1,0-0.1-0.1-0.2-0.1
C5,1.1,4.9,1,4.7,1C4,0.7,3.3,0.4,2.6,0.1C1.2-0.3,0.5,0.4,0.2,1.4c0,0.1,0,0.2-0.1,0.4c-0.1,0.1,0,0.3,0,0.5c0,0.1,0,0.1-0.1,0.1
c0,0.7,0.2,1.4,0.4,2.1c0.1,0.4,0.3,0.8,0.5,1.2C3.4,11.2,9.3,18.3,15.4,23.3z">
</path>
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="56.1575" y1="92.6466" x2="104.2326" y2="79.6295" gradientTransform="matrix(1 0 0 -1 0 113.5125)">
<stop offset="0.1724" style="stop-color:#4E5CA8">
</stop>
<stop offset="0.9937" style="stop-color:#1FC3F3">
</stop>
</linearGradient>
<path class="st15" d="M108.3,17.3c-2.5-0.4-8-0.5-18.9,1.8c-1.3,0.3-2.6,0.5-3.9,0.4c-1.4-0.2-2.9-0.5-4.2-0.9
c-2.8-1-5.8-1.5-8.8-1.4c-2.1,0.1-4,0.8-5.7,2c-1.4,0.9-2.5,2.1-3.5,3.4c-1.8,2.5-5.6,10-10.7,12c4.1,3.9,10.3,7.1,16.2,5.2
c5.6-1.9,9.1-6.9,10.2-8.6c1.1-1.7,2.4-3.4,3.7-4.9c1.9-2,4.3-3.5,6.9-4.4c6.6-2.2,16.6-3.6,19-3.8
C108.7,17.9,108.7,17.4,108.3,17.3z">
</path>
<path class="st16" d="M75.9,25.5c1,0,1.7-0.8,1.7-1.8c0-1-0.8-1.8-1.7-1.8c-1,0-1.7,0.8-1.7,1.8C74.2,24.7,74.9,25.5,75.9,25.5z">
</path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1274 1047" style="enable-background:new 0 0 1274 1047;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:url(#SVGID_2_);}
.st2{fill:url(#SVGID_3_);}
.st3{fill:url(#SVGID_4_);}
.st4{fill:url(#SVGID_5_);}
.st5{fill:url(#SVGID_6_);}
.st6{fill:url(#SVGID_7_);}
.st7{fill:url(#SVGID_8_);}
.st8{fill:#FFFFFF;}
</style>
<g>
<g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="21.0001" y1="1105.2095" x2="1258.6993" y2="1105.2095" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#2A59A2"/>
<stop offset="1" style="stop-color:#2A59A2"/>
</linearGradient>
<path class="st0" d="M1252.1,450.3c-6.5,0-16.5,0-22.1,0c-40.2-0.5-117.3,3.8-187.2,64.2c-166.9,144.5-205,357.2-490.6,472
C314.3,1082.1,21,991.6,21,991.6s261.7-18.2,296.4-217.9c27.1-156.2-115-267.1-204.2-408C22.5,222.2-0.8,103,42.9,51.5
C166.8-94.8,508,300.7,677.4,354c165.8,52.1,277.7-68.9,415-51.1c43.8,5.6,65.2,24.5,79.4,48.6c4.8,8.1,16.6,35.7,27.1,45.9
c10.3,10,24,17.4,36.8,24.9C1252,431.9,1268.1,450.3,1252.1,450.3z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-28.9755" y1="1316.5281" x2="1280.1417" y2="1316.5281" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#91D3F2"/>
<stop offset="0.2664" style="stop-color:#6FB2DE"/>
<stop offset="0.5214" style="stop-color:#5598CE"/>
<stop offset="0.6729" style="stop-color:#4B8FC8"/>
</linearGradient>
<path class="st1" d="M468,221.5c-41-31.2-83.3-63.9-124.9-93.7l0,0c-9.4-6.7-18.8-13.3-28.1-19.7l0,0
C203.5,31.8,100.1-16,42.9,51.5C-0.8,103,22.5,222.2,113.3,365.7c0.9,1.5,1.9,2.9,2.8,4.4c47.3,73.2,184.5,244.7,509.7,237.4
c21.4-22.7,53.9-65.6,95.9-112.3C653.6,385.1,551,289.1,468,221.5z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="21.1001" y1="817.0737" x2="1267.8341" y2="817.0737" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#2C9EC7"/>
<stop offset="0.4037" style="stop-color:#2C63A5"/>
<stop offset="1" style="stop-color:#395DA1"/>
</linearGradient>
<path class="st2" d="M795.8,738.9c1.3-48.8-7.6-96.9-24.5-143.4c-42.7,6.4-90.8,10.8-145.5,12C586,649.8,495.1,762.8,344.5,864.6
c-200.5,135.6-323.4,127-323.4,127s293.4,90.5,531.2-5.1c85.3-34.3,148.6-77.3,199.8-124.7C760.5,853.8,794,812,795.8,738.9z"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="21.0793" y1="1078.65" x2="1267.8134" y2="1078.65" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="1.554530e-03" style="stop-color:#2F75B1"/>
<stop offset="1" style="stop-color:#356EAC"/>
</linearGradient>
<path class="st3" d="M721.8,495.2c-42,46.6-74.6,89.6-95.9,112.3c54.8-1.2,102.9-5.6,145.5-12c-5-13.9-10.8-27.6-17.2-41.1
C744.6,534.3,733.7,514.5,721.8,495.2z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="467.9999" y1="1271.65" x2="1274.9838" y2="1271.65" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="1.554530e-03" style="stop-color:#2F81B6"/>
<stop offset="1" style="stop-color:#3B5EA9"/>
</linearGradient>
<path class="st4" d="M965.6,318.3c-87.8,26.6-175.5,71.1-288.2,35.7c-55.8-17.5-130.3-72.2-209.4-132.5
c83,67.6,185.6,163.5,253.8,273.7C784,426.3,867,349.3,965.6,318.3z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="467.9684" y1="962.7" x2="1274.9521" y2="962.7" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="1.554530e-03" style="stop-color:#1E3773"/>
<stop offset="1" style="stop-color:#203370"/>
</linearGradient>
<path class="st5" d="M771.4,595.5c16.9,46.5,25.8,94.6,24.5,143.4c-1.9,73-35.4,114.8-43.8,122.9
c120.1-111.1,173.8-246,290.8-347.3c21.8-18.8,44.2-32.2,66.1-41.7h-0.1C1032.2,505,949,568.7,771.4,595.5z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="990.2508" y1="895.2981" x2="990.2508" y2="1337.8136" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="1.554530e-03" style="stop-color:#2C5A9A"/>
<stop offset="1" style="stop-color:#374580"/>
</linearGradient>
<path class="st6" d="M1252.1,450.3c16,0-0.1-18.4-16.3-27.9c-12.8-7.6-26.5-15-36.8-24.9c-10.6-10.2-22.4-37.9-27.1-45.9
c-14.3-24.2-35.6-43-79.4-48.6c-44-5.7-85.4,2.9-126.8,15.4c-98.6,31-181.7,108-243.9,176.9c11.9,19.3,22.9,39,32.4,59.1
c6.4,13.6,12.2,27.3,17.2,41.1c177.7-26.8,260.8-90.5,337.5-122.7h0.1c48.3-21,93.5-22.9,121.1-22.5
C1235.7,450.3,1245.7,450.3,1252.1,450.3z"/>
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-113.5052" y1="949.0955" x2="804.8284" y2="949.0955" gradientTransform="matrix(1 0 0 -1 0 1630)">
<stop offset="0.1115" style="stop-color:#38B1DA"/>
<stop offset="1" style="stop-color:#326FB5"/>
</linearGradient>
<path class="st7" d="M344.5,864.6C495.1,762.8,586,649.8,625.8,607.5c-325.2,7.3-462.4-164.2-509.7-237.4
C205.4,509,344.3,619.2,317.5,773.7C282.8,973.4,21.1,991.6,21.1,991.6S144,1000.2,344.5,864.6z"/>
<ellipse class="st8" cx="1083.4" cy="377.4" rx="26" ry="25.8"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><g transform="matrix(.061615 0 0 .061615 -1.430818 -1.2754)"><defs><path id="A" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="B"><use xlink:href="#A"/></clipPath><g clip-path="url(#B)"><path d="M360.3 779.7L520 939.5 959.4 500H639.9z" fill="#39cefd"/></g><defs><path id="C" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="D"><use xlink:href="#C"/></clipPath><path clip-path="url(#D)" d="M639.9 20.7h319.5l-679 679.1L120.6 540z" fill="#39cefd"/><defs><path id="E" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="F"><use xlink:href="#E"/></clipPath><path clip-path="url(#F)" d="M520 939.5l119.9 119.8h319.5L679.8 779.7z" fill="#03569b"/><defs><path id="G" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="H"><use xlink:href="#G"/></clipPath><linearGradient id="I" gradientUnits="userSpaceOnUse" x1="566.635" y1="970.339" x2="685.65" y2="851.324"><stop offset="0" stop-color="#1a237e" stop-opacity=".4"/><stop offset="1" stop-color="#1a237e" stop-opacity="0"/></linearGradient><path clip-path="url(#H)" d="M757 857.4l-77.2-77.7L520 939.5z" fill="url(#I)"/><defs><path id="J" d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z"/></defs><clipPath id="K"><use xlink:href="#J"/></clipPath><g clip-path="url(#K)"><path d="M360.282 779.645L520.086 619.84 679.9 779.645 520.086 939.45z" fill="#16b9fd"/></g><radialGradient id="L" cx="7824.659" cy="-2855.979" r="5082.889" gradientTransform="matrix(0.25,0,0,-0.25,-1812,-622.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity=".1"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></radialGradient><path d="M959.4 500L679.8 779.7l279.6 279.7H639.9L360.2 779.7 639.9 500h319.5zM639.9 20.7L120.6 540l159.8 159.8 679-679.1H639.9z" fill="url(#L)"/></g></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 115.28 122.88" style="enable-background:new 0 0 115.28 122.88" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;}</style><g><path class="st0" d="M25.38,57h64.88V37.34H69.59c-2.17,0-5.19-1.17-6.62-2.6c-1.43-1.43-2.3-4.01-2.3-6.17V7.64l0,0H8.15 c-0.18,0-0.32,0.09-0.41,0.18C7.59,7.92,7.55,8.05,7.55,8.24v106.45c0,0.14,0.09,0.32,0.18,0.41c0.09,0.14,0.28,0.18,0.41,0.18 c22.78,0,58.09,0,81.51,0c0.18,0,0.17-0.09,0.27-0.18c0.14-0.09,0.33-0.28,0.33-0.41v-11.16H25.38c-4.14,0-7.56-3.4-7.56-7.56 V64.55C17.82,60.4,21.22,57,25.38,57L25.38,57z M29.49,68.38h7.43v18.15h11.63v5.92H29.49V68.38L29.49,68.38z M49.89,80.43 c0-3.93,1.09-6.99,3.28-9.17c2.19-2.19,5.24-3.28,9.15-3.28c4.01,0,7.09,1.08,9.26,3.22c2.17,2.15,3.25,5.16,3.25,9.04 c0,2.81-0.47,5.11-1.42,6.91c-0.95,1.8-2.32,3.2-4.11,4.2c-1.79,1-4.02,1.5-6.69,1.5c-2.71,0-4.96-0.43-6.74-1.29 c-1.78-0.87-3.22-2.23-4.32-4.11C50.44,85.58,49.89,83.24,49.89,80.43L49.89,80.43z M57.31,80.44c0,2.43,0.45,4.17,1.36,5.23 c0.91,1.06,2.14,1.59,3.7,1.59c1.6,0,2.84-0.52,3.71-1.56c0.88-1.04,1.32-2.9,1.32-5.6c0-2.26-0.46-3.92-1.37-4.96 c-0.92-1.05-2.16-1.57-3.73-1.57c-1.5,0-2.71,0.53-3.62,1.59C57.77,76.24,57.31,77.99,57.31,80.44L57.31,80.44z M90.42,83.74v-5.01 h11.49v10.23c-2.2,1.5-4.15,2.53-5.83,3.07c-1.69,0.54-3.7,0.81-6.02,0.81c-2.86,0-5.19-0.49-6.99-1.46 c-1.8-0.97-3.19-2.42-4.18-4.35c-0.99-1.92-1.48-4.13-1.48-6.63c0-2.63,0.54-4.91,1.62-6.85c1.08-1.94,2.67-3.41,4.76-4.42 c1.63-0.78,3.83-1.17,6.58-1.17c2.66,0,4.64,0.24,5.96,0.72c1.32,0.48,2.41,1.23,3.28,2.24c0.87,1.01,1.52,2.3,1.96,3.85 l-7.16,1.29c-0.3-0.91-0.8-1.61-1.5-2.09c-0.71-0.49-1.6-0.73-2.7-0.73c-1.62,0-2.92,0.57-3.89,1.7c-0.97,1.13-1.45,2.92-1.45,5.37 c0,2.6,0.49,4.46,1.47,5.57c0.97,1.11,2.34,1.68,4.09,1.68c0.83,0,1.62-0.12,2.37-0.36c0.75-0.24,1.61-0.65,2.59-1.22v-2.25H90.42 L90.42,83.74z M97.79,57h9.93c4.16,0,7.56,3.41,7.56,7.56v31.42c0,4.15-3.41,7.56-7.56,7.56h-9.93v13.55c0,1.61-0.65,3.04-1.7,4.1 c-1.06,1.06-2.49,1.7-4.1,1.7c-29.44,0-56.59,0-86.18,0c-1.61,0-3.04-0.64-4.1-1.7c-1.06-1.06-1.7-2.49-1.7-4.1V5.85 c0-1.61,0.65-3.04,1.7-4.1c1.06-1.06,2.53-1.7,4.1-1.7h58.72C64.66,0,64.8,0,64.94,0c0.64,0,1.29,0.28,1.75,0.69h0.09 c0.09,0.05,0.14,0.09,0.23,0.18l29.99,30.36c0.51,0.51,0.88,1.2,0.88,1.98c0,0.23-0.05,0.41-0.09,0.65V57L97.79,57z M67.52,27.97 V8.94l21.43,21.7H70.19c-0.74,0-1.38-0.32-1.89-0.78C67.84,29.4,67.52,28.71,67.52,27.97L67.52,27.97z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -12.5 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<defs>
<path d="M252.925854,103.237077 L200.327344,11.759667 C196.302579,4.62225703 188.80054,0.148424726 180.607902,0 L75.3908814,0 C67.1970912,0.14438548 59.6931984,4.61932363 55.6714398,11.759667 L3.05292985,102.997083 C-1.01764328,110.080373 -1.01764328,118.793146 3.05292985,125.876436 L55.6514404,217.87383 C59.6319755,225.112707 67.1159052,229.735134 75.370882,230.053486 L180.587903,230.053486 C188.842442,229.770144 196.339809,225.166896 200.327344,217.933829 L252.925854,126.456419 C257.024715,119.259311 257.024715,110.434185 252.925854,103.237077 Z" id="path-1">
</path>
</defs>
<g>
<mask id="mask-2" fill="white">
<use xlink:href="#path-1">
</use>
</mask>
<g fill-rule="nonzero">
</g>
<path d="M252.925854,103.237077 L200.327344,11.759667 C196.302579,4.62225703 188.80054,0.148424726 180.607902,0 L75.3908814,0 C67.1970912,0.14438548 59.6931984,4.61932363 55.6714398,11.759667 L3.05292985,102.997083 C-1.01764328,110.080373 -1.01764328,118.793146 3.05292985,125.876436 L55.6514404,217.87383 C59.6319755,225.112707 67.1159052,229.735134 75.370882,230.053486 L180.587903,230.053486 C188.842442,229.770144 196.339809,225.166896 200.327344,217.933829 L252.925854,126.456419 C257.024715,119.259311 257.024715,110.434185 252.925854,103.237077 Z" fill="#4285F4" fill-rule="nonzero" mask="url(#mask-2)">
</path>
<path d="M187.167605,84.731603 L179.915711,92.6409485 L181.549379,139.638797 L174.676019,149.60019 L170.691462,145.615633 L174.357254,145.615633 L174.357254,129.318795 L156.765435,111.726976 L143.468746,118.373047 L99.3678929,74.1725271 L78.1302045,85.5484371 L75.500397,107.583037 L82.9515184,147.906753 L93.7496677,158.485752 L88.8287399,165.478649 L153.076098,231.236816 L179.915711,231.236816 C188.138614,230.95456 197.044276,225.565698 201.016528,218.360352 L244.795336,142.356934 L187.167605,84.731603 Z" fill="#000000" fill-rule="nonzero" opacity="0.0700000003" mask="url(#mask-2)">
</path>
<polygon fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)" points="88.8287399 165.478649 99.3678929 154.939496 83.5691247 139.140728 83.5691247 89.9712953 99.3678929 74.1725271 88.8287399 63.6333741 67.730511 84.731603 67.730511 144.38042">
</polygon>
<circle fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)" cx="105.1455" cy="114.556012" r="7.47104423">
</circle>
<circle fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)" cx="127.498865" cy="114.556012" r="7.47104423">
</circle>
<circle fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)" cx="149.852229" cy="114.556012" r="7.47104423">
</circle>
<polygon fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)" points="166.069376 63.6333741 155.530223 74.1725271 171.328991 89.9712953 171.328991 139.140728 155.530223 154.939496 166.069376 165.478649 187.167605 144.38042 187.167605 84.731603">
</polygon>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<defs>
<style>.cls-1{fill:none;}.cls-2{fill:#669df6;}.cls-3{fill:#4285f4;}.cls-4{fill:#aecbfa;}</style>
</defs>
<title>Icon_24px_LoadBalancing_Color</title>
<g data-name="Product Icons">
<g data-name="colored-32/load-balancing">
<rect class="cls-1" width="24" height="24"/>
<g >
<rect class="cls-2" x="18" y="12" width="2" height="4"/>
<rect class="cls-2" x="11" y="12" width="2" height="4"/>
<rect class="cls-2" x="4" y="12" width="2" height="4"/>
<polygon id="Fill-2" class="cls-3" points="13 11 11 11 11 7 13 7 13 11"/>
<rect class="cls-2" x="4" y="11" width="16" height="2"/>
<rect class="cls-4" x="6" y="2" width="12" height="5"/>
<rect class="cls-2" x="12" y="2" width="6" height="5"/>
<rect class="cls-4" x="16" y="16" width="6" height="6"/>
<rect class="cls-4" x="2" y="16" width="6" height="6"/>
<rect class="cls-2" x="5" y="16" width="3" height="6"/>
<rect class="cls-4" x="9" y="16" width="6" height="6"/>
<rect class="cls-2" x="12" y="16" width="3" height="6"/>
<rect class="cls-2" x="19" y="16" width="3" height="6"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#669df6;}.cls-2{fill:#4285f4;}</style></defs><title>Icon_24px_Monitoring_Color</title><g data-name="Product Icons"><rect class="cls-1" x="10.83" y="15.84" width="2.33" height="2.64"/><path class="cls-2" d="M18.48,13.87a.56.56,0,0,1-.4-.17L14,9.47l-2.74,2.89a.57.57,0,0,1-.76.05L8.42,10.73l-2.2,2.92a.56.56,0,0,1-.45.22H2v1.71a.75.75,0,0,0,.74.75H21.26a.75.75,0,0,0,.74-.75V13.87Z"/><path class="cls-1" d="M5.5,12.76,7.88,9.6a.55.55,0,0,1,.37-.22.63.63,0,0,1,.42.12l2.12,1.72,2.8-2.94a.54.54,0,0,1,.4-.17h0a.54.54,0,0,1,.4.17l4.33,4.48H22V6a.74.74,0,0,0-.74-.74H2.74A.74.74,0,0,0,2,6v6.81Z"/><rect class="cls-2" x="8.67" y="18.18" width="6.67" height="0.61" rx="0.3"/></g></svg>

After

Width:  |  Height:  |  Size: 789 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#aecbfa;}.cls-1,.cls-2{fill-rule:evenodd;}.cls-2{fill:#4285f4;}</style></defs><title>Icon_24px_CloudRun_Color</title><g data-name="Product Icons"><g ><polygon class="cls-1" points="8.9 2.63 12.02 12 21.38 12 8.9 2.63"/><polygon class="cls-2" points="21.38 12 12.02 12 8.9 21.38 21.38 12"/><polygon class="cls-2" points="3.44 21.38 6.57 19.81 8.9 12 5.78 12 3.44 21.38"/><polygon class="cls-1" points="3.44 2.63 5.78 12 8.9 12 6.57 4.19 3.44 2.63"/></g></g></svg>

After

Width:  |  Height:  |  Size: 574 B

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<defs>
<style>.cls-1{fill:#aecbfa;}.cls-1,.cls-2,.cls-3{fill-rule:evenodd;}.cls-2{fill:#669df6;}.cls-3{fill:#4285f4;}</style>
</defs>
<title>Icon_24px_SQL_Color</title>
<g data-name="Product Icons">
<g >
<polygon class="cls-1" points="4.67 10.44 4.67 13.45 12 17.35 12 14.34 4.67 10.44"/>
<polygon class="cls-1" points="4.67 15.09 4.67 18.1 12 22 12 18.99 4.67 15.09"/>
<polygon class="cls-2" points="12 17.35 19.33 13.45 19.33 10.44 12 14.34 12 17.35"/>
<polygon class="cls-2" points="12 22 19.33 18.1 19.33 15.09 12 18.99 12 22"/>
<polygon class="cls-3" points="19.33 8.91 19.33 5.9 12 2 12 5.01 19.33 8.91"/>
<polygon class="cls-2" points="12 2 4.67 5.9 4.67 8.91 12 5.01 12 2"/>
<polygon class="cls-1" points="4.67 5.87 4.67 8.89 12 12.79 12 9.77 4.67 5.87"/>
<polygon class="cls-2" points="12 12.79 19.33 8.89 19.33 5.87 12 9.77 12 12.79"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="800" width="1200" viewBox="-19.20015 -28.483 166.4013 170.898"><g transform="translate(0 -7.034)"><linearGradient y2="120.789" x2="64" y1="7.034" x1="64" gradientUnits="userSpaceOnUse" id="a"><stop offset="0" stop-color="#4387fd"/><stop offset="1" stop-color="#4683ea"/></linearGradient><path d="M27.79 115.217L1.54 69.749a11.499 11.499 0 010-11.499l26.25-45.467a11.5 11.5 0 019.96-5.75h52.5a11.5 11.5 0 019.959 5.75l26.25 45.467a11.499 11.499 0 010 11.5l-26.25 45.466a11.5 11.5 0 01-9.959 5.75h-52.5a11.499 11.499 0 01-9.96-5.75z" fill="url(#a)"/></g><g transform="translate(0 -7.034)"><defs><path d="M27.791 115.217L1.541 69.749a11.499 11.499 0 010-11.499l26.25-45.467a11.499 11.499 0 019.959-5.75h52.5a11.5 11.5 0 019.96 5.75l26.25 45.467a11.499 11.499 0 010 11.5l-26.25 45.466a11.499 11.499 0 01-9.96 5.75h-52.5a11.499 11.499 0 01-9.959-5.75z" id="b"/></defs><clipPath id="c"><use height="100%" width="100%" xlink:href="#b" overflow="visible"/></clipPath><path clip-path="url(#c)" opacity=".07" d="M49.313 53.875l-7.01 6.99 5.957 5.958-5.898 10.476 44.635 44.636 10.816.002L118.936 84 85.489 50.55z"/></g><path d="M84.7 43.236H43.264c-.667 0-1.212.546-1.212 1.214v8.566c0 .666.546 1.212 1.212 1.212H84.7c.667 0 1.213-.546 1.213-1.212v-8.568c0-.666-.545-1.213-1.212-1.213m-6.416 7.976a2.484 2.484 0 01-2.477-2.48 2.475 2.475 0 012.477-2.477c1.37 0 2.48 1.103 2.48 2.477a2.48 2.48 0 01-2.48 2.48m6.415 8.491l-41.436.002c-.667 0-1.212.546-1.212 1.214v8.565c0 .666.546 1.213 1.212 1.213H84.7c.667 0 1.213-.547 1.213-1.213v-8.567c0-.666-.545-1.214-1.212-1.214m-6.416 7.976a2.483 2.483 0 01-2.477-2.48 2.475 2.475 0 012.477-2.477 2.48 2.48 0 110 4.956" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="800" width="1200" viewBox="-19.20015 -28.483 166.4013 170.898"><g transform="translate(0 -7.034)"><linearGradient y2="120.789" x2="64" y1="7.034" x1="64" gradientUnits="userSpaceOnUse" id="a"><stop offset="0" stop-color="#4387fd"/><stop offset="1" stop-color="#4683ea"/></linearGradient><path d="M27.79 115.217L1.54 69.749a11.499 11.499 0 010-11.499l26.25-45.467a11.5 11.5 0 019.96-5.75h52.5a11.5 11.5 0 019.959 5.75l26.25 45.467a11.499 11.499 0 010 11.5l-26.25 45.466a11.5 11.5 0 01-9.959 5.75h-52.5a11.499 11.499 0 01-9.96-5.75z" fill="url(#a)"/></g><g transform="translate(0 -7.034)"><defs><path d="M27.791 115.217L1.541 69.749a11.499 11.499 0 010-11.499l26.25-45.467a11.499 11.499 0 019.959-5.75h52.5a11.5 11.5 0 019.96 5.75l26.25 45.467a11.499 11.499 0 010 11.5l-26.25 45.466a11.5 11.5 0 01-9.96 5.75h-52.5a11.499 11.499 0 01-9.959-5.75z" id="b"/></defs><clipPath id="c"><use height="100%" width="100%" xlink:href="#b" overflow="visible"/></clipPath><path clip-path="url(#c)" opacity=".07" d="M72.531 46.25l-6.75-6.75-3.125 6.687-6.671-6.671-1.641 8.088-5.938 1.02-1.232 5.282-7.683 1.835 6.884 6.884-6.81 3.033 6.81 6.81-6.854 2.928 46.682 46.682 11.464-.037 21.552-38.926L75.635 39.53z"/></g><g fill="#fff"><path d="M69.831 50.062H58.422c-.668 0-1.215.547-1.215 1.214l.001 11.407a1.22 1.22 0 001.214 1.215H69.83a1.22 1.22 0 001.215-1.215V51.276c0-.667-.546-1.214-1.213-1.214"/><path d="M87.89 49.142c.6 0 1.09-.492 1.09-1.09v-1.776c0-.598-.49-1.09-1.09-1.09h-5.55V40a1.22 1.22 0 00-1.213-1.213h-5.209l.001-5.57c0-.597-.49-1.089-1.089-1.089l-1.777.001c-.6 0-1.09.491-1.09 1.089l.001 5.568h-5.86v-5.57c0-.596-.49-1.088-1.088-1.088l-1.779.001c-.599 0-1.089.491-1.089 1.089l.001 5.568-5.86.001v-5.571c0-.596-.49-1.088-1.088-1.088h-1.778c-.598 0-1.09.492-1.09 1.09l.002 5.569h-5.207A1.22 1.22 0 0045.912 40v5.187h-5.549c-.597 0-1.088.492-1.088 1.09l.001 1.778c0 .598.49 1.088 1.088 1.088h5.548l.002 5.86h-5.55c-.598 0-1.089.49-1.089 1.088l.001 1.777c0 .6.49 1.09 1.088 1.09h5.55v5.86l-5.55-.001c-.598 0-1.089.491-1.089 1.089l.001 1.777c0 .6.49 1.089 1.088 1.089h5.55v5.19c0 .665.547 1.213 1.213 1.213h5.208v5.567c0 .6.49 1.09 1.089 1.09H55.2c.598 0 1.088-.49 1.088-1.09l.001-5.567h5.859l.001 5.567c0 .6.49 1.09 1.09 1.09h1.776c.598 0 1.088-.49 1.088-1.09l.001-5.567h5.859l.001 5.567c0 .6.49 1.09 1.09 1.09h1.775c.599 0 1.09-.49 1.09-1.09v-5.567h5.206a1.22 1.22 0 001.214-1.214l.001-5.189 5.55-.001c.599 0 1.089-.489 1.089-1.088v-1.775c0-.6-.49-1.09-1.09-1.09h-5.548v-5.86l5.549-.002c.6 0 1.09-.488 1.09-1.088v-1.775c0-.6-.49-1.09-1.09-1.09h-5.55v-5.86h5.55zm-9.647 21.955H50.009V42.862l28.236-.001z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1 @@
<svg id="Artwork" xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"><path d="M19.73,6.56a1.73,1.73,0,0,0-1.68,1.68,1.83,1.83,0,0,0,.89,1.48v6.9l-5.16,3.06.8,1.28,5.55-3.25a.84.84,0,0,0,.4-.69V9.72a1.64,1.64,0,0,0,.89-1.48A1.61,1.61,0,0,0,19.73,6.56Z" style="fill:#aecbfa"/><path id="Path-2" data-name="Path" d="M18,5.48,12.39,2.32a1.18,1.18,0,0,0-.79,0L5.25,6A1.72,1.72,0,0,0,2.57,7.35,1.73,1.73,0,0,0,4.26,9,1.73,1.73,0,0,0,5.94,7.35L12,3.9l5.15,3Z" style="fill:#aecbfa"/><path id="Path-3" data-name="Path" d="M11.2,18.5a1.57,1.57,0,0,0-.89.29l-5.16-3V9.92H3.56v6.31a.84.84,0,0,0,.4.69L9.52,20v.09a1.69,1.69,0,0,0,3.37,0A1.65,1.65,0,0,0,11.2,18.5Z" style="fill:#aecbfa"/><polygon id="Path-4" data-name="Path" points="16.96 8.63 12.1 5.78 7.13 8.63 12.1 11.4 16.96 8.63" style="fill:#669df6"/><polygon points="12.1 12.38 6.84 9.32 6.84 11.79 12.1 14.75 12.1 12.38" style="fill:#669df6"/><polygon points="12.1 15.73 6.84 12.68 6.84 14.75 12.1 17.81 12.1 15.73" style="fill:#669df6"/><path d="M12.09,12.38v2.37l5.26-3.06V9.33Zm4.32-.94a.38.38,0,1,1,0-.76.38.38,0,0,1,0,.76Z" style="fill:#4285f4"/><path d="M12.09,15.73V17.8l5.26-3.05V12.68Zm4.32-1.07a.38.38,0,1,1,0-.76.38.38,0,0,1,0,.76Z" style="fill:#4285f4"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#aecbfa;}.cls-2{fill:#669df6;}.cls-3{fill:#4285f4;}</style></defs><title>Icon_24px_VirtualPrivateCloud_Color</title><g data-name="Product Icons"><rect class="cls-1" x="16" y="2" width="6" height="6"/><rect class="cls-2" x="19" y="2" width="3" height="6"/><rect class="cls-1" x="16" y="16" width="6" height="6"/><rect class="cls-2" x="19" y="16" width="3" height="6"/><rect class="cls-1" x="2" y="2" width="6" height="6"/><rect class="cls-2" x="5" y="2" width="3" height="6"/><rect class="cls-1" x="2" y="16" width="6" height="6"/><rect class="cls-2" x="5" y="16" width="3" height="6"/><rect class="cls-2" x="8" y="4" width="8" height="2"/><rect class="cls-2" x="8" y="18" width="8" height="2"/><rect class="cls-2" x="18" y="8" width="2" height="8"/><rect class="cls-2" x="4" y="8" width="2" height="8"/><rect class="cls-3" x="4" y="8" width="2" height="2"/><rect class="cls-3" x="18" y="8" width="2" height="2"/><rect class="cls-3" x="8" y="4" width="2" height="2"/><rect class="cls-3" x="8" y="18" width="2" height="2"/></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 254.5 225" style="enable-background:new 0 0 254.5 225;" xml:space="preserve">
<style type="text/css">
.st0{fill:#2DBCAF;}
.st1{fill:#5DC9E1;}
.st2{fill:#FDDD00;}
.st3{fill:#CE3262;}
.st4{fill:#00ACD7;}
.st5{fill:#FFFFFF;}
</style>
<g>
<g>
<g>
<g>
<path class="st4" d="M40.2,101.1c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5l35.7,0c0.4,0,0.5,0.3,0.3,0.6
l-1.7,2.6c-0.2,0.3-0.7,0.6-1,0.6L40.2,101.1z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path class="st4" d="M25.1,110.3c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5l45.6,0c0.4,0,0.6,0.3,0.5,0.6
l-0.8,2.4c-0.1,0.4-0.5,0.6-0.9,0.6L25.1,110.3z"/>
</g>
</g>
</g>
<g>
<g>
<g>
<path class="st4" d="M49.3,119.5c-0.4,0-0.5-0.3-0.3-0.6l1.4-2.5c0.2-0.3,0.6-0.6,1-0.6l20,0c0.4,0,0.6,0.3,0.6,0.7l-0.2,2.4
c0,0.4-0.4,0.7-0.7,0.7L49.3,119.5z"/>
</g>
</g>
</g>
<g>
<g id="CXHf1q_3_">
<g>
<g>
<path class="st4" d="M153.1,99.3c-6.3,1.6-10.6,2.8-16.8,4.4c-1.5,0.4-1.6,0.5-2.9-1c-1.5-1.7-2.6-2.8-4.7-3.8
c-6.3-3.1-12.4-2.2-18.1,1.5c-6.8,4.4-10.3,10.9-10.2,19c0.1,8,5.6,14.6,13.5,15.7c6.8,0.9,12.5-1.5,17-6.6
c0.9-1.1,1.7-2.3,2.7-3.7c-3.6,0-8.1,0-19.3,0c-2.1,0-2.6-1.3-1.9-3c1.3-3.1,3.7-8.3,5.1-10.9c0.3-0.6,1-1.6,2.5-1.6
c5.1,0,23.9,0,36.4,0c-0.2,2.7-0.2,5.4-0.6,8.1c-1.1,7.2-3.8,13.8-8.2,19.6c-7.2,9.5-16.6,15.4-28.5,17
c-9.8,1.3-18.9-0.6-26.9-6.6c-7.4-5.6-11.6-13-12.7-22.2c-1.3-10.9,1.9-20.7,8.5-29.3c7.1-9.3,16.5-15.2,28-17.3
c9.4-1.7,18.4-0.6,26.5,4.9c5.3,3.5,9.1,8.3,11.6,14.1C154.7,98.5,154.3,99,153.1,99.3z"/>
</g>
<g>
<path class="st4" d="M186.2,154.6c-9.1-0.2-17.4-2.8-24.4-8.8c-5.9-5.1-9.6-11.6-10.8-19.3c-1.8-11.3,1.3-21.3,8.1-30.2
c7.3-9.6,16.1-14.6,28-16.7c10.2-1.8,19.8-0.8,28.5,5.1c7.9,5.4,12.8,12.7,14.1,22.3c1.7,13.5-2.2,24.5-11.5,33.9
c-6.6,6.7-14.7,10.9-24,12.8C191.5,154.2,188.8,154.3,186.2,154.6z M210,114.2c-0.1-1.3-0.1-2.3-0.3-3.3
c-1.8-9.9-10.9-15.5-20.4-13.3c-9.3,2.1-15.3,8-17.5,17.4c-1.8,7.8,2,15.7,9.2,18.9c5.5,2.4,11,2.1,16.3-0.6
C205.2,129.2,209.5,122.8,210,114.2z"/>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Made by gilbarbara: https://github.com/gilbarbara/logos -->
<svg width="285px" height="285px" viewBox="-14.5 0 285 285" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M230.4,0 C244.39552,0 255.77047,11.2315104 255.99657,25.1765997 L256,25.6 L256,258.844444 C256,272.839964 244.765005,284.214915 230.823296,284.441014 L230.4,284.444444 L25.6,284.444444 C11.60448,284.444444 0.2295296,273.209449 0.003430144,259.26774 L0,258.844444 L0,25.6 C0,11.60096 11.2349952,0.2294592 25.1767043,0.003429088 L25.6,0 L230.4,0 Z M230.4,14.2222222 L25.6,14.2222222 C19.426,14.2222222 14.3820625,19.169691 14.2259468,25.3068692 L14.2222222,25.6 L14.2222222,258.844444 C14.2222222,265.018444 19.169691,270.062382 25.3068692,270.218498 L25.6,270.222222 L230.4,270.222222 C236.5775,270.222222 241.618047,265.274753 241.774056,259.137575 L241.777778,258.844444 L241.777778,25.6 C241.777778,19.328 236.675556,14.2222222 230.4,14.2222222 Z M64,184.888889 L96,213.333333 L64,241.777778 L64,184.888889 Z M92.4444444,42.6666667 L92.4444444,123.416889 C106.645333,118.794667 126.496,113.777778 145.777778,113.777778 C163.36,113.777778 173.884444,120.689778 179.616,126.488889 C191.7248,138.738489 192.013158,154.309103 191.997015,156.385666 L191.996444,156.444444 L192,241.777778 L163.555556,241.777778 L163.555556,156.835556 C163.416889,150.197333 160.216889,142.222222 145.777778,142.222222 C117.146098,142.222222 85.0644658,156.478539 84.1117507,156.905113 L84.0924444,156.913778 L64,166.016 L64,42.6666667 L92.4444444,42.6666667 Z M192,42.6666667 C190.08,58.8231111 183.530667,74.3111111 170.666667,88.8888889 L170.666667,88.8888889 L142.222222,88.8888889 C153.400889,74.2222222 160.419556,58.7875556 163.555556,42.6666667 L163.555556,42.6666667 Z" fill="#430098"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 98.18" style="enable-background:new 0 0 122.88 98.18" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;} .st0{fill:#1668dc;} .st1{fill:#FFFFFF;}</style><g><path class="st0" d="M3.42,0h116.05c1.88,0,3.41,1.54,3.41,3.41v91.36c0,1.88-1.54,3.41-3.41,3.41l-116.05,0 C1.54,98.18,0,96.65,0,94.77L0,3.41C0,1.53,1.54,0,3.42,0L3.42,0L3.42,0z M25.89,8.19c2.05,0,3.72,1.67,3.72,3.72 c0,2.05-1.67,3.72-3.72,3.72c-2.05,0-3.72-1.67-3.72-3.72C22.17,9.85,23.83,8.19,25.89,8.19L25.89,8.19z M103.07,7.69l2.52,2.77 l2.52-2.77l1.97,1.79l-2.69,2.96l2.69,2.96l-1.97,1.79l-2.52-2.77l-2.52,2.77l-1.97-1.79l2.69-2.96l-2.69-2.96L103.07,7.69 L103.07,7.69z M14.52,8.19c2.05,0,3.72,1.67,3.72,3.72c0,2.05-1.67,3.72-3.72,3.72c-2.05,0-3.72-1.67-3.72-3.72 C10.79,9.85,12.46,8.19,14.52,8.19L14.52,8.19z M37.26,8.19c2.05,0,3.72,1.67,3.72,3.72c0,2.05-1.67,3.72-3.72,3.72 c-2.05,0-3.72-1.67-3.72-3.72C33.54,9.85,35.21,8.19,37.26,8.19L37.26,8.19z M14.05,22.75h93.33c1.77,0,3.22,1.49,3.22,3.22v59.2 c0,1.73-1.49,3.22-3.22,3.22l-93.33,0c-1.73,0-3.22-1.45-3.22-3.22v-59.2C10.84,24.2,12.29,22.75,14.05,22.75L14.05,22.75 L14.05,22.75z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="446" height="231" viewBox="0, 0, 446, 231">
<path d="M 13.009,0 433.107,0 C440.228,0 446,5.772 446,12.893 l0,205.214 C446,225.228 440.228,231 433.107,231 L13.009,231 C5.889,231 0.116,225.228 0.116,218.107 l0,-205.214 C0.116,5.772 5.889,0 13.009,0 z" fill="#27415E"/>
<path d="m64.431,149.881 0,-36.665 c0.243,-8.863 5.221,-13.962 10.927,-13.962 8.985,0 10.806,7.406 10.927,13.962 l0,36.665 18.212,0 0,-39.7 c0,-2.064 -0.243,-5.949 -1.215,-9.713 C101.097,91.605 89.32,87.113 83.25,87.113 c-9.227,0 -14.933,3.642 -18.697,9.227 l-0.243,-0.243 0,-33.873 -18.09,0 0,87.657 z" fill="#FFF"/>
<path d="m112.51,88.934 0,12.141 12.262,0 0,29.988 c0,13.234 3.035,20.64 17.24,20.64 2.55,0 12.262,-0.85 14.326,-1.822 l0,-10.684 c-1.942,0.122 -3.885,0.365 -5.827,0.365 -6.314,0 -7.528,-2.186 -7.528,-10.199 l0,-28.288 13.72,0 0,-12.141 -13.72,0 0,-18.576 -18.211,6.556 0,12.02 z" fill="#FFF" id="t"/>
<use transform="translate(47.228,0)" xlink:href="#t" />
<path d="m230.762,88.934 -18.454,0 c0.243,4.006 0.607,8.134 0.607,12.141 l0,72.117 18.211,0 0,-31.931 0.243,0 c3.885,7.163 10.684,10.442 18.576,10.442 17.847,0 26.224,-16.634 26.224,-32.295 0,-16.391 -9.591,-32.295 -28.531,-32.295 -6.313,0 -12.869,3.763 -16.269,8.863 l-0.243,0 z m0.364,30.474 c0,-8.378 3.279,-20.154 13.113,-20.154 11.655,0 13.112,10.805 13.112,20.154 0,9.348 -1.457,20.154 -13.112,20.154 -9.834,0 -13.113,-11.777 -13.113,-20.154 z" fill="#FFF"/>
<path d="m305.672,149.881 0,-16.147 -15.419,0 0,16.147 z m0,-44.921 0,-16.147 -15.419,0 0,16.147 z" fill="#FFF"/>
<path d="m363.584,62.224 -14.083,0 -29.624,99.313 14.205,0 z" fill="#FFF" id="slash"/>
<use transform="translate(43.472,0)" xlink:href="#slash" />
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 192.756 192.756" xmlns="http://www.w3.org/2000/svg">
<g fill-rule="evenodd" clip-rule="evenodd">
<path fill="#ffffff" d="M0 0h192.756v192.756H0V0z"/>
<path d="M80.372 101.729s-4.604 2.679 3.28 3.584c9.554 1.091 14.434.934 24.959-1.057 0 0 2.771 1.735 6.639 3.236-23.601 10.113-53.413-.585-34.878-5.763zM77.487 88.532s-5.165 3.823 2.726 4.639c10.206 1.054 18.262 1.14 32.211-1.544 0 0 1.926 1.955 4.957 3.023-28.531 8.345-60.307.657-39.894-6.118z" fill="#3174b9"/>
<path d="M101.797 66.143c5.818 6.697-1.525 12.72-1.525 12.72s14.766-7.621 7.984-17.168c-6.332-8.899-11.189-13.32 15.102-28.566-.001-.001-41.27 10.303-21.561 33.014z" fill="#ca3132"/>
<path d="M133.01 111.491s3.408 2.81-3.754 4.983c-13.619 4.125-56.694 5.369-68.659.164-4.298-1.872 3.766-4.467 6.303-5.015 2.646-.572 4.156-.468 4.156-.468-4.783-3.368-30.916 6.615-13.272 9.479 48.112 7.801 87.704-3.512 75.226-9.143zM82.587 74.857s-21.908 5.205-7.757 7.097c5.977.799 17.883.615 28.982-.316 9.068-.761 18.17-2.389 18.17-2.389s-3.195 1.371-5.51 2.949c-22.251 5.853-65.229 3.127-52.855-2.856 10.462-5.061 18.97-4.485 18.97-4.485zM121.891 96.824c22.617-11.75 12.16-23.044 4.859-21.522-1.785.373-2.586.695-2.586.695s.666-1.042 1.932-1.49c14.441-5.075 25.545 14.972-4.656 22.911-.001 0 .347-.314.451-.594z" fill="#3174b9"/>
<path d="M108.256 8.504s12.523 12.531-11.881 31.794c-19.571 15.458-4.462 24.269-.006 34.34-11.426-10.307-19.807-19.382-14.185-27.826 8.254-12.395 31.125-18.406 26.072-38.308z" fill="#ca3132"/>
<path d="M84.812 128.674c21.706 1.388 55.045-.771 55.836-11.044 0 0-1.518 3.894-17.941 6.983-18.529 3.488-41.386 3.082-54.938.845 0 0 2.777 2.298 17.043 3.216z" fill="#3174b9"/>
<path d="M139.645 147.096h-.66v-.37h1.781v.37h-.66v1.848h-.461v-1.848zm3.554.092h-.008l-.656 1.755h-.301l-.652-1.755h-.008v1.755h-.438v-2.218h.643l.604 1.569.604-1.569h.637v2.218h-.424v-1.755h-.001zM81.255 167.921c-2.047 1.774-4.211 2.772-6.154 2.772-2.768 0-4.27-1.663-4.27-4.324 0-2.881 1.608-4.989 8.044-4.989h2.379v6.541h.001zm5.65 6.374v-19.732c0-5.043-2.876-8.371-9.809-8.371-4.045 0-7.591.999-10.474 2.272l.83 3.495c2.271-.834 5.207-1.607 8.089-1.607 3.994 0 5.713 1.607 5.713 4.934v2.495h-1.996c-9.702 0-14.08 3.764-14.08 9.423 0 4.876 2.885 7.648 8.316 7.648 3.491 0 6.099-1.441 8.534-3.55l.443 2.993h4.434zM105.762 174.295h-7.045l-8.483-27.601h6.154l5.265 16.961 1.172 5.096c2.656-7.371 4.541-14.854 5.484-22.057h5.984c-1.602 9.088-4.488 19.066-8.531 27.601zM132.799 167.921c-2.053 1.774-4.217 2.772-6.156 2.772-2.768 0-4.268-1.663-4.268-4.324 0-2.881 1.609-4.989 8.041-4.989h2.383v6.541zm5.652 6.374v-19.732c0-5.043-2.885-8.371-9.811-8.371-4.049 0-7.594.999-10.477 2.272l.83 3.495c2.271-.834 5.213-1.607 8.096-1.607 3.988 0 5.709 1.607 5.709 4.934v2.495h-1.996c-9.703 0-14.078 3.764-14.078 9.423 0 4.876 2.879 7.648 8.311 7.648 3.494 0 6.098-1.441 8.539-3.55l.445 2.993h4.432zM58.983 178.985c-1.61 2.353-4.214 4.216-7.061 5.267l-2.79-3.286c2.169-1.113 4.027-2.91 4.892-4.582.745-1.49 1.056-3.406 1.056-7.992v-31.515h6.005v31.08c0 6.134-.49 8.613-2.102 11.028z" fill="#ca3132"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 192.756 192.756" xmlns="http://www.w3.org/2000/svg">
<g fill-rule="evenodd" clip-rule="evenodd">
<path fill="#ffffff" d="M0 0h192.756v192.756H0V0z"/>
<path d="M80.372 101.729s-4.604 2.679 3.28 3.584c9.554 1.091 14.434.934 24.959-1.057 0 0 2.771 1.735 6.639 3.236-23.601 10.113-53.413-.585-34.878-5.763zM77.487 88.532s-5.165 3.823 2.726 4.639c10.206 1.054 18.262 1.14 32.211-1.544 0 0 1.926 1.955 4.957 3.023-28.531 8.345-60.307.657-39.894-6.118z" fill="#3174b9"/>
<path d="M101.797 66.143c5.818 6.697-1.525 12.72-1.525 12.72s14.766-7.621 7.984-17.168c-6.332-8.899-11.189-13.32 15.102-28.566-.001-.001-41.27 10.303-21.561 33.014z" fill="#ca3132"/>
<path d="M133.01 111.491s3.408 2.81-3.754 4.983c-13.619 4.125-56.694 5.369-68.659.164-4.298-1.872 3.766-4.467 6.303-5.015 2.646-.572 4.156-.468 4.156-.468-4.783-3.368-30.916 6.615-13.272 9.479 48.112 7.801 87.704-3.512 75.226-9.143zM82.587 74.857s-21.908 5.205-7.757 7.097c5.977.799 17.883.615 28.982-.316 9.068-.761 18.17-2.389 18.17-2.389s-3.195 1.371-5.51 2.949c-22.251 5.853-65.229 3.127-52.855-2.856 10.462-5.061 18.97-4.485 18.97-4.485zM121.891 96.824c22.617-11.75 12.16-23.044 4.859-21.522-1.785.373-2.586.695-2.586.695s.666-1.042 1.932-1.49c14.441-5.075 25.545 14.972-4.656 22.911-.001 0 .347-.314.451-.594z" fill="#3174b9"/>
<path d="M108.256 8.504s12.523 12.531-11.881 31.794c-19.571 15.458-4.462 24.269-.006 34.34-11.426-10.307-19.807-19.382-14.185-27.826 8.254-12.395 31.125-18.406 26.072-38.308z" fill="#ca3132"/>
<path d="M84.812 128.674c21.706 1.388 55.045-.771 55.836-11.044 0 0-1.518 3.894-17.941 6.983-18.529 3.488-41.386 3.082-54.938.845 0 0 2.777 2.298 17.043 3.216z" fill="#3174b9"/>
<path d="M139.645 147.096h-.66v-.37h1.781v.37h-.66v1.848h-.461v-1.848zm3.554.092h-.008l-.656 1.755h-.301l-.652-1.755h-.008v1.755h-.438v-2.218h.643l.604 1.569.604-1.569h.637v2.218h-.424v-1.755h-.001zM81.255 167.921c-2.047 1.774-4.211 2.772-6.154 2.772-2.768 0-4.27-1.663-4.27-4.324 0-2.881 1.608-4.989 8.044-4.989h2.379v6.541h.001zm5.65 6.374v-19.732c0-5.043-2.876-8.371-9.809-8.371-4.045 0-7.591.999-10.474 2.272l.83 3.495c2.271-.834 5.207-1.607 8.089-1.607 3.994 0 5.713 1.607 5.713 4.934v2.495h-1.996c-9.702 0-14.08 3.764-14.08 9.423 0 4.876 2.885 7.648 8.316 7.648 3.491 0 6.099-1.441 8.534-3.55l.443 2.993h4.434zM105.762 174.295h-7.045l-8.483-27.601h6.154l5.265 16.961 1.172 5.096c2.656-7.371 4.541-14.854 5.484-22.057h5.984c-1.602 9.088-4.488 19.066-8.531 27.601zM132.799 167.921c-2.053 1.774-4.217 2.772-6.156 2.772-2.768 0-4.268-1.663-4.268-4.324 0-2.881 1.609-4.989 8.041-4.989h2.383v6.541zm5.652 6.374v-19.732c0-5.043-2.885-8.371-9.811-8.371-4.049 0-7.594.999-10.477 2.272l.83 3.495c2.271-.834 5.213-1.607 8.096-1.607 3.988 0 5.709 1.607 5.709 4.934v2.495h-1.996c-9.703 0-14.078 3.764-14.078 9.423 0 4.876 2.879 7.648 8.311 7.648 3.494 0 6.098-1.441 8.539-3.55l.445 2.993h4.432zM58.983 178.985c-1.61 2.353-4.214 4.216-7.061 5.267l-2.79-3.286c2.169-1.113 4.027-2.91 4.892-4.582.745-1.49 1.056-3.406 1.056-7.992v-31.515h6.005v31.08c0 6.134-.49 8.613-2.102 11.028z" fill="#ca3132"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 630 630">
<rect width="630" height="630" fill="#f7df1e"/>
<path d="m423.2 492.19c12.69 20.72 29.2 35.95 58.4 35.95 24.53 0 40.2-12.26 40.2-29.2 0-20.3-16.1-27.49-43.1-39.3l-14.8-6.35c-42.72-18.2-71.1-41-71.1-89.2 0-44.4 33.83-78.2 86.7-78.2 37.64 0 64.7 13.1 84.2 47.4l-46.1 29.6c-10.15-18.2-21.1-25.37-38.1-25.37-17.34 0-28.33 11-28.33 25.37 0 17.76 11 24.95 36.4 35.95l14.8 6.34c50.3 21.57 78.7 43.56 78.7 93 0 53.3-41.87 82.5-98.1 82.5-54.98 0-90.5-26.2-107.88-60.54zm-209.13 5.13c9.3 16.5 17.76 30.45 38.1 30.45 19.45 0 31.72-7.61 31.72-37.2v-201.3h59.2v202.1c0 61.3-35.94 89.2-88.4 89.2-47.4 0-74.85-24.53-88.81-54.075z"/>
</svg>

After

Width:  |  Height:  |  Size: 687 B

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="598" viewBox="-5.64904,-5.64904,342.033,199.599" width="1024" xmlns="http://www.w3.org/2000/svg">
<path d="m215.233 169.638 4.51938 9.06669h-3.82425l-4.39355-8.78042h-4.99513v8.78042h-3.2549v-22.1919h9.70328c3.85802 0 7.11292 2.06082 7.11292 6.62726 0 3.5491-1.86454 5.73766-4.86775 6.49797zm-2.24517-9.98706h-6.44838v7.13361h6.44838c2.2129 0 3.76134-1.14045 3.76134-3.55065 0-2.31476-1.51617-3.58296-3.76134-3.58296z" fill="#c00"/>
<path d="m238.115 171.542h-10.9693c.34835 3.20129 2.14999 4.5649 4.1741 4.5649 1.39036 0 2.49683-.50635 3.60326-1.3313l1.929 2.0916c-1.45327 1.39441-3.19197 2.18702-5.72253 2.18702-3.88718 0-7.17582-3.13816-7.17582-8.65421 0-5.64379 2.97253-8.68807 7.26943-8.68807 4.7097 0 6.98705 3.83537 6.98705 8.3387 0 .60025-.06293 1.142-.09515 1.49136zm-7.11288-6.8812c-2.18223 0-3.50965 1.52061-3.79508 4.18475h7.71292c-.15654-2.28245-1.23076-4.18475-3.91784-4.18475z" fill="#c00"/>
<path d="m252.243 178.705v-1.58371c-1.20158 1.10967-2.59195 1.93307-4.33066 1.93307-3.57255 0-6.3855-2.59795-6.3855-8.94047 0-5.7069 3.0984-8.40181 6.54358-8.40181 1.67578 0 3.25641.88805 4.17411 1.9023v-6.34099l3.22421-1.68068v23.1123h-3.22574zm.03224-11.7924c-.7274-.98347-2.24515-2.18857-3.88871-2.18857-2.33874 0-3.60324 1.7761-3.60324 5.29442 0 4.18474 1.32741 6.0224 3.73063 6.0224 1.54842 0 2.90808-1.04657 3.76132-2.12238z" fill="#c00"/>
<path d="m282.775 178.705v-9.95474h-10.1806v9.95474h-3.31783v-22.1919h3.31783v8.97127h10.1806v-8.97127h3.31779v22.1919z" fill="#c00"/>
<path d="m300.882 178.705v-1.64681c-1.13714 1.14045-2.75004 1.99617-4.55164 1.99617-2.68708 0-5.75322-1.5206-5.75322-5.61146 0-3.70917 2.84512-5.38984 6.60646-5.38984 1.54994 0 2.78224.22163 3.6984.6341v-1.23742c0-1.80686-1.10647-2.82111-3.12906-2.82111-1.70649 0-3.03545.31705-4.33068 1.04656l-1.2645-2.47175c1.58065-.98348 3.35159-1.49136 5.69033-1.49136 3.69839 0 6.22895 1.80687 6.22895 5.58068v11.4122h-3.19504zm0-7.09975c-.88394-.4448-2.02262-.73106-3.79355-.73106-2.08554 0-3.41449.95115-3.41449 2.47329 0 1.64681 1.04353 2.75802 3.19198 2.75802 1.74024 0 3.25644-1.07735 4.01452-2.12392v-2.37633z" fill="#c00"/>
<path d="m316.686 178.293c-.79186.44478-1.89678.7603-3.19352.7603-2.30805 0-3.73063-1.42518-3.73063-4.40637v-9.60537h-2.37096v-2.98119h2.37096v-4.75574l3.19353-1.71145v6.46719h4.10966v2.98119h-4.10966v9.03591c0 1.55293.50487 1.99771 1.70649 1.99771.85323 0 1.80161-.31703 2.40162-.66641z" fill="#c00"/>
<path d="m163.265 78.5313c5.47854-2.75033 9.20763-7.85081 9.20763-14.1302 0-14.6351-13.2191-17.784-25.2672-17.5778h-32.5121-.18569-18.0255v46.7294c0 6.78578-2.35869 9.13595-6.5589 9.13595-4.51327 0-7.05151-2.54563-7.05151-7.16901v-6.47181h-17.1415v3.03044c0 15.6278 5.97268 26.3166 24.48 26.3166 15.0959 0 23.0774-6.70421 24.2974-19.9433v18.475h33.5756c14.9793 0 27.2193-5.10204 27.2193-21.7948 0-7.94932-4.59-14.4304-12.0374-16.6005zm-30.5417-17.5762h14.0892c3.82578 0 7.44592 1.68068 7.44592 6.77963 0 5.00661-4.30612 6.67651-7.44592 6.67651h-14.0892v-13.4561zm14.5818 41.3457h-14.5818v-16.1126h14.5818c5.48775 0 9.79691 2.07005 9.79691 8.24175 0 5.8023-4.01606 7.87082-9.79691 7.87082z" fill="#c00"/>
<path d="m138.217 166.834c0-11.8432-9.5836-21.4655-21.3985-21.4655-11.8379 0-21.4154 9.6223-21.4154 21.4655 0 11.8647 9.57746 21.467 21.4154 21.467 11.8149 0 21.3985-9.60229 21.3985-21.467z" fill="#c00"/>
<path d="m81.3524 160.062c0-10.4934-8.49098-19.006-18.9631-19.006-10.4706 0-18.9554 8.51109-18.9554 19.006 0 10.5026 8.4833 19.0184 18.9554 19.0184s18.9631-8.51571 18.9631-19.0184z" fill="#c00"/>
<path d="m38.514 125.712c0-9.47608-7.64846-17.1622-17.1108-17.1622-9.46543 0-17.1262 7.68615-17.1262 17.1622 0 9.50223 7.66075 17.1884 17.1262 17.1884 9.46084 0 17.1108-7.68615 17.1108-17.1884z" fill="#c00"/>
<path d="m30.5662 77.9003c0-8.47415-6.83666-15.323-15.277-15.323-8.43879 0-15.2893 6.84735-15.2893 15.323 0 8.46491 6.85047 15.3353 15.2893 15.3353 8.44033 0 15.277-6.87197 15.277-15.3353z" fill="#c00"/>
<path d="m51.9924 34.9662c0-7.10899-5.76398-12.8759-12.8477-12.8759-7.08834 0-12.8431 5.76691-12.8431 12.8759 0 7.11514 5.75476 12.8774 12.8431 12.8774 7.08373 0 12.8477-5.7623 12.8477-12.8774z" fill="#c00"/>
<path d="m88.6694 15.951c0-6.43334-5.19464-11.6523-11.6108-11.6523-6.41465 0-11.6185 5.219-11.6185 11.6523 0 6.4441 5.20537 11.6631 11.6185 11.6631 6.41772 0 11.6108-5.219 11.6108-11.6631z" fill="#c00"/>
<path d="m127.205 9.81468c0-5.42062-4.37209-9.81468-9.78157-9.81468-5.39567 0-9.78617 4.39406-9.78617 9.81468 0 5.42678 4.3905 9.8193 9.78617 9.8193 5.40948 0 9.78157-4.39252 9.78157-9.8193z" fill="#c00"/>
<path d="m306.505 86.4929c-7.63466-1.66528-19.3069-2.54564-19.3069-7.36755 0-3.53988 4.41813-3.82769 7.15128-3.82769 2.05482 0 3.90405.39709 5.28977 1.27282 1.35662.8865 2.14232 2.26244 2.14232 4.41099h15.3752c-.59083-13.2453-12.2462-16.4896-23.3858-16.4896-9.28129 0-21.3387 2.89654-23.0068 13.1437-2.2789-10.4365-12.8047-13.1437-22.9316-13.1437-9.99029 0-23.7265 3.34288-23.7265 15.6154 0 .21701.03222.4017.03685.61255-3.8749-9.69001-13.0288-16.228-24.8038-16.228-12.7357 0-22.2579 7.4599-25.4775 18.4627 2.46151 3.32132 3.75671 7.65382 3.75671 12.1772 0 3.71379-.58928 7.00125-1.70493 9.87933 4.37822 8.11553 12.8032 13.3838 23.4257 13.3838 11.2855 0 20.1386-5.9593 24.2698-14.9583 2.16992 11.5569 13.4462 14.9583 24.4877 14.9583 9.49459 0 19.9806-3.1197 23.2938-11.9617 3.42985 9.15595 13.6426 11.9617 23.6652 11.9617 11.4512 0 24.3787-4.51102 24.3787-18.1626-.00155-4.22014-2.65641-11.6708-12.929-13.7393zm-107.166 19.1415c-7.74208 0-10.0946-7.6492-10.0946-14.1395 0-6.47182 2.35255-14.2442 10.0946-14.2442 7.73287 0 10.179 7.77387 10.179 14.2442-.00155 6.49181-2.44617 14.1395-10.179 14.1395zm48.6592 1.95308c-2.34488 0-4.60381-.57254-6.17218-1.75762-1.6543-1.2759-2.74385-3.14125-2.74385-5.68688h-14.2074c.83022-2.69647 1.28908-5.593 1.28908-8.64805 0-1.4252-.12738-2.80728-.31307-4.16475 3.89329 6.73346 13.6656 7.3891 21.8574 9.46993 2.92497.67873 8.11959 1.4775 8.11959 5.39445 0 4.03238-4.61147 5.39292-7.82954 5.39292zm46.9574 0c-2.34335 0-4.60074-.57254-6.17062-1.75762-1.65433-1.2759-2.74389-3.14125-2.74389-5.68688h-13.569c-.03527-4.23399-2.72083-11.5954-12.926-13.65-7.63313-1.66528-18.7943-2.54564-18.7943-7.36755 0-3.53988 4.92761-3.82769 7.66074-3.82769 2.05637 0 3.90405.39709 5.28978 1.27282 1.35812.8865 2.14232 2.26244 2.14232 4.41099h14.7629c.59235 12.8574 13.8099 13.216 24.058 15.8202 2.92648.67873 8.11956 1.4775 8.11956 5.39445.00155 4.03084-4.61148 5.39138-7.82954 5.39138z" fill="#61615c"/>
<path d="m320.927 55.6529h1.48089l2.22826 3.67224h1.44405l-2.41086-3.73995c1.23841-.15699 2.17914-.81572 2.17914-2.32247 0-1.69145-.97908-2.42096-2.97407-2.42096h-3.22572v8.48338h1.27831zm0-1.0989v-2.63335h1.75405c.87014 0 1.84153.20316 1.84153 1.25434 0 1.3036-.97139 1.37901-2.05484 1.37901z" fill="#61615c"/>
<path d="m330.735 55.0989c0 4.58643-3.71373 8.29868-8.28533 8.29868-4.58233 0-8.29608-3.71225-8.29608-8.29868 0-4.59722 3.71375-8.3187 8.29608-8.3187 4.5716.00153 8.28533 3.72148 8.28533 8.3187zm-8.28687-6.83965c-3.78125 0-6.83206 3.05045-6.83206 6.83965 0 3.77227 3.05081 6.82117 6.83206 6.82117 3.75976 0 6.81057-3.0489 6.81057-6.82117.00155-3.7892-3.05081-6.83965-6.81057-6.83965z" fill="#61615c"/>
<path d="m166.086 179.053c-1.67578 0-3.25642-.8865-4.17258-1.90075v1.55292h-3.22574v-21.4316l3.22574-1.68068v8.05244c1.20006-1.11121 2.59041-1.93461 4.33065-1.93461 3.57102 0 6.38396 2.59949 6.38396 8.94049 0 5.70842-3.09684 8.4018-6.54203 8.4018zm-.4435-14.3288c-1.54995 0-2.90961 1.04657-3.76131 2.12546v7.00588c.7274.98346 2.24359 2.18702 3.88715 2.18702 2.33874 0 3.60479-1.77301 3.60479-5.29287 0-4.18629-1.32744-6.02549-3.73063-6.02549z" fill="#61615c"/>
<path d="m182.487 184.57h-3.44518l2.40166-6.18246-6.10159-16.328h3.57256l2.71778 8.1494c.50489 1.45751 1.26451 3.9308 1.45327 4.84809.28544-.98193.98062-3.3598 1.4855-4.78498l2.81447-8.21251h3.44518l-8.34365 22.5105z" fill="#61615c"/>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1 @@
<svg width="2065" height="2500" viewBox="0 0 256 310" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M0 245.262l16.322 8.161L19 248.668V59.333l-2.678-3.494L0 64v181.262" fill="#9D5025"/><path d="M47.678 63.57l-31.356-7.731v197.584l31.356-7.302V63.57" fill="#F68536"/><path d="M143.893 78.604l22.335-11.597 74.309 28.778-19.758 2.577-76.886-19.758" fill="#6B3A19"/><path d="M144.752 230.658l21.906 11.597 74.308-28.778-19.758-2.578-76.456 19.759" fill="#FBBF93"/><path d="M150.336 198.872l39.087 5.155 2.244-4.027v-90l-2.244-4.765-39.087 5.154v88.483M35.651 45.96l24.054-12.027L62.333 39v231l-2.628 5.329-24.054-12.027V45.96" fill="#9D5025"/><path d="M108.671 259.007l-48.966 15.892V33.933l48.966 15.893v209.181" fill="#F68536"/><path d="M89.772 289.933L128 309.262l4-4.595v-299L128 0 89.772 19.329v270.604M219.919 98.362l19.759-2.577 1.697 2.465V211l-1.697 2.906-19.759-2.577V98.362" fill="#9D5025"/><path d="M189.423 105.235v99.221l40.805-49.825-40.805-49.396" fill="#F68536"/><path d="M239.678 55.839L128 0v309.262l128-64V64l-16.322-8.161zm0 158.217l-73.45 21.936V73.27l73.45 21.936v118.85z" fill="#F68536"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" ?>
<svg baseProfile="full" height="200px" version="1.1" width="200px" xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink"><defs /><circle cx="40" cy="50" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="50" y2="50" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="50" y2="75" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="50" y2="125" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="50" y2="150" /><circle cx="40" cy="100" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="100" y2="50" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="100" y2="75" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="100" y2="125" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="100" y2="150" /><circle cx="40" cy="150" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="150" y2="50" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="150" y2="75" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="150" y2="125" /><line stroke="#C0C0C0" stroke-width="1" x1="48" x2="92" y1="150" y2="150" /><circle cx="100" cy="50" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="108" x2="152" y1="50" y2="100" /><circle cx="100" cy="75" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="108" x2="152" y1="75" y2="100" /><circle cx="100" cy="125" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="108" x2="152" y1="125" y2="100" /><circle cx="100" cy="150" fill="#4A90E2" r="8" /><line stroke="#C0C0C0" stroke-width="1" x1="108" x2="152" y1="150" y2="100" /><circle cx="160" cy="100" fill="#4A90E2" r="8" /></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M119.616813,0.0688905149 C119.066276,0.118932037 117.314565,0.294077364 115.738025,0.419181169 C79.3775171,3.69690087 45.3192571,23.3131775 23.7481916,53.4631946 C11.7364614,70.2271045 4.05395894,89.2428829 1.15112414,109.384595 C0.12512219,116.415429 0,118.492153 0,128.025062 C0,137.557972 0.12512219,139.634696 1.15112414,146.665529 C8.10791789,194.730411 42.3163245,235.11392 88.7116325,250.076335 C97.0197458,252.753556 105.778299,254.580072 115.738025,255.680985 C119.616813,256.106338 136.383187,256.106338 140.261975,255.680985 C157.453763,253.779407 172.017986,249.525878 186.382014,242.194795 C188.584164,241.068861 189.00958,240.768612 188.709286,240.518404 C188.509091,240.36828 179.124927,227.782837 167.86393,212.570214 L147.393939,184.922273 L121.743891,146.965779 C107.630108,126.098464 96.0187683,109.034305 95.9186706,109.034305 C95.8185728,109.009284 95.7184751,125.873277 95.6684262,146.465363 C95.5933529,182.52028 95.5683284,183.971484 95.1178886,184.82219 C94.4672532,186.048207 93.9667644,186.548623 92.915738,187.099079 C92.114956,187.499411 91.4142717,187.574474 87.6355816,187.574474 L83.3063539,187.574474 L82.1552297,186.848872 C81.4044966,186.373477 80.8539589,185.747958 80.4785924,185.022356 L79.9530792,183.896422 L80.0031281,133.729796 L80.0782014,83.5381493 L80.8539589,82.5623397 C81.25435,82.0369037 82.1051808,81.3613431 82.7057674,81.0360732 C83.7317693,80.535658 84.1321603,80.4856165 88.4613881,80.4856165 C93.5663734,80.4856165 94.4172043,80.6857826 95.7434995,82.1369867 C96.1188661,82.5373189 110.007429,103.454675 126.623656,128.650581 C143.239883,153.846488 165.962072,188.250034 177.122972,205.139048 L197.392766,235.839522 L198.418768,235.163961 C207.502639,229.259062 217.112023,220.852086 224.719453,212.09482 C240.910264,193.504394 251.345455,170.835585 254.848876,146.665529 C255.874878,139.634696 256,137.557972 256,128.025062 C256,118.492153 255.874878,116.415429 254.848876,109.384595 C247.892082,61.3197135 213.683675,20.9362052 167.288368,5.97379012 C159.105376,3.32158945 150.396872,1.49507389 140.637341,0.394160408 C138.234995,0.143952798 121.693842,-0.131275573 119.616813,0.0688905149 L119.616813,0.0688905149 Z M172.017986,77.4831252 C173.219159,78.0836234 174.195112,79.2345784 174.545455,80.435575 C174.74565,81.0861148 174.795699,94.9976579 174.74565,126.348671 L174.670577,171.336 L166.73783,159.17591 L158.780059,147.01582 L158.780059,114.313685 C158.780059,93.1711423 158.880156,81.2862808 159.030303,80.7108033 C159.430694,79.3096407 160.306549,78.2087272 161.507722,77.5581875 C162.533724,77.0327515 162.909091,76.98271 166.837928,76.98271 C170.541544,76.98271 171.19218,77.0327515 172.017986,77.4831252 Z" fill="#000000">
</path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 32 32" preserveAspectRatio="xMidYMid" fill="#8cc84b"><path d="M14.656.427c.8-.453 1.82-.455 2.6 0L29.2 7.16c.747.42 1.247 1.253 1.24 2.114v13.5c.005.897-.544 1.748-1.332 2.16l-11.88 6.702a2.6 2.6 0 0 1-2.639-.073l-3.565-2.06c-.243-.145-.516-.26-.688-.495.152-.204.422-.23.642-.32.496-.158.95-.4 1.406-.656.115-.08.256-.05.366.022l3.04 1.758c.217.125.437-.04.623-.145l11.665-6.583c.144-.07.224-.222.212-.38V9.334c.016-.18-.087-.344-.25-.417L16.19 2.244a.41.41 0 0 0-.465-.001L3.892 8.93c-.16.073-.27.235-.25.415v13.37c-.014.158.07.307.215.375l3.162 1.785c.594.32 1.323.5 1.977.265a1.5 1.5 0 0 0 .971-1.409l.003-13.29c-.014-.197.172-.36.363-.34h1.52c.2-.005.357.207.33.405L12.18 23.88c.001 1.188-.487 2.48-1.586 3.063-1.354.7-3.028.553-4.366-.12l-3.4-1.88c-.8-.4-1.337-1.264-1.332-2.16v-13.5a2.46 2.46 0 0 1 1.282-2.141L14.656.427zM18.1 9.785c1.727-.1 3.576-.066 5.13.785 1.203.652 1.87 2.02 1.892 3.358-.034.18-.222.28-.394.267-.5-.001-1.002.007-1.504-.003-.213.008-.336-.188-.363-.376-.144-.64-.493-1.273-1.095-1.582-.924-.463-1.996-.44-3.004-.43-.736.04-1.527.103-2.15.535-.48.328-.624 1-.453 1.522.16.383.603.506.964.62 2.082.544 4.287.5 6.33 1.207.845.292 1.672.86 1.962 1.745.378 1.186.213 2.604-.63 3.556-.684.784-1.68 1.2-2.675 1.442-1.323.295-2.695.302-4.038.17-1.263-.144-2.577-.476-3.552-1.336-.834-.724-1.24-1.852-1.2-2.94.01-.184.193-.312.37-.297h1.5c.202-.014.35.16.36.35.093.6.322 1.25.854 1.6 1.026.662 2.313.616 3.487.635.973-.043 2.065-.056 2.86-.7.42-.367.543-.98.43-1.508-.123-.446-.6-.653-1-.8-2.055-.65-4.285-.414-6.32-1.15-.826-.292-1.625-.844-1.942-1.693-.443-1.2-.24-2.687.693-3.607.9-.915 2.22-1.268 3.47-1.394z"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 103.53" style="enable-background:new 0 0 122.88 103.53" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;} .st0{fill:#1668dc;} .st1{fill:#FFFFFF;}</style><g><path class="st0" d="M5.47,0h111.93c3.01,0,5.47,2.46,5.47,5.47v92.58c0,3.01-2.46,5.47-5.47,5.47H5.47 c-3.01,0-5.47-2.46-5.47-5.47V5.47C0,2.46,2.46,0,5.47,0L5.47,0z M31.84,38.55l17.79,18.42l2.14,2.13l-2.12,2.16L31.68,80.31 l-5.07-5l15.85-16.15L26.81,43.6L31.84,38.55L31.84,38.55z M94.1,79.41H54.69v-6.84H94.1V79.41L94.1,79.41z M38.19,9.83 c3.19,0,5.78,2.59,5.78,5.78s-2.59,5.78-5.78,5.78c-3.19,0-5.78-2.59-5.78-5.78S35,9.83,38.19,9.83L38.19,9.83z M18.95,9.83 c3.19,0,5.78,2.59,5.78,5.78s-2.59,5.78-5.78,5.78c-3.19,0-5.78-2.59-5.78-5.78S15.75,9.83,18.95,9.83L18.95,9.83z M7.49,5.41 h107.91c1.15,0,2.09,0.94,2.09,2.09v18.32H5.4V7.5C5.4,6.35,6.34,5.41,7.49,5.41L7.49,5.41z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg height="383.5975" id="svg3430" version="1.1" viewBox="0 0 711.20123 383.5975" width="711.20123" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg">
<title id="title3510">Official PHP Logo</title>
<metadata id="metadata3436">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title>Official PHP Logo</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Colin Viebrock</dc:title>
</cc:Agent>
</dc:creator>
<dc:description/>
<dc:contributor>
<cc:Agent>
<dc:title/>
</cc:Agent>
</dc:contributor>
<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/"/>
<dc:rights>
<cc:Agent>
<dc:title>Copyright Colin Viebrock 1997 - All rights reserved.</dc:title>
</cc:Agent>
</dc:rights>
<dc:date>1997</dc:date>
</cc:Work>
<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike"/>
</cc:License>
</rdf:RDF>
</metadata>
<defs id="defs3434">
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3444">
<path d="M 11.52,162 C 11.52,81.677 135.307,16.561 288,16.561 l 0,0 c 152.693,0 276.481,65.116 276.481,145.439 l 0,0 c 0,80.322 -123.788,145.439 -276.481,145.439 l 0,0 C 135.307,307.439 11.52,242.322 11.52,162" id="path3446"/>
</clipPath>
<radialGradient cx="0" cy="0" fx="0" fy="0" gradientTransform="matrix(363.05789,0,0,-363.05789,177.52002,256.30713)" gradientUnits="userSpaceOnUse" id="radialGradient3452" r="1" spreadMethod="pad">
<stop id="stop3454" offset="0" style="stop-opacity:1;stop-color:#aeb2d5"/>
<stop id="stop3456" offset="0.3" style="stop-opacity:1;stop-color:#aeb2d5"/>
<stop id="stop3458" offset="0.75" style="stop-opacity:1;stop-color:#484c89"/>
<stop id="stop3460" offset="1" style="stop-opacity:1;stop-color:#484c89"/>
</radialGradient>
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3468">
<path d="M 0,324 576,324 576,0 0,0 0,324 Z" id="path3470"/>
</clipPath>
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3480">
<path d="M 0,324 576,324 576,0 0,0 0,324 Z" id="path3482"/>
</clipPath>
</defs>
<g id="g3438" transform="matrix(1.25,0,0,-1.25,-4.4,394.29875)">
<g id="g3440">
<g clip-path="url(#clipPath3444)" id="g3442">
<g id="g3448">
<g id="g3450">
<path d="M 11.52,162 C 11.52,81.677 135.307,16.561 288,16.561 l 0,0 c 152.693,0 276.481,65.116 276.481,145.439 l 0,0 c 0,80.322 -123.788,145.439 -276.481,145.439 l 0,0 C 135.307,307.439 11.52,242.322 11.52,162" id="path3462" style="fill:url(#radialGradient3452);stroke:none"/>
</g>
</g>
</g>
</g>
<g id="g3464">
<g clip-path="url(#clipPath3468)" id="g3466">
<g id="g3472" transform="translate(288,27.3594)">
<path d="M 0,0 C 146.729,0 265.68,60.281 265.68,134.641 265.68,209 146.729,269.282 0,269.282 -146.729,269.282 -265.68,209 -265.68,134.641 -265.68,60.281 -146.729,0 0,0" id="path3474" style="fill:#777bb3;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
</g>
</g>
<g id="g3476">
<g clip-path="url(#clipPath3480)" id="g3478">
<g id="g3484" transform="translate(161.7344,145.3066)">
<path d="m 0,0 c 12.065,0 21.072,2.225 26.771,6.611 5.638,4.341 9.532,11.862 11.573,22.353 1.903,9.806 1.178,16.653 -2.154,20.348 C 32.783,53.086 25.417,55 14.297,55 L -4.984,55 -15.673,0 0,0 Z m -63.063,-67.75 c -0.895,0 -1.745,0.4 -2.314,1.092 -0.57,0.691 -0.801,1.601 -0.63,2.48 L -37.679,81.573 C -37.405,82.982 -36.17,84 -34.734,84 L 26.32,84 C 45.508,84 59.79,78.79 68.767,68.513 77.792,58.182 80.579,43.741 77.05,25.592 75.614,18.198 73.144,11.331 69.709,5.183 66.27,-0.972 61.725,-6.667 56.198,-11.747 49.582,-17.939 42.094,-22.429 33.962,-25.071 25.959,-27.678 15.681,-29 3.414,-29 l -24.722,0 -7.06,-36.322 c -0.274,-1.41 -1.508,-2.428 -2.944,-2.428 l -31.751,0 z" id="path3486" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3488" transform="translate(159.2236,197.3071)">
<path d="m 0,0 16.808,0 c 13.421,0 18.083,-2.945 19.667,-4.7 2.628,-2.914 3.124,-9.058 1.435,-17.767 C 36.012,-32.217 32.494,-39.13 27.452,-43.012 22.29,-46.986 13.898,-49 2.511,-49 L -9.523,-49 0,0 Z m 28.831,35 -61.055,0 c -2.872,0 -5.341,-2.036 -5.889,-4.855 l -28.328,-145.751 c -0.342,-1.759 0.12,-3.578 1.259,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l 31.75,0 c 2.873,0 5.342,2.036 5.89,4.855 l 6.588,33.895 22.249,0 c 12.582,0 23.174,1.372 31.479,4.077 8.541,2.775 16.399,7.48 23.354,13.984 5.752,5.292 10.49,11.232 14.08,17.657 3.591,6.427 6.171,13.594 7.668,21.302 3.715,19.104 0.697,34.402 -8.969,45.466 C 63.965,29.444 48.923,35 28.831,35 m -45.633,-90 19.313,0 c 12.801,0 22.336,2.411 28.601,7.234 6.266,4.824 10.492,12.875 12.688,24.157 2.101,10.832 1.144,18.476 -2.871,22.929 C 36.909,3.773 28.87,6 16.808,6 L -4.946,6 -16.802,-55 M 28.831,29 C 47.198,29 60.597,24.18 69.019,14.539 77.44,4.898 79.976,-8.559 76.616,-25.836 75.233,-32.953 72.894,-39.46 69.601,-45.355 66.304,-51.254 61.999,-56.648 56.679,-61.539 50.339,-67.472 43.296,-71.7 35.546,-74.218 27.796,-76.743 17.925,-78 5.925,-78 l -27.196,0 -7.531,-38.75 -31.75,0 28.328,145.75 61.055,0" id="path3490" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3492" transform="translate(311.583,116.3066)">
<path d="m 0,0 c -0.896,0 -1.745,0.4 -2.314,1.092 -0.571,0.691 -0.802,1.6 -0.631,2.48 L 9.586,68.061 C 10.778,74.194 10.484,78.596 8.759,80.456 7.703,81.593 4.531,83.5 -4.848,83.5 L -27.55,83.5 -43.305,2.428 C -43.579,1.018 -44.814,0 -46.25,0 l -31.5,0 c -0.896,0 -1.745,0.4 -2.315,1.092 -0.57,0.691 -0.801,1.601 -0.63,2.48 l 28.328,145.751 c 0.274,1.409 1.509,2.427 2.945,2.427 l 31.5,0 c 0.896,0 1.745,-0.4 2.315,-1.091 0.57,-0.692 0.801,-1.601 0.63,-2.481 L -21.813,113 2.609,113 c 18.605,0 31.221,-3.28 38.569,-10.028 7.49,-6.884 9.827,-17.891 6.947,-32.719 L 34.945,2.428 C 34.671,1.018 33.437,0 32,0 L 0,0 Z" id="path3494" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3496" transform="translate(293.6611,271.0571)">
<path d="m 0,0 -31.5,0 c -2.873,0 -5.342,-2.036 -5.89,-4.855 l -28.328,-145.751 c -0.342,-1.759 0.12,-3.578 1.26,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l 31.5,0 c 2.872,0 5.342,2.036 5.89,4.855 l 15.283,78.645 20.229,0 c 9.363,0 11.328,-2 11.407,-2.086 0.568,-0.611 1.315,-3.441 0.082,-9.781 l -12.531,-64.489 c -0.342,-1.759 0.12,-3.578 1.26,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l 32,0 c 2.872,0 5.342,2.036 5.89,4.855 l 13.179,67.825 c 3.093,15.921 0.447,27.864 -7.861,35.5 -7.928,7.281 -21.208,10.82 -40.599,10.82 l -20.784,0 6.143,31.605 C 6.231,-5.386 5.77,-3.566 4.63,-2.184 3.49,-0.801 1.792,0 0,0 m 0,-6 -7.531,-38.75 28.062,0 c 17.657,0 29.836,-3.082 36.539,-9.238 6.703,-6.16 8.711,-16.141 6.032,-29.938 l -13.18,-67.824 -32,0 12.531,64.488 c 1.426,7.336 0.902,12.34 -1.574,15.008 -2.477,2.668 -7.746,4.004 -15.805,4.004 l -25.176,0 -16.226,-83.5 -31.5,0 L -31.5,-6 0,-6" id="path3498" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3500" transform="translate(409.5498,145.3066)">
<path d="m 0,0 c 12.065,0 21.072,2.225 26.771,6.611 5.638,4.34 9.532,11.861 11.574,22.353 1.903,9.806 1.178,16.653 -2.155,20.348 C 32.783,53.086 25.417,55 14.297,55 L -4.984,55 -15.673,0 0,0 Z m -63.062,-67.75 c -0.895,0 -1.745,0.4 -2.314,1.092 -0.57,0.691 -0.802,1.601 -0.631,2.48 L -37.679,81.573 C -37.404,82.982 -36.17,84 -34.733,84 L 26.32,84 C 45.509,84 59.79,78.79 68.768,68.513 77.793,58.183 80.579,43.742 77.051,25.592 75.613,18.198 73.144,11.331 69.709,5.183 66.27,-0.972 61.725,-6.667 56.198,-11.747 49.582,-17.939 42.094,-22.429 33.962,-25.071 25.959,-27.678 15.681,-29 3.414,-29 l -24.723,0 -7.057,-36.322 c -0.275,-1.41 -1.509,-2.428 -2.946,-2.428 l -31.75,0 z" id="path3502" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
<g id="g3504" transform="translate(407.0391,197.3071)">
<path d="M 0,0 16.808,0 C 30.229,0 34.891,-2.945 36.475,-4.7 39.104,-7.614 39.6,-13.758 37.91,-22.466 36.012,-32.217 32.493,-39.13 27.452,-43.012 22.29,-46.986 13.898,-49 2.511,-49 L -9.522,-49 0,0 Z m 28.831,35 -61.054,0 c -2.872,0 -5.341,-2.036 -5.889,-4.855 L -66.44,-115.606 c -0.342,-1.759 0.12,-3.578 1.259,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l 31.75,0 c 2.872,0 5.342,2.036 5.89,4.855 l 6.587,33.895 22.249,0 c 12.582,0 23.174,1.372 31.479,4.077 8.541,2.775 16.401,7.481 23.356,13.986 5.752,5.291 10.488,11.23 14.078,17.655 3.591,6.427 6.171,13.594 7.668,21.302 3.715,19.105 0.697,34.403 -8.969,45.467 C 63.965,29.444 48.924,35 28.831,35 m -45.632,-90 19.312,0 c 12.801,0 22.336,2.411 28.601,7.234 6.267,4.824 10.492,12.875 12.688,24.157 2.102,10.832 1.145,18.476 -2.871,22.929 C 36.909,3.773 28.87,6 16.808,6 L -4.946,6 -16.801,-55 M 28.831,29 C 47.198,29 60.597,24.18 69.019,14.539 77.441,4.898 79.976,-8.559 76.616,-25.836 75.233,-32.953 72.894,-39.46 69.601,-45.355 66.304,-51.254 61.999,-56.648 56.679,-61.539 50.339,-67.472 43.296,-71.7 35.546,-74.218 27.796,-76.743 17.925,-78 5.925,-78 l -27.196,0 -7.53,-38.75 -31.75,0 28.328,145.75 61.054,0" id="path3506" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M31.885 16c-8.124 0-7.617 3.523-7.617 3.523l.01 3.65h7.752v1.095H21.197S16 23.678 16 31.876c0 8.196 4.537 7.906 4.537 7.906h2.708v-3.804s-.146-4.537 4.465-4.537h7.688s4.32.07 4.32-4.175v-7.019S40.374 16 31.885 16zm-4.275 2.454c.771 0 1.395.624 1.395 1.395s-.624 1.395-1.395 1.395a1.393 1.393 0 0 1-1.395-1.395c0-.771.624-1.395 1.395-1.395z" fill="url(#a)"/><path d="M32.115 47.833c8.124 0 7.617-3.523 7.617-3.523l-.01-3.65H31.97v-1.095h10.832S48 40.155 48 31.958c0-8.197-4.537-7.906-4.537-7.906h-2.708v3.803s.146 4.537-4.465 4.537h-7.688s-4.32-.07-4.32 4.175v7.019s-.656 4.247 7.833 4.247zm4.275-2.454a1.393 1.393 0 0 1-1.395-1.395c0-.77.624-1.394 1.395-1.394s1.395.623 1.395 1.394c0 .772-.624 1.395-1.395 1.395z" fill="url(#b)"/><defs><linearGradient id="a" x1="19.075" y1="18.782" x2="34.898" y2="34.658" gradientUnits="userSpaceOnUse"><stop stop-color="#387EB8"/><stop offset="1" stop-color="#366994"/></linearGradient><linearGradient id="b" x1="28.809" y1="28.882" x2="45.803" y2="45.163" gradientUnits="userSpaceOnUse"><stop stop-color="#FFE052"/><stop offset="1" stop-color="#FFC331"/></linearGradient></defs></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M31.885 16c-8.124 0-7.617 3.523-7.617 3.523l.01 3.65h7.752v1.095H21.197S16 23.678 16 31.876c0 8.196 4.537 7.906 4.537 7.906h2.708v-3.804s-.146-4.537 4.465-4.537h7.688s4.32.07 4.32-4.175v-7.019S40.374 16 31.885 16zm-4.275 2.454c.771 0 1.395.624 1.395 1.395s-.624 1.395-1.395 1.395a1.393 1.393 0 0 1-1.395-1.395c0-.771.624-1.395 1.395-1.395z" fill="url(#a)"/><path d="M32.115 47.833c8.124 0 7.617-3.523 7.617-3.523l-.01-3.65H31.97v-1.095h10.832S48 40.155 48 31.958c0-8.197-4.537-7.906-4.537-7.906h-2.708v3.803s.146 4.537-4.465 4.537h-7.688s-4.32-.07-4.32 4.175v7.019s-.656 4.247 7.833 4.247zm4.275-2.454a1.393 1.393 0 0 1-1.395-1.395c0-.77.624-1.394 1.395-1.394s1.395.623 1.395 1.394c0 .772-.624 1.395-1.395 1.395z" fill="url(#b)"/><defs><linearGradient id="a" x1="19.075" y1="18.782" x2="34.898" y2="34.658" gradientUnits="userSpaceOnUse"><stop stop-color="#387EB8"/><stop offset="1" stop-color="#366994"/></linearGradient><linearGradient id="b" x1="28.809" y1="28.882" x2="45.803" y2="45.163" gradientUnits="userSpaceOnUse"><stop stop-color="#FFE052"/><stop offset="1" stop-color="#FFC331"/></linearGradient></defs></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="80px" height="80px" viewBox="0 0 80 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 64 (93537) - https://sketch.com -->
<title>Icon-Architecture/64/Arch_Amazon-RDS_64</title>
<desc>Created with Sketch.</desc>
<defs>
<linearGradient x1="0%" y1="100%" x2="100%" y2="0%" id="linearGradient-1">
<stop stop-color="#2E27AD" offset="0%"></stop>
<stop stop-color="#527FFF" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Icon-Architecture/64/Arch_Amazon-RDS_64" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icon-Architecture-BG/64/Database" fill="url(#linearGradient-1)">
<rect id="Rectangle" x="0" y="0" width="80" height="80"></rect>
</g>
<path d="M15.414,14 L24.707,23.293 L23.293,24.707 L14,15.414 L14,23 L12,23 L12,13 C12,12.448 12.447,12 13,12 L23,12 L23,14 L15.414,14 Z M68,13 L68,23 L66,23 L66,15.414 L56.707,24.707 L55.293,23.293 L64.586,14 L57,14 L57,12 L67,12 C67.553,12 68,12.448 68,13 L68,13 Z M66,57 L68,57 L68,67 C68,67.552 67.553,68 67,68 L57,68 L57,66 L64.586,66 L55.293,56.707 L56.707,55.293 L66,64.586 L66,57 Z M65.5,39.213 C65.5,35.894 61.668,32.615 55.25,30.442 L55.891,28.548 C63.268,31.045 67.5,34.932 67.5,39.213 C67.5,43.495 63.268,47.383 55.89,49.879 L55.249,47.984 C61.668,45.812 65.5,42.534 65.5,39.213 L65.5,39.213 Z M14.556,39.213 C14.556,42.393 18.143,45.585 24.152,47.753 L23.473,49.634 C16.535,47.131 12.556,43.333 12.556,39.213 C12.556,35.094 16.535,31.296 23.473,28.792 L24.152,30.673 C18.143,32.842 14.556,36.034 14.556,39.213 L14.556,39.213 Z M24.707,56.707 L15.414,66 L23,66 L23,68 L13,68 C12.447,68 12,67.552 12,67 L12,57 L14,57 L14,64.586 L23.293,55.293 L24.707,56.707 Z M40,31.286 C32.854,31.286 29,29.44 29,28.686 C29,27.931 32.854,26.086 40,26.086 C47.145,26.086 51,27.931 51,28.686 C51,29.44 47.145,31.286 40,31.286 L40,31.286 Z M40.029,39.031 C33.187,39.031 29,37.162 29,36.145 L29,31.284 C31.463,32.643 35.832,33.286 40,33.286 C44.168,33.286 48.537,32.643 51,31.284 L51,36.145 C51,37.163 46.835,39.031 40.029,39.031 L40.029,39.031 Z M40.029,46.667 C33.187,46.667 29,44.798 29,43.781 L29,38.862 C31.431,40.291 35.742,41.031 40.029,41.031 C44.292,41.031 48.578,40.292 51,38.867 L51,43.781 C51,44.799 46.835,46.667 40.029,46.667 L40.029,46.667 Z M40,53.518 C32.883,53.518 29,51.605 29,50.622 L29,46.498 C31.431,47.927 35.742,48.667 40.029,48.667 C44.292,48.667 48.578,47.929 51,46.503 L51,50.622 C51,51.605 47.117,53.518 40,53.518 L40,53.518 Z M40,24.086 C33.739,24.086 27,25.525 27,28.686 L27,50.622 C27,53.836 33.54,55.518 40,55.518 C46.46,55.518 53,53.836 53,50.622 L53,28.686 C53,25.525 46.261,24.086 40,24.086 L40,24.086 Z" id="Amazon-RDS_Icon_64_Squid" fill="#FFFFFF"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" fill="#d30001" viewBox="0 0 411 155">
<g>
<path d="M242.3 76.8h-19.5c-13.9 0-18.6 12.6-18.6 18.6v52.2h19.5v-12.5H242v12.5h18.9V95.4c0-15.2-13.8-18.6-18.6-18.6Zm-.4 38.1h-18.3V97.6s0-3.9 6.1-3.9h6.7c5.4 0 5.5 3.9 5.5 3.9v17.3Z"/>
<path d="M194.9 101c0-22.6-21.2-24.7-21.2-24.7h-38.2v71.3h19.2v-17.2l16.6 17.2h28.4l-22.3-22.5s17.5-1.5 17.5-24.1Zm-24.9 9.5h-15.3V94.2h15.4s4.3 1.6 4.3 8.1-4.4 8.2-4.4 8.2Z"/>
<path d="M379.374 120.643c.333.002.446.002 0 0Z"/>
<path d="M385.3 103.4H369V95h32.3V76.8h-31c-8 0-18.7 6.6-18.7 18.9v6.3c0 12.3 10.6 18.6 18.7 18.6 5.868.026 8.304.039 9.074.043-1.298-.008-5.906-.043 6.326-.043v8.8l-33.1.1v18.1h32.7c6.7 0 18.2-4.9 18.6-18.6v-7c0-11.7-9.6-18.6-18.6-18.6Z"/>
<path d="M269.8 76.8h20.3v70.8h-20.3z"/>
<path d="M318.6 76.8h-20.2v70.8h47.5v-18.3h-27.3V76.8z"/>
</g>
<g>
<path d="M180 17.8c-.9-.5-3.4-1.7-9.7-3.5l-.4 6.6c3.3 1.1 6.5 2.3 9.7 3.6l.4-6.7Z"/>
<path d="M124.9 18.9c-29.2 2.6-65 29.1-86 64.1S15 147.6 15 147.6h79s-15.1-68.9 34.9-96.8c10.9-5.3 45.6-25.1 102.4 16.9 1.8-1.5 3.5-2.7 3.5-2.7s-52-51.9-109.9-46.1Z"/>
<path d="m54.7 54.7-7.1-6.2c-2.6 2.5-5.1 5-7.4 7.5l7.7 6.6c2.1-2.7 4.4-5.4 6.8-7.9Z"/>
<path d="M92.5 25 88 18.1c-2.5 1.3-5.1 2.7-7.8 4.3l4.6 7c2.6-1.6 5.1-3.1 7.7-4.4Z"/>
<path d="M24.5 99.4 13 95.2c-1.9 4.3-4 9.3-5 12l11.5 4.2c1.3-3.4 3.4-8.3 5-12Z"/>
<path d="M133.1 14.5h1l-2-6.1c-3.1 0-6.3.2-9.6.6l1.9 5.9c2.9-.3 5.8-.4 8.7-.4Z"/>
<path d="M97 127.6c.2 5.3.7 9.6 1.2 12.6l12 4.3c-.9-3.9-1.8-8.3-2.4-13L97 127.6Z"/>
<path d="m137.9 51.3 2.3 6.9c2.9-1.4 5.8-2.6 8.7-3.5l-2.2-6.6c-3.4 1-6.3 2.1-8.8 3.2Z"/>
<path d="M169.7 52c3.3.1 6.6.5 9.9 1.2l.4-6.2c-3.4-.7-6.7-1.1-9.9-1.3l-.4 6.3Z"/>
<path d="M101.5 91.2c-1.3 3.7-2.2 7.4-3 11l8.1 6.4c.4-3.9 1.1-7.8 2.1-11.7l-7.2-5.7Z"/>
<path d="m113 70 4.8 7.2c1.7-2.5 3.7-4.8 5.9-7.1l-4.5-6.8c-2.3 2.1-4.4 4.4-6.2 6.7Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1200 800" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g id="Layer-1" serif:id="Layer 1">
<g transform="matrix(1,0,0,1,597.344,637.02)">
<path d="M0,-279.559C-121.238,-279.559 -231.39,-264.983 -312.939,-241.23L-312.939,-38.329C-231.39,-14.575 -121.238,0 0,0C138.76,0 262.987,-19.092 346.431,-49.186L346.431,-230.37C262.987,-260.465 138.76,-279.559 0,-279.559" style="fill:rgb(165,43,0);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,1068.75,575.642)">
<path d="M0,-53.32L-14.211,-82.761C-14.138,-83.879 -14.08,-84.998 -14.08,-86.121C-14.08,-119.496 -48.786,-150.256 -107.177,-174.883L-107.177,2.643C-79.932,-8.849 -57.829,-21.674 -42.021,-35.482C-46.673,-16.775 -62.585,21.071 -75.271,47.686C-96.121,85.752 -103.671,118.889 -102.703,120.53C-102.086,121.563 -94.973,110.59 -84.484,92.809C-60.074,58.028 -13.82,-8.373 -4.575,-25.287C5.897,-44.461 0,-53.32 0,-53.32" style="fill:rgb(165,43,0);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,149.064,591.421)">
<path d="M0,-99.954C0,-93.526 1.293,-87.194 3.788,-80.985L-4.723,-65.835C-4.723,-65.835 -11.541,-56.989 0.465,-38.327C11.055,-21.872 64.1,42.54 92.097,76.271C104.123,93.564 112.276,104.216 112.99,103.187C114.114,101.554 105.514,69.087 81.631,32.046C70.487,12.151 57.177,-14.206 49.189,-33.675C71.492,-19.559 100.672,-6.755 135.341,4.265L135.341,-204.17C51.797,-177.622 0,-140.737 0,-99.954" style="fill:rgb(165,43,0);fill-rule:nonzero;"/>
</g>
<g transform="matrix(-65.8097,-752.207,-752.207,65.8097,621.707,796.312)">
<path d="M0.991,-0.034L0.933,0.008C0.933,0.014 0.933,0.02 0.933,0.026L0.99,0.069C0.996,0.073 0.999,0.08 0.998,0.087C0.997,0.094 0.992,0.1 0.986,0.103L0.92,0.133C0.919,0.139 0.918,0.145 0.916,0.15L0.964,0.203C0.968,0.208 0.97,0.216 0.968,0.222C0.965,0.229 0.96,0.234 0.953,0.236L0.882,0.254C0.88,0.259 0.877,0.264 0.875,0.27L0.91,0.33C0.914,0.336 0.914,0.344 0.91,0.35C0.907,0.356 0.9,0.36 0.893,0.361L0.82,0.365C0.817,0.369 0.813,0.374 0.81,0.379L0.832,0.445C0.835,0.452 0.833,0.459 0.828,0.465C0.824,0.47 0.816,0.473 0.809,0.472L0.737,0.462C0.733,0.466 0.729,0.47 0.724,0.474L0.733,0.544C0.734,0.551 0.731,0.558 0.725,0.562C0.719,0.566 0.711,0.568 0.704,0.565L0.636,0.542C0.631,0.546 0.626,0.549 0.621,0.552L0.615,0.621C0.615,0.629 0.61,0.635 0.604,0.638C0.597,0.641 0.589,0.641 0.583,0.638L0.521,0.602C0.52,0.603 0.519,0.603 0.518,0.603L0.406,0.729C0.406,0.729 0.394,0.747 0.359,0.725C0.329,0.705 0.206,0.599 0.141,0.543C0.109,0.52 0.089,0.504 0.09,0.502C0.093,0.499 0.149,0.509 0.217,0.554C0.278,0.588 0.371,0.631 0.38,0.619C0.38,0.619 0.396,0.604 0.406,0.575C0.406,0.575 0.406,0.575 0.406,0.575C0.407,0.576 0.407,0.576 0.406,0.575C0.406,0.575 0.091,0.024 0.305,-0.531C0.311,-0.593 0.275,-0.627 0.275,-0.627C0.266,-0.639 0.178,-0.598 0.12,-0.566C0.055,-0.523 0.002,-0.513 0,-0.516C-0.001,-0.518 0.018,-0.533 0.049,-0.555C0.11,-0.608 0.227,-0.707 0.256,-0.726C0.289,-0.748 0.301,-0.73 0.301,-0.73L0.402,-0.615C0.406,-0.614 0.41,-0.613 0.415,-0.613L0.47,-0.658C0.475,-0.663 0.483,-0.664 0.49,-0.662C0.497,-0.66 0.502,-0.655 0.504,-0.648L0.522,-0.58C0.527,-0.578 0.533,-0.576 0.538,-0.574L0.602,-0.608C0.608,-0.612 0.616,-0.612 0.623,-0.608C0.629,-0.605 0.633,-0.599 0.633,-0.592L0.637,-0.522C0.642,-0.519 0.647,-0.515 0.652,-0.512L0.721,-0.534C0.728,-0.536 0.736,-0.535 0.741,-0.531C0.747,-0.526 0.75,-0.519 0.749,-0.512L0.738,-0.443C0.742,-0.439 0.746,-0.435 0.751,-0.431L0.823,-0.439C0.83,-0.44 0.837,-0.437 0.842,-0.432C0.847,-0.426 0.848,-0.419 0.845,-0.412L0.821,-0.347C0.824,-0.342 0.828,-0.337 0.831,-0.332L0.903,-0.327C0.911,-0.327 0.917,-0.322 0.92,-0.316C0.924,-0.31 0.924,-0.302 0.92,-0.296L0.883,-0.236C0.885,-0.231 0.887,-0.226 0.889,-0.22L0.959,-0.202C0.966,-0.2 0.972,-0.195 0.974,-0.188C0.976,-0.181 0.974,-0.174 0.969,-0.168L0.92,-0.116C0.921,-0.111 0.923,-0.105 0.924,-0.099L0.988,-0.068C0.995,-0.065 0.999,-0.059 1,-0.052C1.001,-0.045 0.997,-0.038 0.991,-0.034ZM0.406,0.575C0.406,0.575 0.406,0.575 0.406,0.575C0.406,0.575 0.406,0.575 0.406,0.575Z" style="fill:url(#_Linear1);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,450.328,483.629)">
<path d="M0,167.33C-1.664,165.91 -2.536,165.068 -2.536,165.068L140.006,153.391C23.733,0 -69.418,122.193 -79.333,135.855L-79.333,167.33L0,167.33Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,747.12,477.333)">
<path d="M0,171.974C1.663,170.554 2.536,169.71 2.536,169.71L-134.448,159.687C-18.12,0 69.421,126.835 79.335,140.497L79.335,171.974L0,171.974Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(-1.53e-05,-267.211,-267.211,1.53e-05,809.465,764.23)">
<path d="M1,-0.586C1,-0.586 0.768,-0.528 0.524,-0.165L0.5,-0.064C0.5,-0.064 1.1,0.265 0.424,0.731C0.424,0.731 0.508,0.586 0.405,0.197C0.405,0.197 0.131,0.376 0.14,0.736C0.14,0.736 -0.275,0.391 0.324,-0.135C0.324,-0.135 0.539,-0.691 1,-0.736L1,-0.586Z" style="fill:url(#_Linear2);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,677.392,509.61)">
<path d="M0,-92.063C0,-92.063 43.486,-139.678 86.974,-92.063C86.974,-92.063 121.144,-28.571 86.974,3.171C86.974,3.171 31.062,47.615 0,3.171C0,3.171 -37.275,-31.75 0,-92.063" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,727.738,435.209)">
<path d="M0,0.002C0,18.543 -10.93,33.574 -24.408,33.574C-37.885,33.574 -48.814,18.543 -48.814,0.002C-48.814,-18.539 -37.885,-33.572 -24.408,-33.572C-10.93,-33.572 0,-18.539 0,0.002" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,483.3,502.984)">
<path d="M0,-98.439C0,-98.439 74.596,-131.467 94.956,-57.748C94.956,-57.748 116.283,28.178 33.697,33.028C33.697,33.028 -71.613,12.745 0,-98.439" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,520.766,436.428)">
<path d="M0,0C0,19.119 -11.27,34.627 -25.173,34.627C-39.071,34.627 -50.344,19.119 -50.344,0C-50.344,-19.124 -39.071,-34.627 -25.173,-34.627C-11.27,-34.627 0,-19.124 0,0" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(-1.53e-05,-239.021,-239.021,1.53e-05,402.161,775.388)">
<path d="M0.367,0.129C-0.364,-0.441 0.223,-0.711 0.223,-0.711C0.259,-0.391 0.472,-0.164 0.472,-0.164C0.521,-0.548 0.525,-0.77 0.525,-0.77C1.203,-0.256 0.589,0.161 0.589,0.161C0.627,0.265 0.772,0.372 0.906,0.451L1,0.77C0.376,0.403 0.367,0.129 0.367,0.129Z" style="fill:url(#_Linear3);fill-rule:nonzero;"/>
</g>
</g>
<defs>
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,1.38778e-17,-1,0,-0.000650515)"><stop offset="0" style="stop-color:rgb(247,76,0);stop-opacity:1"/><stop offset="0.33" style="stop-color:rgb(247,76,0);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(244,150,0);stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,-1,0,1.23438e-06)"><stop offset="0" style="stop-color:rgb(204,58,0);stop-opacity:1"/><stop offset="0.15" style="stop-color:rgb(204,58,0);stop-opacity:1"/><stop offset="0.74" style="stop-color:rgb(247,76,0);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(247,76,0);stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear3" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,1.32349e-23,1.32349e-23,-1,0,-9.1568e-07)"><stop offset="0" style="stop-color:rgb(204,58,0);stop-opacity:1"/><stop offset="0.15" style="stop-color:rgb(204,58,0);stop-opacity:1"/><stop offset="0.74" style="stop-color:rgb(247,76,0);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(247,76,0);stop-opacity:1"/></linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 97.1 97"><defs><style>.cls-1{fill:#6db33f;}</style></defs><title>spring-icon</title><g id="Layer_2" data-name="Layer 2"><g id="logos"><path class="cls-1" d="M88.4,5.6a42.32,42.32,0,0,1-5.2,9.1A48.46,48.46,0,1,0,15.5,84l1.8,1.6A48.41,48.41,0,0,0,96.8,52C98.2,39.8,94.5,24.2,88.4,5.6ZM22.5,84.4a4.12,4.12,0,1,1-.6-5.8A4.21,4.21,0,0,1,22.5,84.4ZM88.1,69.9C76.2,85.8,50.6,80.4,34.3,81.2c0,0-2.9.2-5.8.6,0,0,1.1-.5,2.5-1,11.5-4,16.9-4.8,23.9-8.4C68,65.7,81.1,51,83.7,35.8c-5,14.6-20.2,27.2-34,32.3C40.2,71.6,23.1,75,23.1,75l-.7-.4c-11.6-5.7-12-30.9,9.2-39,9.3-3.6,18.1-1.6,28.2-4,10.7-2.5,23.1-10.5,28.1-21C93.5,27.5,100.3,53.7,88.1,69.9Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 703 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M63.93 17.608a17.91 17.91 0 0 0-.405-3.78c-.5-2.553-1.828-4.893-3.8-6.7a12.05 12.05 0 0 0-3.447-2.258c-1.243-.6-2.57-1-3.94-1.22-1.354-.25-2.85-.25-4.203-.368h-33.45a24.7 24.7 0 0 0-3.113.251c-1.027.114-2.033.36-3 .736l-.95.368a17.47 17.47 0 0 0-2.585 1.589c-.264.25-.545.368-.81.602a10.91 10.91 0 0 0-2.48 3.044C1.09 11.02.63 12.258.405 13.544A35.75 35.75 0 0 0 0 17.307V46.46a17.91 17.91 0 0 0 .405 3.78c.5 2.553 1.828 4.893 3.8 6.7a12.06 12.06 0 0 0 3.394 2.191c1.243.6 2.57 1 3.94 1.22 1.354.25 2.85.25 4.203.368h32.466a24.49 24.49 0 0 0 4.203-.368c1.344-.22 2.648-.627 3.87-1.204a15.54 15.54 0 0 0 3.517-2.191 10.9 10.9 0 0 0 2.445-3.044c.67-1.138 1.128-2.377 1.354-3.663a35.75 35.75 0 0 0 .405-3.78v-28.85z" fill="#f05138"/><path d="M42.737 47.713c-5.698 2.96-13.525 3.26-21.386.234C15.218 45.6 9.967 41.557 6.28 36.34c1.72 1.22 3.592 2.232 5.575 3.01 8.125 3.345 16.268 3.194 21.984 0-7.545-5.46-14.34-11.798-20.225-18.866a21.17 21.17 0 0 1-2.708-3.345c6.18 4.937 12.754 9.41 19.663 13.38-5.032-4.852-9.66-10.07-13.84-15.605C23.7 21.277 31.363 26.917 39.59 31.74l.88.468a15.18 15.18 0 0 0 .616-1.673c1.9-6.222-.264-13.296-5.012-19.15 10.992 5.97 17.5 17.193 14.79 26.593 0 .25-.14.502-.23.753l.088.1c5.434 6.105 3.94 12.56 3.254 11.34-2.972-5.1-8.477-3.53-11.238-2.46z" fill="#fefefe"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M63.93 17.608a17.91 17.91 0 0 0-.405-3.78c-.5-2.553-1.828-4.893-3.8-6.7a12.05 12.05 0 0 0-3.447-2.258c-1.243-.6-2.57-1-3.94-1.22-1.354-.25-2.85-.25-4.203-.368h-33.45a24.7 24.7 0 0 0-3.113.251c-1.027.114-2.033.36-3 .736l-.95.368a17.47 17.47 0 0 0-2.585 1.589c-.264.25-.545.368-.81.602a10.91 10.91 0 0 0-2.48 3.044C1.09 11.02.63 12.258.405 13.544A35.75 35.75 0 0 0 0 17.307V46.46a17.91 17.91 0 0 0 .405 3.78c.5 2.553 1.828 4.893 3.8 6.7a12.06 12.06 0 0 0 3.394 2.191c1.243.6 2.57 1 3.94 1.22 1.354.25 2.85.25 4.203.368h32.466a24.49 24.49 0 0 0 4.203-.368c1.344-.22 2.648-.627 3.87-1.204a15.54 15.54 0 0 0 3.517-2.191 10.9 10.9 0 0 0 2.445-3.044c.67-1.138 1.128-2.377 1.354-3.663a35.75 35.75 0 0 0 .405-3.78v-28.85z" fill="#f05138"/><path d="M42.737 47.713c-5.698 2.96-13.525 3.26-21.386.234C15.218 45.6 9.967 41.557 6.28 36.34c1.72 1.22 3.592 2.232 5.575 3.01 8.125 3.345 16.268 3.194 21.984 0-7.545-5.46-14.34-11.798-20.225-18.866a21.17 21.17 0 0 1-2.708-3.345c6.18 4.937 12.754 9.41 19.663 13.38-5.032-4.852-9.66-10.07-13.84-15.605C23.7 21.277 31.363 26.917 39.59 31.74l.88.468a15.18 15.18 0 0 0 .616-1.673c1.9-6.222-.264-13.296-5.012-19.15 10.992 5.97 17.5 17.193 14.79 26.593 0 .25-.14.502-.23.753l.088.1c5.434 6.105 3.94 12.56 3.254 11.34-2.972-5.1-8.477-3.53-11.238-2.46z" fill="#fefefe"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="595.279" height="424" viewBox="0 209.445 595.279 424" xmlns:v="https://vecta.io/nano"><path fill="#d1a41a" d="M531.64 594.445L437.037 493.74l-10.896 7.205c-52.431-30.908-91.661-75.49-111.786-142.345-71.662 17.629-155.214 62.845-209.047 124.013.01.012.021.023.03.037-53.459 57.869-87.91 112.324-97.033 132.129l52.169.334c-2.015-23.424 4.09-42.951 20-64.668 72.167-98.5 343.167 15 450.167 76.5l57-.5c-.001 0-8.501-37.5-56.001-32h0z"/><path fill="#ffdc76" d="M428.14 500.945c-110.127-54.949-140-189-113-281 0 0 20.5 9.5 40 55.5 44.646-12.799 96.667-14.001 142-1.5 0 0 5.5-36 38.5-53 4.992 21.339 38 191-107.5 280z"/><path d="M229.617 394.569L261.671 379l18.317 49.455-50.371-33.886zm-35.945 18.088l19.919-11.906 18.316 32.284-38.235-20.378zm-38.693 24.956l17.399-11.447 8.7 29.764-26.099-18.317zm308.172 82.424l-11.448-11.447-16.026 25.184 27.474-13.737zm22.896 27.474l-9.158-9.158-27.476 18.316 36.634-9.158zM315.64 346.862l-1.311-18.231 32.055 16.256-30.744 1.975zm10.139 26.644l-6.389-13.561 22.415 9.211-16.026 4.35zm210.638-19.233l4.578-13.736-25.185 10.531 20.607 3.205zm-9.158 27.933l2.289-11.219-18.316 5.495 16.027 5.724zm-222.086 35.488h59.985v7.419h-59.985v-7.419zm0-17.859h59.985v7.418h-59.985v-7.418zm183.163 17.859h59.985v7.419h-59.985v-7.419zm0-17.859h59.985v7.418h-59.985v-7.418z"/><path d="M547.277 286.323l-.1-.151c-.042-11.562-3.627-60.43-10.2-73.884-17.838 6.819-50.32 28.961-57.572 51.537-35.134-5.291-74.799-4.652-109.706 1.388-5.802-24.4-34.905-42.871-56.892-53.361-9.271 15.758-13.396 52.22-12.331 78.217-.039.027-.083.053-.122.083 4.08 108.774 57.119 176.502 126.478 217.549 71.4-41.047 122.399-121.09 120.358-221.427.029.017.061.031.087.049zM427.816 493.599c-109.027-54.727-129.652-193.147-111.064-266.803 5.168 28.505 14.552 46.291 34.905 54.957 18.88-5.445 40.823-8.739 63.263-9.765l16.179 37.412 11.968-37.497c20.707.828 40.93 3.638 58.645 8.554 18.698-13.683 26.066-34.662 29.919-52.906 4.94 21.254 4.375 67.272 4.397 67.272l.138-.755C538 384.597 492.189 456.66 427.817 493.601l-.001-.002z"/><path d="M583.444 607.021c-11.197-12.611-33.094-18.563-51.453-18.129-13.011-15.576-88.398-95.549-88.398-95.549l-5.235 6.613 91.12 98.51 3.943-.34c24.707-2.129 38.759 11.357 42.613 15.553 2.721 3.08 4.374 5.883 5.282 8.074h-50.093c-114.693-60.201-215.56-102.617-321.865-111.966.235-14.98 2.878-31.924 7.978-50.852l-9.838-2.691c-5.234 19.43-7.978 36.943-8.296 52.678a506.01 506.01 0 0 0-33.772-1.129c-9.61 0-18.361.898-26.294 2.463-10.403-10.467-19.266-20.434-26.746-29.873 49.64-51.994 131.692-99.197 202.865-116.527l-2.313-10.034c-76.612 18.585-160.479 69.095-207.171 118.124-21.669-29.418-30.373-53.59-32.866-71.833-3.218-23.032 2.26-44.239 15.866-61.343 21.307-26.68 51.453-28.505 82.731-23.26-.607 4.948.039 9.669 2.006 12.587 8.229 12.223 52.359 16.534 78.881 4.675-19.493-27.364-58.934-40.818-69.813-35.574-3.627 1.779-6.347 5.04-8.229 8.87-10.767-1.936-21.442-3.375-29.24-3.329-27.427.202-48.507 9.851-64.146 29.417-15.413 19.269-21.646 43.099-18.02 69.096 3.444 24.627 15.549 50.852 35.812 77.989l-9.768 10.764c-49.413 55.641-85.68 115.617-85.68 125.42v5.131h65.279l-1.144-6.088c-3.695-19.611 3.672-44.24 18.767-62.482 9.475-11.492 25.16-24.629 49.866-30.785 21.896 21.504 49.866 44.24 80.92 66.359h48.506v-5.131c0-5.793-2.855-10.855-8.023-14.275-7.662-5.039-19.493-5.746-30.373-2.012-10.358-11.605-16.185-27.137-17.431-46.291 105.398 9.395 206.038 52.221 319.597 111.967h62.559l-.002-4.063c-.997-12-8.38-20.736-8.38-20.736l-.002.002zM77.981 545.906c-15.458 18.768-23.573 43.557-21.76 64.764H14.968c8.273-17.992 41.254-70.008 89.759-122.686 6.71 8.348 14.167 16.762 22.372 25.313-23.801 7.229-39.666 20.66-49.413 32.609h.295zm288.822-221.515l-.003-.001-.002.005.005-.004z"/><path d="M507.276 325.238v-6.687c-24.772 0-39.609 9.799-46.707 30.68h-53.575c3.746-16.713 4.388-33.106-1.131-42.585-3.113-5.334-8.014-8.173-14.172-8.173-22.071 0-30.781 22.621-31.138 23.582l6.247 2.334c.249-.827 7.556-19.204 24.954-19.204 3.801 0 6.471 1.534 8.402 4.854 4.52 7.784 3.786 23.078.031 39.151h-30.451v6.686l28.959.027c-3.091 10.967-7.418 21.796-12.294 30.451l-1.578 2.771 38.235 24.04-21.477 14.15 3.687 5.586 24.041-15.821 25.871 16.895 3.549-5.652-24.04-14.86 37.777-24.499c-.013-.015-.02-.029-.029-.042l-.13-.076.043-.007c-7.92-11.674-10.417-21.655-7.123-32.962l31.219.041.067-6.64h-29.077c5.496-12.661 13.052-24.04 39.84-24.04h0zm-78.24 83.779l-28.16-17.744 55.178.014-27.018 17.73h0zm29.395-53.114c-2.381 7.555-1.419 18.935 4.419 28.619h-67.999c4.144-8.288 7.968-18.385 10.761-28.619h52.819z"/></svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="595.279" height="424" viewBox="0 209.445 595.279 424" xmlns:v="https://vecta.io/nano"><path fill="#d1a41a" d="M531.64 594.445L437.037 493.74l-10.896 7.205c-52.431-30.908-91.661-75.49-111.786-142.345-71.662 17.629-155.214 62.845-209.047 124.013.01.012.021.023.03.037-53.459 57.869-87.91 112.324-97.033 132.129l52.169.334c-2.015-23.424 4.09-42.951 20-64.668 72.167-98.5 343.167 15 450.167 76.5l57-.5c-.001 0-8.501-37.5-56.001-32h0z"/><path fill="#ffdc76" d="M428.14 500.945c-110.127-54.949-140-189-113-281 0 0 20.5 9.5 40 55.5 44.646-12.799 96.667-14.001 142-1.5 0 0 5.5-36 38.5-53 4.992 21.339 38 191-107.5 280z"/><path d="M229.617 394.569L261.671 379l18.317 49.455-50.371-33.886zm-35.945 18.088l19.919-11.906 18.316 32.284-38.235-20.378zm-38.693 24.956l17.399-11.447 8.7 29.764-26.099-18.317zm308.172 82.424l-11.448-11.447-16.026 25.184 27.474-13.737zm22.896 27.474l-9.158-9.158-27.476 18.316 36.634-9.158zM315.64 346.862l-1.311-18.231 32.055 16.256-30.744 1.975zm10.139 26.644l-6.389-13.561 22.415 9.211-16.026 4.35zm210.638-19.233l4.578-13.736-25.185 10.531 20.607 3.205zm-9.158 27.933l2.289-11.219-18.316 5.495 16.027 5.724zm-222.086 35.488h59.985v7.419h-59.985v-7.419zm0-17.859h59.985v7.418h-59.985v-7.418zm183.163 17.859h59.985v7.419h-59.985v-7.419zm0-17.859h59.985v7.418h-59.985v-7.418z"/><path d="M547.277 286.323l-.1-.151c-.042-11.562-3.627-60.43-10.2-73.884-17.838 6.819-50.32 28.961-57.572 51.537-35.134-5.291-74.799-4.652-109.706 1.388-5.802-24.4-34.905-42.871-56.892-53.361-9.271 15.758-13.396 52.22-12.331 78.217-.039.027-.083.053-.122.083 4.08 108.774 57.119 176.502 126.478 217.549 71.4-41.047 122.399-121.09 120.358-221.427.029.017.061.031.087.049zM427.816 493.599c-109.027-54.727-129.652-193.147-111.064-266.803 5.168 28.505 14.552 46.291 34.905 54.957 18.88-5.445 40.823-8.739 63.263-9.765l16.179 37.412 11.968-37.497c20.707.828 40.93 3.638 58.645 8.554 18.698-13.683 26.066-34.662 29.919-52.906 4.94 21.254 4.375 67.272 4.397 67.272l.138-.755C538 384.597 492.189 456.66 427.817 493.601l-.001-.002z"/><path d="M583.444 607.021c-11.197-12.611-33.094-18.563-51.453-18.129-13.011-15.576-88.398-95.549-88.398-95.549l-5.235 6.613 91.12 98.51 3.943-.34c24.707-2.129 38.759 11.357 42.613 15.553 2.721 3.08 4.374 5.883 5.282 8.074h-50.093c-114.693-60.201-215.56-102.617-321.865-111.966.235-14.98 2.878-31.924 7.978-50.852l-9.838-2.691c-5.234 19.43-7.978 36.943-8.296 52.678a506.01 506.01 0 0 0-33.772-1.129c-9.61 0-18.361.898-26.294 2.463-10.403-10.467-19.266-20.434-26.746-29.873 49.64-51.994 131.692-99.197 202.865-116.527l-2.313-10.034c-76.612 18.585-160.479 69.095-207.171 118.124-21.669-29.418-30.373-53.59-32.866-71.833-3.218-23.032 2.26-44.239 15.866-61.343 21.307-26.68 51.453-28.505 82.731-23.26-.607 4.948.039 9.669 2.006 12.587 8.229 12.223 52.359 16.534 78.881 4.675-19.493-27.364-58.934-40.818-69.813-35.574-3.627 1.779-6.347 5.04-8.229 8.87-10.767-1.936-21.442-3.375-29.24-3.329-27.427.202-48.507 9.851-64.146 29.417-15.413 19.269-21.646 43.099-18.02 69.096 3.444 24.627 15.549 50.852 35.812 77.989l-9.768 10.764c-49.413 55.641-85.68 115.617-85.68 125.42v5.131h65.279l-1.144-6.088c-3.695-19.611 3.672-44.24 18.767-62.482 9.475-11.492 25.16-24.629 49.866-30.785 21.896 21.504 49.866 44.24 80.92 66.359h48.506v-5.131c0-5.793-2.855-10.855-8.023-14.275-7.662-5.039-19.493-5.746-30.373-2.012-10.358-11.605-16.185-27.137-17.431-46.291 105.398 9.395 206.038 52.221 319.597 111.967h62.559l-.002-4.063c-.997-12-8.38-20.736-8.38-20.736l-.002.002zM77.981 545.906c-15.458 18.768-23.573 43.557-21.76 64.764H14.968c8.273-17.992 41.254-70.008 89.759-122.686 6.71 8.348 14.167 16.762 22.372 25.313-23.801 7.229-39.666 20.66-49.413 32.609h.295zm288.822-221.515l-.003-.001-.002.005.005-.004z"/><path d="M507.276 325.238v-6.687c-24.772 0-39.609 9.799-46.707 30.68h-53.575c3.746-16.713 4.388-33.106-1.131-42.585-3.113-5.334-8.014-8.173-14.172-8.173-22.071 0-30.781 22.621-31.138 23.582l6.247 2.334c.249-.827 7.556-19.204 24.954-19.204 3.801 0 6.471 1.534 8.402 4.854 4.52 7.784 3.786 23.078.031 39.151h-30.451v6.686l28.959.027c-3.091 10.967-7.418 21.796-12.294 30.451l-1.578 2.771 38.235 24.04-21.477 14.15 3.687 5.586 24.041-15.821 25.871 16.895 3.549-5.652-24.04-14.86 37.777-24.499c-.013-.015-.02-.029-.029-.042l-.13-.076.043-.007c-7.92-11.674-10.417-21.655-7.123-32.962l31.219.041.067-6.64h-29.077c5.496-12.661 13.052-24.04 39.84-24.04h0zm-78.24 83.779l-28.16-17.744 55.178.014-27.018 17.73h0zm29.395-53.114c-2.381 7.555-1.419 18.935 4.419 28.619h-67.999c4.144-8.288 7.968-18.385 10.761-28.619h52.819z"/></svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.0" id="katman_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 800 600" style="enable-background:new 0 0 800 600;" xml:space="preserve">
<style type="text/css">
.st0{fill:url(#SVGID_1_);}
.st1{fill:url(#SVGID_2_);}
</style>
<path d="M364.7,246.1h16.9L363.2,300h-16.9l-18.5-53.9h17.1l10.2,33h0.2C355.3,279.1,364.7,246.1,364.7,246.1z M436,300h-39.4v-53.9
h39.2v13.6h-23.6v7.1h20.9v12.2h-20.9v7.4H436V300z M477.6,245.2c11.3,0,19.6,5.8,22.1,15.1l-14.7,6.4c-0.7-4.2-2.9-7.4-7.6-7.4
c-5.3,0-9.3,4.4-9.3,14c0,9.6,3.8,14.2,9.3,14.2c4.5,0,6.9-3.4,7.6-7.6l14.7,6.4c-2.5,9.3-10.9,15.1-22.1,15.1
c-16.2,0-26.1-10.7-26.1-28S461.4,245.2,477.6,245.2z M527.9,300v-40.3h-16.2v-13.6h48.5v13.6H544V300H527.9L527.9,300z
M625.6,273.1c0,17.2-10,28-26.1,28c-16,0-26.1-10.7-26.1-28s10.2-28,26.1-28C615.6,245.2,625.6,255.9,625.6,273.1z M590.2,273.1
c0,8.7,3.3,14.2,9.4,14.2s9.4-5.3,9.4-14.2c0-8.7-3.3-14.2-9.4-14.2S590.2,264.2,590.2,273.1z M674.6,300c-1.5-1.8-2-3.4-2.5-6.4
l-1.1-6c-0.7-3.8-2.5-4.9-5.8-4.9h-6.4V300h-16v-53.9h25.6c12.2,0,20.7,4.7,20.7,16.5c0,7.8-5.3,12.3-11.1,13.4v0.2
c4.7,0.7,7.4,3.6,8.5,8.5l2,8.5c0.7,2.9,1.6,4.7,3.4,6.7C692,300,674.6,300,674.6,300z M666.4,259.3h-7.8V270h7.8
c3.8,0,5.8-1.6,5.8-5.4C672.2,261.1,670.4,259.3,666.4,259.3z M344.9,340.5c3.3,0.4,5.6,2.4,5.6,6c0,4.4-2.7,7.3-8.7,7.3h-9.3v-26.1
h8.9c5.1,0,8.2,2.4,8.2,6.9C349.6,337.7,347.6,339.9,344.9,340.5L344.9,340.5z M335.8,339.4h5.4c3.3,0,5.1-1.5,5.1-4.5
s-1.8-4.5-5.1-4.5h-5.4V339.4z M335.8,351h5.8c3.6,0,5.4-1.6,5.4-4.5c0-2.9-2-4.5-5.4-4.5h-5.8V351z M363.8,340.3l7.1-12.7h3.4
l-8.9,15.8v10.2h-3.3v-10.2l-9.1-15.8h3.6L363.8,340.3L363.8,340.3z M390.5,327.6h7.6c7.3,0,12.7,4,12.7,12.9s-5.4,13.1-12.7,13.1
h-7.6V327.6z M393.7,350.8h4.4c4.7,0,9.3-2.5,9.3-10.3s-4.5-10.2-9.3-10.2h-4.4C393.7,330.3,393.7,350.8,393.7,350.8z M429.9,346.5
H419l-2.5,7.3h-3.3l9.4-26.1h3.6l9.4,26.1h-3.3L429.9,346.5L429.9,346.5z M419.9,343.6h8.9l-4.4-12.5L419.9,343.6z M444,353.7v-23.2
h-8.7v-2.9h20.9v2.9h-8.7v23.2H444z M472.3,346.5h-10.9l-2.5,7.3h-3.3l9.4-26.1h3.6l9.4,26.1h-3.3L472.3,346.5z M462.5,343.6h8.9
l-4.4-12.5L462.5,343.6z M483.2,327.6h7.6c7.3,0,12.7,4,12.7,12.9s-5.4,13.1-12.7,13.1h-7.6V327.6z M486.5,350.8h4.4
c4.7,0,9.3-2.5,9.3-10.3s-4.5-10.2-9.3-10.2h-4.4C486.5,330.3,486.5,350.8,486.5,350.8z M530.6,340.7c0,8.4-4.5,13.4-11.3,13.4
s-11.3-5.1-11.3-13.4c0-8.4,4.5-13.4,11.3-13.4S530.6,332.3,530.6,340.7z M511.6,340.7c0,6.4,2.7,10.7,7.8,10.7s7.8-4.4,7.8-10.7
c0-6.4-2.7-10.7-7.8-10.7S511.6,334.3,511.6,340.7z M556.6,340.5v13.1H554l-0.5-3.8c-0.9,2.7-3.8,4.4-7.3,4.4
c-6.5,0-11.1-4.9-11.1-13.4c0-8.7,4.9-13.6,11.4-13.6c4.7,0,8,2,9.4,6l-2.9,1.6c-0.9-3.1-3.4-4.9-6.7-4.9c-5.1,0-8,4-8,10.7
c0,6.4,2.5,10.7,8,10.7c3.4,0,6.7-1.8,6.7-6.5V343h-6.4v-2.7h9.8L556.6,340.5z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="128.0459" y1="579.2074" x2="313.2256" y2="472.2935" gradientTransform="matrix(1 0 0 1 -20.96 -225.764)">
<stop offset="0" style="stop-color:#10E7FF"/>
<stop offset="0.103" style="stop-color:#33D5FF"/>
<stop offset="0.255" style="stop-color:#60BDFF"/>
<stop offset="0.408" style="stop-color:#86AAFF"/>
<stop offset="0.56" style="stop-color:#A39AFF"/>
<stop offset="0.71" style="stop-color:#B790FF"/>
<stop offset="0.858" style="stop-color:#C489FF"/>
<stop offset="1" style="stop-color:#C887FF"/>
</linearGradient>
<path class="st0" d="M199.7,408.2l-92.2-54.1V245.9l92.2-54.1l92.2,54.1v108.2L199.7,408.2z M120.3,346.5l79.1,46.5l79.1-46.5v-92.9
l-79-46.5l-79.3,46.5C120.3,253.5,120.3,346.5,120.3,346.5z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="185.3542" y1="542.0127" x2="277.202" y2="488.9837" gradientTransform="matrix(1 0 0 1 -20.96 -225.764)">
<stop offset="0" style="stop-color:#10E7FF"/>
<stop offset="0.103" style="stop-color:#33D5FF"/>
<stop offset="0.255" style="stop-color:#60BDFF"/>
<stop offset="0.408" style="stop-color:#86AAFF"/>
<stop offset="0.56" style="stop-color:#A39AFF"/>
<stop offset="0.71" style="stop-color:#B790FF"/>
<stop offset="0.858" style="stop-color:#C489FF"/>
<stop offset="1" style="stop-color:#C887FF"/>
</linearGradient>
<path class="st1" d="M239.4,270.6l-32.3,56.8l10.5,18.5l42.8-75.3C260.5,270.6,239.4,270.6,239.4,270.6z M203.3,270.6L171,327.4
l10.5,18.5l42.8-75.3C224.4,270.6,203.3,270.6,203.3,270.6z M138.9,270.6l42.8,75.3l10.5-18.5l-32.3-56.8
C159.9,270.6,138.9,270.6,138.9,270.6z M138.9,270.6l42.8,75.3l10.5-18.5l-32.3-56.8C159.9,270.6,138.9,270.6,138.9,270.6z
M203.3,270.6L171,327.4l10.5,18.5l42.8-75.3C224.4,270.6,203.3,270.6,203.3,270.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -0,0 +1 @@
<svg fill="none" viewBox="0 0 1155 1000" xmlns="http://www.w3.org/2000/svg"><path d="m577.3 0 577.4 1000h-1154.7z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 134 B

View File

@ -0,0 +1 @@
<svg height="58.054" width="64.06" xmlns="http://www.w3.org/2000/svg"><path d="m561.16106 571.25413c-2.21807 0-4.00374 1.7857-4.00374 4.0037v38.0355c0 2.2181 1.78567 4.0038 4.00374 4.0038h20.01869v8.0075h-8.00747v2.0018h-4.00374v2.0019h40.03738v-2.0019h-4.00373v-2.0018h-8.00748v-8.0075h20.01869c2.21807 0 4.00374-1.7857 4.00374-4.0038v-38.0355c0-2.218-1.78567-4.0037-4.00374-4.0037zm0 4.0037h56.05234v38.0355h-56.05234zm29.02711 7.5696-10.88517 5.5051 10.88517 6.5061 11.13539-6.5061zm-10.88517 7.507v12.0112l10.00935 6.0056v-12.0112zm22.02056.062-10.00934 6.0056v12.0112l10.00934-6.0056z" fill="#00bcf2" transform="translate(-557.157 -571.254)"/></svg>

After

Width:  |  Height:  |  Size: 654 B

View File

@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122.88 76.64"><defs><style>.cls-1{fill:#f68633;}.cls-2{fill:#fff;}</style></defs><title>aws-vpc</title><path class="cls-1" d="M15.92,32.33c0-.31,0-.6,0-.91A31.4,31.4,0,0,1,76,18.59,15.91,15.91,0,0,1,100.86,31.2c12.39,1.06,22,13.08,22,22.65v2.08c0,10.3-11.13,20.71-24.85,20.71H24.85C11.13,76.64,0,66.23,0,55.93V53.86C0,45.93,6.62,35,15.92,32.34Z"/><path class="cls-2" d="M32,36.24h4.89l4.89,23h.07l5.18-23H52L44.68,65.1H38.82L32,36.24Zm22.88,0h9.14c5.55,0,8,3.48,8,8.41,0,5.18-3,8.53-8.45,8.53H59.54V65.11H54.93V36.24ZM59.53,49.7h3.28c2.45,0,4.6-1.33,4.6-5,0-3.11-1.24-5-4.94-5H59.52v10Zm34.16,5.06v.6c0,5.22-2.1,10.31-8.89,10.31-7.28,0-9.54-4.69-9.54-15s2.27-15,9.58-15c8.21,0,8.69,6.06,8.69,9.06v.53h-4.6v-.48c0-2.67-.81-5.74-4.13-5.62s-4.93,2.1-4.93,11.4,1.54,11.64,4.93,11.64c3.84,0,4.29-4.29,4.29-7v-.5l4.6,0Z"/></svg>

After

Width:  |  Height:  |  Size: 908 B

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.46 122.88" style="enable-background:new 0 0 122.46 122.88" xml:space="preserve"><style type="text/css"><![CDATA[
.st0{fill:#0078D6;}
]]></style><g><path class="st0" d="M0,17.53v41.52h50.07v-48.4L0,17.53L0,17.53z M56.11,9.68L122.46,0v58.63H56.11V9.68L56.11,9.68z M0,64.16 v41.52l50.07,7.01V64.16H0L0,64.16z M56.11,64.81h66.35v58.07l-66.35-9.4V64.81L56.11,64.81z"/></g></svg>

After

Width:  |  Height:  |  Size: 557 B

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.46 122.88" style="enable-background:new 0 0 122.46 122.88" xml:space="preserve"><style type="text/css"><![CDATA[
.st0{fill:#0078D6;}
]]></style><g><path class="st0" d="M0,17.53v41.52h50.07v-48.4L0,17.53L0,17.53z M56.11,9.68L122.46,0v58.63H56.11V9.68L56.11,9.68z M0,64.16 v41.52l50.07,7.01V64.16H0L0,64.16z M56.11,64.81h66.35v58.07l-66.35-9.4V64.81L56.11,64.81z"/></g></svg>

After

Width:  |  Height:  |  Size: 557 B

View File

@ -3,13 +3,15 @@
"LOGIN": "SigNoz | Login",
"SERVICE_METRICS": "SigNoz | Service Metrics",
"SERVICE_MAP": "SigNoz | Service Map",
"GET_STARTED": "SigNoz | Get Started",
"GET_STARTED_OLD": "SigNoz | Get Started",
"ONBOARDING": "SigNoz | Get Started",
"GET_STARTED_APPLICATION_MONITORING": "SigNoz | Get Started | APM",
"GET_STARTED_LOGS_MANAGEMENT": "SigNoz | Get Started | Logs",
"GET_STARTED_INFRASTRUCTURE_MONITORING": "SigNoz | Get Started | Infrastructure",
"GET_STARTED_AWS_MONITORING": "SigNoz | Get Started | AWS",
"GET_STARTED_AZURE_MONITORING": "SigNoz | Get Started | AZURE",
"GET_STARTED": "SigNoz | Get Started with SigNoz Cloud",
"GET_STARTED_WITH_CLOUD": "SigNoz | Get Started with SigNoz Cloud",
"TRACE": "SigNoz | Trace",
"TRACE_DETAIL": "SigNoz | Trace Detail",
"TRACES_EXPLORER": "SigNoz | Traces Explorer",

View File

@ -1,6 +1,7 @@
import getLocalStorageApi from 'api/browser/localstorage/get';
import setLocalStorageApi from 'api/browser/localstorage/set';
import getOrgUser from 'api/user/getOrgUser';
import { FeatureKeys } from 'constants/features';
import { LOCALSTORAGE } from 'constants/localStorage';
import ROUTES from 'constants/routes';
import history from 'lib/history';
@ -36,6 +37,7 @@ function PrivateRoute({ children }: PrivateRouteProps): JSX.Element {
isFetchingLicenses,
activeLicenseV3,
isFetchingActiveLicenseV3,
featureFlags,
} = useAppContext();
const isAdmin = user.role === USER_ROLES.ADMIN;
@ -170,6 +172,16 @@ function PrivateRoute({ children }: PrivateRouteProps): JSX.Element {
}
}, [org]);
// if the feature flag is enabled and the current route is /get-started then redirect to /get-started-with-signoz-cloud
useEffect(() => {
if (
currentRoute?.path === ROUTES.GET_STARTED &&
featureFlags?.find((e) => e.name === FeatureKeys.ONBOARDING_V3)?.active
) {
history.push(ROUTES.GET_STARTED_WITH_CLOUD);
}
}, [currentRoute, featureFlags]);
// eslint-disable-next-line sonarjs/cognitive-complexity
useEffect(() => {
// if it is an old route navigate to the new route

View File

@ -73,6 +73,10 @@ export const OrgOnboarding = Loadable(
() => import(/* webpackChunkName: "OrgOnboarding" */ 'pages/OrgOnboarding'),
);
export const OnboardingV2 = Loadable(
() => import(/* webpackChunkName: "Onboarding V2" */ 'pages/OnboardingPageV2'),
);
export const DashboardPage = Loadable(
() =>
import(/* webpackChunkName: "DashboardPage" */ 'pages/DashboardsListPage'),

View File

@ -33,6 +33,7 @@ import {
NewDashboardPage,
OldLogsExplorer,
Onboarding,
OnboardingV2,
OrganizationSettings,
OrgOnboarding,
PasswordReset,
@ -72,6 +73,13 @@ const routes: AppRoutes[] = [
isPrivate: true,
key: 'GET_STARTED',
},
{
path: ROUTES.GET_STARTED_WITH_CLOUD,
exact: false,
component: OnboardingV2,
isPrivate: true,
key: 'GET_STARTED_WITH_CLOUD',
},
{
path: ROUTES.ONBOARDING,
exact: false,

View File

@ -23,4 +23,6 @@ export enum FeatureKeys {
PREMIUM_SUPPORT = 'PREMIUM_SUPPORT',
QUERY_BUILDER_SEARCH_V2 = 'QUERY_BUILDER_SEARCH_V2',
ANOMALY_DETECTION = 'ANOMALY_DETECTION',
AWS_INTEGRATION = 'AWS_INTEGRATION',
ONBOARDING_V3 = 'ONBOARDING_V3',
}

View File

@ -7,8 +7,9 @@ const ROUTES = {
TRACE: '/trace',
TRACE_DETAIL: '/trace/:id',
TRACES_EXPLORER: '/traces-explorer',
GET_STARTED: '/get-started',
ONBOARDING: '/onboarding',
GET_STARTED: '/get-started',
GET_STARTED_WITH_CLOUD: '/get-started-with-signoz-cloud',
GET_STARTED_APPLICATION_MONITORING: '/get-started/application-monitoring',
GET_STARTED_LOGS_MANAGEMENT: '/get-started/logs-management',
GET_STARTED_INFRASTRUCTURE_MONITORING:

View File

@ -4,7 +4,7 @@
width: 100%;
.app-content {
width: calc(100% - 64px);
width: 100%;
z-index: 0;
margin: 0 auto;

View File

@ -242,6 +242,7 @@ function AppLayout(props: AppLayoutProps): JSX.Element {
const renderFullScreen =
pathname === ROUTES.GET_STARTED ||
pathname === ROUTES.ONBOARDING ||
pathname === ROUTES.GET_STARTED_WITH_CLOUD ||
pathname === ROUTES.GET_STARTED_APPLICATION_MONITORING ||
pathname === ROUTES.GET_STARTED_INFRASTRUCTURE_MONITORING ||
pathname === ROUTES.GET_STARTED_LOGS_MANAGEMENT ||

View File

@ -978,14 +978,70 @@
.ingestion-setup-details-links {
display: flex;
align-items: center;
flex-direction: column;
gap: 8px;
margin-bottom: 24px;
margin-top: 12px;
padding: 12px;
border-radius: 4px;
background: rgba(113, 144, 249, 0.1);
color: var(--bg-robin-300, #95acfb);
.ingestion-key-url-container {
display: flex;
gap: 8px;
justify-content: space-between;
align-items: center;
.ingestion-key-url-label {
font-size: 13px;
font-weight: 500;
color: var(--bg-robin-300, #95acfb);
}
.ingestion-key-url-value {
display: flex;
gap: 8px;
align-items: center;
font-size: 13px;
font-weight: 500;
color: var(--bg-robin-300, #95acfb);
.copy-key-btn {
cursor: pointer;
}
}
}
.ingestion-data-region-container {
display: flex;
gap: 8px;
align-items: center;
justify-content: space-between;
.ingestion-data-region-label {
font-size: 13px;
font-weight: 500;
color: var(--bg-robin-300, #95acfb);
}
.ingestion-data-region-value {
display: flex;
gap: 8px;
align-items: center;
font-size: 13px;
font-weight: 500;
color: var(--bg-robin-300, #95acfb);
.ingestion-data-region-value-text {
color: var(--bg-robin-300, #95acfb);
}
.copy-key-btn {
cursor: pointer;
}
}
}
.learn-more {
display: inline-flex;
justify-content: center;

View File

@ -1,3 +1,5 @@
/* eslint-disable jsx-a11y/no-static-element-interactions */
/* eslint-disable jsx-a11y/click-events-have-key-events */
import './IngestionSettings.styles.scss';
import { Color } from '@signozhq/design-tokens';
@ -33,6 +35,7 @@ import Tags from 'components/Tags/Tags';
import { SOMETHING_WENT_WRONG } from 'constants/api';
import { DATE_TIME_FORMATS } from 'constants/dateTimeFormats';
import dayjs from 'dayjs';
import { useGetDeploymentsData } from 'hooks/CustomDomain/useGetDeploymentsData';
import { useGetAllIngestionsKeys } from 'hooks/IngestionKeys/useGetAllIngestionKeys';
import useDebouncedFn from 'hooks/useDebouncedFunction';
import { useNotifications } from 'hooks/useNotifications';
@ -43,7 +46,6 @@ import {
Check,
Copy,
Infinity,
Info,
Minus,
PenLine,
Plus,
@ -285,6 +287,13 @@ function MultiIngestionSettings(): JSX.Element {
setSearchValue('');
};
const {
data: deploymentsData,
isLoading: isLoadingDeploymentsData,
isFetching: isFetchingDeploymentsData,
isError: isErrorDeploymentsData,
} = useGetDeploymentsData();
const {
mutate: createIngestionKey,
isLoading: isLoadingCreateAPIKey,
@ -1253,22 +1262,6 @@ function MultiIngestionSettings(): JSX.Element {
return (
<div className="ingestion-key-container">
<div className="ingestion-key-content">
<div className="ingestion-setup-details-links">
<Info size={14} />
<span>
Find your ingestion URL and learn more about sending data to SigNoz{' '}
<a
href="https://signoz.io/docs/ingestion/signoz-cloud/overview/"
target="_blank"
className="learn-more"
rel="noreferrer"
>
here <ArrowUpRight size={14} />
</a>
</span>
</div>
<header>
<Typography.Title className="title"> Ingestion Keys </Typography.Title>
<Typography.Text className="subtitle">
@ -1284,6 +1277,46 @@ function MultiIngestionSettings(): JSX.Element {
</Typography.Text>
</header>
{!isErrorDeploymentsData &&
!isLoadingDeploymentsData &&
!isFetchingDeploymentsData && (
<div className="ingestion-setup-details-links">
<div className="ingestion-key-url-container">
<div className="ingestion-key-url-label">Ingestion URL</div>
<div
className="ingestion-key-url-value"
onClick={(e): void => {
e.stopPropagation();
e.preventDefault();
handleCopyKey(
`ingest.${deploymentsData?.data.data.cluster.region.dns}`,
);
}}
>
ingest.{deploymentsData?.data.data.cluster.region.dns}
<Copy className="copy-key-btn" size={12} />
</div>
</div>
<div className="ingestion-data-region-container">
<div className="ingestion-data-region-label">Region</div>
<div
className="ingestion-data-region-value"
onClick={(e): void => {
e.stopPropagation();
e.preventDefault();
handleCopyKey(deploymentsData?.data.data.cluster.region.name || '');
}}
>
<Typography.Text className="ingestion-data-region-value-text">
{deploymentsData?.data.data.cluster.region.name}
</Typography.Text>
<Copy className="copy-key-btn" size={12} />
</div>
</div>
</div>
)}
<div className="ingestion-keys-search-add-new">
<Input
placeholder="Search for ingestion key..."

View File

@ -12,27 +12,12 @@ describe('MultiIngestionSettings Page', () => {
});
it('renders MultiIngestionSettings page without crashing', () => {
expect(
screen.getByText(
'Find your ingestion URL and learn more about sending data to SigNoz',
),
).toBeInTheDocument();
expect(screen.getByText('Ingestion Keys')).toBeInTheDocument();
expect(
screen.getByText('Create and manage ingestion keys for the SigNoz Cloud'),
).toBeInTheDocument();
const overviewLink = screen.getByRole('link', { name: /here/i });
expect(overviewLink).toHaveAttribute(
'href',
'https://signoz.io/docs/ingestion/signoz-cloud/overview/',
);
expect(overviewLink).toHaveAttribute('target', '_blank');
expect(overviewLink).toHaveClass('learn-more');
expect(overviewLink).toHaveAttribute('rel', 'noreferrer');
const aboutKeyslink = screen.getByRole('link', { name: /Learn more/i });
expect(aboutKeyslink).toHaveAttribute(
'href',

View File

@ -7,12 +7,14 @@ import { Button, Card, Form, Typography } from 'antd';
import logEvent from 'api/common/logEvent';
import getIngestionData from 'api/settings/getIngestionData';
import cx from 'classnames';
import { FeatureKeys } from 'constants/features';
import ROUTES from 'constants/routes';
import FullScreenHeader from 'container/FullScreenHeader/FullScreenHeader';
import InviteUserModal from 'container/OrganizationSettings/InviteUserModal/InviteUserModal';
import { InviteMemberFormValues } from 'container/OrganizationSettings/PendingInvitesContainer';
import history from 'lib/history';
import { UserPlus } from 'lucide-react';
import { useAppContext } from 'providers/App/App';
import { useCallback, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { useQuery } from 'react-query';
@ -106,6 +108,11 @@ export default function Onboarding(): JSX.Element {
const { location } = history;
const { t } = useTranslation(['onboarding']);
const { featureFlags } = useAppContext();
const isOnboardingV3Enabled = featureFlags?.find(
(flag) => flag.name === FeatureKeys.ONBOARDING_V3,
)?.active;
const {
selectedDataSource,
selectedEnvironment,
@ -384,7 +391,12 @@ export default function Onboarding(): JSX.Element {
setActiveStep(activeStep - 1);
setSelectedModule(useCases.APM);
resetProgress();
history.push(ROUTES.GET_STARTED);
if (isOnboardingV3Enabled) {
history.push(ROUTES.GET_STARTED_WITH_CLOUD);
} else {
history.push(ROUTES.GET_STARTED);
}
}}
selectedModule={selectedModule}
selectedModuleSteps={selectedModuleSteps}

View File

@ -7,6 +7,7 @@ import getAllOrgPreferences from 'api/preferences/getAllOrgPreferences';
import updateOrgPreferenceAPI from 'api/preferences/updateOrgPreference';
import { AxiosError } from 'axios';
import { SOMETHING_WENT_WRONG } from 'constants/api';
import { FeatureKeys } from 'constants/features';
import ROUTES from 'constants/routes';
import { InviteTeamMembersProps } from 'container/OrganizationSettings/PendingInvitesContainer';
import { useNotifications } from 'hooks/useNotifications';
@ -62,7 +63,10 @@ const ONBOARDING_COMPLETE_EVENT_NAME = 'Org Onboarding: Complete';
function OnboardingQuestionaire(): JSX.Element {
const { notifications } = useNotifications();
const { org, updateOrgPreferences } = useAppContext();
const { org, updateOrgPreferences, featureFlags } = useAppContext();
const isOnboardingV3Enabled = featureFlags?.find(
(flag) => flag.name === FeatureKeys.ONBOARDING_V3,
)?.active;
const [currentStep, setCurrentStep] = useState<number>(1);
const [orgDetails, setOrgDetails] = useState<OrgDetails>(INITIAL_ORG_DETAILS);
const [signozDetails, setSignozDetails] = useState<SignozDetails>(
@ -117,7 +121,11 @@ function OnboardingQuestionaire(): JSX.Element {
logEvent('Org Onboarding: Redirecting to Get Started', {});
history.push(ROUTES.GET_STARTED);
if (isOnboardingV3Enabled) {
history.push(ROUTES.GET_STARTED_WITH_CLOUD);
} else {
history.push(ROUTES.GET_STARTED);
}
},
onError: () => {
setUpdatingOrgOnboardingStatus(false);

View File

@ -0,0 +1,813 @@
import '../OnboardingV2.styles.scss';
import { SearchOutlined } from '@ant-design/icons';
import {
Button,
Flex,
Input,
Layout,
Modal,
Skeleton,
Space,
Steps,
Typography,
} from 'antd';
import logEvent from 'api/common/logEvent';
import LaunchChatSupport from 'components/LaunchChatSupport/LaunchChatSupport';
import ROUTES from 'constants/routes';
import history from 'lib/history';
import { isEmpty } from 'lodash-es';
import { ArrowRight, X } from 'lucide-react';
import { useAppContext } from 'providers/App/App';
import React, { useEffect, useRef, useState } from 'react';
import OnboardingIngestionDetails from '../IngestionDetails/IngestionDetails';
import InviteTeamMembers from '../InviteTeamMembers/InviteTeamMembers';
import onboardingConfigWithLinks from '../onboarding-configs/onboarding-config-with-links.json';
const { Header } = Layout;
interface OptionGroup {
id: string;
category: string;
items: string[];
}
export interface Question {
id: string;
title: string;
description: string;
options: OptionGroup[];
uiConfig?: {
showSearch?: boolean;
filterByCategory?: boolean;
};
}
interface Option {
imgUrl?: string;
label: string;
link?: string;
entityID?: string;
}
interface Entity {
imgUrl?: string;
label: string;
dataSource: string;
entityID: string;
module: string;
question?: {
desc: string;
options: Option[];
entityID: string;
question?: {
desc: string;
options: Option[];
entityID: string;
};
};
tags: string[];
link?: string;
}
const setupStepItemsBase = [
{
title: 'Org Setup',
description: <Typography.Text>&nbsp;</Typography.Text>,
},
{
title: 'Add your first data source',
description: ' ',
},
{
title: 'Configure Your Product',
description: ' ',
},
];
const ONBOARDING_V3_ANALYTICS_EVENTS_MAP = {
BASE: 'Onboarding V3',
STARTED: 'Started',
DATA_SOURCE_SELECTED: 'Datasource selected',
FRAMEWORK_SELECTED: 'Framework selected',
ENVIRONMENT_SELECTED: 'Environment selected',
CONFIGURED_PRODUCT: 'Configure clicked',
BACK_BUTTON_CLICKED: 'Back clicked',
CONTINUE_BUTTON_CLICKED: 'Continue clicked',
GET_HELP_BUTTON_CLICKED: 'Get help clicked',
GET_EXPERT_ASSISTANCE_BUTTON_CLICKED: 'Get expert assistance clicked',
INVITE_TEAM_MEMBER_BUTTON_CLICKED: 'Invite team member clicked',
CLOSE_ONBOARDING_CLICKED: 'Close onboarding clicked',
};
function OnboardingAddDataSource(): JSX.Element {
const [groupedDataSources, setGroupedDataSources] = useState<{
[tag: string]: Entity[];
}>({});
const { org } = useAppContext();
const [setupStepItems, setSetupStepItems] = useState(setupStepItemsBase);
const question2Ref = useRef<HTMLDivElement | null>(null);
const question3Ref = useRef<HTMLDivElement | null>(null);
const configureProdRef = useRef<HTMLDivElement | null>(null);
const [showConfigureProduct, setShowConfigureProduct] = useState<boolean>(
false,
);
const [currentStep, setCurrentStep] = useState(1);
const [hasMoreQuestions, setHasMoreQuestions] = useState<boolean>(true);
const [
showInviteTeamMembersModal,
setShowInviteTeamMembersModal,
] = useState<boolean>(false);
const [docsUrl, setDocsUrl] = useState<string>(
'https://signoz.io/docs/instrumentation/',
);
const [selectedDataSource, setSelectedDataSource] = useState<Entity | null>(
null,
);
const [selectedFramework, setSelectedFramework] = useState<Entity | null>(
null,
);
const [selectedEnvironment, setSelectedEnvironment] = useState<Entity | null>(
null,
);
const [selectedCategory, setSelectedCategory] = useState<string>('All');
const handleScrollToStep = (ref: React.RefObject<HTMLDivElement>): void => {
setTimeout(() => {
ref.current?.scrollIntoView({
behavior: 'smooth',
block: 'start',
inline: 'nearest',
});
}, 100);
};
useEffect(() => {
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.STARTED}`,
{},
);
}, []);
const updateUrl = (url: string, selectedEnvironment: string | null): void => {
if (!url || url === '') {
return;
}
// Step 1: Parse the URL
const urlObj = new URL(url);
// Step 2: Update or add the 'source' parameter
urlObj.searchParams.set('source', 'onboarding');
if (selectedEnvironment) {
urlObj.searchParams.set('environment', selectedEnvironment);
}
// Step 3: Return the updated URL as a string
const updatedUrl = urlObj.toString();
setDocsUrl(updatedUrl);
};
const handleSelectDataSource = (dataSource: Entity): void => {
setSelectedDataSource(dataSource);
setSelectedFramework(null);
setSelectedEnvironment(null);
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.DATA_SOURCE_SELECTED}`,
{
dataSource: dataSource.label,
},
);
if (dataSource.question) {
setHasMoreQuestions(true);
setTimeout(() => {
handleScrollToStep(question2Ref);
}, 100);
} else {
setHasMoreQuestions(false);
updateUrl(dataSource?.link || '', null);
setShowConfigureProduct(true);
}
};
const handleSelectFramework = (option: any): void => {
setSelectedFramework(option);
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.FRAMEWORK_SELECTED}`,
{
dataSource: selectedDataSource?.label,
framework: option.label,
},
);
if (option.question) {
setHasMoreQuestions(true);
updateUrl(option?.link, null);
setTimeout(() => {
handleScrollToStep(question3Ref);
}, 100);
} else {
updateUrl(option.link, null);
setHasMoreQuestions(false);
setShowConfigureProduct(true);
}
};
const handleSelectEnvironment = (selectedEnvironment: any): void => {
setSelectedEnvironment(selectedEnvironment);
setHasMoreQuestions(false);
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.ENVIRONMENT_SELECTED}`,
{
dataSource: selectedDataSource?.label,
framework: selectedFramework?.label,
environment: selectedEnvironment?.label,
},
);
updateUrl(docsUrl, selectedEnvironment?.key);
setShowConfigureProduct(true);
};
const groupDataSourcesByTags = (
dataSources: Entity[],
): { [tag: string]: Entity[] } => {
const groupedDataSources: { [tag: string]: Entity[] } = {};
dataSources.forEach((dataSource) => {
dataSource.tags.forEach((tag) => {
if (!groupedDataSources[tag]) {
groupedDataSources[tag] = [];
}
groupedDataSources[tag].push(dataSource);
});
});
return groupedDataSources;
};
useEffect(() => {
const groupedDataSources = groupDataSourcesByTags(
onboardingConfigWithLinks as Entity[],
);
setGroupedDataSources(groupedDataSources);
}, []);
const handleSearch = (e: React.ChangeEvent<HTMLInputElement>): void => {
const query = e.target.value.toLowerCase();
if (query === '') {
setGroupedDataSources(
groupDataSourcesByTags(onboardingConfigWithLinks as Entity[]),
);
return;
}
const filteredDataSources = onboardingConfigWithLinks.filter(
(dataSource) =>
dataSource.label.toLowerCase().includes(query) ||
dataSource.tags.some((tag) => tag.toLowerCase().includes(query)),
);
setGroupedDataSources(
groupDataSourcesByTags(filteredDataSources as Entity[]),
);
};
const handleFilterByCategory = (category: string): void => {
setSelectedDataSource(null);
setSelectedFramework(null);
setSelectedEnvironment(null);
if (category === 'All') {
setGroupedDataSources(
groupDataSourcesByTags(onboardingConfigWithLinks as Entity[]),
);
setSelectedCategory('All');
return;
}
const filteredDataSources = onboardingConfigWithLinks.filter(
(dataSource) =>
dataSource.tags.includes(category) ||
dataSource.tags.some((tag) => tag.toLowerCase().includes(category)),
);
setSelectedCategory(category);
setGroupedDataSources(
groupDataSourcesByTags(filteredDataSources as Entity[]),
);
};
useEffect(() => {
setSetupStepItems([
{
...setupStepItemsBase[0],
description: org?.[0]?.name || '',
},
...setupStepItemsBase.slice(1),
]);
}, [org]);
const handleUpdateCurrentStep = (step: number): void => {
setCurrentStep(step);
if (step === 1) {
setSetupStepItems([
{
...setupStepItemsBase[0],
description: org?.[0]?.name || '',
},
{
...setupStepItemsBase[1],
description: '',
},
...setupStepItemsBase.slice(2),
]);
} else if (step === 2) {
setSetupStepItems([
{
...setupStepItemsBase[0],
description: org?.[0]?.name || '',
},
{
...setupStepItemsBase[1],
description: `${selectedDataSource?.label} ${
selectedFramework?.label ? `- ${selectedFramework?.label}` : ''
}`,
},
...setupStepItemsBase.slice(2),
]);
} else if (step === 3) {
switch (selectedDataSource?.module) {
case 'apm':
history.push(ROUTES.APPLICATION);
break;
case 'logs':
history.push(ROUTES.LOGS);
break;
case 'metrics':
history.push(ROUTES.ALL_DASHBOARD);
break;
default:
history.push(ROUTES.APPLICATION);
}
}
};
const handleShowInviteTeamMembersModal = (): void => {
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.INVITE_TEAM_MEMBER_BUTTON_CLICKED}`,
{
dataSource: selectedDataSource?.label,
framework: selectedFramework?.label,
environment: selectedEnvironment?.label,
currentPage: setupStepItems[currentStep]?.title || '',
},
);
setShowInviteTeamMembersModal(true);
};
return (
<div className="onboarding-v2">
<Layout>
<div className="setup-flow__header">
<div className="onboarding-header-container">
<div className="header-left-section">
<X
size={14}
color="#fff"
className="onboarding-header-container-close-icon"
onClick={(): void => {
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.CLOSE_ONBOARDING_CLICKED}`,
{
currentPage: setupStepItems[currentStep]?.title || '',
},
);
history.push(ROUTES.APPLICATION);
}}
/>
<Typography.Text>Get Started (2/4)</Typography.Text>
</div>
<div className="header-right-section">
<LaunchChatSupport
attributes={{
dataSource: selectedDataSource?.dataSource,
framework: selectedFramework?.label,
environment: selectedEnvironment?.label,
currentPage: setupStepItems[currentStep]?.title || '',
}}
eventName={`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.GET_HELP_BUTTON_CLICKED}`}
message=""
buttonText="Get Help"
className="periscope-btn get-help-btn outlined"
/>
</div>
</div>
</div>
<Header
className="setup-flow__header setup-flow__header--sticky"
style={{ position: 'sticky', top: 0, zIndex: 1, width: '100%' }}
>
<Steps
size="small"
className="setup-flow__steps"
current={currentStep}
items={setupStepItems}
/>
</Header>
<div className="onboarding-product-setup-container">
<div className="onboarding-product-setup-container_left-section">
<div className="perlian-bg" />
{currentStep === 1 && (
<div className="onboarding-add-data-source-container step-1">
<div className="onboarding-data-sources-container">
<div className="onboarding-question-header">
<div className="question-title-container">
<Typography.Title
level={3}
className="question-title onboarding-question"
>
Select your data source
</Typography.Title>
<Typography.Text className="question-sub-title">
Select from a host of services to start sending data to SigNoz
</Typography.Text>
</div>
</div>
<div className="questionnaire-container">
<div
className={`question-1 question-block data-sources-and-filters-container ${
selectedDataSource ? 'answered' : ''
}`}
>
<div className="data-sources-container">
<div className="onboarding-data-source-search">
<Input
placeholder="Search"
onChange={handleSearch}
addonAfter={<SearchOutlined />}
/>
</div>
{Object.keys(groupedDataSources).map((tag) => (
<div key={tag} className="onboarding-data-source-group">
<Typography.Title level={5} className="onboarding-title">
{tag} ({groupedDataSources[tag].length})
</Typography.Title>
<div className="onboarding-data-source-list">
{groupedDataSources[tag].map((dataSource) => (
<Button
key={dataSource.dataSource}
className={`onboarding-data-source-button ${
selectedDataSource?.label === dataSource.label
? 'selected'
: ''
}`}
type="primary"
onClick={(): void => handleSelectDataSource(dataSource)}
>
<img
src={dataSource.imgUrl}
alt={dataSource.label}
className="onboarding-data-source-button-img"
/>
{dataSource.label}
</Button>
))}
</div>
</div>
))}
</div>
<div className="data-source-categories-filter-container">
<div className="onboarding-data-source-category">
<Typography.Title level={5} className="onboarding-filters-title">
{' '}
Filters{' '}
</Typography.Title>
<Typography.Title
level={5}
className={`onboarding-filters-item-title ${
selectedCategory === 'All' ? 'selected' : ''
}`}
onClick={(): void => handleFilterByCategory('All')}
>
All ({onboardingConfigWithLinks.length})
</Typography.Title>
{Object.keys(groupedDataSources).map((tag) => (
<div key={tag} className="onboarding-data-source-category-item">
<Typography.Title
level={5}
className={`onboarding-filters-item-title ${
selectedCategory === tag ? 'selected' : ''
}`}
onClick={(): void => handleFilterByCategory(tag)}
>
{tag} ({groupedDataSources[tag].length})
</Typography.Title>
</div>
))}
</div>
</div>
</div>
{selectedDataSource &&
selectedDataSource?.question &&
!isEmpty(selectedDataSource?.question) && (
<div
className={`question-2 question-block ${
selectedFramework ? 'answered' : ''
}`}
ref={question2Ref}
>
{selectedDataSource?.question?.desc && (
<>
<div className="question-title-container">
<Typography.Title
level={3}
className="question-title onboarding-text"
>
{selectedDataSource?.question?.desc}
</Typography.Title>
</div>
<div className="onboarding-data-source-options">
{selectedDataSource?.question?.options.map((option) => (
<Button
key={option.label}
className={`onboarding-data-source-button ${
selectedFramework?.label === option.label ? 'selected' : ''
}`}
type="primary"
onClick={(): void => handleSelectFramework(option)}
>
{option.imgUrl && (
<img
src={option.imgUrl || '/Logos/signoz-brand-logo-new.svg'}
alt={option.label}
className="onboarding-data-source-button-img"
/>
)}
{option.label}
</Button>
))}
</div>
</>
)}
</div>
)}
{selectedFramework &&
selectedFramework?.question &&
!isEmpty(selectedFramework?.question) && (
<div
className={`question-3 question-block ${
selectedEnvironment ? 'answered' : ''
}`}
ref={question3Ref}
>
{selectedFramework?.question?.desc && (
<>
<div className="question-title-container">
<Typography.Title
level={3}
className="question-title onboarding-text"
>
{selectedFramework?.question?.desc}
</Typography.Title>
</div>
<div className="onboarding-data-source-options">
{selectedFramework?.question?.options.map((option) => (
<Button
key={option.label}
className={`onboarding-data-source-button ${
selectedEnvironment?.label === option.label ? 'selected' : ''
}`}
type="primary"
onClick={(): void => handleSelectEnvironment(option)}
>
<img
src={option.imgUrl || '/Logos/signoz-brand-logo-new.svg'}
alt={option.label}
className="onboarding-data-source-button-img"
/>
{option.label}
</Button>
))}
</div>
</>
)}
</div>
)}
{!hasMoreQuestions && showConfigureProduct && (
<div className="questionaire-footer" ref={configureProdRef}>
<Button
type="primary"
disabled={!selectedDataSource}
shape="round"
onClick={(): void => {
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.CONFIGURED_PRODUCT}`,
{
dataSource: selectedDataSource?.label,
framework: selectedFramework?.label,
environment: selectedEnvironment?.label,
},
);
handleUpdateCurrentStep(2);
}}
>
Next: Configure your product
</Button>
</div>
)}
</div>
</div>
</div>
)}
{currentStep === 2 && (
<div className="onboarding-configure-container step-2">
<div className="configure-product-docs-section">
<div className="loading-container">
<Flex gap="middle" vertical>
<Space align="end">
<Skeleton.Avatar
style={{ width: 40, height: 40 }}
shape="square"
active
/>
</Space>
<Space align="start">
<Skeleton.Button active size="small" block />
<Skeleton.Input active size="small" />
<Skeleton.Input active size="small" />
</Space>
<Skeleton.Button active size="small" block />
<Skeleton.Button active size="small" block />
</Flex>
</div>
<iframe
title="docs"
src={docsUrl}
className="configure-product-docs-section-iframe"
referrerPolicy="unsafe-url"
loading="lazy"
allow="clipboard-write; encrypted-media; web-share"
allowFullScreen
/>
</div>
<div className="onboarding-footer">
<Button
type="default"
shape="round"
onClick={(): void => {
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BACK_BUTTON_CLICKED}`,
{
dataSource: selectedDataSource?.label,
framework: selectedFramework?.label,
environment: selectedEnvironment?.label,
currentPage: setupStepItems[currentStep]?.title || '',
},
);
handleUpdateCurrentStep(1);
}}
>
Back
</Button>
<Button
type="primary"
shape="round"
onClick={(): void => {
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.CONTINUE_BUTTON_CLICKED}`,
{
dataSource: selectedDataSource?.label,
framework: selectedFramework?.label,
environment: selectedEnvironment?.label,
currentPage: setupStepItems[currentStep]?.title || '',
},
);
handleFilterByCategory('All');
handleUpdateCurrentStep(3);
}}
>
Continue
</Button>
</div>
</div>
)}
</div>
<div className="onboarding-product-setup-container_right-section">
{currentStep === 1 && (
<div className="invite-user-section-content">
<Button
type="default"
shape="round"
className="invite-user-section-content-button"
onClick={handleShowInviteTeamMembersModal}
>
Invite a team member to help with this step
<ArrowRight size={14} />
</Button>
<div className="need-help-section-content-divider">Or</div>
<div className="need-help-section-content">
<Typography.Text>
Need help with setup? Upgrade now and get expert assistance.
</Typography.Text>
<LaunchChatSupport
attributes={{
dataSource: selectedDataSource?.dataSource,
framework: selectedFramework?.label,
environment: selectedEnvironment?.label,
currentPage: setupStepItems[currentStep]?.title || '',
}}
eventName={`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.GET_EXPERT_ASSISTANCE_BUTTON_CLICKED}`}
message=""
buttonText="Get Expert Assistance"
className="periscope-btn get-help-btn rounded-btn outlined"
/>
</div>
</div>
)}
{currentStep === 2 && <OnboardingIngestionDetails />}
</div>
</div>
<Modal
className="invite-team-member-modal"
title={<span className="title">Invite a team member</span>}
open={showInviteTeamMembersModal}
closable
onCancel={(): void => setShowInviteTeamMembersModal(false)}
width="640px"
footer={null}
destroyOnClose
>
<div className="invite-team-member-modal-content">
<InviteTeamMembers
isLoading={false}
teamMembers={null}
setTeamMembers={(): void => {}}
onNext={(): void => setShowInviteTeamMembersModal(false)}
onClose={(): void => setShowInviteTeamMembersModal(false)}
/>
</div>
</Modal>
</Layout>
</div>
);
}
export default OnboardingAddDataSource;

View File

@ -0,0 +1,221 @@
import { Skeleton, Typography } from 'antd';
import logEvent from 'api/common/logEvent';
import getIngestionData from 'api/settings/getIngestionData';
import { AxiosError } from 'axios';
import { useGetDeploymentsData } from 'hooks/CustomDomain/useGetDeploymentsData';
import { useNotifications } from 'hooks/useNotifications';
import {
ArrowUpRight,
Copy,
Info,
Key,
MapPin,
TriangleAlert,
} from 'lucide-react';
import { useEffect, useState } from 'react';
import { useQuery } from 'react-query';
import { useCopyToClipboard } from 'react-use';
import { IngestionInfo } from 'types/api/settings/ingestion';
function maskKey(key: string, visibleStart = 4, visibleEnd = 4): string {
if (!key) {
return '';
}
// Ensure the key length is sufficient to be masked
if (key.length <= visibleStart + visibleEnd) {
return key; // Return the key as-is if it's too short to mask
}
const maskedSection = '*'.repeat(5);
// Construct and return the masked key
return key.slice(0, visibleStart) + maskedSection + key.slice(-visibleEnd);
}
const ONBOARDING_V3_ANALYTICS_EVENTS_MAP = {
BASE: 'Onboarding V3',
INGESTION_KEY_COPIED: 'Ingestion key copied',
INGESTION_URL_COPIED: 'Ingestion URL copied',
REGION_COPIED: 'Region copied',
};
export default function OnboardingIngestionDetails(): JSX.Element {
const { notifications } = useNotifications();
const [, handleCopyToClipboard] = useCopyToClipboard();
const [firstIngestionKey, setFirstIngestionKey] = useState<IngestionInfo>(
{} as IngestionInfo,
);
const {
status,
data: ingestionData,
isLoading: isIngestionKeysLoading,
error,
isError,
} = useQuery({
queryFn: () => getIngestionData(),
});
const {
data: deploymentsData,
isLoading: isLoadingDeploymentsData,
isFetching: isFetchingDeploymentsData,
isError: isDeploymentsDataError,
} = useGetDeploymentsData();
const handleCopyKey = (text: string): void => {
handleCopyToClipboard(text);
notifications.success({
message: 'Copied to clipboard',
});
};
useEffect(() => {
if (
status === 'success' &&
ingestionData &&
ingestionData &&
Array.isArray(ingestionData.payload)
) {
const payload = ingestionData.payload[0] || {
ingestionKey: '',
ingestionURL: '',
dataRegion: '',
};
setFirstIngestionKey(payload);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [status, ingestionData?.payload]);
return (
<div className="configure-product-ingestion-section-content">
{isError && (
<div className="ingestion-endpoint-section-error-container">
<Typography.Text className="ingestion-endpoint-section-error-text error">
<TriangleAlert size={14} />{' '}
{(error as AxiosError)?.message || 'Something went wrong'}
</Typography.Text>
<div className="ingestion-setup-details-links">
<Info size={14} />
<span>
Find your ingestion URL and learn more about sending data to SigNoz{' '}
<a
href="https://signoz.io/docs/ingestion/signoz-cloud/overview/"
target="_blank"
className="learn-more"
rel="noreferrer"
>
here <ArrowUpRight size={14} />
</a>
</span>
</div>
</div>
)}
{(isIngestionKeysLoading || !isError) && (
<>
<div className="ingestion-key-details-section">
<Typography.Text className="ingestion-key-details-section-text">
You can use this key to send your telemetry data to SigNoz.
</Typography.Text>
<div className="ingestion-key-details-section-key">
{isIngestionKeysLoading ||
isLoadingDeploymentsData ||
isFetchingDeploymentsData ? (
<div className="skeleton-container">
<Skeleton.Input active className="skeleton-input" />
<Skeleton.Input active className="skeleton-input" />
<Skeleton.Input active className="skeleton-input" />
<Skeleton.Input active className="skeleton-input" />
</div>
) : (
<div className="ingestion-key-region-details-section">
{!isDeploymentsDataError &&
!isLoadingDeploymentsData &&
!isFetchingDeploymentsData && (
<div className="ingestion-region-container">
<Typography.Text className="ingestion-region-label">
<MapPin size={14} /> Region
</Typography.Text>
<Typography.Text className="ingestion-region-value-copy">
{deploymentsData?.data?.data?.cluster.region.name}
<Copy
size={14}
className="copy-btn"
onClick={(): void => {
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.REGION_COPIED}`,
{},
);
handleCopyKey(
deploymentsData?.data?.data?.cluster.region.name || '',
);
}}
/>
</Typography.Text>
</div>
)}
<div className="ingestion-key-container">
<Typography.Text className="ingestion-key-label">
<Key size={14} /> Ingestion Key
</Typography.Text>
<Typography.Text className="ingestion-key-value-copy">
{maskKey(firstIngestionKey?.ingestionKey)}
<Copy
size={14}
className="copy-btn"
onClick={(): void => {
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.INGESTION_KEY_COPIED}`,
{},
);
handleCopyKey(firstIngestionKey?.ingestionKey);
}}
/>
</Typography.Text>
</div>
</div>
)}
</div>
</div>
<div className="ingestion-setup-details-links">
<Info size={14} />
<span>
We support{' '}
<a
href="https://signoz.io/docs/ingestion/signoz-cloud/keys/"
target="_blank"
className="learn-more"
rel="noreferrer"
>
multiple ingestions keys
</a>
. To create a new one,{' '}
<a
href="/settings/ingestion-settings"
target="_blank"
className="learn-more"
rel="noreferrer"
>
click here <ArrowUpRight size={14} />
</a>
</span>
</div>
</>
)}
</div>
);
}

View File

@ -0,0 +1,153 @@
.team-member-container {
display: flex;
align-items: center;
.invite-team-members-form {
padding: 16px 0px;
}
.team-member-email-input {
width: 80%;
background-color: #121317;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
.ant-input,
.ant-input-group-addon {
background-color: #121317 !important;
border-right: 0px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
}
}
.team-member-role-select {
width: 20%;
.ant-select-selector {
border: 1px solid #1d212d;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
}
}
.remove-team-member-button {
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
}
}
.invite-team-members-container {
display: flex;
flex-direction: column;
gap: 8px;
.invite-team-members-add-another-member-container {
margin: 16px 0px;
display: flex;
justify-content: flex-end;
}
.next-prev-container {
display: flex;
justify-content: flex-end;
gap: 8px;
margin-top: 16px;
}
.error-message-container,
.success-message-container,
.partially-sent-invites-container {
border-radius: 4px;
width: 100%;
display: flex;
align-items: center;
.error-message,
.success-message {
font-size: 12px;
font-weight: 400;
display: flex;
align-items: center;
gap: 8px;
}
}
.invite-users-error-message-container,
.invite-users-success-message-container {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
.success-message {
color: var(--bg-success-500, #00b37e);
}
}
.partially-sent-invites-container {
margin-top: 16px;
padding: 8px;
border: 1px solid #1d212d;
background-color: #121317;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
box-sizing: border-box;
.partially-sent-invites-message {
color: var(--bg-warning-500, #fbbd23);
font-size: 12px;
font-weight: 400;
display: flex;
align-items: center;
gap: 8px;
}
}
}
.lightMode {
.team-member-container {
.team-member-role-select {
.ant-select-selector {
border: 1px solid var(--bg-vanilla-300);
}
}
.team-member-email-input {
background-color: var(--bg-vanilla-100);
.ant-input,
.ant-input-group-addon {
background-color: var(--bg-vanilla-100) !important;
}
}
}
.questions-form-container {
.invite-users-error-message-container,
.invite-users-success-message-container {
.success-message {
color: var(--bg-success-500, #00b37e);
}
}
.partially-sent-invites-container {
border: 1px solid var(--bg-vanilla-300);
background-color: var(--bg-vanilla-100);
.partially-sent-invites-message {
color: var(--bg-warning-500, #fbbd23);
}
}
}
}

View File

@ -0,0 +1,431 @@
import './InviteTeamMembers.styles.scss';
import { Color } from '@signozhq/design-tokens';
import { Button, Input, Select, Typography } from 'antd';
import logEvent from 'api/common/logEvent';
import inviteUsers from 'api/user/inviteUsers';
import { AxiosError } from 'axios';
import { cloneDeep, debounce, isEmpty } from 'lodash-es';
import { ArrowRight, CheckCircle, Plus, TriangleAlert, X } from 'lucide-react';
import { useCallback, useEffect, useState } from 'react';
import { useMutation } from 'react-query';
import { SuccessResponse } from 'types/api';
import {
FailedInvite,
InviteUsersResponse,
SuccessfulInvite,
} from 'types/api/user/inviteUsers';
import { v4 as uuid } from 'uuid';
interface TeamMember {
email: string;
role: string;
name: string;
frontendBaseUrl: string;
id: string;
}
interface InviteTeamMembersProps {
isLoading: boolean;
teamMembers: TeamMember[] | null;
setTeamMembers: (teamMembers: TeamMember[]) => void;
onNext: () => void;
onClose: () => void;
}
const ONBOARDING_V3_ANALYTICS_EVENTS_MAP = {
BASE: 'Onboarding V3',
INVITE_TEAM_MEMBER_BUTTON_CLICKED: 'Send invites clicked',
INVITE_TEAM_MEMBER_SUCCESS: 'Invite team members success',
INVITE_TEAM_MEMBER_PARTIAL_SUCCESS: 'Invite team members partial success',
INVITE_TEAM_MEMBER_FAILED: 'Invite team members failed',
};
function InviteTeamMembers({
isLoading,
teamMembers,
setTeamMembers,
onNext,
onClose,
}: InviteTeamMembersProps): JSX.Element {
const [teamMembersToInvite, setTeamMembersToInvite] = useState<
TeamMember[] | null
>(teamMembers);
const [emailValidity, setEmailValidity] = useState<Record<string, boolean>>(
{},
);
const [hasInvalidEmails, setHasInvalidEmails] = useState<boolean>(false);
const [hasErrors, setHasErrors] = useState<boolean>(true);
const [error, setError] = useState<string | null>(null);
const [inviteUsersErrorResponse, setInviteUsersErrorResponse] = useState<
string[] | null
>(null);
const [inviteUsersSuccessResponse, setInviteUsersSuccessResponse] = useState<
string[] | null
>(null);
const [disableNextButton, setDisableNextButton] = useState<boolean>(false);
const defaultTeamMember: TeamMember = {
email: '',
role: 'EDITOR',
name: '',
frontendBaseUrl: window.location.origin,
id: '',
};
useEffect(() => {
if (isEmpty(teamMembers)) {
const teamMember = {
...defaultTeamMember,
id: uuid(),
};
setTeamMembersToInvite([teamMember]);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [teamMembers]);
const handleAddTeamMember = (): void => {
const newTeamMember = {
...defaultTeamMember,
id: uuid(),
};
setTeamMembersToInvite((prev) => [...(prev || []), newTeamMember]);
};
const handleRemoveTeamMember = (id: string): void => {
setTeamMembersToInvite((prev) => (prev || []).filter((m) => m.id !== id));
};
// Validation function to check all users
const validateAllUsers = (): boolean => {
let isValid = true;
const updatedValidity: Record<string, boolean> = {};
teamMembersToInvite?.forEach((member) => {
const emailValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(member.email);
if (!emailValid || !member.email) {
isValid = false;
setHasInvalidEmails(true);
}
updatedValidity[member.id!] = emailValid;
});
setEmailValidity(updatedValidity);
return isValid;
};
const parseInviteUsersSuccessResponse = (
response: SuccessfulInvite[],
): string[] => response.map((invite) => `${invite.email} - Invite Sent`);
const parseInviteUsersErrorResponse = (response: FailedInvite[]): string[] =>
response.map((invite) => `${invite.email} - ${invite.error}`);
const handleError = (error: AxiosError): void => {
const errorMessage = error.response?.data as InviteUsersResponse;
if (errorMessage?.status === 'failure') {
setHasErrors(true);
const failedInvitesErrorResponse = parseInviteUsersErrorResponse(
errorMessage.failed_invites,
);
setInviteUsersErrorResponse(failedInvitesErrorResponse);
}
};
const handleInviteUsersSuccess = (
response: SuccessResponse<InviteUsersResponse>,
): void => {
const inviteUsersResponse = response.payload as InviteUsersResponse;
if (inviteUsersResponse?.status === 'success') {
const successfulInvites = parseInviteUsersSuccessResponse(
inviteUsersResponse.successful_invites,
);
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.INVITE_TEAM_MEMBER_SUCCESS}`,
{
teamMembers: teamMembersToInvite,
successfulInvites,
failedInvites: inviteUsersResponse?.failed_invites || [],
},
);
setDisableNextButton(true);
setError(null);
setHasErrors(false);
setInviteUsersErrorResponse(null);
setInviteUsersSuccessResponse(successfulInvites);
setTimeout(() => {
setDisableNextButton(false);
onNext();
}, 1000);
} else if (inviteUsersResponse?.status === 'partial_success') {
const successfulInvites = parseInviteUsersSuccessResponse(
inviteUsersResponse.successful_invites,
);
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.INVITE_TEAM_MEMBER_PARTIAL_SUCCESS}`,
{
teamMembers: teamMembersToInvite,
successfulInvites,
failedInvites: inviteUsersResponse?.failed_invites || [],
},
);
setInviteUsersSuccessResponse(successfulInvites);
if (inviteUsersResponse.failed_invites.length > 0) {
setHasErrors(true);
setInviteUsersErrorResponse(
parseInviteUsersErrorResponse(inviteUsersResponse.failed_invites),
);
}
}
};
const { mutate: sendInvites, isLoading: isSendingInvites } = useMutation(
inviteUsers,
{
onSuccess: (response: SuccessResponse<InviteUsersResponse>): void => {
handleInviteUsersSuccess(response);
},
onError: (error: AxiosError): void => {
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.INVITE_TEAM_MEMBER_FAILED}`,
{
teamMembers: teamMembersToInvite,
error,
},
);
handleError(error);
},
},
);
const handleNext = (): void => {
if (validateAllUsers()) {
setTeamMembers(teamMembersToInvite || []);
logEvent(
`${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.BASE}: ${ONBOARDING_V3_ANALYTICS_EVENTS_MAP?.INVITE_TEAM_MEMBER_BUTTON_CLICKED}`,
{
teamMembers: teamMembersToInvite,
},
);
setHasInvalidEmails(false);
setError(null);
setHasErrors(false);
setInviteUsersErrorResponse(null);
setInviteUsersSuccessResponse(null);
sendInvites({
users: teamMembersToInvite || [],
});
}
};
// eslint-disable-next-line react-hooks/exhaustive-deps
const debouncedValidateEmail = useCallback(
debounce((email: string, memberId: string) => {
const isValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
setEmailValidity((prev) => ({ ...prev, [memberId]: isValid }));
}, 500),
[],
);
const handleEmailChange = (
e: React.ChangeEvent<HTMLInputElement>,
member: TeamMember,
): void => {
const { value } = e.target;
const updatedMembers = cloneDeep(teamMembersToInvite || []);
const memberToUpdate = updatedMembers.find((m) => m.id === member.id);
if (memberToUpdate) {
memberToUpdate.email = value;
setTeamMembersToInvite(updatedMembers);
debouncedValidateEmail(value, member.id!);
}
};
const handleRoleChange = (role: string, member: TeamMember): void => {
const updatedMembers = cloneDeep(teamMembersToInvite || []);
const memberToUpdate = updatedMembers.find((m) => m.id === member.id);
if (memberToUpdate) {
memberToUpdate.role = role;
setTeamMembersToInvite(updatedMembers);
}
};
return (
<div className="invite-team-members-container">
<div className="invite-team-members-form">
<div className="form-group">
<div className="invite-team-members-container">
{teamMembersToInvite?.map((member) => (
<div className="team-member-container" key={member.id}>
<Input
placeholder="your-teammate@org.com"
value={member.email}
type="email"
required
autoFocus
autoComplete="off"
className="team-member-email-input"
onChange={(e: React.ChangeEvent<HTMLInputElement>): void =>
handleEmailChange(e, member)
}
addonAfter={
// eslint-disable-next-line no-nested-ternary
emailValidity[member.id!] === undefined ? null : emailValidity[
member.id!
] ? (
<CheckCircle size={14} color={Color.BG_FOREST_500} />
) : (
<TriangleAlert size={14} color={Color.BG_SIENNA_500} />
)
}
/>
<Select
defaultValue={member.role}
onChange={(value): void => handleRoleChange(value, member)}
className="team-member-role-select"
>
<Select.Option value="VIEWER">Viewer</Select.Option>
<Select.Option value="EDITOR">Editor</Select.Option>
<Select.Option value="ADMIN">Admin</Select.Option>
</Select>
{teamMembersToInvite?.length > 1 && (
<Button
type="default"
className="remove-team-member-button periscope-btn"
icon={<X size={14} />}
onClick={(): void => handleRemoveTeamMember(member.id)}
/>
)}
</div>
))}
</div>
<div className="invite-team-members-add-another-member-container">
<Button
type="primary"
className="add-another-member-button periscope-btn"
icon={<Plus size={14} />}
onClick={handleAddTeamMember}
>
Member
</Button>
</div>
</div>
{hasInvalidEmails && (
<div className="error-message-container">
<Typography.Text className="error-message" type="danger">
<TriangleAlert size={14} /> Please enter valid emails for all team
members
</Typography.Text>
</div>
)}
{error && (
<div className="error-message-container">
<Typography.Text className="error-message" type="danger">
<TriangleAlert size={14} /> {error}
</Typography.Text>
</div>
)}
{hasErrors && (
<>
{/* show only when invites are sent successfully & partial error is present */}
{inviteUsersSuccessResponse && inviteUsersErrorResponse && (
<div className="success-message-container invite-users-success-message-container">
{inviteUsersSuccessResponse?.map((success, index) => (
<Typography.Text
className="success-message"
// eslint-disable-next-line react/no-array-index-key
key={`${success}-${index}`}
>
<CheckCircle size={14} /> {success}
</Typography.Text>
))}
</div>
)}
<div className="error-message-container invite-users-error-message-container">
{inviteUsersErrorResponse?.map((error, index) => (
<Typography.Text
className="error-message"
type="danger"
// eslint-disable-next-line react/no-array-index-key
key={`${error}-${index}`}
>
<TriangleAlert size={14} /> {error}
</Typography.Text>
))}
</div>
</>
)}
</div>
{/* Partially sent invites */}
{inviteUsersSuccessResponse && inviteUsersErrorResponse && (
<div className="partially-sent-invites-container">
<Typography.Text className="partially-sent-invites-message">
<TriangleAlert size={14} />
Some invites were sent successfully. Please fix the errors above and
resend invites.
</Typography.Text>
<Typography.Text className="partially-sent-invites-message">
You can click on I&apos;ll do this later to go to next step.
</Typography.Text>
</div>
)}
<div className="next-prev-container">
<Button
type="default"
className="next-button periscope-btn"
onClick={onClose}
>
<X size={14} />
Cancel
</Button>
<Button
type="primary"
className="next-button periscope-btn primary"
onClick={handleNext}
loading={isSendingInvites || isLoading || disableNextButton}
>
Send Invites
<ArrowRight size={14} />
</Button>
</div>
</div>
);
}
export default InviteTeamMembers;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,174 @@
import { SearchOutlined } from '@ant-design/icons';
import { Avatar, Button, Flex, Input, Typography } from 'antd';
import React, { useState } from 'react';
import { Question } from '../AddDataSource/AddDataSource'; // Adjust the import path as necessary
const { Title, Paragraph, Text } = Typography;
interface QuestionBlockProps {
item: Question;
index: number;
currentQuestion: number;
answers: string[];
handleOptionChange: (questionIndex: number, option: string) => void;
animatingOption: string;
searchQuery: string;
handleSearch: (e: React.ChangeEvent<HTMLInputElement>) => void;
questionRefs: React.MutableRefObject<(HTMLDivElement | null)[]>;
}
function QuestionBlock({
item,
index,
currentQuestion,
answers,
handleOptionChange,
animatingOption,
searchQuery,
handleSearch,
questionRefs,
}: QuestionBlockProps): JSX.Element {
const [selectedCategory, setSelectedCategory] = useState<string>('All');
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
const handleCategoryClick = (category: string): void => {
setSelectedCategory(category);
};
const filteredGroups = item.options.filter(
(group) => selectedCategory === 'All' || group.category === selectedCategory,
);
return (
<div
key={item.id}
className={`setup-flow__question-block ${
index <= currentQuestion ? 'setup-flow__question-block--active' : ''
}`}
ref={(el): void => {
// eslint-disable-next-line no-param-reassign
questionRefs.current[index] = el;
}}
>
<Title level={4} className="setup-flow__content">
{item.title}
</Title>
<Paragraph className="setup-flow__description">{item.description}</Paragraph>
<div className="setup-flow__content-container">
<div className="left-content">
{item.uiConfig?.showSearch && (
<Input
placeholder="Kubernetes, AWS, React JS ...."
size="large"
prefix={<SearchOutlined style={{ color: '#C0C1C3' }} />}
onChange={handleSearch}
style={{ marginBottom: 16 }}
className="setup-flow__search"
/>
)}
<Flex vertical gap={48} className="setup-flow__radio-buttons">
{filteredGroups.map((group) => {
const filteredOptions = group.items.filter((option) =>
option.toLowerCase().includes(searchQuery),
);
if (filteredOptions.length === 0) return null;
return (
<Flex gap={8} vertical key={group.id}>
{group.category && (
<div className="setup-flow__category">
{group.category} ({filteredOptions.length})
</div>
)}
<Flex gap={14} wrap="wrap">
{filteredOptions.map((option) => (
<label
key={`${group.id}-option-${option}`}
className="setup-flow__radio-label"
>
<input
type="radio"
name={`question-${index}`}
value={option}
checked={answers[index] === option}
onChange={(): void => handleOptionChange(index, option)}
className="setup-flow__radio-input"
/>
<Flex
align="center"
gap={8}
className={`setup-flow__radio-custom ${
answers[index] === option
? 'setup-flow__radio-custom--pulse setup-flow__radio-custom--selected'
: ''
} ${
animatingOption === option
? 'setup-flow__radio-custom--animating'
: ''
}`}
>
<Avatar size={24} />
<Text className="setup-flow__radio-custom__text">{option}</Text>
</Flex>
</label>
))}
</Flex>
</Flex>
);
})}
{item.uiConfig?.showSearch &&
item.options.every((group) =>
group.items.every(
(option) => !option.toLowerCase().includes(searchQuery),
),
) && (
<Flex gap={8} align="center" className="setup-flow__no-results">
<Text>No results found for &ldquo;{searchQuery}&rdquo;</Text>
<Button type="primary">Tell our team, we will help you out</Button>
</Flex>
)}
</Flex>
</div>
<div className="right-content">
{item.uiConfig?.filterByCategory && (
<Flex vertical align="flex-start" className="setup-flow__category-filter">
<Button
type="text"
ghost
className={`setup-flow__category-filter-item ${
selectedCategory === 'All'
? 'setup-flow__category-filter-item--selected'
: ''
}`}
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
onClick={() => handleCategoryClick('All')}
>
All ({item.options.reduce((acc, group) => acc + group.items.length, 0)})
</Button>
{item.options.map((group) => (
<Button
type="text"
ghost
key={group.id}
className={`setup-flow__category-filter-item ${
selectedCategory === group.category
? 'setup-flow__category-filter-item--selected'
: ''
}`}
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
onClick={() => handleCategoryClick(group.category)}
>
{group.category} ({group.items.length})
</Button>
))}
</Flex>
)}
</div>
</div>
</div>
);
}
export default QuestionBlock;

View File

@ -60,6 +60,10 @@ function SideNav(): JSX.Element {
const { user, featureFlags, licenses } = useAppContext();
const isOnboardingV3Enabled = featureFlags?.find(
(flag) => flag.name === FeatureKeys.ONBOARDING_V3,
)?.active;
const [licenseTag, setLicenseTag] = useState('');
const userSettingsMenuItem = {
@ -131,10 +135,15 @@ function SideNav(): JSX.Element {
menuRoute: '/get-started',
menuLabel: 'Get Started',
});
const onboaringRoute = isOnboardingV3Enabled
? ROUTES.GET_STARTED_WITH_CLOUD
: ROUTES.GET_STARTED;
if (isCtrlMetaKey(event)) {
openInNewTab('/get-started');
openInNewTab(onboaringRoute);
} else {
history.push(`/get-started`);
history.push(onboaringRoute);
}
};
@ -270,10 +279,13 @@ function SideNav(): JSX.Element {
const isOnboardingEnabled =
featureFlags?.find((feature) => feature.name === FeatureKeys.ONBOARDING)
?.active || false;
if (!isOnboardingEnabled) {
updatedMenuItems = updatedMenuItems.filter(
(item) =>
item.key !== ROUTES.GET_STARTED && item.key !== ROUTES.ONBOARDING,
item.key !== ROUTES.GET_STARTED &&
item.key !== ROUTES.ONBOARDING &&
item.key !== ROUTES.GET_STARTED_WITH_CLOUD,
);
}

View File

@ -28,6 +28,7 @@ export const routeConfig: Record<string, QueryParams[]> = {
[ROUTES.HOME_PAGE]: [QueryParams.resourceAttributes],
[ROUTES.GET_STARTED]: [QueryParams.resourceAttributes],
[ROUTES.ONBOARDING]: [QueryParams.resourceAttributes],
[ROUTES.GET_STARTED_WITH_CLOUD]: [QueryParams.resourceAttributes],
[ROUTES.LIST_ALL_ALERT]: [QueryParams.resourceAttributes],
[ROUTES.LIST_LICENSES]: [QueryParams.resourceAttributes],
[ROUTES.LOGIN]: [QueryParams.resourceAttributes],

View File

@ -30,6 +30,12 @@ export const getStartedMenuItem = {
icon: <RocketOutlined rotate={45} />,
};
export const getStartedV3MenuItem = {
key: ROUTES.GET_STARTED_WITH_CLOUD,
label: 'Get Started',
icon: <RocketOutlined rotate={45} />,
};
export const inviteMemberMenuItem = {
key: `${ROUTES.ORG_SETTINGS}#invite-team-members`,
label: 'Invite Team Member',

View File

@ -9,6 +9,7 @@ const breadcrumbNameMap: Record<string, string> = {
[ROUTES.SERVICE_MAP]: 'Service Map',
[ROUTES.USAGE_EXPLORER]: 'Usage Explorer',
[ROUTES.GET_STARTED]: 'Get Started',
[ROUTES.GET_STARTED_WITH_CLOUD]: 'Get Started',
[ROUTES.ALL_CHANNELS]: 'Channels',
[ROUTES.SETTINGS]: 'Settings',
[ROUTES.DASHBOARD]: 'Dashboard',

View File

@ -108,6 +108,7 @@ export const routesToSkip = [
ROUTES.ALL_CHANNELS,
ROUTES.USAGE_EXPLORER,
ROUTES.GET_STARTED,
ROUTES.GET_STARTED_WITH_CLOUD,
ROUTES.GET_STARTED_APPLICATION_MONITORING,
ROUTES.GET_STARTED_INFRASTRUCTURE_MONITORING,
ROUTES.GET_STARTED_LOGS_MANAGEMENT,

View File

@ -181,6 +181,7 @@ export const routesToSkip = [
ROUTES.ALL_CHANNELS,
ROUTES.USAGE_EXPLORER,
ROUTES.GET_STARTED,
ROUTES.GET_STARTED_WITH_CLOUD,
ROUTES.GET_STARTED_APPLICATION_MONITORING,
ROUTES.GET_STARTED_INFRASTRUCTURE_MONITORING,
ROUTES.GET_STARTED_LOGS_MANAGEMENT,

View File

@ -0,0 +1,7 @@
import OnboardingAddDataSource from '../../container/OnboardingV2Container/AddDataSource/AddDataSource';
function OnboardingPageV2(): JSX.Element {
return <OnboardingAddDataSource />;
}
export default OnboardingPageV2;

View File

@ -0,0 +1,3 @@
import OnboardingPage from './OnboardingPageV2';
export default OnboardingPage;

View File

@ -0,0 +1,22 @@
export function downloadFile(content: string, filename: string): Promise<void> {
return new Promise((resolve, reject) => {
try {
const blob = new Blob([content], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', filename);
document.body.appendChild(link);
link.click();
// Clean up after the download
document.body.removeChild(link);
URL.revokeObjectURL(url);
resolve(); // Resolve the promise when download is triggered
} catch (error) {
reject(error); // Reject in case of any errors
}
});
}

View File

@ -87,6 +87,7 @@ export const routePermission: Record<keyof typeof ROUTES, ROLES[]> = {
TRACE_EXPLORER: ['ADMIN', 'EDITOR', 'VIEWER'],
GET_STARTED: ['ADMIN', 'EDITOR', 'VIEWER'],
ONBOARDING: ['ADMIN'],
GET_STARTED_WITH_CLOUD: ['ADMIN', 'EDITOR', 'VIEWER'],
GET_STARTED_APPLICATION_MONITORING: ['ADMIN', 'EDITOR', 'VIEWER'],
GET_STARTED_INFRASTRUCTURE_MONITORING: ['ADMIN', 'EDITOR', 'VIEWER'],
GET_STARTED_LOGS_MANAGEMENT: ['ADMIN', 'EDITOR', 'VIEWER'],