581 Commits

Author SHA1 Message Date
Pablo Hdez 3044081038 Merge pull request #230 from Pyr33x/main
 Updates for new verison
2024-01-26 12:33:26 +00:00
Mehdi Dara 72d5572fc4 😄 Updated babel 2024-01-26 15:45:19 +03:30
Mehdi Dara 7219171713 ☄️ Updated next.js title 2024-01-26 15:13:33 +03:30
Mehdi Dara bb2d70cc7a 🚀 Invert the opacity state in navbar items 2024-01-26 15:10:16 +03:30
Mehdi Dara 9d8f86f414 🪄 Added Babel 2024-01-26 15:00:12 +03:30
Mehdi Dara 52f73bf3a7 👀 Removed useless category (typing) 2024-01-26 14:57:23 +03:30
Mehdi Dara dfe29cc43f Updated the background of badge on hover state 2024-01-26 14:45:26 +03:30
Mehdi Dara 5a9176f486 Better Readability 2024-01-26 14:36:02 +03:30
Pablo Hdez 83056ce019 Merge pull request #229 from pheralb/next
🚀 v4.1.0
2024-01-26 00:07:35 +00:00
pheralb 5f4116f25f 🎨 Design improvements for downloadSvg & svgCard components 2024-01-26 00:04:11 +00:00
pheralb b69d1f729e 📦 Add Radix-UI svg 2024-01-25 23:32:17 +00:00
pheralb 1f2a600685 🎨 Main alert & `downloadSvg` UI improvements 2024-01-25 23:13:30 +00:00
pheralb 4e10a47d46 ⚙️ Fix `mardown.svg` width & height 2024-01-25 23:12:03 +00:00
Pablo Hdez 1ad57396b4 Merge pull request #227 from Pyr33x/main
 Added & updated some icons
2024-01-25 16:01:13 +00:00
Pablo Hdez 7dd3854193 Merge branch 'next' into main 2024-01-25 16:00:23 +00:00
Pablo Hdez 1e66d1a21d Merge pull request #226 from alexgar45/markdown
ADD Markdown SVG
2024-01-25 15:56:06 +00:00
pheralb 8b85200aa4 📝 Update api docs 2024-01-25 15:50:40 +00:00
pheralb 7fd044f804 ⚙️ Fix download light/dark mode for wordmark version 2024-01-25 15:38:51 +00:00
pheralb d1c140f614 Separate download component + create new dialog 2024-01-25 13:41:26 +00:00
pheralb 5c711e4838 🎨 Update button styles 2024-01-25 13:40:58 +00:00
pheralb 6f8bcc5350 ⬇️ Downgrade `svelte-sonner` 2024-01-25 13:40:35 +00:00
pheralb 6b39aa4e70 💄 Add dialog UI component 2024-01-25 13:40:12 +00:00
Mehdi Dara 2874e5bfb8 🪙 Updated Coinbase 2024-01-25 12:24:51 +03:30
Mehdi Dara dd316aa3bb 🪄 Added movie-web 2024-01-25 12:12:22 +03:30
pheralb d5ef79b753 🎨 Design improvemens + remove unused code on cards 2024-01-24 12:35:07 +00:00
pheralb 700c9f1f51 ⚙️ Fix svg route 2024-01-24 12:35:01 +00:00
pheralb 09cd832f83 📝 Update svg request 2024-01-24 12:30:47 +00:00
pheralb 9ecc26a9b5 📦 Update svgs + fix viewbox in some svgs 2024-01-24 12:30:16 +00:00
Pablo Hdez e814a3c7ec Merge pull request #225 from ivanosquis10/fixing-performance-errors-svgs
📦 Added height and width properties for img tags containing svgs
2024-01-24 11:50:21 +00:00
pheralb 170108d6ae 📝 Update docs 2024-01-24 11:48:25 +00:00
pheralb 2392a92b77 ⚙️ Improve `svg` types 2024-01-24 11:41:27 +00:00
pheralb dba9378833 🎨 Add new badges & accessibility improvements 2024-01-24 11:41:03 +00:00
Pablo Hdez 44b6201b75 Merge pull request #212 from ridemountainpig/multiple-category
Add SVG with multiple category feature
2024-01-24 11:05:01 +00:00
pheralb 49e1927e7e 🛠️ Create shared UI styles for buttons & inputs 2024-01-24 11:01:38 +00:00
pheralb 37b457ddf1 📦 Update new version 2024-01-24 11:01:11 +00:00
pheralb 184196f0ee 📝 Update docs 2024-01-24 11:00:42 +00:00
pheralb 0a55e4d920 🧹 Delete unused code 2024-01-24 10:39:47 +00:00
pheralb 091bf2b543 📦 Update dependencies 2024-01-24 10:36:38 +00:00
Alexis Gabriel Carrillo Garces f3757474fc add markdown logo 2024-01-23 23:14:42 -03:00
Alexis Gabriel Carrillo Garces 6f9a30c3eb add markdown information 2024-01-23 23:13:58 -03:00
ivanosquis10 8ee5c62b72 📦 Added height and width properties for img tags containing svgs 2024-01-23 17:38:10 -04:00
pheralb 41e5a618de 📦 Add replicate with wordmark & light/dark version 2024-01-23 16:58:18 +00:00
pheralb 03dc2bb844 📝 Update docs 2024-01-23 16:57:34 +00:00
Pablo Hdez 7887663463 Merge pull request #224 from Supertepo/csharp
ADD Csharp
2024-01-23 08:33:00 +00:00
Ulises Antonio Ruiz Silva c6db9f451c add csharp information 2024-01-22 18:30:08 -06:00
Ulises Antonio Ruiz Silva d8b9363869 add csharp logo 2024-01-22 18:29:02 -06:00
Pablo Hdez b617682f3c Merge pull request #223 from Eduardo282/comments-a-fixes-accesibility-issues
Comments a fixes accesibility issues
2024-01-22 18:10:34 +00:00
Eduardo 693577b688 Modify text-neutral to 400 for title 👨‍🦽 2024-01-21 17:30:36 -06:00
Eduardo 3dd32cfeec Add aria-labels to links 👨‍🦽 2024-01-21 17:30:20 -06:00
Eduardo 780313ef37 Remove aria-hidden attribute to improve accessibility👨‍🦽 2024-01-21 14:58:18 -06:00
Pablo Hdez 55a179bb65 ⚙️ Fix midday svg route 2024-01-20 21:12:22 +00:00
Pablo Hdez 0f40f78311 Merge pull request #222 from Pyr33x/main
🚀 New Icons
2024-01-20 20:28:08 +00:00
Mehdi be906f3ee6 Merge branch 'pheralb:main' into main 2024-01-20 22:33:33 +03:30
Pablo Hdez 0fffd997ce Merge pull request #221 from j0k3rD/add-tensorflow-svg
🤖 Add SVG for TensorFlow library
2024-01-19 22:33:57 +00:00
Pablo Hdez 6ebee7a323 Merge pull request #220 from LarryIVC/accesibility-fix-desktop
Fix accessibility to 100%
2024-01-19 22:33:17 +00:00
Aaron c2352c8f4f 🤖 Add SVG for TensorFlow library 2024-01-19 14:36:11 -03:00
Larry Ivan Villegas Costas 9c8e17b213 Update navbar link label to fix accesibility 2024-01-19 12:46:05 -04:00
Mehdi Dara 38ef3dde88 ☄️ Added Devto 2024-01-19 18:55:58 +03:30
Mehdi Dara 887fb2f2f5 🪄 Added AppWrite 2024-01-19 18:52:29 +03:30
Mehdi Dara bd47061fc9 👀 Dark/Light Bigcommerce Varians 2024-01-19 15:53:36 +03:30
Mehdi Dara 5e5097c9a8 Blocked user selection for the endpoint label 2024-01-19 15:41:07 +03:30
Pablo Hdez fae0615568 Merge pull request #218 from Juanchobostero/fix-accessibility-vjuanx
Improve accesibility (in Desktop mode) from 90 to 95
2024-01-19 08:21:44 +00:00
juancruz fffef60892 Improve accesibility (in Desktop mode) from 90 to 95 2024-01-18 22:42:51 -03:00
Pablo Hdez 32e9f7bb80 Merge pull request #214 from marpeand/main
add Flask logo
2024-01-18 23:30:08 +00:00
Pablo Hdez 504b8cf0c3 Merge branch 'main' into main 2024-01-18 23:29:55 +00:00
Pablo Hdez 29a71a2ff0 Merge pull request #217 from ivanosquis10/add-elysiajs-logo
Add ElysiaJS Framework Logo
2024-01-18 23:23:48 +00:00
ivanosquis10 0d70168d8a Add ElysiaJS Framework Logo 2024-01-18 18:08:26 -04:00
Yen Cheng 9022cdb444 Merge branch 'main' into multiple-category 2024-01-18 10:29:59 +08:00
Pablo Hdez 9dbf7a91df Merge pull request #215 from midudev/fix-accessibility-issues
Fix accessibility issues
2024-01-17 18:33:22 +00:00
Miguel Ángel Durán cc012324e6 ️ Add discernible labels to navbar links 2024-01-17 19:23:19 +01:00
Miguel Ángel Durán fae5d8543b ️ Make card visibile for screen readers 2024-01-17 19:22:38 +01:00
Miguel Ángel Durán dd314719b4 ️ Update category link color in svgCard component to fix accesibility issue 2024-01-17 19:22:24 +01:00
ridemountainpig d69adfe4be feat: update multiple category layout 2024-01-18 01:16:56 +08:00
marpeand 4a3ba43afb update data 2024-01-17 09:34:55 -03:00
marpeand 03f7befb41 add dark and light mode svgs 2024-01-17 09:33:05 -03:00
marpeand 58a674b517 add flask data 2024-01-16 14:34:37 -03:00
marpeand c6b244f0e6 add flask svg 2024-01-16 14:34:26 -03:00
Pablo Hdez 6a6c397c21 Merge pull request #213 from Pyr33x/main
 Added New Icons
2024-01-16 10:07:59 +00:00
Mehdi Dara c21ae979ef 👀 Updated ChainLink 2024-01-16 12:05:44 +03:30
Mehdi Dara d8f6c456b2 🪙 Updated Tron TRX 2024-01-16 11:53:07 +03:30
Mehdi Dara 31d69e36c8 🪙 Added Binance 2024-01-16 11:48:21 +03:30
Mehdi Dara 8a74f97ac0 Added Volta 2024-01-16 11:33:54 +03:30
ridemountainpig 6d5e54b602 feat: multiple category feature 2024-01-16 11:27:57 +08:00
Pablo Hdez 0fc7ab88c4 Merge pull request #211 from davidho0403/main
Add 6 logos' wordmark svg
2024-01-13 19:36:57 +00:00
David Ho 4a1ca9056f feat: add 6 logos' wordmark svg 2024-01-14 02:47:11 +08:00
Pablo Hdez 0a6d374a67 Merge pull request #210 from marpeand/main
Add Litecoin cryptocurrency
2024-01-13 17:40:21 +00:00
marpeand f49916cc28 add litecoin data 2024-01-13 11:30:16 -03:00
marpeand 2873f122e7 add litecoin svg 2024-01-13 11:29:34 -03:00
pheralb 34f15be55c Merge branch 'main' of github.com:pheralb/svgl 2024-01-13 12:22:41 +00:00
pheralb 86a1b5fa8f 🚀 Fixed copy & download wordmark svg version. 2024-01-13 12:22:36 +00:00
Pablo Hdez c36f8a8bb6 Merge pull request #209 from Pyr33x/main
🪄 New Icons
2024-01-13 11:48:05 +00:00
Pablo Hdez e5cf8e48c0 Merge pull request #208 from ridemountainpig/wordmark-svg
Add to switch between Logo and Wordmark
2024-01-13 11:44:31 +00:00
Mehdi Dara 6845bb0b6b 🪙 Added Coinbase 2024-01-13 13:58:50 +03:30
Mehdi Dara 0c9ca6024d 🪄 Three.js Dark/Light Variants 2024-01-13 13:42:38 +03:30
Mehdi Dara 973ff39ba3 ☄️ Added Threejs 2024-01-13 13:38:04 +03:30
Mehdi Dara 38726e79b1 Added AMP 2024-01-13 13:29:14 +03:30
Mehdi Dara 6b311e341c 👀 Added Dreamweaver 2024-01-13 13:26:30 +03:30
pheralb d433f4f4b8 Merge branch 'main' of github.com:pheralb/svgl 2024-01-12 10:32:56 +00:00
pheralb f4b2d5f085 📦 Update & add new svgs. 2024-01-12 10:32:50 +00:00
ridemountainpig 3b4730e88f feat: add to switch between Logo and Wordmark 2024-01-11 11:45:23 +08:00
Pablo Hdez 0caef2f8b7 Merge pull request #207 from gantit/main
Update Shopify logo SVG
2024-01-10 23:27:45 +00:00
Johnny 6f530acae2 Update Shopify SVG route 2024-01-10 23:14:06 +01:00
Pablo Hdez 06be163025 Merge pull request #206 from Pyr33x/main
 Optimization & New Icons
2024-01-10 10:28:11 +00:00
Mehdi Dara e2aba65caf 🚀 Added Locofy 2024-01-10 12:01:11 +03:30
Mehdi Dara b04d2de39d 🚀 Added Auth0 2024-01-10 11:53:05 +03:30
Mehdi Dara a4757914de 🚀 Added discord.js 2024-01-10 11:48:28 +03:30
Mehdi Dara 1d011ec84b 🪄 Optimized Navbar 2024-01-10 11:23:50 +03:30
Pablo Hdez d0a69a3c52 Merge pull request #205 from ridemountainpig/hotkey-unuse
Remove search input hotkey unuse code
2024-01-09 08:28:27 +00:00
ridemountainpig 0588374475 chore: remove hotkey unuse code 2024-01-09 09:22:58 +08:00
Pablo Hdez d4cb71cb12 Merge pull request #203 from Pyr33x/main
👀 Improved security n performance
2024-01-08 11:43:58 +00:00
Mehdi Dara 6bb0648f8b 🚀 Enhanced the security and privacy 2024-01-08 15:06:03 +03:30
Mehdi Dara a297b99330 GPU Acceleration for better performance 2024-01-08 15:03:48 +03:30
pheralb 793223e23d 🎨 Fix light/dark variant for Voicemod svg. 2024-01-08 11:06:04 +00:00
pheralb e4ad938316 📦 Add Pitch. 2024-01-08 10:44:44 +00:00
pheralb a9ea191622 🎨 Command key improvements. 2024-01-08 09:31:20 +00:00
Pablo Hdez 0b5006c614 Merge pull request #202 from ridemountainpig/input-hotkey
Add input hotkey `command + k` & `control + k` script
2024-01-08 08:59:49 +00:00
ridemountainpig dc2aaf2f73 feat: add input hotkey script 2024-01-08 09:26:43 +08:00
ridemountainpig f610a94ef2 feat: add input hotkey script 2024-01-07 21:35:53 +08:00
Pablo Hdez 0ee1605921 Merge pull request #199 from EsteveSegura/main
+ Added voicemod icon
2024-01-06 22:29:57 +00:00
Esteve Segura 195b392530 Merge branch 'main' into main 2024-01-06 23:19:41 +01:00
Esteve Segura bc29ddcf43 + Added voicemod icon 2024-01-06 22:54:21 +01:00
Pablo Hdez 5dd522746d Merge pull request #198 from davidho0403/main
Add Neovim logo
2024-01-06 21:46:40 +00:00
David Ho 7bf654d64f Add Neovim logo 2024-01-06 19:42:42 +08:00
Pablo Hdez 344d152673 📄 Update README docs. 2024-01-05 13:17:00 +00:00
Pablo Hdez a974f46062 Merge pull request #197 from Pyr33x/main
🚀 Added New Icon
2024-01-05 12:31:37 +00:00
Mehdi Dara ab01879c14 Added Whop 2024-01-05 15:46:08 +03:30
Pablo Hdez 6afab0e435 Merge pull request #195 from Pyr33x/main
🔨 Added new icons
2024-01-03 23:29:04 +00:00
Mehdi Dara 1fbdf5dbbf + Hulu Dark/Light Variants 2024-01-03 20:01:35 +03:30
Mehdi Dara 5c21ef5f98 + Added Hulu 2024-01-03 19:48:53 +03:30
Mehdi Dara c9d81caf4b + Added Yarn 2024-01-03 19:31:10 +03:30
pheralb 8123b52fae 📦 Update svgs data. 2024-01-02 10:15:57 +00:00
pheralb a3422e5052 🧹 Delete pnpm-no-text svg. 2024-01-02 10:15:46 +00:00
Pablo Hdez ed1f31d3d9 Merge pull request #189 from marpeand/main
add Bitwarden logo
2024-01-02 10:12:16 +00:00
pheralb f17f4f1054 🐛 Update search input. 2024-01-02 10:06:14 +00:00
pheralb f0c43a85eb 🔧 Update prebuild command. 2024-01-02 09:58:24 +00:00
pheralb f8aa92e2c9 ⚙️ Add loadMore button. 2024-01-02 09:55:25 +00:00
pheralb 05e4b1dfb3 ⚙️ Update size limit. 2024-01-02 09:55:07 +00:00
pheralb 7562edb413 🔧 Add prebuild command. 2024-01-02 09:54:56 +00:00
pheralb 6273f84486 📦 Fix 1password viewbox + update svgs data. 2024-01-02 09:54:29 +00:00
pheralb 1029fb575a 📝 Update readme docs. 2024-01-02 09:47:30 +00:00
marpeand b0fd049147 add Bitwarden logo 2024-01-01 11:19:07 -03:00
Pablo Hdez 8c5a8debdd 📦 Update svgs.ts 2024-01-01 13:11:47 +00:00
Pablo Hdez 703451bd29 Merge pull request #188 from jamerrq/pnpm-svgs
Pnpm svgs
2024-01-01 13:06:57 +00:00
Pablo Hdez 234efd2b12 Merge branch 'main' into pnpm-svgs 2024-01-01 13:06:51 +00:00
jamerrq 37371f12cc 🎨 added semicolon removed by editor 2023-12-31 15:00:12 -05:00
Pablo Hdez a76a1e010f Merge pull request #187 from Pyr33x/main
+ Transformed WorkOS Dark and Light Variants
2023-12-31 13:14:32 +00:00
Mehdi Dara 6e532140d7 + Transformed workos dark and light 2023-12-31 13:10:12 +03:30
Pablo Hdez 78af46f686 Merge pull request #186 from alanhaertel/main
fix: pnpm icon
2023-12-30 21:46:57 +00:00
alanhaertel d85b610139 fix: pnpm icon
231230
2023-12-30 17:18:16 -03:00
Pablo Hdez cc16e3a04e Merge pull request #184 from alanhaertel/main
Added PNPM and Qt Icons
2023-12-30 20:01:37 +00:00
Pablo Hdez ffc96ba5ce Merge pull request #185 from Pyr33x/main
+ Added new icons
2023-12-30 19:59:15 +00:00
Mehdi Dara 0564b21406 + Added Trust Wallet 2023-12-30 19:07:37 +03:30
Mehdi Dara 4a5cd7309b + Added WorkOS "Dark + Light" 2023-12-30 19:01:55 +03:30
alanhaertel 38a0e57543 fix: updated pnpm 2023-12-30 01:56:06 -03:00
alanhaertel 9cf6fea646 feat: added pnpm and qt logos 2023-12-30 01:50:21 -03:00
Pablo Hdez b205a3c73f Merge pull request #181 from Pyr33x/main
+ Added some new icons
2023-12-29 13:53:02 +00:00
Pablo Hdez a84050e626 Merge pull request #182 from sujjeee/main
added some requested svgs
2023-12-29 13:50:39 +00:00
Suraj 127bf69b29 added some request svgs 2023-12-29 18:23:29 +05:30
Mehdi Dara f3dc8a37bd + Added Sentry issue tracker 2023-12-29 16:19:29 +03:30
Mehdi Dara 2b2b071377 + Added Runway Ai 2023-12-29 16:03:50 +03:30
pheralb d6bb17a6c4 📦 Add Remix.run light/dark svg. 2023-12-28 22:48:12 +00:00
Pablo Hdez 980a961ae0 Merge pull request #178 from Quilljou/main
feat: use offical website
2023-12-28 12:10:34 +00:00
quillzhou@gmail.com 7cb43cb6b5 feat: use offical website 2023-12-28 20:02:41 +08:00
Pablo Hdez b013c036ef Merge pull request #177 from pheralb/next
 Add figma plugin.
2023-12-28 11:59:57 +00:00
pheralb 6148736b1d 🔧 Fix env static private routes. 2023-12-28 11:57:09 +00:00
pheralb 9110601c62 Merge branch 'main' of github.com:pheralb/svgl into next 2023-12-28 11:42:35 +00:00
Pablo Hdez 844be1fbc6 Merge pull request #166 from Quilljou/main
Support use in figma plugin
2023-12-28 11:40:05 +00:00
pheralb 0a7f15da55 Update extensions link. 2023-12-28 11:37:27 +00:00
pheralb 238f8d8619 📝 Update readme docs. 2023-12-28 11:35:45 +00:00
Pablo Hdez 0ae8b654e1 Merge pull request #176 from Pyr33x/main
+ Added some crypto related icons
2023-12-28 09:23:55 +00:00
Mehdi Dara 7afcf19b96 + Fixed the Pycharm title from "Raycast" 2023-12-28 12:38:53 +03:30
Mehdi Dara 121bb52e2f + Fixed the icon size 2023-12-28 10:43:04 +03:30
Mehdi Dara d53bacb6fe + Added OpenSea 2023-12-28 10:36:26 +03:30
Mehdi Dara 99d02504d3 + Added Ton Coin Symbol 2023-12-28 10:31:44 +03:30
Pablo Hdez ed1fd39747 Merge pull request #167 from pheralb/next
 Add ``viewBox`` property to all svgs.
2023-12-27 18:03:17 +00:00
pheralb 8d649eaa1a 🛠️ Update fix-viewbox cli. 2023-12-27 17:30:03 +00:00
pheralb 70488e2dd2 📦 Add `viewBox` property. 2023-12-27 17:18:22 +00:00
pheralb c802690de1 🔧 Create fixViebox cli. 2023-12-27 17:11:39 +00:00
pheralb 4cbd522880 📝 Update readme docs. 2023-12-27 17:00:41 +00:00
Pablo Hdez 865bd458d5 Merge pull request #165 from midudev/patch-1
Add viewBox to LinkedIn svg
2023-12-26 18:13:49 +00:00
Miguel Ángel Durán 72a778cf4c Add viewBox to LinkedIn svg 2023-12-26 19:13:20 +01:00
Pablo Hdez 9e0ade0466 Merge pull request #162 from sujjeee/main
updated snapchat svg
2023-12-26 09:54:57 +00:00
Suraj d6b8ebfca8 updated snapchat svg 2023-12-26 15:21:41 +05:30
Pablo Hdez ce57982ee5 Merge pull request #160 from sujjeee/main
added some software svgs
2023-12-26 08:33:38 +00:00
Suraj cc9904d961 added bluesky 2023-12-25 23:58:20 +05:30
Suraj 41b501284e added some software svgs 2023-12-25 23:01:37 +05:30
Pablo Hdez 690566df93 Merge pull request #157 from ridemountainpig/dropdownmenu-title
Add `Download SVG` &  `Drop down menu` title
2023-12-24 13:24:20 +00:00
quillzhou@gmail.com d8dd69cd66 chore: plugin id 2023-12-24 14:05:16 +08:00
jamerrq b7addab9c5 ♻️ refactored svgs to match existing format 2023-12-24 00:30:59 -05:00
jamerrq 6c7be89d89 📦 Add pnpm svgs 2023-12-24 00:09:02 -05:00
ridemountainpig 3e05033896 feat: add drop down menu title 2023-12-24 10:07:47 +08:00
Pablo Hdez dbfcdca6e3 Merge pull request #125 from Dev-muse/main
added new svgs bigcommerce, salesforce,webflow and shopify
2023-12-24 00:50:54 +00:00
Pablo Hdez 9515d367d8 Merge branch 'main' into main 2023-12-24 00:50:12 +00:00
Pablo Hdez df4dff3da6 Merge pull request #154 from johind/main
add directus svg
2023-12-24 00:23:33 +00:00
Pablo Hdez 819e44ba4d Merge pull request #156 from Pyr33x/main
+ Added Vuetify
2023-12-23 18:06:48 +00:00
Mehdi Dara a11debc76b + Added Vuetify 2023-12-23 21:09:16 +03:30
quillzhou@gmail.com 18bf515989 fix: new domain 2023-12-23 16:21:06 +08:00
quillzhou@gmail.com a7421ed9f6 fix: remove dist 2023-12-23 16:19:23 +08:00
quillzhou@gmail.com 44ad5e2a1f fix: env cause build error 2023-12-23 16:15:49 +08:00
quillzhou@gmail.com 61658f8b74 fix: lock yaml 2023-12-23 16:08:25 +08:00
quillzhou@gmail.com 83a1d49af4 feat: add figma plugin 2023-12-23 15:43:54 +08:00
johind 3ca6d6d34e add directus svg 2023-12-22 18:02:08 +01:00
Pablo Hdez f90966808b Merge pull request #153 from anthonyeca/main
tether svg added
2023-12-21 17:55:36 +00:00
anthony a55080bd36 tether svg added 2023-12-21 15:38:36 +01:00
Pablo Hdez 8c7450fd98 Merge pull request #150 from jvngarcia/149-add-springboot
Add Spring SVG to library
2023-12-21 11:53:35 +00:00
Angel Garcia b38e8e79a4 Add Spring SVG to library 2023-12-21 07:47:05 -04:00
Pablo Hdez c96e578494 Merge pull request #148 from quuu/main
Add Arc Fintech logo
2023-12-20 21:08:02 +00:00
Andrew Qu 68230012eb Add Arc Fintech 2023-12-20 08:18:52 -08:00
Pablo Hdez 0441d9ad2a Merge pull request #147 from sujjeee/main
added some AI svgs
2023-12-20 12:54:34 +00:00
Suraj ! d78be9b4b5 Merge branch 'pheralb:main' into main 2023-12-20 18:22:36 +05:30
Suraj 71a2c04437 added some ai svgs 2023-12-20 18:18:52 +05:30
Pablo Hdez 0338236122 Merge pull request #146 from sujjeee/main
added playstation and xbox
2023-12-20 12:03:02 +00:00
Suraj 4547ec1c37 added playstation and xbox 2023-12-20 12:40:18 +05:30
Pablo Hdez 11ea758e00 Merge pull request #138 from wilmer2000/julia-language
Julia language added
2023-12-18 17:04:03 +00:00
Pablo Hdez 7da25d757c Merge branch 'main' into julia-language 2023-12-18 17:01:57 +00:00
Pablo Hdez 7c62922a83 Merge pull request #141 from davidho0403/main
Add SWC logo
2023-12-18 17:01:26 +00:00
Pablo Hdez 495be3de09 Merge pull request #140 from jvngarcia/139-tCategory-error
🐛 Fix tCategory error
2023-12-18 17:01:11 +00:00
David Ho e046aa3514 Add SWC logo 2023-12-19 00:04:15 +08:00
Angel Garcia 932ed38af7 🐛 Fix tCategory error 2023-12-18 11:21:18 -04:00
Wilmer Blanco e7f6305830 Julia language added 2023-12-18 11:37:25 -03:00
pheralb 2f7965093e 🔧 Update warning message. 2023-12-18 10:23:01 +00:00
Pablo Hdez ee03a16a53 ⚙️ Update warning message. 2023-12-18 02:08:56 +00:00
Pablo Hdez 2e7aa6ac81 Merge pull request #136 from pheralb/next
⚙️ Add warning alert.
2023-12-18 02:02:37 +00:00
pheralb 35d25ef991 Merge branch 'main' of github.com:pheralb/svgl into next 2023-12-18 01:58:16 +00:00
pheralb 1a50e6e57b Merge branch 'next' of github.com:pheralb/svgl into next 2023-12-18 01:58:01 +00:00
pheralb f843003170 ⚙️ Create warning alert. 2023-12-18 01:57:56 +00:00
pheralb b45ad011e0 📝 Update readme docs. 2023-12-18 01:55:20 +00:00
Pablo Hdez 339619111c Merge pull request #135 from JakubKosmaty/patch-1
Add viewBox attribute to Google Icon
2023-12-17 22:53:49 +00:00
Jakub Kosmaty 75b4c17c89 Add viewBox attribute to Google Icon 2023-12-17 23:51:14 +01:00
Pablo Hdez 5bd5cd7c0c Merge pull request #134 from pheralb/next
🚀 v4.0.0
2023-12-17 22:15:56 +00:00
Pablo Hdez 8ada638d16 Merge branch 'main' into next 2023-12-17 22:14:10 +00:00
Pablo Hdez 363752b695 Merge pull request #126 from nullun/main
add Algorand
2023-12-17 21:58:13 +00:00
pheralb 78b91206b0 🎨 Update notFound with new design. 2023-12-17 21:55:43 +00:00
pheralb b9eec5f4a6 Add tags for accessibility. 2023-12-17 21:34:02 +00:00
pheralb cb503ea279 Add meta description tag. 2023-12-17 21:28:31 +00:00
pheralb c82f2f4c6c 📝 Update readme docs. 2023-12-17 21:27:57 +00:00
pheralb d733edbf01 🤖 Add robots.txt file. 2023-12-17 21:27:30 +00:00
pheralb 6a0520e2f8 ⚙️ Add support for download light & dark svgs. 2023-12-17 21:03:37 +00:00
pheralb ffff743283 Create flyAndScale transition. 2023-12-17 21:03:05 +00:00
pheralb 614629f086 📦 Add bits-ui & jszip. 2023-12-17 21:02:50 +00:00
pheralb 6d2c1f9bcc 📝 Update readme docs. 2023-12-17 19:02:44 +00:00
pheralb bcb26fad4b Update readme image. 2023-12-17 19:00:50 +00:00
Pablo Hdez 591c9c4cee Merge pull request #133 from YasKuraishi/feature/add-procure-logo
Added procure logo and marketplace category
2023-12-17 17:32:03 +00:00
Yas Tabasam cb1f1052d1 Added procure logo and marketplace category 2023-12-17 12:07:23 -05:00
Pablo Hdez 6d6e4f8ade Merge pull request #132 from marpeand/main
remove repeated Pycharm svg
2023-12-17 16:32:37 +00:00
pheralb 367b3dcb8a 📦 Update svgs data with light/dark theme. 2023-12-17 16:28:21 +00:00
pheralb bfd8e3a0c5 Update og image. 2023-12-17 16:28:03 +00:00
0x4d5041 7f692e42ce remove repeated Pycharm svg 2023-12-17 12:49:34 -03:00
pheralb a66c127f1e 🚀 Merge branch 'main' of github.com:pheralb/svgl into next. 2023-12-17 14:57:08 +00:00
Pablo Hdez 782f3921b6 Merge pull request #131 from davidho0403/main
Add Raycast logo
2023-12-17 14:55:10 +00:00
pheralb 28e428968a ⚙️ Update navbar link. 2023-12-17 14:53:26 +00:00
pheralb bee957c3a9 📝 Update readme docs. 2023-12-17 14:53:11 +00:00
David Ho 40d6e0cf9c feat: add Raycast logo 2023-12-17 22:51:32 +08:00
pheralb d51d9cf238 ⚙️ Update workflow. 2023-12-17 14:41:57 +00:00
pheralb 3b3c3ed484 ⚙️ Update workflow with svelte-check. 2023-12-17 14:33:59 +00:00
pheralb 2ef519e6d9 🚀 Merge branch 'main' of github.com:pheralb/svgl into next. 2023-12-17 14:31:31 +00:00
pheralb b0e02de894 ⚙️ Add custom analytics. 2023-12-17 14:25:59 +00:00
pheralb 5cea4818e8 📦 Clean unused svgs. 2023-12-17 14:25:20 +00:00
Pablo Hdez 7f38e57ad6 Merge pull request #130 from sujjeee/patch-1
📄 Update README docs.
2023-12-17 14:24:09 +00:00
Suraj ! 8b5a725ace Update README.md
Added quick start guide for accessing svgs from terminal.
2023-12-17 19:28:05 +05:30
pheralb 2a66d1fe4f Add community category. 2023-12-17 13:37:51 +00:00
pheralb 74d5defaac 📝 Update readme docs. 2023-12-17 13:37:35 +00:00
pheralb 015dd7c007 🎨 Design improvements, add new twitter icon & update sonner. 2023-12-17 12:59:01 +00:00
pheralb d4c9b3a316 ⚙️ Protect /api/svgs & /api/categories. 2023-12-17 02:37:50 +00:00
pheralb 0e7ff01315 Design Improvements. 2023-12-17 02:37:26 +00:00
pheralb bc23448701 Initial redis server. 2023-12-17 02:35:28 +00:00
pheralb 4f3a9d133e 📝 Update /api docs. 2023-12-17 02:34:52 +00:00
pheralb f8ce6586db 📦 Add @upstash/ratelimit & @upstash/redis. 2023-12-17 02:34:36 +00:00
pheralb 7d62809599 Fix light/dark mode button. 2023-12-17 01:31:38 +00:00
pheralb 8c1cbb1eff 📦 Update svgs data. 2023-12-17 01:31:21 +00:00
pheralb 2f7cbe0a2a ⚙️ Fix patterns url. 2023-12-17 01:15:02 +00:00
pheralb 5b5759a5ea 📝 Update readme docs. 2023-12-17 01:05:25 +00:00
pheralb 824a83bf35 Design improvements for light/dark mode theme. 2023-12-17 01:00:39 +00:00
pheralb eac20137b8 🎨 Update light pattern. 2023-12-17 00:59:50 +00:00
pheralb faeb193531 Design improvements. 2023-12-17 00:20:11 +00:00
pheralb 85ddb3fdb8 🚀 Update api routes + add categories endpoint. 2023-12-17 00:19:56 +00:00
pheralb 76886347d8 📝 Update /api docs. 2023-12-17 00:19:21 +00:00
pheralb b26adf850f Merge branch 'next' of github.com:pheralb/svgl into next 2023-12-16 22:36:39 +00:00
pheralb 03b15c9fe3 🎨 Add new fonts. 2023-12-16 22:36:25 +00:00
pheralb e66d3eea49 🎨 Add new fonts. 2023-12-16 22:36:17 +00:00
pheralb 350c73ecaa 📦 Fix svgs data. 2023-12-16 22:36:00 +00:00
pheralb d401bb8682 Design improvements. 2023-12-16 22:35:46 +00:00
pheralb e78b4e0f7f ⚙️ Fix get baseUrl for api. 2023-12-16 22:35:25 +00:00
pheralb 099de90f6d New fonts. 2023-12-16 21:59:19 +00:00
pheralb f7e6883cdd Update light theme. 2023-12-16 21:37:05 +00:00
Pablo Hdez d333ce0b07 📄 Update README docs. 2023-12-16 21:26:26 +00:00
pheralb 49dab68575 🔧 Update check-size utility, fix bugs. 2023-12-16 21:16:52 +00:00
pheralb 19da26d9de 📦 Remove svgs unoptimized. 2023-12-16 21:16:31 +00:00
pheralb 7c66ebddde 📝 Update readme docs. 2023-12-16 21:13:18 +00:00
pheralb ed1730c352 📦 Remove svgs unoptimized. 2023-12-16 21:13:07 +00:00
pheralb 08b618a1c1 🐛 Merge branch 'main' of github.com:pheralb/svgl into next. 2023-12-16 20:57:11 +00:00
Pablo Hdez c6660504a4 Merge pull request #127 from brysonreece/remove-artisanlabs
Remove ArtisanLabs
2023-12-16 20:54:53 +00:00
pheralb 65c51b73d3 🔧 Update workflow. 2023-12-16 20:49:48 +00:00
pheralb ca0167c5f4 📝 Update api docs. 2023-12-16 20:49:36 +00:00
pheralb 3b4d96403b 📝 Update readme docs. 2023-12-16 20:47:56 +00:00
pheralb d7d10705e6 ⚙️ Update check-size script with @actions/core pkg. 2023-12-16 20:46:37 +00:00
pheralb 3b903cd1b4 ⚙️ Add custom script to check size. 2023-12-16 20:46:15 +00:00
pheralb 179f27fdf5 📦 Add @actions/core & @actions/github. 2023-12-16 20:45:59 +00:00
Bryson Reece bb5b094fd0 Remove ArtisanLabs from svgs.ts 2023-12-16 14:33:29 -06:00
Bryson Reece 19f2ecef03 Delete static/library/ArtisanLabs.svg 2023-12-16 14:32:51 -06:00
pheralb 991494c04d 🔧 Clean check-size output. 2023-12-16 20:18:23 +00:00
pheralb ddb1192cdf 🔧 Add check-size workflow. 2023-12-16 20:11:43 +00:00
pheralb 2b5e43cfb5 🧹 Clean comments. 2023-12-16 20:11:19 +00:00
pheralb 49a5ba6794 🔧 Update tsconfig. 2023-12-16 20:10:57 +00:00
pheralb a3d0277581 ⚙️ Create check-size util for workflow. 2023-12-16 20:10:46 +00:00
pheralb 78ad666e67 📝 Update readme. 2023-12-16 20:09:20 +00:00
pheralb 2704ca4bdb 📝 Update readme docs. 2023-12-16 18:57:33 +00:00
Rahman f63d692389 adding logos airbnb,ebay,gmail,ibm,outlook,sanity,sky,slack,snapchat,trustpilot and uber 2023-12-16 18:33:33 +00:00
Pablo Hdez 104874ca20 📦 Update svgs data. 2023-12-16 18:19:49 +00:00
pheralb 30d1c72f46 📝 Update api docs. 2023-12-16 18:10:30 +00:00
pheralb 0d770de827 🔧 Create baseUrl utility. 2023-12-16 18:10:13 +00:00
pheralb 8d3590cf35 🐛 Merge branch 'main' of github.com:pheralb/svgl into next. 2023-12-16 17:45:22 +00:00
pheralb d7bc686349 Design improvements. 2023-12-16 17:44:30 +00:00
Pablo Hdez d6bad4ed48 Merge pull request #121 from ridemountainpig/monkeytype-logo
Add MonkeyType logo
2023-12-16 17:29:49 +00:00
nullun dc7a7c1598 add Algorand 2023-12-16 17:27:25 +00:00
pheralb e61f58d751 🔧 Update vite-plugin-svelte. 2023-12-16 17:07:44 +00:00
pheralb addd4ac7d6 ⬆️ Upgrade to Sveltekit v2. 2023-12-16 17:07:22 +00:00
Rahman 5926dd097e added new svgs bigcommerce, salesforce,webflow and shopify 2023-12-16 16:47:55 +00:00
Yen Cheng 1aca8d150a Merge branch 'main' into monkeytype-logo 2023-12-16 11:05:01 +08:00
Pablo Hdez 34a7b610e5 Merge pull request #120 from wilmer2000/cypress-reddit
Cypress and Reddit logo added
2023-12-15 19:46:18 +00:00
Pablo Hdez 49291817f1 Merge branch 'main' into cypress-reddit 2023-12-15 19:46:02 +00:00
ridemountainpig 3378603e37 feat: add monkeytype logo 2023-12-16 01:48:07 +08:00
Pablo Hdez d7d4ade2a7 Merge pull request #119 from wilmer2000/ide-logos
Webstrom, phpstorm, pycharm, rubytime and fleet logos added
2023-12-15 17:43:54 +00:00
Wilmer Blanco ea60b114e2 Cypress and Reddit logo added 2023-12-15 14:04:11 -03:00
Wilmer Blanco 68fe020f5b Webstrom, phpstorm, pycharm, rubytime and fleet logos added, .idea/ folder added in gitignore 2023-12-15 13:50:42 -03:00
pheralb c9e9d77d0a 🔧 Fix svgl route for all api endpoints. 2023-12-14 16:15:20 +00:00
pheralb eca3bce038 🎨 Update font-weight for default font. 2023-12-14 16:14:52 +00:00
pheralb bab6f75d00 🚀 Merge branch 'main' of github.com:pheralb/svgl into next. 2023-12-14 13:32:52 +00:00
pheralb 46701ad161 Search improvements. 2023-12-14 13:30:23 +00:00
Pablo Hdez 4ea36dfbb0 Merge pull request #114 from davidho0403/main
Add Meta logo
2023-12-14 12:45:06 +00:00
Pablo Hdez 71e4a1dfd6 Merge branch 'main' into main 2023-12-14 12:44:07 +00:00
Pablo Hdez 14496c5c1d ⚙️ Update svgs page with new data. 2023-12-14 12:42:25 +00:00
Pablo Hdez 31989c1dfd 🔧 Fixed svgs data. 2023-12-14 12:42:05 +00:00
Pablo Hdez 0184f1b027 Add new options. 2023-12-14 12:22:23 +00:00
Pablo Hdez 7abef9f5e7 🔧 Fixed svgs data. 2023-12-14 12:22:08 +00:00
Pablo Hdez ef3bda9e42 🔧 Update vscode settings. 2023-12-14 12:21:54 +00:00
David Ho e2c0a35843 feat: add Meta logo 2023-12-14 20:21:01 +08:00
Pablo Hdez 77f145b5a1 Merge pull request #113 from svensken94/main
feat: remove logo ids, add sorting alphabetically
2023-12-14 11:56:21 +00:00
Pablo Hdez 0586d2a9a6 📦 Update data. 2023-12-14 00:35:13 +00:00
Pablo Hdez 2118947539 Merge pull request #110 from wilmer2000/design-icons
Some design logos added
2023-12-14 00:32:54 +00:00
Pablo Hdez f0e79f85e8 Merge branch 'main' into design-icons 2023-12-14 00:32:07 +00:00
pheralb 37d40fe59c 🔧 Add package-lock. 2023-12-14 00:28:01 +00:00
pheralb 5cf6e2a593 🌱 Update CI workflow to use pnpm. 2023-12-14 00:27:50 +00:00
pheralb 38a136fe1c 🔧 Update gitignore. 2023-12-14 00:24:58 +00:00
pheralb 9eccc4f78a ⬇️ Downgrade dependencies for compatibility. 2023-12-13 23:49:23 +00:00
pheralb 07d906f3f1 🎨 Design improvements + update /api page. 2023-12-13 23:43:53 +00:00
pheralb 2d95fe62b6 🚀 Initial /api/svgs api route. 2023-12-13 23:42:55 +00:00
pheralb 18d7fe7cca Initial /api page. 2023-12-13 23:42:40 +00:00
pheralb 927cbdca6d 🔧 Add markdown & extensions config. 2023-12-13 23:42:17 +00:00
pheralb 84be304cb4 💫 Add light/dark patterns. 2023-12-13 23:41:46 +00:00
pheralb 6a4faa2260 📦 Add tailwind-typography, shiki & mdsvex. 2023-12-13 23:41:12 +00:00
pheralb 2034e4f3d0 🔧 Add tailwind-typography. 2023-12-13 23:40:47 +00:00
pheralb 3e1d62889c Add new icons for svg card. 2023-12-13 13:37:40 +00:00
pheralb ebf38459c1 🔧 Update vscode settings. 2023-12-13 13:37:23 +00:00
Pablo Hdez 619016b7c0 Merge pull request #112 from marpeand/main
Add Ubuntu logo
2023-12-13 09:29:34 +00:00
pheralb 1c4f5fa48c ⬆️ Upgrade dependencies. 2023-12-12 22:16:34 +00:00
Vlad Simonov 18069b30a0 docs: remove info about id field 2023-12-12 23:08:37 +03:00
svensken94 b0d2957896 feat: remove logo ids, sorting alphabetically 2023-12-12 22:29:35 +03:00
0x4d5041 6aed0e04f7 added ubuntu logo 2023-12-12 16:15:12 -03:00
0x4d5041 7fd236c45c add ubuntu logo 2023-12-12 16:14:21 -03:00
Pablo Hdez c557342eee Merge pull request #109 from darioesp/main
style: 💄 Add text wrap balance in title card and center text…
2023-12-12 17:36:12 +00:00
Wilmer Blanco 25f7acf6e0 Some design logos added 2023-12-12 14:28:44 -03:00
Darío Espinoza 24d7ee39ba style: 💄 Add text wrap balance in title card and center text for aling text when apply balance 2023-12-12 13:55:33 -03:00
pheralb 6223fe7be1 🐛 Fixed svgs data id's. 2023-12-12 16:08:31 +00:00
pheralb e50b87d7c4 Navbar improvements. 2023-12-12 15:56:49 +00:00
pheralb 5825101dfe 💄 Fix light/dark scrollbar. 2023-12-12 15:56:35 +00:00
Pablo Hdez b20866a459 🎨 Fix scrollbar. 2023-12-12 15:12:18 +00:00
Pablo Hdez 22ef6a4c68 🎨 Fixed light/dark scrollbar. 2023-12-12 15:09:41 +00:00
Pablo Hdez fd94b5884f Merge pull request #108 from sujjeee/main
added linux svg
2023-12-12 14:26:56 +00:00
Suraj 507dda0f2b added linux svg 2023-12-12 19:09:07 +05:30
Pablo Hdez e81d70b286 Merge pull request #107 from sujjeee/main
added Reflex and Stripe SVGs
2023-12-12 13:26:29 +00:00
Suraj c7eba26df5 added stripe svg 2023-12-12 18:49:02 +05:30
Suraj ff38d0ac9c added reflex svg 2023-12-12 18:44:15 +05:30
pheralb f67f4a1276 Merge branch 'main' of github.com:pheralb/svgl into next 2023-12-12 13:12:36 +00:00
pheralb 52f067f87a 💄 Design improvements, update layout content. 2023-12-12 13:12:27 +00:00
pheralb 2b57fee182 New search bar. 2023-12-12 13:12:07 +00:00
pheralb f4ce451502 🐛 Fix social links. 2023-12-12 13:11:38 +00:00
Pablo Hdez 3c4a9cf941 Merge pull request #106 from sujjeee/main
added pinterest logo
2023-12-12 13:10:03 +00:00
Suraj b1520bffa1 added pinterest logo 2023-12-12 18:23:52 +05:30
Pablo Hdez eba4ff7298 Merge pull request #105 from altaywtf/main
feat: add put.io
2023-12-12 11:38:21 +00:00
Altay bbb25cdb83 feat: add put.io 2023-12-12 14:33:27 +03:00
pheralb 35dc77f295 Merge branch 'main' of github.com:pheralb/svgl into next 2023-12-12 11:22:35 +00:00
Pablo Hdez a64a8408a1 Merge pull request #104 from svensken94/main
🎨 Add alternative color versions
2023-12-12 11:08:38 +00:00
svensken94 105cc41551 Merge branch 'main' of https://github.com/svensken94/svgl 2023-12-12 13:37:17 +03:00
svensken94 26283bd49d 🎨 Alternative color versions added 2023-12-12 13:37:14 +03:00
Pablo Hdez 993dbc60b5 Merge pull request #86 from pontusab/midday
Add Midday logo
2023-12-12 09:43:46 +00:00
Pablo Hdez b70a71928f Merge branch 'main' into midday 2023-12-12 09:41:08 +00:00
Pablo Hdez 27758972e3 Merge pull request #76 from wilmer2000/some-logos
Safari, chromium, edge and vivaldi logos
2023-12-12 09:18:28 +00:00
Pablo Hdez 1eb1873edf Merge branch 'main' into some-logos 2023-12-12 09:17:37 +00:00
Pablo Hdez 362373f4b4 Merge pull request #92 from luis-tenorio-code/main
Add bash, c, c++, cobol, fortran, haskell, matlab, r, rust and zig logos
2023-12-12 09:12:55 +00:00
Pablo Hdez 8269fc0430 Merge branch 'main' into main 2023-12-12 09:12:07 +00:00
Pablo Hdez c0e78702ef Merge pull request #100 from davidho0403/main
Add shadcn/ui, MetaMask, Zeabur logo
2023-12-12 08:48:57 +00:00
Ho Yi Wei 4532e65281 feat: add zeabur dark theme logo 2023-12-12 15:17:15 +08:00
Ho Yi Wei 0f09316086 feat: add shadcn/ui, metamask, zeabur logo 2023-12-12 09:53:42 +08:00
Pablo Hdez 6ac9e35bfd Merge pull request #95 from marpeand/main
Adding Monero cryptocurrency
2023-12-12 01:05:33 +00:00
Pablo Hdez 1812049a94 Merge branch 'main' into main 2023-12-12 01:04:46 +00:00
pheralb e214e010af 🔧 Update workflow. 2023-12-12 01:03:06 +00:00
pheralb 6084393d23 ️ Merge branch 'main' of github.com:pheralb/svgl into next. 2023-12-12 01:01:06 +00:00
pheralb b7b1a6de58 ️ Add new icons + update sidebar. 2023-12-12 00:59:12 +00:00
pheralb 81dc918ab7 🔖 Prepare /api page. 2023-12-12 00:56:43 +00:00
pheralb fe05684f7f 🎨 Update styles for aside scrollbar. 2023-12-12 00:56:14 +00:00
Pablo Hdez 8615bf2670 Merge pull request #74 from burakkantarci/main
Added Beacon logo
2023-12-12 00:45:55 +00:00
Pablo Hdez f2c65a1276 Merge branch 'main' into main 2023-12-12 00:44:03 +00:00
Pablo Hdez 33640372e0 Merge pull request #99 from bdsqqq/theme-aware-icons
Theme aware logos
2023-12-12 00:42:00 +00:00
Igor Bedesqui 26a55eddd4 docs: dark/light icons instructions in readme 2023-12-11 21:34:15 -03:00
Pablo Hdez 6adee00470 Merge pull request #89 from advaith-unnikrishnan/main
Add new SVGS
2023-12-12 00:26:14 +00:00
Pablo Hdez f6a9f0047e Merge branch 'main' into main 2023-12-12 00:24:33 +00:00
Pablo Hdez 65ba213250 Merge pull request #72 from wilmer2000/salesforce-logo
Adding Salesforce logo
2023-12-12 00:22:45 +00:00
Pablo Hdez 8bd188aadf Merge branch 'main' into salesforce-logo 2023-12-12 00:22:29 +00:00
Pablo Hdez 8ab8ed1e80 Merge pull request #96 from bdsqqq/axiom
feat: Add Axiom Logo
2023-12-12 00:20:24 +00:00
Pablo Hdez a6c71b565a Merge branch 'main' into axiom 2023-12-12 00:19:38 +00:00
Pablo Hdez 4f2d339de3 Merge pull request #97 from arpagon/main
ADD ArtisanLabs Logo
2023-12-12 00:18:36 +00:00
Pablo Hdez bb049ec0d3 Merge branch 'main' into main 2023-12-12 00:06:15 +00:00
Igor Bedesqui b8a102d99b feat: make download icon theme aware 2023-12-11 20:59:09 -03:00
Igor Bedesqui 20b2dd5155 feat: make copy icon theme aware 2023-12-11 20:58:16 -03:00
Igor Bedesqui 3d23d22ed2 feat: make icon theme aware. 2023-12-11 20:58:05 -03:00
pheralb 3c05205573 Add navbar & logo. 2023-12-11 23:31:12 +00:00
pheralb ff26de5baf 🔧 Create shadcn `cn` helper. 2023-12-11 23:30:54 +00:00
pheralb b815018a70 📦 Add lucide-svelte icons. 2023-12-11 23:30:33 +00:00
Pablo Hdez 5db9333a12 Merge pull request #98 from arturobh/main
Add Django logo
2023-12-11 23:02:15 +00:00
pheralb 782410a544 Merge branch 'main' of github.com:pheralb/svgl 2023-12-11 22:43:13 +00:00
pheralb 81a6edca6c 🐛 Add antialiased. 2023-12-11 22:43:07 +00:00
Arturo Barrera 51d828ebc9 Add Django logo 2023-12-11 19:38:24 -03:00
Sebastian Rojo 254e37af6f ADD SVG static/library/ArtisanLabs.svg 2023-12-11 17:25:36 -05:00
Sebastian Rojo 3e70914f91 ADD ArtisanLabs by Update svgs.ts 2023-12-11 17:22:36 -05:00
Igor Bedesqui 73f71f3dd6 feat: Add Axiom Logo 2023-12-11 19:09:02 -03:00
marpeand 6d7459ee85 Update svgs.ts 2023-12-11 18:59:52 -03:00
marpeand d583fad8d6 Add files via upload 2023-12-11 18:55:23 -03:00
Pablo Hdez 0576bf98c6 Merge pull request #93 from alisalahio/main
Add Instatus
2023-12-11 21:49:59 +00:00
Pablo Hdez afe2683bf1 Merge branch 'main' into main 2023-12-11 21:47:41 +00:00
Pablo Hdez 092630b4f1 Merge pull request #94 from dugjason/logo/front.com
Adds Front.com logo
2023-12-11 21:46:00 +00:00
Jason Dugdale c8ce3c6608 Adds Front.com logo 2023-12-11 13:12:35 -08:00
Ali Salah 54b0174b0c add instatus 2023-12-11 23:11:46 +02:00
luis-tenorio-code 1231b5387b Fix typo in SVG title 2023-12-11 15:27:05 -05:00
luis-tenorio-code 19c3095c1a Update SVG route for Mathlab 2023-12-11 15:25:35 -05:00
Luis Tenorio 8ef8a3c9bf Merge branch 'pheralb:main' into main 2023-12-11 15:17:34 -05:00
luis-tenorio-code b8ec5bf3d2 bash, c, c++, cobol, fortran, haskell, matlab, r, rust and zig logos 2023-12-11 15:14:44 -05:00
Pablo Hdez c0470a6002 Merge pull request #75 from svensken94/main
Add Affinity logos and Roblox
2023-12-11 20:10:07 +00:00
Pablo Hdez bba44655b9 Merge branch 'main' into main 2023-12-11 20:03:42 +00:00
Pablo Hdez b4494d4e3e Merge pull request #87 from jayair/main
Adding SST
2023-12-11 19:30:24 +00:00
Pablo Hdez b0f9264898 Merge branch 'main' into main 2023-12-11 19:29:52 +00:00
Advaith U 1f6fbe0cd9 Add new SVGs 2023-12-12 00:59:12 +05:30
Pablo Hdez d5859a3704 Merge pull request #88 from dephraiim/add-documenso
feat: add documenso svg
2023-12-11 19:26:41 +00:00
Ephraim Atta-Duncan 3b6d50fc00 Merge branch 'main' into add-documenso 2023-12-11 19:21:31 +00:00
Ephraim Atta-Duncan fcbd73daf8 feat: add documenso svg 2023-12-11 19:17:21 +00:00
Advaith U 4f4edd6b0b Add consistency to id 2023-12-12 00:40:11 +05:30
Jay V fa8de6293e Adding SST 2023-12-11 14:07:13 -05:00
Vlad Simonov dae0d0a115 Merge branch 'main' into main 2023-12-11 22:05:09 +03:00
Pontus Abrahamsson 04aa688f4f Merge branch 'main' into midday 2023-12-11 20:03:57 +01:00
Pontus Abrahamsson c94387685c Add Midday logo 2023-12-11 20:01:52 +01:00
Pablo Hdez a87b2bf77c Merge pull request #77 from davidkpiano/main
Add Stately.ai logo and XState logo
2023-12-11 18:56:29 +00:00
Pablo Hdez 730eeb78ed Merge branch 'main' into main 2023-12-11 18:54:13 +00:00
Pablo Hdez 2357c29c56 Merge pull request #82 from Chadha93/rowy_buildship
[Logos] Adds Rowy and BuildShip Logos
2023-12-11 18:29:58 +00:00
Pablo Hdez 31209c4d0a Merge branch 'main' into rowy_buildship 2023-12-11 18:28:26 +00:00
Pablo Hdez 72ce0595fa Merge pull request #84 from PeerRich/main
added cal.com
2023-12-11 18:27:40 +00:00
Peer Richelsen 1b26e9ec5e added cal-com 2023-12-11 10:19:34 -08:00
Gaurav Chadha b9d77ee267 Merge branch 'main' into rowy_buildship 2023-12-11 23:49:32 +05:30
Pablo Hdez bb6a1e960a Merge pull request #80 from pritamHN/main
Add Hashnode logo
2023-12-11 18:09:43 +00:00
Gaurav Chadha 2ebbd13cc6 add Rowy and BuildShip logos
Signed-off-by: Gaurav Chadha <gauravchadha1676@gmail.com>
2023-12-11 23:39:32 +05:30
pritamHN 3419e0794d Updated the logo dimension. 2023-12-11 23:29:08 +05:30
pritamHN 512de281b1 Merge branch 'main' into main 2023-12-11 23:18:44 +05:30
pritamHN f78306f386 Add Hashnode logo 2023-12-11 23:13:02 +05:30
Wilmer Blanco 1be9017495 Merge branch 'main' into some-logos 2023-12-11 14:23:29 -03:00
David Khourshid a11ce0526e Add Stately.ai logo and XState logo 2023-12-11 12:22:55 -05:00
Wilmer Blanco 57d2108331 Safari, chromium, edge and vivaldi logos 2023-12-11 14:18:57 -03:00
Burak Kantarci b4d24938e8 Update svgs.ts 2023-12-11 17:16:10 +00:00
Burak Kantarci a12213c12c Added beacon logo svg 2023-12-11 17:14:44 +00:00
svensken94 09aa54bcc3 add: Affinity logos and Roblox 2023-12-11 20:13:54 +03:00
Wilmer Blanco bd43e1c26f Adding Salesforce logo 2023-12-11 14:00:42 -03:00
Pablo Hdez 8bef109ccc Merge pull request #67 from svensken94/main
Add UE, Godot and Datadog logos
2023-12-11 16:54:05 +00:00
Pablo Hdez e700effe91 Update svgs.ts 2023-12-11 16:52:51 +00:00
Pablo Hdez 86598ffc3a Merge branch 'main' into main 2023-12-11 16:50:52 +00:00
Pablo Hdez 521f131dd1 Merge pull request #69 from emrecoban/main
Added Randevum.co logo
2023-12-11 16:49:30 +00:00
Vlad Simonov ccc135abaf Merge branch 'main' into main 2023-12-11 19:40:50 +03:00
pheralb ba574ac741 📝 Update readme. 2023-12-11 16:27:58 +00:00
pheralb 0fb01f1025 Merge branch 'main' of github.com:pheralb/svgl 2023-12-11 16:26:36 +00:00
pheralb a6902feeb2 🐛 Fixed svg data types. 2023-12-11 16:26:24 +00:00
Pablo Hdez 9675175a66 📄 Update README. 2023-12-11 16:23:23 +00:00
Pablo Hdez a32d7ba2ce 📄 Update README. 2023-12-11 16:22:58 +00:00
pheralb 41f8a9b6a4 Merge branch 'main' of github.com:pheralb/svgl 2023-12-11 16:22:17 +00:00
pheralb 36e2db43e5 🔧 Update SVGs data types. 2023-12-11 16:22:03 +00:00
emrecoban 539a1722cb Fixed the route 2023-12-11 19:13:09 +03:00
emrecoban c42d8dd06f Added Randevum.co logo 2023-12-11 19:10:00 +03:00
Pablo Hdez b28c56723f Merge pull request #65 from wilmer2000/main
Adding opera logo
2023-12-11 15:57:57 +00:00
svensken94 266fb7ca4c feat: Datadog logo added 2023-12-11 18:50:10 +03:00
Pablo Hdez c3149de6c4 Merge branch 'main' into main 2023-12-11 15:49:27 +00:00
Pablo Hdez 800881df5d Merge pull request #66 from steven-tey/main
Add Dub.co logo
2023-12-11 15:42:34 +00:00
Steven Tey 6b51892697 Add Dub.co logo 2023-12-11 07:27:40 -08:00
Wilmer Blanco a31b3dda17 adding opera logo 2023-12-11 12:26:49 -03:00
svensken94 645ebc9c60 feat: UE and Godot logos 2023-12-11 18:17:37 +03:00
pheralb c8d85f1178 🔧 Update .vscode settings. 2023-12-11 13:39:29 +00:00
pheralb de3c85fe3c 🐛 Fix background-color when scrolling. 2023-12-11 13:39:01 +00:00
Pablo Hdez 89d1553518 Merge pull request #62 from advaith-unnikrishnan/main
Add svg for hoppscotch
2023-12-11 13:25:04 +00:00
Pablo Hdez b955217aee Merge branch 'main' into main 2023-12-11 13:24:12 +00:00
Pablo Hdez d6c35effd7 Merge pull request #61 from svensken94/main
Update Angular
2023-12-11 13:11:21 +00:00
svensken94 c3d7b14f57 Add VK logo 2023-12-11 15:50:02 +03:00
Advaith U 785fa9d1e0 Add svg for hoppscotch 2023-12-11 18:04:47 +05:30
svensken94 92b5aa0425 Update Angular
Angular recently redesigned and launched a new website
2023-12-11 15:19:39 +03:00
Pablo Hdez f20e8eb22f Merge pull request #58 from monoald/design-icons
 Add design category
2023-11-17 15:43:26 +00:00
Carlos S. Aldazosa ad54bbb280 Add design category 2023-11-17 09:26:57 -04:00
pheralb 10fa885725 🐛 Fix cardSpotlight background color. 2023-11-14 11:12:43 +00:00
Pablo Hdez 51809f10e5 Merge pull request #57 from pheralb/dev
🚀 v3.2.2
2023-11-14 10:52:05 +00:00
pheralb 723cf85b6c 📄 Update readme. 2023-11-14 10:50:52 +00:00
pheralb 31814adce4 ⬆️ New version. 2023-11-14 10:42:53 +00:00
pheralb 551192053d Design improvements. 2023-11-14 10:42:03 +00:00
pheralb 9adafef87f 📦 Add X logo. 2023-11-14 10:41:48 +00:00
Pablo Hdez 550696e4a7 Merge pull request #56 from pheralb/dev
 v3.2.1
2023-10-29 13:59:16 +00:00
pheralb dfc975df71 Design improvements. 2023-10-29 13:58:11 +00:00
pheralb 68c929b755 ⬆️ Upgrade dependencies. 2023-10-29 13:57:56 +00:00
Pablo Hdez e74b33e215 Merge pull request #55 from roberthgnz/main
feat: add crypto category
2023-10-29 13:25:55 +00:00
Roberth González 45e6b075d8 feat: add crypto category 2023-10-29 11:57:04 +00:00
Pablo Hdez 79209b57e1 Merge pull request #54 from pheralb/dev
📦 New svgs & update dependencies.
2023-09-26 15:06:27 +01:00
pheralb 2455918eca Add new svgs. 2023-09-26 15:03:31 +01:00
pheralb 1bb44f0251 📦 New svgs. 2023-09-26 15:03:21 +01:00
pheralb 981b236953 ⬆️ Update all dependencies. 2023-09-26 14:59:07 +01:00
pheralb c5dc0d6313 ⚙️ Merge branch 'main' of github.com:pheralb/svgl. 2023-09-12 10:07:05 +01:00
pheralb ed2a0a36d6 ⚙️ Update website icon. 2023-09-12 10:05:17 +01:00
pheralb c063b7995c 📦 New svgs. 2023-09-12 10:03:00 +01:00
pheralb db529e73ac ⬆️ Update dependencies. 2023-09-12 09:50:26 +01:00
Pablo Hdez c7c9a020d3 Merge pull request #53 from Kevin04C/main
Add Microsoft SQL Server
2023-07-16 22:50:59 +01:00
Kevin04c 29e2f6a81e Add Microsoft SQL Server 2023-07-16 16:20:27 -05:00
Pablo Hdez 61df4050ca Merge pull request #52 from eai04191/update-mastodon
📦 Update mastodon.svg.
2023-07-10 20:31:39 +01:00
y.takahashi f2f74fe0e2 Update mastodon.svg
SVG source was taken from: https://github.com/mastodon/mastodon/blob/main/app/javascript/images/logo.svg
2023-07-11 03:29:47 +09:00
pheralb 465835bdb2 ⚙️ Add option to clear the search. 2023-07-10 15:52:47 +01:00
pheralb 9b576529ae 📦 New svgs. 2023-07-10 15:52:03 +01:00
pheralb c1d8b7d531 🎨 Design improvements. 2023-07-07 10:08:56 +01:00
pheralb 3082244e9d New svgs. 2023-07-07 10:08:35 +01:00
pheralb 079113a5ff 📦 Add svelte-sonner. 2023-07-07 09:34:16 +01:00
pheralb 5470b17afb Add svelte-sonner. 2023-07-07 09:34:08 +01:00
pheralb 539d103a1e 📦 Update dependencies. 2023-07-07 09:17:07 +01:00
pheralb ba3e228a4d 🔨 Update eslint config. 2023-07-07 09:16:54 +01:00
pheralb 874876fc8e ⚙️ Fix types. 2023-06-11 12:41:09 +01:00
pheralb 76cabd2923 📦 New svgs. 2023-06-11 12:33:16 +01:00
pheralb 2d323bcd80 📦 New svgs. 2023-06-11 11:57:33 +01:00
pheralb df73d03931 🛠️ Fix notFound icon. 2023-06-10 21:07:41 +01:00
pheralb 7bff4d141e Update all dependencies. 2023-06-10 21:07:27 +01:00
pheralb 2af148c319 📦 Add new svgs. 2023-06-10 20:42:39 +01:00
pheralb 50613a56a8 ⚙️ Update infojobs svg. 2023-06-10 20:38:27 +01:00
pheralb 7ac4837786 📦 Add new svg. 2023-05-16 18:04:02 +01:00
pheralb 9904e3e57d ⚙️ Add jobs category. 2023-05-16 18:03:48 +01:00
pheralb 54860b5f3b ⚙️ Fix category type. 2023-05-14 18:35:30 +01:00
pheralb d645f744f1 📦 Add new svgs. 2023-05-14 18:35:19 +01:00
Pablo Hdez 3df10b6a88 Merge pull request #51 from alireza4682/main
added SASS
2023-05-14 17:20:25 +01:00
alireza 06fdbe1b63 added SASS 2023-05-14 19:46:00 +03:30
Pablo Hdez 3a1f9af3d3 🎨 Design improvements. 2023-05-11 08:03:58 +00:00
Pablo Hdez 0d159346f1 Merge pull request #50 from vab1997/main
Add: stars count repository
2023-05-11 08:39:08 +01:00
vab1997 e9b097faec Add stars count repository 2023-05-10 17:06:42 -03:00
Pablo Hdez 7ef31b6af2 Merge pull request #48 from Waxer59/add-hugo
feat: add Hugo logo
2023-04-29 11:22:46 +01:00
Waxer59 444787b515 add hugo logo 2023-04-27 01:27:14 +02:00
Pablo Hdez 52adf56c0d Merge pull request #47 from codewithxavi/php
Added php logo
2023-04-25 11:21:15 +01:00
codewithxavi 1e1a0f160b Add php logo 2023-04-25 12:08:27 +02:00
Pablo Hdez 60e7ab7a48 Merge pull request #46 from chernodub/patch-1
⚙ Update Firefox category.
2023-04-25 10:41:05 +02:00
Viktor Chernodub 08dcee775f Update Firefox category 2023-04-25 09:58:40 +02:00
Pablo Hdez 1ffe9026c8 Merge pull request #44 from MrTban/main
Add Redux
2023-04-21 10:51:30 +02:00
MrTban 6733c6e0a5 Add Redux 2023-04-20 17:21:43 -05:00
pheralb 3706c43bf2 Update twitch logo. 2023-04-18 18:55:17 +01:00
pheralb b200f14a7a Optimized SVGs. 2023-04-15 16:43:48 +01:00
Pablo Hdez 8787e1a2eb Merge pull request #42 from DSGDSR/feature/new_svg_logos
 Add some new svg logos
2023-04-15 16:29:41 +01:00
David Sanchez 54d52e436b Add some new svg logos 2023-04-15 11:52:16 +02:00
pheralb 3e10c06471 🛠️ Fix SVGs data. 2023-04-14 17:00:16 +01:00
Pablo Hdez 6225883315 Merge pull request #41 from stv-beep/main
feat: add elementor logo
2023-04-14 16:59:37 +01:00
Pablo Hdez fae5d27fe8 Merge branch 'main' into main 2023-04-14 16:58:10 +01:00
stv-beep 49e92b82db feat: add elementor logo 2023-04-14 17:53:28 +02:00
pheralb 93b2964d7d Update SVGs data. 2023-04-14 16:53:18 +01:00
pheralb 1f7a02a514 📦 Add Microsoft. 2023-04-14 16:53:08 +01:00
pheralb 63d8d470b2 Optimized SVGs. 2023-04-14 16:52:59 +01:00
Pablo Hdez 8df82e2e2a 📦 Update issue templates. 2023-04-14 12:48:03 +01:00
Pablo Hdez 897ce00383 🛠 Update workflow. 2023-04-14 11:37:45 +00:00
Pablo Hdez 9529c4fc04 🛠 Update testing command. 2023-04-14 11:37:28 +00:00
Pablo Hdez 5f9b1bfb4e Merge pull request #40 from stv-beep/main
feat: add wordpress logo
2023-04-14 08:16:36 +01:00
stv-beep 7092c6a5a0 feat: add wordpress logo 2023-04-13 22:48:07 +02:00
pheralb 2fdc7782fc Update dependencies. 2023-04-12 09:53:35 +01:00
pheralb 005a7e6767 🛠️ Update svgs data. 2023-04-12 09:17:21 +01:00
pheralb 0c377fbffe 📦 Add new svgs. 2023-04-12 09:17:07 +01:00
pheralb b0d22d9084 Update SVGs. 2023-04-12 09:09:04 +01:00
pheralb 6fae6020b0 Layout improvements. 2023-03-26 22:39:32 +01:00
pheralb 041e65ea5a 🛠️ Update svgs data. 2023-03-22 09:21:25 +00:00
pheralb 88e7be2747 Design improvements. 2023-03-22 09:21:15 +00:00
pheralb f38595d21c 🛠️ Add notFound component. 2023-03-21 22:38:08 +00:00
pheralb cc0d49b30c 🛠️ Create 'notFound' component. 2023-03-21 16:54:46 +00:00
pheralb b9bf4bf48a 🛠️ Update repository link. 2023-03-20 20:37:55 +00:00
443 changed files with 9800 additions and 1028 deletions
+28 -18
View File
@@ -1,20 +1,30 @@
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
plugins: ['svelte3', '@typescript-eslint'],
ignorePatterns: ['*.cjs'],
overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
settings: {
'svelte3/typescript': () => require('typescript')
},
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020
},
env: {
browser: true,
es2017: true,
node: true
}
root: true,
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:svelte/recommended',
'prettier'
],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020,
extraFileExtensions: ['.svelte']
},
env: {
browser: true,
es2017: true,
node: true
},
overrides: [
{
files: ['*.svelte'],
parser: 'svelte-eslint-parser',
parserOptions: {
parser: '@typescript-eslint/parser'
}
}
]
};
+20
View File
@@ -0,0 +1,20 @@
---
name: Request SVG.
about: Request an SVG here.
title: '🔔 [Request]:'
labels: request
assignees: pheralb
---
## 🔎 Information:
- **Title**:
- **Category**:
- **Source (.svg)**:
- **Website**:
## 📝 Checklist:
- [x] I have permission to use this logo.
- [x] The link I have provided is optimized for web use.
- [x] The size of the SVG is less than **20kb**.
+27 -8
View File
@@ -1,26 +1,45 @@
name: 🛠️ Check
name: 🔎 Check
on:
push:
branches:
- main
- next
pull_request:
branches:
- main
- next
jobs:
svelte-check:
vitest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js 18.x
uses: actions/setup-node@v3
- name: Setup pnpm 8
uses: pnpm/action-setup@v2
with:
node-version: 18.x
version: 8
- name: Install dependencies
run: npm install
run: pnpm install
- name: Run typecheck
run: npm run check
- name: Run Vitest
run: pnpm test
svgs-size:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup pnpm 8
uses: pnpm/action-setup@v2
with:
version: 8
- name: Install dependencies
run: pnpm install
working-directory: ./check-size
- name: Check svgs size
run: pnpm start
working-directory: ./check-size
+2 -1
View File
@@ -1,13 +1,13 @@
# Dependencies
node_modules
package-lock.json
pnpm-lock.yaml
yarn.lock
# Folders
/.svelte-kit
/build
/package
.idea/
# Logs
.DS_Store
@@ -20,3 +20,4 @@ yarn.lock
# Vite files
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
src/figma/dist
+5 -2
View File
@@ -1,8 +1,11 @@
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
"source.fixAll.eslint": "explicit"
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"tailwindCSS.experimental.classRegex": [["[\"'`]([^\"'`]*).*?[\"'`]"]]
"tailwindCSS.experimental.classRegex": [["[\"'`]([^\"'`]*).*?[\"'`]"]],
"[svelte]": {
"editor.defaultFormatter": "svelte.svelte-vscode"
}
}
+100 -25
View File
@@ -1,23 +1,31 @@
<div align="center">
<a href="https://svgl.vercel.app">
<img src="static/images/screenshot.png">
<a href="https://svgl.app">
<img src="static/images/readme.png">
</a>
<p></p>
</div>
<div align="center">
<a href="https://svgl.vercel.app/" target="_blank">
<a href="https://svgl.app" target="_blank">
Discover
</a>
<span>&nbsp;&nbsp;</span>
<span>&nbsp;&nbsp;</span>
<a href="https://github.com/pheralb/svgl/issues/new?assignees=pheralb&labels=request&projects=&template=request-svg-.md&title=%5BRequest%5D%3A">
Request logo
</a>
<span>&nbsp;✦&nbsp;</span>
<a href="#-getting-started">
Submit logo
</a>
<span>&nbsp;&nbsp;</span>
<a href="#%EF%B8%8F-stack">
Stack
<span>&nbsp;&nbsp;</span>
<a href="#-extensions">
Extensions
</a>
<span>&nbsp;&nbsp;</span>
<span>&nbsp;&nbsp;</span>
<a href="https://svgl.app/api">
API
</a>
<span>&nbsp;✦&nbsp;</span>
<a href="#%EF%B8%8F-contributing">
Contributing
</a>
@@ -27,12 +35,13 @@
<div align="center">
![Svelte Badge](https://img.shields.io/badge/Svelte-FF3E00?logo=svelte&logoColor=fff&style=flat)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fpheralb%2Fsvgl%2Fbadge%3Fref%3Dmain&style=flat)](https://actions-badge.atrox.dev/pheralb/svgl/goto?ref=main)
![GitHub stars](https://img.shields.io/github/stars/pheralb/svgl)
![GitHub issues](https://img.shields.io/github/issues/pheralb/svgl)
![GitHub forks](https://img.shields.io/github/forks/pheralb/svgl)
![GitHub license](https://img.shields.io/github/license/pheralb/svgl)
![GitHub PRs](https://img.shields.io/github/issues-pr/pheralb/svgl)
![Tailwind CSS Badge](https://img.shields.io/badge/Tailwind%20CSS-06B6D4?logo=tailwindcss&logoColor=fff&style=flat)
</div>
@@ -40,56 +49,122 @@
- [**Sveltekit**](https://kit.svelte.dev/) - Web development, streamlined.
- [**Typescript**](https://www.typescriptlang.org/) - JavaScript with syntax for types.
- [**mdsvex**](https://mdsvex.com/) - Markdown for Svelte apps.
- [**Shiki**](https://github.com/shikijs/shiki) - A beautiful Syntax Highlighter.
- [**Tailwindcss**](https://tailwindcss.com/) - A utility-first CSS framework for rapidly building custom designs.
- [**bits-ui**](https://www.bits-ui.com) - A collection of headless components for Svelte.
- [**clsx**](https://github.com/lukeed/clsx) + [**tailwind-merge**](https://github.com/dcastil/tailwind-merge) inspired by [shadcn/ui](https://ui.shadcn.com) - A tiny utility for constructing `className` strings conditionally.
- [**Prettier**](https://prettier.io/) + [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) - An opinionated code formatter.
- [**phosphor-svelte**](https://github.com/haruaki07/phosphor-svelte) - A clean and friendly icon family for Svelte.
- [**Lucide Icons**](https://lucide.dev/) + [**phosphor-svelte**](https://github.com/haruaki07/phosphor-svelte) - A clean and friendly icons libraries.
- [**svelte-sonner**](https://github.com/wobsoriano/svelte-sonner) - An opinionated toast component for Svelte.
- [**@upstash/redis** + **@upstash/ratelimit**](https://upstash.com/) - Serverless Redis for developers.
- [**Vitest**](https://vitest.dev/) - Blazing Fast Unit Test Framework.
## 🚀 Getting Started
> [!IMPORTANT]
> Before submitting the SVG, **make sure that you have permission** or that the license of the SVG allows you to add it to svgl. If you are not sure, please contact the company or author.
You will need:
- [Node.js 16+ (recommended 18 LTS)](https://nodejs.org/en/).
- [Git](https://git-scm.com/).
1. Clone or [fork](https://github.com/pheralb/svgl/fork) this repository:
1. [Fork](https://github.com/pheralb/svgl/fork) this repository and clone it locally:
```bash
git clone git@github.com:pheralb/svgl.git
git clone git@github.com:your_username/svgl.git
```
2. Install dependencies with your favorite package manager:
2. Install dependencies:
```bash
# with npm:
npm install
# Install pnpm globally if you don't have it:
npm install -g pnpm
# with pnpm:
# and install dependencies:
pnpm install
# with ultra:
ultra install
# with yarn:
yarn install
```
3. Go to the [**`static/library`**](https://github.com/pheralb/svgl/blob/main/static/library) folder and add your `.svg` logo. Remember to optimize SVG for web use, you can use [SVGOMG](https://jakearchibald.github.io/svgomg/).
3. Go to the [**`static/library`**](https://github.com/pheralb/svgl/blob/main/static/library) folder and add your `.svg` logo.
> [!WARNING]
>
> - Remember to optimize SVG for web, you can use [SVGOMG](https://jakearchibald.github.io/svgomg/).
> - When you optimize the SVG, make sure that the `viewBox` is not removed.
> - The size limit for each .svg is **20kb**.
4. Go to the [**`src/data/svgs.ts`**](https://github.com/pheralb/svgl/blob/main/src/data/svgs.ts) and add the information about your logo, following the structure:
- If the logo is a solid color:
```json
{
"id": 1,
"title": "Title",
"category": "Category",
"route": "/library/your_logo.svg",
"url": "Website"
},
}
```
- If the logo has logo + wordmark version:
```json
{
"title": "Title",
"category": "Category",
"route": "/library/your_logo.svg",
"wordmark": "/library/your_logo_wordmark.svg",
"url": "Website"
}
```
- If the logo/wordmark has light and dark mode:
```json
{
"title": "Title",
"category": "Category",
"route": {
"light": "/library/your_logo_light.svg",
"dark": "/library/your_logo_dark.svg"
},
"wordmark": {
"light": "/library/your_wordmark-logo_light.svg",
"dark": "/library/your_wordmark-logo_dark.svg"
},
"url": "Website"
}
```
> [!NOTE]
>
> - The list of categories is here: [`src/types/categories.ts`](https://github.com/pheralb/svgl/blob/main/src/types/categories.ts). You can add a new category if you need it.
> - You can add multiple categories to the same logo, for example: `"category": ["Social", "Design"]` (max 3 categories per logo).
And create a pull request with your logo 🚀.
5. (Optional) If you want to run the [API](https://svgl.app/api) locally, you will need to create a `.env` file in the root of the project with the following variables:
- [Create a Upstash account](https://console.upstash.com/).
- [Create a Upstash Redis Database](https://upstash.com/docs/redis/overall/getstarted).
```bash
SVGL_API_REQUESTS = 1
UPSTASH_REDIS_URL = ""
UPSTASH_REDIS_TOKEN = ""
```
## 📦 Extensions
A list of extensions that use the [svgl API](https://svgl.app/api), created by the community:
| | Extension | Description | Created by | Link |
| ---------------------------------------------------------------------------------------------- | ---------------- | -------------------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------- |
| <img src="https://github.com/pheralb/svgl/blob/main/static/library/svgl.svg" height="25" /> | svgls | A CLI for easily adding SVG icons to your project. | [sujjeee](https://twitter.com/sujjeeee) | [Github Repository](https://github.com/sujjeee/svgls) |
| <img src="https://github.com/pheralb/svgl/blob/main/static/library/figma.svg" height="25" /> | SVGL for Figma | Add svgs from svgl to your Figma project. | [quilljou](https://twitter.com/quillzhou) | [Figma Plugin](https://www.figma.com/community/plugin/1320306989350693206/svgl) |
| <img src="https://github.com/pheralb/svgl/blob/main/static/library/raycast.svg" height="25" /> | SVGL for Raycast | Search SVG logos via svgl. | [1weiho](https://twitter.com/1weiho) | [Raycast Store](https://www.raycast.com/davidho0403/svgl) |
## ✌️ Contributing
<a href="https://github.com/pheralb/svgl/graphs/contributors">
+70
View File
@@ -0,0 +1,70 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { readdir, stat } = require('fs').promises;
const { join } = require('path');
// For GitHub Actions:
const core = require('@actions/core');
// 🔎 Settings:
const dir = '../static/library';
const sizeLimit = 20000; // 20kb;
function convertBytes(bytes, format = 'KB') {
if (format === 'KB') {
return (bytes / 1024).toFixed(2) + ' KB';
} else if (format === 'MB') {
return (bytes / (1024 * 1024)).toFixed(2) + ' MB';
} else {
return 'Invalid format. Use "KB" or "MB".';
}
}
async function checkSize() {
const files = await readdir(dir);
let maxSize = 0;
let maxFiles = [];
let message = '';
try {
for (const file of files) {
const filePath = join(dir, file);
const stats = await stat(filePath);
if (stats.size >= sizeLimit) {
maxFiles.push({
filename: file,
size: stats.size
});
if (stats.size > maxSize) {
maxSize = stats.size;
}
}
}
if (maxFiles.length === 0) {
message = `- ✅ All files are smaller than ${convertBytes(sizeLimit)}`;
core.setOutput('message', message);
} else {
message = `- ❌ There are files bigger than ${convertBytes(sizeLimit)}.`;
throw new Error(message);
}
} catch (err) {
core.setFailed(message);
} finally {
if (maxFiles.length > 0) {
console.log('🔎 Files found:');
maxFiles.forEach((file) => {
console.log(`- 📄 ${file.filename} - ${convertBytes(file.size, 'KB')}`);
});
}
console.log('⚙️ Settings:');
console.log(`- 📁 Directory: ${dir}`);
console.log(`- 🧱 Size limit: ${convertBytes(sizeLimit)} bytes`);
if (maxSize > 0) {
console.log(`- 🔔 Max size found: ${convertBytes(maxSize, 'KB')}`);
}
}
}
// Run the function
checkSize();
+21
View File
@@ -0,0 +1,21 @@
{
"name": "@svgl/check-size",
"version": "1.0.0",
"description": "Limit the size of your SVG files",
"main": "index.js",
"author": "@pheralb_",
"license": "ISC",
"keywords": [
"svg",
"size",
"limit",
"check"
],
"scripts": {
"start": "node index.js"
},
"dependencies": {
"@actions/core": "1.10.1",
"@actions/github": "6.0.0"
}
}
+166
View File
@@ -0,0 +1,166 @@
lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
dependencies:
'@actions/core':
specifier: 1.10.1
version: 1.10.1
'@actions/github':
specifier: 6.0.0
version: 6.0.0
packages:
/@actions/core@1.10.1:
resolution: {integrity: sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==}
dependencies:
'@actions/http-client': 2.2.0
uuid: 8.3.2
dev: false
/@actions/github@6.0.0:
resolution: {integrity: sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==}
dependencies:
'@actions/http-client': 2.2.0
'@octokit/core': 5.0.2
'@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.0.2)
'@octokit/plugin-rest-endpoint-methods': 10.2.0(@octokit/core@5.0.2)
dev: false
/@actions/http-client@2.2.0:
resolution: {integrity: sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==}
dependencies:
tunnel: 0.0.6
undici: 5.28.2
dev: false
/@fastify/busboy@2.1.0:
resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==}
engines: {node: '>=14'}
dev: false
/@octokit/auth-token@4.0.0:
resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==}
engines: {node: '>= 18'}
dev: false
/@octokit/core@5.0.2:
resolution: {integrity: sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==}
engines: {node: '>= 18'}
dependencies:
'@octokit/auth-token': 4.0.0
'@octokit/graphql': 7.0.2
'@octokit/request': 8.1.6
'@octokit/request-error': 5.0.1
'@octokit/types': 12.4.0
before-after-hook: 2.2.3
universal-user-agent: 6.0.1
dev: false
/@octokit/endpoint@9.0.4:
resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==}
engines: {node: '>= 18'}
dependencies:
'@octokit/types': 12.4.0
universal-user-agent: 6.0.1
dev: false
/@octokit/graphql@7.0.2:
resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==}
engines: {node: '>= 18'}
dependencies:
'@octokit/request': 8.1.6
'@octokit/types': 12.4.0
universal-user-agent: 6.0.1
dev: false
/@octokit/openapi-types@19.1.0:
resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==}
dev: false
/@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.0.2):
resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': '>=5'
dependencies:
'@octokit/core': 5.0.2
'@octokit/types': 12.4.0
dev: false
/@octokit/plugin-rest-endpoint-methods@10.2.0(@octokit/core@5.0.2):
resolution: {integrity: sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': '>=5'
dependencies:
'@octokit/core': 5.0.2
'@octokit/types': 12.4.0
dev: false
/@octokit/request-error@5.0.1:
resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==}
engines: {node: '>= 18'}
dependencies:
'@octokit/types': 12.4.0
deprecation: 2.3.1
once: 1.4.0
dev: false
/@octokit/request@8.1.6:
resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==}
engines: {node: '>= 18'}
dependencies:
'@octokit/endpoint': 9.0.4
'@octokit/request-error': 5.0.1
'@octokit/types': 12.4.0
universal-user-agent: 6.0.1
dev: false
/@octokit/types@12.4.0:
resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==}
dependencies:
'@octokit/openapi-types': 19.1.0
dev: false
/before-after-hook@2.2.3:
resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
dev: false
/deprecation@2.3.1:
resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
dev: false
/once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
wrappy: 1.0.2
dev: false
/tunnel@0.0.6:
resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==}
engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
dev: false
/undici@5.28.2:
resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==}
engines: {node: '>=14.0'}
dependencies:
'@fastify/busboy': 2.1.0
dev: false
/universal-user-agent@6.0.1:
resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
dev: false
/uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
dev: false
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: false
+62
View File
@@ -0,0 +1,62 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { readdir, stat } = require('fs').promises;
const { readFile, writeFile } = require('fs/promises');
const { join } = require('path');
// 🔎 Settings:
const dir = '../static/library';
async function fixViewbox() {
const files = await readdir(dir);
const fileType = 'svg';
let message = '';
for (const file of files) {
const filePath = join(dir, file);
const fileStat = await stat(filePath);
if (fileStat.isFile() && file.endsWith(fileType)) {
const fileContent = await readFile(filePath);
const viewBox = getViewBox(fileContent);
const width = getWidth(fileContent);
const height = getHeight(fileContent);
if (!viewBox) {
const newFileContent = fileContent
.toString()
.replace('<svg', `<svg viewBox="0 0 ${width} ${height}"`);
await writeFile(filePath, newFileContent);
message = `🔔 File ${file} has been fixed.`;
console.log(message);
} else {
message = `✅ File ${file} has already a viewBox.`;
console.log(message);
}
} else {
message = `❌ File ${file} is not a ${fileType} file.`;
console.log(message);
}
}
// Log the result:
console.log('🚀 Done.');
}
function getViewBox(fileContent) {
const viewBoxRegex = /viewBox="(.+?)"/;
const viewBox = viewBoxRegex.exec(fileContent);
return viewBox ? viewBox[1] : null;
}
function getWidth(fileContent) {
const widthRegex = /width="(.+?)"/;
const width = widthRegex.exec(fileContent);
return width ? width[1] : null;
}
function getHeight(fileContent) {
const heightRegex = /height="(.+?)"/;
const height = heightRegex.exec(fileContent);
return height ? height[1] : null;
}
// Run the function
fixViewbox();
+21
View File
@@ -0,0 +1,21 @@
{
"name": "@svgl/fix-viewbox",
"version": "1.0.0",
"description": "Add viewbox to svg files if not present.",
"main": "index.js",
"author": "@pheralb_",
"license": "ISC",
"keywords": [
"svg",
"size",
"limit",
"check"
],
"scripts": {
"start": "node index.js"
},
"dependencies": {
"@actions/core": "1.10.1",
"@actions/github": "6.0.0"
}
}
+166
View File
@@ -0,0 +1,166 @@
lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
dependencies:
'@actions/core':
specifier: 1.10.1
version: 1.10.1
'@actions/github':
specifier: 6.0.0
version: 6.0.0
packages:
/@actions/core@1.10.1:
resolution: {integrity: sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==}
dependencies:
'@actions/http-client': 2.2.0
uuid: 8.3.2
dev: false
/@actions/github@6.0.0:
resolution: {integrity: sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==}
dependencies:
'@actions/http-client': 2.2.0
'@octokit/core': 5.0.2
'@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.0.2)
'@octokit/plugin-rest-endpoint-methods': 10.2.0(@octokit/core@5.0.2)
dev: false
/@actions/http-client@2.2.0:
resolution: {integrity: sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==}
dependencies:
tunnel: 0.0.6
undici: 5.28.2
dev: false
/@fastify/busboy@2.1.0:
resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==}
engines: {node: '>=14'}
dev: false
/@octokit/auth-token@4.0.0:
resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==}
engines: {node: '>= 18'}
dev: false
/@octokit/core@5.0.2:
resolution: {integrity: sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==}
engines: {node: '>= 18'}
dependencies:
'@octokit/auth-token': 4.0.0
'@octokit/graphql': 7.0.2
'@octokit/request': 8.1.6
'@octokit/request-error': 5.0.1
'@octokit/types': 12.4.0
before-after-hook: 2.2.3
universal-user-agent: 6.0.1
dev: false
/@octokit/endpoint@9.0.4:
resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==}
engines: {node: '>= 18'}
dependencies:
'@octokit/types': 12.4.0
universal-user-agent: 6.0.1
dev: false
/@octokit/graphql@7.0.2:
resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==}
engines: {node: '>= 18'}
dependencies:
'@octokit/request': 8.1.6
'@octokit/types': 12.4.0
universal-user-agent: 6.0.1
dev: false
/@octokit/openapi-types@19.1.0:
resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==}
dev: false
/@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.0.2):
resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': '>=5'
dependencies:
'@octokit/core': 5.0.2
'@octokit/types': 12.4.0
dev: false
/@octokit/plugin-rest-endpoint-methods@10.2.0(@octokit/core@5.0.2):
resolution: {integrity: sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': '>=5'
dependencies:
'@octokit/core': 5.0.2
'@octokit/types': 12.4.0
dev: false
/@octokit/request-error@5.0.1:
resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==}
engines: {node: '>= 18'}
dependencies:
'@octokit/types': 12.4.0
deprecation: 2.3.1
once: 1.4.0
dev: false
/@octokit/request@8.1.6:
resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==}
engines: {node: '>= 18'}
dependencies:
'@octokit/endpoint': 9.0.4
'@octokit/request-error': 5.0.1
'@octokit/types': 12.4.0
universal-user-agent: 6.0.1
dev: false
/@octokit/types@12.4.0:
resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==}
dependencies:
'@octokit/openapi-types': 19.1.0
dev: false
/before-after-hook@2.2.3:
resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
dev: false
/deprecation@2.3.1:
resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
dev: false
/once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
wrappy: 1.0.2
dev: false
/tunnel@0.0.6:
resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==}
engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
dev: false
/undici@5.28.2:
resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==}
engines: {node: '>=14.0'}
dependencies:
'@fastify/busboy': 2.1.0
dev: false
/universal-user-agent@6.0.1:
resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
dev: false
/uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
dev: false
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: false
+48 -26
View File
@@ -1,7 +1,7 @@
{
"name": "svgl",
"author": "@pheralb_",
"version": "3.0.0",
"version": "4.1.0",
"description": "A beautiful library with SVG logos.",
"private": true,
"license": "MIT",
@@ -15,39 +15,61 @@
"scripts": {
"dev": "vite dev",
"host": "vite dev --host",
"build": "vite build",
"build": "pnpm run prebuild && vite build",
"prebuild": "cd ./check-size && pnpm install && pnpm run start",
"preview": "vite preview",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"test:unit": "vitest",
"check:size": "cd ./check-size && npm run start",
"fix:viewbox": "cd ./fix-viewbox && npm run start",
"test": "vitest run",
"lint": "prettier --plugin-search-dir . --check . && eslint .",
"format": "prettier --plugin-search-dir . --write ."
"format": "prettier --plugin-search-dir . --write .",
"dev:figma": "concurrently -n plugin,svelte 'npm run build:plugin -- --watch --define:SITE_URL=\\\"http://localhost:5173?figma=1\\\"' 'npm run dev'",
"build:plugin": "esbuild src/figma/code.ts --bundle --target=es6 --loader:.svg=text --outfile=src/figma/dist/code.js",
"build:figma": "concurrently -n plugin,svelte 'npm run build:plugin -- --define:SITE_URL=\\\"$npm_package_config_siteURL\\\"' 'npm run build'"
},
"dependencies": {
"@figma/plugin-typings": "1.84.0",
"@upstash/ratelimit": "1.0.0",
"@upstash/redis": "1.28.2",
"bits-ui": "0.15.1",
"clsx": "2.1.0",
"downloadjs": "1.4.7",
"svelte-french-toast": "1.0.3"
"jszip": "3.10.1",
"lucide-svelte": "0.314.0",
"shiki": "0.14.7",
"svelte-sonner": "0.3.6",
"tailwind-merge": "2.2.1"
},
"devDependencies": {
"@sveltejs/adapter-auto": "2.0.0",
"@sveltejs/kit": "1.11.0",
"@types/downloadjs": "1.4.3",
"@typescript-eslint/eslint-plugin": "5.55.0",
"@typescript-eslint/parser": "5.55.0",
"autoprefixer": "10.4.14",
"eslint": "8.36.0",
"eslint-config-prettier": "8.7.0",
"eslint-plugin-svelte3": "4.0.0",
"phosphor-svelte": "1.2.1",
"postcss": "8.4.21",
"prettier": "2.8.4",
"prettier-plugin-svelte": "2.9.0",
"prettier-plugin-tailwindcss": "0.2.4",
"svelte": "3.56.0",
"svelte-check": "3.1.4",
"tailwindcss": "3.2.7",
"tslib": "2.5.0",
"typescript": "4.9.5",
"vite": "4.1.4",
"vitest": "0.29.2"
"@sveltejs/adapter-auto": "3.1.1",
"@sveltejs/kit": "2.4.3",
"@sveltejs/vite-plugin-svelte": "3.0.1",
"@tailwindcss/typography": "0.5.10",
"@types/downloadjs": "1.4.6",
"@typescript-eslint/eslint-plugin": "6.19.1",
"@typescript-eslint/parser": "6.19.1",
"autoprefixer": "10.4.17",
"concurrently": "8.2.2",
"esbuild": "0.19.12",
"eslint": "8.56.0",
"eslint-config-prettier": "9.1.0",
"eslint-plugin-svelte": "2.35.1",
"mdsvex": "0.11.0",
"postcss": "8.4.33",
"prettier": "3.2.4",
"prettier-plugin-svelte": "3.1.2",
"prettier-plugin-tailwindcss": "0.5.11",
"svelte": "4.2.9",
"svelte-check": "3.6.3",
"tailwindcss": "3.4.1",
"tslib": "2.6.2",
"typescript": "5.3.3",
"vite": "5.0.12",
"vitest": "1.2.1"
},
"config": {
"siteURL": "https://svgl.app?figma=1"
}
}
+3262
View File
@@ -0,0 +1,3262 @@
lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
dependencies:
'@figma/plugin-typings':
specifier: 1.84.0
version: 1.84.0
'@upstash/ratelimit':
specifier: 1.0.0
version: 1.0.0
'@upstash/redis':
specifier: 1.28.2
version: 1.28.2
bits-ui:
specifier: 0.15.1
version: 0.15.1(svelte@4.2.9)
clsx:
specifier: 2.1.0
version: 2.1.0
downloadjs:
specifier: 1.4.7
version: 1.4.7
jszip:
specifier: 3.10.1
version: 3.10.1
lucide-svelte:
specifier: 0.314.0
version: 0.314.0(svelte@4.2.9)
shiki:
specifier: 0.14.7
version: 0.14.7
svelte-sonner:
specifier: 0.3.6
version: 0.3.6(svelte@4.2.9)
tailwind-merge:
specifier: 2.2.1
version: 2.2.1
devDependencies:
'@sveltejs/adapter-auto':
specifier: 3.1.1
version: 3.1.1(@sveltejs/kit@2.4.3)
'@sveltejs/kit':
specifier: 2.4.3
version: 2.4.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.12)
'@sveltejs/vite-plugin-svelte':
specifier: 3.0.1
version: 3.0.1(svelte@4.2.9)(vite@5.0.12)
'@tailwindcss/typography':
specifier: 0.5.10
version: 0.5.10(tailwindcss@3.4.1)
'@types/downloadjs':
specifier: 1.4.6
version: 1.4.6
'@typescript-eslint/eslint-plugin':
specifier: 6.19.1
version: 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/parser':
specifier: 6.19.1
version: 6.19.1(eslint@8.56.0)(typescript@5.3.3)
autoprefixer:
specifier: 10.4.17
version: 10.4.17(postcss@8.4.33)
concurrently:
specifier: 8.2.2
version: 8.2.2
esbuild:
specifier: 0.19.12
version: 0.19.12
eslint:
specifier: 8.56.0
version: 8.56.0
eslint-config-prettier:
specifier: 9.1.0
version: 9.1.0(eslint@8.56.0)
eslint-plugin-svelte:
specifier: 2.35.1
version: 2.35.1(eslint@8.56.0)(svelte@4.2.9)
mdsvex:
specifier: 0.11.0
version: 0.11.0(svelte@4.2.9)
postcss:
specifier: 8.4.33
version: 8.4.33
prettier:
specifier: 3.2.4
version: 3.2.4
prettier-plugin-svelte:
specifier: 3.1.2
version: 3.1.2(prettier@3.2.4)(svelte@4.2.9)
prettier-plugin-tailwindcss:
specifier: 0.5.11
version: 0.5.11(prettier-plugin-svelte@3.1.2)(prettier@3.2.4)
svelte:
specifier: 4.2.9
version: 4.2.9
svelte-check:
specifier: 3.6.3
version: 3.6.3(postcss@8.4.33)(svelte@4.2.9)
tailwindcss:
specifier: 3.4.1
version: 3.4.1
tslib:
specifier: 2.6.2
version: 2.6.2
typescript:
specifier: 5.3.3
version: 5.3.3
vite:
specifier: 5.0.12
version: 5.0.12
vitest:
specifier: 1.2.1
version: 1.2.1
packages:
/@aashutoshrathi/word-wrap@1.2.6:
resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
engines: {node: '>=0.10.0'}
dev: true
/@alloc/quick-lru@5.2.0:
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
dev: true
/@ampproject/remapping@2.2.1:
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.20
/@babel/runtime@7.23.6:
resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.0
dev: true
/@babel/runtime@7.23.8:
resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.0
dev: false
/@esbuild/aix-ppc64@0.19.12:
resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [aix]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-arm64@0.19.12:
resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-arm@0.19.12:
resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-x64@0.19.12:
resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/darwin-arm64@0.19.12:
resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@esbuild/darwin-x64@0.19.12:
resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@esbuild/freebsd-arm64@0.19.12:
resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/freebsd-x64@0.19.12:
resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-arm64@0.19.12:
resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-arm@0.19.12:
resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-ia32@0.19.12:
resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-loong64@0.19.12:
resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-mips64el@0.19.12:
resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-ppc64@0.19.12:
resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-riscv64@0.19.12:
resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-s390x@0.19.12:
resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-x64@0.19.12:
resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/netbsd-x64@0.19.12:
resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/openbsd-x64@0.19.12:
resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/sunos-x64@0.19.12:
resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-arm64@0.19.12:
resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-ia32@0.19.12:
resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-x64@0.19.12:
resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
eslint: 8.56.0
eslint-visitor-keys: 3.4.3
dev: true
/@eslint-community/regexpp@4.10.0:
resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
/@eslint/eslintrc@2.1.4:
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4
espree: 9.6.1
globals: 13.24.0
ignore: 5.3.0
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
dev: true
/@eslint/js@8.56.0:
resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@figma/plugin-typings@1.84.0:
resolution: {integrity: sha512-YisOp7S2y10BWMLBJY2DazCjRpg/0m03dDlS3nKhpw2alFQSXNuSLLd+y4pbnJpOXJMnInZdbikr/7JxudjsYg==}
dev: false
/@floating-ui/core@1.5.2:
resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==}
dependencies:
'@floating-ui/utils': 0.1.6
dev: false
/@floating-ui/dom@1.5.3:
resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==}
dependencies:
'@floating-ui/core': 1.5.2
'@floating-ui/utils': 0.1.6
dev: false
/@floating-ui/utils@0.1.6:
resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==}
dev: false
/@humanwhocodes/config-array@0.11.13:
resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 2.0.1
debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
dev: true
/@humanwhocodes/module-importer@1.0.1:
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
dev: true
/@humanwhocodes/object-schema@2.0.1:
resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
dev: true
/@internationalized/date@3.5.1:
resolution: {integrity: sha512-LUQIfwU9e+Fmutc/DpRTGXSdgYZLBegi4wygCWDSVmUdLTaMHsQyASDiJtREwanwKuQLq0hY76fCJ9J/9I2xOQ==}
dependencies:
'@swc/helpers': 0.5.3
dev: false
/@jest/schemas@29.6.3:
resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@sinclair/typebox': 0.27.8
dev: true
/@jridgewell/gen-mapping@0.3.3:
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.20
/@jridgewell/resolve-uri@3.1.1:
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
engines: {node: '>=6.0.0'}
/@jridgewell/set-array@1.1.2:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
/@jridgewell/sourcemap-codec@1.4.15:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
/@jridgewell/trace-mapping@0.3.20:
resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
/@melt-ui/svelte@0.68.0(svelte@4.2.9):
resolution: {integrity: sha512-/QvA98hnYEodZtHJ71+ocum/WWp30hVNt3F8uiZKnNYwZDaiQYjlyR9AaGKYcZLCe6R68op1mfCzc0kTzJilyA==}
peerDependencies:
svelte: '>=3 <5'
dependencies:
'@floating-ui/core': 1.5.2
'@floating-ui/dom': 1.5.3
'@internationalized/date': 3.5.1
dequal: 2.0.3
focus-trap: 7.5.4
nanoid: 5.0.4
svelte: 4.2.9
dev: false
/@nodelib/fs.scandir@2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.stat': 2.0.5
run-parallel: 1.2.0
dev: true
/@nodelib/fs.stat@2.0.5:
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: '>= 8'}
dev: true
/@nodelib/fs.walk@1.2.8:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.15.0
dev: true
/@polka/url@1.0.0-next.24:
resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==}
dev: true
/@rollup/rollup-android-arm-eabi@4.8.0:
resolution: {integrity: sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-android-arm64@4.8.0:
resolution: {integrity: sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-darwin-arm64@4.8.0:
resolution: {integrity: sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-darwin-x64@4.8.0:
resolution: {integrity: sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.8.0:
resolution: {integrity: sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm64-gnu@4.8.0:
resolution: {integrity: sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm64-musl@4.8.0:
resolution: {integrity: sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-riscv64-gnu@4.8.0:
resolution: {integrity: sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-x64-gnu@4.8.0:
resolution: {integrity: sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-x64-musl@4.8.0:
resolution: {integrity: sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-arm64-msvc@4.8.0:
resolution: {integrity: sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-ia32-msvc@4.8.0:
resolution: {integrity: sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-x64-msvc@4.8.0:
resolution: {integrity: sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@sinclair/typebox@0.27.8:
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
dev: true
/@sveltejs/adapter-auto@3.1.1(@sveltejs/kit@2.4.3):
resolution: {integrity: sha512-6LeZft2Fo/4HfmLBi5CucMYmgRxgcETweQl/yQoZo/895K3S9YWYN4Sfm/IhwlIpbJp3QNvhKmwCHbsqQNYQpw==}
peerDependencies:
'@sveltejs/kit': ^2.0.0
dependencies:
'@sveltejs/kit': 2.4.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.12)
import-meta-resolve: 4.0.0
dev: true
/@sveltejs/kit@2.4.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.12):
resolution: {integrity: sha512-nKNhUdt61vtD961kQpUk6vLDhpnV0yku5F1uYNWvrJYFV0+cGfmW7ol0JVMSjHMXlMtmmv2FTc+nPRrTFwb2UA==}
engines: {node: '>=18.13'}
hasBin: true
requiresBuild: true
peerDependencies:
'@sveltejs/vite-plugin-svelte': ^3.0.0
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.3
dependencies:
'@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.9)(vite@5.0.12)
'@types/cookie': 0.6.0
cookie: 0.6.0
devalue: 4.3.2
esm-env: 1.0.0
import-meta-resolve: 4.0.0
kleur: 4.1.5
magic-string: 0.30.5
mrmime: 2.0.0
sade: 1.8.1
set-cookie-parser: 2.6.0
sirv: 2.0.4
svelte: 4.2.9
tiny-glob: 0.2.9
vite: 5.0.12
dev: true
/@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.12):
resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==}
engines: {node: ^18.0.0 || >=20}
peerDependencies:
'@sveltejs/vite-plugin-svelte': ^3.0.0
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.0
dependencies:
'@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.9)(vite@5.0.12)
debug: 4.3.4
svelte: 4.2.9
vite: 5.0.12
transitivePeerDependencies:
- supports-color
dev: true
/@sveltejs/vite-plugin-svelte@3.0.1(svelte@4.2.9)(vite@5.0.12):
resolution: {integrity: sha512-CGURX6Ps+TkOovK6xV+Y2rn8JKa8ZPUHPZ/NKgCxAmgBrXReavzFl8aOSCj3kQ1xqT7yGJj53hjcV/gqwDAaWA==}
engines: {node: ^18.0.0 || >=20}
peerDependencies:
svelte: ^4.0.0 || ^5.0.0-next.0
vite: ^5.0.0
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.12)
debug: 4.3.4
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.5
svelte: 4.2.9
svelte-hmr: 0.15.3(svelte@4.2.9)
vite: 5.0.12
vitefu: 0.2.5(vite@5.0.12)
transitivePeerDependencies:
- supports-color
dev: true
/@swc/helpers@0.5.3:
resolution: {integrity: sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==}
dependencies:
tslib: 2.6.2
dev: false
/@tailwindcss/typography@0.5.10(tailwindcss@3.4.1):
resolution: {integrity: sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==}
peerDependencies:
tailwindcss: '>=3.0.0 || insiders'
dependencies:
lodash.castarray: 4.4.0
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
postcss-selector-parser: 6.0.10
tailwindcss: 3.4.1
dev: true
/@types/cookie@0.6.0:
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
dev: true
/@types/downloadjs@1.4.6:
resolution: {integrity: sha512-mp3w70vsaiLRT9ix92fmI9Ob2yJAPZm6tShJtofo2uHbN11G2i6a0ApIEjBl/kv3e9V7Pv7jMjk1bUwYWvMHvA==}
dev: true
/@types/estree@1.0.5:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
/@types/json-schema@7.0.15:
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
dev: true
/@types/pug@2.0.10:
resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
dev: true
/@types/semver@7.5.6:
resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
dev: true
/@types/unist@2.0.10:
resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
dev: true
/@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3):
resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
'@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
eslint: ^7.0.0 || ^8.0.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@eslint-community/regexpp': 4.10.0
'@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/scope-manager': 6.19.1
'@typescript-eslint/type-utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.19.1
debug: 4.3.4
eslint: 8.56.0
graphemer: 1.4.0
ignore: 5.3.0
natural-compare: 1.4.0
semver: 7.5.4
ts-api-utils: 1.0.3(typescript@5.3.3)
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3):
resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@typescript-eslint/scope-manager': 6.19.1
'@typescript-eslint/types': 6.19.1
'@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.19.1
debug: 4.3.4
eslint: 8.56.0
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/scope-manager@6.19.1:
resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
'@typescript-eslint/types': 6.19.1
'@typescript-eslint/visitor-keys': 6.19.1
dev: true
/@typescript-eslint/type-utils@6.19.1(eslint@8.56.0)(typescript@5.3.3):
resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3)
'@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3)
debug: 4.3.4
eslint: 8.56.0
ts-api-utils: 1.0.3(typescript@5.3.3)
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/types@6.19.1:
resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==}
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
/@typescript-eslint/typescript-estree@6.19.1(typescript@5.3.3):
resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@typescript-eslint/types': 6.19.1
'@typescript-eslint/visitor-keys': 6.19.1
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.5.4
ts-api-utils: 1.0.3(typescript@5.3.3)
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/utils@6.19.1(eslint@8.56.0)(typescript@5.3.3):
resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@types/json-schema': 7.0.15
'@types/semver': 7.5.6
'@typescript-eslint/scope-manager': 6.19.1
'@typescript-eslint/types': 6.19.1
'@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3)
eslint: 8.56.0
semver: 7.5.4
transitivePeerDependencies:
- supports-color
- typescript
dev: true
/@typescript-eslint/visitor-keys@6.19.1:
resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
'@typescript-eslint/types': 6.19.1
eslint-visitor-keys: 3.4.3
dev: true
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
/@upstash/core-analytics@0.0.6:
resolution: {integrity: sha512-cpPSR0XJAJs4Ddz9nq3tINlPS5aLfWVCqhhtHnXt4p7qr5+/Znlt1Es736poB/9rnl1hAHrOsOvVj46NEXcVqA==}
engines: {node: '>=16.0.0'}
dependencies:
'@upstash/redis': 1.28.2
dev: false
/@upstash/ratelimit@1.0.0:
resolution: {integrity: sha512-IUlc+UKuHJQqXGQi7E3UKV0CKfRZ0g6qeNnbSve940k3xLoM+X3H45MrSwDaH7meMWemztLs0Q4yjkd3ItddCw==}
dependencies:
'@upstash/core-analytics': 0.0.6
dev: false
/@upstash/redis@1.28.2:
resolution: {integrity: sha512-e4HmmCji6kE6UnriU92sAVGLQcRYAB4fXSPXls08cjW7zdE/wFaDfhAGi1/T4/wUN50bAy/lpHwW4bMkI2EAcw==}
dependencies:
crypto-js: 4.2.0
dev: false
/@vitest/expect@1.2.1:
resolution: {integrity: sha512-/bqGXcHfyKgFWYwIgFr1QYDaR9e64pRKxgBNWNXPefPFRhgm+K3+a/dS0cUGEreWngets3dlr8w8SBRw2fCfFQ==}
dependencies:
'@vitest/spy': 1.2.1
'@vitest/utils': 1.2.1
chai: 4.3.10
dev: true
/@vitest/runner@1.2.1:
resolution: {integrity: sha512-zc2dP5LQpzNzbpaBt7OeYAvmIsRS1KpZQw4G3WM/yqSV1cQKNKwLGmnm79GyZZjMhQGlRcSFMImLjZaUQvNVZQ==}
dependencies:
'@vitest/utils': 1.2.1
p-limit: 5.0.0
pathe: 1.1.1
dev: true
/@vitest/snapshot@1.2.1:
resolution: {integrity: sha512-Tmp/IcYEemKaqAYCS08sh0vORLJkMr0NRV76Gl8sHGxXT5151cITJCET20063wk0Yr/1koQ6dnmP6eEqezmd/Q==}
dependencies:
magic-string: 0.30.5
pathe: 1.1.1
pretty-format: 29.7.0
dev: true
/@vitest/spy@1.2.1:
resolution: {integrity: sha512-vG3a/b7INKH7L49Lbp0IWrG6sw9j4waWAucwnksPB1r1FTJgV7nkBByd9ufzu6VWya/QTvQW4V9FShZbZIB2UQ==}
dependencies:
tinyspy: 2.2.0
dev: true
/@vitest/utils@1.2.1:
resolution: {integrity: sha512-bsH6WVZYe/J2v3+81M5LDU8kW76xWObKIURpPrOXm2pjBniBu2MERI/XP60GpS4PHU3jyK50LUutOwrx4CyHUg==}
dependencies:
diff-sequences: 29.6.3
estree-walker: 3.0.3
loupe: 2.3.7
pretty-format: 29.7.0
dev: true
/acorn-jsx@5.3.2(acorn@8.11.2):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
acorn: 8.11.2
dev: true
/acorn-walk@8.3.2:
resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
engines: {node: '>=0.4.0'}
dev: true
/acorn@8.11.2:
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
engines: {node: '>=0.4.0'}
hasBin: true
/ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
fast-deep-equal: 3.1.3
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
dev: true
/ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
dev: true
/ansi-sequence-parser@1.1.1:
resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==}
dev: false
/ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
dependencies:
color-convert: 2.0.1
dev: true
/ansi-styles@5.2.0:
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines: {node: '>=10'}
dev: true
/any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
dev: true
/anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
dev: true
/arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
dev: true
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
/aria-query@5.3.0:
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
dependencies:
dequal: 2.0.3
/array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
dev: true
/assertion-error@1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true
/autoprefixer@10.4.17(postcss@8.4.33):
resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
peerDependencies:
postcss: ^8.1.0
dependencies:
browserslist: 4.22.2
caniuse-lite: 1.0.30001579
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.0.0
postcss: 8.4.33
postcss-value-parser: 4.2.0
dev: true
/axobject-query@4.0.0:
resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==}
dependencies:
dequal: 2.0.3
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
/binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
dev: true
/bits-ui@0.15.1(svelte@4.2.9):
resolution: {integrity: sha512-1Np8bT6W6SC2tKESfm0CySW+7+xU5S0GuUZqIxC41atZE3WIRiRlzXEYHxW88w6UaLFzZ51ns4E7pchkdV5XCQ==}
peerDependencies:
svelte: ^4.0.0
dependencies:
'@internationalized/date': 3.5.1
'@melt-ui/svelte': 0.68.0(svelte@4.2.9)
nanoid: 5.0.4
svelte: 4.2.9
dev: false
/brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
dev: true
/brace-expansion@2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
dependencies:
balanced-match: 1.0.2
dev: true
/braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
dependencies:
fill-range: 7.0.1
dev: true
/browserslist@4.22.2:
resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
caniuse-lite: 1.0.30001579
electron-to-chromium: 1.4.609
node-releases: 2.0.14
update-browserslist-db: 1.0.13(browserslist@4.22.2)
dev: true
/buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
dev: true
/cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
dev: true
/callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
dev: true
/camelcase-css@2.0.1:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
dev: true
/caniuse-lite@1.0.30001579:
resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==}
dev: true
/chai@4.3.10:
resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==}
engines: {node: '>=4'}
dependencies:
assertion-error: 1.1.0
check-error: 1.0.3
deep-eql: 4.1.3
get-func-name: 2.0.2
loupe: 2.3.7
pathval: 1.1.1
type-detect: 4.0.8
dev: true
/chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0
dev: true
/check-error@1.0.3:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
dependencies:
get-func-name: 2.0.2
dev: true
/chokidar@3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'}
dependencies:
anymatch: 3.1.3
braces: 3.0.2
glob-parent: 5.1.2
is-binary-path: 2.1.0
is-glob: 4.0.3
normalize-path: 3.0.0
readdirp: 3.6.0
optionalDependencies:
fsevents: 2.3.3
dev: true
/cliui@8.0.1:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
dependencies:
string-width: 4.2.3
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
dev: true
/clsx@2.1.0:
resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==}
engines: {node: '>=6'}
dev: false
/code-red@1.0.4:
resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
'@types/estree': 1.0.5
acorn: 8.11.2
estree-walker: 3.0.3
periscopic: 3.1.0
/color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
dev: true
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
/commander@4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
dev: true
/concat-map@0.0.1:
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
dev: true
/concurrently@8.2.2:
resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==}
engines: {node: ^14.13.0 || >=16.0.0}
hasBin: true
dependencies:
chalk: 4.1.2
date-fns: 2.30.0
lodash: 4.17.21
rxjs: 7.8.1
shell-quote: 1.8.1
spawn-command: 0.0.2
supports-color: 8.1.1
tree-kill: 1.2.2
yargs: 17.7.2
dev: true
/cookie@0.6.0:
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
engines: {node: '>= 0.6'}
dev: true
/core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
dev: false
/cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2
dev: true
/crypto-js@4.2.0:
resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
dev: false
/css-tree@2.3.1:
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
dependencies:
mdn-data: 2.0.30
source-map-js: 1.0.2
/cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
hasBin: true
dev: true
/date-fns@2.30.0:
resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
engines: {node: '>=0.11'}
dependencies:
'@babel/runtime': 7.23.6
dev: true
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.2
dev: true
/deep-eql@4.1.3:
resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
engines: {node: '>=6'}
dependencies:
type-detect: 4.0.8
dev: true
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
/deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
dev: true
/dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
/detect-indent@6.1.0:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
engines: {node: '>=8'}
dev: true
/devalue@4.3.2:
resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==}
dev: true
/didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
dev: true
/diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
/dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
dependencies:
path-type: 4.0.0
dev: true
/dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
dev: true
/doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
dependencies:
esutils: 2.0.3
dev: true
/downloadjs@1.4.7:
resolution: {integrity: sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==}
dev: false
/electron-to-chromium@1.4.609:
resolution: {integrity: sha512-ihiCP7PJmjoGNuLpl7TjNA8pCQWu09vGyjlPYw1Rqww4gvNuCcmvl+44G+2QyJ6S2K4o+wbTS++Xz0YN8Q9ERw==}
dev: true
/emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
/es6-promise@3.3.1:
resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
dev: true
/esbuild@0.19.12:
resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
'@esbuild/aix-ppc64': 0.19.12
'@esbuild/android-arm': 0.19.12
'@esbuild/android-arm64': 0.19.12
'@esbuild/android-x64': 0.19.12
'@esbuild/darwin-arm64': 0.19.12
'@esbuild/darwin-x64': 0.19.12
'@esbuild/freebsd-arm64': 0.19.12
'@esbuild/freebsd-x64': 0.19.12
'@esbuild/linux-arm': 0.19.12
'@esbuild/linux-arm64': 0.19.12
'@esbuild/linux-ia32': 0.19.12
'@esbuild/linux-loong64': 0.19.12
'@esbuild/linux-mips64el': 0.19.12
'@esbuild/linux-ppc64': 0.19.12
'@esbuild/linux-riscv64': 0.19.12
'@esbuild/linux-s390x': 0.19.12
'@esbuild/linux-x64': 0.19.12
'@esbuild/netbsd-x64': 0.19.12
'@esbuild/openbsd-x64': 0.19.12
'@esbuild/sunos-x64': 0.19.12
'@esbuild/win32-arm64': 0.19.12
'@esbuild/win32-ia32': 0.19.12
'@esbuild/win32-x64': 0.19.12
dev: true
/escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
dev: true
/escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
dev: true
/eslint-compat-utils@0.1.2(eslint@8.56.0):
resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==}
engines: {node: '>=12'}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
eslint: 8.56.0
dev: true
/eslint-config-prettier@9.1.0(eslint@8.56.0):
resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
eslint: 8.56.0
dev: true
/eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.9):
resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0-0
svelte: ^3.37.0 || ^4.0.0
peerDependenciesMeta:
svelte:
optional: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@jridgewell/sourcemap-codec': 1.4.15
debug: 4.3.4
eslint: 8.56.0
eslint-compat-utils: 0.1.2(eslint@8.56.0)
esutils: 2.0.3
known-css-properties: 0.29.0
postcss: 8.4.33
postcss-load-config: 3.1.4(postcss@8.4.33)
postcss-safe-parser: 6.0.0(postcss@8.4.33)
postcss-selector-parser: 6.0.13
semver: 7.5.4
svelte: 4.2.9
svelte-eslint-parser: 0.33.1(svelte@4.2.9)
transitivePeerDependencies:
- supports-color
- ts-node
dev: true
/eslint-scope@7.2.2:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
dev: true
/eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint@8.56.0:
resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@eslint-community/regexpp': 4.10.0
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.56.0
'@humanwhocodes/config-array': 0.11.13
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
'@ungap/structured-clone': 1.2.0
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
debug: 4.3.4
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
find-up: 5.0.0
glob-parent: 6.0.2
globals: 13.24.0
graphemer: 1.4.0
ignore: 5.3.0
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
minimatch: 3.1.2
natural-compare: 1.4.0
optionator: 0.9.3
strip-ansi: 6.0.1
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
dev: true
/esm-env@1.0.0:
resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==}
dev: true
/espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
acorn: 8.11.2
acorn-jsx: 5.3.2(acorn@8.11.2)
eslint-visitor-keys: 3.4.3
dev: true
/esquery@1.5.0:
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
engines: {node: '>=0.10'}
dependencies:
estraverse: 5.3.0
dev: true
/esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'}
dependencies:
estraverse: 5.3.0
dev: true
/estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
dev: true
/estree-walker@3.0.3:
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
dependencies:
'@types/estree': 1.0.5
/esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
dev: true
/execa@8.0.1:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
dependencies:
cross-spawn: 7.0.3
get-stream: 8.0.1
human-signals: 5.0.0
is-stream: 3.0.0
merge-stream: 2.0.0
npm-run-path: 5.1.0
onetime: 6.0.0
signal-exit: 4.1.0
strip-final-newline: 3.0.0
dev: true
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
dev: true
/fast-glob@3.3.2:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.5
dev: true
/fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
dev: true
/fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
dev: true
/fastq@1.15.0:
resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
dependencies:
reusify: 1.0.4
dev: true
/file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
flat-cache: 3.2.0
dev: true
/fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
dev: true
/find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
dependencies:
locate-path: 6.0.0
path-exists: 4.0.0
dev: true
/flat-cache@3.2.0:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
flatted: 3.2.9
keyv: 4.5.4
rimraf: 3.0.2
dev: true
/flatted@3.2.9:
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
dev: true
/focus-trap@7.5.4:
resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==}
dependencies:
tabbable: 6.2.0
dev: false
/fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
dev: true
/fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
dev: true
/fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
dev: true
optional: true
/function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
dev: true
/get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
dev: true
/get-func-name@2.0.2:
resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
dev: true
/get-stream@8.0.1:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
dev: true
/glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
dependencies:
is-glob: 4.0.3
dev: true
/glob-parent@6.0.2:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
dependencies:
is-glob: 4.0.3
dev: true
/glob@7.1.6:
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 3.1.2
once: 1.4.0
path-is-absolute: 1.0.1
dev: true
/glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 3.1.2
once: 1.4.0
path-is-absolute: 1.0.1
dev: true
/globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
dev: true
/globalyzer@0.1.0:
resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
dev: true
/globby@11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.3.2
ignore: 5.3.0
merge2: 1.4.1
slash: 3.0.0
dev: true
/globrex@0.1.2:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
dev: true
/graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
dev: true
/has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
dev: true
/hasown@2.0.0:
resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
engines: {node: '>= 0.4'}
dependencies:
function-bind: 1.1.2
dev: true
/human-signals@5.0.0:
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
engines: {node: '>=16.17.0'}
dev: true
/ignore@5.3.0:
resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
engines: {node: '>= 4'}
dev: true
/immediate@3.0.6:
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
dev: false
/import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
dev: true
/import-meta-resolve@4.0.0:
resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==}
dev: true
/imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
dev: true
/inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
dependencies:
once: 1.4.0
wrappy: 1.0.2
dev: true
/inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
/is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
dependencies:
binary-extensions: 2.2.0
dev: true
/is-core-module@2.13.1:
resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
dependencies:
hasown: 2.0.0
dev: true
/is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
dev: true
/is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
dev: true
/is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
dependencies:
is-extglob: 2.1.1
dev: true
/is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
dev: true
/is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
dev: true
/is-reference@3.0.2:
resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
dependencies:
'@types/estree': 1.0.5
/is-stream@3.0.0:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true
/isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
dev: false
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
/jiti@1.21.0:
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
hasBin: true
dev: true
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
dependencies:
argparse: 2.0.1
dev: true
/json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
dev: true
/json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
dev: true
/json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
dev: true
/jsonc-parser@3.2.0:
resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
/jszip@3.10.1:
resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
dependencies:
lie: 3.3.0
pako: 1.0.11
readable-stream: 2.3.8
setimmediate: 1.0.5
dev: false
/keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
dependencies:
json-buffer: 3.0.1
dev: true
/kleur@4.1.5:
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
engines: {node: '>=6'}
dev: true
/known-css-properties@0.29.0:
resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==}
dev: true
/levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
dependencies:
prelude-ls: 1.2.1
type-check: 0.4.0
dev: true
/lie@3.3.0:
resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
dependencies:
immediate: 3.0.6
dev: false
/lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
engines: {node: '>=10'}
dev: true
/lilconfig@3.0.0:
resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==}
engines: {node: '>=14'}
dev: true
/lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
dev: true
/local-pkg@0.5.0:
resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
engines: {node: '>=14'}
dependencies:
mlly: 1.4.2
pkg-types: 1.0.3
dev: true
/locate-character@3.0.0:
resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
/locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
dependencies:
p-locate: 5.0.0
dev: true
/lodash.castarray@4.4.0:
resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
dev: true
/lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
dev: true
/lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
dev: true
/lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
dev: true
/loupe@2.3.7:
resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
dependencies:
get-func-name: 2.0.2
dev: true
/lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
dependencies:
yallist: 4.0.0
dev: true
/lucide-svelte@0.314.0(svelte@4.2.9):
resolution: {integrity: sha512-w7oPy6aU7ybjopT9k65S1S5y/XgFVL6i6Qm0MT9pSjvORfWEdaI7cvonx5D2w3+Ty8+0jVRm4k8U/txhEpwLOg==}
peerDependencies:
svelte: '>=3 <5'
dependencies:
svelte: 4.2.9
dev: false
/magic-string@0.27.0:
resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
dev: true
/magic-string@0.30.5:
resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
/mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
/mdsvex@0.11.0(svelte@4.2.9):
resolution: {integrity: sha512-gJF1s0N2nCmdxcKn8HDn0LKrN8poStqAicp6bBcsKFd/zkUBGLP5e7vnxu+g0pjBbDFOscUyI1mtHz+YK2TCDw==}
peerDependencies:
svelte: '>=3 <5'
dependencies:
'@types/unist': 2.0.10
prism-svelte: 0.4.7
prismjs: 1.29.0
svelte: 4.2.9
vfile-message: 2.0.4
dev: true
/merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
dev: true
/merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
dev: true
/micromatch@4.0.5:
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
engines: {node: '>=8.6'}
dependencies:
braces: 3.0.2
picomatch: 2.3.1
dev: true
/mimic-fn@4.0.0:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'}
dev: true
/min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
dev: true
/minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
brace-expansion: 1.1.11
dev: true
/minimatch@9.0.3:
resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
brace-expansion: 2.0.1
dev: true
/minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
dev: true
/mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
dependencies:
minimist: 1.2.8
dev: true
/mlly@1.4.2:
resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==}
dependencies:
acorn: 8.11.2
pathe: 1.1.1
pkg-types: 1.0.3
ufo: 1.3.2
dev: true
/mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
dev: true
/mrmime@2.0.0:
resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
engines: {node: '>=10'}
dev: true
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
/mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
dependencies:
any-promise: 1.3.0
object-assign: 4.1.1
thenify-all: 1.6.0
dev: true
/nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
/nanoid@5.0.4:
resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==}
engines: {node: ^18 || >=20}
hasBin: true
dev: false
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
/node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
dev: true
/normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
dev: true
/normalize-range@0.1.2:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
dev: true
/npm-run-path@5.1.0:
resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
path-key: 4.0.0
dev: true
/object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
dev: true
/object-hash@3.0.0:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'}
dev: true
/once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
wrappy: 1.0.2
dev: true
/onetime@6.0.0:
resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
engines: {node: '>=12'}
dependencies:
mimic-fn: 4.0.0
dev: true
/optionator@0.9.3:
resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
engines: {node: '>= 0.8.0'}
dependencies:
'@aashutoshrathi/word-wrap': 1.2.6
deep-is: 0.1.4
fast-levenshtein: 2.0.6
levn: 0.4.1
prelude-ls: 1.2.1
type-check: 0.4.0
dev: true
/p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
dependencies:
yocto-queue: 0.1.0
dev: true
/p-limit@5.0.0:
resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
engines: {node: '>=18'}
dependencies:
yocto-queue: 1.0.0
dev: true
/p-locate@5.0.0:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
dependencies:
p-limit: 3.1.0
dev: true
/pako@1.0.11:
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
dev: false
/parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
dependencies:
callsites: 3.1.0
dev: true
/path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
dev: true
/path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
dev: true
/path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
dev: true
/path-key@4.0.0:
resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
engines: {node: '>=12'}
dev: true
/path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
/path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
dev: true
/pathe@1.1.1:
resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==}
dev: true
/pathval@1.1.1:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
dev: true
/periscopic@3.1.0:
resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
dependencies:
'@types/estree': 1.0.5
estree-walker: 3.0.3
is-reference: 3.0.2
/picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
dev: true
/picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
dev: true
/pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
dev: true
/pirates@4.0.6:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
dev: true
/pkg-types@1.0.3:
resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
dependencies:
jsonc-parser: 3.2.0
mlly: 1.4.2
pathe: 1.1.1
dev: true
/postcss-import@15.1.0(postcss@8.4.33):
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
dependencies:
postcss: 8.4.33
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.8
dev: true
/postcss-js@4.0.1(postcss@8.4.33):
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
postcss: ^8.4.21
dependencies:
camelcase-css: 2.0.1
postcss: 8.4.33
dev: true
/postcss-load-config@3.1.4(postcss@8.4.33):
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
engines: {node: '>= 10'}
peerDependencies:
postcss: '>=8.0.9'
ts-node: '>=9.0.0'
peerDependenciesMeta:
postcss:
optional: true
ts-node:
optional: true
dependencies:
lilconfig: 2.1.0
postcss: 8.4.33
yaml: 1.10.2
dev: true
/postcss-load-config@4.0.2(postcss@8.4.33):
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
engines: {node: '>= 14'}
peerDependencies:
postcss: '>=8.0.9'
ts-node: '>=9.0.0'
peerDependenciesMeta:
postcss:
optional: true
ts-node:
optional: true
dependencies:
lilconfig: 3.0.0
postcss: 8.4.33
yaml: 2.3.4
dev: true
/postcss-nested@6.0.1(postcss@8.4.33):
resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
dependencies:
postcss: 8.4.33
postcss-selector-parser: 6.0.13
dev: true
/postcss-safe-parser@6.0.0(postcss@8.4.33):
resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.3.3
dependencies:
postcss: 8.4.33
dev: true
/postcss-scss@4.0.9(postcss@8.4.33):
resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.4.29
dependencies:
postcss: 8.4.33
dev: true
/postcss-selector-parser@6.0.10:
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
engines: {node: '>=4'}
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
dev: true
/postcss-selector-parser@6.0.13:
resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
engines: {node: '>=4'}
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
dev: true
/postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
dev: true
/postcss@8.4.33:
resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
picocolors: 1.0.0
source-map-js: 1.0.2
dev: true
/prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
dev: true
/prettier-plugin-svelte@3.1.2(prettier@3.2.4)(svelte@4.2.9):
resolution: {integrity: sha512-7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==}
peerDependencies:
prettier: ^3.0.0
svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0
dependencies:
prettier: 3.2.4
svelte: 4.2.9
dev: true
/prettier-plugin-tailwindcss@0.5.11(prettier-plugin-svelte@3.1.2)(prettier@3.2.4):
resolution: {integrity: sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==}
engines: {node: '>=14.21.3'}
peerDependencies:
'@ianvs/prettier-plugin-sort-imports': '*'
'@prettier/plugin-pug': '*'
'@shopify/prettier-plugin-liquid': '*'
'@trivago/prettier-plugin-sort-imports': '*'
prettier: ^3.0
prettier-plugin-astro: '*'
prettier-plugin-css-order: '*'
prettier-plugin-import-sort: '*'
prettier-plugin-jsdoc: '*'
prettier-plugin-marko: '*'
prettier-plugin-organize-attributes: '*'
prettier-plugin-organize-imports: '*'
prettier-plugin-style-order: '*'
prettier-plugin-svelte: '*'
prettier-plugin-twig-melody: '*'
peerDependenciesMeta:
'@ianvs/prettier-plugin-sort-imports':
optional: true
'@prettier/plugin-pug':
optional: true
'@shopify/prettier-plugin-liquid':
optional: true
'@trivago/prettier-plugin-sort-imports':
optional: true
prettier-plugin-astro:
optional: true
prettier-plugin-css-order:
optional: true
prettier-plugin-import-sort:
optional: true
prettier-plugin-jsdoc:
optional: true
prettier-plugin-marko:
optional: true
prettier-plugin-organize-attributes:
optional: true
prettier-plugin-organize-imports:
optional: true
prettier-plugin-style-order:
optional: true
prettier-plugin-svelte:
optional: true
prettier-plugin-twig-melody:
optional: true
dependencies:
prettier: 3.2.4
prettier-plugin-svelte: 3.1.2(prettier@3.2.4)(svelte@4.2.9)
dev: true
/prettier@3.2.4:
resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
engines: {node: '>=14'}
hasBin: true
dev: true
/pretty-format@29.7.0:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/schemas': 29.6.3
ansi-styles: 5.2.0
react-is: 18.2.0
dev: true
/prism-svelte@0.4.7:
resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==}
dev: true
/prismjs@1.29.0:
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
engines: {node: '>=6'}
dev: true
/process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
dev: false
/punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
dev: true
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true
/react-is@18.2.0:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
dev: true
/read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
dependencies:
pify: 2.3.0
dev: true
/readable-stream@2.3.8:
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
dependencies:
core-util-is: 1.0.3
inherits: 2.0.4
isarray: 1.0.0
process-nextick-args: 2.0.1
safe-buffer: 5.1.2
string_decoder: 1.1.1
util-deprecate: 1.0.2
dev: false
/readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
dependencies:
picomatch: 2.3.1
dev: true
/regenerator-runtime@0.14.0:
resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
/require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
dev: true
/resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
dev: true
/resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
dependencies:
is-core-module: 2.13.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: true
/reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
dev: true
/rimraf@2.7.1:
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
hasBin: true
dependencies:
glob: 7.2.3
dev: true
/rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
dependencies:
glob: 7.2.3
dev: true
/rollup@4.8.0:
resolution: {integrity: sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.8.0
'@rollup/rollup-android-arm64': 4.8.0
'@rollup/rollup-darwin-arm64': 4.8.0
'@rollup/rollup-darwin-x64': 4.8.0
'@rollup/rollup-linux-arm-gnueabihf': 4.8.0
'@rollup/rollup-linux-arm64-gnu': 4.8.0
'@rollup/rollup-linux-arm64-musl': 4.8.0
'@rollup/rollup-linux-riscv64-gnu': 4.8.0
'@rollup/rollup-linux-x64-gnu': 4.8.0
'@rollup/rollup-linux-x64-musl': 4.8.0
'@rollup/rollup-win32-arm64-msvc': 4.8.0
'@rollup/rollup-win32-ia32-msvc': 4.8.0
'@rollup/rollup-win32-x64-msvc': 4.8.0
fsevents: 2.3.3
dev: true
/run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
dev: true
/rxjs@7.8.1:
resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
dependencies:
tslib: 2.6.2
dev: true
/sade@1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
engines: {node: '>=6'}
dependencies:
mri: 1.2.0
dev: true
/safe-buffer@5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
dev: false
/sander@0.5.1:
resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
dependencies:
es6-promise: 3.3.1
graceful-fs: 4.2.11
mkdirp: 0.5.6
rimraf: 2.7.1
dev: true
/semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: true
/set-cookie-parser@2.6.0:
resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
dev: true
/setimmediate@1.0.5:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
dev: false
/shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
dependencies:
shebang-regex: 3.0.0
dev: true
/shebang-regex@3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
dev: true
/shell-quote@1.8.1:
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
dev: true
/shiki@0.14.7:
resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==}
dependencies:
ansi-sequence-parser: 1.1.1
jsonc-parser: 3.2.0
vscode-oniguruma: 1.7.0
vscode-textmate: 8.0.0
dev: false
/siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
dev: true
/signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
dev: true
/sirv@2.0.4:
resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
engines: {node: '>= 10'}
dependencies:
'@polka/url': 1.0.0-next.24
mrmime: 2.0.0
totalist: 3.0.1
dev: true
/slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
dev: true
/sorcery@0.11.0:
resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==}
hasBin: true
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
buffer-crc32: 0.2.13
minimist: 1.2.8
sander: 0.5.1
dev: true
/source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
/spawn-command@0.0.2:
resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==}
dev: true
/stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
dev: true
/std-env@3.6.0:
resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==}
dev: true
/string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
dependencies:
emoji-regex: 8.0.0
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
dev: true
/string_decoder@1.1.1:
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
dependencies:
safe-buffer: 5.1.2
dev: false
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
dependencies:
ansi-regex: 5.0.1
dev: true
/strip-final-newline@3.0.0:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'}
dev: true
/strip-indent@3.0.0:
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
engines: {node: '>=8'}
dependencies:
min-indent: 1.0.1
dev: true
/strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
dev: true
/strip-literal@1.3.0:
resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
dependencies:
acorn: 8.11.2
dev: true
/sucrase@3.34.0:
resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
engines: {node: '>=8'}
hasBin: true
dependencies:
'@jridgewell/gen-mapping': 0.3.3
commander: 4.1.1
glob: 7.1.6
lines-and-columns: 1.2.4
mz: 2.7.0
pirates: 4.0.6
ts-interface-checker: 0.1.13
dev: true
/supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
dependencies:
has-flag: 4.0.0
dev: true
/supports-color@8.1.1:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: '>=10'}
dependencies:
has-flag: 4.0.0
dev: true
/supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
dev: true
/svelte-check@3.6.3(postcss@8.4.33)(svelte@4.2.9):
resolution: {integrity: sha512-Q2nGnoysxUnB9KjnjpQLZwdjK62DHyW6nuH/gm2qteFnDk0lCehe/6z8TsIvYeKjC6luKaWxiNGyOcWiLLPSwA==}
hasBin: true
peerDependencies:
svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0
dependencies:
'@jridgewell/trace-mapping': 0.3.20
chokidar: 3.5.3
fast-glob: 3.3.2
import-fresh: 3.3.0
picocolors: 1.0.0
sade: 1.8.1
svelte: 4.2.9
svelte-preprocess: 5.1.1(postcss@8.4.33)(svelte@4.2.9)(typescript@5.3.3)
typescript: 5.3.3
transitivePeerDependencies:
- '@babel/core'
- coffeescript
- less
- postcss
- postcss-load-config
- pug
- sass
- stylus
- sugarss
dev: true
/svelte-eslint-parser@0.33.1(svelte@4.2.9):
resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
svelte: ^3.37.0 || ^4.0.0
peerDependenciesMeta:
svelte:
optional: true
dependencies:
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
postcss: 8.4.33
postcss-scss: 4.0.9(postcss@8.4.33)
svelte: 4.2.9
dev: true
/svelte-hmr@0.15.3(svelte@4.2.9):
resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==}
engines: {node: ^12.20 || ^14.13.1 || >= 16}
peerDependencies:
svelte: ^3.19.0 || ^4.0.0
dependencies:
svelte: 4.2.9
dev: true
/svelte-preprocess@5.1.1(postcss@8.4.33)(svelte@4.2.9)(typescript@5.3.3):
resolution: {integrity: sha512-p/Dp4hmrBW5mrCCq29lEMFpIJT2FZsRlouxEc5qpbOmXRbaFs7clLs8oKPwD3xCFyZfv1bIhvOzpQkhMEVQdMw==}
engines: {node: '>= 14.10.0'}
requiresBuild: true
peerDependencies:
'@babel/core': ^7.10.2
coffeescript: ^2.5.1
less: ^3.11.3 || ^4.0.0
postcss: ^7 || ^8
postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0
pug: ^3.0.0
sass: ^1.26.8
stylus: ^0.55.0
sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0
svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0
typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0'
peerDependenciesMeta:
'@babel/core':
optional: true
coffeescript:
optional: true
less:
optional: true
postcss:
optional: true
postcss-load-config:
optional: true
pug:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
typescript:
optional: true
dependencies:
'@types/pug': 2.0.10
detect-indent: 6.1.0
magic-string: 0.27.0
postcss: 8.4.33
sorcery: 0.11.0
strip-indent: 3.0.0
svelte: 4.2.9
typescript: 5.3.3
dev: true
/svelte-sonner@0.3.6(svelte@4.2.9):
resolution: {integrity: sha512-MwVhh4nxCqTBLHYamRw+q9erZC2Y4wuL8mUa7phgq/9kq9VdTr+/6S1PX1CnALJPy2rkc7TlIECYTJavUkoWlg==}
peerDependencies:
svelte: '>=3 <5'
dependencies:
svelte: 4.2.9
dev: false
/svelte@4.2.9:
resolution: {integrity: sha512-hsoB/WZGEPFXeRRLPhPrbRz67PhP6sqYgvwcAs+gWdSQSvNDw+/lTeUJSWe5h2xC97Fz/8QxAOqItwBzNJPU8w==}
engines: {node: '>=16'}
dependencies:
'@ampproject/remapping': 2.2.1
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.20
'@types/estree': 1.0.5
acorn: 8.11.2
aria-query: 5.3.0
axobject-query: 4.0.0
code-red: 1.0.4
css-tree: 2.3.1
estree-walker: 3.0.3
is-reference: 3.0.2
locate-character: 3.0.0
magic-string: 0.30.5
periscopic: 3.1.0
/tabbable@6.2.0:
resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
dev: false
/tailwind-merge@2.2.1:
resolution: {integrity: sha512-o+2GTLkthfa5YUt4JxPfzMIpQzZ3adD1vLVkvKE1Twl9UAhGsEbIZhHHZVRttyW177S8PDJI3bTQNaebyofK3Q==}
dependencies:
'@babel/runtime': 7.23.8
dev: false
/tailwindcss@3.4.1:
resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
chokidar: 3.5.3
didyoumean: 1.2.2
dlv: 1.1.3
fast-glob: 3.3.2
glob-parent: 6.0.2
is-glob: 4.0.3
jiti: 1.21.0
lilconfig: 2.1.0
micromatch: 4.0.5
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.0
postcss: 8.4.33
postcss-import: 15.1.0(postcss@8.4.33)
postcss-js: 4.0.1(postcss@8.4.33)
postcss-load-config: 4.0.2(postcss@8.4.33)
postcss-nested: 6.0.1(postcss@8.4.33)
postcss-selector-parser: 6.0.13
resolve: 1.22.8
sucrase: 3.34.0
transitivePeerDependencies:
- ts-node
dev: true
/text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
/thenify-all@1.6.0:
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
engines: {node: '>=0.8'}
dependencies:
thenify: 3.3.1
dev: true
/thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
dependencies:
any-promise: 1.3.0
dev: true
/tiny-glob@0.2.9:
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
dependencies:
globalyzer: 0.1.0
globrex: 0.1.2
dev: true
/tinybench@2.5.1:
resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==}
dev: true
/tinypool@0.8.1:
resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==}
engines: {node: '>=14.0.0'}
dev: true
/tinyspy@2.2.0:
resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==}
engines: {node: '>=14.0.0'}
dev: true
/to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
dev: true
/totalist@3.0.1:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
dev: true
/tree-kill@1.2.2:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
dev: true
/ts-api-utils@1.0.3(typescript@5.3.3):
resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
engines: {node: '>=16.13.0'}
peerDependencies:
typescript: '>=4.2.0'
dependencies:
typescript: 5.3.3
dev: true
/ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
dev: true
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
/type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
dependencies:
prelude-ls: 1.2.1
dev: true
/type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
dev: true
/type-fest@0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
dev: true
/typescript@5.3.3:
resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
engines: {node: '>=14.17'}
hasBin: true
dev: true
/ufo@1.3.2:
resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
dev: true
/unist-util-stringify-position@2.0.3:
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
dependencies:
'@types/unist': 2.0.10
dev: true
/update-browserslist-db@1.0.13(browserslist@4.22.2):
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
browserslist: 4.22.2
escalade: 3.1.1
picocolors: 1.0.0
dev: true
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.3.1
dev: true
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
/vfile-message@2.0.4:
resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==}
dependencies:
'@types/unist': 2.0.10
unist-util-stringify-position: 2.0.3
dev: true
/vite-node@1.2.1:
resolution: {integrity: sha512-fNzHmQUSOY+y30naohBvSW7pPn/xn3Ib/uqm+5wAJQJiqQsU0NBR78XdRJb04l4bOFKjpTWld0XAfkKlrDbySg==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
dependencies:
cac: 6.7.14
debug: 4.3.4
pathe: 1.1.1
picocolors: 1.0.0
vite: 5.0.12
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/vite@5.0.12:
resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || >=20.0.0
less: '*'
lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
dependencies:
esbuild: 0.19.12
postcss: 8.4.33
rollup: 4.8.0
optionalDependencies:
fsevents: 2.3.3
dev: true
/vitefu@0.2.5(vite@5.0.12):
resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
peerDependencies:
vite: ^3.0.0 || ^4.0.0 || ^5.0.0
peerDependenciesMeta:
vite:
optional: true
dependencies:
vite: 5.0.12
dev: true
/vitest@1.2.1:
resolution: {integrity: sha512-TRph8N8rnSDa5M2wKWJCMnztCZS9cDcgVTQ6tsTFTG/odHJ4l5yNVqvbeDJYJRZ6is3uxaEpFs8LL6QM+YFSdA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/node': ^18.0.0 || >=20.0.0
'@vitest/browser': ^1.0.0
'@vitest/ui': ^1.0.0
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
'@edge-runtime/vm':
optional: true
'@types/node':
optional: true
'@vitest/browser':
optional: true
'@vitest/ui':
optional: true
happy-dom:
optional: true
jsdom:
optional: true
dependencies:
'@vitest/expect': 1.2.1
'@vitest/runner': 1.2.1
'@vitest/snapshot': 1.2.1
'@vitest/spy': 1.2.1
'@vitest/utils': 1.2.1
acorn-walk: 8.3.2
cac: 6.7.14
chai: 4.3.10
debug: 4.3.4
execa: 8.0.1
local-pkg: 0.5.0
magic-string: 0.30.5
pathe: 1.1.1
picocolors: 1.0.0
std-env: 3.6.0
strip-literal: 1.3.0
tinybench: 2.5.1
tinypool: 0.8.1
vite: 5.0.12
vite-node: 1.2.1
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
- lightningcss
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/vscode-oniguruma@1.7.0:
resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
dev: false
/vscode-textmate@8.0.0:
resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==}
dev: false
/which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
dependencies:
isexe: 2.0.0
dev: true
/why-is-node-running@2.2.2:
resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
engines: {node: '>=8'}
hasBin: true
dependencies:
siginfo: 2.0.0
stackback: 0.0.2
dev: true
/wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
dev: true
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
/y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
dev: true
/yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
dev: true
/yaml@1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
dev: true
/yaml@2.3.4:
resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
engines: {node: '>= 14'}
dev: true
/yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
dev: true
/yargs@17.7.2:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
dependencies:
cliui: 8.0.1
escalade: 3.1.1
get-caller-file: 2.0.5
require-directory: 2.1.1
string-width: 4.2.3
y18n: 5.0.8
yargs-parser: 21.1.1
dev: true
/yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
dev: true
/yocto-queue@1.0.0:
resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
engines: {node: '>=12.20'}
dev: true
+64 -21
View File
@@ -2,30 +2,73 @@
@tailwind components;
@tailwind utilities;
@layer base {
:root {
--sb-track-color: rgb(229 229 229 / 0.5);
--sb-thumb-color: #d4d4d4;
--sb-size: 10px;
}
.dark {
--sb-track-color: #171717;
--sb-thumb-color: #404040;
--sb-size: 10px;
}
}
@layer base {
body,
nav {
scrollbar-color: var(--sb-thumb-color) transparent;
}
body::-webkit-scrollbar {
width: var(--sb-size);
}
body::-webkit-scrollbar-track {
background: var(--sb-track-color);
}
body::-webkit-scrollbar-thumb {
background: var(--sb-thumb-color);
}
aside::-webkit-scrollbar {
width: var(--sb-size);
}
aside::-webkit-scrollbar-track {
background: var(--sb-track-color);
}
aside::-webkit-scrollbar-thumb {
background: var(--sb-thumb-color);
}
nav::-webkit-scrollbar {
width: var(--sb-size);
}
nav::-webkit-scrollbar-track {
background: var(--sb-track-color);
}
nav::-webkit-scrollbar-thumb {
background: var(--sb-thumb-color);
}
}
@font-face {
font-family: 'General-Sans';
src: url('/fonts/GeneralSans-Variable.woff2') format('woff2');
font-weight: 200 700;
font-family: 'InterVariable';
src: url('/fonts/InterVariable.woff2') format('woff2');
font-weight: 100 900;
font-display: swap;
font-style: normal;
}
body {
--sb-track-color: #171717;
--sb-thumb-color: #404040;
--sb-size: 10px;
scrollbar-color: var(--sb-thumb-color) var(--sb-track-color);
}
body::-webkit-scrollbar {
width: var(--sb-size);
}
body::-webkit-scrollbar-track {
background: var(--sb-track-color);
}
body::-webkit-scrollbar-thumb {
background: var(--sb-thumb-color);
@font-face {
font-family: 'GeistMono';
src: url('/fonts/GeistMonoVariableVF.woff2') format('woff2');
font-display: swap;
}
+13 -2
View File
@@ -1,10 +1,11 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<meta name="robots" content="index, follow" />
<meta name="author" content="@pheralb_" />
<meta name="description" content="A beautiful library with SVG logos" />
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="%sveltekit.assets%/images/logo.svg" />
@@ -23,11 +24,21 @@
<meta name="twitter:creator" content="@pheralb_" />
<meta name="twitter:image" content="https://svgl.vercel.app/images/screenshot.png" />
<!-- Analytics -->
<script
async
src="https://umami.pheralb.dev/script.js"
data-website-id="50de464e-cf2c-4b76-b5e8-21c9259bc7be"
></script>
<!-- Title -->
<title>A beautiful library with SVG logos - Svgl</title>
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<body
data-sveltekit-preload-data="hover"
class="min-h-screen bg-white font-sans text-mini dark:bg-dark dark:text-white antialiased selection:bg-neutral-200 dark:selection:bg-neutral-700"
>
<div>%sveltekit.body%</div>
</body>
</html>
+55
View File
@@ -0,0 +1,55 @@
<script lang="ts">
let domElement: HTMLElement;
let focused = false;
let position = { x: 0, y: 0 };
let opacity = 0;
const handleMouseMove = (e: MouseEvent) => {
if (!domElement || focused) return;
const rect = domElement.getBoundingClientRect();
position = {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
};
const handleFocus = () => {
focused = true;
opacity = 1;
};
const handleBlur = () => {
focused = false;
opacity = 0;
};
const handleMouseEnter = () => {
opacity = 1;
};
const handleMouseLeave = () => {
opacity = 0;
};
</script>
<!--Se quito el aria-hidden="true" para que se pueda leer el contenido del card con el lector de pantalla -->
<article
bind:this={domElement}
on:mousemove={handleMouseMove}
on:focus={handleFocus}
on:blur={handleBlur}
on:mouseenter={handleMouseEnter}
on:mouseleave={handleMouseLeave}
class="relative flex items-center justify-center overflow-hidden rounded-md border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900"
>
<div
class="pointer-events-none absolute transform-gpu -inset-px opacity-0 transition duration-300"
style={`
opacity: ${opacity};
background: radial-gradient(600px circle at ${position.x}px ${position.y}px, rgba(97, 97, 97, 0.1), transparent 40%);
`}
/>
<slot />
</article>
+248
View File
@@ -0,0 +1,248 @@
<script lang="ts">
import type { iSVG } from '@/types/svg';
import JSZip from 'jszip';
import download from 'downloadjs';
import { toast } from 'svelte-sonner';
import { DownloadIcon } from 'lucide-svelte';
import { getSvgContent } from '@/utils/getSvgContent';
import {
Dialog,
DialogTrigger,
DialogContent,
DialogHeader,
DialogTitle,
DialogDescription
} from '@/ui/dialog';
import { buttonStyles } from '@/ui/styles';
import { cn } from '@/utils/cn';
// Props:
export let svgInfo: iSVG;
export let isDarkTheme: () => boolean;
// Shared:
let iconStroke = 1.8;
let iconSize = 16;
let mainDownloadStyles =
'flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40';
let cardDownloadStyles =
'flex w-full flex-col p-4 rounded-md shadow-sm dark:bg-neutral-800/20 bg-neutral-200/10 border border-neutral-200 dark:border-neutral-800 space-y-2';
// Functions:
const downloadSvg = (url?: string) => {
download(url || '');
const category = Array.isArray(svgInfo.category)
? svgInfo.category.sort().join(' - ')
: svgInfo.category;
toast.success(`Downloading...`, {
description: `${svgInfo.title} - ${category}`
});
};
// Download all variants:
const downloadAllVariants = async ({
lightRoute,
darkRoute,
isWordmark
}: {
lightRoute: string;
darkRoute: string;
isWordmark?: boolean;
}) => {
const zip = new JSZip();
const lightSvg = await getSvgContent(lightRoute, false);
const darkSvg = await getSvgContent(darkRoute, false);
if (isWordmark) {
zip.file(`${svgInfo.title}_wordmark_light.svg`, lightSvg);
zip.file(`${svgInfo.title}_wordmark_dark.svg`, darkSvg);
} else {
zip.file(`${svgInfo.title}_light.svg`, lightSvg);
zip.file(`${svgInfo.title}_dark.svg`, darkSvg);
}
zip.generateAsync({ type: 'blob' }).then((content) => {
download(
content,
isWordmark ? `${svgInfo.title}_wordmark_light_dark.zip` : `${svgInfo.title}_light_dark.zip`,
'application/zip'
);
});
const category = Array.isArray(svgInfo.category)
? svgInfo.category.sort().join(' - ')
: svgInfo.category;
toast.success('Downloading light & dark variants...', {
description: isWordmark
? `${svgInfo.title} - Wordmark - ${category}`
: `${svgInfo.title} - ${category}`
});
};
</script>
{#if typeof svgInfo.route === 'string'}
<button
title="Download Light & Dark variants"
class={mainDownloadStyles}
on:click={() => {
if (typeof svgInfo.route === 'string') {
downloadSvg(svgInfo.route);
return;
}
}}
>
<DownloadIcon size={iconSize} strokeWidth={iconStroke} />
</button>
{:else}
<Dialog>
<DialogTrigger title="Download SVG" class={mainDownloadStyles}>
<DownloadIcon size={iconSize} strokeWidth={iconStroke} />
</DialogTrigger>
<DialogContent class="max-w-[630px]">
<DialogHeader>
<DialogTitle>Download {svgInfo.title}</DialogTitle>
<DialogDescription>This logo has multiple options to download.</DialogDescription>
</DialogHeader>
<div
class={cn(
'flex flex-col space-y-2 mt-4 h-full',
'md:space-y-0 md:flex-row md:space-x-2 md:items-center md:justify-center'
)}
>
<div class={cardDownloadStyles}>
<img
src={isDarkTheme() ? svgInfo.route.dark : svgInfo.route.light}
alt={svgInfo.title}
class="h-10 my-4"
/>
<button
title="Logo with light & dark variants"
class={buttonStyles}
on:click={() => {
if (typeof svgInfo.route !== 'string') {
downloadAllVariants({
lightRoute: svgInfo.route.light,
darkRoute: svgInfo.route.dark
});
}
}}
>
<DownloadIcon size={iconSize} />
<p>Light & dark variants</p>
</button>
<button
title="Download light variant"
class={buttonStyles}
on:click={() => {
if (typeof svgInfo.route !== 'string') {
downloadSvg(svgInfo.route.light);
return;
}
}}
>
<DownloadIcon class="mr-2" size={iconSize} />
Only light variant
</button>
<button
title="Download dark variant"
class={buttonStyles}
on:click={() => {
if (typeof svgInfo.route !== 'string') {
downloadSvg(svgInfo.route.dark);
return;
}
}}
>
<DownloadIcon class="mr-2" size={iconSize} />
Only dark variant
</button>
</div>
{#if typeof svgInfo.wordmark === 'string' && svgInfo.wordmark !== undefined}
<div class={cardDownloadStyles}>
<img
src={isDarkTheme() ? svgInfo.wordmark : svgInfo.wordmark}
alt={svgInfo.title}
class="h-8 my-4"
/>
<button
title="Download Wordmark logo"
class={buttonStyles}
on:click={() => {
if (typeof svgInfo.wordmark === 'string') {
downloadSvg(svgInfo.wordmark);
return;
}
}}
>
<DownloadIcon class="mr-2" size={iconSize} />
<p>Wordmark logo</p>
</button>
</div>
{/if}
{#if typeof svgInfo.wordmark !== 'string' && svgInfo.wordmark !== undefined}
<div class={cardDownloadStyles}>
<img
src={isDarkTheme() ? svgInfo.wordmark.dark : svgInfo.wordmark.light}
alt={svgInfo.title}
class="h-10 my-4"
/>
<button
title="Download Wordmark light variant"
class={buttonStyles}
on:click={() => {
if (typeof svgInfo.wordmark !== 'string') {
downloadAllVariants({
lightRoute: svgInfo.wordmark?.light || '',
darkRoute: svgInfo.wordmark?.dark || '',
isWordmark: true
});
return;
}
}}
>
<DownloadIcon class="mr-2" size={iconSize} />
Light & dark variants
</button>
<button
title="Download Wordmark light variant"
class={buttonStyles}
on:click={() => {
if (typeof svgInfo.wordmark !== 'string') {
downloadSvg(svgInfo.wordmark?.light);
return;
}
}}
>
<DownloadIcon class="mr-2" size={iconSize} />
Wordmark light variant
</button>
<button
title="Download Wordmark dark variant"
class={buttonStyles}
on:click={() => {
if (typeof svgInfo.wordmark !== 'string') {
downloadSvg(svgInfo.wordmark?.dark);
return;
}
}}
>
<DownloadIcon class="mr-2" size={iconSize} />
Wordmark dark variant
</button>
</div>
{/if}
</div>
</DialogContent>
</Dialog>
{/if}
+34
View File
@@ -0,0 +1,34 @@
<script lang="ts">
import { cn } from '@/utils/cn';
type methodType = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
export let method: methodType;
export let title: string;
export let description: string;
</script>
<div class={cn('border-2 border-neutral-100 dark:border-neutral-800 rounded-lg', 'p-4 mb-2')}>
<div class="flex items-center space-x-4 mb-4">
<p
class={cn(
'm-0 rounded-md font-medium px-1.5 py-0.5 text-sm leading-5 select-none',
method === 'GET' &&
' text-green-600 dark:text-green-500 bg-green-400/20 dark:bg-green-400/20',
method === 'POST' && ' text-blue-600 dark:text-blue-500 bg-blue-400/20 dark:bg-blue-400/20',
method === 'PUT' &&
' text-yellow-600 dark:text-yellow-500 bg-yellow-400/20 dark:bg-yellow-400/20',
method === 'PATCH' &&
' text-yellow-600 dark:text-yellow-500 bg-yellow-400/20 dark:bg-yellow-400/20',
method === 'DELETE' && ' text-red-600 dark:text-red-500 bg-red-400/20 dark:bg-red-400/20'
)}
>
{method}
</p>
<div class="flex flex-col space-y-0 m-0">
<h3 class="m-0 font-medium">{title}</h3>
<p class="mb-0 font-mono text-sm">{description}</p>
</div>
</div>
<slot />
</div>
+15
View File
@@ -0,0 +1,15 @@
<script lang="ts">
export let iconSize: number;
</script>
<svg
width={iconSize || 16}
height={iconSize || 16}
fill="none"
xmlns="http://www.w3.org/2000/svg"
preserveAspectRatio="xMidYMid"
><path
d="M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z"
fill="#121212"
/>
</svg>
+60
View File
@@ -0,0 +1,60 @@
<svg
width="30"
name="SVGL Logo"
viewBox="0 0 512 512"
fill="none"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
class=""
><rect
id="r4"
width="512"
height="512"
x="0"
y="0"
rx="128"
fill="#222"
stroke="#FFFFFF"
stroke-width="0"
stroke-opacity="100%"
paint-order="stroke"
></rect><rect
width="512"
height="512"
x="0"
y="0"
fill="url(#r6)"
rx="128"
style="mix-blend-mode: overlay;"
></rect><clipPath id="clip"><use xlink:href="#r4"></use></clipPath><defs
><linearGradient
id="r5"
gradientUnits="userSpaceOnUse"
gradientTransform="rotate(135)"
style="transform-origin: center center;"
><stop stop-color="#222"></stop><stop offset="1" stop-color="#222222"></stop></linearGradient
><radialGradient
id="r6"
cx="0"
cy="0"
r="1"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(256) rotate(90) scale(512)"
><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"
></stop></radialGradient
></defs
><svg
xmlns="http://www.w3.org/2000/svg"
width="310"
height="310"
fill="#e8e8e8"
viewBox="0 0 256 256"
x="101"
y="101"
alignment-baseline="middle"
style="color: rgb(255, 255, 255);"
><path
d="M168,32H88A56.06,56.06,0,0,0,32,88v80a56.06,56.06,0,0,0,56,56h48a8.07,8.07,0,0,0,2.53-.41c26.23-8.75,76.31-58.83,85.06-85.06A8.07,8.07,0,0,0,224,136V88A56.06,56.06,0,0,0,168,32ZM48,168V88A40,40,0,0,1,88,48h80a40,40,0,0,1,40,40v40H184a56.06,56.06,0,0,0-56,56v24H88A40,40,0,0,1,48,168Zm96,35.14V184a40,40,0,0,1,40-40h19.14C191,163.5,163.5,191,144,203.14Z"
></path></svg
></svg
>

After

Width:  |  Height:  |  Size: 1.7 KiB

+124
View File
@@ -0,0 +1,124 @@
<script lang="ts">
export let currentPath: string;
import { cn } from '@/utils/cn';
import Logo from './logo.svelte';
import Theme from './theme.svelte';
import { ArrowUpRight, CloudyIcon, GithubIcon } from 'lucide-svelte';
import XIcon from './xIcon.svelte';
// Se le pusieron aria-labels a los links
const socials = [
{
name: 'GitHub',
url: 'https://github.com/pheralb/svgl',
icon: GithubIcon
}
];
const externalLinks = [
{
name: 'API',
url: '/api',
icon: CloudyIcon,
external: false,
label: "Go to the SVGL's API section"
},
{
name: 'Extensions',
url: 'https://github.com/pheralb/svgl?tab=readme-ov-file#-extensions',
icon: ArrowUpRight,
external: true,
label: "Go to the SVGL's extensions section"
},
{
name: 'Submit logo',
url: 'https://github.com/pheralb/svgl#-getting-started',
icon: ArrowUpRight,
external: true,
label: "Submit logo and go to the SVGL's getting started section"
}
];
</script>
<nav
class={cn(
'dark:bg-neutral-900 bg-white',
'w-full px-5 py-4 border-b border-neutral-200 dark:border-neutral-800',
'sticky top-0 z-50',
'backdrop-blur-md opacity-95'
)}
>
<!-- Se le puso un aria-label al href="/" -->
<div class="flex items-center justify-between mx-auto">
<div class="flex items-center space-x-2">
<a href="/" aria-label="Go to the SVGL v4.1 home page">
<div class="flex items-center space-x-2 opacity-80 hover:opacity-100 transition-opacity">
<svelte:component this={Logo} />
<span class="text-[19px] font-medium tracking-wide hidden md:block">svgl</span>
<p class="text-neutral-400 hidden md:block font-mono">v4.1</p>
</div>
</a>
</div>
<div class="flex items-center space-x-0 md:space-x-7">
<div
class="flex items-center md:space-x-4 divide-x divide-neutral-300 dark:divide-neutral-700"
>
{#each externalLinks as link}
<a
href={link.url}
target={link.external ? '_blank' : ''}
aria-label={link.label ?? link.name}
class={cn(
'flex items-center opacity-80 hover:opacity-100 transition-opacity text-[15px] pl-2 md:pl-3 group',
currentPath === link.url &&
'underline underline-offset-8 decoration-dotted decoration-neutral-500'
)}
>
{#if !link.external}
<svelte:component
this={link.icon}
size={16}
strokeWidth={1.5}
class="mr-2"
name={link.name}
/>
{/if}
<span class={cn('hidden md:block', !link.external && 'block')}>{link.name}</span>
{#if link.external}
<svelte:component
this={link.icon}
size={16}
name="External link"
strokeWidth={1.5}
class="ml-1 transition-transform duration-300 group-hover:-translate-y-[1px] group-hover:translate-x-[1px] hidden md:block"
/>
{/if}
</a>
{/each}
</div>
<div class="flex items-center space-x-4">
<a
href="https://twitter.com/pheralb_"
target="_blank"
class="flex items-center space-x-1 opacity-80 hover:opacity-100 transition-opacity"
title="Twitter"
>
<XIcon iconSize={16} />
</a>
{#each socials as social}
<a
href={social.url}
target="_blank"
class="flex items-center space-x-1 opacity-80 hover:opacity-100 transition-opacity"
title={social.name}
>
<svelte:component this={social.icon} size={20} strokeWidth={1.5} name={social.name} />
</a>
{/each}
<Theme />
</div>
</div>
</div>
</nav>
+29
View File
@@ -0,0 +1,29 @@
<script lang="ts">
import { buttonStyles } from '@/ui/styles';
export let notFoundTerm: string;
import { PackageOpen, ArrowUpRight } from 'lucide-svelte';
</script>
<div class="mt-6 flex w-full flex-col items-center justify-center text-gray-600 dark:text-gray-400">
<PackageOpen size={40} class="mb-4" />
<p class="text-xl mb-1 font-medium">Couldn't find the Icon</p>
<p class="text-md mb-4 font-mono">"{notFoundTerm}"</p>
<div class="flex items-center space-x-1">
<a
href="https://github.com/pheralb/svgl?tab=readme-ov-file#-getting-started"
target="_blank"
class={buttonStyles}
>
<span>Submit logo</span>
<ArrowUpRight size={16} />
</a>
<a
href="https://github.com/pheralb/svgl/issues/new?assignees=pheralb&labels=request&projects=&template=request-svg-.md&title=%5BRequest%5D%3A"
target="_blank"
class={buttonStyles}
>
<span>Request Icon</span>
<ArrowUpRight size={16} />
</a>
</div>
</div>
+57 -13
View File
@@ -1,21 +1,65 @@
<script lang="ts">
import { inputStyles } from '@/ui/styles';
import { Command, SearchIcon } from 'lucide-svelte';
export let searchTerm: string;
export let placeholder: string = 'Search...';
import MagnifyingGlass from 'phosphor-svelte/lib/MagnifyingGlass';
export let clearSearch: () => void;
import { X } from 'lucide-svelte';
let inputElement;
function focusInput(node: HTMLElement) {
const handleKeydown = (event: KeyboardEvent) => {
if ((event.metaKey || event.ctrlKey) && event.key === 'k') {
event.preventDefault();
node.focus();
}
};
window.addEventListener('keydown', handleKeydown);
return {
destroy() {
window.removeEventListener('keydown', handleKeydown);
}
};
}
</script>
<div class="relative w-full">
<div class="absolute inset-y-0 left-0 flex items-center pl-3 text-neutral-500">
<div class="pointer-events-none">
<MagnifyingGlass size={18} weight={searchTerm ? 'duotone' : 'regular'} />
<div class="sticky top-[63px] z-50">
<div class="relative w-full text-[16px]">
<div class="absolute inset-y-0 left-0 flex items-center pl-3 text-neutral-500">
<div class="pointer-events-none">
<SearchIcon size={20} strokeWidth={searchTerm ? 2.5 : 1.5} />
</div>
</div>
<input
type="text"
{placeholder}
autocomplete="off"
class={inputStyles}
bind:value={searchTerm}
on:input
use:focusInput
bind:this={inputElement}
/>
{#if searchTerm.length > 0}
<div class="absolute inset-y-0 right-0 flex items-center pr-3">
<button
type="button"
class="focus:outline-none focus:ring-1 focus:ring-neutral-300"
on:click={clearSearch}
>
<X size={18} />
</button>
</div>
{:else}
<div class="absolute inset-y-0 right-0 flex items-center pr-4 text-neutral-500">
<div class="flex h-full items-center pointer-events-none gap-x-1 font-mono">
<Command size={16} />
<span>K</span>
</div>
</div>
{/if}
</div>
<input
type="text"
{placeholder}
autocomplete="off"
class="w-full rounded-md border border-neutral-300 bg-neutral-200/50 p-3 pl-10 placeholder-neutral-500 focus:outline-none focus:ring-1 focus:ring-neutral-300 dark:border-neutral-800 dark:bg-neutral-700/10 dark:focus:ring-neutral-700"
bind:value={searchTerm}
on:input
/>
</div>
+242 -56
View File
@@ -1,31 +1,47 @@
<script lang="ts">
import download from 'downloadjs';
import toast from 'svelte-french-toast';
import type { iSVG } from '../types/svg';
import { MIMETYPE, getSvgContent } from '../utils/getSvgContent';
import { toast } from 'svelte-sonner';
// Utils:
import { cn } from '@/utils/cn';
import { MIMETYPE, getSvgContent } from '@/utils/getSvgContent';
// Icons:
import DownloadSimple from 'phosphor-svelte/lib/DownloadSimple';
import ArrowUpRight from 'phosphor-svelte/lib/ArrowUpRight';
import Copy from 'phosphor-svelte/lib/Copy';
import { CopyIcon, LinkIcon, ChevronsRight, Baseline, Sparkles } from 'lucide-svelte';
// Components & styles:
import CardSpotlight from './cardSpotlight.svelte';
import DownloadSvg from './downloadSvg.svelte';
import { badgeStyles } from '@/ui/styles';
// Figma
import { onMount } from 'svelte';
import { copyToClipboard as figmaCopyToClipboard } from '@/figma/copy-to-clipboard';
import { insertSVG as figmaInsertSVG } from '@/figma/insert-svg';
// Props:
export let svgInfo: iSVG;
// Download SVG:
const downloadSvg = (url?: string) => {
download(url || '');
toast('Downloading', {
icon: '🎉',
style: 'border-radius: 200px; background: #333; color: #fff;'
});
};
let isInFigma = false;
onMount(() => {
const searchParams = new URLSearchParams(window.location.search);
isInFigma = searchParams.get('figma') === '1';
});
// Wordmark SVG:
let wordmarkSvg = false;
// Copy SVG to clipboard:
const copyToClipboard = async (url?: string) => {
const data = {
[MIMETYPE]: getSvgContent(url, true)
};
if (isInFigma) {
const content = (await getSvgContent(url, false)) as string;
figmaCopyToClipboard(content);
}
try {
const clipboardItem = new ClipboardItem(data);
await navigator.clipboard.write([clipboardItem]);
@@ -33,50 +49,220 @@
const content = (await getSvgContent(url, false)) as string;
await navigator.clipboard.writeText(content);
}
toast('Copied to clipboard', {
icon: '👏',
style: 'border-radius: 200px; background: #333; color: #fff;'
const category = Array.isArray(svgInfo.category)
? svgInfo.category.sort().join(' - ')
: svgInfo.category;
if (isInFigma) {
toast.success('Ready to paste in Figma!', {
description: `${svgInfo.title} - ${category}`
});
return;
}
if (wordmarkSvg) {
toast.success('Copied wordmark SVG to clipboard!', {
description: `${svgInfo.title} - ${category}`
});
return;
}
toast.success('Copied to clipboard!', {
description: `${svgInfo.title} - ${category}`
});
};
const insertSVG = async (url?: string) => {
const content = (await getSvgContent(url, false)) as string;
figmaInsertSVG(content);
};
// Icon Stroke & Size:
let iconStroke = 1.8;
let iconSize = 16;
</script>
<div
class="flex flex-col items-center justify-center rounded-md border border-neutral-300 bg-neutral-100 p-4 dark:border-neutral-800 dark:bg-neutral-700/10"
>
<img src={svgInfo.route} alt={svgInfo.title} class="mb-4 mt-2 h-10" />
<div class="mb-3 flex flex-col items-center justify-center">
<p class="truncate text-[15px] font-medium">{svgInfo.title}</p>
<a
href={`/directory/${svgInfo.category.toLowerCase()}`}
class="text-sm lowercase text-neutral-500 hover:underline">{svgInfo.category}</a
>
<CardSpotlight>
<div class="flex flex-col items-center justify-center rounded-md p-4">
<!-- Image -->
{#if wordmarkSvg == true}
<img
class="hidden dark:block mb-4 mt-2 h-10"
src={typeof svgInfo.wordmark !== 'string'
? svgInfo.wordmark?.dark || ''
: svgInfo.wordmark || ''}
alt={svgInfo.title}
title={svgInfo.title}
loading="lazy"
/>
<img
class="block dark:hidden mb-4 mt-2 h-10"
src={typeof svgInfo.wordmark !== 'string'
? svgInfo.wordmark?.light || ''
: svgInfo.wordmark || ''}
alt={svgInfo.title}
title={svgInfo.title}
loading="lazy"
/>
{:else}
<img
class={cn('hidden dark:block mb-4 mt-2 h-10')}
src={typeof svgInfo.route !== 'string' ? svgInfo.route.dark : svgInfo.route}
alt={svgInfo.title}
title={svgInfo.title}
loading="lazy"
/>
<img
class={cn('block dark:hidden mb-4 mt-2 h-10')}
src={typeof svgInfo.route !== 'string' ? svgInfo.route.light : svgInfo.route}
alt={svgInfo.title}
title={svgInfo.title}
loading="lazy"
/>
{/if}
<!-- Title -->
<div class="mb-3 flex flex-col space-y-1 items-center justify-center">
<p class="truncate text-[15px] font-medium text-balance text-center select-all">
{svgInfo.title}
</p>
<div class="flex items-center space-x-1 justify-center">
{#if Array.isArray(svgInfo.category)}
{#each svgInfo.category.sort() as c, index}
<a href={`/directory/${c.toLowerCase()}`} class={badgeStyles}>{c} </a>
{/each}
{:else}
<a href={`/directory/${svgInfo.category.toLowerCase()}`} class={badgeStyles}>
{svgInfo.category}
</a>
{/if}
</div>
</div>
<!-- Actions -->
<div class="flex items-center space-x-1">
{#if isInFigma}
<button
title="Insert to figma"
on:click={() => {
const svgHasTheme = typeof svgInfo.route !== 'string';
if (!svgHasTheme) {
insertSVG(
typeof svgInfo.route === 'string'
? svgInfo.route
: "Something went wrong. Couldn't copy the SVG."
);
return;
}
const dark = document.documentElement.classList.contains('dark');
insertSVG(
typeof svgInfo.route !== 'string'
? dark
? svgInfo.route.dark
: svgInfo.route.light
: svgInfo.route
);
}}
class="flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40"
>
<ChevronsRight size={iconSize} strokeWidth={iconStroke} />
</button>
{/if}
{#if wordmarkSvg}
<button
title="Copy wordmark SVG to clipboard"
on:click={() => {
const svgHasTheme = typeof svgInfo.wordmark !== 'string';
if (!svgHasTheme) {
copyToClipboard(
typeof svgInfo.wordmark === 'string'
? svgInfo.wordmark
: "Something went wrong. Couldn't copy the SVG."
);
return;
}
const dark = document.documentElement.classList.contains('dark');
copyToClipboard(
typeof svgInfo.wordmark !== 'string'
? dark
? svgInfo.wordmark?.dark
: svgInfo.wordmark?.light
: svgInfo.wordmark
);
}}
class="flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40"
>
<CopyIcon size={iconSize} strokeWidth={iconStroke} />
</button>
{:else}
<button
title="Copy to clipboard"
on:click={() => {
const svgHasTheme = typeof svgInfo.route !== 'string';
if (!svgHasTheme) {
copyToClipboard(
typeof svgInfo.route === 'string'
? svgInfo.route
: "Something went wrong. Couldn't copy the SVG."
);
return;
}
const dark = document.documentElement.classList.contains('dark');
copyToClipboard(
typeof svgInfo.route !== 'string'
? dark
? svgInfo.route.dark
: svgInfo.route.light
: svgInfo.route
);
}}
class="flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40"
>
<CopyIcon size={iconSize} strokeWidth={iconStroke} />
</button>
{/if}
<DownloadSvg
{svgInfo}
isDarkTheme={() => {
const dark = document.documentElement.classList.contains('dark');
return dark;
}}
/>
<a
href={svgInfo.url}
title="Website"
target="_blank"
rel="noopener noreferrer"
class="flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40"
>
<LinkIcon size={iconSize} strokeWidth={iconStroke} />
</a>
{#if svgInfo.wordmark !== undefined}
<button
title="Show wordmark SVG"
on:click={() => {
wordmarkSvg = !wordmarkSvg;
}}
class="flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40"
>
{#if wordmarkSvg}
<Sparkles size={iconSize} strokeWidth={iconStroke} />
{:else}
<Baseline size={iconSize} strokeWidth={iconStroke} />
{/if}
</button>
{/if}
</div>
</div>
<div class="flex items-center space-x-1">
<button
title="Copy to clipboard"
on:click={() => {
copyToClipboard(svgInfo.route);
}}
class="flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-300 dark:hover:bg-neutral-700/40"
>
<Copy size={17} />
</button>
<button
title="Download"
on:click={() => {
downloadSvg(svgInfo.route);
}}
class="flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-300 dark:hover:bg-neutral-700/40"
>
<DownloadSimple size={17} />
</button>
<a
href={svgInfo.url}
title="Website"
target="_blank"
class="flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-300 dark:hover:bg-neutral-700/40"
>
<ArrowUpRight size={17} />
</a>
</div>
</div>
</CardSpotlight>
+4 -6
View File
@@ -35,12 +35,10 @@
}
// Icons:
import Moon from 'phosphor-svelte/lib/Moon';
import Sun from 'phosphor-svelte/lib/Sun';
import { MoonIcon, SunIcon } from 'lucide-svelte';
</script>
<svelte:head>
<!-- set dark mode class based on user preference / device settings (in head to avoid FOUC) -->
<script>
if (
localStorage.theme === 'dark' ||
@@ -53,11 +51,11 @@
</script>
</svelte:head>
<button on:click={toggle} class="focus:outline-none" class:hidden>
<button on:click={toggle} aria-label="Toggle dark mode" class="opacity-80 hover:opacity-100">
<!-- moon icon -->
{#if dark}
<Sun size={18} />
<SunIcon size={20} strokeWidth={1.5} />
{:else}
<Moon size={18} />
<MoonIcon size={20} strokeWidth={1.5} />
{/if}
</button>
+41
View File
@@ -0,0 +1,41 @@
<script lang="ts">
import { AlertTriangleIcon, Check } from 'lucide-svelte';
import { browser } from '$app/environment';
import { buttonStyles } from '@/ui/styles';
import { cn } from '@/utils/cn';
let warning = false;
const initialValue = browser ? window.localStorage.getItem('warning') : true;
</script>
{#if !warning && !initialValue}
<div
class="flex items-center w-full justify-between md:flex-row flex-col md:space-x-2 space-x-0 space-y-2 md:space-y-0 py-2 px-3 bg-neutral-100 dark:bg-neutral-800/40 text-neutral-700 dark:text-neutral-300"
>
<div class="flex items-center space-x-2">
<AlertTriangleIcon size={18} strokeWidth={2} class="mr-1" />
<p>
All svgs provides the link to the product or company that owns it, <strong
>please contact them</strong
>
if you are going to use their logo. If you are the owner of an svg and do not want it to appear
here, please
<a
target="_blank"
class="underline underline-offset-4 decoration-dotted decoration-neutral-500"
href="https://github.com/pheralb/svgl/issues/new">create an issue</a
> on Github.
</p>
</div>
<button
class={cn(buttonStyles, 'h-10 text-sm')}
on:click={() => {
localStorage.setItem('warning', 'true');
warning = true;
}}
>
<Check size={14} strokeWidth={2} />
<span>Accept</span>
</button>
</div>
{/if}
+16
View File
@@ -0,0 +1,16 @@
<script lang="ts">
export let iconSize: number;
</script>
<svg
xmlns="http://www.w3.org/2000/svg"
width={iconSize || 16}
height={iconSize || 16}
name="Twitter"
fill="none"
viewBox="0 0 1200 1227"
><path
fill="currentColor"
d="M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"
/>
</svg>
+6
View File
@@ -0,0 +1,6 @@
import type { iSVG } from '@/types/svg';
import { svgs } from './svgs';
export const svgsData = svgs.map((svg: iSVG, index: number) => {
return { id: index, ...svg };
});
+1526 -217
View File
@@ -2,1095 +2,2404 @@ import type { iSVG } from '../types/svg';
export const svgs: iSVG[] = [
{
id: 1,
title: 'Discord',
category: 'Software',
route: '/library/discord.svg',
url: 'https://discord.com/'
},
{
id: 2,
title: 'Github',
category: 'Software',
route: '/library/github.svg',
url: 'https://github.com/'
},
{
id: 3,
title: 'Preact',
category: 'Library',
route: '/library/preact.svg',
url: 'https://preactjs.com/'
},
{
id: 4,
title: 'React',
category: 'Library',
route: '/library/react.svg',
url: 'https://reactjs.org/'
},
{
id: 5,
title: 'Vercel',
category: 'Hosting',
route: '/library/vercel.svg',
route: {
light: '/library/vercel.svg',
dark: '/library/vercel_dark.svg'
},
wordmark: {
light: '/library/vercel_wordmark.svg',
dark: '/library/vercel_wordmark_dark.svg'
},
url: 'https://vercel.com/'
},
{
id: 6,
title: 'Svelte',
category: 'Library',
route: '/library/svelte.svg',
url: 'https://svelte.dev/'
},
{
id: 7,
title: 'Vue',
category: 'Framework',
route: '/library/vue.svg',
url: 'https://vuejs.org/'
},
{
id: 8,
title: 'Vuetify',
category: 'Library',
route: '/library/vuetify.svg',
url: 'https://vuetifyjs.com/'
},
{
title: 'Nuxt',
category: 'Framework',
route: '/library/nuxt.svg',
url: 'https://nuxtjs.org/'
},
{
id: 9,
title: 'Nextjs',
title: 'Next.js',
category: 'Framework',
route: '/library/nextjs.svg',
url: 'https://nextjs.org/'
},
{
id: 10,
title: 'Visual Studio Code',
category: 'Software',
route: '/library/vscode.svg',
url: 'https://code.visualstudio.com/'
},
{
id: 11,
title: 'Ton',
category: 'Crypto',
route: '/library/ton.svg',
url: 'https://ton.org/'
},
{
title: 'Locofy',
category: 'AI',
route: '/library/locofy.svg',
url: 'https://www.locofy.ai/'
},
{
title: 'Runway',
category: 'AI',
route: '/library/runway.svg',
url: 'https://runwayml.com/'
},
{
title: 'Yarn',
category: 'Software',
route: '/library/yarn.svg',
url: 'https://yarnpkg.com/'
},
{
title: 'JWT',
category: 'Library',
route: '/library/jwt.svg',
url: 'https://jwt.io/'
},
{
id: 12,
title: 'Strapi',
category: 'CMS',
route: '/library/strapi.svg',
url: 'https://strapi.io/'
},
{
id: 13,
title: 'Figma',
category: 'Software',
category: 'Design',
route: '/library/figma.svg',
url: 'https://www.figma.com/'
},
{
id: 14,
title: 'Spotify',
category: 'Software',
route: '/library/spotify.svg',
url: 'https://www.spotify.com/'
},
{
id: 15,
title: 'WorkOS',
category: 'Software',
route: {
light: '/library/workos.svg',
dark: '/library/workos-light.svg'
},
url: 'https://workos.com/'
},
{
title: 'Whop',
category: 'Marketplace',
route: {
light: '/library/whop.svg',
dark: '/library/whop-light.svg'
},
url: 'https://whop.com/'
},
{
title: 'Postman',
category: 'Software',
route: '/library/postman.svg',
url: 'https://www.getpostman.com/'
},
{
id: 16,
title: 'Discord.js',
category: 'Library',
route: '/library/djs.svg',
url: 'https://discord.js.org/'
},
{
title: 'OpenSea',
category: 'Crypto',
route: '/library/opensea.svg',
url: 'https://opensea.io/'
},
{
title: 'Algolia',
category: 'Library',
route: '/library/algolia.svg',
url: 'https://www.algolia.com/'
},
{
id: 17,
title: 'Bootstrap',
category: 'Framework',
route: '/library/bootstrap.svg',
url: 'https://getbootstrap.com/'
},
{
id: 18,
title: 'Firebase',
category: 'Hosting',
route: '/library/firebase.svg',
url: 'https://firebase.google.com/'
},
{
id: 19,
title: 'Supabase',
category: 'Database',
route: '/library/supabase.svg',
url: 'https://supabase.com/'
},
{
id: 20,
title: 'Vite.js',
category: 'Compiler',
route: '/library/vitejs.svg',
url: 'https://vitejs.dev'
},
{
id: 21,
title: 'Facebook',
category: 'Social',
route: '/library/facebook.svg',
url: 'https://www.facebook.com/'
},
{
id: 22,
title: 'Twitter',
category: 'Social',
route: '/library/twitter.svg',
url: 'https://twitter.com/'
},
{
id: 23,
title: 'Node.js',
category: 'Library',
route: '/library/nodejs.svg',
url: 'https://nodejs.org/'
},
{
id: 24,
title: 'Esbuild',
category: 'Compiler',
route: '/library/esbuild.svg',
url: 'https://esbuild.github.io/'
},
{
id: 25,
title: 'Deno',
category: 'Library',
route: '/library/deno.svg',
route: {
light: '/library/deno.svg',
dark: '/library/deno_dark.svg'
},
url: 'https://deno.land/'
},
{
id: 26,
title: 'Gatsby',
category: 'Framework',
route: '/library/gatsby.svg',
url: 'https://www.gatsbyjs.org/'
},
{
id: 27,
title: 'NPM',
category: 'Software',
route: '/library/npm.svg',
url: 'https://www.npmjs.com/'
},
{
id: 28,
title: 'Homebrew',
category: 'Software',
route: '/library/homebrew.svg',
url: 'https://brew.sh/'
},
{
id: 29,
title: 'Sublime Text',
category: 'Software',
route: '/library/sublimetext.svg',
url: 'https://www.sublimetext.com/'
},
{
id: 30,
title: 'TurboRepo',
category: 'Library',
route: '/library/turborepo.svg',
url: 'https://turborepo.org/'
},
{
id: 31,
title: 'Tailwind CSS',
category: 'Framework',
route: '/library/tailwindcss.svg',
url: 'https://tailwindcss.com/'
},
{
id: 32,
title: 'Styled Components',
category: 'Library',
route: '/library/styledcomponents.svg',
url: 'https://styled-components.com/'
},
{
id: 33,
title: 'Angular',
category: 'Framework',
route: '/library/angular.svg',
url: 'https://angular.io/'
url: 'https://angular.dev/'
},
{
id: 34,
title: 'Blitz',
category: 'Framework',
route: '/library/blitzjs.svg',
url: 'https://blitzjs.com/'
},
{
id: 35,
title: 'Lit',
category: 'Library',
route: '/library/lit.svg',
url: 'https://lit.dev/'
},
{
id: 36,
title: 'Atom',
category: 'Software',
route: '/library/atom.svg',
url: 'https://atom.io/'
},
{
id: 37,
title: 'YouTube',
category: 'Social',
route: '/library/youtube.svg',
wordmark: '/library/youtube-wordmark.svg',
url: 'https://www.youtube.com/'
},
{
id: 38,
title: 'Astro',
category: 'Framework',
route: '/library/astro.svg',
route: {
light: '/library/astro.svg',
dark: '/library/astro_dark.svg'
},
url: 'https://astro.build/'
},
{
id: 39,
title: 'Google',
category: 'Social',
route: '/library/google.svg',
wordmark: '/library/google-wordmark.svg',
url: 'https://www.google.com/'
},
{
id: 40,
title: 'Framer',
category: 'Software',
route: '/library/framer.svg',
route: {
light: '/library/framer.svg',
dark: '/library/framer_dark.svg'
},
url: 'https://framer.com/'
},
{
id: 41,
title: 'Netflix',
category: 'Entertainment',
route: '/library/netflix.svg',
url: 'https://www.netflix.com/'
},
{
id: 42,
title: 'Firefox',
category: 'Software',
category: 'Browser',
route: '/library/firefox.svg',
url: 'https://www.mozilla.org/en-US/firefox/'
},
{
id: 43,
title: 'LinkedIn',
category: 'Social',
route: '/library/linkedin.svg',
url: 'https://www.linkedin.com/'
},
{
id: 44,
title: 'Telegram',
category: 'Social',
route: '/library/telegram.svg',
url: 'https://web.telegram.org/'
},
{
id: 45,
title: 'WhatsApp',
category: 'Social',
route: '/library/whatsapp.svg',
url: 'https://web.whatsapp.com/'
},
{
id: 46,
title: 'Headless UI',
category: 'Library',
route: '/library/headlessui.svg',
url: 'https://headlessui.dev/'
},
{
id: 47,
title: 'Kotlin',
category: 'Language',
route: '/library/kotlin.svg',
url: 'https://kotlinlang.org/'
},
{
id: 48,
title: 'Vitest',
category: 'Framework',
route: '/library/vitest.svg',
url: 'https://vitest.dev/'
},
{
id: 49,
title: 'Storybook',
category: 'Software',
route: '/library/storybook.svg',
url: 'https://storybook.js.org/'
},
{
id: 50,
title: 'Netlify',
category: 'Hosting',
route: '/library/netlify.svg',
url: 'https://www.netlify.com/'
},
{
id: 51,
title: 'Solidjs',
category: 'Framework',
route: '/library/solidjs.svg',
url: 'https://www.solidjs.com/'
},
{
id: 52,
title: 'MongoDB',
category: 'Database',
route: '/library/mongodb.svg',
wordmark: '/library/mongodb-wordmark.svg',
url: 'https://www.mongodb.com/'
},
{
id: 53,
title: 'Babel',
category: 'Compiler',
route: '/library/babel.svg',
url: 'https://babeljs.io'
},
{
id: 54,
title: 'Moon',
category: 'Framework',
route: '/library/moon.svg',
url: 'https://moonjs.org/'
},
{
id: 55,
title: 'Payload CMS',
category: 'CMS',
route: '/library/payload.svg',
route: {
light: '/library/payload.svg',
dark: '/library/payload_dark.svg'
},
url: 'https://payloadcms.com'
},
{
id: 56,
title: 'Fly',
category: 'Hosting',
route: '/library/fly.svg',
url: 'https://fly.io'
},
{
id: 57,
title: 'LearnThis',
category: 'Education',
route: '/library/learnthis.svg',
url: 'https://learnthisacademy.com'
},
{
id: 58,
title: 'Visual Studio',
category: 'Software',
route: '/library/visual-studio.svg',
url: 'https://visualstudio.microsoft.com'
},
{
id: 59,
title: 'Chakra UI',
category: 'Library',
route: '/library/chakra-ui.svg',
url: 'https://chakra-ui.com'
},
{
id: 60,
title: 'Express.js',
category: 'Framework',
route: '/library/expressjs.svg',
route: {
light: '/library/expressjs.svg',
dark: '/library/expressjs_dark.svg'
},
url: 'https://expressjs.com'
},
{
id: 61,
title: 'Fastify',
category: 'Framework',
route: '/library/fastify.svg',
route: {
light: '/library/fastify.svg',
dark: '/library/fastify_dark.svg'
},
url: 'https://www.fastify.io'
},
{
id: 62,
title: 'JavaScript',
category: 'Language',
route: '/library/javascript.svg',
url: 'https://developer.mozilla.org/docs/Web/JavaScript'
},
{
id: 63,
title: 'jQuery',
category: 'Language',
route: '/library/jquery.svg',
route: {
light: '/library/jquery.svg',
dark: '/library/jquery_dark.svg'
},
url: 'https://jquery.com'
},
{
id: 64,
title: 'Rapid API',
category: 'Software',
route: '/library/rapidapi.svg',
url: 'https://rapidapi.com'
},
{
id: 65,
title: 'TypeScript',
category: 'Language',
route: '/library/typescript.svg',
url: 'https://www.typescriptlang.org'
},
{
id: 66,
title: 'Bun',
category: 'Library',
route: '/library/bun.svg',
url: 'https://bun.sh'
},
{
id: 67,
title: 'Twilio',
category: 'Software',
route: '/library/twilio.svg',
url: 'https://twilio.com'
},
{
id: 68,
title: 'Arc',
category: 'Software',
route: '/library/arc.svg',
category: 'Social',
route: {
light: '/library/arc.svg',
dark: '/library/arc_dark.svg'
},
url: 'https://arc.dev'
},
{
id: 69,
title: 'Arc',
category: 'Fintech',
route: {
light: '/library/arc_fintech_light.svg',
dark: '/library/arc_fintech_dark.svg'
},
url: 'https://arc.tech'
},
{
title: 'Qwik',
category: 'Framework',
route: '/library/qwik.svg',
url: 'https://qwik.builder.io/'
},
{
id: 70,
title: 'Coinbase',
category: 'Crypto',
route: '/library/coinbase.svg',
wordmark: {
light: '/library/coinbase-wordmark-light.svg',
dark: '/library/coinbase-wordmark-dark.svg'
},
url: 'https://www.coinbase.com/'
},
{
title: 'Authy',
category: 'Software',
route: '/library/authy.svg',
url: 'https://authy.com/'
},
{
id: 71,
title: 'Notion',
category: 'Software',
route: '/library/notion.svg',
url: 'https://notion.so/'
},
{
id: 72,
title: 'NestJS',
category: 'Framework',
route: '/library/nestjs.svg',
url: 'https://nestjs.com/'
},
{
id: 73,
title: 'Github Copilot',
category: 'Software',
route: '/library/copilot.svg',
route: {
light: '/library/copilot.svg',
dark: '/library/copilot_dark.svg'
},
url: 'https://github.com/features/copilot'
},
{
id: 74,
title: 'Railway',
category: 'Software',
route: '/library/railway.svg',
route: {
light: '/library/railway.svg',
dark: '/library/railway_dark.svg'
},
url: 'https://railway.app/'
},
{
id: 75,
title: 'Docusaurus',
category: 'Software',
route: '/library/docusaurus.svg',
url: 'https://docusaurus.io/'
},
{
id: 76,
title: 'Twitch',
category: 'Entertainment',
route: '/library/twitch.svg',
url: 'https://twitch.tv'
},
{
id: 77,
title: 'GoDaddy',
category: 'Hosting',
route: '/library/godaddy.svg',
route: {
light: '/library/godaddy.svg',
dark: '/library/godaddy_dark.svg'
},
url: 'https://www.godaddy.com/'
},
{
id: 78,
title: 'Udemy',
category: 'Education',
route: '/library/udemy.svg',
route: {
light: '/library/udemy.svg',
dark: '/library/udemy_dark.svg'
},
url: 'https://www.udemy.com/'
},
{
id: 79,
title: 'GraphQL',
category: 'Language',
route: '/library/graphql.svg',
url: 'https://graphql.org/'
},
{
id: 80,
title: 'GitLab',
category: 'Software',
route: '/library/gitlab.svg',
url: 'https://gitlab.com/'
},
{
id: 81,
title: 'Prisma',
category: 'Software',
route: '/library/prisma.svg',
route: {
light: '/library/prisma.svg',
dark: '/library/prisma_dark.svg'
},
url: 'https://prisma.io/'
},
{
id: 82,
title: 'Go',
category: 'Language',
route: '/library/golang.svg',
route: {
light: '/library/golang.svg',
dark: '/library/golang_dark.svg'
},
url: 'https://go.dev/'
},
{
id: 83,
title: 'Platzi',
category: 'Education',
route: '/library/platzi.svg',
url: 'https://platzi.com/'
},
{
id: 84,
title: 'Coursera',
category: 'Education',
route: '/library/coursera.svg',
url: 'https://www.coursera.org/'
},
{
id: 85,
title: 'Udacity',
category: 'Education',
route: '/library/udacity.svg',
url: 'https://www.udacity.com/'
},
{
id: 86,
title: 'Kubernetes',
category: 'Software',
route: '/library/kubernetes.svg',
url: 'https://kubernetes.io/'
},
{
id: 87,
title: 'Docker',
category: 'Software',
route: '/library/docker.svg',
url: 'https://www.docker.com/'
},
{
id: 88,
title: 'Amazon Web Services',
category: 'Software',
route: '/library/aws.svg',
url: 'https://aws.amazon.com/'
},
{
id: 89,
title: 'Microsoft Azure',
category: 'Software',
route: '/library/azure.svg',
url: 'https://azure.microsoft.com/'
},
{
id: 90,
title: 'Heroku',
category: 'Software',
route: '/library/heroku.svg',
url: 'https://www.heroku.com/'
},
{
id: 91,
title: 'JetBrains',
category: 'Software',
route: '/library/jetbrains.svg',
url: 'https://www.jetbrains.com/'
},
{
id: 92,
title: 'JetBrains Rider',
category: 'Software',
route: '/library/rider.svg',
url: 'https://www.jetbrains.com/rider/'
},
{
id: 93,
title: 'PlanetScale',
category: 'Database',
route: '/library/planetscale.svg',
route: {
light: '/library/planetscale.svg',
dark: '/library/planetscale_dark.svg'
},
url: 'https://planetscale.com/'
},
{
id: 94,
title: 'Playwright',
category: 'Framework',
route: '/library/playwright.svg',
url: 'https://playwright.dev/'
},
{
id: 95,
title: 'Atlassian',
category: 'Software',
route: '/library/atlassian.svg',
url: 'https://www.atlassian.com/'
},
{
id: 96,
title: 'Discourse',
category: 'Software',
route: '/library/discourse.svg',
url: 'https://discourse.org/'
},
{
id: 97,
title: 'Ember',
category: 'Framework',
route: '/library/ember.svg',
url: 'https://emberjs.com/'
},
{
id: 98,
title: 'Expo',
category: 'Software',
route: '/library/expo.svg',
url: 'https://expo.dev/'
},
{
id: 99,
title: 'Flutter',
category: 'Framework',
route: '/library/flutter.svg',
url: 'https://flutter.dev/'
},
{
id: 100,
title: 'Auth0',
category: 'Library',
route: '/library/auth0.svg',
url: 'https://auth0.com/'
},
{
title: 'Fresh',
category: 'Framework',
route: '/library/fresh.svg',
url: 'https://fresh.deno.dev/'
},
{
id: 101,
title: 'Git',
category: 'Software',
route: '/library/git.svg',
url: 'https://git-scm.com/'
},
{
id: 102,
title: 'Hostgator',
category: 'Hosting',
route: '/library/hostgator.svg',
url: 'https://www.hostgator.com/'
},
{
id: 103,
title: 'IntelliJ IDEA',
category: 'Software',
route: '/library/intellijidea.svg',
url: 'https://www.jetbrains.com/idea/'
},
{
id: 104,
title: 'Jasmine',
category: 'Framework',
route: '/library/jasmine.svg',
url: 'https://jasmine.github.io/'
},
{
id: 105,
title: 'Java',
category: 'Language',
route: '/library/java.svg',
url: 'https://www.java.com/'
},
{
id: 106,
title: 'Jest',
category: 'Framework',
route: '/library/jest.svg',
url: 'https://jestjs.io/'
},
{
id: 107,
title: 'JetBrains',
category: 'Software',
route: '/library/jetbrainsSolid.svg',
url: 'https://www.jetbrains.com/'
},
{
id: 108,
title: 'KrakenJS',
category: 'Framework',
route: '/library/krakenjs.svg',
url: 'https://krakenjs.com/'
},
{
id: 109,
title: 'Laravel',
category: 'Framework',
route: '/library/laravel.svg',
url: 'https://laravel.com/'
},
{
id: 110,
title: 'MariaDB',
category: 'Database',
route: '/library/mariadb.svg',
url: 'https://mariadb.org/'
},
{
id: 111,
title: 'Material UI',
category: 'Framework',
route: '/library/materialui.svg',
url: 'https://mui.com/'
},
{
id: 112,
title: 'MySQL',
category: 'Database',
route: '/library/mysql.svg',
url: 'https://www.mysql.com/'
},
{
id: 113,
title: 'Parcel',
category: 'Compiler',
route: '/library/parcel.svg',
url: 'https://parceljs.org/'
},
{
id: 114,
title: 'PM2',
category: 'Framework',
route: '/library/pm2.svg',
url: 'https://pm2.io/'
},
{
id: 115,
title: 'PostgreSQL',
category: 'Database',
route: '/library/postgresql.svg',
url: 'https://www.postgresql.org/'
},
{
id: 116,
title: 'React Query',
category: 'Framework',
route: '/library/reactquery.svg',
url: 'https://tanstack.com/query/v4'
},
{
id: 117,
title: 'Devto',
category: 'Community',
route: {
light: '/library/devto-light.svg',
dark: '/library/devto-dark.svg'
},
url: 'https://dev.to/'
},
{
title: 'Redis',
category: 'Database',
route: '/library/redis.svg',
url: 'https://redis.io/'
},
{
id: 118,
title: 'RedwoodJS',
category: 'Framework',
route: '/library/redwoodjs.svg',
url: 'https://redwoodjs.com/'
},
{
id: 119,
title: 'Ruby',
category: 'Language',
route: '/library/ruby.svg',
url: 'https://www.ruby-lang.org/'
},
{
id: 120,
title: 'Scala',
category: 'Language',
route: '/library/scala.svg',
url: 'https://www.scala-lang.org/'
},
{
id: 121,
title: 'Sequelize',
category: 'Framework',
route: '/library/sequelize.svg',
url: 'https://sequelize.org/'
},
{
id: 122,
title: 'Spinnaker',
category: 'Software',
route: '/library/spinnaker.svg',
url: 'https://spinnaker.io/'
},
{
id: 123,
title: 'SQLite',
category: 'Database',
route: '/library/sqlite.svg',
url: 'https://www.sqlite.org/'
},
{
id: 124,
title: 'Swagger',
category: 'Software',
route: '/library/swagger.svg',
url: 'https://swagger.io/'
},
{
id: 125,
title: 'Swift',
category: 'Language',
route: '/library/swift.svg',
url: 'https://swift.org/'
},
{
id: 126,
title: 'Testing Library',
category: 'Framework',
route: '/library/testinglibrary.svg',
url: 'https://testing-library.com/'
},
{
id: 127,
title: 'TypeORM',
category: 'Database',
route: '/library/typeorm.svg',
url: 'https://typeorm.io/'
},
{
id: 128,
title: 'Unity',
category: 'Software',
route: '/library/unity.svg',
route: {
light: '/library/unity.svg',
dark: '/library/unity_dark.svg'
},
url: 'https://unity.com/'
},
{
id: 129,
title: 'Vim',
category: 'Software',
route: '/library/vim.svg',
url: 'https://www.vim.org/'
},
{
id: 130,
title: 'WMR',
category: 'Compiler',
route: '/library/wmr.svg',
url: 'https://wmr.dev/'
title: 'Pocketbase',
category: 'Database',
route: '/library/pocket-base.svg',
url: 'https://pocketbase.io/'
},
{
id: 131,
title: 'OpenBootcamp',
category: 'Education',
route: '/library/openbootcamp.svg',
url: 'https://open-bootcamp.com/'
},
{
id: 132,
title: 'Digital Ocean',
category: 'Software',
route: '/library/digitalocean.svg',
url: 'https://www.digitalocean.com/'
},
{
id: 133,
title: 'Disney+',
category: 'Entertainment',
route: '/library/disneyplus.svg',
url: 'https://www.disneyplus.com/'
},
{
id: 134,
title: 'React Router',
category: 'Library',
route: '/library/reactrouter.svg',
url: 'https://reactrouter.com/en/main'
},
{
id: 135,
title: 'Google Student Developer Club',
category: 'Google',
title: 'AMP',
category: 'Library',
route: '/library/amp.svg',
url: 'https://amp.dev/'
},
{
title: 'Developer Student Club',
category: 'Community',
route: '/library/gdsc.svg',
url: 'https://gdsc.community.dev/'
},
{
id: 136,
title: 'Brave Browser',
category: 'Browser',
route: '/library/brave.svg',
url: 'https://brave.com/'
},
{
id: 137,
title: 'Eclipse IDE',
category: 'IDE',
category: 'Software',
route: '/library/eclipse.svg',
url: 'https://www.eclipse.org/'
},
{
id: 138,
title: 'Three.js',
category: 'Library',
route: {
light: '/library/threejs-light.svg',
dark: '/library/threejs-dark.svg'
},
url: 'https://threejs.org/'
},
{
title: 'HTML5',
category: 'Language',
route: '/library/html5.svg',
url: 'https://es.wikipedia.org/wiki/HTML5'
},
{
id: 139,
title: 'CSS',
category: 'Language',
route: '/library/css.svg',
url: 'https://es.wikipedia.org/wiki/CSS'
},
{
id: 140,
title: 'midudev',
category: 'Education',
category: 'Community',
route: '/library/midudev.svg',
url: 'https://midu.dev'
},
{
id: 141,
title: 'Apple',
category: 'Software',
route: '/library/apple.svg',
route: {
light: '/library/apple.svg',
dark: '/library/apple_dark.svg'
},
url: 'https://www.apple.com'
},
{
id: 142,
title: 'Android',
category: 'Software',
route: '/library/android.svg',
url: 'https://www.android.com/'
},
{
id: 143,
title: 'Windows',
category: 'Software',
route: '/library/windows.svg',
url: 'https://www.microsoft.com/windows'
},
{
id: 144,
title: 'Python',
category: 'Language',
route: '/library/python.svg',
url: 'https://www.python.org/'
},
{
id: 145,
title: 'Turbopack',
category: 'Software',
route: '/library/turbopack.svg',
url: 'https://turbo.build/'
},
{
id: 146,
title: 'Builder',
category: 'CMS',
route: '/library/builder.svg',
url: 'https://builder.io/'
},
{
id: 147,
title: 'Babel',
category: 'Compiler',
route: '/library/babel.svg',
url: 'https://babeljs.io/'
},
{
title: 'Surrealdb',
category: 'Database',
route: '/library/surrealdb.svg',
url: 'https://surrealdb.com/'
},
{
id: 148,
title: 'Jetbrains Space',
category: 'Software',
route: '/library/jetbrains-space.svg',
url: 'https://www.jetbrains.com/space/'
},
{
id: 149,
title: 'Gin',
category: 'Framework',
route: '/library/gin.svg',
url: 'https://gin-gonic.com/'
},
{
id: 150,
title: 'Stimulus',
category: 'Framework',
route: '/library/stimulus.svg',
url: 'https://stimulus.hotwired.dev/'
},
{
id: 151,
title: 'WindiCSS',
category: 'Framework',
route: '/library/windicss.svg',
url: 'https://windicss.org/'
},
{
id: 152,
title: 'Mastodon',
category: 'Social',
route: '/library/mastodon.svg',
url: 'https://joinmastodon.org/'
},
{
id: 153,
title: 'Upstash',
category: 'Database',
route: '/library/upstash.svg',
url: 'https://upstash.com/'
},
{
id: 154,
title: 'Storyblok',
category: 'CMS',
route: '/library/storyblok.svg',
url: 'https://www.storyblok.com/'
},
{
id: 155,
title: 'Cloudflare Workers',
category: 'Software',
route: '/library/cloudflare-workers.svg',
url: 'https://workers.cloudflare.com/'
},
{
id: 156,
title: 'Cloudflare',
category: 'Software',
route: '/library/cloudflare.svg',
url: 'https://www.cloudflare.com/'
},
{
title: 'Bing',
category: 'Browser',
route: '/library/bing.svg',
url: 'https://www.bing.com/'
},
{
title: 'Cloudinary',
category: 'Software',
route: '/library/cloudinary.svg',
url: 'https://cloudinary.com/'
},
{
title: 'Dart',
category: 'Language',
route: '/library/dart.svg',
url: 'https://dart.dev/'
},
{
title: 'hCaptcha',
category: 'Software',
route: '/library/hcaptcha.svg',
url: 'https://www.hcaptcha.com/'
},
{
title: 'Appwrite',
category: 'Software',
route: '/library/appwrite.svg',
url: 'https://appwrite.io/'
},
{
title: 'Loom',
category: 'Software',
route: '/library/loom.svg',
url: 'https://www.loom.com/'
},
{
title: 'Hulu',
category: 'Entertainment',
route: {
light: '/library/hulu.svg',
dark: '/library/hulu-dark.svg'
},
url: 'https://www.hulu.com/'
},
{
title: 'Stackblitz',
category: 'Software',
route: '/library/stackblitz.svg',
url: 'https://stackblitz.com/'
},
{
title: 'Binance',
category: 'Crypto',
route: '/library/binance.svg',
url: 'https://binance.com/'
},
{
title: 'Messenger',
category: 'Social',
route: '/library/messenger.svg',
url: 'https://www.messenger.com/'
},
{
title: 'NHost',
category: 'Hosting',
route: '/library/nhost.svg',
url: 'https://nhost.io/'
},
{
title: 'Medusa',
category: 'Software',
route: '/library/medusa.svg',
url: 'https://medusajs.com/'
},
{
title: 'WordPress',
category: ['Software', 'CMS'],
route: '/library/wordpress.svg',
url: 'https://wordpress.org/'
},
{
title: 'Microsoft',
category: 'Software',
route: '/library/microsoft.svg',
url: 'https://www.microsoft.com/'
},
{
title: 'Elementor',
category: 'Software',
route: '/library/elementor.svg',
url: 'https://elementor.com/'
},
{
title: 'Prime video',
category: 'Entertainment',
route: '/library/prime-video.svg',
url: 'https://primevideo.com/'
},
{
title: 'Chrome',
category: 'Browser',
route: '/library/chrome.svg',
url: 'https://chrome.com/'
},
{
title: 'RxJS',
category: 'Library',
route: '/library/rxjs.svg',
url: 'https://rxjs.dev/'
},
{
title: 'Electron',
category: 'Library',
route: '/library/electron.svg',
url: 'https://www.electronjs.org'
},
{
title: 'Redux',
category: 'Library',
route: '/library/redux.svg',
url: 'https://redux.js.org/'
},
{
title: 'Trust Wallet',
category: 'Crypto',
route: '/library/trust.svg',
url: 'https://trustwallet.com/'
},
{
title: 'Php',
category: 'Language',
route: {
light: '/library/php.svg',
dark: '/library/php_dark.svg'
},
url: 'https://www.php.net/'
},
{
title: 'Hugo',
category: 'Framework',
route: '/library/hugo.svg',
url: 'https://gohugo.io/'
},
{
title: 'Sass',
category: 'Language',
route: '/library/sass.svg',
url: 'https://sass-lang.com/'
},
{
title: 'Arc',
category: 'Browser',
route: '/library/arc_browser.svg',
url: 'https://arc.net/'
},
{
title: 'Pinia',
category: 'Library',
route: '/library/pinia.svg',
url: 'https://pinia.vuejs.org/'
},
{
title: 'Neon',
category: 'Database',
route: '/library/neon.svg',
url: 'https://neon.tech/'
},
{
title: 'Infojobs',
category: 'Social',
route: '/library/infojobs-logo.svg',
url: 'https://www.infojobs.net/'
},
{
title: 'Linear',
category: 'Software',
route: '/library/linear.svg',
url: 'https://linear.app/'
},
{
title: 'Tor',
category: 'Browser',
route: '/library/tor.svg',
url: 'https://www.torproject.org/'
},
{
title: 'Codesandbox',
category: 'Software',
route: '/library/codesandbox-square.svg',
url: 'https://codesandbox.io/'
},
{
title: 'Skype',
category: 'Social',
route: '/library/skype.svg',
url: 'https://www.skype.com/'
},
{
title: 'Tauri',
category: 'Library',
route: '/library/tauri.svg',
url: 'https://tauri.app/'
},
{
title: 'WebKit',
category: 'Software',
route: '/library/webkit.svg',
url: 'https://webkit.org/'
},
{
title: 'Google Bard',
category: 'AI',
route: '/library/bard.svg',
url: 'https://bard.google.com/'
},
{
title: 'Obsidian',
category: 'Software',
route: '/library/obsidian.svg',
url: 'https://obsidian.md/'
},
{
title: 'Zod',
category: 'Library',
route: '/library/zod.svg',
url: 'https://zod.dev/'
},
{
title: 'Dreamweaver',
category: 'Software',
route: '/library/dw.svg',
url: 'https://www.adobe.com/products/dreamweaver.html'
},
{
title: 'OpenAI',
category: 'AI',
route: {
light: '/library/openai.svg',
dark: '/library/openai_dark.svg'
},
url: 'https://openai.com/'
},
{
title: 'Threads',
category: 'Social',
route: {
light: '/library/threads.svg',
dark: '/library/threads_dark.svg'
},
url: 'https://threads.net/'
},
{
title: 'Instagram',
category: 'Social',
route: {
light: '/library/instagram.svg',
dark: '/library/instagram_dark.svg'
},
url: 'https://www.instagram.com/'
},
{
title: 'VueUse',
category: 'Library',
route: '/library/vueuse.svg',
url: 'https://vueuse.org/'
},
{
title: 'Microsoft SQL Server ',
category: 'Database',
route: '/library/sql-server.svg',
url: 'https://www.microsoft.com/en-us/sql-server/'
},
{
title: 'Hono',
category: 'Framework',
route: '/library/hono.svg',
url: 'https://hono.dev/'
},
{
title: 'Million',
category: 'Library',
route: '/library/million.svg',
url: 'https://million.dev/'
},
{
title: 'PandaCSS',
category: 'Library',
route: '/library/pandacss.svg',
url: 'https://panda-css.com/'
},
{
title: 'Pulumi',
category: 'Software',
route: '/library/pulumi.svg',
url: 'https://www.pulumi.com/'
},
{
title: 'FastAPI',
category: 'Framework',
route: '/library/fastapi.svg',
url: 'https://fastapi.tiangolo.com/'
},
{
title: 'Codium',
category: 'AI',
route: '/library/codium.svg',
url: 'https://www.codium.ai/'
},
{
title: 'Crossplane',
category: 'Framework',
route: '/library/crossplane.svg',
url: 'https://crossplane.io/'
},
{
title: 'Volta',
category: 'Software',
route: {
light: '/library/volta-dark.svg',
dark: '/library/volta-light.svg'
},
url: 'https://volta.net/'
},
{
title: 'Typesense',
category: 'Software',
route: '/library/typesense.svg',
url: 'https://typesense.org/'
},
{
title: 'Bitcoin',
category: 'Crypto',
route: '/library/btc.svg',
url: 'https://bitcoin.org/'
},
{
title: 'Ethereum',
category: 'Crypto',
route: '/library/eth.svg',
url: 'https://ethereum.org/'
},
{
title: 'Solana',
category: 'Crypto',
route: '/library/sol.svg',
url: 'https://solana.com/'
},
{
title: 'Dogecoin',
category: 'Crypto',
route: '/library/doge.svg',
url: 'https://dogecoin.com/'
},
{
title: 'XRP',
category: 'Crypto',
route: '/library/xrp.svg',
url: 'https://xrpl.org/'
},
{
title: 'BNB',
category: 'Crypto',
route: '/library/bnb.svg',
url: 'https://www.bnbchain.org/'
},
{
title: 'Link',
category: 'Crypto',
route: '/library/link.svg',
wordmark: {
light: '/library/link-wordmark-light.svg',
dark: '/library/link-wordmark-dark.svg'
},
url: 'https://chain.link/'
},
{
title: 'Polygon',
category: 'Crypto',
route: '/library/matic.svg',
url: 'https://polygon.technology/'
},
{
title: 'Algorand',
category: 'Crypto',
route: '/library/algorand.svg',
url: 'https://algorand.org/'
},
{
title: 'Tether',
category: 'Crypto',
route: '/library/tether.svg',
url: 'https://tether.to/'
},
{
title: 'X',
category: 'Social',
route: {
light: '/library/x.svg',
dark: '/library/x_dark.svg'
},
url: 'https://x.com'
},
{
title: 'Adobe',
category: 'Design',
route: '/library/adobe.svg',
url: 'https://x.com'
},
{
title: 'After Effects',
category: 'Design',
route: '/library/after-effects.svg',
url: 'https://x.com'
},
{
title: 'Canva',
category: 'Design',
route: '/library/canva.svg',
url: 'https://x.com'
},
{
title: 'Illustrator',
category: 'Design',
route: '/library/illustrator.svg',
url: 'https://x.com'
},
{
title: 'InDesign',
category: 'Design',
route: '/library/indesign.svg',
url: 'https://x.com'
},
{
title: 'Lightroom',
category: 'Design',
route: '/library/lightroom.svg',
url: 'https://x.com'
},
{
title: 'Photoshop',
category: 'Design',
route: '/library/photoshop.svg',
url: 'https://x.com'
},
{
title: 'Premiere',
category: 'Design',
route: '/library/premiere.svg',
url: 'https://x.com'
},
{
title: 'VK',
category: 'Social',
route: '/library/vk.svg',
url: 'https://vk.com'
},
{
title: 'Hoppscotch',
category: 'Software',
route: '/library/hoppscotch.svg',
url: 'https://hoppscotch.com'
},
{
title: 'Dub',
category: 'Software',
route: '/library/dub.svg',
url: 'https://dub.co'
},
{
title: 'Opera',
category: 'Browser',
route: '/library/opera.svg',
url: 'https://www.opera.com'
},
{
title: 'Salesforce',
category: 'Software',
route: '/library/salesforce.svg',
url: 'https://www.salesforce.com'
},
{
title: 'Unreal Engine',
category: 'Software',
route: {
light: '/library/unreal_engine.svg',
dark: '/library/unreal_engine_dark.svg'
},
url: 'https://www.unrealengine.com/'
},
{
title: 'Godot Engine',
category: 'Software',
route: '/library/godot_engine.svg',
url: 'https://godotengine.org/'
},
{
title: 'Datadog',
category: 'Software',
route: '/library/datadog.svg',
url: 'https://www.datadoghq.com/'
},
{
title: 'Tron',
category: 'Crypto',
route: '/library/tron.svg',
url: 'https://tron.network/'
},
{
title: 'Randevum',
category: 'Software',
route: '/library/randevum.svg',
url: 'https://www.randevum.co'
},
{
title: 'Chromium',
category: 'Browser',
route: '/library/chromium.svg',
url: 'https://www.chromium.org'
},
{
title: 'Edge',
category: 'Browser',
route: '/library/edge.svg',
url: 'https://www.microsoft.com/en-us/edge'
},
{
title: 'Safari',
category: 'Browser',
route: '/library/safari.svg',
url: 'https://www.apple.com/safari'
},
{
title: 'Vivaldi',
category: 'Browser',
route: '/library/vivaldi.svg',
url: 'https://vivaldi.com'
},
{
title: 'Beacon',
category: 'Software',
route: '/library/Beacon-Logo.svg',
url: 'https://www.beacon.com'
},
{
title: 'Affinity Designer',
category: 'Design',
route: '/library/affinity_designer.svg',
url: 'https://affinity.serif.com/en-us/designer/'
},
{
title: 'Affinity Photo',
category: 'Software',
route: '/library/affinity_photo.svg',
url: 'https://affinity.serif.com/en-us/photo/'
},
{
title: 'Affinity Publisher',
category: 'Software',
route: '/library/affinity_publisher.svg',
url: 'https://affinity.serif.com/en-us/publisher/'
},
{
title: 'Roblox',
category: 'Software',
route: {
dark: '/library/roblox.svg',
light: '/library/roblox_light.svg'
},
url: 'https://www.roblox.com/'
},
{
title: 'Stately.ai',
category: 'Software',
route: {
light: '/library/stately.svg',
dark: '/library/stately_dark.svg'
},
url: 'https://stately.ai/'
},
{
title: 'XState',
category: 'Library',
route: {
light: '/library/xstate.svg',
dark: '/library/xstate_dark.svg'
},
url: 'https://github.com/statelyai/xstate'
},
{
title: 'Hashnode',
category: 'Social',
route: '/library/hashnode.svg',
url: 'https://hashnode.com'
},
{
title: 'Rowy',
category: 'CMS',
route: '/library/rowy.svg',
url: 'https://www.rowy.io/'
},
{
title: 'Cal.com',
category: 'Software',
route: {
light: '/library/cal.svg',
dark: '/library/cal_dark.svg'
},
url: 'https://cal.com'
},
{
title: 'Calendly',
category: 'Software',
route: '/library/calendly.svg',
url: 'https://calendly.com/'
},
{
title: 'Mintlify',
category: 'Software',
route: '/library/mintlify.svg',
url: 'https://mintlify.com/'
},
{
title: 'Patreon',
category: 'Social',
route: {
light: '/library/patreon.svg',
dark: '/library/patreon_dark.svg'
},
url: 'https://www.patreon.com/'
},
{
title: 'Peerlist',
category: 'Social',
route: '/library/peerlist.svg',
url: 'https://www.peerlist.io/'
},
{
title: 'Product Hunt',
category: 'Software',
route: '/library/producthunt.svg',
url: 'https://www.producthunt.com/'
},
{
title: 'Remotion',
category: 'Framework',
route: '/library/remotion.svg',
url: 'https://www.remotion.dev/'
},
{
title: 'Warp',
category: 'Software',
route: '/library/warp.svg',
url: 'https://www.warp.dev/'
},
{
title: 'SST',
category: 'Framework',
route: '/library/sst.svg',
url: 'https://sst.dev/'
},
{
title: 'Documenso',
category: 'Software',
route: {
light: '/library/documenso.svg',
dark: '/library/documenso_dark.svg'
},
url: 'https://documenso.com'
},
{
title: 'Bash',
category: 'Language',
route: {
light: '/library/bash.svg',
dark: '/library/bash_dark.svg'
},
url: 'https://www.gnu.org/software/bash/'
},
{
title: 'C',
category: 'Language',
route: '/library/c.svg',
url: 'https://en.wikipedia.org/wiki/C_(programming_language)'
},
{
title: 'C++',
category: 'Language',
route: '/library/c++.svg',
url: 'https://en.wikipedia.org/wiki/C%2B%2B'
},
{
title: 'Cobol',
category: 'Language',
route: '/library/cobol.svg',
url: 'https://en.wikipedia.org/wiki/COBOL'
},
{
title: 'Fortran',
category: 'Language',
route: '/library/fortran.svg',
url: 'https://en.wikipedia.org/wiki/Fortran'
},
{
title: 'Haskell',
category: 'Language',
route: '/library/haskell.svg',
url: 'https://www.haskell.org/'
},
{
title: 'matlab',
category: 'Language',
route: '/library/matlab.svg',
url: 'https://www.mathworks.com/products/matlab.html'
},
{
title: 'R',
category: 'Language',
route: {
light: '/library/r.svg',
dark: '/library/r_dark.svg'
},
url: 'https://www.r-project.org/'
},
{
title: 'Rust',
category: 'Language',
route: {
light: '/library/rust.svg',
dark: '/library/rust_dark.svg'
},
url: 'https://www.rust-lang.org/'
},
{
title: 'Zig',
category: 'Language',
route: '/library/zig.svg',
url: 'https://ziglang.org/'
},
{
title: 'Instatus',
category: 'Software',
route: {
light: '/library/instatus.svg',
dark: '/library/instatus_dark.svg'
},
url: 'https://instatus.com'
},
{
title: 'Front',
category: 'Software',
route: '/library/front.svg',
url: 'https://front.com'
},
{
title: 'Monero',
category: 'Crypto',
route: '/library/monero.svg',
url: 'https://www.getmonero.org/'
},
{
title: 'Axiom',
category: 'Software',
route: {
dark: '/library/axiom-dark.svg',
light: '/library/axiom-light.svg'
},
url: 'https://axiom.co/'
},
{
title: 'Django',
category: 'Framework',
route: '/library/django.svg',
url: 'https://www.djangoproject.com/'
},
{
title: 'Zeabur',
category: 'Hosting',
route: {
light: '/library/zeabur-light.svg',
dark: '/library/zeabur-dark.svg'
},
url: 'https://zeabur.com/'
},
{
title: 'MetaMask',
category: 'Crypto',
route: '/library/metamask.svg',
url: 'https://metamask.io/'
},
{
title: 'shadcn/ui',
category: 'Library',
route: {
light: '/library/shadcn-ui.svg',
dark: '/library/shadcn-ui_dark.svg'
},
url: 'https://ui.shadcn.com/'
},
{
title: 'putio',
category: 'Software',
route: '/library/putio.svg',
url: 'https://put.io/'
},
{
title: 'Pinterest',
category: 'Social',
route: '/library/pinterest.svg',
url: 'https://pinterest.com/'
},
{
title: 'Reflex',
category: 'Software',
route: {
light: '/library/reflex-dark.svg',
dark: '/library/reflex-light.svg'
},
url: 'https://reflex.dev/'
},
{
title: 'Stripe',
category: 'Software',
route: '/library/stripe.svg',
url: 'https://stripe.com/'
},
{
title: 'Linux',
category: 'Software',
route: '/library/linux.svg',
url: 'https://www.linux.org/'
},
{
title: 'XD',
category: 'Design',
route: '/library/adobe-xd.svg',
url: 'https://helpx.adobe.com/xd/get-started.html'
},
{
title: 'Axure',
category: 'Design',
route: '/library/axure.svg',
url: 'https://www.axure.com/'
},
{
title: 'Penpot',
category: 'Design',
route: {
light: '/library/penpot.svg',
dark: '/library/penpot_dark.svg'
},
url: 'https://penpot.app/'
},
{
title: 'Sketch',
category: 'Design',
route: {
light: '/library/sketch_light.svg',
dark: '/library/sketch.svg'
},
url: 'https://www.sketch.com/'
},
{
title: 'Gimp',
category: 'Design',
route: '/library/gimp.svg',
url: 'https://www.gimp.org/'
},
{
title: 'Ubuntu',
category: 'Software',
route: '/library/ubuntu.svg',
url: 'https://ubuntu.com/'
},
{
title: 'Cypress',
category: 'Framework',
route: '/library/cypress.svg',
url: 'https://www.cypress.io/'
},
{
title: 'Reddit',
category: 'Social',
route: '/library/reddit.svg',
url: 'https://www.reddit.com/'
},
{
title: 'JetBrains WebStorm',
category: 'Software',
route: '/library/webstorm.svg',
url: 'https://www.jetbrains.com/webstorm/'
},
{
title: 'JetBrains PyCharm',
category: 'Software',
route: '/library/pycharm.svg',
url: 'https://www.jetbrains.com/pycharm/'
},
{
title: 'JetBrains Fleet',
category: 'Software',
route: '/library/fleet.svg',
url: 'https://www.jetbrains.com/fleet/'
},
{
title: 'JetBrains RubyMine',
category: 'Software',
route: '/library/rubymine.svg',
url: 'https://www.jetbrains.com/ruby/'
},
{
title: 'JetBrains PhpStorm',
category: 'Software',
route: '/library/phpstorm.svg',
url: 'https://www.jetbrains.com/phpstorm/'
},
{
title: 'MonkeyType',
category: 'Software',
route: '/library/monkeytype.svg',
url: 'https://monkeytype.com/'
},
{
title: 'PyCharm',
category: 'Software',
route: '/library/pycharm.svg',
url: 'https://www.jetbrains.com/pycharm/'
},
{
title: 'Shopify',
category: 'CMS',
route: '/library/shopify.svg',
wordmark: {
dark: '/library/shopify-wordmark-dark.svg',
light: '/library/shopify-wordmark-light.svg'
},
url: 'https://www.shopify.com'
},
{
title: 'WebFlow',
category: 'CMS',
route: '/library/webflow.svg',
url: 'https://www.webflow.com'
},
{
title: 'Sanity',
category: 'CMS',
route: '/library/sanity.svg',
url: 'https://www.sanity.io'
},
{
title: 'sky',
category: 'Entertainment',
route: '/library/sky.svg',
url: 'https://www.sky.com'
},
{
title: 'Airbnb',
category: 'Software',
route: '/library/airbnb.svg',
wordmark: '/library/airbnb-wordmark.svg',
url: 'https://www.airbnb.com'
},
{
title: 'Uber',
category: 'Software',
route: {
light: '/library/uber_light.svg',
dark: '/library/uber_dark.svg'
},
url: 'https://www.uber.com'
},
{
title: 'Gmail',
category: 'Software',
route: '/library/gmail.svg',
url: 'https://www.gmail.com'
},
{
title: 'Outlook',
category: 'Software',
route: '/library/outlook.svg',
url: 'https://www.outlook.com'
},
{
title: 'Slack',
category: 'Software',
route: '/library/slack.svg',
wordmark: '/library/slack-wordmark.svg',
url: 'https://www.slack.com'
},
{
title: 'Snapchat',
category: 'Software',
route: '/library/snapchat.svg',
url: 'https://www.snapchat.com'
},
{
title: 'Ebay',
category: 'Software',
route: '/library/ebay.svg',
url: 'https://www.ebay.com'
},
{
title: 'IBM',
category: 'Software',
route: '/library/ibm.svg',
url: 'https://www.ibm.com'
},
{
title: 'TrustPilot',
category: 'Software',
route: '/library/trustpilot.svg',
url: 'https://www.trustpilot.com'
},
{
title: 'Raycast',
category: 'Software',
route: '/library/raycast.svg',
url: 'https://raycast.com/'
},
{
title: 'Procure',
category: 'Marketplace',
route: '/library/procure.svg',
url: 'https://procure.biz/'
},
{
title: 'Julia',
category: 'Language',
route: '/library/julia.svg',
url: 'https://julialang.org/'
},
{
title: 'SWC',
category: 'Compiler',
route: '/library/swc.svg',
url: 'https://swc.rs/'
},
{
title: 'PlayStation',
category: 'Software',
route: '/library/playstation.svg',
url: 'https://www.playstation.com/'
},
{
title: 'Xbox',
category: 'Software',
route: '/library/xbox.svg',
url: 'https://www.xbox.com/'
},
{
title: 'Cody',
category: 'AI',
route: '/library/cody.svg',
url: 'https://about.sourcegraph.com/'
},
{
title: 'Sourcegraph',
category: 'AI',
route: '/library/sourcegraph.svg',
url: 'https://about.sourcegraph.com/'
},
{
title: 'Claude AI',
category: 'AI',
route: '/library/claude-ai.svg',
url: 'https://claude.ai/'
},
{
title: 'Perplexity AI',
category: 'AI',
route: '/library/perplexity.svg',
url: 'https://perplexity.ai/'
},
{
title: 'Spring',
category: 'Framework',
route: '/library/spring.svg',
url: 'https://spring.io/'
},
{
title: 'Directus',
category: 'CMS',
route: '/library/directus.svg',
url: 'https://directus.io/'
},
{
title: 'Pnpm',
category: 'Software',
route: {
light: '/library/pnpm.svg',
dark: '/library/pnpm_dark.svg'
},
url: 'https://pnpm.io/'
},
{
title: 'Emacs',
category: 'Software',
route: '/library/emacs.svg',
url: 'https://www.gnu.org/software/emacs/'
},
{
title: 'Svgl',
category: 'Library',
route: '/library/svgl.svg',
url: 'https://svgl.app'
},
{
title: 'Google Idx',
category: 'Software',
route: '/library/google-idx.svg',
url: 'https://idx.dev/'
},
{
title: 'Bluesky',
category: 'Social',
route: '/library/bluesky.svg',
url: 'https://blueskyweb.xyz/'
},
{
title: 'Remix',
category: 'Framework',
route: {
light: '/library/remix_light.svg',
dark: '/library/remix_dark.svg'
},
url: 'https://remix.run/'
},
{
title: 'Steam',
category: 'Software',
route: '/library/steam.svg',
url: 'https://store.steampowered.com/'
},
{
title: 'Tabby',
category: 'Software',
route: '/library/tabby.svg',
url: 'https://tabby.sh/'
},
{
title: '1Password',
category: 'Software',
route: {
light: '/library/1password-light.svg',
dark: '/library/1password-dark.svg'
},
url: 'https://1password.com'
},
{
title: 'Flask',
category: 'Framework',
route: {
light: '/library/flask-light.svg',
dark: '/library/flask-dark.svg'
},
url: 'https://flask.palletsprojects.com/'
},
{
title: 'Alacritty',
category: 'Software',
route: '/library/alacritty.svg',
url: 'https://alacritty.org'
},
{
title: 'Qt',
category: 'Software',
route: '/library/qt.svg',
url: 'https://www.qt.io/'
},
{
title: 'Bitwarden',
category: 'Software',
route: '/library/bitwarden.svg',
url: 'https://bitwarden.com/'
},
{
title: 'Voicemod',
category: 'Entertainment',
route: {
light: '/library/voicemod_light.svg',
dark: '/library/voicemod_dark.svg'
},
url: 'https://voicemod.net/'
},
{
title: 'Neovim',
category: 'Software',
route: '/library/neovim.svg',
url: 'https://neovim.io/'
},
{
title: 'Pitch',
category: 'Design',
route: '/library/pitch.svg',
url: 'https://pitch.com'
},
{
title: 'Biomejs',
category: 'Compiler',
route: '/library/biomejs.svg',
url: 'https://biomejs.dev/'
},
{
title: 'Gradio',
category: 'Software',
route: '/library/gradio.svg',
url: 'https://www.gradio.app/'
},
{
title: 'Meta',
category: 'Social',
route: '/library/meta.svg',
url: 'https://about.meta.com/es/'
},
{
title: 'Stability AI',
category: 'AI',
route: '/library/stability-ai.svg',
url: 'https://stability.ai/'
},
{
title: 'Google PaLM',
category: 'AI',
route: '/library/google-palm.svg',
url: 'https://ai.google/discover/palm2/'
},
{
title: 'Android',
category: 'Software',
route: '/library/android-icon.svg',
url: 'https://www.android.com/'
},
{
title: 'Sentry',
category: 'Software',
route: '/library/sentry.svg',
url: 'https://sentry.io/'
},
{
title: 'Grafana',
category: 'Software',
route: '/library/grafana.svg',
url: 'https://grafana.com/'
},
{
title: 'Notion',
category: 'Software',
route: '/library/notion.svg',
url: 'https://notion.so/'
},
{
title: 'Litecoin',
category: 'Crypto',
route: '/library/litecoin.svg',
url: 'https://litecoin.org/'
},
{
title: 'ElysiaJS',
category: 'Framework',
route: '/library/elysiajs.svg',
url: 'https://elysiajs.com/'
},
{
title: 'TensorFlow',
category: 'Library',
route: '/library/tensorflow.svg',
url: 'https://www.tensorflow.org/'
},
{
title: 'Midday',
category: 'AI',
route: '/library/midday.svg',
url: 'https://midday.ai/'
},
{
title: 'C#',
category: 'Language',
route: '/library/csharp.svg',
url: 'https://dotnet.microsoft.com/languages/csharp'
},
{
title: 'Replicate',
category: 'AI',
route: {
light: '/library/replicate_light.svg',
dark: '/library/replicate_dark.svg'
},
wordmark: {
light: '/library/replicate-wordmark_light.svg',
dark: '/library/replicate-wordmark_dark.svg'
},
url: 'https://replicate.com/'
},
{
title: 'Markdown',
category: 'Language',
route: {
light: '/library/markdown-light.svg',
dark: '/library/markdown-dark.svg'
},
url: 'https://www.markdownguide.org/'
},
{
title: 'Movie Web',
category: 'Entertainment',
route: '/library/movie-web.svg',
url: 'https://movie-web.app/'
},
{
title: 'Radix UI',
category: 'Library',
route: {
light: '/library/radix-ui_light.svg',
dark: '/library/radix-ui_dark.svg'
},
url: 'https://www.radix-ui.com/'
}
];
+182
View File
@@ -0,0 +1,182 @@
---
title: API Reference
description: The API reference is a detailed documentation of all the endpoints available in the SVGL API.
---
<script>
import Endpoint from '../components/endpoints.svelte';
</script>
## Introduction
SVGL API is a RESTFul API that allows you to get all the information of the SVGs that are in the repository.
## Limitations
The API is currently open to everyone and does not require any authentication. However, to prevent abusive use of the API, there is a limit to the number of requests: **5 requests** with **60s** cooldown.
## Base URL
The base URL for the API is:
```bash
https://svgl.app/api/svgs
# or
https://svgl.app/api/categories
```
## Typescript usage
- For categories:
```ts
export interface Category {
category: string;
total: number;
}
```
- For SVGs:
```ts
type ThemeOptions = {
light: string;
dark: string;
};
export interface iSVG {
id: number;
title: string;
category: string | string[];
route: string | ThemeOptions;
wordmark?: string | ThemeOptions;
url: string;
}
```
## Endpoints
<Endpoint title="Get all SVGs" method="GET" description="Returns all the SVGs in the repository.">
```bash
/api/svgs
```
<p></p>
```json
// Returns:
[
{
"id": 0,
"title": "Discord",
"category": "Software",
"route": "https://svgl.app/library/discord.svg",
"url": "https://discord.com/"
},
...
]
```
</Endpoint>
<Endpoint title="Get a limited number of SVGs" method="GET" description="Returns a limited number of SVGs in the repository. Start from the first SVG.">
```bash
/api/svgs?limit=10
```
<p></p>
```json
// Returns:
[
{
"id": 0,
"title": "Discord",
"category": "Software",
"route": "https://svgl.app/library/discord.svg",
"url": "https://discord.com/"
},
...
]
```
</Endpoint>
<Endpoint title="Filter SVGs by category" method="GET" description="Returns all the SVGs in the repository that match the category.">
```bash
/api/svgs?category=software
```
<p></p>
```json
// Returns:
[
{
"id": 0,
"title": "Discord",
"category": "Software",
"route": "https://svgl.app/library/discord.svg",
"url": "https://discord.com/"
},
...
]
```
The list of categories is available [here](https://github.com/pheralb/svgl/blob/main/src/types/categories.ts) (except for the _all_ category).
</Endpoint>
<Endpoint title="Get only categories" method="GET" description="Returns only categories with the number of SVGs in each category.">
```bash
/api/categories
```
<p></p>
```json
// Returns:
[
{
"category": "Software",
"total": 97
},
{
"category": "Library",
"total": 25
},
...
]
```
</Endpoint>
<Endpoint title="Search SVGs by name" method="GET" description="Returns all the SVGs in the repository that match the name.">
```bash
/api/svgs?search=axiom
```
<p></p>
```json
// Returns:
[
{
"id": 267,
"title": "Axiom",
"category": "Software",
"route": {
"light": "https://svgl.app/library/axiom-light.svg",
"dark": "https://svgl.app/library/axiom-dark.svg"
},
"url": "https://axiom.co/"
}
]
```
</Endpoint>
+37
View File
@@ -0,0 +1,37 @@
declare const SITE_URL: string
figma.showUI(`<script>window.location.href = '${SITE_URL}'</script>`, {
width: 400,
height: 700,
})
figma.ui.onmessage = async (message, props) => {
if (!SITE_URL.includes(props.origin)) {
return
}
switch (message.type) {
case 'EVAL': {
const fn = eval.call(null, message.code)
try {
const result = await fn(figma, message.params)
figma.ui.postMessage({
type: 'EVAL_RESULT',
result,
id: message.id,
})
} catch (e) {
figma.ui.postMessage({
type: 'EVAL_REJECT',
error: typeof e === 'string' ? e : e && typeof e === 'object' && 'message' in e ? e.message : null,
id: message.id,
})
}
break
}
}
}
+26
View File
@@ -0,0 +1,26 @@
export function copyToClipboard(value: string) {
try {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
if (window.copy) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
window.copy(value);
} else {
const area = document.createElement('textarea');
document.body.appendChild(area);
area.value = value;
// area.focus();
area.select();
const result = document.execCommand('copy');
document.body.removeChild(area);
if (!result) {
throw new Error();
}
}
} catch (e) {
console.error(`Unable to copy the value: ${value}`);
return false;
}
return true;
}
+80
View File
@@ -0,0 +1,80 @@
/**
* This is a magic file that allows us to run code in the Figma plugin context
* from the iframe. It does this by getting the code as a string, and sending it
* to the plugin via postMessage. The plugin then evals the code and sends the
* result back to the iframe. There are a few caveats:
* 1. The code cannot reference any variables outside of the function. This is
* because the code is stringified and sent to the plugin, and the plugin
* evals it. The plugin has no access to the variables in the iframe.
* 2. The return value of the function must be JSON serializable. This is
* because the result is sent back to the iframe via postMessage, which only
* supports JSON.
*
* You can get around these limitations by passing in the variables you need
* as parameters to the function.
*
* @example
* ```ts
* const result = await figmaAPI.run((figma, {nodeId}) => {
* return figma.getNodeById(nodeId)?.name;
* }, {nodeId: "0:2"});
*
* console.log(result); // "Page 1"
* ```
*/
class FigmaAPI {
private id = 0
/**
* Run a function in the Figma plugin context. The function cannot reference
* any variables outside of itself, and the return value must be JSON
* serializable. If you need to pass in variables, you can do so by passing
* them as the second parameter.
*/
run<T, U>(fn: (figma: PluginAPI, params: U) => Promise<T> | T, params?: U): Promise<T> {
return new Promise((resolve, reject) => {
const id = this.id++
const cb = (event: MessageEvent) => {
if (event.origin !== 'https://www.figma.com' && event.origin !== 'https://staging.figma.com') {
return
}
if (event.data.pluginMessage?.type === 'EVAL_RESULT') {
if (event.data.pluginMessage.id === id) {
window.removeEventListener('message', cb)
resolve(event.data.pluginMessage.result)
}
}
if (event.data.pluginMessage?.type === 'EVAL_REJECT') {
if (event.data.pluginMessage.id === id) {
window.removeEventListener('message', cb)
const message = event.data.pluginMessage.error
reject(new Error(typeof message === 'string' ? message : 'An error occurred in FigmaAPI.run()'))
}
}
}
window.addEventListener('message', cb)
const msg = {
pluginMessage: {
type: 'EVAL',
code: fn.toString(),
id,
params,
},
pluginId: '*',
}
;['https://www.figma.com', 'https://staging.figma.com'].forEach((origin) => {
try {
parent.postMessage(msg, origin)
} catch (e) {
console.error(e)
}
})
})
}
}
export const figmaAPI = new FigmaAPI()
+22
View File
@@ -0,0 +1,22 @@
import { figmaAPI } from './figma-api'
export async function insertSVG(svgString: string) {
if (!svgString) return
figmaAPI.run(
async (figma, { svgString }: { svgString: string }) => {
const node = figma.createNodeFromSvg(svgString)
const selectedNode = figma.currentPage.selection[0]
if (selectedNode) {
node.x = selectedNode.x + selectedNode.width + 20
node.y = selectedNode.y
}
figma.currentPage.appendChild(node)
figma.currentPage.selection = [node]
figma.viewport.scrollAndZoomIntoView([node])
},
{ svgString },
)
}
+13
View File
@@ -0,0 +1,13 @@
{
"name": "SVGL",
"id": "1320306989350693206",
"api": "1.0.0",
"main": "dist/code.js",
"enableProposedApi": false,
"editorType": ["figma", "figjam"],
"permissions": ["currentuser"],
"networkAccess": {
"allowedDomains": ["*"],
"reasoning": "Internet access for local development."
}
}
+3 -1
View File
@@ -1,5 +1,7 @@
import type { LayoutServerLoad } from './$types';
import { fetchGitHubStars } from '@/utils/getStarsRepository';
export const load: LayoutServerLoad = async ({ url: { pathname } }) => {
return { pathname };
const stars = await fetchGitHubStars();
return { pathname, stars };
};
+53 -84
View File
@@ -8,107 +8,76 @@
// Get categories:
import { svgs } from '@/data/svgs';
const categories = svgs
.map((svg) => svg.category)
.flatMap((svg) => Array.isArray(svg.category) ? svg.category : [svg.category])
.filter((category, index, array) => array.indexOf(category) === index);
// Icons:
import Heart from 'phosphor-svelte/lib/Heart';
import ArrowUpRight from 'phosphor-svelte/lib/ArrowUpRight';
import ArrowLeft from 'phosphor-svelte/lib/ArrowLeft';
// Toaster:
import { Toaster } from 'svelte-french-toast';
import { Toaster } from 'svelte-sonner';
// Components for all pages:
import Transition from '@/components/transition.svelte';
import Container from '@/components/container.svelte';
import Theme from '@/components/theme.svelte';
import Warning from '@/components/warning.svelte';
// Layout:
import Navbar from '@/components/navbar.svelte';
import { cn } from '@/utils/cn';
</script>
<main class="min-h-screen bg-light font-sans text-mini dark:bg-dark dark:text-white">
<nav
class="z-50 w-full overflow-y-auto overflow-x-hidden border-b border-neutral-800 md:fixed md:top-0 md:left-0 md:h-full md:w-60 md:border-none md:pb-10"
<Navbar currentPath={data.pathname} />
<main>
<aside
class={cn(
'z-50 w-full overflow-y-auto overflow-x-hidden',
'dark:border-neutral-800 md:fixed md:left-0 md:h-full md:w-56 md:pb-10',
'bg-white dark:bg-neutral-900',
'backdrop-blur-md opacity-95',
'border-r border-neutral-200 dark:border-neutral-800'
)}
>
<div class="px-6 py-6">
<div class="mb-3 border-b border-neutral-300 pb-3 dark:border-neutral-700/40">
<div class="flex items-center justify-between">
<a href="/">
<div
class="flex items-center space-x-2 duration-150 hover:text-neutral-500 dark:hover:text-neutral-300"
>
<h3 class="text-xl font-medium">svgl</h3>
<p class="text-neutral-500">v3.0.0</p>
</div>
</a>
<Theme />
</div>
<p class="mt-2 font-medium text-neutral-400">✨ Optimized SVGs for web</p>
</div>
<div
class="flex items-center space-x-1 overflow-y-auto border-b border-neutral-300 pb-3 dark:border-neutral-700/40 md:mb-3 md:flex-col md:space-x-0 md:space-y-1 md:overflow-y-visible"
<div class="md:px-6 md:py-6">
<nav
class="flex items-center space-x-1 overflow-y-auto md:mb-3 md:flex-col md:space-x-0 md:space-y-1 md:overflow-y-visible px-5 md:px-0 pb-2 pt-3 md:pt-0"
>
{#each categories as category}
<a
href="/"
class={`flex w-full items-center rounded-md p-2 transition-none duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40 text-neutral-600 hover:text-dark dark:hover:text-white dark:text-neutral-400 ${
data.pathname === `/`
? 'bg-neutral-200 dark:bg-neutral-700/30 font-medium dark:text-white text-dark'
: ''
}`}
data-sveltekit-preload-data>All</a
>
<!-- Order alfabetically: -->
{#each categories.sort() as category}
<a
href={`/directory/${category.toLowerCase()}`}
class={`flex w-full items-center rounded-md p-2 transition-none duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40
${
data.pathname === `/directory/${category.toLowerCase()}`
? 'bg-neutral-200 dark:bg-neutral-700/30'
: ''
}`}
data-sveltekit-preload-data>{category}</a
class={cn(
'flex w-full items-center justify-between rounded-md p-2 transition-none duration-100 text-neutral-600 hover:text-dark dark:hover:text-white dark:text-neutral-400 hover:bg-neutral-200 dark:hover:bg-neutral-700/40',
data.pathname === `/directory/${category.toLowerCase()}`
? 'bg-neutral-200 dark:bg-neutral-700/30 font-medium dark:text-white text-dark'
: ''
)}
>
<span>{category}</span>
</a>
{/each}
</div>
<div
class="mt-3 flex flex-row items-center space-x-2 border-b border-neutral-300 pb-3 dark:border-neutral-700/40 md:mt-0 md:flex-col md:space-x-0 md:space-y-1"
>
<a
href="https://github.com/pheralb/svgl#-getting-started"
target="_blank"
class="flex w-full items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40"
>
<span>Submit logo</span>
<ArrowUpRight size={16} />
</a>
<a
href="https://github.com/pheralb/svgl#-getting-started"
target="_blank"
class="flex w-full items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40"
>
<span>Repository</span>
<ArrowUpRight size={16} />
</a>
</div>
<a
href="https://twitter.com/pheralb_"
target="_blank"
class="mt-5 flex items-center space-x-2 duration-100 hover:text-dark dark:text-neutral-400 dark:hover:text-white"
>
<Heart color="#991b1b" size={18} weight={'duotone'} />
<div class="flex items-center space-x-1">
<p class="text-muted text-sm">Created by pheralb</p>
<ArrowUpRight size={12} />
</div>
</a>
</nav>
</div>
</nav>
<div class="py-2 md:ml-60 md:py-6">
{#if data.pathname !== '/'}
<Container>
<a href="/">
<div
class="flex items-center space-x-2 duration-100 dark:text-neutral-400 dark:hover:text-white"
>
<ArrowLeft size={20} />
<span>Back to home</span>
</div>
</a>
</Container>
{/if}
</aside>
<div class="ml-0 md:ml-56 pb-6">
<Warning />
<Transition pathname={data.pathname}>
<slot />
</Transition>
<Toaster position="bottom-center" />
<Toaster
position="bottom-right"
toastOptions={{
class: 'font-sans',
descriptionClass: 'font-mono',
style: `background-color: #262626;
color: #ffff;
border-radius: 0.4rem; border: 1px solid #121212;`
}}
/>
</div>
</main>
+99 -11
View File
@@ -1,47 +1,135 @@
<script lang="ts">
import type { iSVG } from '@/types/svg';
import { cn } from '@/utils/cn';
// Get all svgs:
import { svgs } from '@/data/svgs';
const allSvgs = JSON.parse(JSON.stringify(svgs));
import { svgsData } from '@/data';
const allSvgs = JSON.parse(JSON.stringify(svgsData));
// Components:
import Search from '@/components/search.svelte';
import Container from '@/components/container.svelte';
import SvgCard from '@/components/svgCard.svelte';
import Grid from '@/components/grid.svelte';
import NotFound from '@/components/notFound.svelte';
// Icons:
import { ArrowDown, ArrowDownUpIcon, ArrowUpDownIcon } from 'lucide-svelte';
import { buttonStyles } from '@/ui/styles';
let sorted: boolean = false;
let isFirstLoad: boolean = true;
let showAll: boolean = false;
// Search:
let searchTerm = '';
let filteredSvgs: iSVG[] = [];
// Order by last added:
if (searchTerm.length === 0) {
filteredSvgs = allSvgs.sort((a: iSVG, b: iSVG) => {
return b.id - a.id;
return b.id! - a.id!;
});
}
const loadSvgs = () => {
if (isFirstLoad || showAll) {
filteredSvgs = allSvgs;
isFirstLoad = false;
} else {
filteredSvgs = allSvgs.slice(0, 30);
}
};
// Search svgs:
const searchSvgs = () => {
return (filteredSvgs = allSvgs.filter((svg: iSVG) => {
loadSvgs();
filteredSvgs = allSvgs.filter((svg: iSVG) => {
let svgTitle = svg.title.toLowerCase();
return svgTitle.includes(searchTerm.toLowerCase());
}));
});
};
// Clear search:
const clearSearch = () => {
searchTerm = '';
searchSvgs();
};
// Sort:
const sort = () => {
if (sorted) {
sortByLatest();
} else {
sortAlphabetically();
}
sorted = !sorted;
};
// Sort alphabetically:
const sortAlphabetically = () => {
filteredSvgs = allSvgs.sort((a: iSVG, b: iSVG) => {
return a.title.localeCompare(b.title);
});
};
// Sort by latest:
const sortByLatest = () => {
filteredSvgs = filteredSvgs.sort((a: iSVG, b: iSVG) => {
return b.id! - a.id!;
});
};
loadSvgs();
</script>
<svelte:head>
<title>A beautiful library with SVG logos - Svgl</title>
</svelte:head>
<Search
bind:searchTerm
on:input={searchSvgs}
clearSearch={() => clearSearch()}
placeholder={`Search ${filteredSvgs.length} logos...`}
/>
<Container>
<Search
bind:searchTerm
on:input={searchSvgs}
placeholder={`Search ${filteredSvgs.length} logos...`}
/>
<div class="flex items-center justify-end mb-4">
<button
class={cn(
'flex items-center justify-center space-x-1 rounded-md px-3 py-1.5 text-sm font-medium hover:opacity-80 transition-opacity',
filteredSvgs.length === 0 && 'hidden'
)}
on:click={() => sort()}
>
{#if sorted}
<ArrowDownUpIcon size={16} strokeWidth={2} class="mr-1" />
{:else}
<ArrowUpDownIcon size={16} strokeWidth={2} class="mr-1" />
{/if}
<span>{sorted ? 'Sort by latest' : 'Sort alphabetically'}</span>
</button>
</div>
<Grid>
{#each filteredSvgs as svg}
{#each filteredSvgs.slice(0, showAll ? undefined : 30) as svg}
<SvgCard svgInfo={svg} />
{/each}
</Grid>
{#if filteredSvgs.length > 30 && !showAll}
<div class="flex items-center justify-center mt-4">
<button class={buttonStyles} on:click={() => (showAll = true)}>
<div class="flex items-center space-x-2 relative">
<ArrowDown size={16} strokeWidth={2} />
<span>Load All SVGs</span>
<span class="opacity-70">
({filteredSvgs.length - 30} more)
</span>
</div>
</button>
</div>
{/if}
{#if filteredSvgs.length === 0}
<NotFound notFoundTerm={searchTerm} />
{/if}
</Container>
+49
View File
@@ -0,0 +1,49 @@
<script>
import { cn } from '@/utils/cn';
export let data;
</script>
<svelte:head>
<title>{data.meta.title} - SVGL</title>
<meta property="og:type" content="article" />
<meta property="og:title" content={data.meta.title} />
<meta property="og:description" content={data.meta.description} />
</svelte:head>
<section
class="bg-white dark:bg-neutral-900 bg-[url('/images/hero-pattern_light.svg')] dark:bg-[url('/images/hero-pattern_dark.svg')]"
>
<div class="py-8 px-4 mx-auto max-w-screen-xl text-center lg:py-20 z-10 relative">
<div class="flex items-center space-x-4 text-center justify-center">
<h1
class="mb-4 text-4xl font-bold tracking-tight leading-none text-neutral-900 md:text-5xl lg:text-6xl dark:text-white"
>
API Reference
</h1>
<span class="relative inline-block overflow-hidden rounded-full p-[1px] shadow-sm">
<span
class="absolute inset-[-1000%] animate-[spin_4s_linear_infinite] bg-[conic-gradient(from_90deg_at_50%_50%,#f4f4f5_0%,#f4f4f5_50%,#737373_100%)] dark:bg-[conic-gradient(from_90deg_at_50%_50%,#121212_0%,#121212_50%,#737373_100%)]"
/>
<div
class="inline-flex h-full w-full cursor-default items-center justify-center rounded-full bg-neutral-100 dark:bg-neutral-900 px-3 py-1 text-xs font-medium dark:text-white backdrop-blur-3xl border border-neutral-100 dark:border-neutral-800 font-mono"
>
beta
</div>
</span>
</div>
<p class="text-lg font-normal text-gray-500 lg:text-xl sm:px-16 lg:px-48 dark:text-gray-200">
The API reference is a detailed documentation of all the endpoints available in the API.
</p>
</div>
</section>
<article
class={cn(
'prose dark:prose-invert',
'mx-auto py-10 px-4 max-w-3xl',
'prose-h2:font-medium',
'prose-pre:m-0'
)}
>
<svelte:component this={data.content} />
</article>
+14
View File
@@ -0,0 +1,14 @@
import { error } from '@sveltejs/kit';
export async function load() {
try {
const documentTitle = 'api';
const post = await import(`../../docs/${documentTitle}.md`);
return {
content: post.default,
meta: post.metadata
};
} catch (e) {
throw error(404, `Could not find this page`);
}
}
+38
View File
@@ -0,0 +1,38 @@
import type { RequestEvent } from './$types';
import { json } from '@sveltejs/kit';
import { ratelimit } from '@/server/redis';
// Data:
import { svgs } from '@/data/svgs';
export const GET = async ({ request }: RequestEvent) => {
const categories = svgs
.map((svg) => svg.category)
.filter((category, index, array) => array.indexOf(category) === index);
const ip = request.headers.get('x-forwarded-for') ?? '';
const { success, reset } = await ratelimit.limit(ip);
// Error 429 | If rate limit is exceeded:
if (!success) {
const now = Date.now();
const retryAfter = Math.floor((reset - now) / 1000);
return new Response('Too Many Requests', {
status: 429,
headers: {
'Retry-After': retryAfter.toString()
}
});
}
// Status 200 | If limit is a number:
return json(
categories.map((category) => {
return {
category,
total: svgs.filter((svg) => svg.category === category).length
};
}),
{ status: 200 }
);
};
+120
View File
@@ -0,0 +1,120 @@
import type { RequestEvent } from './$types';
import type { iSVG } from '@/types/svg';
import { error, json } from '@sveltejs/kit';
import { ratelimit } from '@/server/redis';
// Data:
import { svgsData } from '@/data';
export const GET = async ({ url, request }: RequestEvent) => {
const fullUrl = url.origin ?? 'svgl.vercel.app';
const ip = request.headers.get('x-forwarded-for') ?? '';
const { success, reset } = await ratelimit.limit(ip);
// Error 429 | If rate limit is exceeded:
if (!success) {
const now = Date.now();
const retryAfter = Math.floor((reset - now) / 1000);
return new Response('Too Many Requests', {
status: 429,
headers: {
'Retry-After': retryAfter.toString()
}
});
}
// Params:
const getLimitParams = url.searchParams.get('limit');
const getCategoryParams = url.searchParams.get('category');
const getSearchParams = url.searchParams.get('search');
// Add full route to svgs:
const fullRouteSvgsData: iSVG[] = svgsData.map((svg) => {
if (typeof svg.route === 'object' && svg.route !== null) {
return {
...svg,
route: {
light: `${fullUrl}${svg.route.light}`,
dark: `${fullUrl}${svg.route.dark}`
}
};
} else if (typeof svg.route === 'string') {
return {
...svg,
route: `${fullUrl}${svg.route}`
};
}
return svg;
});
// Status 200 | If no limit is provided, return all svgs:
if (!getLimitParams && !getCategoryParams && !getSearchParams) {
return json(fullRouteSvgsData, { status: 200 });
}
const limit = Number(getLimitParams);
const category = getCategoryParams;
if (category) {
const categorySvgs = fullRouteSvgsData.filter((svg) => {
return svg.category === category.charAt(0).toUpperCase() + category.slice(1);
});
// Error 400 | If category does not exist:
if (categorySvgs.length === 0) {
error(400, {
message: 'Category does not exist.'
});
}
if (!getLimitParams) {
return json(categorySvgs, { status: 200 });
}
return json(categorySvgs.slice(0, limit), { status: 200 });
}
if (getSearchParams) {
const searchSvgs = fullRouteSvgsData.filter((svg) => {
return svg.title.toLowerCase().includes(getSearchParams.toLowerCase());
});
// Error 400 | If search does not exist:
if (searchSvgs.length === 0) {
error(400, {
message: 'Search does not exist.'
});
}
if (!getLimitParams) {
return json(searchSvgs, { status: 200 });
}
return json(searchSvgs.slice(0, limit), { status: 200 });
}
// Error 400 | if limit is not a number:
if (isNaN(limit)) {
error(400, {
message: 'Limit must be a number.'
});
}
// Error 400 | If limit is not positive:
if (limit < 1) {
error(400, {
message: 'Limit must be a positive number.'
});
}
// Error 400 | If limit is greater than the number of svgs:
if (limit > fullRouteSvgsData.length) {
error(400, {
message: 'Limit is greater than the number of svgs.'
});
}
// Status 200 | If limit is a number:
return json(fullRouteSvgsData.slice(0, limit), { status: 200 });
};
@@ -0,0 +1,16 @@
<script>
import Container from '@/components/container.svelte';
import { ArrowLeft } from 'lucide-svelte';
</script>
<Container>
<a href="/">
<div
class="flex items-center space-x-2 duration-100 hover:text-neutral-500 dark:text-neutral-400 dark:hover:text-white group md:mt-2"
>
<ArrowLeft size={20} class="group-hover:-translate-x-[2px] group-hover:duration-200" />
<span>View all</span>
</div>
</a>
</Container>
<slot />
+14 -3
View File
@@ -1,15 +1,17 @@
<script lang="ts">
import type { PageData } from './$types';
import type { iSVG } from '@/types/svg';
export let data: PageData;
let svgsByCategory = data.props?.svgs || [];
let category = data.props?.category || '';
let svgsByCategory = data.svgs || [];
let category = data.category || '';
// Components:
import Container from '@/components/container.svelte';
import Grid from '@/components/grid.svelte';
import Search from '@/components/search.svelte';
import SvgCard from '@/components/svgCard.svelte';
import NotFound from '@/components/notFound.svelte';
// Search:
let searchTerm = '';
@@ -17,7 +19,7 @@
if (searchTerm.length === 0) {
filteredSvgs = svgsByCategory.sort((a: iSVG, b: iSVG) => {
return b.id - a.id;
return a.title.localeCompare(b.title);
});
}
@@ -27,6 +29,11 @@
return svgTitle.includes(searchTerm.toLowerCase());
}));
};
const clearSearch = () => {
searchTerm = '';
searchSvgs();
};
</script>
<svelte:head>
@@ -37,6 +44,7 @@
<Search
bind:searchTerm
on:input={searchSvgs}
clearSearch={() => clearSearch()}
placeholder={`Search ${filteredSvgs.length} ${category} logos...`}
/>
<Grid>
@@ -44,4 +52,7 @@
<SvgCard svgInfo={svg} />
{/each}
</Grid>
{#if filteredSvgs.length === 0}
<NotFound notFoundTerm={searchTerm} />
{/if}
</Container>
+9 -5
View File
@@ -13,12 +13,16 @@ export const load = (async ({ params }) => {
}
// Filter out the svg with the matching slug:
const svgsByCategory = svgs.filter((svg: iSVG) => svg.category.toLowerCase() === slug);
const svgsByCategory = svgs.filter((svg: iSVG) => {
if (Array.isArray(svg.category)) {
return svg.category.some(categoryItem => categoryItem.toLowerCase() === slug);
} else {
return svg.category.toLowerCase() === slug;
}
});
return {
props: {
category: slug,
svgs: svgsByCategory
}
category: slug as string,
svgs: svgsByCategory
};
}) satisfies PageLoad;
+14
View File
@@ -0,0 +1,14 @@
import { Redis } from '@upstash/redis';
import { Ratelimit } from '@upstash/ratelimit';
import { UPSTASH_REDIS_TOKEN, UPSTASH_REDIS_URL, SVGL_API_REQUESTS } from '$env/static/private';
const redis = new Redis({
url: UPSTASH_REDIS_URL,
token: UPSTASH_REDIS_TOKEN
});
export const ratelimit = new Ratelimit({
redis: redis,
limiter: Ratelimit.slidingWindow(Number(SVGL_API_REQUESTS), '60s'),
analytics: true
});
+20
View File
@@ -0,0 +1,20 @@
export type tCategory =
| 'All'
| 'AI'
| 'Software'
| 'Library'
| 'Hosting'
| 'Framework'
| 'CMS'
| 'Database'
| 'Compiler'
| 'Crypto'
| 'Social'
| 'Entertainment'
| 'Browser'
| 'Language'
| 'Education'
| 'Design'
| 'Community'
| 'Marketplace'
| 'Fintech';
+14 -3
View File
@@ -1,7 +1,18 @@
import type { tCategory } from './categories';
type CategoryPair = [tCategory, tCategory];
type CategoryTriple = [tCategory, tCategory, tCategory];
type ThemeOptions = {
dark: string;
light: string;
};
export interface iSVG {
id: number;
id?: number;
title: string;
category: string;
route: string;
category: tCategory | CategoryPair | CategoryTriple;
route: string | ThemeOptions;
wordmark?: string | ThemeOptions;
url: string;
}
+38
View File
@@ -0,0 +1,38 @@
<script lang="ts">
import { Dialog as DialogPrimitive } from 'bits-ui';
import * as Dialog from '@/ui/dialog';
import { cn } from '@/utils/cn';
import { X } from 'lucide-svelte';
import { flyAndScale } from '@/utils/flyAndScale';
type $$Props = DialogPrimitive.ContentProps;
let className: $$Props['class'] = undefined;
export let transition: $$Props['transition'] = flyAndScale;
export let transitionConfig: $$Props['transitionConfig'] = {
duration: 200
};
export { className as class };
</script>
<Dialog.Portal>
<Dialog.Overlay />
<DialogPrimitive.Content
{transition}
{transitionConfig}
class={cn(
'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] border border-neutral-200 dark:border-neutral-800 dark:bg-neutral-900 bg-white p-6 shadow-lg sm:rounded-lg md:w-full',
className
)}
{...$$restProps}
>
<slot />
<DialogPrimitive.Close
class="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"
>
<X class="h-4 w-4" />
<span class="sr-only">Close</span>
</DialogPrimitive.Close>
</DialogPrimitive.Content>
</Dialog.Portal>
+13
View File
@@ -0,0 +1,13 @@
<script lang="ts">
import { Dialog as DialogPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
type $$Props = DialogPrimitive.DescriptionProps;
let className: $$Props['class'] = undefined;
export { className as class };
</script>
<DialogPrimitive.Description class={cn('text-sm opacity-70 mb-2', className)} {...$$restProps}>
<slot />
</DialogPrimitive.Description>
+16
View File
@@ -0,0 +1,16 @@
<script lang="ts">
import { cn } from '@/utils/cn';
import type { HTMLAttributes } from 'svelte/elements';
type $$Props = HTMLAttributes<HTMLDivElement>;
let className: $$Props['class'] = undefined;
export { className as class };
</script>
<div
class={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}
{...$$restProps}
>
<slot />
</div>
+13
View File
@@ -0,0 +1,13 @@
<script lang="ts">
import { cn } from '@/utils/cn';
import type { HTMLAttributes } from 'svelte/elements';
type $$Props = HTMLAttributes<HTMLDivElement>;
let className: $$Props['class'] = undefined;
export { className as class };
</script>
<div class={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...$$restProps}>
<slot />
</div>
+24
View File
@@ -0,0 +1,24 @@
<script lang="ts">
import { Dialog as DialogPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
import { fade } from 'svelte/transition';
type $$Props = DialogPrimitive.OverlayProps;
let className: $$Props['class'] = undefined;
export let transition: $$Props['transition'] = fade;
export let transitionConfig: $$Props['transitionConfig'] = {
duration: 150
};
export { className as class };
</script>
<DialogPrimitive.Overlay
{transition}
{transitionConfig}
class={cn(
'fixed inset-0 z-50 bg-neutral-100/80 dark:bg-neutral-900/80 backdrop-blur-sm',
className
)}
{...$$restProps}
/>
+8
View File
@@ -0,0 +1,8 @@
<script lang="ts">
import { Dialog as DialogPrimitive } from 'bits-ui';
type $$Props = DialogPrimitive.PortalProps;
</script>
<DialogPrimitive.Portal {...$$restProps}>
<slot />
</DialogPrimitive.Portal>
+16
View File
@@ -0,0 +1,16 @@
<script lang="ts">
import { Dialog as DialogPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
type $$Props = DialogPrimitive.TitleProps;
let className: $$Props['class'] = undefined;
export { className as class };
</script>
<DialogPrimitive.Title
class={cn('text-lg font-semibold leading-none tracking-tight', className)}
{...$$restProps}
>
<slot />
</DialogPrimitive.Title>
+34
View File
@@ -0,0 +1,34 @@
import { Dialog as DialogPrimitive } from 'bits-ui';
const Root = DialogPrimitive.Root;
const Trigger = DialogPrimitive.Trigger;
import Title from './dialog-title.svelte';
import Portal from './dialog-portal.svelte';
import Footer from './dialog-footer.svelte';
import Header from './dialog-header.svelte';
import Overlay from './dialog-overlay.svelte';
import Content from './dialog-content.svelte';
import Description from './dialog-description.svelte';
export {
Root,
Title,
Portal,
Footer,
Header,
Trigger,
Overlay,
Content,
Description,
//
Root as Dialog,
Title as DialogTitle,
Portal as DialogPortal,
Footer as DialogFooter,
Header as DialogHeader,
Trigger as DialogTrigger,
Overlay as DialogOverlay,
Content as DialogContent,
Description as DialogDescription
};
+8
View File
@@ -0,0 +1,8 @@
export const buttonStyles =
'flex items-center space-x-2 relative h-10 overflow-hidden rounded-md border border-neutral-200 dark:border-neutral-800 bg-transparent px-4 text-neutral-950 dark:text-white hover:bg-neutral-200/50 dark:hover:bg-neutral-800/50 focus:outline-none focus:ring-1 focus:ring-neutral-300 dark:focus:ring-neutral-700 transition-colors duration-100';
export const inputStyles =
'w-full border-b border-neutral-300 bg-white p-3 px-11 placeholder-neutral-500 focus:outline-none focus:ring-1 focus:ring-neutral-300 dark:border-neutral-800 dark:bg-neutral-900 dark:focus:ring-neutral-700';
export const badgeStyles =
'inline-flex items-center px-2.5 py-0.5 rounded-full font-medium bg-neutral-100 dark:bg-neutral-800/50 text-neutral-500 dark:text-neutral-400 text-xs font-mono hover:underline hover:bg-neutral-200 dark:hover:bg-neutral-700/50 transition-colors duration-100';
+6
View File
@@ -0,0 +1,6 @@
import { clsx, type ClassValue } from 'clsx';
import { twMerge } from 'tailwind-merge';
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
+43
View File
@@ -0,0 +1,43 @@
import { cubicOut } from 'svelte/easing';
import type { TransitionConfig } from 'svelte/transition';
type FlyAndScaleParams = {
y?: number;
x?: number;
start?: number;
duration?: number;
};
export const flyAndScale = (
node: Element,
params: FlyAndScaleParams = { y: -8, x: 0, start: 0.95, duration: 150 }
): TransitionConfig => {
const style = getComputedStyle(node);
const transform = style.transform === 'none' ? '' : style.transform;
const scaleConversion = (valueA: number, scaleA: [number, number], scaleB: [number, number]) => {
const [minA, maxA] = scaleA;
const [minB, maxB] = scaleB;
const percentage = (valueA - minA) / (maxA - minA);
const valueB = percentage * (maxB - minB) + minB;
return valueB;
};
const styleToString = (style: Record<string, number | string | undefined>): string => {
return Object.keys(style).reduce((str, key) => {
if (style[key] === undefined) return str;
return str + key + ':' + style[key] + ';';
}, '');
};
return {
duration: params.duration ?? 200,
delay: 0,
css: (t) => {
const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]);
const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]);
const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]);
return styleToString({
transform: transform + 'translate3d(' + x + 'px, ' + y + 'px, 0) scale(' + scale + ')',
opacity: t
});
},
easing: cubicOut
};
};
+10
View File
@@ -0,0 +1,10 @@
export async function fetchGitHubStars() {
const res = await fetch('https://api.github.com/repos/pheralb/svgl');
const response = await res.json();
const starsFormated =
response.stargazers_count > 1000
? `${(response.stargazers_count / 1000).toFixed(1)}K`
: response.stargazers_count;
return starsFormated;
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
+271
View File
@@ -0,0 +1,271 @@
<svg width="1440" height="462" viewBox="0 0 1440 462" fill="none" xmlns="http://www.w3.org/2000/svg">
<g opacity="0.3" clip-path="url(#clip0_302_24807)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 58.7206H48V0H47V57.4972H0V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48 58.7206H96V0H95V57.4972H48V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M96 58.7206H144V0H143V57.4972H96V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 58.7206H192V0H191V57.4972H144V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192 58.7206H240V0H239V57.4972H192V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M240 58.7206H288V0H287V57.4972H240V58.7206Z" fill="#262626"/>
<path d="M288 0H336V58.7206H288V0Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M288 58.7206H336V0H335V57.4972H288V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336 58.7206H384V0H383V57.4972H336V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M384 58.7206H432V0H431V57.4972H384V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M432 58.7206H480V0H479V57.4972H432V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M480 58.7206H528V0H527V57.4972H480V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M528 58.7206H576V0H575V57.4972H528V58.7206Z" fill="#262626"/>
<path d="M576 0H624V58.7206H576V0Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M576 58.7206H624V0H623V57.4972H576V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M624 58.7206H672V0H671V57.4972H624V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M672 58.7206H720V0H719V57.4972H672V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M720 58.7206H768V0H767V57.4972H720V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M768 58.7206H816V0H815V57.4972H768V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M816 58.7206H864V0H863V57.4972H816V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M864 58.7206H912V0H911V57.4972H864V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M912 58.7206H960V0H959V57.4972H912V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M960 58.7206H1008V0H1007V57.4972H960V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1008 58.7206H1056V0H1055V57.4972H1008V58.7206Z" fill="#262626"/>
<path d="M1056 0H1104V58.7206H1056V0Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1056 58.7206H1104V0H1103V57.4972H1056V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1104 58.7206H1152V0H1151V57.4972H1104V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1152 58.7206H1200V0H1199V57.4972H1152V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1200 58.7206H1248V0H1247V57.4972H1200V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1248 58.7206H1296V0H1295V57.4972H1248V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1296 58.7206H1344V0H1343V57.4972H1296V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1344 58.7206H1392V0H1391V57.4972H1344V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1392 58.7206H1440V0H1439V57.4972H1392V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 117.441H48V58.7206L47 58.7206V116.218H0V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48 117.441H96V58.7206L95 58.7206V116.218H48V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M96 117.441H144V58.7206L143 58.7206V116.218H96V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 117.441H192V58.7206L191 58.7206V116.218H144V117.441Z" fill="#262626"/>
<path d="M192 58.7206H240V117.441H192V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192 117.441H240V58.7206L239 58.7206V116.218H192V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M240 117.441H288V58.7206L287 58.7206V116.218H240V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M288 117.441H336V58.7206L335 58.7206V116.218H288V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336 117.441H384V58.7206L383 58.7206V116.218H336V117.441Z" fill="#262626"/>
<path d="M384 58.7206H432V117.441H384V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M384 117.441H432V58.7206L431 58.7206V116.218H384V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M432 117.441H480V58.7206L479 58.7206V116.218H432V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M480 117.441H528V58.7206L527 58.7206V116.218H480V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M528 117.441H576V58.7206L575 58.7206V116.218H528V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M576 117.441H624V58.7206L623 58.7206V116.218H576V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M624 117.441H672V58.7206L671 58.7206V116.218H624V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M672 117.441H720V58.7206L719 58.7206V116.218H672V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M720 117.441H768V58.7206L767 58.7206V116.218H720V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M768 117.441H816V58.7206L815 58.7206V116.218H768V117.441Z" fill="#262626"/>
<path d="M816 58.7206H864V117.441H816V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M816 117.441H864V58.7206L863 58.7206V116.218H816V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M864 117.441H912V58.7206L911 58.7206V116.218H864V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M912 117.441H960V58.7206L959 58.7206V116.218H912V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M960 117.441H1008V58.7206L1007 58.7206V116.218H960V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1008 117.441H1056V58.7206L1055 58.7206V116.218H1008V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1056 117.441H1104V58.7206L1103 58.7206V116.218H1056V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1104 117.441H1152V58.7206L1151 58.7206V116.218H1104V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1152 117.441H1200V58.7206L1199 58.7206V116.218H1152V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1200 117.441H1248V58.7206L1247 58.7206V116.218H1200V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1248 117.441H1296V58.7206L1295 58.7206V116.218H1248V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1296 117.441H1344V58.7206L1343 58.7206V116.218H1296V117.441Z" fill="#262626"/>
<path d="M1344 58.7206H1392V117.441H1344V58.7206Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1344 117.441H1392V58.7206L1391 58.7206V116.218H1344V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1392 117.441H1440V58.7206L1439 58.7206V116.218H1392V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 168.397H48V117.441H47V167.335H0V168.397Z" fill="#262626"/>
<path d="M48 117.441H96V168.397H48V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48 168.397H96V117.441H95V167.335H48V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M96 168.397H144V117.441H143V167.335H96V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 168.397H192V117.441H191V167.335H144V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192 168.397H240V117.441H239V167.335H192V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M240 168.397H288V117.441H287V167.335H240V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M288 168.397H336V117.441H335V167.335H288V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336 168.397H384V117.441H383V167.335H336V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M384 168.397H432V117.441H431V167.335H384V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M432 168.397H480V117.441H479V167.335H432V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M480 168.397H528V117.441H527V167.335H480V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M528 168.397H576V117.441H575V167.335H528V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M576 168.397H624V117.441H623V167.335H576V168.397Z" fill="#262626"/>
<path d="M624 117.441H672V168.397H624V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M624 168.397H672V117.441H671V167.335H624V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M672 168.397H720V117.441H719V167.335H672V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M720 168.397H768V117.441H767V167.335H720V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M768 168.397H816V117.441H815V167.335H768V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M816 168.397H864V117.441H863V167.335H816V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M864 168.397H912V117.441H911V167.335H864V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M912 168.397H960V117.441H959V167.335H912V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M960 168.397H1008V117.441H1007V167.335H960V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1008 168.397H1056V117.441H1055V167.335H1008V168.397Z" fill="#262626"/>
<path d="M1056 117.441H1104V168.397H1056V117.441Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1056 168.397H1104V117.441H1103V167.335H1056V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1104 168.397H1152V117.441H1151V167.335H1104V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1152 168.397H1200V117.441H1199V167.335H1152V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1200 168.397H1248V117.441H1247V167.335H1200V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1248 168.397H1296V117.441H1295V167.335H1248V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1296 168.397H1344V117.441H1343V167.335H1296V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1344 168.397H1392V117.441H1391V167.335H1344V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1392 168.397H1440V117.441H1439V167.335H1392V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 227.118H48V168.397H47V225.894H0V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48 227.118H96V168.397H95V225.894H48V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M96 227.118H144V168.397H143V225.894H96V227.118Z" fill="#262626"/>
<path d="M144 168.397H192V227.118H144V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 227.118H192V168.397H191V225.894H144V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192 227.118H240V168.397H239V225.894H192V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M240 227.118H288V168.397H287V225.894H240V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M288 227.118H336V168.397H335V225.894H288V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336 227.118H384V168.397H383V225.894H336V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M384 227.118H432V168.397H431V225.894H384V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M432 227.118H480V168.397H479V225.894H432V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M480 227.118H528V168.397H527V225.894H480V227.118Z" fill="#262626"/>
<path d="M528 168.397H576V227.118H528V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M528 227.118H576V168.397H575V225.894H528V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M576 227.118H624V168.397H623V225.894H576V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M624 227.118H672V168.397H671V225.894H624V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M672 227.118H720V168.397H719V225.894H672V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M720 227.118H768V168.397H767V225.894H720V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M768 227.118H816V168.397H815V225.894H768V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M816 227.118H864V168.397H863V225.894H816V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M864 227.118H912V168.397H911V225.894H864V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M912 227.118H960V168.397H959V225.894H912V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M960 227.118H1008V168.397H1007V225.894H960V227.118Z" fill="#262626"/>
<path d="M1008 168.397H1056V227.118H1008V168.397Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1008 227.118H1056V168.397H1055V225.894H1008V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1056 227.118H1104V168.397H1103V225.894H1056V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1104 227.118H1152V168.397H1151V225.894H1104V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1152 227.118H1200V168.397H1199V225.894H1152V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1200 227.118H1248V168.397H1247V225.894H1200V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1248 227.118H1296V168.397H1295V225.894H1248V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1296 227.118H1344V168.397H1343V225.894H1296V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1344 227.118H1392V168.397H1391V225.894H1344V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1392 227.118H1440V168.397H1439V225.894H1392V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 285.838H48V227.118H47V284.615H0V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48 285.838H96V227.118H95V284.615H48V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M96 285.838H144V227.118H143V284.615H96V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 285.838H192V227.118H191V284.615H144V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192 285.838H240V227.118H239V284.615H192V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M240 285.838H288V227.118H287V284.615H240V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M288 285.838H336V227.118H335V284.615H288V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336 285.838H384V227.118H383V284.615H336V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M384 285.838H432V227.118H431V284.615H384V285.838Z" fill="#262626"/>
<path d="M432 227.118H480V285.838H432V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M432 285.838H480V227.118H479V284.615H432V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M480 285.838H528V227.118H527V284.615H480V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M528 285.838H576V227.118H575V284.615H528V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M576 285.838H624V227.118H623V284.615H576V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M624 285.838H672V227.118H671V284.615H624V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M672 285.838H720V227.118H719V284.615H672V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M720 285.838H768V227.118H767V284.615H720V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M768 285.838H816V227.118H815V284.615H768V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M816 285.838H864V227.118H863V284.615H816V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M864 285.838H912V227.118H911V284.615H864V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M912 285.838H960V227.118H959V284.615H912V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M960 285.838H1008V227.118H1007V284.615H960V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1008 285.838H1056V227.118H1055V284.615H1008V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1056 285.838H1104V227.118H1103V284.615H1056V285.838Z" fill="#262626"/>
<path d="M1104 227.118H1152V285.838H1104V227.118Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1104 285.838H1152V227.118H1151V284.615H1104V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1152 285.838H1200V227.118H1199V284.615H1152V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1200 285.838H1248V227.118H1247V284.615H1200V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1248 285.838H1296V227.118H1295V284.615H1248V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1296 285.838H1344V227.118H1343V284.615H1296V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1344 285.838H1392V227.118H1391V284.615H1344V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1392 285.838H1440V227.118H1439V284.615H1392V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 344.559H48V285.838H47V343.335H0V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48 344.559H96V285.838H95V343.335H48V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M96 344.559H144V285.838H143V343.335H96V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 344.559H192V285.838H191V343.335H144V344.559Z" fill="#262626"/>
<path d="M192 285.838H240V344.559H192V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192 344.559H240V285.838H239V343.335H192V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M240 344.559H288V285.838H287V343.335H240V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M288 344.559H336V285.838H335V343.335H288V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336 344.559H384V285.838H383V343.335H336V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M384 344.559H432V285.838H431V343.335H384V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M432 344.559H480V285.838H479V343.335H432V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M480 344.559H528V285.838H527V343.335H480V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M528 344.559H576V285.838H575V343.335H528V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M576 344.559H624V285.838H623V343.335H576V344.559Z" fill="#262626"/>
<path d="M624 285.838H672V344.559H624V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M624 344.559H672V285.838H671V343.335H624V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M672 344.559H720V285.838H719V343.335H672V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M720 344.559H768V285.838H767V343.335H720V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M768 344.559H816V285.838H815V343.335H768V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M816 344.559H864V285.838H863V343.335H816V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M864 344.559H912V285.838H911V343.335H864V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M912 344.559H960V285.838H959V343.335H912V344.559Z" fill="#262626"/>
<path d="M960 285.838H1008V344.559H960V285.838Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M960 344.559H1008V285.838H1007V343.335H960V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1008 344.559H1056V285.838H1055V343.335H1008V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1056 344.559H1104V285.838H1103V343.335H1056V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1104 344.559H1152V285.838H1151V343.335H1104V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1152 344.559H1200V285.838H1199V343.335H1152V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1200 344.559H1248V285.838H1247V343.335H1200V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1248 344.559H1296V285.838H1295V343.335H1248V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1296 344.559H1344V285.838H1343V343.335H1296V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1344 344.559H1392V285.838H1391V343.335H1344V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1392 344.559H1440V285.838H1439V343.335H1392V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 403.279H48V344.559H47V402.056H0V403.279Z" fill="#262626"/>
<path d="M48 344.559H96V403.279H48V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48 403.279H96V344.559H95V402.056H48V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M96 403.279H144V344.559H143V402.056H96V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 403.279H192V344.559H191V402.056H144V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192 403.279H240V344.559H239V402.056H192V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M240 403.279H288V344.559H287V402.056H240V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M288 403.279H336V344.559H335V402.056H288V403.279Z" fill="#262626"/>
<path d="M336 344.559H384V403.279H336V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336 403.279H384V344.559H383V402.056H336V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M384 403.279H432V344.559H431V402.056H384V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M432 403.279H480V344.559H479V402.056H432V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M480 403.279H528V344.559H527V402.056H480V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M528 403.279H576V344.559H575V402.056H528V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M576 403.279H624V344.559H623V402.056H576V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M624 403.279H672V344.559H671V402.056H624V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M672 403.279H720V344.559H719V402.056H672V403.279Z" fill="#262626"/>
<path d="M720 344.559H768V403.279H720V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M720 403.279H768V344.559H767V402.056H720V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M768 403.279H816V344.559H815V402.056H768V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M816 403.279H864V344.559H863V402.056H816V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M864 403.279H912V344.559H911V402.056H864V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M912 403.279H960V344.559H959V402.056H912V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M960 403.279H1008V344.559H1007V402.056H960V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1008 403.279H1056V344.559H1055V402.056H1008V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1056 403.279H1104V344.559H1103V402.056H1056V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1104 403.279H1152V344.559H1151V402.056H1104V403.279Z" fill="#262626"/>
<path d="M1152 344.559H1200V403.279H1152V344.559Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1152 403.279H1200V344.559H1199V402.056H1152V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1200 403.279H1248V344.559H1247V402.056H1200V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1248 403.279H1296V344.559H1295V402.056H1248V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1296 403.279H1344V344.559H1343V402.056H1296V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1344 403.279H1392V344.559H1391V402.056H1344V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1392 403.279H1440V344.559H1439V402.056H1392V403.279Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 462H48V403.279H47V460.777H0V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48 462H96V403.279H95V460.777H48V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M96 462H144V403.279H143V460.777H96V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 462H192V403.279H191V460.777H144V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192 462H240V403.279H239V460.777H192V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M240 462H288V403.279H287V460.777H240V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M288 462H336V403.279H335V460.777H288V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336 462H384V403.279H383V460.777H336V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M384 462H432V403.279H431V460.777H384V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M432 462H480V403.279H479V460.777H432V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M480 462H528V403.279H527V460.777H480V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M528 462H576V403.279H575V460.777H528V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M576 462H624V403.279H623V460.777H576V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M624 462H672V403.279H671V460.777H624V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M672 462H720V403.279H719V460.777H672V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M720 462H768V403.279H767V460.777H720V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M768 462H816V403.279H815V460.777H768V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M816 462H864V403.279H863V460.777H816V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M864 462H912V403.279H911V460.777H864V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M912 462H960V403.279H959V460.777H912V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M960 462H1008V403.279H1007V460.777H960V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1008 462H1056V403.279H1055V460.777H1008V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1056 462H1104V403.279H1103V460.777H1056V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1104 462H1152V403.279H1151V460.777H1104V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1152 462H1200V403.279H1199V460.777H1152V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1200 462H1248V403.279H1247V460.777H1200V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1248 462H1296V403.279H1295V460.777H1248V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1296 462H1344V403.279H1343V460.777H1296V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1344 462H1392V403.279H1391V460.777H1344V462Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1392 462H1440V403.279H1439V460.777H1392V462Z" fill="#262626"/>
</g>
<defs>
<clipPath id="clip0_302_24807">
<rect width="1440" height="462" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 262 KiB

+1
View File
@@ -0,0 +1 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" fill="none"><g clip-path="url(#a)"><path fill="white" fill-rule="evenodd" clip-rule="evenodd" d="M32 16c0-8.836-7.164-16-16-16S0 7.164 0 16c0 8.837 7.164 16 16 16s16-7.163 16-16ZM13.063 6.989c-.101.199-.101.459-.101.98v4.107c0 .13 0 .195.017.256a.464.464 0 0 0 .07.148c.036.05.087.092.188.174l1.079.876c.121.099.182.148.204.208.02.052.02.11 0 .162-.022.059-.083.108-.204.207l-1.08.877c-.1.082-.15.123-.187.173a.463.463 0 0 0-.07.149c-.017.06-.017.125-.017.255v8.47c0 .521 0 .782.101.98a.93.93 0 0 0 .407.407c.198.101.459.101.98.101h3.1c.521 0 .781 0 .98-.101a.93.93 0 0 0 .407-.407c.101-.198.101-.459.101-.98v-4.107c0-.13 0-.195-.016-.255a.465.465 0 0 0-.071-.149 1.019 1.019 0 0 0-.188-.174l-1.079-.876c-.121-.099-.182-.148-.204-.208a.232.232 0 0 1 0-.161c.022-.06.083-.11.204-.208l1.08-.877c.1-.081.15-.122.187-.173a.466.466 0 0 0 .07-.149c.017-.06.017-.125.017-.255V7.97c0-.521 0-.781-.101-.98a.93.93 0 0 0-.407-.407c-.199-.101-.459-.101-.98-.101h-3.1c-.521 0-.781 0-.98.101a.93.93 0 0 0-.407.407Z"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h32v32H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+1
View File
@@ -0,0 +1 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" fill="none"><g clip-path="url(#a)"><path fill="black" fill-rule="evenodd" clip-rule="evenodd" d="M32 16c0-8.836-7.164-16-16-16S0 7.164 0 16c0 8.837 7.164 16 16 16s16-7.163 16-16ZM13.063 6.989c-.101.199-.101.459-.101.98v4.107c0 .13 0 .195.017.256a.464.464 0 0 0 .07.148c.036.05.087.092.188.174l1.079.876c.121.099.182.148.204.208.02.052.02.11 0 .162-.022.059-.083.108-.204.207l-1.08.877c-.1.082-.15.123-.187.173a.463.463 0 0 0-.07.149c-.017.06-.017.125-.017.255v8.47c0 .521 0 .782.101.98a.93.93 0 0 0 .407.407c.198.101.459.101.98.101h3.1c.521 0 .781 0 .98-.101a.93.93 0 0 0 .407-.407c.101-.198.101-.459.101-.98v-4.107c0-.13 0-.195-.016-.255a.465.465 0 0 0-.071-.149 1.019 1.019 0 0 0-.188-.174l-1.079-.876c-.121-.099-.182-.148-.204-.208a.232.232 0 0 1 0-.161c.022-.06.083-.11.204-.208l1.08-.877c.1-.081.15-.122.187-.173a.466.466 0 0 0 .07-.149c.017-.06.017-.125.017-.255V7.97c0-.521 0-.781-.101-.98a.93.93 0 0 0-.407-.407c-.199-.101-.459-.101-.98-.101h-3.1c-.521 0-.781 0-.98.101a.93.93 0 0 0-.407.407Z" /></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h32v32H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+1
View File
@@ -0,0 +1 @@
<svg viewBox="0 0 93 20" xmlns="http://www.w3.org/2000/svg" width="93" height="20" fill="none"><path fill="#FF7E23" fill-rule="evenodd" d="M6.815 19.719c4.869 0 7.122-2.254 7.122-5.494 0-2.845-1.83-4.79-4.197-5.352 1.662-.647 2.844-2.028 2.844-4.028 0-2.59-1.94-4.845-5.911-4.845H0v19.719h6.815ZM3.096 8V2.733h3.322c2.028 0 3.097.958 3.097 2.535C9.515 6.873 8.417 8 6.389 8H3.096Zm7.742 5.747c0-1.944-1.24-3.324-4.196-3.324H3.096v6.563h3.577c2.928 0 4.165-1.24 4.165-3.24Zm18.78-.226H18.043c.452 2.59 2.48 3.888 4.814 3.888 1.943 0 2.983-.507 4.055-1.353l1.717 1.634C27.335 19.157 25.476 20 22.774 20c-3.687 0-7.716-2.507-7.716-7.578 0-5.1 4.14-7.632 7.432-7.632 3.325 0 7.831 2.533 7.127 8.73Zm-11.545-2.255h8.813c-.28-2.59-2.505-3.86-4.39-3.86-1.86.003-3.945 1.27-4.423 3.86Zm19.874-6.479c-3.293 0-7.263 2.48-7.263 7.607 0 5.126 3.97 7.606 7.263 7.606 2.535 0 4.281-1.466 4.872-2.677h.168v2.393h3.041V5.068h-3.041v2.394h-.168c-.591-1.211-2.337-2.675-4.872-2.675Zm.395 2.706c2.279 0 4.73 1.632 4.73 4.9 0 3.27-2.449 4.903-4.73 4.9-2.28 0-4.701-1.633-4.701-4.9 0-3.265 2.42-4.9 4.7-4.9Zm20.832 1.913 2.366-1.07c-1.323-2.364-3.603-3.546-6.252-3.549-3.322 0-7.574 2.533-7.574 7.633 0 5.097 4.252 7.578 7.574 7.578 2.676 0 4.927-1.154 6.279-3.521l-2.393-1.07c-.874 1.183-2.056 1.887-3.857 1.887-2.167 0-4.646-1.634-4.646-4.874 0-3.295 2.48-4.929 4.646-4.929 1.801 0 2.986.733 3.857 1.915ZM69.871 20c3.35 0 7.602-2.48 7.602-7.578 0-5.1-4.251-7.632-7.602-7.632s-7.603 2.533-7.603 7.632c0 5.098 4.252 7.578 7.603 7.578Zm.002-2.704c-2.166 0-4.645-1.634-4.645-4.873 0-3.295 2.476-4.93 4.645-4.93 2.17 0 4.646 1.635 4.646 4.93 0 3.24-2.477 4.873-4.646 4.873Zm22.858 2.423V11.24c0-4.564-2.757-6.45-5.489-6.45-3.18 0-4.758 2.477-5.04 3.323V5.071h-3.04v14.645h3.04v-8.76c.14-1.237 1.493-3.491 3.998-3.491 1.857 0 3.49 1.156 3.49 3.943v8.31h3.041Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 240 234">
<path fill="#470137" d="M42.5 0h155C221 0 240 19 240 42.5v149c0 23.5-19 42.5-42.5 42.5h-155C19 234 0 215 0 191.5v-149C0 19 19 0 42.5 0z"/>
<path fill="#ff61f6" d="m126.2 61.5-30 49.5 32 52.5c.2.4.3.8.2 1.2-.1.4-.5.1-1.1.2h-22.9c-1.6 0-2.7-.1-3.4-1.1-2.1-4.2-4.3-8.3-6.4-12.5-2.1-4.1-4.4-8.3-6.8-12.6-2.4-4.3-4.8-8.6-7.2-13h-.2c-2.1 4.3-4.4 8.6-6.7 12.9-2.3 4.3-4.6 8.6-6.8 12.8-2.3 4.2-4.6 8.5-6.9 12.6-.4 1-1.2 1.1-2.3 1.1h-22c-.4 0-.7.2-.7-.3-.1-.4 0-.8.2-1.1l31.1-51L36 61.4c-.3-.4-.4-.8-.2-1 .2-.3.6-.4 1-.4h22.7c.5 0 1 .1 1.4.2.4.2.7.5 1 .9 1.9 4.3 4.1 8.6 6.4 12.9 2.4 4.3 4.7 8.5 7.2 12.7 2.4 4.2 4.6 8.4 6.7 12.7h.2c2.1-4.4 4.3-8.7 6.5-12.9 2.2-4.2 4.5-8.4 6.8-12.6 2.3-4.2 4.5-8.5 6.7-12.6.1-.4.3-.8.6-1 .4-.2.8-.3 1.3-.2h21.1c.5-.1 1 .2 1.1.7.1.1-.1.5-.3.7zM172.4 167c-7.4.1-14.8-1.4-21.5-4.5-6.3-2.9-11.5-7.7-15.1-13.6-3.7-6.1-5.5-13.7-5.5-22.8-.1-7.4 1.8-14.7 5.5-21.1 3.8-6.5 9.3-11.9 15.9-15.5 7-3.9 15.4-5.8 25.3-5.8.5 0 1.2 0 2.1.1.9.1 1.9.1 3.1.2V52.4c0-.7.3-1.1 1-1.1h20.3c.5-.1.9.3 1 .7v95.4c0 1.8.1 3.8.2 6 .2 2.1.3 4.1.4 5.8 0 .7-.3 1.3-1 1.6-5.2 2.2-10.7 3.8-16.3 4.8-5.1.9-10.2 1.4-15.4 1.4zm9.8-20v-44c-.9-.2-1.8-.4-2.7-.5-1.1-.1-2.2-.2-3.3-.2-3.9 0-7.8.8-11.3 2.6-3.4 1.7-6.3 4.2-8.5 7.4s-3.3 7.5-3.3 12.7c-.1 3.5.5 7 1.7 10.3 1 2.7 2.5 5.1 4.5 7.1 1.9 1.8 4.2 3.2 6.8 4 2.7.9 5.5 1.3 8.3 1.3 1.5 0 2.9-.1 4.2-.2 1.3.1 2.4-.1 3.6-.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

+12
View File
@@ -0,0 +1,12 @@
<svg width="91" height="80" viewBox="0 0 91 80" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_906_1839)">
<path d="M56.9686 0H90.4318V80L56.9686 0Z" fill="#EB1000"/>
<path d="M33.4632 0H0V80L33.4632 0Z" fill="#EB1000"/>
<path d="M45.1821 29.4668L66.5199 80.0002H52.5657L46.1982 63.9461H30.6182L45.1821 29.4668Z" fill="#EB1000"/>
</g>
<defs>
<clipPath id="clip0_906_1839">
<rect width="90.4318" height="80" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 475 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 1024 1024"><path fill="#134881" d="M1024 100c0-55.192-44.808-100-100-100H100C44.808 0 0 44.808 0 100v824c0 55.192 44.808 100 100 100h824c55.192 0 100-44.808 100-100V100Z"/><path fill="url(#a)" d="M2477 909.311c-.17 21.934-18.03 39.689-40 39.689h-403.69l-172.55-298.876H2477v259.187ZM1603 909V733.513L1983.19 75h148.58l-321.19 556.33L1993.98 949H1643c-22.08 0-40-17.923-40-40Zm487.17-292.956h-150.22c-16.77 0-32.27-8.8-40.65-23.327-8.38-14.502-8.38-32.433 0-46.935l75.15-130.17 115.72 200.432ZM2437 75c21.97 0 39.83 17.755 40 39.689v501.355h-347.48l-135.41-234.495L2171.1 75H2437Z" transform="translate(-1528)"/><defs><radialGradient id="a" cx="0" cy="0" r="1" gradientTransform="translate(2271.03 -89.26) scale(1038.26)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#6be1fb"/><stop offset="1" stop-color="#38bdfa"/></radialGradient></defs></svg>

After

Width:  |  Height:  |  Size: 1020 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 1024 1024"><path fill="#4e3188" d="M1023.994 100c0-55.192-44.807-100-99.999-100H100.002C44.81 0 .002 44.808.002 100v824c0 55.192 44.808 100 100 100h823.993c55.192 0 100-44.808 100-100V100Z"/><path fill="url(#a)" d="M3547 650.087V909c0 21.809-17.49 39.566-39.2 39.992l-264.42-.001-172.64-298.904H3547Zm-342.96 298.904h-467.78l234.02-404.714 233.76 404.714Zm-505.34-2.629c-14.15-5.425-24.44-18.652-25.59-34.397l-.11-178.463 190.17-329.251h148.64L2698.7 946.362Zm449.05-542.726c12.95.054 25.34 7.661 32.03 18.935.07.114.2.344.2.344l39.3 68.052.34.564c6.42 11.234 6.67 25.389.25 36.827-13.17 23.042-26.55 45.973-39.83 68.96-6.52 11.179-18.86 18.473-31.98 18.636-25.03.105-75.22.047-75.29.047-12.95-.054-25.54-6.959-32.24-18.233-.15-.244-.43-.743-.43-.743s-39.32-68.059-39.4-68.217c-6.43-11.234-6.42-25.747 0-37.185.09-.168.29-.504.29-.504s26.31-45.638 39.48-68.457c6.52-11.179 18.89-18.87 32-19.034.22-.001.66-.011.66-.011l74.17.019h.45Zm372.14-326.51-311.25 538.875H3547V115c0-17.566-11.35-32.503-27.11-37.874ZM3053.34 75h428.43l-231.7 401.157-214.21-370.881L3053.34 75Zm96.18 295.191h-266.68l133.34-230.855 133.34 230.855Z" transform="matrix(1 0 0 1 -2597.98 0)"/><defs><radialGradient id="a" cx="0" cy="0" r="1" gradientTransform="translate(3341.03 -89.259) scale(1038.25)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f9a6ff"/><stop offset="1" stop-color="#ea73ff"/></radialGradient></defs></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 1024 1024"><path fill="#891b26" d="M1024 100c0-55.192-44.808-100-100-100H100C44.808 0 0 44.808 0 100v824c0 55.192 44.808 100 100 100h824c55.192 0 100-44.808 100-100V100Z"/><path fill="url(#a)" d="m4145.14 949-257.8-446.348L3754 733.508V909c0 22.077 17.92 40 40 40h351.14Zm187.99 0h-148.64s-192.55-333.487-257.06-445.057c-12.63-21.85-12.64-48.87-.01-70.724 23.33-40.368 53.92-93.31 53.92-93.31L4333.13 949Zm187.99 0h-148.64l-369.29-646.928 72.14-124.89L4521.12 949ZM4628 808.578V909c0 22.077-17.92 40-40 40h-27.53L4095 143.121 4134.35 75h69.95L4628 808.578ZM4588 75h-344.36L4628 740.456V115c0-22.077-17.92-40-40-40Z" transform="translate(-3678.99)"/><defs><radialGradient id="a" cx="0" cy="0" r="1" gradientTransform="translate(4421.95 -89.26) scale(1038.26)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffae71"/><stop offset="1" stop-color="#ff9350"/></radialGradient></defs></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

+12
View File
@@ -0,0 +1,12 @@
<svg width="83" height="80" viewBox="0 0 83 80" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_912_9)">
<path d="M67.5214 0H14.5299C6.50526 0 0 6.50526 0 14.5299V65.4701C0 73.4947 6.50526 80 14.5299 80H67.5214C75.546 80 82.0513 73.4947 82.0513 65.4701V14.5299C82.0513 6.50526 75.546 0 67.5214 0Z" fill="#00005B"/>
<path d="M32.9624 47.8634H20.2474L17.6604 55.915C17.6252 56.0616 17.54 56.1913 17.4194 56.2817C17.2988 56.3721 17.1504 56.4177 16.9999 56.4104H10.5599C10.1927 56.4104 10.0642 56.2086 10.1746 55.805L21.1832 24.2314C21.2932 23.9012 21.4034 23.5783 21.5134 23.156C21.6576 22.4216 21.7313 21.6752 21.7336 20.9268C21.7261 20.8745 21.731 20.8212 21.7477 20.771C21.7644 20.7209 21.7926 20.6753 21.83 20.6379C21.8674 20.6005 21.9129 20.5723 21.9631 20.5556C22.0132 20.5389 22.0666 20.534 22.1189 20.5415H30.8708C31.127 20.5415 31.2738 20.6332 31.3111 20.8168L43.8058 55.86C43.9158 56.2272 43.8057 56.4107 43.4756 56.4104H36.32C36.1971 56.4241 36.0734 56.3925 35.9721 56.3216C35.8708 56.2507 35.7988 56.1453 35.7696 56.0251L32.9624 47.8634ZM22.2291 41.0745H30.9258C30.7056 40.3409 30.4487 39.5152 30.1551 38.5975C29.861 37.6807 29.5491 36.6991 29.2194 35.6527C28.8892 34.607 28.559 33.5611 28.2287 32.5153C27.8985 31.4695 27.5957 30.4604 27.3204 29.4879C27.0453 28.5161 26.7976 27.6263 26.5774 26.8184H26.5223C26.2126 28.305 25.8268 29.7747 25.3664 31.2218C24.8521 32.8731 24.3292 34.5611 23.7977 36.2857C23.2654 38.011 22.7425 39.6072 22.2291 41.0745Z" fill="#9999FF"/>
<path d="M64.0619 44.7295H53.2185C53.3513 45.8024 53.7076 46.8355 54.2644 47.7622C54.8799 48.6798 55.7504 49.3973 56.7687 49.8263C58.1487 50.4234 59.6413 50.716 61.1447 50.684C62.3374 50.6611 63.5256 50.5306 64.6949 50.2942C65.7407 50.153 66.7656 49.8858 67.7473 49.4985C67.9304 49.3523 68.0226 49.4435 68.0226 49.7737V55.0028C68.0316 55.1452 68.0031 55.2876 67.9399 55.4156C67.8769 55.5157 67.7923 55.6003 67.6922 55.6632C66.6033 56.1456 65.4574 56.4869 64.2821 56.6791C62.6854 56.979 61.0627 57.1173 59.4383 57.092C56.8323 57.092 54.6489 56.6883 52.8882 55.881C51.2236 55.1477 49.7535 54.0357 48.5949 52.6335C47.5127 51.3123 46.7077 49.7866 46.228 48.1475C45.753 46.5297 45.512 44.8522 45.5125 43.1661C45.5074 41.3251 45.7954 39.4949 46.3657 37.7444C46.9149 36.0369 47.7834 34.4492 48.9252 33.0658C50.0513 31.6985 51.4595 30.5908 53.0534 29.8182C54.6677 29.0296 56.5761 28.7466 58.7778 28.7466C60.6037 28.7005 62.4173 29.0576 64.0894 29.7924C65.4955 30.3921 66.7333 31.3269 67.6947 32.5153C68.5965 33.679 69.2859 34.9927 69.7313 36.3959C70.165 37.7481 70.3878 39.1591 70.3918 40.5791C70.3918 41.3867 70.3643 42.1206 70.3092 42.7808C70.2543 43.4413 70.2084 43.9183 70.1716 44.2119C70.1574 44.3333 70.099 44.4452 70.0077 44.5263C69.9163 44.6075 69.7984 44.6523 69.6762 44.6523C69.456 44.6523 69.0799 44.6798 68.5479 44.7349C68.0155 44.7899 67.355 44.8266 66.5664 44.8449C65.7768 44.8638 64.9426 44.7295 64.0619 44.7295ZM53.2185 39.7153H60.4291C61.3098 39.7153 61.9611 39.7061 62.383 39.6878C62.6654 39.6595 62.938 39.5692 63.1813 39.4232V39.0929C63.1702 38.6624 63.096 38.2359 62.9611 37.827C62.6641 36.8879 62.0671 36.0723 61.2616 35.5055C60.4561 34.9387 59.4869 34.652 58.5027 34.6895C57.5764 34.6335 56.6538 34.8483 55.8474 35.3077C55.0411 35.7671 54.3858 36.4511 53.9616 37.2765C53.5845 38.0442 53.3336 38.8677 53.2185 39.7153Z" fill="#9999FF"/>
</g>
<defs>
<clipPath id="clip0_912_9">
<rect width="82.0513" height="80" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="329.775 439.999 320.426 100.002">
<path fill="#ff5a5f" d="M498.65 465.125c0 3.604-2.904 6.506-6.508 6.506s-6.506-2.902-6.506-6.506 2.803-6.506 6.506-6.506c3.706.1 6.508 3.003 6.508 6.506zm-26.828 13.114v1.602s-3.102-4.006-9.709-4.006c-10.91 0-19.42 8.309-19.42 19.82 0 11.412 8.41 19.82 19.42 19.82 6.707 0 9.709-4.104 9.709-4.104v1.701c0 .801.602 1.4 1.402 1.4h8.107v-37.639h-8.107c-.8.003-1.402.705-1.402 1.406zm0 24.123c-1.5 2.203-4.504 4.105-8.107 4.105-6.406 0-11.312-4.004-11.312-10.812 0-6.807 4.906-10.811 11.312-10.811 3.504 0 6.707 2.002 8.107 4.104v13.414zm15.516-25.526h9.609v37.639h-9.609v-37.639zm143.545-1.002c-6.607 0-9.711 4.006-9.711 4.006v-21.121h-9.609v55.756h8.109c.801 0 1.4-.701 1.4-1.402v-1.701s3.104 4.104 9.709 4.104c10.912 0 19.42-8.406 19.42-19.818s-8.508-19.824-19.318-19.824zm-1.602 30.532c-3.705 0-6.607-1.9-8.109-4.104v-13.414c1.502-2.002 4.705-4.104 8.109-4.104 6.406 0 11.311 4.004 11.311 10.811s-4.904 10.811-11.311 10.811zm-22.722-14.213v22.422h-9.611v-21.322c0-6.205-2.002-8.709-7.404-8.709-2.902 0-5.906 1.502-7.811 3.705v26.227h-9.607v-37.639h7.605c.801 0 1.402.701 1.402 1.402v1.602c2.803-2.904 6.506-4.006 10.209-4.006 4.205 0 7.709 1.203 10.512 3.605 3.402 2.803 4.705 6.406 4.705 12.713zm-57.76-16.319c-6.605 0-9.709 4.006-9.709 4.006v-21.121h-9.609v55.756h8.107c.801 0 1.402-.701 1.402-1.402v-1.701s3.104 4.104 9.709 4.104c10.912 0 19.42-8.406 19.42-19.818.1-11.413-8.408-19.824-19.32-19.824zm-1.602 30.532c-3.703 0-6.605-1.9-8.107-4.104v-13.414c1.502-2.002 4.705-4.104 8.107-4.104 6.408 0 11.312 4.004 11.312 10.811s-4.904 10.811-11.312 10.811zm-26.025-30.532c2.902 0 4.404.502 4.404.502v8.908s-8.008-2.703-13.012 3.004v26.326h-9.611v-37.738h8.109c.801 0 1.4.701 1.4 1.402v1.602c1.804-2.103 5.708-4.006 8.71-4.006zm-99.799 35.237c-.5-1.201-1.001-2.502-1.501-3.604-.802-1.801-1.603-3.504-2.302-5.105l-.1-.1c-6.908-15.016-14.314-30.23-22.123-45.244l-.3-.602a196.953 196.953 0 0 1-2.401-4.705c-1.002-1.803-2.002-3.703-3.604-5.506-3.203-4.004-7.808-6.207-12.712-6.207-5.006 0-9.51 2.203-12.812 6.006-1.502 1.801-2.604 3.703-3.604 5.506a217.271 217.271 0 0 1-2.401 4.705l-.301.602c-7.708 15.014-15.215 30.229-22.122 45.244l-.101.199c-.7 1.604-1.502 3.305-2.303 5.105-.5 1.102-1 2.303-1.5 3.604-1.302 3.703-1.703 7.207-1.201 10.812 1.101 7.508 6.105 13.812 13.013 16.617 2.603 1.102 5.306 1.602 8.108 1.602.801 0 1.801-.1 2.603-.201 3.304-.4 6.707-1.5 10.011-3.402 4.104-2.303 8.008-5.605 12.412-10.41 4.404 4.805 8.408 8.107 12.412 10.41 3.305 1.902 6.707 3.002 10.01 3.402.801.102 1.803.201 2.604.201 2.803 0 5.605-.5 8.107-1.602 7.008-2.805 11.912-9.209 13.014-16.617.795-3.503.395-7.005-.906-10.71zm-45.144 5.205c-5.406-6.807-8.91-13.213-10.11-18.617-.5-2.303-.601-4.305-.3-6.107.199-1.602.801-3.004 1.602-4.205 1.902-2.701 5.105-4.404 8.809-4.404 3.705 0 7.008 1.602 8.81 4.404.801 1.201 1.401 2.604 1.603 4.205.299 1.803.199 3.904-.301 6.107-1.205 5.304-4.709 11.711-10.113 18.617zm39.938 4.705c-.7 5.205-4.204 9.711-9.108 11.713-2.402 1-5.006 1.301-7.607 1-2.502-.301-5.006-1.102-7.607-2.602-3.604-2.004-7.207-5.105-11.412-9.711 6.606-8.107 10.61-15.516 12.112-22.121.701-3.104.802-5.906.5-8.51-.399-2.502-1.301-4.805-2.702-6.807-3.105-4.506-8.311-7.107-14.115-7.107s-11.01 2.703-14.113 7.107c-1.401 2.002-2.303 4.305-2.703 6.807-.4 2.604-.301 5.506.5 8.51 1.501 6.605 5.605 14.113 12.111 22.221-4.104 4.605-7.808 7.709-11.412 9.711-2.603 1.502-5.104 2.303-7.606 2.602-2.702.301-5.306-.1-7.608-1-4.904-2.002-8.408-6.508-9.108-11.713-.3-2.502-.101-5.004.901-7.807.299-1.002.801-2.002 1.301-3.203.701-1.602 1.5-3.305 2.302-5.006l.101-.199c6.906-14.916 14.313-30.131 22.021-44.945l.3-.602c.802-1.5 1.603-3.102 2.403-4.604.801-1.602 1.701-3.104 2.803-4.406 2.102-2.4 4.904-3.703 8.008-3.703s5.906 1.303 8.008 3.703c1.102 1.305 2.002 2.807 2.803 4.406.802 1.502 1.603 3.104 2.402 4.604l.301.602a1325.424 1325.424 0 0 1 21.922 45.045v.1c.802 1.604 1.502 3.404 2.303 5.008.5 1.199 1.001 2.199 1.301 3.201.799 2.6 1.099 5.104.698 7.706z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg enable-background="new 0 0 1991.3 2143.2" viewBox="0 0 1991.3 2143.2" xmlns="http://www.w3.org/2000/svg">
<path d="m1851.6 1735.6c-15 111.6-90.1 208.1-195.2 251-51.5 21.4-107.3 27.9-163.1 21.4-53.6-6.4-107.3-23.6-163-55.7-77.2-43-154.5-109.4-244.6-208.1 141.6-173.8 227.4-332.5 259.6-474.1 15-66.5 17.2-126.6 10.7-182.4-8.6-53.6-27.9-103-57.9-145.9-66.5-96.5-178.1-152.3-302.5-152.3s-236 57.9-302.5 152.3c-30 42.9-49.3 92.3-57.9 145.9-8.6 55.8-6.4 118 10.7 182.4 32.2 141.6 120.1 302.5 259.6 476.2-88 98.7-167.3 165.2-244.6 208.1-55.8 32.2-109.4 49.4-163 55.8-55.3 6.2-111.2-1.2-163-21.4-105.1-42.9-180.2-139.5-195.2-251-6.4-53.6-2.1-107.2 19.3-167.3 6.4-21.5 17.2-42.9 27.9-68.6 15-34.3 32.2-70.8 49.3-107.3l2.2-4.3c148-319.7 306.8-645.8 472-963.3l6.4-12.9c17.2-32.1 34.3-66.5 51.5-98.7 17.2-34.3 36.5-66.5 60.1-94.4 45.1-51.5 105.1-79.4 171.6-79.4s126.6 27.9 171.6 79.4c23.6 27.9 42.9 60.1 60.1 94.4 17.2 32.2 34.3 66.5 51.5 98.6l6.5 12.9c163 319.6 321.8 645.7 469.8 965.4v2.1c17.2 34.3 32.2 73 49.3 107.3 10.7 25.8 21.5 47.2 27.9 68.6 17.1 55.9 23.5 109.5 14.9 165.3zm-856-100.9c-115.8-145.9-190.9-283.2-216.7-399-10.7-49.4-12.9-92.3-6.4-130.9 4.3-34.3 17.2-64.4 34.3-90.1 40.8-57.9 109.4-94.4 188.8-94.4s150.2 34.4 188.8 94.4c17.2 25.8 30 55.8 34.3 90.1 6.4 38.6 4.3 83.7-6.4 130.9-25.7 113.7-100.8 251-216.7 399zm967.6-111.5c-10.7-25.7-21.5-53.6-32.2-77.2-17.2-38.6-34.3-75.1-49.4-109.4l-2.1-2.1c-148-321.8-306.8-647.9-474.1-969.7l-6.4-12.9c-17.2-32.2-34.3-66.5-51.5-100.8-21.5-38.6-42.9-79.4-77.2-118-68.7-85.9-167.4-133.1-272.5-133.1-107.3 0-203.8 47.2-274.7 128.7-32.2 38.6-55.8 79.4-77.2 118-17.2 34.3-34.3 68.6-51.5 100.8l-6.4 12.8c-165.2 321.8-326.1 647.9-474.1 969.7l-2.1 4.3c-15 34.3-32.2 70.8-49.4 109.4-11.5 25.4-22.2 51.2-32.2 77.2-27.9 79.4-36.5 154.5-25.8 231.7 23.6 160.9 130.9 296.1 278.9 356.1 55.8 23.6 113.7 34.3 173.8 34.3 17.2 0 38.6-2.1 55.8-4.3 70.8-8.6 143.7-32.1 214.5-72.9 88-49.3 171.6-120.1 266-223.1 94.4 103 180.2 173.8 266 223.1 70.8 40.8 143.7 64.3 214.5 72.9 17.2 2.2 38.6 4.3 55.8 4.3 60.1 0 120.1-10.7 173.8-34.3 150.2-60.1 255.3-197.4 278.9-356.1 17.2-75 8.6-150-19.2-229.4z" fill="#e0565b"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.6 KiB

+20
View File
@@ -0,0 +1,20 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32">
<defs>
<linearGradient id="c" x1="16" x2="16" y1="0" y2="30" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#FFF" stop-opacity=".5"/>
<stop offset="100%" stop-opacity=".5"/>
</linearGradient>
<filter id="a" width="1.08" height="1.0966667" x="-.04" y="-.04" filterUnits="objectBoundingBox">
<feOffset dy=".5" in="SourceAlpha" result="shadowOffsetOuter1"/>
<feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation=".5"/>
<feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"/>
<feColorMatrix in="shadowBlurOuter1" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.199473505 0"/>
</filter>
<circle id="b" cx="16" cy="15" r="15"/>
</defs>
<use xlink:href="#b" filter="url(#a)" style="display:inline;fill-rule:evenodd"/>
<use xlink:href="#b" fill="#627eea" style="display:inline;fill:#e5e5e5;fill-opacity:1;fill-rule:evenodd"/>
<use xlink:href="#b" fill="url(#c)" style="display:inline;mix-blend-mode:soft-light;fill:url(#c);fill-rule:evenodd"/>
<circle cx="16" cy="15" r="14.5" stroke="#000" stroke-opacity=".097" style="display:inline;fill:none;fill-rule:evenodd"/>
<path d="m10.331859 23 7.221238-12.601771.99115 3.256638L13.022125 23h2.83186l3.539822-6.088495L20.951328 23H23.5l-2.40708-9.061945 1.699118-2.973453h-2.548674L19.252216 7h-2.407083L7.5 23Z" style="fill:#000;fill-opacity:1;stroke:none;stroke-width:.141594;stroke-opacity:1"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+1
View File
@@ -0,0 +1 @@
<svg fill="#005AF0" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>AMP</title><path d="M12 0c6.628 0 12 5.373 12 12s-5.372 12-12 12C5.373 24 0 18.627 0 12S5.373 0 12 0zm-.92 19.278l5.034-8.377a.444.444 0 00.097-.268.455.455 0 00-.455-.455l-2.851.004.924-5.468-.927-.003-5.018 8.367s-.1.183-.1.291c0 .251.204.455.455.455l2.831-.004-.901 5.458z"/></svg>

After

Width:  |  Height:  |  Size: 377 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="150" preserveAspectRatio="xMidYMid" viewBox="0 0 256 150"><path fill="#34A853" d="M255.285 143.47c-.084-.524-.164-1.042-.251-1.56a128.119 128.119 0 0 0-12.794-38.288 128.778 128.778 0 0 0-23.45-31.86 129.166 129.166 0 0 0-22.713-18.005c.049-.08.09-.168.14-.25 2.582-4.461 5.172-8.917 7.755-13.38l7.576-13.068c1.818-3.126 3.632-6.26 5.438-9.386a11.776 11.776 0 0 0 .662-10.484 11.668 11.668 0 0 0-4.823-5.536 11.85 11.85 0 0 0-5.004-1.61 11.963 11.963 0 0 0-2.218.018 11.738 11.738 0 0 0-8.968 5.798c-1.814 3.127-3.628 6.26-5.438 9.386l-7.576 13.069c-2.583 4.462-5.173 8.918-7.755 13.38-.282.487-.567.973-.848 1.467-.392-.157-.78-.313-1.172-.462-14.24-5.43-29.688-8.4-45.836-8.4-.442 0-.879 0-1.324.006-14.357.143-28.152 2.64-41.022 7.12a119.434 119.434 0 0 0-4.42 1.642c-.262-.455-.532-.911-.79-1.367-2.583-4.462-5.173-8.918-7.755-13.38L65.123 15.25c-1.818-3.126-3.632-6.259-5.439-9.386A11.736 11.736 0 0 0 48.5.048 11.71 11.71 0 0 0 43.49 1.66a11.716 11.716 0 0 0-4.077 4.063c-.281.474-.532.967-.742 1.473a11.808 11.808 0 0 0-.365 8.188c.259.786.594 1.554 1.023 2.296a3973.32 3973.32 0 0 1 5.439 9.386c2.53 4.357 5.054 8.713 7.58 13.069 2.582 4.462 5.168 8.918 7.75 13.38.02.038.046.075.065.112A129.184 129.184 0 0 0 45.32 64.38a129.693 129.693 0 0 0-22.2 24.015 127.737 127.737 0 0 0-9.34 15.24 128.238 128.238 0 0 0-10.843 28.764 130.743 130.743 0 0 0-1.951 9.524c-.087.518-.167 1.042-.247 1.56A124.978 124.978 0 0 0 0 149.118h256c-.205-1.891-.449-3.77-.734-5.636l.019-.012Z"/><path fill="#202124" d="M194.59 113.712c5.122-3.41 5.867-11.3 1.661-17.62-4.203-6.323-11.763-8.682-16.883-5.273-5.122 3.41-5.868 11.3-1.662 17.621 4.203 6.322 11.764 8.682 16.883 5.272ZM78.518 108.462c4.206-6.321 3.46-14.21-1.662-17.62-5.123-3.41-12.68-1.05-16.886 5.27-4.203 6.323-3.458 14.212 1.662 17.622 5.122 3.41 12.683 1.05 16.886-5.272Z"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+1 -1
View File
@@ -1 +1 @@
<svg width="256" height="272" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M.1 45.522 125.908.697l129.196 44.028-20.919 166.45-108.277 59.966-106.583-59.169L.1 45.522Z" fill="#E23237"/><path d="M255.104 44.725 125.908.697v270.444l108.277-59.866 20.919-166.55Z" fill="#B52E31"/><path d="M126.107 32.274 47.714 206.693l29.285-.498 15.739-39.347h70.325l17.233 39.845 27.99.498-82.179-174.917Zm.2 55.882 26.496 55.383h-49.806l23.31-55.383Z" fill="#FFF"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 242 256"><g clip-path="url(#a)"><mask id="b" width="242" height="256" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:luminance"><path fill="#fff" d="M0 0h242v256H0V0Z"/></mask><g mask="url(#b)"><path fill="url(#c)" d="m241 43-9 136L149 0l92 43Zm-58 176-62 36-63-36 12-31h101l12 31ZM121 68l32 80H88l33-80ZM9 179 0 43 92 0 9 179Z"/><path fill="url(#d)" d="m241 43-9 136L149 0l92 43Zm-58 176-62 36-63-36 12-31h101l12 31ZM121 68l32 80H88l33-80ZM9 179 0 43 92 0 9 179Z"/></g></g><defs><linearGradient id="c" x1="53.2" x2="245" y1="231.9" y2="140.7" gradientUnits="userSpaceOnUse"><stop stop-color="#E40035"/><stop offset=".2" stop-color="#F60A48"/><stop offset=".4" stop-color="#F20755"/><stop offset=".5" stop-color="#DC087D"/><stop offset=".7" stop-color="#9717E7"/><stop offset="1" stop-color="#6C00F5"/></linearGradient> <linearGradient id="d" x1="44.5" x2="170" y1="30.7" y2="174" gradientUnits="userSpaceOnUse"> <stop stop-color="#FF31D9"/><stop offset="1" stop-color="#FF5BE1" stop-opacity="0"/></linearGradient><clipPath id="a"><path fill="#fff" d="M0 0h242v256H0z"/></clipPath></defs></svg>

Before

Width:  |  Height:  |  Size: 486 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="209" height="256" viewBox="0 0 814 1000"><path fill="#fff" d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2zm-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3z"/></svg>

After

Width:  |  Height:  |  Size: 690 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" fill="none" viewBox="0 0 256 256"><rect width="256" height="256" fill="#F02E65" rx="60"/><path fill="#fff" fill-rule="evenodd" d="M159.946 192.801C148.186 192.801 137.162 189.649 127.675 184.142C120.556 188.263 112.645 191.02 104.341 192.181C87.4292 194.546 70.2701 190.096 56.6391 179.81C49.8831 174.719 44.1965 168.347 39.9042 161.058C35.612 153.768 32.7982 145.704 31.6236 137.327C30.4491 128.95 30.9369 120.423 33.0591 112.234C35.1813 104.045 38.8963 96.3552 43.9919 89.6029C49.0874 82.8505 55.4636 77.1683 62.756 72.8812C70.0485 68.5941 78.1141 65.786 86.4927 64.6173C94.8707 63.4488 103.397 63.9425 111.584 66.0705C117.235 67.5393 122.648 69.7668 127.679 72.683C137.166 67.1786 148.188 64.0268 159.946 64.0268C195.507 64.0268 224.333 92.8534 224.333 128.414C224.333 163.974 195.507 192.801 159.946 192.801ZM116.897 80.5317L116.917 80.5148C107.976 76.503 98.0123 75.0407 88.1517 76.4197C74.3622 78.3481 61.903 85.6756 53.5158 96.7901C45.1286 107.905 41.5001 121.895 43.4286 135.686C45.357 149.475 52.6844 161.934 63.7989 170.321C74.9132 178.708 88.9045 182.337 102.694 180.408C116.484 178.48 128.943 171.153 137.33 160.038C145.717 148.923 149.346 134.933 147.417 121.143C146.528 114.781 144.489 108.702 141.459 103.176C135.972 93.2076 127.339 85.214 116.897 80.5317Z" clip-rule="evenodd"/><path fill="#fff" d="M97.1484 106.137C97.071 106.327 96.0869 110.194 95.0265 114.78C93.9264 119.366 92.1827 126.606 91.1991 130.888C89.3021 138.734 88.165 143.889 88.165 144.572C88.165 144.76 89.3407 144.913 90.7799 144.913H93.3965L94.5698 139.681C95.2537 136.839 96.7702 130.319 97.9827 125.203C99.1959 120.085 100.673 113.87 101.243 111.367C101.81 108.865 102.379 106.593 102.493 106.327C102.608 105.987 101.962 105.874 99.9916 105.874C98.5126 105.874 97.2227 105.987 97.1484 106.137ZM76.7934 122.549L73.3062 126.34L74.3308 127.552C74.8975 128.234 76.4533 129.941 77.78 131.343L80.2057 133.92H87.1041L83.8452 130.394C82.0623 128.501 80.5839 126.681 80.5839 126.454C80.5839 126.189 81.9494 124.484 83.6175 122.664C85.2844 120.808 86.6492 119.214 86.6492 119.024C86.6492 118.873 85.2088 118.759 83.4658 118.759H80.3199L76.7934 122.549ZM103.326 118.986C103.326 119.101 103.971 119.82 104.765 120.616C107.724 123.573 109.808 126.076 109.694 126.567C109.619 126.833 108.177 128.613 106.435 130.471L103.29 133.92H106.814L110.339 133.882L113.559 130.358C115.342 128.388 116.782 126.642 116.782 126.415C116.782 126.227 115.266 124.445 113.37 122.437L109.96 118.759H106.661C104.804 118.759 103.326 118.873 103.326 118.986Z"/></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+1
View File
@@ -0,0 +1 @@
<svg viewBox="0 0 256 219" xmlns="http://www.w3.org/2000/svg" width="256" height="219" preserveAspectRatio="xMidYMid"><path fill="#FFF" d="M123.632.012c13.836.398 26.332 8.52 32.32 21.089l23.761 49.984.382-.966a58.846 58.846 0 0 0 2.315-7.64l.332-1.548c4.004-20.02 23.463-32.977 43.52-29.016a36.982 36.982 0 0 1 29.018 43.526c-5.337 26.652-19.095 51.387-38.829 70.983l-.625.607 8.33 17.514c9.668 20.33-.349 44.903-21.4 51.799l-.95.297-.725.219a36.691 36.691 0 0 1-9.897 1.373 37.012 37.012 0 0 1-33.42-21.102l-6.43-13.518-1.622.402c-8.692 2.054-17.508 3.192-26.328 3.367l-2.405.024c-8.488 0-17.116-.987-25.736-2.9l-1.7-.396-6.177 12.987a36.972 36.972 0 0 1-20.713 18.852l-1.1.382a36.963 36.963 0 0 1-28.96-2.484c-17.56-9.334-24.256-31.186-15.688-49.235l7.67-16.129-.67-.65C17.39 137.46 9.054 125.67 3.524 112.996l-.737-1.733-.106-.281C-4.93 92.058 4.21 70.517 23.122 62.86c14.834-6.005 31.278-1.693 41.39 9.578l.19.218 24.446-51.422A36.858 36.858 0 0 1 121.535.01L122.57 0l1.062.012Z"/><path fill="#1A007F" d="m87.118 170.045 21.896-46.068c-16.724-3.552-33.551-13.897-43.068-26.482L43.05 145.63c12.723 10.793 27.999 19.276 44.068 24.414"/><path fill="#4E000A" d="M178.495 96.115c-11 13.483-26.275 23.483-42.62 27.379l21.827 45.93c15.931-5.38 30.827-14.069 43.69-25.206l-22.897-48.103Z"/><path fill="#1A007F" d="M43.05 145.631 31.602 169.7c-5.828 12.241-1.449 27.31 10.551 33.689 12.724 6.758 28.379 1.483 34.517-11.38l10.448-21.964A130.635 130.635 0 0 1 43.05 145.63"/><path fill="#FF9396" d="M223.942 43.565a25.137 25.137 0 0 0-29.585 19.723c-2.414 12.07-8.069 23.31-15.862 32.862l22.862 48.137c21.103-18.31 36.688-43.24 42.275-71.137 2.724-13.655-6.104-26.896-19.69-29.585"/><path fill="#002DC8" d="M135.875 123.494c-4.896 1.172-9.896 1.793-14.896 1.793-3.896 0-7.93-.448-11.965-1.31-16.724-3.552-33.551-13.897-43.068-26.482-2.38-3.138-4.31-6.414-5.655-9.759-5.207-12.862-19.862-19.068-32.724-13.896C14.705 79.047 8.5 93.702 13.671 106.563c5.896 14.62 16.31 28.034 29.379 39.068a130.48 130.48 0 0 0 44.033 24.414c11.069 3.551 22.551 5.517 33.862 5.517 12.551 0 24.93-2.173 36.723-6.138l-21.793-45.93Z"/><path fill="#FF536A" d="m213.425 169.596-12.068-25.378-22.862-48.103-.034.035s0-.035.034-.035l-33.24-69.93a25.144 25.144 0 0 0-22.69-14.344c-9.69 0-18.517 5.586-22.689 14.345L65.98 97.495c9.517 12.585 26.344 22.93 43.068 26.482l10.965-23.034c1.035-2.173 4.138-2.173 5.173 0l10.724 22.551h.069-.07l21.828 45.93 10.724 22.551a25.103 25.103 0 0 0 22.723 14.345c2.242 0 4.483-.31 6.69-.931 15.138-4.173 22.31-21.586 15.551-35.793"/></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+1
View File
@@ -0,0 +1 @@
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="682.667" height="682.667" viewBox="0 0 512 512"><path fill="#fff" d="M236.5.6C233.8.8 225.4 1.9 218 3 147 13.5 83.2 54.1 42.8 114.5c-40.7 60.9-53 138.1-33.3 209.8C26.1 385.1 66 438.4 121 473.4c9.8 6.2 34.9 18.5 47.3 23 13.7 5.1 34.1 10.2 50.9 12.7 20.4 3.2 53.2 3.2 73.6 0 28.2-4.3 50.2-11.2 75.7-23.6 24.8-12.1 45.1-26.4 64.9-45.5 59.9-58.1 87.9-139.8 75.7-221.5C498.5 147 458 83.3 397.5 42.8c-29.9-20-66.2-34-103-39.8-12.7-2-45.9-3.4-58-2.4zM400.8 175c16.1 1.7 43.2 8.2 43.2 10.4 0 .9-12 38.8-12.4 39.3-.1.1-3.7-.9-7.9-2.2-20.3-6.2-46.9-7.7-67.5-3.6C293 231.3 245.1 283.7 238 348.1c-1.4 13-2.4 16.2-6.3 20.6-7.7 8.7-21.3 9.6-29.6 2-3.1-2.9-7.1-11.4-7.1-15.2 0-6.4-4.2-20.4-9-30-10.1-20.2-26.1-34.1-48-41.7-9-3-10.3-3.2-24-3.3-11.4 0-16.1.4-22 2-4.1 1.1-7.9 2-8.4 2s-3.7-8.8-7.2-19.5c-4.5-14-6-19.7-5.1-20.2 1.8-1.1 16-4.8 23-6 9.7-1.6 32-1.3 41.2.7 26.5 5.6 46.7 16.5 65.6 35.6l10.6 10.7 3.2-6.7c8.7-17.7 21.4-35.2 35.9-49.8 39.6-39.9 95.3-60.1 150-54.3z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="114" height="46" viewBox="0 0 114 46" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 23C0 10.2983 10.2621 3.05934e-05 22.9192 3.05934e-05C35.5764 3.05934e-05 45.8385 10.2983 45.8385 23V45.3426C45.8385 45.7067 45.5462 46 45.1833 46H33.3971C33.2234 46 33.0568 45.9307 32.9339 45.8074C32.811 45.6841 32.742 45.5169 32.742 45.3426V23C32.742 21.0504 32.1659 19.1446 31.0866 17.5235C30.0072 15.9025 28.4731 14.639 26.6782 13.8929C24.8834 13.1469 22.9083 12.9517 21.0029 13.332C19.0975 13.7124 17.3472 14.6512 15.9735 16.0298C14.5997 17.4083 13.6642 19.1648 13.2852 21.0769C12.9062 22.9891 13.1007 24.9711 13.8441 26.7723C14.5876 28.5735 15.8466 30.113 17.462 31.1961C19.0773 32.2793 20.9765 32.8574 22.9192 32.8574H30.4501C30.813 32.8574 31.1052 33.1507 31.1052 33.5148V45.3426C31.1052 45.7067 30.8111 46 30.4501 46H22.9192C10.2621 46 0 35.7017 0 23ZM82.0203 4.19944C82.3641 3.90811 82.3373 3.35994 81.9496 3.13186C78.4443 1.07452 74.4553 -0.00663037 70.3945 3.05934e-05C57.7374 3.05934e-05 47.4753 10.2983 47.4753 23V45.3426C47.4753 45.7067 47.7694 46 48.1304 46H59.9166C60.2795 46 60.5717 45.7067 60.5717 45.3426V23C60.5713 21.3684 60.9745 19.7622 61.7451 18.3254C62.5157 16.8887 63.6297 15.6664 64.987 14.7682C66.3444 13.87 67.9027 13.324 69.5222 13.1791C71.1417 13.0342 72.7716 13.2949 74.2659 13.938C74.3517 13.9758 74.444 13.9962 74.5376 13.998C74.6313 13.9999 74.7243 13.9831 74.8115 13.9487C74.8986 13.9144 74.9781 13.863 75.0455 13.7977C75.1128 13.7324 75.1666 13.6544 75.2037 13.5681C76.7034 9.94641 79.0406 6.735 82.0222 4.19944H82.0203ZM97.8976 3.05934e-05C103.834 -0.00813064 109.54 2.303 113.807 6.44386C114.065 6.69302 114.063 7.10702 113.807 7.36194L105.48 15.7205C105.352 15.8445 105.182 15.9144 105.004 15.9154C104.826 15.9165 104.654 15.8487 104.525 15.7263C103.146 14.4609 101.436 13.6165 99.5957 13.2921C97.7554 12.9677 95.861 13.1768 94.1349 13.8949C92.4088 14.6129 90.9226 15.8101 89.8507 17.346C88.7788 18.8819 88.1656 20.6928 88.0832 22.5661C88.0008 24.4394 88.4525 26.2974 89.3854 27.9221C90.3182 29.5468 91.6935 30.8708 93.3498 31.7388C95.0061 32.6067 96.8748 32.9825 98.7365 32.8222C100.598 32.6618 102.376 31.9719 103.86 30.8334C103.991 30.7296 104.155 30.677 104.322 30.6855C104.488 30.694 104.646 30.7629 104.766 30.8794L113.127 39.2706C113.19 39.3319 113.239 39.4054 113.272 39.4865C113.305 39.5677 113.321 39.6547 113.319 39.7424C113.318 39.83 113.298 39.9163 113.262 39.996C113.225 40.0758 113.173 40.1472 113.108 40.2059C108.919 43.946 103.505 46.0084 97.8976 46C85.2404 46 74.9783 35.7017 74.9783 23C74.9783 10.2983 85.2404 3.05934e-05 97.8976 3.05934e-05Z" fill="white"/></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

+1
View File
@@ -0,0 +1 @@
<svg width="62" height="24" viewBox="0 0 62 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 12C0 5.37259 5.58071 0 12.4649 0C19.349 0 24.9297 5.37259 24.9297 12V20.5714V23.6571C24.9297 23.8466 24.7703 24 24.5736 24H18.1631C17.9663 24 17.8069 23.8466 17.8069 23.6571V20.5714V12C17.8069 9.15969 15.4153 6.85714 12.4649 6.85714C9.51451 6.85714 7.12278 9.15969 7.12278 12C7.12278 14.8404 9.51451 17.1429 12.4649 17.1429H16.5605C16.7572 17.1429 16.9166 17.2963 16.9166 17.4857V23.6571C16.9166 23.8466 16.7572 24 16.5605 24H12.4649C5.58071 24 0 18.6274 0 12ZM44.608 2.19125C44.795 2.03861 44.7804 1.7533 44.5688 1.63418C42.7238 0.595354 40.5765 0 38.2849 0C31.4008 0 25.8201 5.37259 25.8201 12V20.5714V23.6571C25.8201 23.8466 25.9794 24 26.1762 24H32.5867C32.7835 24 32.9428 23.8466 32.9428 23.6571V20.5714V12C32.9428 9.15969 35.3345 6.85714 38.2849 6.85714C39.0326 6.85714 39.7446 7.00505 40.3908 7.27214C40.5868 7.35317 40.819 7.26861 40.9008 7.0789C41.7202 5.17615 43.0007 3.50391 44.608 2.19125ZM53.2427 0C56.6033 0 59.6532 1.28028 61.895 3.36182C62.0356 3.49234 62.034 3.70793 61.896 3.84087L57.3659 8.20198C57.2246 8.3381 56.9952 8.33458 56.8478 8.20464C55.8976 7.36774 54.632 6.85714 53.2427 6.85714C50.2923 6.85714 47.9007 9.15969 47.9007 12C47.9007 14.8404 50.2923 17.1429 53.2427 17.1429C54.4627 17.1429 55.5872 16.7493 56.4865 16.0865C56.635 15.9771 56.8462 15.9833 56.9785 16.1107L61.526 20.4886C61.6681 20.6254 61.6649 20.8486 61.5148 20.977C59.314 22.8578 56.417 24 53.2427 24C46.3586 24 40.7779 18.6274 40.7779 12C40.7779 5.37259 46.3586 0 53.2427 0Z" fill="black"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+1 -1
View File
@@ -1 +1 @@
<svg width="256" height="264" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><defs><linearGradient x1="137.073%" y1="-40.996%" x2="85.999%" y2="56.205%" id="a"><stop stop-color="#FF1639" offset="0%"/><stop stop-color="#FF1639" stop-opacity="0" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><path d="M156.377 4.834c1.575 1.956 2.379 4.595 3.986 9.874l35.105 115.32a146.081 146.081 0 0 0-41.97-14.209l-22.857-77.24a2.975 2.975 0 0 0-5.708.008l-22.58 77.193a146.086 146.086 0 0 0-42.159 14.23L95.471 14.682c1.612-5.27 2.418-7.904 3.994-9.857A12.97 12.97 0 0 1 104.72.936C107.048 0 109.804 0 115.315 0h25.196c5.518 0 8.277 0 10.607.938a13.016 13.016 0 0 1 5.259 3.896Z" fill="#000"/><path d="M160.577 135.516c-5.787 4.949-17.338 8.324-30.643 8.324-16.33 0-30.017-5.084-33.65-11.922-1.298 3.92-1.589 8.404-1.589 11.269 0 0-.856 14.068 8.929 23.852a9.199 9.199 0 0 1 9.2-9.198c8.707 0 8.697 7.596 8.69 13.76l-.001.55c0 9.355 5.718 17.375 13.85 20.757a18.86 18.86 0 0 1-1.896-8.268c0-8.923 5.238-12.246 11.326-16.108 4.845-3.072 10.227-6.485 13.936-13.332a25.145 25.145 0 0 0 3.034-12.013 25.24 25.24 0 0 0-1.186-7.67Z" fill="#FF5D01"/><path d="M160.577 135.516c-5.787 4.949-17.338 8.324-30.643 8.324-16.33 0-30.017-5.084-33.65-11.922-1.298 3.92-1.589 8.404-1.589 11.269 0 0-.856 14.068 8.929 23.852a9.199 9.199 0 0 1 9.2-9.198c8.707 0 8.697 7.596 8.69 13.76l-.001.55c0 9.355 5.718 17.375 13.85 20.757a18.86 18.86 0 0 1-1.896-8.268c0-8.923 5.238-12.246 11.326-16.108 4.845-3.072 10.227-6.485 13.936-13.332a25.145 25.145 0 0 0 3.034-12.013 25.24 25.24 0 0 0-1.186-7.67Z" fill="url(#a)"/><path d="M28.014 221.64c15.874 0 24.2 5.68 24.2 16.418v10.464c.006 4.954.09 7.704.389 10.311l.062.52c.109.866.242 1.732.405 2.673h-7.704c-.389-2.49-.544-5.214-.544-8.093-4.591 6.458-12.45 9.571-25.446 9.571-11.75 0-19.376-4.28-19.376-11.672 0-3.502 1.478-6.537 4.124-8.482 2.802-2.023 6.459-3.424 16.341-3.969l24.279-1.4v-.779c0-6.225-6.225-9.882-16.73-9.882-10.661 0-17.12 3.035-18.365 8.793H1.48c1.245-8.56 11.205-14.474 26.535-14.474Zm58.86 0c13.384 0 22.021 3.579 25.912 9.649l-6.303 3.034c-3.735-4.824-9.416-7.003-20.31-7.003-9.571 0-14.007 2.101-14.007 6.147 0 3.19 2.88 4.67 8.015 5.058l18.91 1.479c10.116.856 14.084 4.124 14.084 10.505 0 7.704-6.459 12.995-22.566 12.995-14.24 0-22.567-4.046-27.314-11.205l6.148-3.346c3.502 5.68 10.738 8.793 22.177 8.793 9.416 0 14.163-2.18 14.163-6.77 0-3.19-1.868-4.436-8.015-4.903l-18.754-1.478c-9.26-.778-14.162-4.046-14.162-10.816 0-7.548 8.248-12.14 22.022-12.14Zm141.19 0c16.575 0 27.936 8.403 27.936 20.932 0 12.528-11.361 20.932-27.936 20.932-16.574 0-27.935-8.404-27.935-20.932 0-12.529 11.36-20.933 27.935-20.933Zm-91.497-11.673v13.15h19.454v5.837h-19.454v18.053c0 6.692 3.658 9.338 10.427 9.338 3.19 0 6.46-.467 9.183-1.09v6.304c-1.946.856-6.381 1.556-10.038 1.556-14.396 0-17.042-7.704-17.042-15.407v-18.754H116.88v-5.836h12.217v-10.116l7.47-3.035Zm55.203 11.984c2.1 0 3.502.077 5.136.467v7.159c-1.79-.312-3.113-.467-5.214-.467-6.147 0-9.649 1.712-12.373 4.746-3.112 3.269-4.202 8.015-4.202 13.618v14.552h-7.392v-38.908h6.848V234.4c2.256-7.548 8.87-12.45 17.197-12.45ZM44.744 243.039l-22.8 1.4c-10.972.7-14.085 2.724-14.085 7.237 0 4.202 4.98 6.303 14.007 6.303 13.307 0 22.878-4.98 22.878-13.15v-1.79Zm183.32-15.252c-12.217 0-20.076 5.758-20.076 14.785 0 9.026 7.86 14.785 20.076 14.785 12.14 0 20.077-5.759 20.077-14.785 0-9.027-7.938-14.785-20.077-14.785Z" fill="#000"/></g></svg>
<svg viewBox="0 0 256 366" xmlns="http://www.w3.org/2000/svg" width="256" height="366" preserveAspectRatio="xMidYMid"><path d="M182.022 9.147c2.982 3.702 4.502 8.697 7.543 18.687L256 246.074a276.467 276.467 0 0 0-79.426-26.891L133.318 73.008a5.63 5.63 0 0 0-10.802.017L79.784 219.11A276.453 276.453 0 0 0 0 246.04L66.76 27.783c3.051-9.972 4.577-14.959 7.559-18.654a24.541 24.541 0 0 1 9.946-7.358C88.67 0 93.885 0 104.314 0h47.683c10.443 0 15.664 0 20.074 1.774a24.545 24.545 0 0 1 9.95 7.373Z"/><path fill="#FF5D01" d="M189.972 256.46c-10.952 9.364-32.812 15.751-57.992 15.751-30.904 0-56.807-9.621-63.68-22.56-2.458 7.415-3.009 15.903-3.009 21.324 0 0-1.619 26.623 16.898 45.14 0-9.615 7.795-17.41 17.41-17.41 16.48 0 16.46 14.378 16.446 26.043l-.001 1.041c0 17.705 10.82 32.883 26.21 39.28a35.685 35.685 0 0 1-3.588-15.647c0-16.886 9.913-23.173 21.435-30.48 9.167-5.814 19.353-12.274 26.372-25.232a47.588 47.588 0 0 0 5.742-22.735c0-5.06-.786-9.938-2.243-14.516Z"/></svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 974 B

+1
View File
@@ -0,0 +1 @@
<svg viewBox="0 0 256 366" xmlns="http://www.w3.org/2000/svg" width="256" height="366" preserveAspectRatio="xMidYMid"><path fill="#fff" d="M182.022 9.147c2.982 3.702 4.502 8.697 7.543 18.687L256 246.074a276.467 276.467 0 0 0-79.426-26.891L133.318 73.008a5.63 5.63 0 0 0-10.802.017L79.784 219.11A276.453 276.453 0 0 0 0 246.04L66.76 27.783c3.051-9.972 4.577-14.959 7.559-18.654a24.541 24.541 0 0 1 9.946-7.358C88.67 0 93.885 0 104.314 0h47.683c10.443 0 15.664 0 20.074 1.774a24.545 24.545 0 0 1 9.95 7.373Z"/><path fill="#FF5D01" d="M189.972 256.46c-10.952 9.364-32.812 15.751-57.992 15.751-30.904 0-56.807-9.621-63.68-22.56-2.458 7.415-3.009 15.903-3.009 21.324 0 0-1.619 26.623 16.898 45.14 0-9.615 7.795-17.41 17.41-17.41 16.48 0 16.46 14.378 16.446 26.043l-.001 1.041c0 17.705 10.82 32.883 26.21 39.28a35.685 35.685 0 0 1-3.588-15.647c0-16.886 9.913-23.173 21.435-30.48 9.167-5.814 19.353-12.274 26.372-25.232a47.588 47.588 0 0 0 5.742-22.735c0-5.06-.786-9.938-2.243-14.516Z"/></svg>

After

Width:  |  Height:  |  Size: 986 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

+1
View File
@@ -0,0 +1 @@
<svg fill="#EB5424" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M21.98 7.448L19.62 0H4.347L2.02 7.448c-1.352 4.312.03 9.206 3.815 12.015L12.007 24l6.157-4.552c3.755-2.81 5.182-7.688 3.815-12.015l-6.16 4.58 2.343 7.45-6.157-4.597-6.158 4.58 2.358-7.433-6.188-4.55 7.63-.045L12.008 0l2.356 7.404 7.615.044z"/></svg>

After

Width:  |  Height:  |  Size: 344 B

+1
View File
@@ -0,0 +1 @@
<svg viewBox="0 0 358 309" xmlns="http://www.w3.org/2000/svg" width="358" height="309" fill="none"><g clip-path="url(#a)"><path fill="#fff" d="M354.75 215.609 278.412 87.8475c-3.501-5.872-12.127-10.6761-19.17-10.6761h-47.659c-11.077 0-15.618-7.5477-10.093-16.7723l26.136-43.6269c2.074-3.4623 2.069-7.72483-.011-11.1835C225.534 2.13003 221.691 0 217.533 0h-66.485c-7.044 0-15.688 4.79349-19.212 10.6524L2.6449 225.448c-3.524953 5.859-3.526307 15.447-.00541 21.307L35.8815 302.08c5.5392 9.217 14.6223 9.228 20.1846.023l25.9742-42.98c5.5636-9.205 14.6452-9.195 20.1847.023l23.548 39.192c3.521 5.86 12.164 10.654 19.207 10.654h153.633c7.04 0 15.685-4.794 19.206-10.654l36.892-61.397c3.521-5.86 3.538-15.459.039-21.332Zm-103.096-6.149c5.505 9.236.945 16.794-10.132 16.794H122.021c-11.077 0-15.609-7.542-10.07-16.76l59.796-99.517c5.539-9.218 14.602-9.217 20.141.001l59.766 99.482Z"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h358v309H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 967 B

+1
View File
@@ -0,0 +1 @@
<svg viewBox="0 0 358 309" xmlns="http://www.w3.org/2000/svg" width="358" height="309" fill="none"><g clip-path="url(#a)"><path fill="#000" d="M354.75 215.609 278.412 87.8475c-3.501-5.872-12.127-10.6761-19.17-10.6761h-47.659c-11.077 0-15.618-7.5477-10.093-16.7723l26.136-43.6269c2.074-3.4623 2.069-7.72483-.011-11.1835C225.534 2.13003 221.691 0 217.533 0h-66.485c-7.044 0-15.688 4.79349-19.212 10.6524L2.6449 225.448c-3.524953 5.859-3.526307 15.447-.00541 21.307L35.8815 302.08c5.5392 9.217 14.6223 9.228 20.1846.023l25.9742-42.98c5.5636-9.205 14.6452-9.195 20.1847.023l23.548 39.192c3.521 5.86 12.164 10.654 19.207 10.654h153.633c7.04 0 15.685-4.794 19.206-10.654l36.892-61.397c3.521-5.86 3.538-15.459.039-21.332Zm-103.096-6.149c5.505 9.236.945 16.794-10.132 16.794H122.021c-11.077 0-15.609-7.542-10.07-16.76l59.796-99.517c5.539-9.218 14.602-9.217 20.141.001l59.766 99.482Z"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h358v309H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 967 B

+9
View File
@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="21.705 19.44 335.589 80.057">
<g fill="none" fill-rule="evenodd">
<path fill="#272727" d="M326.63 19.441c-13.71 0-21.455 2.647-25.902 8.85-4.646 6.479-5.58 16.706-5.58 31.11 0 28.276 4.375 40.096 31.482 40.096 3.256 0 14.385-.062 20.882-.855 2.528-.419 3.66-2.355 3.66-4.087v-3.123c0-2.43-1.836-4.264-4.273-4.264h-20.27c-15.294 0-18.052-3.605-18.444-24.101v-6.635c.13-20.974 2.888-24.662 18.445-24.662 14.345 0 17.096 3.273 17.573 21.738h-22.794v12.466h29.98c5.905 0 5.905-4.13 5.905-5.486v-3.98c-.428-28.753-7.307-37.067-30.664-37.067m-39.476 1.099-.326-.086c-2.792-.587-10.422-1.013-14.205-1.013-13.387 0-20.462 5.605-20.462 16.209v59.04c0 2.43 1.7 4.128 4.137 4.128h4.762c2.437 0 4.138-1.697 4.138-4.128V36.734c0-2.617.662-4.964 8.65-4.964l11.828-.01c1.158.138 2.263-.182 3.114-.903.929-.783 1.44-1.926 1.44-3.215v-2.987c0-1.96-1.122-3.46-3.076-4.115m-57.172-.148h-4.762c-2.436 0-4.138 1.697-4.138 4.128v62.649h-19.804c-12.25 0-17.22-.779-17.22-20.303V24.52c0-2.43-1.702-4.128-4.138-4.128h-4.627c-2.436 0-4.273 1.774-4.273 4.128v42.346c0 27.748 10.064 32.631 31.21 32.631 7.607 0 18.025 0 27.96-1.399l.23-.046c2.454-.613 3.699-2.018 3.699-4.176V24.52c0-2.43-1.702-4.128-4.137-4.128"/>
<path fill="#74bb11" d="M156.332 22.331c-.611-1.3-1.922-2.075-3.506-2.075h-6.121c-1.778 0-3.107.716-3.807 2.005l-9.072 13.255 7.942 10.861 13.866-19.89c1.522-1.849.995-3.523.698-4.156"/>
<path fill="#009cd9" d="m108.505 22.11-.008-.012c-1.383-1.843-3.223-1.843-3.828-1.843h-5.987c-1.534 0-2.79.705-3.446 1.932-.675 1.257-.532 2.767.402 4.166l22.179 30.746-25.504 35.572c-.891 1.338-1.016 2.825-.343 4.081.66 1.227 1.917 1.93 3.448 1.93h6.12c1.574 0 2.958-.817 3.65-2.104l28.547-39.337z"/>
<path fill="#eb2084" d="m159.377 92.982-17.794-24.42-7.827 10.79 14.072 18.781.366.16a4.416 4.416 0 0 0 1.775.388h5.985c1.446 0 2.673-.642 3.368-1.764.712-1.15.732-2.583.055-3.935"/>
<path fill="#272727" d="M68.774 65.43v20.738c-6.06.93-15.297 1.136-18.445 1.136-13.926 0-15.452-3.805-15.452-11.886 0-7.562 2.83-9.989 11.643-9.989zM49.649 19.44c-4.303 0-10.171.112-17.472.99l-.33.073c-2.127.605-3.204 2.002-3.204 4.152v2.986c0 2.546 1.585 4.128 4.137 4.128h16.87c13.583 0 19.124 3.68 19.124 12.701v8.767H46.52c-17.393 0-24.815 6.633-24.815 22.18 0 17.328 7.682 24.08 27.4 24.08 7.987 0 22.689-.621 28.123-2.278 4.582-1.272 4.582-4.772 4.582-5.922v-47.64c0-16.295-10.52-24.217-32.16-24.217z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="258" preserveAspectRatio="xMidYMid" viewBox="0 0 256 258"><defs><radialGradient id="a" cx="78.302%" cy="55.52%" r="78.115%" fx="78.302%" fy="55.52%" gradientTransform="scale(.99947 1) rotate(78.858 .783 .555)"><stop offset="0%" stop-color="#1BA1E3"/><stop offset=".01%" stop-color="#1BA1E3"/><stop offset="30.022%" stop-color="#5489D6"/><stop offset="54.552%" stop-color="#9B72CB"/><stop offset="82.537%" stop-color="#D96570"/><stop offset="100%" stop-color="#F49C46"/></radialGradient><radialGradient id="b" cx="-3.409%" cy="-54.219%" r="169.363%" fx="-3.409%" fy="-54.219%" gradientTransform="scale(.99946 1) rotate(78.858 -.034 -.542)"><stop offset="0%" stop-color="#1BA1E3"/><stop offset=".01%" stop-color="#1BA1E3"/><stop offset="30.022%" stop-color="#5489D6"/><stop offset="54.552%" stop-color="#9B72CB"/><stop offset="82.537%" stop-color="#D96570"/><stop offset="100%" stop-color="#F49C46"/></radialGradient></defs><path fill="url(#a)" d="m122.062 172.77-10.27 23.52c-3.947 9.042-16.459 9.042-20.406 0l-10.27-23.52c-9.14-20.933-25.59-37.595-46.108-46.703L6.74 113.52c-8.987-3.99-8.987-17.064 0-21.053l27.385-12.156C55.172 70.97 71.917 53.69 80.9 32.043L91.303 6.977c3.86-9.303 16.712-9.303 20.573 0l10.403 25.066c8.983 21.646 25.728 38.926 46.775 48.268l27.384 12.156c8.987 3.99 8.987 17.063 0 21.053l-28.267 12.547c-20.52 9.108-36.97 25.77-46.109 46.703Z"/><path fill="url(#b)" d="m217.5 246.937-2.888 6.62c-2.114 4.845-8.824 4.845-10.937 0l-2.889-6.62c-5.148-11.803-14.42-21.2-25.992-26.34l-8.898-3.954c-4.811-2.137-4.811-9.131 0-11.269l8.4-3.733c11.87-5.273 21.308-15.017 26.368-27.22l2.966-7.154c2.067-4.985 8.96-4.985 11.027 0l2.966 7.153c5.06 12.204 14.499 21.948 26.368 27.221l8.4 3.733c4.812 2.138 4.812 9.132 0 11.27l-8.898 3.953c-11.571 5.14-20.844 14.537-25.992 26.34Z"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 32 32"><path fill="#1b1b1f" fill-rule="evenodd" d="M28.057 6.53 17.952.532a3.8 3.8 0 0 0-3.88 0L3.965 6.53A4.03 4.03 0 0 0 2 10.002v11.996a4.03 4.03 0 0 0 1.948 3.472l10.105 5.998a3.8 3.8 0 0 0 3.88 0L28.04 25.47a4.03 4.03 0 0 0 1.948-3.472V10.002a4.03 4.03 0 0 0-1.93-3.472zM20.23 25.262v.86a.318.318 0 0 1-.148.265l-.512.293c-.08.042-.148 0-.148-.113v-.847a1.66 1.66 0 0 1-1.164.113c-.062-.042-.086-.122-.056-.2l.183-.78a.322.322 0 0 1 .102-.17.18.18 0 0 1 .05-.035.11.11 0 0 1 .08 0 1.41 1.41 0 0 0 1.059-.134 1.41 1.41 0 0 0 .79-1.21c0-.438-.24-.62-.82-.625-.734 0-1.4-.14-1.43-1.224a3.137 3.137 0 0 1 1.186-2.4v-.872a.34.34 0 0 1 .148-.268l.494-.314c.08-.042.148 0 .148.116v.872a1.61 1.61 0 0 1 .967-.116c.07.04.098.128.064.2l-.173.773a.325.325 0 0 1-.138.195c-.02.012-.05.008-.074 0a1.28 1.28 0 0 0-.931.152 1.17 1.17 0 0 0-.706 1.037c0 .395.208.515.907.53.935 0 1.337.423 1.348 1.362a3.346 3.346 0 0 1-1.228 2.53zm5.293-1.45a.201.201 0 0 1-.078.194L22.9 25.558c-.024.02-.06.023-.087.007s-.04-.05-.033-.08v-.66a.184.184 0 0 1 .116-.162l2.516-1.507c.024-.02.06-.023.087-.007s.04.05.033.08v.582zM27.288 9.06l-9.562 5.906c-1.193.706-2.07 1.478-2.07 2.914v11.778c0 .86.353 1.4.882 1.58a3.14 3.14 0 0 1-.53.053 3.13 3.13 0 0 1-1.595-.441L4.308 24.853A3.3 3.3 0 0 1 2.706 22V10.002a3.304 3.304 0 0 1 1.602-2.858l10.105-5.998c.98-.58 2.196-.58 3.176 0l10.105 5.998c.833.504 1.4 1.35 1.552 2.3-.328-.713-1.083-.9-1.962-.395h.003z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Some files were not shown because too many files have changed in this diff Show More