756 Commits

Author SHA1 Message Date
Pablo Hdez 3349654f79 Merge pull request #701 from agriyakhetarpal/add-zulip
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add Zulip and Zulip wordmark logos
2025-09-06 11:16:26 +01:00
Pablo Hdez ada05ad75b Merge pull request #710 from estebancastano/main
feat: added mulesoft svg icon
2025-09-06 11:15:09 +01:00
Pablo Hdez 5b27f543fa Merge pull request #757 from ria-ahyoung/feature/add-apache-kafka
feat: 📦 Add Kafka logo and wordmark svg
2025-09-06 11:14:16 +01:00
ria-ang 6d031bc995 feat: 📦 Add Kafka logo and wordmark svg 2025-09-06 11:48:19 +09:00
Pablo Hdez f45b2d9d27 Merge pull request #756 from jonahsnider/sanity-rebrand
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Update Sanity wordmark and add logo
2025-09-05 09:00:38 +01:00
Jonah Snider 9db8deed28 Update Sanity wordmark and add logo 2025-09-04 17:31:53 -07:00
Pablo Hdez ac9be2aa57 Merge pull request #754 from vladiantio/feat/add-ahrefs
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
📦 Add Ahrefs logo and wordmark
2025-08-29 13:45:58 +01:00
Pablo Hdez 88b4908c5e Merge pull request #753 from vladiantio/fix/update-windsurf-logo
 Update Windsurf logo + URL, and add wordmark + brand URL
2025-08-29 13:45:18 +01:00
Vladimir Antonio F. C. e854672fad 📦 Add Ahrefs logo and wordmark 2025-08-28 23:46:31 -04:00
Vladimir Antonio F. C. d45d23f501 🔧 Fix formatting in categories.ts by removing trailing semicolons 2025-08-28 23:01:21 -04:00
Vladimir Antonio F. C. 1aabcbb48c Update Windsurf logo + URL, and add wordmark + brand URL 2025-08-28 22:57:36 -04:00
Pablo Hdez 3392e73b1d Merge pull request #751 from phillvdm/add-powersync-logo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
📦 Build / 🛠️ Build app (push) Has been cancelled
Add PowerSync logo
2025-08-28 08:46:04 +01:00
Pablo Hdez 7a0289b957 Merge branch 'main' into add-powersync-logo 2025-08-28 08:45:49 +01:00
Pablo Hdez c9dd4ef63a Merge pull request #750 from vladiantio/feat/add-n8n
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
📦 Add n8n logo and wordmarks for dark and light themes
2025-08-26 19:03:15 +01:00
Pablo Hdez 3325a317b2 Merge branch 'main' into feat/add-n8n 2025-08-26 19:03:06 +01:00
Pablo Hdez 81d17872d0 Merge pull request #748 from vladiantio/feat/add-kibo-ui
📦 Add Kibo UI light + dark logos
2025-08-26 19:01:09 +01:00
phillvdm 527129c3fb Add PowerSync logo to svgl library
- Add PowerSync logo SVG files (icon and wordmarks)
- Add PowerSync entry to svgs.ts with Database category
- Include light and dark wordmark variants
2025-08-26 13:45:34 -04:00
Vladimir Antonio F. C. b87138fda2 📦 Add n8n logo and wordmarks for dark and light themes 2025-08-26 13:34:07 -04:00
Vladimir Antonio F. C. d3d193fcfa Update category types to include 'Platform' and 'Automation' 2025-08-26 13:30:29 -04:00
phillvdm 4a26bc7775 Add a 'Sync Engine' catergory for database sync engines like PowerSync, Zero, ElectricSQL and others. 2025-08-26 13:11:02 -04:00
Vladimir Antonio F. C. a13d7bbd41 📦 Add Kibo UI light + dark logos 2025-08-26 12:37:07 -04:00
Pablo Hdez fccc020d81 Merge pull request #746 from vladiantio/fix/readme-change-json-to-ts
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
📝 Update README.md to change JSON syntax to TS for `src/data/svgs.ts` examples
2025-08-23 01:28:01 +01:00
Pablo Hdez 0c39c8652d Merge pull request #745 from vladiantio/feat/add-unjs
📦 Add UnJS SVG logo
2025-08-23 01:26:24 +01:00
Vladimir Antonio F. C. a8897f28fd 📝 Update README.md to change JSON syntax to TypeScript for src/data/svgs.ts examples 2025-08-22 16:19:48 -04:00
Vladimir Antonio F. C. 48e404ca5b 📦 Add UnJS SVG logo 2025-08-22 15:41:44 -04:00
Pablo Hdez ca4f397e0a Merge pull request #717 from DrxcoDev2/main
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add Kimi AI
2025-08-20 22:43:25 +01:00
Pablo Hdez 00e2cdf758 Merge pull request #695 from sunfe2009/main
feat: add openhunts.svg
2025-08-20 22:42:14 +01:00
Pablo Hdez fbc8f6f115 Merge pull request #739 from mattppal/patch-1
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Move Replit from `software` -> `AI` category
2025-08-16 11:32:31 +01:00
Matt cb648fbc37 Move Replit from software -> AI category 2025-08-15 16:25:29 -07:00
Pablo Hdez 3541828ec3 Merge pull request #733 from ridemountainpig/add-heptabase
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add Heptabase logo
2025-08-12 23:53:56 +01:00
ridemountainpig 5cbeb13c09 Add Heptabase logo 2025-08-12 22:13:52 +08:00
Pablo Hdez 2244234bed Merge pull request #730 from plainsignal/ps
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add PlainSignal logo
2025-08-11 14:49:41 +01:00
PlainSignal 8dc9f3b5cc Add PlainSignal logo 2025-08-10 11:55:41 -07:00
Pablo Hdez c6861a3c8d Merge pull request #726 from SebConejo/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add Manifest logo
2025-08-06 22:41:29 +01:00
Pablo Hdez 3013e53898 Merge pull request #728 from disintegrator/patch-1
chore: add payment tag to polar
2025-08-06 22:40:39 +01:00
Pablo Hdez 65da5bd060 📦 Add eslint svg logo
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-08-06 12:27:18 +00:00
Georges Haidar 6a2298039c chore: add payment tag to polar
Polar is a payment infrastructure company so it seemed appropriate to tag them `Payment`
2025-08-06 11:57:01 +01:00
Sébastien Conejo ce06f7293d Reduce image size to 16KO 2025-08-06 09:44:27 +02:00
Pablo Hdez 41a8dff519 ⚙️ Add `html` lang to shiki config 2025-08-06 07:44:18 +00:00
Pablo Hdez 819e90ea4e 📄 Add /svg/*.svg endpoint to the API docs 2025-08-06 07:36:16 +00:00
Sébastien Conejo 4e3e3e32c5 Add Manifest logo 2025-08-06 09:26:05 +02:00
pheralb ad0768d5f0 🌱 Add new route to extract svg code directly (preview)
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-08-05 14:03:01 +01:00
pheralb 82fd3de572 🎨 Fixed viewbox property 2025-08-05 12:41:28 +01:00
pheralb 000c079c29 🛠️ Trying to fix CORS error, use it to global routes + clean redis url 2025-08-05 12:30:59 +01:00
pheralb f555ea67da ⬆️ Upgrade upstash ratelimit & redis 2025-08-05 12:22:30 +01:00
pheralb 83b9f07524 ⬆️ (api) Upgrade upstash, hono & cf/workers types & wrangler 2025-08-05 12:22:04 +01:00
Agriya Khetarpal 5e2a5e4d50 Merge main 2025-07-31 17:20:03 +05:30
Pablo Hdez 7864779abb Merge pull request #723 from alckordev/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
feat: 🚀 add mantine library
2025-07-29 17:06:28 +01:00
Alckor 4e97289238 feat: 🚀 add mantine library 2025-07-29 00:40:46 -05:00
Pablo Hdez f951e5c642 Merge pull request #709 from lloydrichards/docs/effect-logo
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
docs: add Effect logo
2025-07-28 09:38:36 +01:00
Pablo Hdez cd8f176495 Merge branch 'main' into docs/effect-logo 2025-07-28 09:38:19 +01:00
Pablo Hdez 7417ed8467 Merge pull request #720 from alckordev/main
feat: 🚀 add ark ui library
2025-07-28 09:36:46 +01:00
Alckor 17b0c2512f feat: 🚀 Add ark ui library 2025-07-25 17:27:19 -05:00
DrxcoDev2 cf498106be Add Kimi AI 2025-07-22 16:26:11 +02:00
estebancastano 7b5e1d99da feat: added mulesoft svg icon 2025-07-19 19:37:39 -05:00
pheralb 3a9bf33e86 🔧 Add overscroll-none class to all layout
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-07-19 15:19:22 +01:00
pheralb a0acf46afa 🔧 Fix grid layout by adjusting the column count for extra large screens 2025-07-19 15:18:59 +01:00
lloydrichards be8885397e docs: add brand guidelines 2025-07-18 12:17:08 +02:00
lloydrichards f3f169537b docs: add Effect logo 2025-07-18 11:52:56 +02:00
Pablo Hdez 07610a3cda Merge pull request #707 from danielz0102/request/google-classroom
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add Google Classroom logo
2025-07-18 09:04:26 +01:00
Pablo Hdez d3fc5ca9dc Merge pull request #705 from marcusljf/gemini-update
Gemini update
2025-07-18 09:02:34 +01:00
danielz0102 def73acf1f Add Google Classroom logo 2025-07-17 18:58:02 -06:00
Marcus Farrell 1aa47fd1c2 Updated the Gemini logo
Gemini update
2025-07-17 07:41:52 -07:00
Marcus Farrell e537b2ef37 Revert "Updated the Gemini logo"
This reverts commit f9fd98e0d1.
2025-07-17 07:40:31 -07:00
Marcus Farrell f9fd98e0d1 Updated the Gemini logo
Gemini update
2025-07-17 07:31:38 -07:00
Agriya Khetarpal 4347dc52c3 Register Zulip set of logos 2025-07-15 05:26:27 +05:30
Agriya Khetarpal 144fa7d7c4 Add Zulip and Zulip wordmark logos 2025-07-15 05:25:02 +05:30
Pablo Hdez 2e55c13bee Merge pull request #700 from estebancastano/main
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add Amazon Q svg logo
2025-07-14 22:49:49 +01:00
estebancastano bf46a6e1db Add Amazon Q svg logo 2025-07-14 11:15:09 -05:00
pheralb b47a7c59b2 🛠️ Add `save-exact` option for consistent dependency versions
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-07-14 12:08:51 +01:00
pheralb 1cc1ca8b97 📦 Use `svgo` dependency with exact version 2025-07-14 12:08:28 +01:00
pheralb dc8dffc5c9 ⚙️ Trying to fix copy react code 2025-07-14 12:07:55 +01:00
Pablo Hdez 958a7b9725 Merge pull request #696 from ridemountainpig/fix-duplicate-id
⚙️ fix: resolve duplicate id display issue
2025-07-14 10:38:30 +01:00
ridemountainpig 5c6d6651e3 ⚙️ fix: resolve duplicate id display issue 2025-07-14 16:31:57 +08:00
sunfe2009 db5d6f6824 feat: add openhunts.svg 2025-07-14 14:06:29 +08:00
pheralb 6fc3130fba ⚙️ Trying to fix prod deployment
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-07-13 20:51:48 +01:00
pheralb a1ecb75140 📦 Upgrade figma/typings, @upstash/*, lucide-svelte, shiki, svelte & svelte-check dependencies 2025-07-13 20:43:52 +01:00
pheralb 4cf881de70 ⚙️ Separate markdown config in another file, create custom config.js file 2025-07-13 20:42:54 +01:00
Pablo Hdez ee90046139 Merge pull request #691 from R4ULtv/main
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add Google Cloud SVG
2025-07-11 18:36:35 +01:00
Raul Carini 069c6956ce Add Google Cloud SVG 2025-07-11 18:35:14 +02:00
Pablo Hdez 9f149a6ba9 Merge pull request #685 from kokonutd/add/kokonutui
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
add: kokonutui
2025-06-26 20:39:09 +01:00
Dorian Baffier 311cd821d8 optimize svg 2025-06-27 02:40:54 +09:00
Dorian Baffier 82129da106 add: kokonutui 2025-06-27 02:37:36 +09:00
pheralb f4ea55cad8 🌱 Merge branch 'main' of github.com:pheralb/svgl
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-06-19 11:46:36 +01:00
pheralb f5d15f925f 📦 Add OpenRouter SVGs 2025-06-19 11:45:41 +01:00
Pablo Hdez a28eb0313a Merge pull request #676 from estebancastano/main
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add: UV SVG
2025-06-16 13:09:07 +01:00
Pablo Hdez 988527bbc4 Merge pull request #680 from nichochar/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add Mocha SVGs
2025-06-13 13:37:56 +01:00
Nicholas Charriere 1aed6e874c Fix typo in filename ref 2025-06-12 11:07:55 -07:00
Nicholas Charriere 5e9c73c2a1 Add Mocha SVGs 2025-06-12 11:03:37 -07:00
pheralb 418900a323 📦 Add cPanel SVG logo + Wordmark
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-06-10 23:16:28 +01:00
estebancastano 1b1c65b053 Add: UV SVG 2025-06-06 09:37:00 -05:00
pheralb aa914b987d ⚙️ Use only build workflow for main branch
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-06-05 15:58:50 +01:00
pheralb b34a105d13 📦 Add Lovable SVG 2025-06-05 15:40:21 +01:00
Pablo Hdez 99422cd427 Merge pull request #672 from ncdai/main
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add React Wheel Picker SVGs
2025-06-03 18:06:15 +01:00
Nguyễn Chánh Đại 4e40a416ec feat(svgs.ts): add React Wheel Picker SVGs with light and dark themes
Add new SVG entries for React Wheel Picker to the svgs array.
Include both light and dark theme SVG files to support different
UI themes. This enhances the library's visual representation
and provides more options for users.
2025-06-03 22:52:41 +07:00
pheralb da5fda8460 ⚙️ Move build app workflow to a separate file
📦 Build / 🛠️ Build app (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-06-02 10:33:36 +01:00
Pablo Hdez 82197e7b65 Merge pull request #667 from chenjiahan/add_rspack_0531
Add Rspack and Rsbuild SVG logos
2025-06-02 10:21:22 +01:00
neverland a645a166a8 Add Rspack and Rsbuild SVG logos 2025-05-31 12:55:01 +08:00
Pablo Hdez 155fe099ff Merge pull request #660 from abo3skr2019/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Added SVGL flow Launcher plugin and logo
2025-05-29 08:39:56 +01:00
Pablo Hdez 8985984c89 Merge pull request #664 from ieedan/mcp-logos
feat(logos): Model Context Protocol
2025-05-29 08:38:05 +01:00
Aidan Bleser 764945a1ba feat(icons): Model Context Protocol 2025-05-28 14:18:05 -05:00
AF_Askar 9830970c19 Update Link such that it links to Local svg 2025-05-23 15:20:22 +03:00
AF_Askar 98e4e51983 Add Flow Launcher SVG to the library 2025-05-23 15:19:02 +03:00
AF_Askar 5dc6b33c14 Added Flow Launcher Svg to Library 2025-05-23 15:13:32 +03:00
AF_Askar 3c9759d5e6 Update README.md 2025-05-23 15:04:24 +03:00
Pablo Hdez b711a5ef90 Merge pull request #640 from schnubor/perspective
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add Perspective Logo
2025-05-23 09:00:01 +01:00
Christian Korndörfer ae2b2a4220 Merge branch 'main' into perspective 2025-05-22 22:58:27 +02:00
Pablo Hdez 38d38ae142 Merge pull request #658 from ridemountainpig/add-readme-extension
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Add the Vue and Svelte NPM packages to the extension
2025-05-21 11:33:21 +01:00
yen-cheng 2421e3ca2c 📝 Update README docs 2025-05-21 11:57:03 +08:00
Pablo Hdez 1b3d7a5410 Merge pull request #655 from nammahari/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
feat : Add Matrix SVG icons for light and dark themes
2025-05-20 11:09:15 +02:00
nammahari 4bb10800df feat : Add Matrix SVG icons for light and dark themes 2025-05-15 23:37:06 +05:30
Christian Korndörfer 546c1ed73a Merge branch 'main' into perspective 2025-05-12 19:50:41 +02:00
Pablo Hdez 094fbf9c8c Merge pull request #651 from ridemountainpig/fix-terraform
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
⚙️ Fix Terraform SVG route & category
2025-05-12 11:34:38 +02:00
ridemountainpig bcec306094 ⚙️ Fix Terraform SVG route & category 2025-05-11 17:05:51 +08:00
Pablo Hdez 67a546fa8b Merge pull request #643 from codeitnav/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Adding Mattermost logo
2025-05-10 12:11:21 +02:00
Pablo Hdez 684847f658 Merge pull request #642 from rdtechie/feat-add-terraform-logo
feat: add terraform logo
2025-05-10 12:10:37 +02:00
Christian Korndörfer 65e92c247d Merge branch 'main' into perspective 2025-05-08 13:07:06 +02:00
Navya Srivastava 11ffb3d204 Merge branch 'main' into main 2025-05-05 21:48:19 +05:30
Pablo Hdez 411c5c9b48 Merge pull request #641 from bryaneaton13/inngest-logo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Adding inngest logo
2025-05-04 14:04:25 +02:00
codeitnav e50c1abb33 Added Mattermost logo 2025-05-03 17:01:04 +05:30
Richard Diphoorn 2aef1ed814 feat: add terraform logo 2025-05-03 01:08:51 +02:00
Bryan Eaton 14011beb55 adding inngest logo 2025-05-02 11:39:57 -04:00
Christian Korndoerfer f810d37046 Add Perspective Logo 2025-04-30 15:22:22 +02:00
pheralb cdbecbb014 Upgrade SVGL to v4.6.1
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-04-29 11:22:10 +01:00
pheralb 42f1df13c3 ⬆️ Upgrade tailwindcss/typography, autoprefixer & postcss 2025-04-29 11:20:01 +01:00
pheralb bb543abce7 ⬆️ Upgrade tailwind-merge, tailwind-variants, bits-ui & tailwindcss 2025-04-29 11:16:28 +01:00
pheralb ddd23f12b0 ⬆️ Upgrade lucide-svelte, mode-watcher, remark-gfm 2025-04-29 11:02:46 +01:00
pheralb 05feba89f4 ⬆️ Upgrade Shiki to `v3.3.0` 2025-04-29 10:53:00 +01:00
pheralb fb523d3ded 🎨 Improve Clerk SVGs + add icon 2025-04-29 10:15:13 +01:00
pheralb 0dfe3e73f3 Merge branch 'main' of github.com:pheralb/svgl 2025-04-29 09:44:42 +01:00
pheralb f5a7c85448 📦 Add Convex SVG logo 2025-04-29 09:44:35 +01:00
Pablo Hdez 98d1b4aa28 Merge pull request #634 from alaminfirdows/remix
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
feat: Add remix wordmark and brand url
2025-04-29 10:14:02 +02:00
Pablo Hdez 2acc7f2369 Merge pull request #635 from spaansba/main
Added PowerShell Extension and PowerShell svg
2025-04-29 10:13:21 +02:00
Bart Spaans 9453beef4a Added PowerShell extension to ReadMe 2025-04-28 22:50:58 +02:00
Bart Spaans cbe1e68e11 added powershell svg 2025-04-28 22:49:12 +02:00
Bart Spaans 1fbbb418a8 Update README.md 2025-04-28 22:31:34 +02:00
Al-Amin Firdows 4ae85570ba refactor: Remove nginx SVG entry from the SVGs list 2025-04-28 14:44:25 +06:00
Al-Amin Firdows c05d962964 feat: Add nginx SVG and remix wordmark assets 2025-04-28 14:39:34 +06:00
pheralb 9c6918c179 📦 Add HeroUI SVG logos
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-04-20 12:37:04 +01:00
pheralb a1918adb6d ⚙️ Fix Firebase Studio SVG route
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-04-15 23:15:27 +01:00
Pablo Hdez 78782f18ef Merge pull request #621 from EFEELE/main
Add FirebaseStudio SVG asset to the library
2025-04-15 23:41:42 +02:00
EFEELE 1ad582c8f5 feat: Add AI category to the Windsurf logo 2025-04-15 12:27:30 -06:00
EFEELE b471d5917e Add FirebaseStudio SVG asset to the library 2025-04-15 12:20:12 -06:00
pheralb f8727aaa60 📝 Fix extensions, update SVG path
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-04-15 16:09:01 +01:00
pheralb 021f810e2c Add support for Astro component 2025-04-15 14:21:29 +01:00
pheralb 0d8e929e4c 🎨 Update tab trigger styles 2025-04-15 14:20:46 +01:00
pheralb adf8f6b0e0 🔧 Update SVG size limit 2025-04-15 13:26:10 +01:00
pheralb 0261e29c79 ⚙️ Add GitHub repository + upgrade Fuse.js minor 2025-04-15 13:24:05 +01:00
pheralb c76abad363 📝 Update README docs 2025-04-15 12:34:36 +01:00
pheralb 3887edcf0e ✏️ Add `viewBox` property to some svgs 2025-04-15 12:22:11 +01:00
pheralb a306a6b516 🎨 Fix GitHub icon (+ light/dark mode) 2025-04-15 12:20:15 +01:00
pheralb 43e6c0334f Merge branch 'main' of github.com:pheralb/svgl 2025-04-15 12:15:29 +01:00
pheralb 844ff7ce4a 🔧 Update import path for `iSVG` type to use alias 2025-04-15 12:15:05 +01:00
pheralb bd7f9cf010 🔧 Pass searchTerm to SvgCard component for improved search functionality 2025-04-15 12:14:42 +01:00
pheralb 361364a521 ⚙️ Prepare extensions data + types 2025-04-15 12:14:31 +01:00
Pablo Hdez 0d4514c952 Merge pull request #616 from MichaHuhn/feat/add-valibot-logos
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
feat: add Valibot logos
2025-04-10 22:30:40 +02:00
Pablo Hdez 74920336f1 Merge pull request #618 from mdo/nuget
Add NuGet
2025-04-10 22:29:40 +02:00
Mark Otto f77ff89cfb Add NuGet 2025-04-10 09:49:50 -07:00
Pablo Hdez 93d8d52d2b Merge pull request #617 from tylandavis/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
Update Payload Logo
2025-04-09 00:22:45 +02:00
pheralb d8abb88396 ⚙️ Update API workflow
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / ☁️ API (push) Has been cancelled
2025-04-08 17:57:26 +01:00
pheralb 7939f6cdfa 📄 Fixed run API locally, update docs 2025-04-08 17:52:23 +01:00
pheralb f35e616fda 📦 Update API dependencies 2025-04-08 17:47:42 +01:00
pheralb 17b548fd57 📦 Update `GitHub` typo + add wordmark SVGs 2025-04-08 17:36:23 +01:00
Tylan Davis 51bd453956 optimize for web 2025-04-08 11:31:48 -04:00
Tylan Davis d9fdaab54b update payload logos 2025-04-08 11:28:42 -04:00
Micha Huhn 3f9b755d4a feat: add Valibot logos 2025-04-08 06:50:00 +02:00
Pablo Hdez e04c603151 Merge pull request #610 from EFEELE/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
🎨 Add Windsurf SVG asset to the library
2025-04-07 19:13:58 +02:00
Pablo Hdez 8e7d885d49 Merge pull request #614 from meetpateltech/added-more-brand-urls
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
feat: add brand assets URLs for various brands
2025-04-03 17:22:00 +02:00
Meet Patel cc41c97b3a feat: add brand asset URLs for various brands 2025-04-03 11:13:16 +05:30
pheralb 10339a49ac ⚙️ Use `@sveltejs/adapter-node`
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2025-04-01 13:26:37 +01:00
EFEELE e85e7dc05e 🎨 Add Windsurf SVG asset to the library 2025-03-31 12:18:54 -06:00
Pablo Hdez fc7c5a672a Merge pull request #604 from ridemountainpig/grok-and-bmc
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
Add Buy Me a Coffee logo and update grok logo
2025-03-25 09:57:52 +01:00
ridemountainpig 013418ba5e Add Buy Me a Coffee logo and update grok logo 2025-03-23 09:04:44 +08:00
Pablo Hdez 123c6a1316 Merge pull request #603 from atleugim/logo/better-auth
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
🎨 Add Better Auth SVG assets with light and dark variants
2025-03-22 23:00:03 +01:00
Miguel Vega 52b308a57f 🎨 Add Better Auth SVG assets with light and dark variants 2025-03-21 15:04:02 -05:00
Pablo Hdez 2c4214b509 ⚙️ Move to adapter auto in svelte.config
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2025-03-19 09:29:23 +00:00
Pablo Hdez 91a3bd2fdb ⚙️ Update pnpm-lock file 2025-03-19 09:29:03 +00:00
Pablo Hdez 0e53977da2 Merge pull request #600 from atleugim/logo/ghostty
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
🎨 Add Ghostty SVG with light and dark variants
2025-03-16 19:06:26 +01:00
Pablo Hdez 1803a01769 Merge pull request #599 from okisdev/feat/grok
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
feat: grok
2025-03-15 13:40:44 +01:00
Miguel Vega 3c2461ebb2 🎨 Add Ghostty SVG with light and dark variants 2025-03-14 16:50:31 -05:00
Harry Yep 18631582d8 feat: grok 2025-03-14 22:28:14 +08:00
pheralb 41fd336bc1 Upgrade SVGL version
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2025-03-13 17:14:48 +00:00
pheralb 8b5b68f232 🛠️ Refactor layout to remove server-side loading + use app/stores to get current pathname 2025-03-13 14:28:56 +00:00
pheralb 3ab4b00428 ⚙️ Move app.css to /styles folder 2025-03-13 14:28:16 +00:00
pheralb a6fe70f137 ⚙️ Merge branch 'main' of github.com:pheralb/svgl
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2025-03-10 16:05:32 +00:00
pheralb 0d71d7f52b 🎨 Improve Postgres SVG 2025-03-10 13:37:17 +00:00
pheralb ef8cc24220 📦 Add Cursor AI SVGs 2025-03-10 13:36:55 +00:00
Pablo Hdez 8d9101ef50 Merge pull request #594 from atleugim/logo/curseforge
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
🎨 Add CurseForge SVG with light and dark variants
2025-03-09 18:05:37 +01:00
Miguel Vega 6d347e3e58 🎨 Add CurseForge SVG with light and dark variants 2025-03-07 21:20:10 -05:00
pheralb 57054acf25 📝 Update API docs
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2025-03-05 17:46:27 +00:00
pheralb ed61a22ab0 🎨 Add alert UI component 2025-03-05 17:44:35 +00:00
pheralb 416b5257e8 🎨 Fix Designali SVG data
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
2025-03-05 08:43:18 +00:00
pheralb 45127aee81 Update divider color + order tw classes
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
2025-03-04 16:49:15 +00:00
pheralb 61bf878144 🚧 Update categories + Home Assistant category 2025-03-04 16:48:46 +00:00
pheralb 1ada0099ca 🎨 Update designali SVGs size 2025-03-04 13:02:47 +00:00
pheralb 0259a12d92 ⬆️ Fix package.json package manager 2025-03-04 13:01:30 +00:00
Pablo Hdez 2bc48282fb Merge pull request #586 from designali-in/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
Designali Logo
2025-03-04 12:51:10 +01:00
Pablo Hdez ad2dc71c69 Merge branch 'main' into main 2025-03-04 12:50:47 +01:00
Pablo Hdez cf5b7af080 Merge pull request #587 from SameerJS6/add-powertoys-extension-and-logo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
docs: Add PowerToys Plugin for SVGL & add: PowerToys Logo
2025-03-03 20:58:32 +01:00
Pablo Hdez 14478500ab Merge pull request #585 from jamdaniels/add-daisyUI-library
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
added daisyUI svg
2025-03-02 20:35:35 +01:00
SameerJS6 e46694b041 add: powertoys extension 2025-03-02 22:13:12 +05:30
SameerJS6 6bb6a21255 add: powertoys data 2025-03-02 22:11:20 +05:30
SameerJS6 8dc1fc91bf add: powertoys svg 2025-03-02 22:11:03 +05:30
Ali Imam 7d4b5b628b Designali Logo 2025-03-02 11:04:50 +05:30
jamdaniels 673d33fb28 added daisyUI svg 2025-03-01 02:02:32 +01:00
pheralb 8f5767344a ⚙️ Disable prerender, fixed access url.searchParams with prerendering enabled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2025-02-26 18:16:24 +00:00
pheralb 15b9879137 🎨 Improve tabs-list UI styles 2025-02-26 18:12:17 +00:00
pheralb 699dcd5299 Add support for web components + new frameworks tabs 2025-02-26 18:11:58 +00:00
pheralb f429498103 📦 Update Web Components SVG 2025-02-26 18:10:45 +00:00
pheralb 08b029abee ⚙️ Update all svgs properties + update `size` type 2025-02-26 18:10:28 +00:00
pheralb 7ca846aade ⚙️ Update all svgs icons with new typescript api 2025-02-26 17:29:28 +00:00
pheralb dc22285088 🚀 Add new /templates utility + add support for web components 2025-02-26 16:59:52 +00:00
pheralb 63d2416274 Merge branch 'main' of github.com:pheralb/svgl
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
2025-02-26 13:58:01 +00:00
pheralb bdf7548308 ⚙️ Update SVGs data 2025-02-26 13:57:50 +00:00
pheralb 9f2ae1916a ⚙️ Update SVGs data 2025-02-26 13:20:15 +00:00
pheralb 7913754949 Merge branch 'main' of github.com:pheralb/svgl 2025-02-26 13:11:08 +00:00
pheralb 1b537c9d7f ⚙️ Update SVG display limit to a configurable maximum 2025-02-26 13:10:08 +00:00
Pablo Hdez a4a456d43f Merge pull request #582 from ridemountainpig/update-template&add-svg
Update request SVG issue template & Add SVGs
2025-02-26 13:09:51 +00:00
pheralb fbcbc42627 🎨 Fix Gemini svg 2025-02-26 13:07:00 +00:00
ridemountainpig d58d2fe489 Add jenkins, magicui, replit SVGs 2025-02-26 20:23:25 +08:00
ridemountainpig bfb4df2bfe ✍️ Update request SVG issue template category 2025-02-26 20:22:32 +08:00
pheralb ffb0388b6e 📦 Fix pnpm lock file
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
2025-02-25 16:18:49 +00:00
pheralb 1bcac82bde Merge branch 'main' of github.com:pheralb/svgl 2025-02-25 16:14:17 +00:00
pheralb ba4704a390 🎨 Update header link options 2025-02-25 15:31:13 +00:00
pheralb 81cbbb2b8c Improve download SVG dialog with footer and fix title 2025-02-25 15:10:43 +00:00
pheralb 5b5546b9e2 📦 Add Anthropic logo & wordmark SVGs 2025-02-25 15:09:26 +00:00
Pablo Hdez 4938b8b97e Merge pull request #580 from Chris9soul/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
Update Webflow SVG and add wordmarks
2025-02-23 15:41:20 +00:00
Chris 97c303a418 Update Webflow SVG and add wordmarks 2025-02-23 15:52:43 +02:00
Pablo Hdez 91d85129fc Merge pull request #579 from apcodex/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
logo for D3.js library
2025-02-20 09:47:25 +00:00
Abhishek Prakash ed1fcf50ea feat: logo for D3.js library 2025-02-19 22:24:34 +05:30
pheralb 487a607f61 📝 Update readme
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2025-02-19 00:02:48 +00:00
pheralb 5c10a8ecb0 Update readme image 2025-02-18 23:55:35 +00:00
pheralb 1996fcd81a Update readme image 2025-02-18 23:52:47 +00:00
pheralb aab9f3a2f3 🎨 Improve container size 2025-02-18 23:46:51 +00:00
pheralb d6fca19ed5 ⚙️ Fix viewbox for apollo, gemini, inflectionAI & zen browser 2025-02-18 23:39:58 +00:00
pheralb 330beb3325 🎨 Fix InflectionalAI light mode 2025-02-18 23:38:45 +00:00
pheralb 877a04cff8 📦 Add Gemini wordmark + InflectionAI + Qwen & xAI 2025-02-18 23:35:53 +00:00
Pablo Hdez 031e354f72 Merge pull request #569 from apcodex/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
feat: added svg for ant design library
2025-02-14 10:54:32 +00:00
Pablo Hdez e0766140ab Merge branch 'main' into main 2025-02-14 10:54:23 +00:00
Pablo Hdez e8f95bbf7b Merge pull request #571 from Mooshay105/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
Add Zen Browser SVG
2025-02-12 17:56:16 +00:00
Malcolm Hauser 87ac688a1a remove the prittier changes for other logos 2025-02-12 12:29:57 +10:00
Malcolm Hauser 7eb137b31f remove the prittier changes for other logos 2025-02-12 12:28:46 +10:00
Malcolm Hauser 0940508240 feat: add dark mode and light mode wordmarks and light mode logo 2025-02-12 12:16:35 +10:00
Malcolm Hauser 708c5d44aa Add Zen Browser SVG 2025-02-12 11:44:40 +10:00
Pablo Hdez 815ca57521 Merge pull request #570 from atleugim/logo/vscodium
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
📦 Add VSCodium SVG logo
2025-02-11 18:02:48 +00:00
Miguel Vega 1ed8cd0eb9 📦 Add VSCodium SVG logo 2025-02-11 12:48:05 -05:00
Abhishek Prakash d67cb3e5e7 feat: added svg for ant design library 2025-02-11 22:41:34 +05:30
Pablo Hdez 67ebbe93ca Merge pull request #567 from apcodex/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
feat: added Socket.io logo
2025-02-11 10:51:37 +00:00
Abhishek Prakash 72d3ccc509 feat: add svg for light version 2025-02-11 02:40:03 +05:30
Pablo Hdez 04736f57d1 Merge pull request #537 from rayan-mazouz/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
📦 Add Keycloak SVG
2025-02-10 16:23:25 +00:00
Pablo Hdez 09ba60f15c Merge branch 'main' into main 2025-02-10 16:22:07 +00:00
Abhishek Prakash c1338b2172 feat: added Socket.io logo 2025-02-10 03:45:51 +05:30
Pablo Hdez 6f27ed4efe Merge pull request #563 from atleugim/update/logo-deno
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
 Add Deno wordmarks SVGs and brand URL, updated main logo and url
2025-02-06 16:07:18 +00:00
Miguel Vega 8315cb6535 Add Deno wordmarks SVGs and brand URL, updated main logo and url 2025-02-06 10:40:40 -05:00
Pablo Hdez 8bbbe40238 📦 Update Vercel Assets
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
2025-02-05 22:51:46 +00:00
Pablo Hdez aad1ff0c65 Merge pull request #556 from estebancastano/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
Add Apollo.io svg
2025-02-05 00:34:57 +00:00
Pablo Hdez 7f650aa0f3 Merge pull request #555 from atleugim/update/logo-tailwindcss
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
 Add Tailwind CSS wordmark SVGs and brandUrl also update main SVG
2025-02-01 11:34:47 +00:00
estebancastano b7da5557bc Add Apollo.io svg 2025-01-30 17:27:38 -05:00
Miguel Vega e9183f8080 Add Tailwind CSS wordmark SVGs and brandUrl also update main SVG 2025-01-30 16:34:04 -05:00
Pablo Hdez 115cc7ea7a Merge pull request #547 from atleugim/update/voidzero
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
Update category names from 'void(0)' to 'VoidZero' in SVG
2025-01-30 18:47:10 +00:00
Pablo Hdez 1097028cf7 Merge pull request #554 from atleugim/fix/logos-viewbox
 Update SVG files to use viewBox instead of width and height
2025-01-30 18:45:08 +00:00
Miguel Vega 7dd4cf3697 Update SVG files for Base UI, Dropbox, Lottielab, JSON, and Shiki to use viewBox instead of width and height 2025-01-30 09:04:50 -05:00
Pablo Hdez a95a2c6f12 Merge pull request #552 from atleugim/logo/base-ui
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
📦 Add Base UI SVG
2025-01-30 00:17:21 +00:00
Miguel Vega 3fbb7b106e 📦 Add Base UI SVG 2025-01-29 14:28:35 -05:00
Pablo Hdez cce8bebda0 Merge pull request #541 from SamuelFerfort/fuzzy-search
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
feat: implement fuzzy search and optimize sorting
2025-01-28 22:43:25 +00:00
Pablo Hdez 76d11165e4 Merge pull request #550 from Miodec/main
update monkeytype svg
2025-01-28 22:41:53 +00:00
Pablo Hdez 9bdf798a1d Merge pull request #549 from atleugim/logo/dropbox
📦 Add Dropbox SVG
2025-01-28 22:40:29 +00:00
Pablo Hdez c2917c78c4 Merge branch 'main' into logo/dropbox 2025-01-28 22:40:17 +00:00
Pablo Hdez 9ad6f0b72f Merge pull request #546 from atleugim/update/google-category
Update Google product's SVG categories to include relevant tags
2025-01-28 22:39:45 +00:00
Pablo Hdez a071bc61a8 Merge pull request #545 from ItsTarikBTW/main
Add Open WebUI
2025-01-28 22:39:10 +00:00
Jack 77781b2cf6 use monkeytype logo, add dark and light wordmarks 2025-01-28 10:31:41 +01:00
Miguel Vega 33a8e2d917 📦 Add Dropbox SVG 2025-01-27 17:51:28 -05:00
Miguel Vega 7ea2a95563 Update category names from 'void(0)' to 'VoidZero' in SVG data and type definitions 2025-01-27 10:03:45 -05:00
Miguel Vega 5036fa5cee Update SVG categories to include relevant tags 2025-01-27 10:01:27 -05:00
ItsTarikBTW ef8a2aef4a Add Open WebUI SVG 2025-01-27 13:17:16 +01:00
Pablo Hdez cfb6795579 Merge pull request #540 from huntie/update-react-assets
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
Update React brand assets
2025-01-27 09:58:23 +00:00
Pablo Hdez 22f0f1b2aa 📦 Add Shiki svg
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
2025-01-26 16:46:45 +00:00
Samuel 07f474b1b0 feat: implement fuzzy search and optimize sorting 2025-01-26 06:45:59 +01:00
Alex Hunt 07367453ff Update React brand assets 2025-01-25 17:28:58 +00:00
Pablo Hdez b5207c4bf0 Merge pull request #538 from atleugim/logo/deepseek
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
📦 Add DeepSeek SVG
2025-01-25 14:52:59 +00:00
Pablo Hdez c42f617e80 Merge pull request #539 from atleugim/update/visual-studio
🆕 update Visual Studio and Visual Studio Code SVG
2025-01-25 14:52:13 +00:00
Miguel Vega b5a556804a 🆕 update Visual Studio and Visual Studio Code SVG 2025-01-25 08:49:24 -05:00
Miguel Vega 2085fb0e40 📦 Add DeepSeek SVG 2025-01-24 16:51:46 -05:00
rayan 1af1946aeb 📦 Add Keycloak SVG 2025-01-24 22:44:41 +01:00
Pablo Hdez de7a3e31ee Merge pull request #456 from atleugim/fix/logos-url
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
 Update SVG URLs for Adobe products and other resources
2025-01-19 11:49:48 +00:00
Pablo Hdez c14db1f3c7 Merge pull request #457 from atleugim/logo/motion
📦 Add Motion SVG
2025-01-19 11:49:05 +00:00
Pablo Hdez c0e7b697b1 Merge branch 'main' into logo/motion 2025-01-19 11:47:43 +00:00
Pablo Hdez 974cf4b3b0 ✍️ Update PULL_REQUEST template
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2025-01-15 18:26:16 +00:00
Pablo Hdez 60b13f4e03 Merge pull request #512 from Snarr/main
📦 Add Apache Kafka SVG logo and wordmark
2025-01-15 18:22:00 +00:00
Jacob Snarr 4f3c7edb93 Merge branch 'main' into main 2025-01-15 12:01:18 -05:00
Pablo Hdez 1884b2cd6b Merge pull request #519 from pheralb/next
 New app improvements
2025-01-15 16:39:50 +00:00
pheralb ba51ec699b 🎨 Update codeblocks
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
2025-01-15 16:06:08 +00:00
pheralb a03589d795 ⚙️ Upgrade API types 2025-01-15 16:05:54 +00:00
pheralb b29dfd8332 🎨 New light/dark theme for Shiki 2025-01-15 16:05:41 +00:00
pheralb 4bceb2137c Add support for product brand guidelines 2025-01-15 11:56:00 +00:00
pheralb d6a333c316 📝 Create custom pull request template 2025-01-15 11:55:10 +00:00
pheralb a043abcefd 📝 Add brand guidelines section + fixed `Request Logo` url 2025-01-15 11:54:53 +00:00
pheralb 3b2dc0b79d ✍️ Update warning message + add message to copy svg component 2025-01-15 11:40:10 +00:00
Pablo Hdez e7d2cd9c1a Merge pull request #510 from motdotla/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
add `dotenvx` 
2025-01-14 23:36:46 +00:00
Snarr b6a84bb035 add Apache Kafka wordmark logo 2025-01-13 22:12:41 -05:00
Snarr fd492aa518 add Apache Kafka 2025-01-13 22:06:34 -05:00
Scott Motte 225f97783b retrigger ci 2025-01-13 13:49:34 -08:00
Scott Motte 9d1cdccf28 add dotenvx 2025-01-13 09:56:40 -08:00
Pablo Hdez 0af695dc0f Merge pull request #506 from motdotla/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
add `dotenv` 🟨
2025-01-13 08:18:08 +00:00
Scott Motte 1c25d4411e put config first 2025-01-12 20:56:52 -08:00
Scott Motte e480d66eef add dotenv 🟨 2025-01-12 20:37:37 -08:00
Pablo Hdez 4b4e034cc2 Merge pull request #495 from aryanprince/feat/add-paypal-logo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
📦 Add PayPal SVG logo and wordmark
2025-01-12 23:58:41 +00:00
Pablo Hdez 6117bc8f66 Merge pull request #502 from iwoplaza/add-typegpu-logo
📦 Add TypeGPU logo
2025-01-12 23:57:21 +00:00
Iwo Plaza b01470eb6a 📦 Add TypeGPU logo 2025-01-11 19:53:21 +01:00
Pablo Hdez fbf9b46016 Merge pull request #501 from ridemountainpig/duckduckgo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
fix: typo for "DuckDuckGo"
2025-01-11 15:39:03 +00:00
ridemountainpig 84d0f79e06 fix: typo for "DuckDuckGo" 2025-01-11 15:16:20 +08:00
Aryan Prince fc7247c238 chore: Add PayPal logo info to data file 2025-01-05 18:06:38 +03:00
Aryan Prince f39ef43e29 feat: Add PayPal logo and wordmark SVG 2025-01-05 18:06:14 +03:00
pheralb 268c2720ac 📦 Add TanStack SVG logo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2024-12-30 12:40:12 +00:00
Pablo Hdez fa7c93e627 Merge pull request #485 from atleugim/logo/twitch
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
update twitch svg
2024-12-28 17:07:03 +00:00
Miguel Vega 1add1e8f83 update twitch svg 2024-12-28 10:45:58 -05:00
Pablo Hdez e5d6eedd76 Merge pull request #484 from pgpavlides/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
fix: changed spotify to music category
2024-12-26 00:03:53 +00:00
George Pavlides 5663f469cc fix: changed spotify to music category 2024-12-25 13:51:31 +02:00
Pablo Hdez 466b8d72e9 Merge pull request #477 from PraveenShinde3/logo/lottielab
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
Add Lottielab logo
2024-12-23 14:41:24 +00:00
Pablo Hdez 948d2fe59c Merge pull request #481 from Namnoh/patch-1
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
Adjustments to Shadcn's icons.
2024-12-22 20:56:13 +00:00
Fernando Muñoz 8efc8d1fc1 Update shadcn-ui_dark.svg
Added: stroke-linecap="round"
To make the icon look more like the original.
2024-12-22 10:55:25 -03:00
Fernando Muñoz d346fb5c15 Update shadcn-ui_dark.svg
Added: stroke-width="25"

To make it more visible in most sizes
2024-12-22 10:54:31 -03:00
Fernando Muñoz cad5d489df Update shadcn-ui.svg
Added:  stroke-linecap="round"
to make the icon look more like the original.
2024-12-22 10:53:12 -03:00
Fernando Muñoz 56cd6e4afc Update shadcn-ui.svg
It was added: stroke-width="25"
Because it needed more stroke width to be avialable to see in most sizes.
2024-12-22 10:47:02 -03:00
Pablo Hdez c097b1855f Merge pull request #479 from mousetail/add-duckduckgo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
Add duckduckgo logos
2024-12-22 12:43:28 +00:00
Maurits "Mousetail" van Riezen dac952e954 Add duckduckgo logos 2024-12-19 16:33:12 +01:00
Praveen Shinde d9e8b01864 Add Lottielab logo 2024-12-18 19:00:23 +05:30
Pablo Hdez e4f2f29047 Merge pull request #467 from atleugim/logo/bolt
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
📦 Add bolt SVG
2024-12-10 10:56:25 +00:00
Pablo Hdez 72b3af6701 Merge branch 'main' into logo/bolt 2024-12-10 10:56:10 +00:00
pheralb fae86d4066 📦 Add old CSS svg
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
2024-12-09 18:09:28 +00:00
Pablo Hdez e420067127 Merge pull request #460 from atleugim/logo/json
📦 Add JSON SVG
2024-12-09 10:16:13 +00:00
Pablo Hdez 35a173b224 Merge branch 'main' into logo/json 2024-12-09 10:15:45 +00:00
Pablo Hdez d7405655a8 Merge pull request #464 from atleugim/update/aws
🎨 Update AWS SVGs for light and dark mode support
2024-12-09 10:14:54 +00:00
Pablo Hdez c7dad91278 Merge pull request #466 from atleugim/logo/posthog
📦 Add PostHog SVG and wordmark for light/dark mode
2024-12-09 10:14:23 +00:00
Pablo Hdez d5ffccb90c Merge branch 'main' into logo/posthog 2024-12-09 10:13:49 +00:00
Pablo Hdez 0f792ebbff Merge pull request #475 from felixicaza/feat/logos
feat: add new SVGs for UXAnaRangel and UXCorpRangel
2024-12-09 10:12:59 +00:00
Felix Icaza ecd6eb5ab2 feat: update UxAnaRangel route to support light and dark variants and create logos 2024-12-06 09:46:38 -06:00
Felix Icaza e7e093ddc7 Merge branch 'main' into feat/logos 2024-12-06 08:46:14 -06:00
Pablo Hdez b2928f608d Merge pull request #473 from rperezll/feature/add-home-assistant-svg
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
Add new Home Assistant SVG and new categories (IoT & Home Automation)
2024-12-06 11:54:22 +00:00
Felix Icaza 52353a421d feat: add new SVGs for UXAnaRangel and UXCorpRangel 2024-12-05 20:58:30 -06:00
rperez 02c9136551 feat(svgs.ts, categories.ts): add new categories (IoT & Home Automation) and Home Assistant SVG data 2024-12-05 09:02:05 +00:00
rperez 4d7f0347bc feat: add Home Assistant logos and wordmarks 2024-12-05 08:58:48 +00:00
Pablo Hdez cda984051a Merge pull request #472 from rperezll/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
Add functionality to copy SVG as a fully functional Angular standalone component
2024-12-05 00:48:39 +00:00
rperez e135bb8570 feat(copy-svg): add functionality to copy SVG as a fully functional Angular standalone component 2024-12-04 18:08:28 +00:00
pheralb d24b70001d 📦 Add Mermaid SVG
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
2024-12-03 12:44:54 +00:00
Pablo Hdez e4a7e8a9e6 Merge pull request #470 from ridemountainpig/authentication-category
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
🔒 Add Authentication category and `Clerk` logo
2024-11-25 12:37:22 +00:00
yen-cheng 96a48d757e feat: update clerk SVG 2024-11-25 19:59:53 +08:00
ridemountainpig da2ad98339 feat: add Authentication category & clerk logo 2024-11-24 21:57:10 +08:00
Pablo Hdez d3db126d90 Merge pull request #469 from atleugim/logo/nuqs
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
📦 Add nuqs SVG and wordmark for light/dark modes
2024-11-24 11:51:50 +00:00
Pablo Hdez b52f6f2067 Merge branch 'main' into logo/nuqs 2024-11-24 11:51:32 +00:00
Pablo Hdez 47701d9252 Merge pull request #454 from atleugim/logo/soundcloud
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
📦 Add SoundCloud SVG
2024-11-19 22:50:00 +00:00
Miguel Vega 446224874d 📦 Add nuqs SVG and wordmark for light/dark modes 2024-11-18 21:47:39 -05:00
Miguel Vega f2f5e2d56c 📦 Add PostHog SVG and wordmark for light/dark mode 2024-11-18 21:16:27 -05:00
Miguel Vega f59b6cb0d8 📦 Add bolt SVG 2024-11-18 20:57:58 -05:00
Miguel Vega c8b840fe39 📦 Update AWS SVGs for light and dark mode support 2024-11-18 19:45:15 -05:00
Miguel Vega cfed6ddfc9 📦 Add JSON SVG 2024-11-18 18:11:36 -05:00
Miguel Vega ab436304f9 📦 Add Motion SVG 2024-11-18 14:58:31 -05:00
Miguel Vega d33d072729 Update SVG URLs for Adobe products and other resources 2024-11-18 14:40:40 -05:00
Miguel Vega 2942e26852 fixed soundcloud site url 2024-11-18 13:21:31 -05:00
Miguel Vega 6470e39d03 📦 Add SoundCloud SVG 2024-11-18 13:19:54 -05:00
Pablo Hdez afe5eec846 Merge pull request #452 from atleugim/logo/polars
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
📦 Add Polars SVG
2024-11-18 18:16:25 +01:00
Pablo Hdez facff1a7ed Merge branch 'main' into logo/polars 2024-11-18 18:16:09 +01:00
pheralb f356787cbf 📦 Add `Polar` svg 2024-11-18 17:12:46 +00:00
pheralb 51567298e3 📦 Fix `drizzle & zed` logo for light/dark mode 2024-11-18 17:07:06 +00:00
Miguel Vega a849092058 📦 Add Polars SVG 2024-11-18 09:21:35 -05:00
Pablo Hdez efdcdb22fd Merge pull request #451 from atleugim/logo/zed-dev
📦 Add zed.dev SVG
2024-11-18 15:07:09 +01:00
Miguel Vega 8502c0ed25 📦 Add zed.dev SVG 2024-11-18 08:52:45 -05:00
Pablo Hdez 7b52e59ec2 🚀 Merge pull request #448 from atleugim/logo/drizzle-orm
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
📦 Add Drizzle ORM logo
2024-11-17 11:15:09 +01:00
Pablo Hdez 18b30bdce5 Merge branch 'main' into logo/drizzle-orm 2024-11-17 11:14:27 +01:00
Pablo Hdez 6352f82ae8 Merge pull request #447 from atleugim/logo/daily-dev
📦 Add daily-dev logo
2024-11-17 11:12:50 +01:00
Pablo Hdez a938416687 Merge pull request #446 from atleugim/logo/css
🎨 Update CSS logo SVG
2024-11-17 08:26:39 +00:00
Miguel Vega 96693a153e 🔧 Update Drizzle ORM categories 2024-11-16 11:45:31 -05:00
Miguel Vega 487ccacea3 📦 Add Drizzle ORM logo 2024-11-16 11:42:01 -05:00
Miguel Vega 091bddd0cf 📦 Add daily-dev logo 2024-11-16 11:27:37 -05:00
Miguel Vega 6c753e787a 🎨 Update CSS logo SVG 2024-11-16 11:24:27 -05:00
pheralb d0766d786d ⚙️ Update issue template with custom config.yml file
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2024-11-15 10:42:12 +00:00
Pablo Hdez 9e3c451cfb 📦 Fix C++ svg + update Bluesky main logo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2024-11-13 10:10:13 +00:00
Pablo Hdez 1d35abf573 Merge pull request #435 from PedroMidueno/trpc-svg
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
🆕 Add tRPC svg
2024-11-08 08:49:55 +00:00
PedroMidueno 359d781194 Add tRPC svg wordmark versions 2024-11-07 17:49:38 -06:00
PedroMidueno 24d5fb32f1 🆕 Add tRPC svg 2024-11-06 16:30:22 -06:00
pheralb 12a2fd8f19 🎨 Refactor copy component to use tabs for different frameworks
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2024-10-29 18:35:00 +00:00
pheralb 8e2ff763ae Improve popover size 2024-10-29 18:34:00 +00:00
pheralb 759a57468f 📦 Add tabs UI component 2024-10-29 18:33:47 +00:00
pheralb 806452bffa 📦 Update svgl v4.4.0 2024-10-29 18:33:33 +00:00
Pablo Hdez 9324c532b4 Merge pull request #428 from selemondev/feat/svg-component-copy
feat: add copy Svg as Vue or Svelte component
2024-10-29 18:07:36 +00:00
Pablo Hdez 1ae2e81836 Merge pull request #429 from Jared-MB/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
⚙️ Listen to search params to clear results
2024-10-29 08:55:25 +00:00
Jared Muñoz 82a6dfb097 ⚙️ Listen to search params to clear results 2024-10-28 11:46:53 -06:00
selemondev 72507987c7 chore: revert unintended linter formatting changes 2024-10-27 21:51:22 +03:00
Pablo Hdez cf2efef10a Merge pull request #421 from jarrisondev/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
add Afordin logo
2024-10-14 19:08:54 +01:00
Pablo Hdez 4f1e82f889 Merge branch 'main' into main 2024-10-14 19:08:22 +01:00
pheralb 6ad19d71f4 🎨 Fix Python SVG properties 2024-10-14 18:23:27 +01:00
pheralb 2b0a46a7ec 📦 Update Claude AI logo + add UnoCSS 2024-10-14 17:55:35 +01:00
pheralb 5c8931f5f6 ⚙️ Add new request-svg issue template 2024-10-14 14:29:11 +01:00
pheralb bf6aa58ac0 📦 Add `Carrd` svg 2024-10-14 14:13:10 +01:00
Pablo Hdez 302dfd62ca Merge pull request #424 from ridemountainpig/fix-wordmark
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
⚙️ Fix wordmark SVG error
2024-10-10 09:05:28 +01:00
ridemountainpig 1108b024a1 fix: wordmark SVG error 2024-10-10 11:37:55 +08:00
Pablo Hdez 61f31b09e9 Merge pull request #409 from garaven/hack-the-box-logo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
Add: Hack The Box logo
2024-10-08 08:39:50 +01:00
Jarrison Cano 7d1c409c9f Merge branch 'main' into main 2024-10-07 22:34:10 -05:00
Camilo Garcia 2e8dd4b82d Merge branch 'main' into hack-the-box-logo 2024-10-05 09:44:30 -05:00
Pablo Hdez 8be9ba72ad Merge pull request #418 from owlnai/main
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
📦 Add MediaWiki logos
2024-10-05 15:31:39 +01:00
Pablo Hdez 29180c51e5 Merge pull request #422 from ridemountainpig/vitest
🫡  Delete the duplicate Vitest logo data
2024-10-05 15:31:08 +01:00
ridemountainpig 08e2ddb558 Remove the duplicate Vitest logo 2024-10-05 20:20:58 +08:00
Unai Mengual 61d1524c5a 🐛 Update MediaWiki logo URL 2024-10-05 12:23:23 +02:00
Jarrison Cano fe2a3497b1 add Afordin logo 2024-10-04 14:36:45 -05:00
Unai Mengual c90c11f150 📦 Add MediaWiki logos 2024-10-04 18:50:01 +02:00
pheralb 80147ec0d2 📦 Fix `raspberry_pi` viewbox
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
2024-10-04 11:02:37 +01:00
pheralb f5814b5e64 📦 Add `ManzDev` svg 2024-10-04 11:01:45 +01:00
pheralb 1c7fa0b99f 📦 Fix `oxc` svg size 2024-10-04 11:01:28 +01:00
pheralb 3ee9610f24 📦 Fix `oxc` svg
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
🚀 Deploy / API - Cloudflare Workers (push) Has been cancelled
2024-10-02 10:29:44 +01:00
pheralb 0222d9de37 Add `void(0)` category 2024-10-02 10:24:28 +01:00
pheralb 8e88407b23 📦 Add new svgs 2024-10-02 10:24:10 +01:00
Pablo Hdez 76d27846fe Merge pull request #415 from Gothsec/drive-logo
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Waiting to run
🧑‍🚀 Check / 📦 SVGs Size (push) Waiting to run
🧑‍🚀 Check / 🛠️ Build app (push) Waiting to run
🚀 Deploy / API - Cloudflare Workers (push) Waiting to run
📦 Add Google Drive SVG
2024-10-01 22:11:37 +01:00
pheralb 718e617d70 ⚙️ Fix github repository link 2024-10-01 22:07:40 +01:00
Pablo Hdez 7a26858b30 Merge pull request #417 from pheralb/next
🚀 Change deploy adapter + API Reference improvements
2024-10-01 17:24:23 +01:00
pheralb 57590276fd ⚙️ Update build command with env variables
🧑‍🚀 Check / ⚡ Testing with Vitest (push) Has been cancelled
🧑‍🚀 Check / 📦 SVGs Size (push) Has been cancelled
🧑‍🚀 Check / 🛠️ Build app (push) Has been cancelled
2024-10-01 11:05:58 +01:00
pheralb d9856774e6 ⚙️ Update vite build command + workflow 2024-10-01 10:53:47 +01:00
pheralb c964156cc3 🛠️ Update metatags 2024-10-01 10:51:54 +01:00
pheralb 585af3fd61 🎨 Update typography styles 2024-10-01 10:49:59 +01:00
pheralb 56597ef7ce 🔧 Add custom markdown plugins 2024-10-01 10:49:43 +01:00
pheralb 8f4ac1406f 📦 Add `rehype-autolink-headings, rehype-slug & remark-gfm` 2024-10-01 10:49:23 +01:00
pheralb e52b10c5a2 🎨 Update shiki theme 2024-10-01 09:25:30 +01:00
pheralb eaadc060c8 📝 Update readme docs 2024-10-01 09:19:50 +01:00
pheralb 28531bde76 ⚙️ Update check & deploy workflow 2024-10-01 09:18:51 +01:00
pheralb 10ed96ae7b ⚙️ Update env variables for deploy app workflow
🛠️ Check / Testing with Vitest (push) Has been cancelled
🛠️ Check / SVGs Size (push) Has been cancelled
🚀 Deploy APP / build (20) (push) Has been cancelled
2024-09-28 19:00:46 +01:00
pheralb fe1a54f0e1 ⚙️ Prepare deploy api & deploy app 2024-09-28 18:54:56 +01:00
pheralb 8a66a4cb0d ⚙️ Update check-svgs & Vitest workflow 2024-09-28 18:54:43 +01:00
pheralb 097cd3c649 📦 Add `@sveltejs/adapter-node` dependency + migrate adapter
⚙️ Check app / vitest (push) Has been cancelled
⚙️ Check app / svgs-size (push) Has been cancelled
2024-09-27 13:34:47 +01:00
pheralb a6fe7fdc0d 📝 Update readme docs 2024-09-27 13:33:01 +01:00
pheralb bdd76af600 📦 Update /api-routes dependencies 2024-09-27 13:32:45 +01:00
pheralb 8386d525be 🛠️ Add `type import to ThemeOptions` 2024-09-27 13:29:46 +01:00
Gothsec 5b267a11ed [Add] Google Drive SVG 2024-09-24 11:53:12 -05:00
Gothsec ece6cabf26 [Add] Nvidia SVG 2024-09-24 11:41:00 -05:00
Pablo Hdez eacb10f409 Merge pull request #413 from pheralb/next
🚀 Deploy API / Deploy (push) Has been cancelled
⚙️ Check app / vitest (push) Has been cancelled
⚙️ Check app / svgs-size (push) Has been cancelled
⚙️ Create utility to get categories + fix prerender function with ``entries``
2024-09-24 09:44:06 +01:00
Pablo Hdez 30d9e63afe ⚙️ Create utility to get categories + fix prerender function with `entries`
⚙️ Check app / vitest (push) Has been cancelled
⚙️ Check app / svgs-size (push) Has been cancelled
2024-09-24 08:41:12 +00:00
Pablo Hdez 863df46ff9 ⚙️ Activate `prerender to /directory` routes 2024-09-24 07:49:55 +00:00
pheralb f76b2a9a86 ⚙️ Update main adapter
⚙️ Check app / svgs-size (push) Waiting to run
⚙️ Check app / vitest (push) Waiting to run
🚀 Deploy API / Deploy (push) Waiting to run
2024-09-23 12:37:37 +01:00
pheralb a46e5d73a6 📦 Add `@sveltejs/adapter-vercel, @types/eslint, upgrade eslint & add typescript-eslint` dependencies 2024-09-23 12:37:24 +01:00
pheralb e31baf2c8b 🙈 Add `.vercel folder to .gitignore` 2024-09-23 12:36:34 +01:00
pheralb 1eb5b4ead3 ⚙️ Migrate eslint config to v9 2024-09-23 12:30:05 +01:00
pheralb 128d87b654 📦 Add `@types/node` package 2024-09-23 11:01:35 +01:00
pheralb 87425f0021 📦 Add `globals package & wrangler` 2024-09-23 10:58:02 +01:00
pheralb 89f2dbd9ad Merge branch 'main' of github.com:pheralb/svgl 2024-09-23 10:51:24 +01:00
pheralb 2c13a28462 ⚙️ Prepare migration 2024-09-23 10:47:26 +01:00
pheralb f3bdb913ac 📦 Add `@sveltejs/adapter-cloudflare` adapter 2024-09-23 10:47:00 +01:00
pheralb be7bb3cf60 🎨 Update svgCard classname 2024-09-23 10:14:35 +01:00
pheralb cae173bb3d 🧹 Delete unused imports 2024-09-23 10:13:57 +01:00
pheralb 046fdd7bc3 📦 Update dependencies 2024-09-23 10:13:10 +01:00
pheralb 52d2c20fc7 Update version for headerLogo component 2024-09-23 10:12:55 +01:00
pheralb c1d338b98d ⚙️ Upgrade tailwind.config to `.ts` 2024-09-23 10:08:42 +01:00
pheralb 080ba30398 ⚙️ Upgrade prettier config to `.mjs` 2024-09-23 10:08:25 +01:00
Camilo Avendaño d2264d0746 Add: Hack The Box logo 2024-09-22 15:36:46 -05:00
Camilo Avendaño 08c8a509e9 Added new category 'Cybersecurity' 2024-09-22 15:36:13 -05:00
Pablo Hdez c15285a0bf Merge pull request #408 from garaven/milanote-logo
⚙️ Check app / vitest (push) Waiting to run
⚙️ Check app / svgs-size (push) Waiting to run
🚀 Deploy API / Deploy (push) Waiting to run
Add: milanote logo
2024-09-22 15:43:45 +01:00
Camilo Avendaño 0e2af61885 Add: milanote logo 2024-09-18 23:57:58 -05:00
Pablo Hdez 0b1776c00e Merge pull request #405 from 1weiho/fix/fetch-fail-keep-loading
⚙️ Check app / vitest (push) Has been cancelled
⚙️ Check app / svgs-size (push) Has been cancelled
🚀 Deploy API / Deploy (push) Has been cancelled
Fix: cancel the loading state after the react component fetch fails
2024-09-08 19:00:44 +01:00
Yiwei Ho 84977d7f6d fix: after the react component fetch fails, it should cancel the loading state 2024-09-09 00:50:26 +08:00
Pablo Hdez 1093b962cd Merge pull request #404 from Pyr33x/main
⚙️ Check app / vitest (push) Waiting to run
⚙️ Check app / svgs-size (push) Waiting to run
🚀 Deploy API / Deploy (push) Waiting to run
feat: back with some little things 😄
2024-09-08 13:42:14 +01:00
pyr33x 3fefbf4bbb just in case for screen readers 2024-09-07 21:42:27 +03:30
pyr33x 7ac4fca29d it's not active anymore 2024-09-07 21:34:04 +03:30
pyr33x 34839ed492 chore: add stripe to payment category 2024-09-07 21:27:15 +03:30
pheralb 244744488f 🎨 Add pointer-events-none to img 2024-09-04 11:30:14 +01:00
pheralb 575d483cf6 📦 Add Raspberry PI SVG 2024-09-04 11:26:13 +01:00
pheralb 510c543216 🤔 Add `Hardware` category 2024-09-04 11:25:53 +01:00
pheralb a7d2640dac 🫡 Delete raycast warning 2024-09-04 11:22:41 +01:00
pheralb 7829b5a862 ⚙️ Update `pnpm-lock` for utils/fix-viewbox 2024-08-28 08:53:23 +01:00
pheralb 04ea651721 Create `Google` Category 2024-08-28 08:51:38 +01:00
pheralb 3b88bc83c2 📦 Add Google Colaboratory 2024-08-28 08:51:24 +01:00
pheralb 6cb2e3944c 📦 Update context-menu-checkbox-item to use lucide-svelte `CheckIcon` 2024-08-26 17:00:09 +01:00
pheralb 45e84ae288 ⚙️ Update `pnpm-lock` file 2024-08-26 16:56:11 +01:00
pheralb 2139ec69e0 ⚙️ Update `shadcn/svelte` config file 2024-08-26 16:50:55 +01:00
pheralb 1ee1710f04 📦 Update dependencies + add `tailwind-variants` 2024-08-26 16:50:37 +01:00
pheralb 0754f3e0dd ⚙️ Update icons alias & create raycast warning message 2024-08-26 16:50:17 +01:00
pheralb 008d072510 ⚙️ Delete old api endpoint & update `/svgr` route 2024-08-26 16:49:46 +01:00
pheralb 0e8423252c ⚒️ Separate icons and create /icons folder 2024-08-26 16:49:14 +01:00
pheralb 779462960b 🎨 Add context-menu UI component 2024-08-26 16:48:48 +01:00
pheralb cd3b1e58ea 📦 Update Turborepo category 2024-08-22 23:32:54 +01:00
pheralb 2d6641abdb 🎨 Update layout styles and add clear search button 2024-08-22 23:32:34 +01:00
Pablo Hdez 91b2ac31ec Merge pull request #396 from juristr/add-nx-logo
Add Nx logo
2024-08-22 23:14:17 +01:00
Juri e7f23041d3 add logo for Nx + devtool and monorepo category 2024-08-22 22:45:56 +02:00
pheralb 54be2d0241 🎨 Improved by showing more tags 2024-08-22 17:46:16 +01:00
pheralb 70eb475ff3 📦 Update `hono` dependency 2024-08-22 17:45:14 +01:00
pheralb 51bb3462fc ⚙️ Update `too many request` message 2024-08-22 17:45:01 +01:00
pheralb d43c572311 ⚙️ Fix show categories data 2024-08-22 16:49:34 +01:00
pheralb 8a895cbb32 📄 Update readme docs 2024-08-22 16:43:44 +01:00
pheralb a047575e69 🎨 Add new lucide icons and improve category display + show popover content 2024-08-22 14:24:58 +01:00
pheralb c477b6c83b ⚙️ Fix category types 2024-08-22 14:22:35 +01:00
Pablo Hdez 4df56fa956 Merge pull request #395 from gupta-ji6/feat/add-leap-wallet
feat: add leap wallet svg logos
2024-08-22 14:04:10 +01:00
ayush-leap b25e772317 feat: add leap wallet svg logos 2024-08-22 17:50:37 +05:30
pheralb 64d5a675f9 ⚙️ Fix warning message to include close button 2024-08-20 20:16:03 +01:00
pheralb 6976e77f66 📄 Update warning message 2024-08-20 20:03:40 +01:00
pheralb ba79831e20 ⚙️ Update deploy-api workflow 2024-08-20 19:58:36 +01:00
Pablo Hdez 1f57b82692 Merge pull request #392 from pheralb/next
🚀 New API built with Hono
2024-08-20 19:43:38 +01:00
pheralb 7e2e9e929d 📄 Update warning message 2024-08-20 19:41:17 +01:00
pheralb 35f1f7d744 Add new warning message 2024-08-20 19:28:48 +01:00
pheralb bcc2d48bf6 ⚙️ Update svelte.config to use `makeSingletonHighlighter` for shiki 2024-08-20 19:28:35 +01:00
pheralb 9080802c3e 📄 Update api docs with new api route 2024-08-20 19:16:36 +01:00
pheralb 2138c8b410 Add ratelimit with @upstash/ratelimit 2024-08-20 19:16:11 +01:00
pheralb 75e41fed7b ⚙️ Update secrets and environment variables for API deployment 2024-08-20 19:15:05 +01:00
pheralb 263acf13f4 📦 Add `@upstash/ratelimit` dependency 2024-08-20 19:14:41 +01:00
pheralb c615cf2d61 ⚒️ Update downloadSvg component & warning message for consistency 2024-08-15 13:18:14 +01:00
pheralb 19b42f998d 📃 Update warning message 2024-08-15 13:17:35 +01:00
pheralb d4d90254cf New svgs, add new firebase brand & prettier 2024-08-15 13:15:41 +01:00
pheralb c5a5339cac 📦 Update dependencies 2024-08-15 13:00:10 +01:00
Pablo Hdez 97cf914cc6 Merge pull request #389 from ridemountainpig/bento
Add Bento logo
2024-08-13 10:22:23 +01:00
ridemountainpig 582d847491 Add Bento logo 2024-08-06 08:50:05 +08:00
Pablo Hdez 5c82f5c8ee Merge pull request #385 from ieedan/gh-light-dark-variants
feat: Add light/dark variants for existing GitHub icon
2024-07-17 09:24:16 +01:00
Aidan Bleser 82521c92ae Update pnpm-lock.yaml 2024-07-16 13:45:46 -05:00
Aidan Bleser 8321acb806 Update pnpm-lock.yaml 2024-07-16 13:44:14 -05:00
Aidan Bleser 651927a7b5 Added light and dark variants for Github 2024-07-16 13:40:00 -05:00
pheralb 0e8614bfd0 ⚙️ Update warning message storage key for consistency 2024-07-05 12:57:36 +01:00
pheralb bb1b426049 🛠️ Fix viewbox in some svgs 2024-07-05 12:52:56 +01:00
pheralb 1e0201db05 📦 Add `.ico` version 2024-07-05 12:52:26 +01:00
pheralb d2e15fea54 📦 Add new svgs 2024-07-05 12:52:06 +01:00
pheralb bf2392e248 🎨 Warning message improvements 2024-07-05 12:51:41 +01:00
pheralb d6761eb687 ⚙️ Add favicon for different file types (.ico) 2024-07-05 12:51:26 +01:00
pheralb e5c6443a0f ⚙️ Improve utils, add console.table & fix library directory 2024-07-05 12:50:52 +01:00
pheralb cfbb5a1183 ⚙️ Fixed pnpm-lock outdated 2024-07-05 12:27:55 +01:00
pheralb 175a54d12a feat: update dependencies 2024-07-05 12:26:16 +01:00
pheralb 18b6db3ce2 📦 New svgs 2024-06-27 00:35:37 +01:00
Pablo Hdez 85a944f4b0 Merge pull request #368 from karlhorky/patch-1
Add UpLeveled logos
2024-06-15 16:27:31 +01:00
Karl Horky 52bf1155be Fix name 2024-06-12 11:38:05 +02:00
Karl Horky 0655daf871 Add UpLeveled logos 2024-06-12 11:36:26 +02:00
pheralb 7e0bb11c00 ⚙️ Fix duplicated `svg` logo + todoist wordmark version 2024-06-11 16:18:23 +01:00
pheralb 96b1b0722f 📦 Update dependencies 2024-06-11 16:16:26 +01:00
Pablo Hdez b5d6283f97 Merge pull request #361 from MoritzBru/add-postcss-logo
add: postcss logo
2024-06-11 16:09:14 +01:00
Pablo Hdez c103af5730 Merge branch 'main' into add-postcss-logo 2024-06-11 16:09:01 +01:00
Pablo Hdez 190b840765 Merge pull request #366 from PossiblePanda/main
add: todoist logo
2024-06-11 16:07:58 +01:00
Possible Panda 23fbecd9c9 add: todoist logo 2024-06-10 09:06:05 -04:00
MoritzBru 1c79847a23 fix: reduce size of postcss wordmark 2024-06-08 22:24:03 +02:00
Pablo Hdez f5f8264cf7 Merge branch 'main' into add-postcss-logo 2024-06-08 18:54:30 +01:00
Pablo Hdez 2177ea0982 Merge pull request #360 from MoritzBru/add-svg-logo
add: svg logo
2024-06-08 18:53:49 +01:00
MoritzBru 78a771208a add: postcss logo
c.f. https://github.com/postcss/brand/tree/master
2024-06-08 13:26:50 +02:00
MoritzBru 39f53ef1bd add: svg logo
c.f. https://www.w3.org/2009/08/svg-logos.html
2024-06-08 13:03:06 +02:00
Pablo Hdez 7cf1488537 Merge pull request #359 from jeanpierre-jeri/main
Add Ollama SVG assets and integration
2024-06-06 10:51:28 +01:00
Jean Pierre b5a8fb91fd Add Ollama SVG assets and integration 2024-06-06 00:02:26 -05:00
Pablo Hdez 6cca1f395e Merge pull request #356 from meetpateltech/add-ai-svg
add new svg logos in ai category
2024-06-03 12:42:36 +01:00
Meet Patel 2e288736c3 add inflection ai 2024-06-02 19:06:12 +05:30
Meet Patel 8228b9f8b7 add together ai 2024-06-02 18:53:44 +05:30
Meet Patel cb3f784d66 add suno music ai 2024-06-02 15:02:39 +05:30
Meet Patel f85d0bc03d add groq 2024-06-02 14:02:11 +05:30
Meet Patel 24b70025e7 add cohere 2024-06-02 13:10:08 +05:30
Pablo Hdez 2e0ca1722e Merge pull request #355 from meetpateltech/add-wordmark
Add: wordmark version for OpenAI & Perplexity
2024-06-01 20:10:21 +01:00
pheralb 7bcb167fb7 ⚙️ Remove special characters from SVG name in `svgr` server file 2024-06-01 14:24:00 +01:00
pheralb 054c1980c5 📦 Update `hono` project dependencies 2024-06-01 14:20:57 +01:00
pheralb 4900a82b08 📦 Update dependencies 2024-06-01 14:16:30 +01:00
Meet Patel 7d55aa2fbc Add: wordmark version for OpenAI & Perplexity
In this PR, I have added OpenAI and Perplexity wordmark versions for both light and dark modes
2024-06-01 12:27:59 +05:30
Pablo Hdez cc5c3a3cfe Merge pull request #354 from candidosales/add-cisco-logo
[feat] added Cisco logo
2024-05-31 23:28:01 +01:00
Candido Sales Gomes 4b790dd5f4 added Cisco logo 2024-05-31 13:08:17 -04:00
Pablo Hdez 82be60a070 Merge pull request #346 from MonkiG/add-webcomponents-logo
add: web components logo
2024-05-27 09:05:49 +01:00
MonkiG 095fee63f8 add: web components logo 2024-05-24 19:44:21 -06:00
Pablo Hdez ac4774826c Merge pull request #340 from RiverTwilight/main
fix: Typo for "GitHub"
2024-05-17 11:57:57 +01:00
Pablo Hdez b7dc803ffe Merge pull request #339 from aaronperezaguilera/main
Add Apple Music logo
2024-05-17 11:53:02 +01:00
Pablo Hdez 607b1ad014 Merge branch 'main' into main 2024-05-17 11:51:07 +01:00
Aaron e81ebf5b67 Add dark mode to Apple Music logo. 2024-05-16 21:26:24 +02:00
rivertwilight 4f555aa2e0 fix: Typo for "GitHub" 2024-05-16 19:53:54 +08:00
Pablo Hdez 350932beb6 Merge pull request #338 from RiverTwilight/main
Add YGeeker logo
2024-05-16 10:06:19 +01:00
Aaron 41431d4a55 Add Apple Music logo 2024-05-15 20:36:16 +02:00
rivertwilight 0b5eb17dc3 Add YGeeker logo 2024-05-14 09:33:24 +08:00
pheralb 84134a38f7 ⚙️ Fix T3 light/dark mode 2024-05-13 22:15:43 +01:00
pheralb 5971bf38c2 📦 Add T3 Stack light/dark svgs 2024-05-13 22:13:28 +01:00
pheralb de6bf9f8dd ⚙️ Change api folder name 2024-05-11 16:38:27 +01:00
pheralb afd055ae1a ⚙️ Update working directory 2024-05-11 16:38:05 +01:00
pheralb 43794ba65b 🐛 Fix deploy api workflow 2024-05-10 19:47:32 +01:00
pheralb 89ce477cc0 🐛 Update wrangler.toml config 2024-05-10 19:47:16 +01:00
pheralb 16f6b3b974 🐛 Update /api pnpm-lock dependencies 2024-05-10 19:36:50 +01:00
pheralb 9f269684ba 🐛 Update directory path for size check utility 2024-05-10 19:32:28 +01:00
pheralb 26b5b3b998 🐛 Update `wrangler.toml` config 2024-05-10 19:30:02 +01:00
pheralb ac8a89ba6f 🐛 Fix prebuild command 2024-05-10 19:29:32 +01:00
pheralb 2ae4fffeb0 Merge branch 'main' of github.com:pheralb/svgl 2024-05-10 19:24:27 +01:00
pheralb e9c92e105a ⚙️ Add deploy api workflow + fix `check-app` workflow 2024-05-10 19:24:22 +01:00
pheralb d395eea8b6 🔧 Initial api with Hono 2024-05-10 19:23:26 +01:00
pheralb d6ee49ffb7 📦 Move utilities to a separate folder 2024-05-10 19:22:58 +01:00
pheralb 8724abc185 ⚙️ Add `/utils/` path 2024-05-10 19:22:14 +01:00
pheralb dae1518c60 🙈 Ignore Hono folders 2024-05-10 19:21:53 +01:00
Pablo Hdez c8a2b795ba Merge pull request #334 from roaming97/main
Add logos + update Dreamweaver
2024-05-08 08:56:02 +01:00
roaming97 12d0d13250 Change dreamweaver.svg to dw.svg 2024-05-06 07:34:25 -06:00
roaming97 f727d9bbdd Add logos & update Dreamweaver 2024-05-06 07:33:43 -06:00
Pablo Hdez 7802e00004 Merge pull request #333 from TheCommieAxolotl/main
Add RelaGit logos
2024-05-05 21:53:57 +01:00
TheCommieAxolotl 171c59bd08 Add RelaGit logos 2024-05-04 19:32:18 +10:00
Pablo Hdez cd23e0e6c7 Merge pull request #329 from BeeBombshell/buildship
Add BuildShip logo
2024-05-03 15:59:18 +01:00
Pablo Hdez a1e51d5e9b Merge pull request #330 from adityaoberai/main
Update Appwrite logo
2024-05-03 15:58:54 +01:00
Aditya Oberai 1d50185bc4 Update Appwrite logo 2024-05-03 14:51:50 +00:00
BeeBombshell cab710cd68 add BuildShip logo 2024-05-03 20:05:17 +05:30
Pablo Hdez 3abd127899 Merge pull request #326 from notrab/turso
feat: turso
2024-05-03 13:15:54 +01:00
Jamie Barton fb250b20ed feat: turso logos 2024-05-03 13:09:28 +01:00
pheralb 52cff9419b 🚀 Update `dub` svgs 2024-05-03 11:33:08 +01:00
pheralb 07e588c3e4 ⬆️ Upgrade dependencies 2024-04-29 10:07:12 +01:00
pheralb 893fef5986 ⚙️ Update category from `Fintech to Software` 2024-04-29 10:03:16 +01:00
pheralb 783f8a28e4 ⚙️ Layout improvements + fix `categoryCounts` types 2024-04-29 10:02:43 +01:00
Pablo Hdez 317fe7573f Merge pull request #324 from heyecs/main
Basewell Color Logo
2024-04-29 10:17:10 +02:00
Pablo Hdez 91ed8bfbbf Merge pull request #323 from ridemountainpig/category-count
Add category count to the sidebar
2024-04-29 10:15:12 +02:00
Evan Stewart 26396ba7a4 Addition of Basewell SVG logo 2024-04-28 17:43:27 -05:00
ridemountainpig e4b93afb8b feat: add category count script & ui style 2024-04-28 22:08:41 +08:00
Pablo Hdez eefbe77f7b Merge pull request #322 from maadeval/main
add: mercado pago
2024-04-28 13:25:37 +02:00
madeval 46044315b5 style: reset linter changes 2024-04-27 20:23:36 -03:00
madeval 462de13852 feat: 🍱 include mercado pago icons 2024-04-27 20:16:07 -03:00
madeval 7f4b8439db feat: add mercado pago logos 2024-04-27 20:14:52 -03:00
madeval bd93a96835 feat: 🏷️ add payment as category 2024-04-27 20:12:49 -03:00
Pablo Hdez 32057c0b08 Merge pull request #315 from thirstycode/main
Add Poper Logo
2024-04-25 23:30:22 +01:00
System Administrator 360c691ba9 Update Poper Category 2024-04-25 23:12:10 +05:30
System Administrator d8de7e463a New: Poper Logo 2024-04-25 17:16:06 +05:30
Pablo Hdez de54ddd633 Merge pull request #313 from Marcisbee/patch-1
Add Exome logo
2024-04-25 08:38:34 +01:00
Pablo Hdez a1419745e2 Merge pull request #312 from liuyib/main
feat: add ahooks logo
2024-04-25 08:27:18 +01:00
Marcis Bergmanis 2ecaa886b2 Update svgs.ts 2024-04-25 10:19:22 +03:00
Marcis Bergmanis f1d0b8a7d6 Create exome.svg 2024-04-25 10:15:57 +03:00
liuyib cbded7f488 feat: add ahooks logo 2024-04-25 14:41:49 +08:00
pheralb 8ddd43c27e 🎨 Add light/dark mode for Layers 2024-04-23 12:49:33 +01:00
pheralb ed20ce270c 📦 Add layers.to 2024-04-23 12:44:57 +01:00
pheralb 8c19ea2cc5 🎨 Design & accessibility improvements 2024-04-21 00:35:02 +01:00
pheralb 3e9eb405cb ⚙️ Delete custom api url + export themeOptions types 2024-04-21 00:22:43 +01:00
pheralb f53455cbdb 📝 Update api docs 2024-04-21 00:22:11 +01:00
pheralb c09058493d 📦 Add Resend svgs 2024-04-21 00:21:58 +01:00
pheralb 91368f9336 ⚙️ Fix `lychee` workflow 2024-04-20 23:48:25 +01:00
pheralb c5dc547e3f Improve buttons accessibility 2024-04-20 23:46:44 +01:00
pheralb 5e349a68a0 ⬆️ Upgrade tailwind & postcss config 2024-04-20 23:41:52 +01:00
pheralb 038edfa2ae ️ Remove spotlight effect to improve performance 2024-04-20 23:41:34 +01:00
pheralb 632ec0ae27 🐛 Add temporary link to copy svgs 2024-04-20 22:11:41 +01:00
pheralb 18709285e7 ⚙️ Update CDN route in the /svgs API 2024-04-20 21:32:44 +01:00
pheralb eaff9e1dc6 ⚙️ Disable build workflow 2024-04-20 21:29:06 +01:00
pheralb 817734c499 ⚙️ Fix build workflow 2024-04-20 21:27:41 +01:00
pheralb e25dfd288a 🙈 Add `.lycheecache` to .gitignore 2024-04-20 21:25:16 +01:00
pheralb b09257db7f 🔧 Fix async/await issue in svgCard 2024-04-20 21:25:00 +01:00
pheralb 4412e39134 📝 Update API docs 2024-04-20 21:24:26 +01:00
pheralb 091a23a137 🎨 Update navbar & sidebar styles + create global sidebar items 2024-04-20 21:24:10 +01:00
pheralb 8152eabfe4 🧑‍🚀 Add new cdn 2024-04-20 20:33:07 +01:00
pheralb a70cdb0c44 ⚙️ Create new workflow with `lychee` 2024-04-20 20:29:59 +01:00
pheralb 78a344d9e5 🔔 Update `request` template 2024-04-20 20:28:52 +01:00
pheralb faed77782c 📝 Update docs 2024-04-20 20:28:30 +01:00
pheralb e0d253a8d0 🍂 Add redirection to extensions 2024-04-20 20:28:04 +01:00
pheralb ae1b2021b0 ⬆️ Upgrade dependencies 2024-04-20 20:27:08 +01:00
Pablo Hdez 28c1fd6a05 Merge pull request #305 from zachkrall/zachkrall/add-hume-ai-logo
add Hume AI logo
2024-04-18 08:57:31 +01:00
Zach Krall 6d12eb1929 add hume ai logo 2024-04-17 20:09:24 -04:00
Pablo Hdez 7e5329bfb7 Merge pull request #302 from EsteveSegura/fix-jquery
fix: jquery category moved from Language to Library
2024-04-15 11:28:22 +01:00
Pablo Hdez b9b4df7f8a Merge pull request #303 from zoltanszogyenyi/main
feat: add flowbite logo as a framework
2024-04-15 11:24:37 +01:00
Zoltán Szőgyényi f73cffab34 feat: add flowbite logo as a framework 2024-04-15 12:26:34 +03:00
Esteve Segura 47b9f632f7 fix: jquery category moved from Language to Library 2024-04-15 11:09:46 +02:00
Pablo Hdez 45ab10ff27 Merge pull request #299 from ridemountainpig/svgl-badge
Docs add svgl badge extension
2024-04-14 22:55:58 +01:00
Pablo Hdez e3f0222d1d Merge pull request #301 from EsteveSegura/add-gleam-logo
feat: add gleam-lang logo
2024-04-14 22:55:23 +01:00
Esteve Segura 414011cc9f feat: add gleam-lang logo 2024-04-14 20:24:26 +02:00
ridemountainpig 9326c282b6 docs: add svgl badge extension 2024-04-15 01:10:54 +08:00
Pablo Hdez 212df3c4c4 Merge pull request #298 from 1weiho/main
Fix filter SVGs by category doesn't handle multiple categories's SVGs
2024-04-14 14:20:26 +01:00
Yiwei Ho 24e9c827ca refactor: moving the targetCategory string generation out of the filter 2024-04-14 08:50:07 +08:00
Yiwei Ho 88ba73ba9d fix: filter SVGs by category doesn't handle multiple categories's SVGs 2024-04-14 08:39:32 +08:00
Pablo Hdez 948dd49788 Merge pull request #297 from EsteveSegura/main
docs: add new integration
2024-04-13 17:53:40 +01:00
Pablo Hdez 77614234a6 Merge pull request #296 from 1weiho/main
Adjust categories API statistical method
2024-04-13 17:50:40 +01:00
Esteve Segura 777055de59 docs: add new integration 2024-04-13 15:21:50 +02:00
Yiwei Ho e0b6acbe82 feat: adjust categories API statistical method 2024-04-13 09:09:20 +08:00
pheralb a6c3827f8c ⚙️ Remove width & height for some svgs + update supabase wordmark route 2024-04-12 09:25:27 +01:00
pheralb 09476b5949 ⚙️ Fix viewbox of some svgs 2024-04-12 08:53:57 +01:00
pheralb 922542e578 📦 Update Supabase SVGs 2024-04-12 08:52:39 +01:00
Pablo Hdez 4c752a7c91 Merge pull request #291 from jamerrq/pnpm-woodmark
feat: added woodmark version for pnpm logos
2024-04-10 08:44:21 +01:00
Pablo Hdez 78f69b56d9 Merge pull request #290 from xavimondev/main
⚙️ Fix clipboard on safari + separate services
2024-04-10 08:40:47 +01:00
jamerrq 8cbfd86653 feat: added woodmark version for pnpm logos 2024-04-10 00:53:28 -05:00
Xavi Alfaro 5009391f4a fix clipboard on safari 2024-04-09 23:43:54 -05:00
pheralb e88e4e886d 📝 Update docs 2024-04-10 00:58:36 +01:00
pheralb 5328727ff0 🐛 Fix copy to clipboard in Safari 2024-04-09 23:59:59 +01:00
pheralb c622b769f7 ⚙️ Delete unused function 2024-04-09 23:52:32 +01:00
pheralb 37486f48e4 🐛 Fix copy react component to clipboard in Safari 2024-04-09 23:46:13 +01:00
pheralb 6000cbb6a5 🐛 Import plugins directly into svgr 2024-04-09 23:26:51 +01:00
pheralb f1db803782 🎨 Update buttonStyles to include disabled state 2024-04-09 23:25:56 +01:00
pheralb c8ea84bfce 📝 Update docs 2024-04-09 23:06:28 +01:00
pheralb 1d6384b1f2 Add popover UI component 2024-04-09 23:06:11 +01:00
pheralb bbaa5cd05d 🚀 Add server endpoint for transforming SVG to React component 2024-04-09 23:05:54 +01:00
pheralb 79687a4ff1 📦 Add `svgr` packages 2024-04-09 23:05:19 +01:00
pheralb d4bee93474 ♻️ Create `CopySvg` component for copying SVG 2024-04-09 16:23:31 +01:00
pheralb daab73eb58 ⬆️ Upgrade dependencies 2024-04-09 15:40:55 +01:00
Pablo Hdez bc43c7a628 Merge pull request #288 from trinhdinhtai/feature/add-microsoft-todo
feat: add Microsoft Todo SVG icon
2024-04-07 15:14:39 +01:00
taitddev ddbb6e7b9f feat: add Microsoft Todo SVG icon 2024-04-06 22:14:24 +07:00
Pablo Hdez e89c79100f Merge pull request #285 from NoHaxito/patch-1
Fix: Added viewBox to Node.js svg icon
2024-04-06 14:18:08 +01:00
NoHaxito 576a3ca714 Added viewBox to Node.js svg 2024-04-05 21:24:16 -05:00
Pablo Hdez 6ba2674fa8 Merge pull request #284 from DrxcoDev/patch-1
Error enlace Adobe premiere
2024-04-05 15:45:59 +01:00
DrxcoDev 691c677c13 Update svgs.ts 2024-04-05 11:24:05 +02:00
Pablo Hdez 22aea01a60 Merge pull request #281 from trinhdinhtai/main
feat: add Raindrop.io SVG icon
2024-04-01 08:34:43 +01:00
trinhdinhtai 713d22dc32 feat: add Raindrop.io SVG icon to svgs.ts 2024-04-01 13:04:46 +07:00
Pablo Hdez 431038329b Merge pull request #280 from matheusmanuel/main
feat: add Aliexpress logo text
2024-03-24 20:56:15 +00:00
Matheus manuel 217a89750f feat: add wordmark aliexpress 2024-03-24 18:50:22 +01:00
Matheus manuel 4b7c7f768f feat: add Aliexpress logo text 2024-03-23 10:05:59 +01:00
Pablo Hdez bf13bc2c49 Merge pull request #279 from matheusmanuel/main
feat: add aliexpress svg
2024-03-22 08:28:38 +00:00
Matheus manuel 9cc555c252 feat: add aliexpress svg 2024-03-21 14:01:16 +01:00
Pablo Hdez 04dfa9319e Merge pull request #278 from ridemountainpig/raycast-wordmark
Add raycast wordmark svg
2024-03-19 10:02:24 +01:00
ridemountainpig 1f3ece7bf2 feat: add raycast wordmark svg 2024-03-18 15:54:37 +08:00
Pablo Hdez 7ea97f4a76 Merge pull request #270 from ridemountainpig/fix-github&add-dub
Fix github svg & Add dub wordmark svg
2024-03-11 09:02:15 +00:00
ridemountainpig 1a359e479e fix github svg & add dub wordmark svg 2024-03-11 14:27:13 +08:00
Pablo Hdez b64042f864 Merge pull request #268 from hellrolos/patch-1
Add ViewBox to Github svg
2024-03-10 11:57:40 +00:00
Roberto Villalobos d9c3854d90 Add ViewBox to Github svg 2024-03-09 16:42:23 -07:00
pheralb 482ef59950 🖌️ Update `svelte-sonner` styles 2024-03-09 14:03:42 +00:00
pheralb 407762d3a7 🎨 Update styles for downloadSvg and fix github icon name 2024-03-09 13:48:18 +00:00
pheralb 43de2bb7bf 🛠️ Fix navbar link 2024-03-09 12:52:55 +00:00
pheralb c547777502 ⚙️ Merge branch 'main' of github.com:pheralb/svgl 2024-03-09 12:49:42 +00:00
pheralb 6b61e2104f ⬆️ Upgrade Shiki config 2024-03-09 12:46:38 +00:00
pheralb e7bc95b6f5 🎨 Add custom Github icon 2024-03-09 12:46:18 +00:00
pheralb 04dd13d3c5 Add Vercel category 2024-03-09 12:46:01 +00:00
pheralb 15cd128421 ⬆️ Upgrade dependencies 2024-03-09 12:43:55 +00:00
pheralb 308193b7b6 📦 Update Next.js svgs + add hugging face & mistral-ai 2024-03-09 12:43:32 +00:00
Pablo Hdez 566994308e Merge pull request #266 from GianninaGit/patch-3
Eliminate fill GitHub icon svg
2024-03-06 09:18:17 +00:00
Giannina 539c479eae Eliminate fill GitHub icon svg 2024-03-05 01:21:15 +01:00
Pablo Hdez bff5c3f50c Merge pull request #262 from moises35/add-tinaCMS-logo
Add tinaCMS logo solid and logo with wordmark
2024-02-27 15:45:14 +00:00
Moisés Alvarenga 1eb1f5a9d4 Add tinaCMS logo solid and logo with wordmark 2024-02-27 12:43:37 -03:00
Pablo Hdez 051fdfd079 Merge pull request #261 from moises35/add-zoom-logo
Add zoom logo
2024-02-26 22:18:25 +00:00
Moisés Alvarenga eaddbf981f Add zoom logo 2024-02-26 13:54:24 -03:00
Pablo Hdez ec778a89f2 Merge pull request #260 from ridemountainpig/fix&add-svg
Fix tailwindcss svg & Add zeabur wordmark svg
2024-02-24 15:21:13 +00:00
ridemountainpig 06201212f6 fix tailwindcss svg & add zeabur wordmark svg 2024-02-24 13:05:31 +08:00
Pablo Hdez 151c15e005 Merge pull request #259 from bjohansebas/new-icons
Add new icons
2024-02-23 08:22:12 +00:00
Sebastian Beltran 3abfa5e34e feat: add asana logo 2024-02-22 19:43:26 -05:00
Sebastian Beltran 7c9de0afcc feat: add lemon squeezy logo 2024-02-22 19:13:41 -05:00
Sebastian Beltran 6abbc50b5a feat: add ngrok logo 2024-02-22 18:38:23 -05:00
Pablo Hdez 6ba8e40ae5 Merge pull request #258 from erik-antony-mg/patch-1
Update tailwindcss.svg
2024-02-22 11:38:01 +00:00
erik antony muñico galvan f98a787c2a Update tailwindcss.svg
no se visualizaba el svg de tailwind el problema era del id creo que no lo encontraba en el path cambie el id a gradient y ahora si se muestra el svg de tailwind
2024-02-21 20:32:57 -05:00
Pablo Hdez bc48bfbfba Merge pull request #254 from bdsqqq/main
feat: add axiom wordmarks
2024-02-20 00:54:54 +00:00
Igor Bedesqui 048ea24cfb feat: add axiom wordmarks 2024-02-20 00:51:47 +00:00
Pablo Hdez 324f7831bf Merge pull request #250 from BrayanChavarro/patch-1
mask="url(#b)" is removed from path tags
2024-02-14 17:50:35 +00:00
pheralb da90b95643 🤔 Fix `tiktok` svg route 2024-02-13 20:33:17 +00:00
Brayan Stiven Chavarro Morales c039a5b90d mask="url(#b)" is removed from path tags
because when it is used it does not show the icon, deleting that part works if it is used.
2024-02-12 13:13:08 -05:00
Pablo Hdez 3c4bdd9a28 Merge pull request #246 from Pyr33x/main
 New Changes
2024-02-11 15:46:42 +00:00
Mehdi Dara 133ba6abcf 😄 Fixed a little mistake 2024-02-11 12:30:24 +03:30
Mehdi Dara 7358d6a1d9 Optimized fonts for better legibility 2024-02-11 12:21:38 +03:30
Mehdi Dara 9e88f19219 👀 Enhanced the hover state 2024-02-11 12:18:50 +03:30
Mehdi Dara 757304e0e2 🪄 UI friendly buttons with the full rounded variant of border radius 2024-02-11 12:10:55 +03:30
Mehdi Dara e4de8f08d7 Decreased the transparency for the better ui 2024-02-11 12:05:37 +03:30
Mehdi Dara eff53d84c8 😄 Fixed YouTube Music ViewBox 2024-02-11 12:03:07 +03:30
Mehdi Dara 7b4d595819 Fixed backdrop blue appearing 2024-02-11 11:55:35 +03:30
Mehdi Dara caf6609bbd 👀 Blocked user selection for the icon 2024-02-11 11:49:46 +03:30
Mehdi Dara 46ac870d81 🚀 Added Solidity 2024-02-10 22:43:58 +03:30
Mehdi Dara 595c3441af 💚 Added Kick 2024-02-10 22:36:52 +03:30
Pablo Hdez 894480d64b Merge pull request #242 from thanir03/main
Added Stackoverflow logo
2024-02-07 09:02:04 +00:00
Pablo Hdez 70a0aac8ea Merge pull request #245 from marpeand/main
Add Flask wordmarks & update wordmark button
2024-02-07 09:01:39 +00:00
marpeand ee11e5f8cc Update button title dynamically based on state 2024-02-06 16:52:03 -03:00
marpeand 32dd7668ea update flask data 2024-02-06 10:26:46 -03:00
marpeand 3bb715fb0d add flask wordmark logos 2024-02-06 10:26:22 -03:00
Thanirmalai cd10d2e1ab Added Stackoverflow logo 2024-02-05 15:12:22 +08:00
Pablo Hdez 72ff8b2fe4 Merge pull request #241 from ticua07/add-error-404-handling
Handle non-existant categories and urls
2024-02-03 15:36:04 +00:00
Pablo Hdez 04922c5483 Merge pull request #240 from EsteveSegura/main
Added OBS icon
2024-02-03 15:30:24 +00:00
Ticua 3608829163 ⚙ Handle non-existant categories and urls 2024-02-03 02:28:57 -03:00
Esteve Segura 9327f25c90 Added OBS icon 2024-02-02 22:35:49 +01:00
Pablo Hdez c843669446 Merge pull request #239 from LauraCastrillonMp/main
🚀 New logos
2024-02-01 10:55:48 +00:00
Pablo Hdez c9c2e96e51 Merge pull request #238 from daracenadevelop/add-new-item
add new item web.dev svg
2024-02-01 10:53:59 +00:00
Pablo Hdez 9a146bd6fe Merge branch 'main' into add-new-item 2024-02-01 10:53:36 +00:00
LauraCastrillonMp d7638206a2 Add TIDAL Logo 2024-01-31 23:34:26 -05:00
LauraCastrillonMp b5b97e2a43 Add Youtube Music Logo 2024-01-31 23:28:05 -05:00
LauraCastrillonMp dea8308f23 Add Spotify wordmark and it change to new category 2024-01-31 23:27:08 -05:00
Dany Aracena 1ac03fdadd add new item web.dev svg 2024-01-31 23:10:00 -04:00
Pablo Hdez 8a614c179f 📄Update README extensions 2024-01-29 14:16:00 +00:00
Pablo Hdez 91ba1eb106 ⚙️ Fix Refine light/dark route 2024-01-29 09:21:04 +00:00
Pablo Hdez b3179bb757 Merge pull request #237 from necatiozmen/main
Add Refine framework logo
2024-01-29 09:14:47 +00:00
Pablo Hdez 0b8d6a935a Merge pull request #236 from ridemountainpig/fix-accept-btn
Fix `Accept` button layout
2024-01-29 09:13:46 +00:00
necatiozmen 74e994e982 Add Refine logo svg 2024-01-29 10:19:24 +03:00
ridemountainpig 0ef365f645 fix: accept btn layout 2024-01-29 09:35:10 +08:00
Pablo Hdez a6e99a9bad Merge pull request #234 from ivanosquis10/add-swr-logo
📦Added SWR library logo
2024-01-28 18:34:50 +00:00
ivanosquis10 c397b1b66c 📦Added SWR library logo 2024-01-28 12:53:51 -04:00
Pablo Hdez 0cc90ed598 Merge pull request #232 from davidho0403/main
Add search url parameter feature
2024-01-27 17:32:52 +00:00
David Ho cd748a8657 chore: remove url param if the input was cleared 2024-01-27 20:35:03 +08:00
David Ho 5053dc18b3 feat: add search url parameter 2024-01-27 19:03:58 +08:00
Pablo Hdez 17a67d14b2 Merge pull request #231 from pheralb/next
⚙️ Improvements when change light/dark theme & fix downloading svgs with wordmark.
2024-01-27 00:13:46 +00:00
pheralb 804a060e58 ⚙️ Fixed download svg when `wordmark & route` are strings 2024-01-27 00:09:37 +00:00
pheralb b2caf5c371 🎨 Update theme config 2024-01-26 23:57:29 +00:00
pheralb c06f0adaf8 📦 Add `mode-watcher` library 2024-01-26 23:57:13 +00:00
510 changed files with 12512 additions and 3666 deletions
-30
View File
@@ -1,30 +0,0 @@
module.exports = {
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'
}
}
]
};
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: '✉️ Contact'
url: 'https://x.com/pheralb_'
about: 'Send a private message to report a problem or remove a logo.'
+49
View File
@@ -0,0 +1,49 @@
---
name: 🚧 Bug Report
about: Report an issue or bug in the project
title: '[🚧 Bug]: Issue title'
labels: bug
---
## Description
**What is the issue?**
Provide a clear and concise description of the problem. Include details about what you expected to happen and what actually happened.
---
## Steps to Reproduce
**1.** Step 1
**2.** Step 2
**3.** Step 3
Provide detailed instructions to help us reproduce the issue.
---
## Expected Behavior
What should have happened instead of the issue?
---
## Screenshots
If applicable, add screenshots or videos to help explain the problem.
---
## Additional Information
**Project version:**
Specify the project version or commit hash you are using.
**Environment details:**
- OS:
- Browser (if applicable):
- Node.js version (if applicable):
- Any other relevant details:
---
-20
View File
@@ -1,20 +0,0 @@
---
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**.
+97
View File
@@ -0,0 +1,97 @@
name: 🔔 Request SVG
description: Request a new SVG icon to be added to the collection.
title: '[🔔 Request SVG]: '
labels: [request]
body:
- type: markdown
attributes:
value: |
👋 Thanks for requesting a new SVG icon! Please fill out the form below to help us understand your request better:
- type: input
id: svg-name
attributes:
label: Title
description: Product name, brand name.
placeholder: SVGL
validations:
required: true
- type: input
id: svg-url
attributes:
label: SVG URL
description: The URL to the SVG file.
placeholder: https://website.com/logo.svg
validations:
required: true
- type: input
id: svg-url-dark
attributes:
label: SVG Dark Mode URL (optional)
description: The URL to the SVG file for dark mode.
placeholder: https://website.com/logo-dark.svg
validations:
required: false
- type: input
id: svg-product-url
attributes:
label: Product URL
description: The URL to the product or brand.
placeholder: https://website.com
validations:
required: true
- type: dropdown
id: svg-category
attributes:
label: Category
description: Category/Categories of the product. If the category does not exist, select “Others”.
multiple: true
options:
- AI
- Software
- Hardware
- Library
- Hosting
- Framework
- Devtool
- Monorepo
- CMS
- Database
- Compiler
- Crypto
- Cybersecurity
- Social
- Entertainment
- Browser
- Language
- Education
- Design
- Community
- Marketplace
- Music
- Vercel
- Google
- Payment
- VoidZero
- Authentication
- IoT
- Home Automation
- Config
- Secrets
- Other
- type: checkboxes
id: terms
attributes:
label: Checklist
options:
- label: I have permission to use this logo.
required: true
- label: The .svg URL I have provided is optimized for web use.
required: true
- label: The .svg size is less than **20kb**.
required: true
+16
View File
@@ -0,0 +1,16 @@
## 📝 About your SVG:
- **Title**:
- **Category**:
- **Website URL**:
- **Description**:
## 📷 Screenshots:
✨ Add screenshots of the logo.
## ✅ Checklist
- [ ] I have permission to use this logo.
- [ ] The ``.svg`` file is optimized for web use.
- [ ] The ``.svg`` size is less than **20kb**.
+28
View File
@@ -0,0 +1,28 @@
name: 📦 Build
on:
push:
branches:
- main
jobs:
build-app:
runs-on: ubuntu-latest
name: 🛠️ Build app
steps:
- uses: actions/checkout@v4
- name: Setup pnpm 9
uses: pnpm/action-setup@v4
with:
version: 9
- name: Install dependencies
run: pnpm install
- name: Build app
run: pnpm vite:build
env:
UPSTASH_REDIS_TOKEN: ${{ secrets.UPSTASH_REDIS_TOKEN }}
UPSTASH_REDIS_URL: ${{ secrets.UPSTASH_REDIS_URL }}
SVGL_API_REQUESTS: ${{ secrets.SVGL_API_REQUESTS }}
+48
View File
@@ -0,0 +1,48 @@
name: 🧑‍🚀 Check
on:
push:
branches:
- main
- next
pull_request:
branches:
- main
- next
jobs:
vitest:
runs-on: ubuntu-latest
name: ⚡ Testing with Vitest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm 9
uses: pnpm/action-setup@v4
with:
version: 9
- name: Install dependencies
run: pnpm install
- name: Run Vitest
run: pnpm test
svgs-size:
runs-on: ubuntu-latest
name: 📦 SVGs Size
steps:
- uses: actions/checkout@v4
- name: Setup pnpm 9
uses: pnpm/action-setup@v4
with:
version: 9
- name: Install utility dependencies
run: pnpm install
working-directory: ./utils/check-size
- name: Check svgs size
run: pnpm start
working-directory: ./utils/check-size
-45
View File
@@ -1,45 +0,0 @@
name: 🔎 Check
on:
push:
branches:
- main
- next
pull_request:
branches:
- main
- next
jobs:
vitest:
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
- 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
+28
View File
@@ -0,0 +1,28 @@
name: 🚀 Deploy
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
name: ☁️ API
steps:
- uses: actions/checkout@v4
- name: Setup pnpm 9
uses: pnpm/action-setup@v2
with:
version: 9
- name: Install global dependencies
run: pnpm install
- name: Deploy to Cloudflare Workers
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
packageManager: pnpm
workingDirectory: 'api-routes'
+12 -1
View File
@@ -6,9 +6,17 @@ yarn.lock
# Folders
/.svelte-kit
/build
dist
/package
.idea/
# Hono
.wrangler
.dev.vars
# Vercel
.vercel
# Logs
.DS_Store
@@ -20,4 +28,7 @@ yarn.lock
# Vite files
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
src/figma/dist
src/figma/dist
# Lychee files
.lycheecache
+1
View File
@@ -1 +1,2 @@
engine-strict=true
save-exact=true
-9
View File
@@ -1,9 +0,0 @@
{
"useTabs": false,
"singleQuote": true,
"trailingComma": "none",
"printWidth": 100,
"plugins": ["prettier-plugin-svelte"],
"pluginSearchDirs": ["."],
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
}
+67 -43
View File
@@ -7,10 +7,10 @@
<div align="center">
<a href="https://svgl.app" target="_blank">
Discover
Explore
</a>
<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">
<a href="https://github.com/pheralb/svgl/issues/new?assignees=&labels=request&projects=&template=request-svg.yml&title=%5B%F0%9F%94%94+Request+SVG%5D%3A+">
Request logo
</a>
<span>&nbsp;✦&nbsp;</span>
@@ -35,16 +35,36 @@
<div align="center">
![Svelte Badge](https://img.shields.io/badge/Svelte-FF3E00?logo=svelte&logoColor=fff&style=flat)
![Svelte Badge](https://img.shields.io/badge/Sveltekit-FF3E00?logo=svelte&logoColor=fff&style=flat)
![Hono Badge](https://img.shields.io/badge/Hono-E36002?logo=hono&logoColor=fff&style=flat)
![Svelte Badge](https://img.shields.io/badge/Upstash-121212?logo=upstash&logoColor=#00C786&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 issues](https://img.shields.io/github/issues/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>
## 📦 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" /> | SVGL CLI | 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/react_light.svg" height="25" /> | SVGL for React | An open-source NPM package that offers a SVGL Logos for React. | [ridemountainpig](https://x.com/ridemountainpig) | [GitHub Repository](https://github.com/ridemountainpig/svgl-react?tab=readme-ov-file#svgl-react) |
| <img src="https://github.com/pheralb/svgl/blob/main/static/library/vue.svg" height="25" /> | SVGL for Vue | An open-source NPM package that offers a SVGL Logos for Vue. | [selemondev](https://x.com/selemondev) | [GitHub Repository](https://github.com/selemondev/svgl-vue?tab=readme-ov-file#--svgl-vue--) |
| <img src="https://github.com/pheralb/svgl/blob/main/static/library/svelte.svg" height="25" /> | SVGL for Svelte | An open-source NPM package that offers a SVGL Logos for Svelte. | [selemondev](https://x.com/selemondev) | [GitHub Repository](https://github.com/selemondev/svgl-svelte#--svgl-svelte--) |
| <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/powertoys.svg" height="25" /> | SVGL for PowerToys | Search & copy SVG logos in PowerToys Run. | [SameerJS6](https://x.com/Sameerjs6) | [Website](https://svgl.sameerjs.com/) |
| <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/1weiho/svgl) |
| <img src="https://github.com/pheralb/svgl/blob/main/static/library/vscode.svg" height="25" /> | SVGL for VSCode | SVGL directly in your VSCode. | [girlazote](https://twitter.com/girlazote) | [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=EsteveSegura.svgl) |
| <img src="https://svgl-badge.vercel.app/api/Library/Svgl?theme=light" height="25" /> | SVGL Badge | A beautiful badges with svgl SVG logos. | [ridemountainpig](https://twitter.com/ridemountainpig) | [Website](https://svgl-badge.vercel.app/) |
| <img src="https://github.com/serafimcloud/21st/blob/main/apps/web/public/icon.png?raw=true" height="25" /> | Magic | AI extension for Cursor & other IDEs | [serafimcloud](https://x.com/serafimcloud) | [Website](https://21st.dev/magic) |
| <img src="/static/library/powershell.svg" height="25" /> | SVGL for PowerShell | PowerShell extension to quickly get svgl logos anywhere | [Bart Spaans](https://bsky.app/profile/bartspaans.bsky.social) | [GitHub](https://github.com/spaansba/SVGL-PowerShell) |
| <img src="/static/library/FlowLauncher.svg" height="25"> | SVGL for Flow Launcher | Search & copy SVG logos in Flow Launcher | [AF_Askar](https://x.com/Askar_AF) | [GitHub](https://github.com/abo3skr2019/SVGl-plugin) |
## 🛠️ Stack
- [**Sveltekit**](https://kit.svelte.dev/) - Web development, streamlined.
@@ -57,6 +77,7 @@
- [**Prettier**](https://prettier.io/) + [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) - An opinionated code formatter.
- [**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.
- [**@svgr/core**](https://react-svgr.com/) - Node.js utility to transform SVGs into React components.
- [**@upstash/redis** + **@upstash/ratelimit**](https://upstash.com/) - Serverless Redis for developers.
- [**Vitest**](https://vitest.dev/) - Blazing Fast Unit Test Framework.
@@ -67,7 +88,7 @@
You will need:
- [Node.js 16+ (recommended 18 LTS)](https://nodejs.org/en/).
- [Node.js 18+ (recommended 20 LTS)](https://nodejs.org/en/).
- [Git](https://git-scm.com/).
1. [Fork](https://github.com/pheralb/svgl/fork) this repository and clone it locally:
@@ -92,59 +113,72 @@ pnpm install
>
> - 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**.
> - The size limit for each .svg is **21kb**.
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:
- **Simple logo**:
```json
```ts
{
"title": "Title",
"category": "Category",
"route": "/library/your_logo.svg",
"url": "Website"
title: 'Title',
category: 'Category',
route: '/library/your_logo.svg',
url: 'Website'
}
```
- If the logo has logo + wordmark version:
- **Logo + wordmark** version:
```json
```ts
{
"title": "Title",
"category": "Category",
"route": "/library/your_logo.svg",
"wordmark": "/library/your_logo_wordmark.svg",
"url": "Website"
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:
- **Logo + wordmark** & **light + dark mode**:
```json
```ts
{
"title": "Title",
"category": "Category",
"route": {
"light": "/library/your_logo_light.svg",
"dark": "/library/your_logo_dark.svg"
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"
wordmark: {
light: '/library/your_wordmark-logo_light.svg',
dark: '/library/your_wordmark-logo_dark.svg'
},
"url": "Website"
url: 'Website'
}
```
- **Add brand guidelines**:
```ts
{
title: 'Title',
category: 'Category',
route: '/library/your_logo.svg',
wordmark: '/library/your_logo_wordmark.svg',
brandUrl: 'https://assets.website.com/brand-guidelines',
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).
> - You can add multiple categories to the same logo, for example: `category: ['Social', 'Design']`.
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:
5. (Optional) If you want to run the [API](https://svgl.app/api) locally, you will need to create a `.dev.vars` file in the [`/api-routes`](https://github.com/pheralb/svgl/tree/main/api-routes) folder with the following variables:
- [Create a Upstash account](https://console.upstash.com/).
- [Create a Upstash Redis Database](https://upstash.com/docs/redis/overall/getstarted).
@@ -155,16 +189,6 @@ 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">
+20
View File
@@ -0,0 +1,20 @@
{
"name": "@pheralb/svgl-api",
"author": "@pheralb_",
"version": "1.0.1",
"description": "SVGL API built with Hono & Cloudflare.",
"private": true,
"license": "MIT",
"scripts": {
"dev": "wrangler dev src/index.ts",
"deploy": "wrangler deploy --minify src/index.ts"
},
"dependencies": {
"@upstash/ratelimit": "2.0.6",
"hono": "4.8.12"
},
"devDependencies": {
"@cloudflare/workers-types": "4.20250805.0",
"wrangler": "4.28.0"
}
}
+953
View File
@@ -0,0 +1,953 @@
lockfileVersion: '9.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
importers:
.:
dependencies:
'@upstash/ratelimit':
specifier: 2.0.6
version: 2.0.6(@upstash/redis@1.34.0)
hono:
specifier: 4.8.12
version: 4.8.12
devDependencies:
'@cloudflare/workers-types':
specifier: 4.20250805.0
version: 4.20250805.0
wrangler:
specifier: 4.28.0
version: 4.28.0(@cloudflare/workers-types@4.20250805.0)
packages:
'@cloudflare/kv-asset-handler@0.4.0':
resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==}
engines: {node: '>=18.0.0'}
'@cloudflare/unenv-preset@2.6.0':
resolution: {integrity: sha512-h7Txw0WbDuUbrvZwky6+x7ft+U/Gppfn/rWx6IdR+e9gjygozRJnV26Y2TOr3yrIFa6OsZqqR2lN+jWTrakHXg==}
peerDependencies:
unenv: 2.0.0-rc.19
workerd: ^1.20250802.0
peerDependenciesMeta:
workerd:
optional: true
'@cloudflare/workerd-darwin-64@1.20250803.0':
resolution: {integrity: sha512-6QciMnJp1p3F1qUiN0LaLfmw7SuZA/gfUBOe8Ft81pw16JYZ3CyiqIKPJvc1SV8jgDx8r+gz/PRi1NwOMt329A==}
engines: {node: '>=16'}
cpu: [x64]
os: [darwin]
'@cloudflare/workerd-darwin-arm64@1.20250803.0':
resolution: {integrity: sha512-DoIgghDowtqoNhL6OoN/F92SKtrk7mRQKc4YSs/Dst8IwFZq+pCShOlWfB0MXqHKPSoiz5xLSrUKR9H6gQMPvw==}
engines: {node: '>=16'}
cpu: [arm64]
os: [darwin]
'@cloudflare/workerd-linux-64@1.20250803.0':
resolution: {integrity: sha512-mYdz4vNWX3+PoqRjssepVQqgh42IBiSrl+wb7vbh7VVWUVzBnQKtW3G+UFiBF62hohCLexGIEi7L0cFfRlcKSQ==}
engines: {node: '>=16'}
cpu: [x64]
os: [linux]
'@cloudflare/workerd-linux-arm64@1.20250803.0':
resolution: {integrity: sha512-RmrtUYLRUg6djKU7Z6yebS6YGJVnaDVY6bbXca+2s26vw4ibJDOTPLuBHFQF62Grw3fAfsNbjQh5i14vG2mqUg==}
engines: {node: '>=16'}
cpu: [arm64]
os: [linux]
'@cloudflare/workerd-windows-64@1.20250803.0':
resolution: {integrity: sha512-uLV8gdudz36o9sUaAKbBxxTwZwLFz1KyW7QpBvOo4+r3Ib8yVKXGiySIMWGD7A0urSMrjf3e5LlLcJKgZUOjMA==}
engines: {node: '>=16'}
cpu: [x64]
os: [win32]
'@cloudflare/workers-types@4.20250805.0':
resolution: {integrity: sha512-HOt0lqFiw5WzhvxH/IViMAWI/zwzokCSx33DlRnJqECT9khskK9X4Jrw/+IiAprJ5YloiFxK8Xn1oGbsabdUWg==}
'@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
'@emnapi/runtime@1.4.0':
resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==}
'@esbuild/aix-ppc64@0.25.4':
resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
'@esbuild/android-arm64@0.25.4':
resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
'@esbuild/android-arm@0.25.4':
resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
'@esbuild/android-x64@0.25.4':
resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
'@esbuild/darwin-arm64@0.25.4':
resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
'@esbuild/darwin-x64@0.25.4':
resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
'@esbuild/freebsd-arm64@0.25.4':
resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
'@esbuild/freebsd-x64@0.25.4':
resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
'@esbuild/linux-arm64@0.25.4':
resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
'@esbuild/linux-arm@0.25.4':
resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
'@esbuild/linux-ia32@0.25.4':
resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
'@esbuild/linux-loong64@0.25.4':
resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
'@esbuild/linux-mips64el@0.25.4':
resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
'@esbuild/linux-ppc64@0.25.4':
resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
'@esbuild/linux-riscv64@0.25.4':
resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
'@esbuild/linux-s390x@0.25.4':
resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
'@esbuild/linux-x64@0.25.4':
resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
'@esbuild/netbsd-arm64@0.25.4':
resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
'@esbuild/netbsd-x64@0.25.4':
resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
'@esbuild/openbsd-arm64@0.25.4':
resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
'@esbuild/openbsd-x64@0.25.4':
resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
'@esbuild/sunos-x64@0.25.4':
resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
'@esbuild/win32-arm64@0.25.4':
resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
'@esbuild/win32-ia32@0.25.4':
resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
'@esbuild/win32-x64@0.25.4':
resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
'@img/sharp-darwin-arm64@0.33.5':
resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [darwin]
'@img/sharp-darwin-x64@0.33.5':
resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [darwin]
'@img/sharp-libvips-darwin-arm64@1.0.4':
resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==}
cpu: [arm64]
os: [darwin]
'@img/sharp-libvips-darwin-x64@1.0.4':
resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==}
cpu: [x64]
os: [darwin]
'@img/sharp-libvips-linux-arm64@1.0.4':
resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
cpu: [arm64]
os: [linux]
'@img/sharp-libvips-linux-arm@1.0.5':
resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
cpu: [arm]
os: [linux]
'@img/sharp-libvips-linux-s390x@1.0.4':
resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
cpu: [s390x]
os: [linux]
'@img/sharp-libvips-linux-x64@1.0.4':
resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
cpu: [x64]
os: [linux]
'@img/sharp-libvips-linuxmusl-arm64@1.0.4':
resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
cpu: [arm64]
os: [linux]
'@img/sharp-libvips-linuxmusl-x64@1.0.4':
resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
cpu: [x64]
os: [linux]
'@img/sharp-linux-arm64@0.33.5':
resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
'@img/sharp-linux-arm@0.33.5':
resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm]
os: [linux]
'@img/sharp-linux-s390x@0.33.5':
resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
'@img/sharp-linux-x64@0.33.5':
resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
'@img/sharp-linuxmusl-arm64@0.33.5':
resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
'@img/sharp-linuxmusl-x64@0.33.5':
resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
'@img/sharp-wasm32@0.33.5':
resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [wasm32]
'@img/sharp-win32-ia32@0.33.5':
resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ia32]
os: [win32]
'@img/sharp-win32-x64@0.33.5':
resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [win32]
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
'@jridgewell/sourcemap-codec@1.4.15':
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
'@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
'@poppinss/colors@4.1.5':
resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==}
'@poppinss/dumper@0.6.4':
resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==}
'@poppinss/exception@1.2.2':
resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==}
'@sindresorhus/is@7.0.2':
resolution: {integrity: sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==}
engines: {node: '>=18'}
'@speed-highlight/core@1.2.7':
resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==}
'@upstash/core-analytics@0.0.10':
resolution: {integrity: sha512-7qJHGxpQgQr9/vmeS1PktEwvNAF7TI4iJDi8Pu2CFZ9YUGHZH4fOP5TfYlZ4aVxfopnELiE4BS4FBjyK7V1/xQ==}
engines: {node: '>=16.0.0'}
'@upstash/ratelimit@2.0.6':
resolution: {integrity: sha512-Uak5qklMfzFN5RXltxY6IXRENu+Hgmo9iEgMPOlUs2etSQas2N+hJfbHw37OUy4vldLRXeD0OzL+YRvO2l5acg==}
peerDependencies:
'@upstash/redis': ^1.34.3
'@upstash/redis@1.34.0':
resolution: {integrity: sha512-TrXNoJLkysIl8SBc4u9bNnyoFYoILpCcFJcLyWCccb/QSUmaVKdvY0m5diZqc3btExsapcMbaw/s/wh9Sf1pJw==}
acorn-walk@8.3.2:
resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
engines: {node: '>=0.4.0'}
acorn@8.14.0:
resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
engines: {node: '>=0.4.0'}
hasBin: true
blake3-wasm@2.1.5:
resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==}
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
color-string@1.9.1:
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
color@4.2.3:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
cookie@1.0.2:
resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
engines: {node: '>=18'}
crypto-js@4.2.0:
resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
detect-libc@2.0.3:
resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
engines: {node: '>=8'}
error-stack-parser-es@1.0.5:
resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==}
esbuild@0.25.4:
resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==}
engines: {node: '>=18'}
hasBin: true
exit-hook@2.2.1:
resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
engines: {node: '>=6'}
exsolve@1.0.7:
resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
glob-to-regexp@0.4.1:
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
hono@4.8.12:
resolution: {integrity: sha512-MQSKk1Mg7b74k8l+A025LfysnLtXDKkE4pLaSsYRQC5iy85lgZnuyeQ1Wynair9mmECzoLu+FtJtqNZSoogBDQ==}
engines: {node: '>=16.9.0'}
is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
kleur@4.1.5:
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
engines: {node: '>=6'}
mime@3.0.0:
resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
engines: {node: '>=10.0.0'}
hasBin: true
miniflare@4.20250803.0:
resolution: {integrity: sha512-1tmCLfmMw0SqRBF9PPII9CVLQRzOrO7uIBmSng8BMSmtgs2kos7OeoM0sg6KbR9FrvP/zAniLyZuCAMAjuu4fQ==}
engines: {node: '>=18.0.0'}
hasBin: true
ohash@2.0.11:
resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==}
path-to-regexp@6.3.0:
resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
semver@7.7.1:
resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
engines: {node: '>=10'}
hasBin: true
sharp@0.33.5:
resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
stoppable@1.1.0:
resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==}
engines: {node: '>=4', npm: '>=6'}
supports-color@10.1.0:
resolution: {integrity: sha512-GBuewsPrhJPftT+fqDa9oI/zc5HNsG9nREqwzoSFDOIqf0NggOZbHQj2TE1P1CDJK8ZogFnlZY9hWoUiur7I/A==}
engines: {node: '>=18'}
tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
ufo@1.6.1:
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
undici@7.13.0:
resolution: {integrity: sha512-l+zSMssRqrzDcb3fjMkjjLGmuiiK2pMIcV++mJaAc9vhjSGpvM7h43QgP+OAMb1GImHmbPyG2tBXeuyG5iY4gA==}
engines: {node: '>=20.18.1'}
unenv@2.0.0-rc.19:
resolution: {integrity: sha512-t/OMHBNAkknVCI7bVB9OWjUUAwhVv9vsPIAGnNUxnu3FxPQN11rjh0sksLMzc3g7IlTgvHmOTl4JM7JHpcv5wA==}
workerd@1.20250803.0:
resolution: {integrity: sha512-oYH29mE/wNolPc32NHHQbySaNorj6+KASUtOvQHySxB5mO1NWdGuNv49woxNCF5971UYceGQndY+OLT+24C3wQ==}
engines: {node: '>=16'}
hasBin: true
wrangler@4.28.0:
resolution: {integrity: sha512-y0yHIuScpok9oSErLqDbxkBChC2+/jZpvqMg2NxOto1JCyUtDUuKljOfcVMaI48d9GuhOCSoWSumYxLAHNxaLA==}
engines: {node: '>=18.0.0'}
hasBin: true
peerDependencies:
'@cloudflare/workers-types': ^4.20250803.0
peerDependenciesMeta:
'@cloudflare/workers-types':
optional: true
ws@8.18.0:
resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: '>=5.0.2'
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
youch-core@0.3.3:
resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==}
youch@4.1.0-beta.10:
resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==}
zod@3.22.3:
resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==}
snapshots:
'@cloudflare/kv-asset-handler@0.4.0':
dependencies:
mime: 3.0.0
'@cloudflare/unenv-preset@2.6.0(unenv@2.0.0-rc.19)(workerd@1.20250803.0)':
dependencies:
unenv: 2.0.0-rc.19
optionalDependencies:
workerd: 1.20250803.0
'@cloudflare/workerd-darwin-64@1.20250803.0':
optional: true
'@cloudflare/workerd-darwin-arm64@1.20250803.0':
optional: true
'@cloudflare/workerd-linux-64@1.20250803.0':
optional: true
'@cloudflare/workerd-linux-arm64@1.20250803.0':
optional: true
'@cloudflare/workerd-windows-64@1.20250803.0':
optional: true
'@cloudflare/workers-types@4.20250805.0': {}
'@cspotcode/source-map-support@0.8.1':
dependencies:
'@jridgewell/trace-mapping': 0.3.9
'@emnapi/runtime@1.4.0':
dependencies:
tslib: 2.6.2
optional: true
'@esbuild/aix-ppc64@0.25.4':
optional: true
'@esbuild/android-arm64@0.25.4':
optional: true
'@esbuild/android-arm@0.25.4':
optional: true
'@esbuild/android-x64@0.25.4':
optional: true
'@esbuild/darwin-arm64@0.25.4':
optional: true
'@esbuild/darwin-x64@0.25.4':
optional: true
'@esbuild/freebsd-arm64@0.25.4':
optional: true
'@esbuild/freebsd-x64@0.25.4':
optional: true
'@esbuild/linux-arm64@0.25.4':
optional: true
'@esbuild/linux-arm@0.25.4':
optional: true
'@esbuild/linux-ia32@0.25.4':
optional: true
'@esbuild/linux-loong64@0.25.4':
optional: true
'@esbuild/linux-mips64el@0.25.4':
optional: true
'@esbuild/linux-ppc64@0.25.4':
optional: true
'@esbuild/linux-riscv64@0.25.4':
optional: true
'@esbuild/linux-s390x@0.25.4':
optional: true
'@esbuild/linux-x64@0.25.4':
optional: true
'@esbuild/netbsd-arm64@0.25.4':
optional: true
'@esbuild/netbsd-x64@0.25.4':
optional: true
'@esbuild/openbsd-arm64@0.25.4':
optional: true
'@esbuild/openbsd-x64@0.25.4':
optional: true
'@esbuild/sunos-x64@0.25.4':
optional: true
'@esbuild/win32-arm64@0.25.4':
optional: true
'@esbuild/win32-ia32@0.25.4':
optional: true
'@esbuild/win32-x64@0.25.4':
optional: true
'@img/sharp-darwin-arm64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.0.4
optional: true
'@img/sharp-darwin-x64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-darwin-x64': 1.0.4
optional: true
'@img/sharp-libvips-darwin-arm64@1.0.4':
optional: true
'@img/sharp-libvips-darwin-x64@1.0.4':
optional: true
'@img/sharp-libvips-linux-arm64@1.0.4':
optional: true
'@img/sharp-libvips-linux-arm@1.0.5':
optional: true
'@img/sharp-libvips-linux-s390x@1.0.4':
optional: true
'@img/sharp-libvips-linux-x64@1.0.4':
optional: true
'@img/sharp-libvips-linuxmusl-arm64@1.0.4':
optional: true
'@img/sharp-libvips-linuxmusl-x64@1.0.4':
optional: true
'@img/sharp-linux-arm64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linux-arm64': 1.0.4
optional: true
'@img/sharp-linux-arm@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linux-arm': 1.0.5
optional: true
'@img/sharp-linux-s390x@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linux-s390x': 1.0.4
optional: true
'@img/sharp-linux-x64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linux-x64': 1.0.4
optional: true
'@img/sharp-linuxmusl-arm64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-arm64': 1.0.4
optional: true
'@img/sharp-linuxmusl-x64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-x64': 1.0.4
optional: true
'@img/sharp-wasm32@0.33.5':
dependencies:
'@emnapi/runtime': 1.4.0
optional: true
'@img/sharp-win32-ia32@0.33.5':
optional: true
'@img/sharp-win32-x64@0.33.5':
optional: true
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/sourcemap-codec@1.4.15': {}
'@jridgewell/trace-mapping@0.3.9':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.4.15
'@poppinss/colors@4.1.5':
dependencies:
kleur: 4.1.5
'@poppinss/dumper@0.6.4':
dependencies:
'@poppinss/colors': 4.1.5
'@sindresorhus/is': 7.0.2
supports-color: 10.1.0
'@poppinss/exception@1.2.2': {}
'@sindresorhus/is@7.0.2': {}
'@speed-highlight/core@1.2.7': {}
'@upstash/core-analytics@0.0.10':
dependencies:
'@upstash/redis': 1.34.0
'@upstash/ratelimit@2.0.6(@upstash/redis@1.34.0)':
dependencies:
'@upstash/core-analytics': 0.0.10
'@upstash/redis': 1.34.0
'@upstash/redis@1.34.0':
dependencies:
crypto-js: 4.2.0
acorn-walk@8.3.2: {}
acorn@8.14.0: {}
blake3-wasm@2.1.5: {}
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
color-name@1.1.4: {}
color-string@1.9.1:
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.2
color@4.2.3:
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
cookie@1.0.2: {}
crypto-js@4.2.0: {}
defu@6.1.4: {}
detect-libc@2.0.3: {}
error-stack-parser-es@1.0.5: {}
esbuild@0.25.4:
optionalDependencies:
'@esbuild/aix-ppc64': 0.25.4
'@esbuild/android-arm': 0.25.4
'@esbuild/android-arm64': 0.25.4
'@esbuild/android-x64': 0.25.4
'@esbuild/darwin-arm64': 0.25.4
'@esbuild/darwin-x64': 0.25.4
'@esbuild/freebsd-arm64': 0.25.4
'@esbuild/freebsd-x64': 0.25.4
'@esbuild/linux-arm': 0.25.4
'@esbuild/linux-arm64': 0.25.4
'@esbuild/linux-ia32': 0.25.4
'@esbuild/linux-loong64': 0.25.4
'@esbuild/linux-mips64el': 0.25.4
'@esbuild/linux-ppc64': 0.25.4
'@esbuild/linux-riscv64': 0.25.4
'@esbuild/linux-s390x': 0.25.4
'@esbuild/linux-x64': 0.25.4
'@esbuild/netbsd-arm64': 0.25.4
'@esbuild/netbsd-x64': 0.25.4
'@esbuild/openbsd-arm64': 0.25.4
'@esbuild/openbsd-x64': 0.25.4
'@esbuild/sunos-x64': 0.25.4
'@esbuild/win32-arm64': 0.25.4
'@esbuild/win32-ia32': 0.25.4
'@esbuild/win32-x64': 0.25.4
exit-hook@2.2.1: {}
exsolve@1.0.7: {}
fsevents@2.3.3:
optional: true
glob-to-regexp@0.4.1: {}
hono@4.8.12: {}
is-arrayish@0.3.2: {}
kleur@4.1.5: {}
mime@3.0.0: {}
miniflare@4.20250803.0:
dependencies:
'@cspotcode/source-map-support': 0.8.1
acorn: 8.14.0
acorn-walk: 8.3.2
exit-hook: 2.2.1
glob-to-regexp: 0.4.1
sharp: 0.33.5
stoppable: 1.1.0
undici: 7.13.0
workerd: 1.20250803.0
ws: 8.18.0
youch: 4.1.0-beta.10
zod: 3.22.3
transitivePeerDependencies:
- bufferutil
- utf-8-validate
ohash@2.0.11: {}
path-to-regexp@6.3.0: {}
pathe@2.0.3: {}
semver@7.7.1: {}
sharp@0.33.5:
dependencies:
color: 4.2.3
detect-libc: 2.0.3
semver: 7.7.1
optionalDependencies:
'@img/sharp-darwin-arm64': 0.33.5
'@img/sharp-darwin-x64': 0.33.5
'@img/sharp-libvips-darwin-arm64': 1.0.4
'@img/sharp-libvips-darwin-x64': 1.0.4
'@img/sharp-libvips-linux-arm': 1.0.5
'@img/sharp-libvips-linux-arm64': 1.0.4
'@img/sharp-libvips-linux-s390x': 1.0.4
'@img/sharp-libvips-linux-x64': 1.0.4
'@img/sharp-libvips-linuxmusl-arm64': 1.0.4
'@img/sharp-libvips-linuxmusl-x64': 1.0.4
'@img/sharp-linux-arm': 0.33.5
'@img/sharp-linux-arm64': 0.33.5
'@img/sharp-linux-s390x': 0.33.5
'@img/sharp-linux-x64': 0.33.5
'@img/sharp-linuxmusl-arm64': 0.33.5
'@img/sharp-linuxmusl-x64': 0.33.5
'@img/sharp-wasm32': 0.33.5
'@img/sharp-win32-ia32': 0.33.5
'@img/sharp-win32-x64': 0.33.5
simple-swizzle@0.2.2:
dependencies:
is-arrayish: 0.3.2
stoppable@1.1.0: {}
supports-color@10.1.0: {}
tslib@2.6.2:
optional: true
ufo@1.6.1: {}
undici@7.13.0: {}
unenv@2.0.0-rc.19:
dependencies:
defu: 6.1.4
exsolve: 1.0.7
ohash: 2.0.11
pathe: 2.0.3
ufo: 1.6.1
workerd@1.20250803.0:
optionalDependencies:
'@cloudflare/workerd-darwin-64': 1.20250803.0
'@cloudflare/workerd-darwin-arm64': 1.20250803.0
'@cloudflare/workerd-linux-64': 1.20250803.0
'@cloudflare/workerd-linux-arm64': 1.20250803.0
'@cloudflare/workerd-windows-64': 1.20250803.0
wrangler@4.28.0(@cloudflare/workers-types@4.20250805.0):
dependencies:
'@cloudflare/kv-asset-handler': 0.4.0
'@cloudflare/unenv-preset': 2.6.0(unenv@2.0.0-rc.19)(workerd@1.20250803.0)
blake3-wasm: 2.1.5
esbuild: 0.25.4
miniflare: 4.20250803.0
path-to-regexp: 6.3.0
unenv: 2.0.0-rc.19
workerd: 1.20250803.0
optionalDependencies:
'@cloudflare/workers-types': 4.20250805.0
fsevents: 2.3.3
transitivePeerDependencies:
- bufferutil
- utf-8-validate
ws@8.18.0: {}
youch-core@0.3.3:
dependencies:
'@poppinss/exception': 1.2.2
error-stack-parser-es: 1.0.5
youch@4.1.0-beta.10:
dependencies:
'@poppinss/colors': 4.1.5
'@poppinss/dumper': 0.6.4
'@speed-highlight/core': 1.2.7
cookie: 1.0.2
youch-core: 0.3.3
zod@3.22.3: {}
+182
View File
@@ -0,0 +1,182 @@
import { Context, Hono } from 'hono';
import { env } from 'hono/adapter';
import { cors } from 'hono/cors';
import { BlankInput, Env } from 'hono/types';
import { Ratelimit } from '@upstash/ratelimit';
import { Redis } from '@upstash/redis/cloudflare';
// 🌿 Import utils:
import { addFullUrl } from './utils';
// 📦 Import data from main app:
import { svgsData } from '../../src/data';
import { iSVG } from '../../src/types/svg';
import { tCategory } from '../../src/types/categories';
declare module 'hono' {
interface ContextVariableMap {
ratelimit: Ratelimit;
}
}
// ✨ Return the full route for each SVG:
const fullRouteSvgsData = svgsData.map((svg) => {
return {
...svg,
route: addFullUrl(svg.route),
wordmark: svg.wordmark ? addFullUrl(svg.wordmark) : undefined
};
}) as iSVG[];
// ⚙️ Create a new Hono & Cache instance:
const app = new Hono();
const cache = new Map();
class RedisRateLimiter {
static instance: Ratelimit;
static getInstance(c: Context<Env, '/api/*', BlankInput>) {
if (!this.instance) {
const { UPSTASH_REDIS_URL, UPSTASH_REDIS_TOKEN } = env<{
UPSTASH_REDIS_URL: string;
UPSTASH_REDIS_TOKEN: string;
}>(c);
const cleanRedisUrl = UPSTASH_REDIS_URL.replace(/^['"]|['"]$/g, '').trim();
const redisClient = new Redis({
token: UPSTASH_REDIS_TOKEN,
url: cleanRedisUrl
});
const ratelimit = new Ratelimit({
redis: redisClient,
limiter: Ratelimit.slidingWindow(5, '5 s'),
ephemeralCache: cache
});
this.instance = ratelimit;
return this.instance;
} else {
return this.instance;
}
}
}
app.use(async (c, next) => {
const ratelimit = RedisRateLimiter.getInstance(c);
c.set('ratelimit', ratelimit);
await next();
});
app.use(cors());
// 🌱 GET: "/" - Returns all the SVGs data:
app.get('/', async (c) => {
const limit = c.req.query('limit');
const search = c.req.query('search');
const ratelimit = c.get('ratelimit');
const ip = c.req.raw.headers.get('CF-Connecting-IP');
const { success } = await ratelimit.limit(ip ?? 'anonymous');
if (!success) {
return c.json({ error: '🛑 Too many request' }, 429);
}
if (limit) {
const limitNumber = parseInt(limit);
if (limitNumber) {
return c.json(fullRouteSvgsData.slice(0, limitNumber));
}
}
if (search) {
const searchResults = fullRouteSvgsData.filter((svg) =>
svg.title.toLowerCase().includes(search.toLowerCase())
);
if (searchResults.length === 0) {
return c.json({ error: 'not found' }, 404);
}
return c.json(searchResults);
}
return c.json(fullRouteSvgsData);
});
// 🌱 GET: "/categories" - Return an array with categories:
app.get('/categories', async (c) => {
const ratelimit = c.get('ratelimit');
const ip = c.req.raw.headers.get('CF-Connecting-IP');
const { success } = await ratelimit.limit(ip ?? 'anonymous');
if (!success) {
return c.json({ error: '🛑 Too many request' }, 429);
}
const categoryTotals: Record<string, number> = {};
fullRouteSvgsData.forEach((svg) => {
if (typeof svg.category === 'string') {
categoryTotals[svg.category] = (categoryTotals[svg.category] || 0) + 1;
} else if (Array.isArray(svg.category)) {
svg.category.forEach((category) => {
categoryTotals[category] = (categoryTotals[category] || 0) + 1;
});
}
});
const categories = Object.entries(categoryTotals).map(([category, total]) => ({
category,
total
}));
return c.json(categories);
});
// 🌱 GET: /category/:category - Return an list of svgs by specific category:
app.get('/category/:category', async (c) => {
const category = c.req.param('category') as string;
const targetCategory = category.charAt(0).toUpperCase() + category.slice(1);
const ratelimit = c.get('ratelimit');
const ip = c.req.raw.headers.get('CF-Connecting-IP');
const { success } = await ratelimit.limit(ip ?? 'anonymous');
if (!success) {
return c.json({ error: '🛑 Too many request' }, 429);
}
const categorySvgs = fullRouteSvgsData.filter((svg) => {
if (typeof svg.category === 'string') {
return svg.category === targetCategory;
}
if (Array.isArray(svg.category)) {
return svg.category.includes(targetCategory as tCategory);
}
return false;
});
if (categorySvgs.length === 0) {
return c.json({ error: 'not found' }, 404);
}
return c.json(categorySvgs);
});
// 🌱 GET: "/svg/:filename" - Return the SVG file by filename:
app.get('/svg/:filename', async (c) => {
const fileName = c.req.param('filename') as string;
const svgLibrary = 'https://svgl.app/library/';
const ratelimit = c.get('ratelimit');
const ip = c.req.raw.headers.get('CF-Connecting-IP');
const { success } = await ratelimit.limit(ip ?? 'anonymous');
if (!success) {
return c.json({ error: '🛑 Too many request' }, 429);
}
try {
const svg = await fetch(`${svgLibrary}${fileName}`).then((res) => {
if (!res.ok) throw new Error('Network response was not ok');
return res.text();
});
return c.body(svg, 200);
} catch (err) {
return c.json({ error: 'not found' }, 404);
}
});
export default app;
+16
View File
@@ -0,0 +1,16 @@
import type { ThemeOptions } from '../../src/types/svg';
const fullUrl = 'https://svgl.app';
export const addFullUrl = (value: string | ThemeOptions): string | ThemeOptions => {
if (typeof value === 'string') {
return `${fullUrl}${value}`;
} else if (typeof value === 'object') {
return {
light: `${fullUrl}${value.light}`,
dark: `${fullUrl}${value.dark}`
};
}
return value;
};
+16
View File
@@ -0,0 +1,16 @@
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Bundler",
"strict": true,
"lib": ["ESNext"],
"types": ["@cloudflare/workers-types"],
"jsx": "react-jsx",
"jsxImportSource": "hono/jsx",
"baseUrl": ".",
"paths": {
"svgldata": ["../src/data"]
}
}
}
+23
View File
@@ -0,0 +1,23 @@
name = "svglapi"
main = "src/index.ts"
minify = true
compatibility_date = "2023-12-01"
# [vars]
# MY_VAR = "my-variable"
# [[kv_namespaces]]
# binding = "MY_KV_NAMESPACE"
# id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# [[r2_buckets]]
# binding = "MY_BUCKET"
# bucket_name = "my-bucket"
# [[d1_databases]]
# binding = "DB"
# database_name = "my-database"
# database_id = ""
# [ai]
# binding = "AI"
+14
View File
@@ -0,0 +1,14 @@
{
"$schema": "https://shadcn-svelte.com/schema.json",
"style": "new-york",
"tailwind": {
"config": "tailwind.config.js",
"css": "src\\app.css",
"baseColor": "neutral"
},
"aliases": {
"components": "@/ui",
"utils": "@/utils"
},
"typescript": true
}
+33
View File
@@ -0,0 +1,33 @@
import js from '@eslint/js';
import ts from 'typescript-eslint';
import svelte from 'eslint-plugin-svelte';
import prettier from 'eslint-config-prettier';
import globals from 'globals';
/** @type {import('eslint').Linter.Config[]} */
export default [
js.configs.recommended,
...ts.configs.recommended,
...svelte.configs['flat/recommended'],
prettier,
...svelte.configs['flat/prettier'],
{
languageOptions: {
globals: {
...globals.browser,
...globals.node
}
}
},
{
files: ['**/*.svelte'],
languageOptions: {
parserOptions: {
parser: ts.parser
}
}
},
{
ignores: ['build/', '.svelte-kit/', 'dist/']
}
];
+51
View File
@@ -0,0 +1,51 @@
import { escapeSvelte } from 'mdsvex';
import { createHighlighter, makeSingletonHighlighter } from 'shiki';
// Markdown Plugins
import remarkGfm from 'remark-gfm';
import rehypeSlug from 'rehype-slug';
import rehypeAutolinkHeadings from 'rehype-autolink-headings';
// Highlighter
const getHighlighter = makeSingletonHighlighter(createHighlighter);
/** @type {import('mdsvex').MdsvexOptions} */
const mdsvexOptions = {
remarkPlugins: [[remarkGfm]],
rehypePlugins: [
[rehypeSlug],
[
rehypeAutolinkHeadings,
{
behavior: 'wrap',
properties: {
className: [
`before:content-['#'] before:absolute before:-ml-[1em] before:text-neutral-100/0 hover:before:text-neutral-200/50 pl-[1em] -ml-[1em]`
]
}
}
]
],
extensions: ['.md'],
highlight: {
highlighter: async (code, lang = 'text') => {
const highlighter = await getHighlighter({
themes: ['github-light', 'github-dark'],
langs: ['javascript', 'typescript', 'bash', 'json', 'html']
});
await highlighter.loadLanguage('javascript', 'typescript', 'bash', 'html');
const html = escapeSvelte(
highlighter.codeToHtml(code, {
lang,
themes: {
light: 'github-light',
dark: 'github-dark'
}
})
);
return `{@html \`${html}\` }`;
}
}
};
export { mdsvexOptions };
+60 -40
View File
@@ -1,7 +1,7 @@
{
"name": "svgl",
"name": "@pheralb/svgl",
"author": "@pheralb_",
"version": "4.1.0",
"version": "4.6.1",
"description": "A beautiful library with SVG logos.",
"private": true,
"license": "MIT",
@@ -12,16 +12,25 @@
"images",
"library"
],
"config": {
"siteURL": "https://svgl.app?figma=1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/pheralb/svgl.git"
},
"scripts": {
"dev": "vite dev",
"host": "vite dev --host",
"build": "pnpm run prebuild && vite build",
"prebuild": "cd ./check-size && pnpm install && pnpm run start",
"prebuild": "cd ./utils/check-size && pnpm install && pnpm run start",
"vite:build": "vite build",
"preview": "vite preview",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"check:size": "cd ./check-size && npm run start",
"fix:viewbox": "cd ./fix-viewbox && npm run start",
"check:size": "cd ./utils/check-size && npm run start",
"check:links": " lychee --base . ./src/data/svgs.ts --cache --max-cache-age 3d . --include 'https://svgl.app'",
"fix:viewbox": "cd ./utils/fix-viewbox && npm run start",
"test": "vitest run",
"lint": "prettier --plugin-search-dir . --check . && eslint .",
"format": "prettier --plugin-search-dir . --write .",
@@ -30,46 +39,57 @@
"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",
"@figma/plugin-typings": "1.115.0",
"@svelte-dev/pretty-code": "1.0.0",
"@svgr/core": "8.1.0",
"@svgr/plugin-jsx": "8.1.0",
"@upstash/ratelimit": "2.0.6",
"@upstash/redis": "1.35.3",
"clsx": "2.1.1",
"downloadjs": "1.4.7",
"fuse.js": "7.1.0",
"jszip": "3.10.1",
"lucide-svelte": "0.314.0",
"shiki": "0.14.7",
"svelte-sonner": "0.3.6",
"tailwind-merge": "2.2.1"
"lucide-svelte": "0.525.0",
"mode-watcher": "0.5.1",
"rehype-autolink-headings": "7.1.0",
"rehype-slug": "6.0.0",
"remark-gfm": "4.0.1",
"shiki": "3.7.0",
"svelte-sonner": "0.3.28",
"svgo": "4.0.0",
"tailwind-merge": "2.6.0",
"tailwind-variants": "0.3.1"
},
"devDependencies": {
"@sveltejs/adapter-auto": "3.1.1",
"@sveltejs/kit": "2.4.3",
"@sveltejs/vite-plugin-svelte": "3.0.1",
"@tailwindcss/typography": "0.5.10",
"@sveltejs/adapter-auto": "3.2.5",
"@sveltejs/adapter-node": "5.2.5",
"@sveltejs/kit": "2.5.28",
"@sveltejs/vite-plugin-svelte": "3.1.2",
"@tailwindcss/typography": "0.5.16",
"@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",
"@types/eslint": "9.6.1",
"@types/node": "22.5.5",
"autoprefixer": "10.4.21",
"bits-ui": "0.22.0",
"concurrently": "9.0.1",
"esbuild": "0.24.0",
"eslint": "9.11.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"
"eslint-plugin-svelte": "2.44.0",
"globals": "15.9.0",
"mdsvex": "0.12.5",
"postcss": "8.5.3",
"prettier": "3.3.3",
"prettier-plugin-svelte": "3.2.6",
"prettier-plugin-tailwindcss": "0.6.6",
"svelte": "4.2.20",
"svelte-check": "4.0.9",
"sveltekit-search-params": "3.0.0",
"tailwindcss": "3.4.17",
"tslib": "2.7.0",
"typescript": "5.6.2",
"typescript-eslint": "8.6.0",
"vite": "5.4.7",
"vitest": "2.1.1"
}
}
+4513 -2237
View File
@@ -1,2272 +1,2093 @@
lockfileVersion: '6.0'
lockfileVersion: '9.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
importers:
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
.:
dependencies:
'@figma/plugin-typings':
specifier: 1.115.0
version: 1.115.0
'@svelte-dev/pretty-code':
specifier: 1.0.0
version: 1.0.0(shikiji@0.10.2)
'@svgr/core':
specifier: 8.1.0
version: 8.1.0(typescript@5.6.2)
'@svgr/plugin-jsx':
specifier: 8.1.0
version: 8.1.0(@svgr/core@8.1.0(typescript@5.6.2))
'@upstash/ratelimit':
specifier: 2.0.6
version: 2.0.6(@upstash/redis@1.35.3)
'@upstash/redis':
specifier: 1.35.3
version: 1.35.3
clsx:
specifier: 2.1.1
version: 2.1.1
downloadjs:
specifier: 1.4.7
version: 1.4.7
fuse.js:
specifier: 7.1.0
version: 7.1.0
jszip:
specifier: 3.10.1
version: 3.10.1
lucide-svelte:
specifier: 0.525.0
version: 0.525.0(svelte@4.2.20)
mode-watcher:
specifier: 0.5.1
version: 0.5.1(svelte@4.2.20)
rehype-autolink-headings:
specifier: 7.1.0
version: 7.1.0
rehype-slug:
specifier: 6.0.0
version: 6.0.0
remark-gfm:
specifier: 4.0.1
version: 4.0.1
shiki:
specifier: 3.7.0
version: 3.7.0
svelte-sonner:
specifier: 0.3.28
version: 0.3.28(svelte@4.2.20)
svgo:
specifier: 4.0.0
version: 4.0.0
tailwind-merge:
specifier: 2.6.0
version: 2.6.0
tailwind-variants:
specifier: 0.3.1
version: 0.3.1(tailwindcss@3.4.17)
devDependencies:
'@sveltejs/adapter-auto':
specifier: 3.2.5
version: 3.2.5(@sveltejs/kit@2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))
'@sveltejs/adapter-node':
specifier: 5.2.5
version: 5.2.5(@sveltejs/kit@2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))
'@sveltejs/kit':
specifier: 2.5.28
version: 2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
'@sveltejs/vite-plugin-svelte':
specifier: 3.1.2
version: 3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
'@tailwindcss/typography':
specifier: 0.5.16
version: 0.5.16(tailwindcss@3.4.17)
'@types/downloadjs':
specifier: 1.4.6
version: 1.4.6
'@types/eslint':
specifier: 9.6.1
version: 9.6.1
'@types/node':
specifier: 22.5.5
version: 22.5.5
autoprefixer:
specifier: 10.4.21
version: 10.4.21(postcss@8.5.3)
bits-ui:
specifier: 0.22.0
version: 0.22.0(svelte@4.2.20)
concurrently:
specifier: 9.0.1
version: 9.0.1
esbuild:
specifier: 0.24.0
version: 0.24.0
eslint:
specifier: 9.11.0
version: 9.11.0(jiti@1.21.7)
eslint-config-prettier:
specifier: 9.1.0
version: 9.1.0(eslint@9.11.0(jiti@1.21.7))
eslint-plugin-svelte:
specifier: 2.44.0
version: 2.44.0(eslint@9.11.0(jiti@1.21.7))(svelte@4.2.20)
globals:
specifier: 15.9.0
version: 15.9.0
mdsvex:
specifier: 0.12.5
version: 0.12.5(svelte@4.2.20)
postcss:
specifier: 8.5.3
version: 8.5.3
prettier:
specifier: 3.3.3
version: 3.3.3
prettier-plugin-svelte:
specifier: 3.2.6
version: 3.2.6(prettier@3.3.3)(svelte@4.2.20)
prettier-plugin-tailwindcss:
specifier: 0.6.6
version: 0.6.6(prettier-plugin-svelte@3.2.6(prettier@3.3.3)(svelte@4.2.20))(prettier@3.3.3)
svelte:
specifier: 4.2.20
version: 4.2.20
svelte-check:
specifier: 4.0.9
version: 4.0.9(picomatch@4.0.2)(svelte@4.2.20)(typescript@5.6.2)
sveltekit-search-params:
specifier: 3.0.0
version: 3.0.0(@sveltejs/kit@2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
tailwindcss:
specifier: 3.4.17
version: 3.4.17
tslib:
specifier: 2.7.0
version: 2.7.0
typescript:
specifier: 5.6.2
version: 5.6.2
typescript-eslint:
specifier: 8.6.0
version: 8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)
vite:
specifier: 5.4.7
version: 5.4.7(@types/node@22.5.5)
vitest:
specifier: 2.1.1
version: 2.1.1(@types/node@22.5.5)
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:
'@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==}
'@ampproject/remapping@2.3.0':
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
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==}
'@babel/code-frame@7.26.2':
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.0
dev: true
/@babel/runtime@7.23.8:
resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==}
'@babel/compat-data@7.26.8':
resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.0
dev: false
/@esbuild/aix-ppc64@0.19.12:
resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
'@babel/core@7.26.9':
resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==}
engines: {node: '>=6.9.0'}
'@babel/generator@7.26.9':
resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==}
engines: {node: '>=6.9.0'}
'@babel/helper-compilation-targets@7.26.5':
resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==}
engines: {node: '>=6.9.0'}
'@babel/helper-module-imports@7.25.9':
resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
engines: {node: '>=6.9.0'}
'@babel/helper-module-transforms@7.26.0':
resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
'@babel/helper-string-parser@7.25.9':
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.25.9':
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.25.9':
resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
engines: {node: '>=6.9.0'}
'@babel/helpers@7.26.9':
resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==}
engines: {node: '>=6.9.0'}
'@babel/parser@7.26.9':
resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==}
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/template@7.26.9':
resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==}
engines: {node: '>=6.9.0'}
'@babel/traverse@7.26.9':
resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==}
engines: {node: '>=6.9.0'}
'@babel/types@7.26.9':
resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==}
engines: {node: '>=6.9.0'}
'@esbuild/aix-ppc64@0.21.5':
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
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==}
'@esbuild/aix-ppc64@0.24.0':
resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
'@esbuild/android-arm64@0.21.5':
resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
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==}
'@esbuild/android-arm64@0.24.0':
resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
'@esbuild/android-arm@0.21.5':
resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-x64@0.19.12:
resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
'@esbuild/android-arm@0.24.0':
resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
'@esbuild/android-x64@0.21.5':
resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/darwin-arm64@0.19.12:
resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
'@esbuild/android-x64@0.24.0':
resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
'@esbuild/darwin-arm64@0.21.5':
resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
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==}
'@esbuild/darwin-arm64@0.24.0':
resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
'@esbuild/darwin-x64@0.21.5':
resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
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==}
'@esbuild/darwin-x64@0.24.0':
resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
'@esbuild/freebsd-arm64@0.21.5':
resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/freebsd-x64@0.19.12:
resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
'@esbuild/freebsd-arm64@0.24.0':
resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
'@esbuild/freebsd-x64@0.21.5':
resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
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==}
'@esbuild/freebsd-x64@0.24.0':
resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
'@esbuild/linux-arm64@0.21.5':
resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
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==}
'@esbuild/linux-arm64@0.24.0':
resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
'@esbuild/linux-arm@0.21.5':
resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-ia32@0.19.12:
resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
'@esbuild/linux-arm@0.24.0':
resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
'@esbuild/linux-ia32@0.21.5':
resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-loong64@0.19.12:
resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
'@esbuild/linux-ia32@0.24.0':
resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
'@esbuild/linux-loong64@0.21.5':
resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
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==}
'@esbuild/linux-loong64@0.24.0':
resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
'@esbuild/linux-mips64el@0.21.5':
resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
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==}
'@esbuild/linux-mips64el@0.24.0':
resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
'@esbuild/linux-ppc64@0.21.5':
resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-riscv64@0.19.12:
resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
'@esbuild/linux-ppc64@0.24.0':
resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
'@esbuild/linux-riscv64@0.21.5':
resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-s390x@0.19.12:
resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
'@esbuild/linux-riscv64@0.24.0':
resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
'@esbuild/linux-s390x@0.21.5':
resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-x64@0.19.12:
resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
'@esbuild/linux-s390x@0.24.0':
resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
'@esbuild/linux-x64@0.21.5':
resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
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==}
'@esbuild/linux-x64@0.24.0':
resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
'@esbuild/netbsd-x64@0.21.5':
resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
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==}
'@esbuild/netbsd-x64@0.24.0':
resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
'@esbuild/openbsd-arm64@0.24.0':
resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
'@esbuild/openbsd-x64@0.21.5':
resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
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==}
'@esbuild/openbsd-x64@0.24.0':
resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
'@esbuild/sunos-x64@0.21.5':
resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-arm64@0.19.12:
resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
'@esbuild/sunos-x64@0.24.0':
resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
'@esbuild/win32-arm64@0.21.5':
resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
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==}
'@esbuild/win32-arm64@0.24.0':
resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
'@esbuild/win32-ia32@0.21.5':
resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-x64@0.19.12:
resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
'@esbuild/win32-ia32@0.24.0':
resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
'@esbuild/win32-x64@0.21.5':
resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
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==}
'@esbuild/win32-x64@0.24.0':
resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
'@eslint-community/eslint-utils@4.4.1':
resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
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==}
'@eslint-community/regexpp@4.12.1':
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
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/config-array@0.18.0':
resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
/@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
'@eslint/core@0.12.0':
resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
/@figma/plugin-typings@1.84.0:
resolution: {integrity: sha512-YisOp7S2y10BWMLBJY2DazCjRpg/0m03dDlS3nKhpw2alFQSXNuSLLd+y4pbnJpOXJMnInZdbikr/7JxudjsYg==}
dev: false
'@eslint/eslintrc@3.3.0':
resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
/@floating-ui/core@1.5.2:
resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==}
dependencies:
'@floating-ui/utils': 0.1.6
dev: false
'@eslint/js@9.11.0':
resolution: {integrity: sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
/@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
'@eslint/object-schema@2.1.6':
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
/@floating-ui/utils@0.1.6:
resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==}
dev: false
'@eslint/plugin-kit@0.2.7':
resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
/@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
'@figma/plugin-typings@1.115.0':
resolution: {integrity: sha512-qAnJuOkZDXKzMacnkugoi9rIIQ9/P3CP0zqsSklXuXhREWsqOTua35Fpkxmp25DHjPqs6tC+eVuVWvKWHHq4pA==}
/@humanwhocodes/module-importer@1.0.1:
'@floating-ui/core@1.6.9':
resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==}
'@floating-ui/dom@1.6.13':
resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==}
'@floating-ui/utils@0.2.9':
resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
'@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
'@humanwhocodes/retry@0.3.1':
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
engines: {node: '>=18.18'}
/@internationalized/date@3.5.1:
resolution: {integrity: sha512-LUQIfwU9e+Fmutc/DpRTGXSdgYZLBegi4wygCWDSVmUdLTaMHsQyASDiJtREwanwKuQLq0hY76fCJ9J/9I2xOQ==}
dependencies:
'@swc/helpers': 0.5.3
dev: false
'@internationalized/date@3.7.0':
resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==}
/@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
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
/@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==}
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
/@jridgewell/set-array@1.1.2:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
/@jridgewell/sourcemap-codec@1.4.15:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
'@jridgewell/set-array@1.2.1':
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
engines: {node: '>=6.0.0'}
/@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
'@jridgewell/sourcemap-codec@1.5.0':
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
/@melt-ui/svelte@0.68.0(svelte@4.2.9):
resolution: {integrity: sha512-/QvA98hnYEodZtHJ71+ocum/WWp30hVNt3F8uiZKnNYwZDaiQYjlyR9AaGKYcZLCe6R68op1mfCzc0kTzJilyA==}
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
'@melt-ui/svelte@0.76.2':
resolution: {integrity: sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==}
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:
'@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:
'@nodelib/fs.stat@2.0.5':
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: '>= 8'}
dev: true
/@nodelib/fs.walk@1.2.8:
'@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
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
/@rollup/rollup-android-arm-eabi@4.8.0:
resolution: {integrity: sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==}
'@polka/url@1.0.0-next.28':
resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
'@rollup/plugin-commonjs@28.0.2':
resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==}
engines: {node: '>=16.0.0 || 14 >= 14.17'}
peerDependencies:
rollup: ^2.68.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
'@rollup/plugin-json@6.1.0':
resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
'@rollup/plugin-node-resolve@15.3.1':
resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.78.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
'@rollup/pluginutils@5.1.4':
resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
'@rollup/rollup-android-arm-eabi@4.34.8':
resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-android-arm64@4.8.0:
resolution: {integrity: sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==}
'@rollup/rollup-android-arm64@4.34.8':
resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-darwin-arm64@4.8.0:
resolution: {integrity: sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==}
'@rollup/rollup-darwin-arm64@4.34.8':
resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==}
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==}
'@rollup/rollup-darwin-x64@4.34.8':
resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.8.0:
resolution: {integrity: sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==}
'@rollup/rollup-freebsd-arm64@4.34.8':
resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==}
cpu: [arm64]
os: [freebsd]
'@rollup/rollup-freebsd-x64@4.34.8':
resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==}
cpu: [x64]
os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.34.8':
resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm64-gnu@4.8.0:
resolution: {integrity: sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==}
'@rollup/rollup-linux-arm-musleabihf@4.34.8':
resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.34.8':
resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm64-musl@4.8.0:
resolution: {integrity: sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==}
'@rollup/rollup-linux-arm64-musl@4.34.8':
resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-riscv64-gnu@4.8.0:
resolution: {integrity: sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==}
'@rollup/rollup-linux-loongarch64-gnu@4.34.8':
resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==}
cpu: [loong64]
os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.34.8':
resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-x64-gnu@4.8.0:
resolution: {integrity: sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==}
'@rollup/rollup-linux-s390x-gnu@4.34.8':
resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==}
cpu: [s390x]
os: [linux]
'@rollup/rollup-linux-x64-gnu@4.34.8':
resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==}
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==}
'@rollup/rollup-linux-x64-musl@4.34.8':
resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==}
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==}
'@rollup/rollup-win32-arm64-msvc@4.34.8':
resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-ia32-msvc@4.8.0:
resolution: {integrity: sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==}
'@rollup/rollup-win32-ia32-msvc@4.34.8':
resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-x64-msvc@4.8.0:
resolution: {integrity: sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==}
'@rollup/rollup-win32-x64-msvc@4.34.8':
resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==}
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
'@shikijs/core@3.7.0':
resolution: {integrity: sha512-yilc0S9HvTPyahHpcum8eonYrQtmGTU0lbtwxhA6jHv4Bm1cAdlPFRCJX4AHebkCm75aKTjjRAW+DezqD1b/cg==}
/@sveltejs/adapter-auto@3.1.1(@sveltejs/kit@2.4.3):
resolution: {integrity: sha512-6LeZft2Fo/4HfmLBi5CucMYmgRxgcETweQl/yQoZo/895K3S9YWYN4Sfm/IhwlIpbJp3QNvhKmwCHbsqQNYQpw==}
'@shikijs/engine-javascript@3.7.0':
resolution: {integrity: sha512-0t17s03Cbv+ZcUvv+y33GtX75WBLQELgNdVghnsdhTgU3hVcWcMsoP6Lb0nDTl95ZJfbP1mVMO0p3byVh3uuzA==}
'@shikijs/engine-oniguruma@3.7.0':
resolution: {integrity: sha512-5BxcD6LjVWsGu4xyaBC5bu8LdNgPCVBnAkWTtOCs/CZxcB22L8rcoWfv7Hh/3WooVjBZmFtyxhgvkQFedPGnFw==}
'@shikijs/langs@3.7.0':
resolution: {integrity: sha512-1zYtdfXLr9xDKLTGy5kb7O0zDQsxXiIsw1iIBcNOO8Yi5/Y1qDbJ+0VsFoqTlzdmneO8Ij35g7QKF8kcLyznCQ==}
'@shikijs/themes@3.7.0':
resolution: {integrity: sha512-VJx8497iZPy5zLiiCTSIaOChIcKQwR0FebwE9S3rcN0+J/GTWwQ1v/bqhTbpbY3zybPKeO8wdammqkpXc4NVjQ==}
'@shikijs/types@3.7.0':
resolution: {integrity: sha512-MGaLeaRlSWpnP0XSAum3kP3a8vtcTsITqoEPYdt3lQG3YCdQH4DnEhodkYcNMcU0uW0RffhoD1O3e0vG5eSBBg==}
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
'@svelte-dev/pretty-code@1.0.0':
resolution: {integrity: sha512-4dFacn9fv7SNK0kp6VjZeSQd9e7ISihaC3l/I7fB6sAAObZt5hRkbFeU2pM2kUlpjzRPGaYuXlWfYj7dLFvPHA==}
'@sveltejs/adapter-auto@3.2.5':
resolution: {integrity: sha512-27LR+uKccZ62lgq4N/hvyU2G+hTP9fxWEAfnZcl70HnyfAjMSsGk1z/SjAPXNCD1mVJIE7IFu3TQ8cQ/UH3c0A==}
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==}
'@sveltejs/adapter-node@5.2.5':
resolution: {integrity: sha512-FVeysFqeIlKFpDF1Oj38gby34f6uA9FuXnV330Z0RHmSyOR9JzJs70/nFKy1Ue3fWtf7S0RemOrP66Vr9Jcmew==}
peerDependencies:
'@sveltejs/kit': ^2.4.0
'@sveltejs/kit@2.5.28':
resolution: {integrity: sha512-/O7pvFGBsQPcFa9UrW8eUC5uHTOXLsUp3SN0dY6YmRAL9nfPSrJsSJk//j5vMpinSshzUjteAFcfQTU+04Ka1w==}
engines: {node: '>=18.13'}
hasBin: true
requiresBuild: true
peerDependencies:
'@sveltejs/vite-plugin-svelte': ^3.0.0
'@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1
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==}
'@sveltejs/vite-plugin-svelte-inspector@2.1.0':
resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==}
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==}
'@sveltejs/vite-plugin-svelte@3.1.2':
resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==}
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==}
'@svgr/babel-plugin-add-jsx-attribute@8.0.0':
resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
engines: {node: '>=14'}
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
'@babel/core': ^7.0.0-0
/@types/cookie@0.6.0:
'@svgr/babel-plugin-remove-jsx-attribute@8.0.0':
resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0':
resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0':
resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@svgr/babel-plugin-svg-dynamic-title@8.0.0':
resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@svgr/babel-plugin-svg-em-dimensions@8.0.0':
resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@svgr/babel-plugin-transform-react-native-svg@8.1.0':
resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@svgr/babel-plugin-transform-svg-component@8.0.0':
resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
engines: {node: '>=12'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@svgr/babel-preset@8.1.0':
resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@svgr/core@8.1.0':
resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
engines: {node: '>=14'}
'@svgr/hast-util-to-babel-ast@8.0.0':
resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
engines: {node: '>=14'}
'@svgr/plugin-jsx@8.1.0':
resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
engines: {node: '>=14'}
peerDependencies:
'@svgr/core': '*'
'@swc/helpers@0.5.15':
resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
'@tailwindcss/typography@0.5.16':
resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==}
peerDependencies:
tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
'@types/cookie@0.6.0':
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
dev: true
/@types/downloadjs@1.4.6:
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
'@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/eslint@9.6.1':
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
/@types/json-schema@7.0.15:
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
'@types/hast@3.0.4':
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
'@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/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
/@types/semver@7.5.6:
resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
dev: true
'@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
/@types/unist@2.0.10:
resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
dev: true
'@types/node@22.5.5':
resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==}
/@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}
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
'@typescript-eslint/eslint-plugin@8.6.0':
resolution: {integrity: sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
eslint: ^7.0.0 || ^8.0.0
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
eslint: ^8.57.0 || ^9.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}
'@typescript-eslint/parser@8.6.0':
resolution: {integrity: sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
eslint: ^8.57.0 || ^9.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/scope-manager@8.6.0':
resolution: {integrity: sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
/@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}
'@typescript-eslint/type-utils@8.6.0':
resolution: {integrity: sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.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}
'@typescript-eslint/types@8.6.0':
resolution: {integrity: sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.6.0':
resolution: {integrity: sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.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: '*'
peerDependenciesMeta:
typescript:
optional: 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
'@typescript-eslint/utils@8.6.0':
resolution: {integrity: sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
'@typescript-eslint/visitor-keys@8.6.0':
resolution: {integrity: sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
/@upstash/core-analytics@0.0.6:
resolution: {integrity: sha512-cpPSR0XJAJs4Ddz9nq3tINlPS5aLfWVCqhhtHnXt4p7qr5+/Znlt1Es736poB/9rnl1hAHrOsOvVj46NEXcVqA==}
'@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
'@upstash/core-analytics@0.0.10':
resolution: {integrity: sha512-7qJHGxpQgQr9/vmeS1PktEwvNAF7TI4iJDi8Pu2CFZ9YUGHZH4fOP5TfYlZ4aVxfopnELiE4BS4FBjyK7V1/xQ==}
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/ratelimit@2.0.6':
resolution: {integrity: sha512-Uak5qklMfzFN5RXltxY6IXRENu+Hgmo9iEgMPOlUs2etSQas2N+hJfbHw37OUy4vldLRXeD0OzL+YRvO2l5acg==}
peerDependencies:
'@upstash/redis': ^1.34.3
/@upstash/redis@1.28.2:
resolution: {integrity: sha512-e4HmmCji6kE6UnriU92sAVGLQcRYAB4fXSPXls08cjW7zdE/wFaDfhAGi1/T4/wUN50bAy/lpHwW4bMkI2EAcw==}
dependencies:
crypto-js: 4.2.0
dev: false
'@upstash/redis@1.35.3':
resolution: {integrity: sha512-hSjv66NOuahW3MisRGlSgoszU2uONAY2l5Qo3Sae8OT3/Tng9K+2/cBRuyPBX8egwEGcNNCF9+r0V6grNnhL+w==}
/@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/expect@2.1.1':
resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==}
/@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/mocker@2.1.1':
resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==}
peerDependencies:
'@vitest/spy': 2.1.1
msw: ^2.3.5
vite: ^5.0.0
peerDependenciesMeta:
msw:
optional: true
vite:
optional: 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/pretty-format@2.1.1':
resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==}
/@vitest/spy@1.2.1:
resolution: {integrity: sha512-vG3a/b7INKH7L49Lbp0IWrG6sw9j4waWAucwnksPB1r1FTJgV7nkBByd9ufzu6VWya/QTvQW4V9FShZbZIB2UQ==}
dependencies:
tinyspy: 2.2.0
dev: true
'@vitest/pretty-format@2.1.9':
resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==}
/@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
'@vitest/runner@2.1.1':
resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==}
/acorn-jsx@5.3.2(acorn@8.11.2):
'@vitest/snapshot@2.1.1':
resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==}
'@vitest/spy@2.1.1':
resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==}
'@vitest/utils@2.1.1':
resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==}
acorn-jsx@5.3.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==}
acorn@8.14.0:
resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
engines: {node: '>=0.4.0'}
hasBin: true
/ajv@6.12.6:
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:
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-regex@6.1.0:
resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
engines: {node: '>=12'}
/ansi-styles@4.3.0:
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
ansi-styles@6.2.1:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
/any-promise@1.3.0:
any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
dev: true
/anymatch@3.1.3:
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:
arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
dev: true
/argparse@2.0.1:
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
aria-query@5.3.2:
resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
engines: {node: '>= 0.4'}
/array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
dev: true
assertion-error@2.0.1:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
/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==}
autoprefixer@10.4.21:
resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==}
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
axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
/balanced-match@1.0.2:
bail@2.0.2:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
/binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
dev: true
/bits-ui@0.15.1(svelte@4.2.9):
resolution: {integrity: sha512-1Np8bT6W6SC2tKESfm0CySW+7+xU5S0GuUZqIxC41atZE3WIRiRlzXEYHxW88w6UaLFzZ51ns4E7pchkdV5XCQ==}
bits-ui@0.22.0:
resolution: {integrity: sha512-r7Fw1HNgA4YxZBRcozl7oP0bheQ8EHh+kfMBZJgyFISix8t4p/nqDcHLmBgIiJ3T5XjYnJRorYDjIWaCfhb5fw==}
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
svelte: ^4.0.0 || ^5.0.0
/brace-expansion@1.1.11:
boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
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:
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==}
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
dependencies:
fill-range: 7.0.1
dev: true
/browserslist@4.22.2:
resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==}
browserslist@4.24.4:
resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
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:
cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
dev: true
/callsites@3.1.0:
callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
dev: true
/camelcase-css@2.0.1:
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
camelcase@6.3.0:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
/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
caniuse-lite@1.0.30001700:
resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==}
/chalk@4.1.2:
caniuse-lite@1.0.30001715:
resolution: {integrity: sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==}
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
chai@5.2.0:
resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}
engines: {node: '>=12'}
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
character-entities-html4@2.1.0:
resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
/chokidar@3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
character-entities-legacy@3.0.0:
resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
character-entities@2.0.2:
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
check-error@2.1.1:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
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:
chokidar@4.0.3:
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
engines: {node: '>= 14.16.0'}
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==}
clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
dev: false
/code-red@1.0.4:
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:
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:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
/commander@4.1.1:
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
commander@11.1.0:
resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
engines: {node: '>=16'}
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
commondir@1.0.1:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
/concurrently@8.2.2:
resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==}
engines: {node: ^14.13.0 || >=16.0.0}
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
concurrently@9.0.1:
resolution: {integrity: sha512-wYKvCd/f54sTXJMSfV6Ln/B8UrfLBKOYa+lzc6CHay3Qek+LorVSBdMVfyewFhRbH0Rbabsk4D+3PL/VjQ5gzg==}
engines: {node: '>=18'}
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:
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
cookie@0.6.0:
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
engines: {node: '>= 0.6'}
dev: true
/core-util-is@1.0.3:
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
dev: false
/cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
cosmiconfig@8.3.6:
resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
engines: {node: '>=14'}
peerDependencies:
typescript: '>=4.9.5'
peerDependenciesMeta:
typescript:
optional: true
cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
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-select@5.2.2:
resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==}
/css-tree@2.3.1:
css-tree@2.2.1:
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
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:
css-tree@3.1.0:
resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
css-what@6.2.2:
resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==}
engines: {node: '>= 6'}
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
csso@5.0.5:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
debug@4.4.0:
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
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==}
decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
deep-eql@5.0.2:
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
engines: {node: '>=6'}
dependencies:
type-detect: 4.0.8
dev: true
/deep-is@0.1.4:
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
/deepmerge@4.3.1:
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:
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@5.1.1:
resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==}
/devalue@4.3.2:
resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==}
dev: true
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
/didyoumean@1.2.2:
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:
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
dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
/downloadjs@1.4.7:
domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
domhandler@5.0.3:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
engines: {node: '>= 4'}
domutils@3.2.2:
resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
dot-case@3.0.4:
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
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
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
/emoji-regex@8.0.0:
electron-to-chromium@1.5.104:
resolution: {integrity: sha512-Us9M2L4cO/zMBqVkJtnj353nQhMju9slHm62NprKTmdF3HH8wYOtNvDFq/JB2+ZRoGLzdvYDiATlMHs98XBM1g==}
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
emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
/esbuild@0.19.12:
resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
esbuild@0.21.5:
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
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==}
esbuild@0.24.0:
resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
engines: {node: '>=18'}
hasBin: true
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
dev: true
/escape-string-regexp@4.0.0:
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==}
escape-string-regexp@5.0.0:
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines: {node: '>=12'}
eslint-compat-utils@0.5.1:
resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==}
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):
eslint-config-prettier@9.1.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==}
eslint-plugin-svelte@2.44.0:
resolution: {integrity: sha512-wav4MOs02vBb1WjvTCYItwJCxMkuk2Z4p+K/eyjL0N/z7ahXLP+0LtQQjiKc2ezuif7GnZLbD1F3o1VHzSvdVg==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0-0
svelte: ^3.37.0 || ^4.0.0
eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.191
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:
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:
eslint-scope@8.2.0:
resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
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}
eslint-visitor-keys@4.2.0:
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint@9.11.0:
resolution: {integrity: sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.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
peerDependencies:
jiti: '*'
peerDependenciesMeta:
jiti:
optional: true
/esm-env@1.0.0:
resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==}
dev: true
esm-env@1.2.2:
resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
/espree@9.6.1:
espree@10.3.0:
resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
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==}
esquery@1.6.0:
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
engines: {node: '>=0.10'}
dependencies:
estraverse: 5.3.0
dev: true
/esrecurse@4.3.0:
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:
estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
dev: true
/estree-walker@3.0.3:
estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
estree-walker@3.0.3:
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
dependencies:
'@types/estree': 1.0.5
/esutils@2.0.3:
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
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
/fast-deep-equal@3.1.3:
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==}
fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
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:
fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
dev: true
/fast-levenshtein@2.0.6:
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
fastq@1.19.0:
resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==}
/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
fdir@6.4.3:
resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
picomatch:
optional: true
/fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
file-entry-cache@8.0.0:
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines: {node: '>=16.0.0'}
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
dev: true
/find-up@5.0.0:
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
flat-cache@4.0.1:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
/flatted@3.2.9:
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
dev: true
flatted@3.3.3:
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
/focus-trap@7.5.4:
resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==}
dependencies:
tabbable: 6.2.0
dev: false
focus-trap@7.6.4:
resolution: {integrity: sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==}
/fraction.js@4.3.7:
foreground-child@3.3.1:
resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
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:
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:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
dev: true
/get-caller-file@2.0.5:
fuse.js@7.1.0:
resolution: {integrity: sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==}
engines: {node: '>=10'}
gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
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
github-slugger@2.0.0:
resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
/get-stream@8.0.1:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
dev: true
/glob-parent@5.1.2:
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:
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@10.4.5:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: 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@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
/globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
dev: true
globals@14.0.0:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'}
/globalyzer@0.1.0:
globals@15.9.0:
resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==}
engines: {node: '>=18'}
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:
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:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
dev: true
/has-flag@4.0.0:
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==}
hasown@2.0.2:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
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
hast-util-from-html@2.0.3:
resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
/ignore@5.3.0:
resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
hast-util-from-parse5@8.0.3:
resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
hast-util-heading-rank@3.0.0:
resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==}
hast-util-is-element@3.0.0:
resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
hast-util-parse-selector@4.0.0:
resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
hast-util-to-html@9.0.5:
resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
hast-util-to-string@3.0.1:
resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==}
hast-util-whitespace@3.0.0:
resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
hastscript@9.0.1:
resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
ignore@5.3.2:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
dev: true
/immediate@3.0.6:
immediate@3.0.6:
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
dev: false
/import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
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
import-meta-resolve@4.1.0:
resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
/imurmurhash@0.1.4:
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:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
/is-binary-path@2.1.0:
is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
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-core-module@2.16.1:
resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
engines: {node: '>= 0.4'}
/is-extglob@2.1.1:
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
dev: true
/is-fullwidth-code-point@3.0.0:
is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
dev: true
/is-glob@4.0.3:
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:
is-module@1.0.0:
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
dev: true
/is-path-inside@3.0.3:
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-plain-obj@4.1.0:
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
engines: {node: '>=12'}
/is-stream@3.0.0:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true
is-reference@1.2.1:
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
/isarray@1.0.0:
is-reference@3.0.3:
resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
dev: false
/isexe@2.0.0:
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==}
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jiti@1.21.7:
resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
hasBin: true
dev: true
/js-yaml@4.1.0:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
dependencies:
argparse: 2.0.1
dev: true
/json-buffer@3.0.1:
jsesc@3.1.0:
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
engines: {node: '>=6'}
hasBin: true
json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
dev: true
/json-schema-traverse@0.4.1:
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
dev: true
/json-stable-stringify-without-jsonify@1.0.1:
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==}
json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
hasBin: true
/jszip@3.10.1:
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:
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
dependencies:
json-buffer: 3.0.1
dev: true
/kleur@4.1.5:
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
known-css-properties@0.34.0:
resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==}
/levn@0.4.1:
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:
lie@3.3.0:
resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
dependencies:
immediate: 3.0.6
dev: false
/lilconfig@2.1.0:
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==}
lilconfig@3.1.3:
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
engines: {node: '>=14'}
dev: true
/lines-and-columns@1.2.4:
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:
locate-character@3.0.0:
resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
/locate-path@6.0.0:
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:
lodash.castarray@4.4.0:
resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
dev: true
/lodash.isplainobject@4.0.6:
lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
dev: true
/lodash.merge@4.6.2:
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
dev: true
/lodash@4.17.21:
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
longest-streak@3.1.0:
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
/lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
dependencies:
yallist: 4.0.0
dev: true
loupe@3.1.3:
resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
/lucide-svelte@0.314.0(svelte@4.2.9):
resolution: {integrity: sha512-w7oPy6aU7ybjopT9k65S1S5y/XgFVL6i6Qm0MT9pSjvORfWEdaI7cvonx5D2w3+Ty8+0jVRm4k8U/txhEpwLOg==}
lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
lucide-svelte@0.525.0:
resolution: {integrity: sha512-kfuN6JcCqTfCz2B76aXnyGLAzEBRSYw5GaUspM5RNHQZS5aI5yaKu06fbaofOk8cDvUtY0AUm/zAix7aUX6Q3A==}
peerDependencies:
svelte: '>=3 <5'
dependencies:
svelte: 4.2.9
dev: false
svelte: ^3 || ^4 || ^5.0.0-next.42
/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.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
/magic-string@0.30.5:
resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
markdown-table@3.0.4:
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
/mdn-data@2.0.30:
mdast-util-find-and-replace@3.0.2:
resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
mdast-util-from-markdown@2.0.2:
resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
mdast-util-gfm-autolink-literal@2.0.1:
resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
mdast-util-gfm-footnote@2.1.0:
resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
mdast-util-gfm-strikethrough@2.0.0:
resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
mdast-util-gfm-table@2.0.0:
resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
mdast-util-gfm-task-list-item@2.0.0:
resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
mdast-util-gfm@3.1.0:
resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
mdast-util-phrasing@4.1.0:
resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
mdast-util-to-hast@13.2.0:
resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
mdast-util-to-markdown@2.1.2:
resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
mdast-util-to-string@4.0.0:
resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
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==}
mdn-data@2.12.2:
resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
mdsvex@0.12.5:
resolution: {integrity: sha512-JQy8CBbGF1IvpxZTmGJigRiD1s2BKfLKS9xCLPKngjHToY8WMYLZ8WFGRpuR6x4C4bxipSuLm2LctwL2fVXaEQ==}
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
svelte: ^3.56.0 || ^4.0.0 || ^5.0.0-next.120
/merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
dev: true
/merge2@1.4.1:
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==}
micromark-core-commonmark@2.0.2:
resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==}
micromark-extension-gfm-autolink-literal@2.1.0:
resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
micromark-extension-gfm-footnote@2.1.0:
resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
micromark-extension-gfm-strikethrough@2.1.0:
resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
micromark-extension-gfm-table@2.1.1:
resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
micromark-extension-gfm-tagfilter@2.0.0:
resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
micromark-extension-gfm-task-list-item@2.1.0:
resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
micromark-extension-gfm@3.0.0:
resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
micromark-factory-destination@2.0.1:
resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
micromark-factory-label@2.0.1:
resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
micromark-factory-space@2.0.1:
resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
micromark-factory-title@2.0.1:
resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
micromark-factory-whitespace@2.0.1:
resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
micromark-util-character@2.1.1:
resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
micromark-util-chunked@2.0.1:
resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
micromark-util-classify-character@2.0.1:
resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
micromark-util-combine-extensions@2.0.1:
resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
micromark-util-decode-numeric-character-reference@2.0.2:
resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
micromark-util-decode-string@2.0.1:
resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
micromark-util-encode@2.0.1:
resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
micromark-util-html-tag-name@2.0.1:
resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
micromark-util-normalize-identifier@2.0.1:
resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
micromark-util-resolve-all@2.0.1:
resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
micromark-util-sanitize-uri@2.0.1:
resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
micromark-util-subtokenize@2.0.4:
resolution: {integrity: sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==}
micromark-util-symbol@2.0.1:
resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
micromark-util-types@2.0.1:
resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==}
micromark@4.0.1:
resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==}
micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
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:
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==}
minimatch@9.0.5:
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
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
minipass@7.1.2:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
/mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
dependencies:
minimist: 1.2.8
dev: true
mode-watcher@0.5.1:
resolution: {integrity: sha512-adEC6T7TMX/kzQlaO/MtiQOSFekZfQu4MC+lXyoceQG+U5sKpJWZ4yKXqw846ExIuWJgedkOIPqAYYRk/xHm+w==}
peerDependencies:
svelte: ^4.0.0 || ^5.0.0-next.1
/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:
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==}
mrmime@2.0.1:
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
engines: {node: '>=10'}
dev: true
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
/mz@2.7.0:
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==}
nanoid@3.3.8:
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
/nanoid@5.0.4:
resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==}
nanoid@5.1.2:
resolution: {integrity: sha512-b+CiXQCNMUGe0Ri64S9SXFcP9hogjAJ2Rd6GdVxhPLRm7mhGaM7VgOvCAJ1ZshfHbqVDI3uqTI5C8/GaKuLI7g==}
engines: {node: ^18 || >=20}
hasBin: true
dev: false
/natural-compare@1.4.0:
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
/node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
dev: true
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
/normalize-path@3.0.0:
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
dev: true
/normalize-range@0.1.2:
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
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
/object-assign@4.1.1:
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
dev: true
/object-hash@3.0.0:
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
oniguruma-parser@0.12.1:
resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==}
/onetime@6.0.0:
resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
engines: {node: '>=12'}
dependencies:
mimic-fn: 4.0.0
dev: true
oniguruma-to-es@4.3.3:
resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==}
/optionator@0.9.3:
resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
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:
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:
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:
package-json-from-dist@1.0.1:
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
pako@1.0.11:
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
dev: false
/parent-module@1.0.1:
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:
parse-json@5.2.0:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
parse-numeric-range@1.3.0:
resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
parse5@7.2.1:
resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
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:
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:
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
/path-type@4.0.0:
path-scurry@1.11.1:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
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
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
/pathval@1.1.1:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
dev: true
pathval@2.0.0:
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
engines: {node: '>= 14.16'}
/periscopic@3.1.0:
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
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
/picomatch@2.3.1:
picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
dev: true
/pify@2.3.0:
picomatch@4.0.2:
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
engines: {node: '>=12'}
pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
dev: true
/pirates@4.0.6:
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):
postcss-import@15.1.0:
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):
postcss-js@4.0.1:
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):
postcss-load-config@3.1.4:
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
engines: {node: '>= 10'}
peerDependencies:
@@ -2277,13 +2098,8 @@ packages:
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):
postcss-load-config@4.0.2:
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
engines: {node: '>= 14'}
peerDependencies:
@@ -2294,103 +2110,71 @@ packages:
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==}
postcss-nested@6.2.0:
resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
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):
postcss-safe-parser@6.0.0:
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):
postcss-scss@4.0.9:
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:
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==}
postcss-selector-parser@6.1.2:
resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
engines: {node: '>=4'}
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
dev: true
/postcss-value-parser@4.2.0:
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
dev: true
/postcss@8.4.33:
resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
postcss@8.5.3:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
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:
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==}
prettier-plugin-svelte@3.2.6:
resolution: {integrity: sha512-Y1XWLw7vXUQQZmgv1JAEiLcErqUniAF2wO7QJsw8BVMvpLET2dI5WpEIEJx1r11iHVdSMzQxivyfrH9On9t2IQ==}
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==}
prettier-plugin-tailwindcss@0.6.6:
resolution: {integrity: sha512-OPva5S7WAsPLEsOuOWXATi13QrCKACCiIonFgIR6V4lYv4QLp++UXVhZSzRbZxXGimkQtQT86CC6fQqTOybGng==}
engines: {node: '>=14.21.3'}
peerDependencies:
'@ianvs/prettier-plugin-sort-imports': '*'
'@prettier/plugin-pug': '*'
'@shopify/prettier-plugin-liquid': '*'
'@trivago/prettier-plugin-sort-imports': '*'
'@zackad/prettier-plugin-twig-melody': '*'
prettier: ^3.0
prettier-plugin-astro: '*'
prettier-plugin-css-order: '*'
prettier-plugin-import-sort: '*'
prettier-plugin-jsdoc: '*'
prettier-plugin-marko: '*'
prettier-plugin-multiline-arrays: '*'
prettier-plugin-organize-attributes: '*'
prettier-plugin-organize-imports: '*'
prettier-plugin-sort-imports: '*'
prettier-plugin-style-order: '*'
prettier-plugin-svelte: '*'
prettier-plugin-twig-melody: '*'
peerDependenciesMeta:
'@ianvs/prettier-plugin-sort-imports':
optional: true
@@ -2400,6 +2184,8 @@ packages:
optional: true
'@trivago/prettier-plugin-sort-imports':
optional: true
'@zackad/prettier-plugin-twig-melody':
optional: true
prettier-plugin-astro:
optional: true
prettier-plugin-css-order:
@@ -2410,672 +2196,458 @@ packages:
optional: true
prettier-plugin-marko:
optional: true
prettier-plugin-multiline-arrays:
optional: true
prettier-plugin-organize-attributes:
optional: true
prettier-plugin-organize-imports:
optional: true
prettier-plugin-sort-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==}
prettier@3.3.3:
resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
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:
prism-svelte@0.4.7:
resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==}
dev: true
/prismjs@1.29.0:
prismjs@1.29.0:
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
engines: {node: '>=6'}
dev: true
/process-nextick-args@2.0.1:
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
dev: false
/punycode@2.3.1:
property-information@7.0.0:
resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==}
punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
dev: true
/queue-microtask@1.2.3:
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:
read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
dependencies:
pify: 2.3.0
dev: true
/readable-stream@2.3.8:
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:
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==}
readdirp@4.1.2:
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
engines: {node: '>= 14.18.0'}
/require-directory@2.1.1:
regex-recursion@6.0.2:
resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
regex-utilities@2.3.0:
resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
regex@6.0.1:
resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==}
rehype-autolink-headings@7.1.0:
resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==}
rehype-parse@9.0.1:
resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==}
rehype-pretty-code@0.12.6:
resolution: {integrity: sha512-AW18s4eXwnb4PGwL0Y8BoUzBJr23epWNXndCKaZ52S4kl/4tsgM+406oCp5NdtPZsB0ItpaY+hCMv3kw58DLrA==}
engines: {node: '>=18'}
peerDependencies:
shikiji: ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0
rehype-slug@6.0.0:
resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==}
rehype-stringify@10.0.1:
resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==}
remark-gfm@4.0.1:
resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
remark-parse@11.0.0:
resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
remark-rehype@11.1.1:
resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==}
remark-stringify@11.0.0:
resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
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:
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==}
resolve@1.22.10:
resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
engines: {node: '>= 0.4'}
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==}
reusify@1.1.0:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
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==}
rollup@4.34.8:
resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==}
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:
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
rxjs@7.8.2:
resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
/sade@1.8.1:
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:
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
sax@1.4.1:
resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
/semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
semver@7.7.1:
resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
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
set-cookie-parser@2.7.1:
resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
/setimmediate@1.0.5:
setimmediate@1.0.5:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
dev: false
/shebang-command@2.0.0:
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:
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
shell-quote@1.8.2:
resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==}
engines: {node: '>= 0.4'}
/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
shiki@3.7.0:
resolution: {integrity: sha512-ZcI4UT9n6N2pDuM2n3Jbk0sR4Swzq43nLPgS/4h0E3B/NrFn2HKElrDtceSf8Zx/OWYOo7G1SAtBLypCp+YXqg==}
/siginfo@2.0.0:
shikiji-core@0.10.2:
resolution: {integrity: sha512-9Of8HMlF96usXJHmCL3Gd0Fcf0EcyJUF9m8EoAKKd98mHXi0La2AZl1h6PegSFGtiYcBDK/fLuKbDa1l16r1fA==}
deprecated: Deprecated, use @shikijs/core instead
shikiji@0.10.2:
resolution: {integrity: sha512-wtZg3T0vtYV2PnqusWQs3mDaJBdCPWxFDrBM/SE5LfrX92gjUvfEMlc+vJnoKY6Z/S44OWaCRzNIsdBRWcTAiw==}
deprecated: Deprecated, use shiki instead
siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
dev: true
/signal-exit@4.1.0:
signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
dev: true
/sirv@2.0.4:
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
snake-case@3.0.4:
resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
/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==}
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
/spawn-command@0.0.2:
resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==}
dev: true
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
/stackback@0.0.2:
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
std-env@3.8.0:
resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==}
/string-width@4.2.3:
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:
string-width@5.1.2:
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
engines: {node: '>=12'}
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:
stringify-entities@4.0.4:
resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
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==}
strip-ansi@7.1.0:
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
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:
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'}
sucrase@3.35.0:
resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
engines: {node: '>=16 || 14 >=14.17'}
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:
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:
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:
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==}
svelte-check@4.0.9:
resolution: {integrity: sha512-SVNCz2L+9ZELGli7G0n3B3QE5kdf0u27RtKr2ZivWQhcWIXatZxwM4VrQ6AiA2k9zKp2mk5AxkEhdjbpjv7rEw==}
engines: {node: '>= 18.0.0'}
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: ^4.0.0 || ^5.0.0-next.0
typescript: '>=5.0.0'
/svelte-eslint-parser@0.33.1(svelte@4.2.9):
resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==}
svelte-eslint-parser@0.41.1:
resolution: {integrity: sha512-08ndI6zTghzI8SuJAFpvMbA/haPSGn3xz19pjre19yYMw8Nw/wQJ2PrZBI/L8ijGTgtkWCQQiLLy+Z1tfaCwNA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
svelte: ^3.37.0 || ^4.0.0
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.191
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==}
svelte-hmr@0.16.0:
resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==}
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
svelte-sonner@0.3.28:
resolution: {integrity: sha512-K3AmlySeFifF/cKgsYNv5uXqMVNln0NBAacOYgmkQStLa/UoU0LhfAACU6Gr+YYC8bOCHdVmFNoKuDbMEsppJg==}
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: ^3.0.0 || ^4.0.0 || ^5.0.0-next.1
/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==}
svelte@4.2.20:
resolution: {integrity: sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q==}
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:
sveltekit-search-params@3.0.0:
resolution: {integrity: sha512-wq1Yo5zITev8ty9CWGmHgvAh+Xb3mCUewyUmvCdv6MJWi+/aZ4o79Y6SjuduDL0Cfd/KYHkqt4f/wQ4FtokSdw==}
peerDependencies:
'@sveltejs/kit': ^1.0.0 || ^2.0.0
svelte: ^3.55.0 || ^4.0.0 || ^5.0.0
svg-parser@2.0.4:
resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
svgo@4.0.0:
resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==}
engines: {node: '>=16'}
hasBin: true
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
tailwind-merge@2.5.4:
resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==}
/tailwindcss@3.4.1:
resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
tailwind-merge@2.6.0:
resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==}
tailwind-variants@0.3.1:
resolution: {integrity: sha512-krn67M3FpPwElg4FsZrOQd0U26o7UDH/QOkK8RNaiCCrr052f6YJPBUfNKnPo/s/xRzNPtv1Mldlxsg8Tb46BQ==}
engines: {node: '>=16.x', pnpm: '>=7.x'}
peerDependencies:
tailwindcss: '*'
tailwindcss@3.4.17:
resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
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:
text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
/thenify-all@1.6.0:
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:
thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
dependencies:
any-promise: 1.3.0
dev: true
/tiny-glob@0.2.9:
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
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
/tinypool@0.8.1:
resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==}
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
tinypool@1.0.2:
resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
engines: {node: ^18.0.0 || >=20.0.0}
tinyrainbow@1.2.0:
resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==}
engines: {node: '>=14.0.0'}
dev: true
/tinyspy@2.2.0:
resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==}
tinyspy@3.0.2:
resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
engines: {node: '>=14.0.0'}
dev: true
/to-regex-range@5.0.1:
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:
totalist@3.0.1:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
dev: true
/tree-kill@1.2.2:
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'}
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
trough@2.2.0:
resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
ts-api-utils@1.4.3:
resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
engines: {node: '>=16'}
peerDependencies:
typescript: '>=4.2.0'
dependencies:
typescript: 5.3.3
dev: true
/ts-interface-checker@0.1.13:
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==}
tslib@2.7.0:
resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
/type-check@0.4.0:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
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
typescript-eslint@8.6.0:
resolution: {integrity: sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: 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==}
typescript@5.6.2:
resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
engines: {node: '>=14.17'}
hasBin: true
dev: true
/ufo@1.3.2:
resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
dev: true
uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
/unist-util-stringify-position@2.0.3:
undici-types@6.19.8:
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
unified@11.0.5:
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
unist-util-is@4.1.0:
resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==}
unist-util-is@6.0.0:
resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
unist-util-position@5.0.0:
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
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==}
unist-util-stringify-position@4.0.0:
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
unist-util-visit-parents@3.1.1:
resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==}
unist-util-visit-parents@6.0.1:
resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
unist-util-visit@2.0.3:
resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==}
unist-util-visit@5.0.0:
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
update-browserslist-db@1.1.2:
resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
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:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
punycode: 2.3.1
dev: true
/util-deprecate@1.0.2:
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
vfile-location@5.0.3:
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
/vite-node@1.2.1:
resolution: {integrity: sha512-fNzHmQUSOY+y30naohBvSW7pPn/xn3Ib/uqm+5wAJQJiqQsU0NBR78XdRJb04l4bOFKjpTWld0XAfkKlrDbySg==}
vfile-message@2.0.4:
resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==}
vfile-message@4.0.2:
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
vite-node@2.1.1:
resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==}
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==}
vite@5.4.7:
resolution: {integrity: sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -3083,6 +2655,7 @@ packages:
less: '*'
lightningcss: ^1.21.0
sass: '*'
sass-embedded: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
@@ -3095,40 +2668,32 @@ packages:
optional: true
sass:
optional: true
sass-embedded:
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):
vitefu@0.2.5:
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==}
vitest@2.1.1:
resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==}
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
'@vitest/browser': 2.1.1
'@vitest/ui': 2.1.1
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -3144,119 +2709,2830 @@ packages:
optional: true
jsdom:
optional: true
web-namespaces@2.0.1:
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
why-is-node-running@2.3.0:
resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
engines: {node: '>=8'}
hasBin: true
word-wrap@1.2.5:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
wrap-ansi@8.1.0:
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
engines: {node: '>=12'}
y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
yaml@1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
yaml@2.7.0:
resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==}
engines: {node: '>= 14'}
hasBin: true
yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
yargs@17.7.2:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
snapshots:
'@alloc/quick-lru@5.2.0': {}
'@ampproject/remapping@2.3.0':
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
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
'@babel/code-frame@7.26.2':
dependencies:
'@babel/helper-validator-identifier': 7.25.9
js-tokens: 4.0.0
picocolors: 1.1.1
'@babel/compat-data@7.26.8': {}
'@babel/core@7.26.9':
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.26.2
'@babel/generator': 7.26.9
'@babel/helper-compilation-targets': 7.26.5
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9)
'@babel/helpers': 7.26.9
'@babel/parser': 7.26.9
'@babel/template': 7.26.9
'@babel/traverse': 7.26.9
'@babel/types': 7.26.9
convert-source-map: 2.0.0
debug: 4.4.0
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
'@babel/generator@7.26.9':
dependencies:
'@babel/parser': 7.26.9
'@babel/types': 7.26.9
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
jsesc: 3.1.0
'@babel/helper-compilation-targets@7.26.5':
dependencies:
'@babel/compat-data': 7.26.8
'@babel/helper-validator-option': 7.25.9
browserslist: 4.24.4
lru-cache: 5.1.1
semver: 6.3.1
'@babel/helper-module-imports@7.25.9':
dependencies:
'@babel/traverse': 7.26.9
'@babel/types': 7.26.9
transitivePeerDependencies:
- supports-color
'@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@babel/helper-module-imports': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
'@babel/traverse': 7.26.9
transitivePeerDependencies:
- supports-color
'@babel/helper-string-parser@7.25.9': {}
'@babel/helper-validator-identifier@7.25.9': {}
'@babel/helper-validator-option@7.25.9': {}
'@babel/helpers@7.26.9':
dependencies:
'@babel/template': 7.26.9
'@babel/types': 7.26.9
'@babel/parser@7.26.9':
dependencies:
'@babel/types': 7.26.9
'@babel/template@7.26.9':
dependencies:
'@babel/code-frame': 7.26.2
'@babel/parser': 7.26.9
'@babel/types': 7.26.9
'@babel/traverse@7.26.9':
dependencies:
'@babel/code-frame': 7.26.2
'@babel/generator': 7.26.9
'@babel/parser': 7.26.9
'@babel/template': 7.26.9
'@babel/types': 7.26.9
debug: 4.4.0
globals: 11.12.0
transitivePeerDependencies:
- supports-color
'@babel/types@7.26.9':
dependencies:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
'@esbuild/aix-ppc64@0.21.5':
optional: true
'@esbuild/aix-ppc64@0.24.0':
optional: true
'@esbuild/android-arm64@0.21.5':
optional: true
'@esbuild/android-arm64@0.24.0':
optional: true
'@esbuild/android-arm@0.21.5':
optional: true
'@esbuild/android-arm@0.24.0':
optional: true
'@esbuild/android-x64@0.21.5':
optional: true
'@esbuild/android-x64@0.24.0':
optional: true
'@esbuild/darwin-arm64@0.21.5':
optional: true
'@esbuild/darwin-arm64@0.24.0':
optional: true
'@esbuild/darwin-x64@0.21.5':
optional: true
'@esbuild/darwin-x64@0.24.0':
optional: true
'@esbuild/freebsd-arm64@0.21.5':
optional: true
'@esbuild/freebsd-arm64@0.24.0':
optional: true
'@esbuild/freebsd-x64@0.21.5':
optional: true
'@esbuild/freebsd-x64@0.24.0':
optional: true
'@esbuild/linux-arm64@0.21.5':
optional: true
'@esbuild/linux-arm64@0.24.0':
optional: true
'@esbuild/linux-arm@0.21.5':
optional: true
'@esbuild/linux-arm@0.24.0':
optional: true
'@esbuild/linux-ia32@0.21.5':
optional: true
'@esbuild/linux-ia32@0.24.0':
optional: true
'@esbuild/linux-loong64@0.21.5':
optional: true
'@esbuild/linux-loong64@0.24.0':
optional: true
'@esbuild/linux-mips64el@0.21.5':
optional: true
'@esbuild/linux-mips64el@0.24.0':
optional: true
'@esbuild/linux-ppc64@0.21.5':
optional: true
'@esbuild/linux-ppc64@0.24.0':
optional: true
'@esbuild/linux-riscv64@0.21.5':
optional: true
'@esbuild/linux-riscv64@0.24.0':
optional: true
'@esbuild/linux-s390x@0.21.5':
optional: true
'@esbuild/linux-s390x@0.24.0':
optional: true
'@esbuild/linux-x64@0.21.5':
optional: true
'@esbuild/linux-x64@0.24.0':
optional: true
'@esbuild/netbsd-x64@0.21.5':
optional: true
'@esbuild/netbsd-x64@0.24.0':
optional: true
'@esbuild/openbsd-arm64@0.24.0':
optional: true
'@esbuild/openbsd-x64@0.21.5':
optional: true
'@esbuild/openbsd-x64@0.24.0':
optional: true
'@esbuild/sunos-x64@0.21.5':
optional: true
'@esbuild/sunos-x64@0.24.0':
optional: true
'@esbuild/win32-arm64@0.21.5':
optional: true
'@esbuild/win32-arm64@0.24.0':
optional: true
'@esbuild/win32-ia32@0.21.5':
optional: true
'@esbuild/win32-ia32@0.24.0':
optional: true
'@esbuild/win32-x64@0.21.5':
optional: true
'@esbuild/win32-x64@0.24.0':
optional: true
'@eslint-community/eslint-utils@4.4.1(eslint@9.11.0(jiti@1.21.7))':
dependencies:
eslint: 9.11.0(jiti@1.21.7)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
'@eslint/config-array@0.18.0':
dependencies:
'@eslint/object-schema': 2.1.6
debug: 4.4.0
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
'@eslint/core@0.12.0':
dependencies:
'@types/json-schema': 7.0.15
'@eslint/eslintrc@3.3.0':
dependencies:
ajv: 6.12.6
debug: 4.4.0
espree: 10.3.0
globals: 14.0.0
ignore: 5.3.2
import-fresh: 3.3.1
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
'@eslint/js@9.11.0': {}
'@eslint/object-schema@2.1.6': {}
'@eslint/plugin-kit@0.2.7':
dependencies:
'@eslint/core': 0.12.0
levn: 0.4.1
'@figma/plugin-typings@1.115.0': {}
'@floating-ui/core@1.6.9':
dependencies:
'@floating-ui/utils': 0.2.9
'@floating-ui/dom@1.6.13':
dependencies:
'@floating-ui/core': 1.6.9
'@floating-ui/utils': 0.2.9
'@floating-ui/utils@0.2.9': {}
'@humanwhocodes/module-importer@1.0.1': {}
'@humanwhocodes/retry@0.3.1': {}
'@internationalized/date@3.7.0':
dependencies:
'@swc/helpers': 0.5.15
'@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2
string-width-cjs: string-width@4.2.3
strip-ansi: 7.1.0
strip-ansi-cjs: strip-ansi@6.0.1
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
'@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/set-array@1.2.1': {}
'@jridgewell/sourcemap-codec@1.5.0': {}
'@jridgewell/trace-mapping@0.3.25':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
'@melt-ui/svelte@0.76.2(svelte@4.2.20)':
dependencies:
'@floating-ui/core': 1.6.9
'@floating-ui/dom': 1.6.13
'@internationalized/date': 3.7.0
dequal: 2.0.3
focus-trap: 7.6.4
nanoid: 5.1.2
svelte: 4.2.20
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
run-parallel: 1.2.0
'@nodelib/fs.stat@2.0.5': {}
'@nodelib/fs.walk@1.2.8':
dependencies:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.0
'@pkgjs/parseargs@0.11.0':
optional: true
'@polka/url@1.0.0-next.28': {}
'@rollup/plugin-commonjs@28.0.2(rollup@4.34.8)':
dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.34.8)
commondir: 1.0.1
estree-walker: 2.0.2
fdir: 6.4.3(picomatch@4.0.2)
is-reference: 1.2.1
magic-string: 0.30.17
picomatch: 4.0.2
optionalDependencies:
rollup: 4.34.8
'@rollup/plugin-json@6.1.0(rollup@4.34.8)':
dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.34.8)
optionalDependencies:
rollup: 4.34.8
'@rollup/plugin-node-resolve@15.3.1(rollup@4.34.8)':
dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.34.8)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-module: 1.0.0
resolve: 1.22.10
optionalDependencies:
rollup: 4.34.8
'@rollup/pluginutils@5.1.4(rollup@4.34.8)':
dependencies:
'@types/estree': 1.0.6
estree-walker: 2.0.2
picomatch: 4.0.2
optionalDependencies:
rollup: 4.34.8
'@rollup/rollup-android-arm-eabi@4.34.8':
optional: true
'@rollup/rollup-android-arm64@4.34.8':
optional: true
'@rollup/rollup-darwin-arm64@4.34.8':
optional: true
'@rollup/rollup-darwin-x64@4.34.8':
optional: true
'@rollup/rollup-freebsd-arm64@4.34.8':
optional: true
'@rollup/rollup-freebsd-x64@4.34.8':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.34.8':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.34.8':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.34.8':
optional: true
'@rollup/rollup-linux-arm64-musl@4.34.8':
optional: true
'@rollup/rollup-linux-loongarch64-gnu@4.34.8':
optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.34.8':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.34.8':
optional: true
'@rollup/rollup-linux-x64-gnu@4.34.8':
optional: true
'@rollup/rollup-linux-x64-musl@4.34.8':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.34.8':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.34.8':
optional: true
'@rollup/rollup-win32-x64-msvc@4.34.8':
optional: true
'@shikijs/core@3.7.0':
dependencies:
'@shikijs/types': 3.7.0
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
'@shikijs/engine-javascript@3.7.0':
dependencies:
'@shikijs/types': 3.7.0
'@shikijs/vscode-textmate': 10.0.2
oniguruma-to-es: 4.3.3
'@shikijs/engine-oniguruma@3.7.0':
dependencies:
'@shikijs/types': 3.7.0
'@shikijs/vscode-textmate': 10.0.2
'@shikijs/langs@3.7.0':
dependencies:
'@shikijs/types': 3.7.0
'@shikijs/themes@3.7.0':
dependencies:
'@shikijs/types': 3.7.0
'@shikijs/types@3.7.0':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
'@shikijs/vscode-textmate@10.0.2': {}
'@svelte-dev/pretty-code@1.0.0(shikiji@0.10.2)':
dependencies:
rehype-pretty-code: 0.12.6(shikiji@0.10.2)
rehype-stringify: 10.0.1
remark-parse: 11.0.0
remark-rehype: 11.1.1
unified: 11.0.5
transitivePeerDependencies:
- shikiji
- supports-color
'@sveltejs/adapter-auto@3.2.5(@sveltejs/kit@2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))':
dependencies:
'@sveltejs/kit': 2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
import-meta-resolve: 4.1.0
'@sveltejs/adapter-node@5.2.5(@sveltejs/kit@2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))':
dependencies:
'@rollup/plugin-commonjs': 28.0.2(rollup@4.34.8)
'@rollup/plugin-json': 6.1.0(rollup@4.34.8)
'@rollup/plugin-node-resolve': 15.3.1(rollup@4.34.8)
'@sveltejs/kit': 2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
rollup: 4.34.8
'@sveltejs/kit@2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))':
dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
'@types/cookie': 0.6.0
cookie: 0.6.0
devalue: 5.1.1
esm-env: 1.2.2
import-meta-resolve: 4.1.0
kleur: 4.1.5
magic-string: 0.30.17
mrmime: 2.0.1
sade: 1.8.1
set-cookie-parser: 2.7.1
sirv: 2.0.4
svelte: 4.2.20
tiny-glob: 0.2.9
vite: 5.4.7(@types/node@22.5.5)
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))':
dependencies:
'@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
debug: 4.4.0
svelte: 4.2.20
vite: 5.4.7(@types/node@22.5.5)
transitivePeerDependencies:
- supports-color
'@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))':
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
debug: 4.4.0
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.17
svelte: 4.2.20
svelte-hmr: 0.16.0(svelte@4.2.20)
vite: 5.4.7(@types/node@22.5.5)
vitefu: 0.2.5(vite@5.4.7(@types/node@22.5.5))
transitivePeerDependencies:
- supports-color
'@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-preset@8.1.0(@babel/core@7.26.9)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.9)
'@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.9)
'@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.9)
'@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.9)
'@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.9)
'@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.9)
'@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.9)
'@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.9)
'@svgr/core@8.1.0(typescript@5.6.2)':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-preset': 8.1.0(@babel/core@7.26.9)
camelcase: 6.3.0
cosmiconfig: 8.3.6(typescript@5.6.2)
snake-case: 3.0.4
transitivePeerDependencies:
- supports-color
- typescript
'@svgr/hast-util-to-babel-ast@8.0.0':
dependencies:
'@babel/types': 7.26.9
entities: 4.5.0
'@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.6.2))':
dependencies:
'@babel/core': 7.26.9
'@svgr/babel-preset': 8.1.0(@babel/core@7.26.9)
'@svgr/core': 8.1.0(typescript@5.6.2)
'@svgr/hast-util-to-babel-ast': 8.0.0
svg-parser: 2.0.4
transitivePeerDependencies:
- supports-color
'@swc/helpers@0.5.15':
dependencies:
tslib: 2.8.1
'@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)':
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.17
'@types/cookie@0.6.0': {}
'@types/debug@4.1.12':
dependencies:
'@types/ms': 2.1.0
'@types/downloadjs@1.4.6': {}
'@types/eslint@9.6.1':
dependencies:
'@types/estree': 1.0.6
'@types/json-schema': 7.0.15
'@types/estree@1.0.6': {}
'@types/hast@3.0.4':
dependencies:
'@types/unist': 3.0.3
'@types/json-schema@7.0.15': {}
'@types/mdast@4.0.4':
dependencies:
'@types/unist': 3.0.3
'@types/ms@2.1.0': {}
'@types/node@22.5.5':
dependencies:
undici-types: 6.19.8
'@types/resolve@1.20.2': {}
'@types/unist@2.0.11': {}
'@types/unist@3.0.3': {}
'@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
'@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)
'@typescript-eslint/scope-manager': 8.6.0
'@typescript-eslint/type-utils': 8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)
'@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)
'@typescript-eslint/visitor-keys': 8.6.0
eslint: 9.11.0(jiti@1.21.7)
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
ts-api-utils: 1.4.3(typescript@5.6.2)
optionalDependencies:
typescript: 5.6.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)':
dependencies:
'@typescript-eslint/scope-manager': 8.6.0
'@typescript-eslint/types': 8.6.0
'@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2)
'@typescript-eslint/visitor-keys': 8.6.0
debug: 4.4.0
eslint: 9.11.0(jiti@1.21.7)
optionalDependencies:
typescript: 5.6.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/scope-manager@8.6.0':
dependencies:
'@typescript-eslint/types': 8.6.0
'@typescript-eslint/visitor-keys': 8.6.0
'@typescript-eslint/type-utils@8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)':
dependencies:
'@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2)
'@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)
debug: 4.4.0
ts-api-utils: 1.4.3(typescript@5.6.2)
optionalDependencies:
typescript: 5.6.2
transitivePeerDependencies:
- eslint
- supports-color
'@typescript-eslint/types@8.6.0': {}
'@typescript-eslint/typescript-estree@8.6.0(typescript@5.6.2)':
dependencies:
'@typescript-eslint/types': 8.6.0
'@typescript-eslint/visitor-keys': 8.6.0
debug: 4.4.0
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.1
ts-api-utils: 1.4.3(typescript@5.6.2)
optionalDependencies:
typescript: 5.6.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.11.0(jiti@1.21.7))
'@typescript-eslint/scope-manager': 8.6.0
'@typescript-eslint/types': 8.6.0
'@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2)
eslint: 9.11.0(jiti@1.21.7)
transitivePeerDependencies:
- supports-color
- typescript
'@typescript-eslint/visitor-keys@8.6.0':
dependencies:
'@typescript-eslint/types': 8.6.0
eslint-visitor-keys: 3.4.3
'@ungap/structured-clone@1.3.0': {}
'@upstash/core-analytics@0.0.10':
dependencies:
'@upstash/redis': 1.35.3
'@upstash/ratelimit@2.0.6(@upstash/redis@1.35.3)':
dependencies:
'@upstash/core-analytics': 0.0.10
'@upstash/redis': 1.35.3
'@upstash/redis@1.35.3':
dependencies:
uncrypto: 0.1.3
'@vitest/expect@2.1.1':
dependencies:
'@vitest/spy': 2.1.1
'@vitest/utils': 2.1.1
chai: 5.2.0
tinyrainbow: 1.2.0
'@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.7(@types/node@22.5.5))':
dependencies:
'@vitest/spy': 2.1.1
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
vite: 5.4.7(@types/node@22.5.5)
'@vitest/pretty-format@2.1.1':
dependencies:
tinyrainbow: 1.2.0
'@vitest/pretty-format@2.1.9':
dependencies:
tinyrainbow: 1.2.0
'@vitest/runner@2.1.1':
dependencies:
'@vitest/utils': 2.1.1
pathe: 1.1.2
'@vitest/snapshot@2.1.1':
dependencies:
'@vitest/pretty-format': 2.1.1
magic-string: 0.30.17
pathe: 1.1.2
'@vitest/spy@2.1.1':
dependencies:
tinyspy: 3.0.2
'@vitest/utils@2.1.1':
dependencies:
'@vitest/pretty-format': 2.1.1
loupe: 3.1.3
tinyrainbow: 1.2.0
acorn-jsx@5.3.2(acorn@8.14.0):
dependencies:
acorn: 8.14.0
acorn@8.14.0: {}
ajv@6.12.6:
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
ansi-regex@5.0.1: {}
ansi-regex@6.1.0: {}
ansi-styles@4.3.0:
dependencies:
color-convert: 2.0.1
ansi-styles@6.2.1: {}
any-promise@1.3.0: {}
anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
arg@5.0.2: {}
argparse@2.0.1: {}
aria-query@5.3.2: {}
assertion-error@2.0.1: {}
autoprefixer@10.4.21(postcss@8.5.3):
dependencies:
browserslist: 4.24.4
caniuse-lite: 1.0.30001715
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
postcss: 8.5.3
postcss-value-parser: 4.2.0
axobject-query@4.1.0: {}
bail@2.0.2: {}
balanced-match@1.0.2: {}
binary-extensions@2.3.0: {}
bits-ui@0.22.0(svelte@4.2.20):
dependencies:
'@internationalized/date': 3.7.0
'@melt-ui/svelte': 0.76.2(svelte@4.2.20)
nanoid: 5.1.2
svelte: 4.2.20
boolbase@1.0.0: {}
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
brace-expansion@2.0.1:
dependencies:
balanced-match: 1.0.2
braces@3.0.3:
dependencies:
fill-range: 7.1.1
browserslist@4.24.4:
dependencies:
caniuse-lite: 1.0.30001700
electron-to-chromium: 1.5.104
node-releases: 2.0.19
update-browserslist-db: 1.1.2(browserslist@4.24.4)
cac@6.7.14: {}
callsites@3.1.0: {}
camelcase-css@2.0.1: {}
camelcase@6.3.0: {}
caniuse-lite@1.0.30001700: {}
caniuse-lite@1.0.30001715: {}
ccount@2.0.1: {}
chai@5.2.0:
dependencies:
assertion-error: 2.0.1
check-error: 2.1.1
deep-eql: 5.0.2
loupe: 3.1.3
pathval: 2.0.0
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0
character-entities-html4@2.1.0: {}
character-entities-legacy@3.0.0: {}
character-entities@2.0.2: {}
check-error@2.1.1: {}
chokidar@3.6.0:
dependencies:
anymatch: 3.1.3
braces: 3.0.3
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
chokidar@4.0.3:
dependencies:
readdirp: 4.1.2
cliui@8.0.1:
dependencies:
string-width: 4.2.3
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
clsx@2.1.1: {}
code-red@1.0.4:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
'@types/estree': 1.0.6
acorn: 8.14.0
estree-walker: 3.0.3
periscopic: 3.1.0
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
color-name@1.1.4: {}
comma-separated-tokens@2.0.3: {}
commander@11.1.0: {}
commander@4.1.1: {}
commondir@1.0.1: {}
concat-map@0.0.1: {}
concurrently@9.0.1:
dependencies:
chalk: 4.1.2
lodash: 4.17.21
rxjs: 7.8.2
shell-quote: 1.8.2
supports-color: 8.1.1
tree-kill: 1.2.2
yargs: 17.7.2
convert-source-map@2.0.0: {}
cookie@0.6.0: {}
core-util-is@1.0.3: {}
cosmiconfig@8.3.6(typescript@5.6.2):
dependencies:
import-fresh: 3.3.1
js-yaml: 4.1.0
parse-json: 5.2.0
path-type: 4.0.0
optionalDependencies:
typescript: 5.6.2
cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2
css-select@5.2.2:
dependencies:
boolbase: 1.0.0
css-what: 6.2.2
domhandler: 5.0.3
domutils: 3.2.2
nth-check: 2.1.1
css-tree@2.2.1:
dependencies:
mdn-data: 2.0.28
source-map-js: 1.2.1
css-tree@2.3.1:
dependencies:
mdn-data: 2.0.30
source-map-js: 1.2.1
css-tree@3.1.0:
dependencies:
mdn-data: 2.12.2
source-map-js: 1.2.1
css-what@6.2.2: {}
cssesc@3.0.0: {}
csso@5.0.5:
dependencies:
css-tree: 2.2.1
debug@4.4.0:
dependencies:
ms: 2.1.3
decode-named-character-reference@1.0.2:
dependencies:
character-entities: 2.0.2
deep-eql@5.0.2: {}
deep-is@0.1.4: {}
deepmerge@4.3.1: {}
dequal@2.0.3: {}
devalue@5.1.1: {}
devlop@1.1.0:
dependencies:
dequal: 2.0.3
didyoumean@1.2.2: {}
dlv@1.1.3: {}
dom-serializer@2.0.0:
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
entities: 4.5.0
domelementtype@2.3.0: {}
domhandler@5.0.3:
dependencies:
domelementtype: 2.3.0
domutils@3.2.2:
dependencies:
dom-serializer: 2.0.0
domelementtype: 2.3.0
domhandler: 5.0.3
dot-case@3.0.4:
dependencies:
no-case: 3.0.4
tslib: 2.7.0
downloadjs@1.4.7: {}
eastasianwidth@0.2.0: {}
electron-to-chromium@1.5.104: {}
emoji-regex@8.0.0: {}
emoji-regex@9.2.2: {}
entities@4.5.0: {}
error-ex@1.3.2:
dependencies:
is-arrayish: 0.2.1
esbuild@0.21.5:
optionalDependencies:
'@esbuild/aix-ppc64': 0.21.5
'@esbuild/android-arm': 0.21.5
'@esbuild/android-arm64': 0.21.5
'@esbuild/android-x64': 0.21.5
'@esbuild/darwin-arm64': 0.21.5
'@esbuild/darwin-x64': 0.21.5
'@esbuild/freebsd-arm64': 0.21.5
'@esbuild/freebsd-x64': 0.21.5
'@esbuild/linux-arm': 0.21.5
'@esbuild/linux-arm64': 0.21.5
'@esbuild/linux-ia32': 0.21.5
'@esbuild/linux-loong64': 0.21.5
'@esbuild/linux-mips64el': 0.21.5
'@esbuild/linux-ppc64': 0.21.5
'@esbuild/linux-riscv64': 0.21.5
'@esbuild/linux-s390x': 0.21.5
'@esbuild/linux-x64': 0.21.5
'@esbuild/netbsd-x64': 0.21.5
'@esbuild/openbsd-x64': 0.21.5
'@esbuild/sunos-x64': 0.21.5
'@esbuild/win32-arm64': 0.21.5
'@esbuild/win32-ia32': 0.21.5
'@esbuild/win32-x64': 0.21.5
esbuild@0.24.0:
optionalDependencies:
'@esbuild/aix-ppc64': 0.24.0
'@esbuild/android-arm': 0.24.0
'@esbuild/android-arm64': 0.24.0
'@esbuild/android-x64': 0.24.0
'@esbuild/darwin-arm64': 0.24.0
'@esbuild/darwin-x64': 0.24.0
'@esbuild/freebsd-arm64': 0.24.0
'@esbuild/freebsd-x64': 0.24.0
'@esbuild/linux-arm': 0.24.0
'@esbuild/linux-arm64': 0.24.0
'@esbuild/linux-ia32': 0.24.0
'@esbuild/linux-loong64': 0.24.0
'@esbuild/linux-mips64el': 0.24.0
'@esbuild/linux-ppc64': 0.24.0
'@esbuild/linux-riscv64': 0.24.0
'@esbuild/linux-s390x': 0.24.0
'@esbuild/linux-x64': 0.24.0
'@esbuild/netbsd-x64': 0.24.0
'@esbuild/openbsd-arm64': 0.24.0
'@esbuild/openbsd-x64': 0.24.0
'@esbuild/sunos-x64': 0.24.0
'@esbuild/win32-arm64': 0.24.0
'@esbuild/win32-ia32': 0.24.0
'@esbuild/win32-x64': 0.24.0
escalade@3.2.0: {}
escape-string-regexp@4.0.0: {}
escape-string-regexp@5.0.0: {}
eslint-compat-utils@0.5.1(eslint@9.11.0(jiti@1.21.7)):
dependencies:
eslint: 9.11.0(jiti@1.21.7)
semver: 7.7.1
eslint-config-prettier@9.1.0(eslint@9.11.0(jiti@1.21.7)):
dependencies:
eslint: 9.11.0(jiti@1.21.7)
eslint-plugin-svelte@2.44.0(eslint@9.11.0(jiti@1.21.7))(svelte@4.2.20):
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.11.0(jiti@1.21.7))
'@jridgewell/sourcemap-codec': 1.5.0
eslint: 9.11.0(jiti@1.21.7)
eslint-compat-utils: 0.5.1(eslint@9.11.0(jiti@1.21.7))
esutils: 2.0.3
known-css-properties: 0.34.0
postcss: 8.5.3
postcss-load-config: 3.1.4(postcss@8.5.3)
postcss-safe-parser: 6.0.0(postcss@8.5.3)
postcss-selector-parser: 6.1.2
semver: 7.7.1
svelte-eslint-parser: 0.41.1(svelte@4.2.20)
optionalDependencies:
svelte: 4.2.20
transitivePeerDependencies:
- ts-node
eslint-scope@7.2.2:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
eslint-scope@8.2.0:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
eslint-visitor-keys@3.4.3: {}
eslint-visitor-keys@4.2.0: {}
eslint@9.11.0(jiti@1.21.7):
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.11.0(jiti@1.21.7))
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.18.0
'@eslint/eslintrc': 3.3.0
'@eslint/js': 9.11.0
'@eslint/plugin-kit': 0.2.7
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.3.1
'@nodelib/fs.walk': 1.2.8
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
debug: 4.4.0
escape-string-regexp: 4.0.0
eslint-scope: 8.2.0
eslint-visitor-keys: 4.2.0
espree: 10.3.0
esquery: 1.6.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 8.0.0
find-up: 5.0.0
glob-parent: 6.0.2
ignore: 5.3.2
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
json-stable-stringify-without-jsonify: 1.0.1
lodash.merge: 4.6.2
minimatch: 3.1.2
natural-compare: 1.4.0
optionator: 0.9.4
strip-ansi: 6.0.1
text-table: 0.2.0
optionalDependencies:
jiti: 1.21.7
transitivePeerDependencies:
- supports-color
esm-env@1.2.2: {}
espree@10.3.0:
dependencies:
acorn: 8.14.0
acorn-jsx: 5.3.2(acorn@8.14.0)
eslint-visitor-keys: 4.2.0
espree@9.6.1:
dependencies:
acorn: 8.14.0
acorn-jsx: 5.3.2(acorn@8.14.0)
eslint-visitor-keys: 3.4.3
esquery@1.6.0:
dependencies:
estraverse: 5.3.0
esrecurse@4.3.0:
dependencies:
estraverse: 5.3.0
estraverse@5.3.0: {}
estree-walker@2.0.2: {}
estree-walker@3.0.3:
dependencies:
'@types/estree': 1.0.6
esutils@2.0.3: {}
extend@3.0.2: {}
fast-deep-equal@3.1.3: {}
fast-glob@3.3.3:
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.8
fast-json-stable-stringify@2.1.0: {}
fast-levenshtein@2.0.6: {}
fastq@1.19.0:
dependencies:
reusify: 1.1.0
fdir@6.4.3(picomatch@4.0.2):
optionalDependencies:
picomatch: 4.0.2
file-entry-cache@8.0.0:
dependencies:
flat-cache: 4.0.1
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
find-up@5.0.0:
dependencies:
locate-path: 6.0.0
path-exists: 4.0.0
flat-cache@4.0.1:
dependencies:
flatted: 3.3.3
keyv: 4.5.4
flatted@3.3.3: {}
focus-trap@7.6.4:
dependencies:
tabbable: 6.2.0
foreground-child@3.3.1:
dependencies:
cross-spawn: 7.0.6
signal-exit: 4.1.0
fraction.js@4.3.7: {}
fsevents@2.3.3:
optional: true
function-bind@1.1.2: {}
fuse.js@7.1.0: {}
gensync@1.0.0-beta.2: {}
get-caller-file@2.0.5: {}
github-slugger@2.0.0: {}
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
glob-parent@6.0.2:
dependencies:
is-glob: 4.0.3
glob@10.4.5:
dependencies:
foreground-child: 3.3.1
jackspeak: 3.4.3
minimatch: 9.0.5
minipass: 7.1.2
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
globals@11.12.0: {}
globals@14.0.0: {}
globals@15.9.0: {}
globalyzer@0.1.0: {}
globrex@0.1.2: {}
graphemer@1.4.0: {}
has-flag@4.0.0: {}
hasown@2.0.2:
dependencies:
function-bind: 1.1.2
hast-util-from-html@2.0.3:
dependencies:
'@types/hast': 3.0.4
devlop: 1.1.0
hast-util-from-parse5: 8.0.3
parse5: 7.2.1
vfile: 6.0.3
vfile-message: 4.0.2
hast-util-from-parse5@8.0.3:
dependencies:
'@types/hast': 3.0.4
'@types/unist': 3.0.3
devlop: 1.1.0
hastscript: 9.0.1
property-information: 7.0.0
vfile: 6.0.3
vfile-location: 5.0.3
web-namespaces: 2.0.1
hast-util-heading-rank@3.0.0:
dependencies:
'@types/hast': 3.0.4
hast-util-is-element@3.0.0:
dependencies:
'@types/hast': 3.0.4
hast-util-parse-selector@4.0.0:
dependencies:
'@types/hast': 3.0.4
hast-util-to-html@9.0.5:
dependencies:
'@types/hast': 3.0.4
'@types/unist': 3.0.3
ccount: 2.0.1
comma-separated-tokens: 2.0.3
hast-util-whitespace: 3.0.0
html-void-elements: 3.0.0
mdast-util-to-hast: 13.2.0
property-information: 7.0.0
space-separated-tokens: 2.0.2
stringify-entities: 4.0.4
zwitch: 2.0.4
hast-util-to-string@3.0.1:
dependencies:
'@types/hast': 3.0.4
hast-util-whitespace@3.0.0:
dependencies:
'@types/hast': 3.0.4
hastscript@9.0.1:
dependencies:
'@types/hast': 3.0.4
comma-separated-tokens: 2.0.3
hast-util-parse-selector: 4.0.0
property-information: 7.0.0
space-separated-tokens: 2.0.2
html-void-elements@3.0.0: {}
ignore@5.3.2: {}
immediate@3.0.6: {}
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
import-meta-resolve@4.1.0: {}
imurmurhash@0.1.4: {}
inherits@2.0.4: {}
is-arrayish@0.2.1: {}
is-binary-path@2.1.0:
dependencies:
binary-extensions: 2.3.0
is-core-module@2.16.1:
dependencies:
hasown: 2.0.2
is-extglob@2.1.1: {}
is-fullwidth-code-point@3.0.0: {}
is-glob@4.0.3:
dependencies:
is-extglob: 2.1.1
is-module@1.0.0: {}
is-number@7.0.0: {}
is-path-inside@3.0.3: {}
is-plain-obj@4.1.0: {}
is-reference@1.2.1:
dependencies:
'@types/estree': 1.0.6
is-reference@3.0.3:
dependencies:
'@types/estree': 1.0.6
isarray@1.0.0: {}
isexe@2.0.0: {}
jackspeak@3.4.3:
dependencies:
'@isaacs/cliui': 8.0.2
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
jiti@1.21.7: {}
js-tokens@4.0.0: {}
js-yaml@4.1.0:
dependencies:
argparse: 2.0.1
jsesc@3.1.0: {}
json-buffer@3.0.1: {}
json-parse-even-better-errors@2.3.1: {}
json-schema-traverse@0.4.1: {}
json-stable-stringify-without-jsonify@1.0.1: {}
json5@2.2.3: {}
jszip@3.10.1:
dependencies:
lie: 3.3.0
pako: 1.0.11
readable-stream: 2.3.8
setimmediate: 1.0.5
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
kleur@4.1.5: {}
known-css-properties@0.34.0: {}
levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
type-check: 0.4.0
lie@3.3.0:
dependencies:
immediate: 3.0.6
lilconfig@2.1.0: {}
lilconfig@3.1.3: {}
lines-and-columns@1.2.4: {}
locate-character@3.0.0: {}
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
lodash.castarray@4.4.0: {}
lodash.isplainobject@4.0.6: {}
lodash.merge@4.6.2: {}
lodash@4.17.21: {}
longest-streak@3.1.0: {}
loupe@3.1.3: {}
lower-case@2.0.2:
dependencies:
tslib: 2.7.0
lru-cache@10.4.3: {}
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
lucide-svelte@0.525.0(svelte@4.2.20):
dependencies:
svelte: 4.2.20
magic-string@0.30.17:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
markdown-table@3.0.4: {}
mdast-util-find-and-replace@3.0.2:
dependencies:
'@types/mdast': 4.0.4
escape-string-regexp: 5.0.0
unist-util-is: 6.0.0
unist-util-visit-parents: 6.0.1
mdast-util-from-markdown@2.0.2:
dependencies:
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
decode-named-character-reference: 1.0.2
devlop: 1.1.0
mdast-util-to-string: 4.0.0
micromark: 4.0.1
micromark-util-decode-numeric-character-reference: 2.0.2
micromark-util-decode-string: 2.0.1
micromark-util-normalize-identifier: 2.0.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
unist-util-stringify-position: 4.0.0
transitivePeerDependencies:
- supports-color
mdast-util-gfm-autolink-literal@2.0.1:
dependencies:
'@types/mdast': 4.0.4
ccount: 2.0.1
devlop: 1.1.0
mdast-util-find-and-replace: 3.0.2
micromark-util-character: 2.1.1
mdast-util-gfm-footnote@2.1.0:
dependencies:
'@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
micromark-util-normalize-identifier: 2.0.1
transitivePeerDependencies:
- supports-color
mdast-util-gfm-strikethrough@2.0.0:
dependencies:
'@types/mdast': 4.0.4
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
mdast-util-gfm-table@2.0.0:
dependencies:
'@types/mdast': 4.0.4
devlop: 1.1.0
markdown-table: 3.0.4
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
mdast-util-gfm-task-list-item@2.0.0:
dependencies:
'@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
mdast-util-gfm@3.1.0:
dependencies:
mdast-util-from-markdown: 2.0.2
mdast-util-gfm-autolink-literal: 2.0.1
mdast-util-gfm-footnote: 2.1.0
mdast-util-gfm-strikethrough: 2.0.0
mdast-util-gfm-table: 2.0.0
mdast-util-gfm-task-list-item: 2.0.0
mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
mdast-util-phrasing@4.1.0:
dependencies:
'@types/mdast': 4.0.4
unist-util-is: 6.0.0
mdast-util-to-hast@13.2.0:
dependencies:
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
'@ungap/structured-clone': 1.3.0
devlop: 1.1.0
micromark-util-sanitize-uri: 2.0.1
trim-lines: 3.0.1
unist-util-position: 5.0.0
unist-util-visit: 5.0.0
vfile: 6.0.3
mdast-util-to-markdown@2.1.2:
dependencies:
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
longest-streak: 3.1.0
mdast-util-phrasing: 4.1.0
mdast-util-to-string: 4.0.0
micromark-util-classify-character: 2.0.1
micromark-util-decode-string: 2.0.1
unist-util-visit: 5.0.0
zwitch: 2.0.4
mdast-util-to-string@4.0.0:
dependencies:
'@types/mdast': 4.0.4
mdn-data@2.0.28: {}
mdn-data@2.0.30: {}
mdn-data@2.12.2: {}
mdsvex@0.12.5(svelte@4.2.20):
dependencies:
'@types/mdast': 4.0.4
'@types/unist': 2.0.11
prism-svelte: 0.4.7
prismjs: 1.29.0
svelte: 4.2.20
unist-util-visit: 2.0.3
vfile-message: 2.0.4
merge2@1.4.1: {}
micromark-core-commonmark@2.0.2:
dependencies:
decode-named-character-reference: 1.0.2
devlop: 1.1.0
micromark-factory-destination: 2.0.1
micromark-factory-label: 2.0.1
micromark-factory-space: 2.0.1
micromark-factory-title: 2.0.1
micromark-factory-whitespace: 2.0.1
micromark-util-character: 2.1.1
micromark-util-chunked: 2.0.1
micromark-util-classify-character: 2.0.1
micromark-util-html-tag-name: 2.0.1
micromark-util-normalize-identifier: 2.0.1
micromark-util-resolve-all: 2.0.1
micromark-util-subtokenize: 2.0.4
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-extension-gfm-autolink-literal@2.1.0:
dependencies:
micromark-util-character: 2.1.1
micromark-util-sanitize-uri: 2.0.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-extension-gfm-footnote@2.1.0:
dependencies:
devlop: 1.1.0
micromark-core-commonmark: 2.0.2
micromark-factory-space: 2.0.1
micromark-util-character: 2.1.1
micromark-util-normalize-identifier: 2.0.1
micromark-util-sanitize-uri: 2.0.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-extension-gfm-strikethrough@2.1.0:
dependencies:
devlop: 1.1.0
micromark-util-chunked: 2.0.1
micromark-util-classify-character: 2.0.1
micromark-util-resolve-all: 2.0.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-extension-gfm-table@2.1.1:
dependencies:
devlop: 1.1.0
micromark-factory-space: 2.0.1
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-extension-gfm-tagfilter@2.0.0:
dependencies:
micromark-util-types: 2.0.1
micromark-extension-gfm-task-list-item@2.1.0:
dependencies:
devlop: 1.1.0
micromark-factory-space: 2.0.1
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-extension-gfm@3.0.0:
dependencies:
micromark-extension-gfm-autolink-literal: 2.1.0
micromark-extension-gfm-footnote: 2.1.0
micromark-extension-gfm-strikethrough: 2.1.0
micromark-extension-gfm-table: 2.1.1
micromark-extension-gfm-tagfilter: 2.0.0
micromark-extension-gfm-task-list-item: 2.1.0
micromark-util-combine-extensions: 2.0.1
micromark-util-types: 2.0.1
micromark-factory-destination@2.0.1:
dependencies:
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-factory-label@2.0.1:
dependencies:
devlop: 1.1.0
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-factory-space@2.0.1:
dependencies:
micromark-util-character: 2.1.1
micromark-util-types: 2.0.1
micromark-factory-title@2.0.1:
dependencies:
micromark-factory-space: 2.0.1
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-factory-whitespace@2.0.1:
dependencies:
micromark-factory-space: 2.0.1
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-util-character@2.1.1:
dependencies:
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-util-chunked@2.0.1:
dependencies:
micromark-util-symbol: 2.0.1
micromark-util-classify-character@2.0.1:
dependencies:
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-util-combine-extensions@2.0.1:
dependencies:
micromark-util-chunked: 2.0.1
micromark-util-types: 2.0.1
micromark-util-decode-numeric-character-reference@2.0.2:
dependencies:
micromark-util-symbol: 2.0.1
micromark-util-decode-string@2.0.1:
dependencies:
decode-named-character-reference: 1.0.2
micromark-util-character: 2.1.1
micromark-util-decode-numeric-character-reference: 2.0.2
micromark-util-symbol: 2.0.1
micromark-util-encode@2.0.1: {}
micromark-util-html-tag-name@2.0.1: {}
micromark-util-normalize-identifier@2.0.1:
dependencies:
micromark-util-symbol: 2.0.1
micromark-util-resolve-all@2.0.1:
dependencies:
micromark-util-types: 2.0.1
micromark-util-sanitize-uri@2.0.1:
dependencies:
micromark-util-character: 2.1.1
micromark-util-encode: 2.0.1
micromark-util-symbol: 2.0.1
micromark-util-subtokenize@2.0.4:
dependencies:
devlop: 1.1.0
micromark-util-chunked: 2.0.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
micromark-util-symbol@2.0.1: {}
micromark-util-types@2.0.1: {}
micromark@4.0.1:
dependencies:
'@types/debug': 4.1.12
debug: 4.4.0
decode-named-character-reference: 1.0.2
devlop: 1.1.0
micromark-core-commonmark: 2.0.2
micromark-factory-space: 2.0.1
micromark-util-character: 2.1.1
micromark-util-chunked: 2.0.1
micromark-util-combine-extensions: 2.0.1
micromark-util-decode-numeric-character-reference: 2.0.2
micromark-util-encode: 2.0.1
micromark-util-normalize-identifier: 2.0.1
micromark-util-resolve-all: 2.0.1
micromark-util-sanitize-uri: 2.0.1
micromark-util-subtokenize: 2.0.4
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
transitivePeerDependencies:
- supports-color
micromatch@4.0.8:
dependencies:
braces: 3.0.3
picomatch: 2.3.1
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11
minimatch@9.0.5:
dependencies:
brace-expansion: 2.0.1
minipass@7.1.2: {}
mode-watcher@0.5.1(svelte@4.2.20):
dependencies:
svelte: 4.2.20
mri@1.2.0: {}
mrmime@2.0.1: {}
ms@2.1.3: {}
mz@2.7.0:
dependencies:
any-promise: 1.3.0
object-assign: 4.1.1
thenify-all: 1.6.0
nanoid@3.3.8: {}
nanoid@5.1.2: {}
natural-compare@1.4.0: {}
no-case@3.0.4:
dependencies:
lower-case: 2.0.2
tslib: 2.7.0
node-releases@2.0.19: {}
normalize-path@3.0.0: {}
normalize-range@0.1.2: {}
nth-check@2.1.1:
dependencies:
boolbase: 1.0.0
object-assign@4.1.1: {}
object-hash@3.0.0: {}
oniguruma-parser@0.12.1: {}
oniguruma-to-es@4.3.3:
dependencies:
oniguruma-parser: 0.12.1
regex: 6.0.1
regex-recursion: 6.0.2
optionator@0.9.4:
dependencies:
deep-is: 0.1.4
fast-levenshtein: 2.0.6
levn: 0.4.1
prelude-ls: 1.2.1
type-check: 0.4.0
word-wrap: 1.2.5
p-limit@3.1.0:
dependencies:
yocto-queue: 0.1.0
p-locate@5.0.0:
dependencies:
p-limit: 3.1.0
package-json-from-dist@1.0.1: {}
pako@1.0.11: {}
parent-module@1.0.1:
dependencies:
callsites: 3.1.0
parse-json@5.2.0:
dependencies:
'@babel/code-frame': 7.26.2
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
parse-numeric-range@1.3.0: {}
parse5@7.2.1:
dependencies:
entities: 4.5.0
path-exists@4.0.0: {}
path-key@3.1.1: {}
path-parse@1.0.7: {}
path-scurry@1.11.1:
dependencies:
lru-cache: 10.4.3
minipass: 7.1.2
path-type@4.0.0: {}
pathe@1.1.2: {}
pathval@2.0.0: {}
periscopic@3.1.0:
dependencies:
'@types/estree': 1.0.6
estree-walker: 3.0.3
is-reference: 3.0.3
picocolors@1.1.1: {}
picomatch@2.3.1: {}
picomatch@4.0.2: {}
pify@2.3.0: {}
pirates@4.0.6: {}
postcss-import@15.1.0(postcss@8.5.3):
dependencies:
postcss: 8.5.3
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.10
postcss-js@4.0.1(postcss@8.5.3):
dependencies:
camelcase-css: 2.0.1
postcss: 8.5.3
postcss-load-config@3.1.4(postcss@8.5.3):
dependencies:
lilconfig: 2.1.0
yaml: 1.10.2
optionalDependencies:
postcss: 8.5.3
postcss-load-config@4.0.2(postcss@8.5.3):
dependencies:
lilconfig: 3.1.3
yaml: 2.7.0
optionalDependencies:
postcss: 8.5.3
postcss-nested@6.2.0(postcss@8.5.3):
dependencies:
postcss: 8.5.3
postcss-selector-parser: 6.1.2
postcss-safe-parser@6.0.0(postcss@8.5.3):
dependencies:
postcss: 8.5.3
postcss-scss@4.0.9(postcss@8.5.3):
dependencies:
postcss: 8.5.3
postcss-selector-parser@6.0.10:
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
postcss-selector-parser@6.1.2:
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
postcss-value-parser@4.2.0: {}
postcss@8.5.3:
dependencies:
nanoid: 3.3.8
picocolors: 1.1.1
source-map-js: 1.2.1
prelude-ls@1.2.1: {}
prettier-plugin-svelte@3.2.6(prettier@3.3.3)(svelte@4.2.20):
dependencies:
prettier: 3.3.3
svelte: 4.2.20
prettier-plugin-tailwindcss@0.6.6(prettier-plugin-svelte@3.2.6(prettier@3.3.3)(svelte@4.2.20))(prettier@3.3.3):
dependencies:
prettier: 3.3.3
optionalDependencies:
prettier-plugin-svelte: 3.2.6(prettier@3.3.3)(svelte@4.2.20)
prettier@3.3.3: {}
prism-svelte@0.4.7: {}
prismjs@1.29.0: {}
process-nextick-args@2.0.1: {}
property-information@7.0.0: {}
punycode@2.3.1: {}
queue-microtask@1.2.3: {}
read-cache@1.0.0:
dependencies:
pify: 2.3.0
readable-stream@2.3.8:
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
readdirp@3.6.0:
dependencies:
picomatch: 2.3.1
readdirp@4.1.2: {}
regex-recursion@6.0.2:
dependencies:
regex-utilities: 2.3.0
regex-utilities@2.3.0: {}
regex@6.0.1:
dependencies:
regex-utilities: 2.3.0
rehype-autolink-headings@7.1.0:
dependencies:
'@types/hast': 3.0.4
'@ungap/structured-clone': 1.3.0
hast-util-heading-rank: 3.0.0
hast-util-is-element: 3.0.0
unified: 11.0.5
unist-util-visit: 5.0.0
rehype-parse@9.0.1:
dependencies:
'@types/hast': 3.0.4
hast-util-from-html: 2.0.3
unified: 11.0.5
rehype-pretty-code@0.12.6(shikiji@0.10.2):
dependencies:
'@types/hast': 3.0.4
hast-util-to-string: 3.0.1
parse-numeric-range: 1.3.0
rehype-parse: 9.0.1
shikiji: 0.10.2
unified: 11.0.5
unist-util-visit: 5.0.0
rehype-slug@6.0.0:
dependencies:
'@types/hast': 3.0.4
github-slugger: 2.0.0
hast-util-heading-rank: 3.0.0
hast-util-to-string: 3.0.1
unist-util-visit: 5.0.0
rehype-stringify@10.0.1:
dependencies:
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
unified: 11.0.5
remark-gfm@4.0.1:
dependencies:
'@types/mdast': 4.0.4
mdast-util-gfm: 3.1.0
micromark-extension-gfm: 3.0.0
remark-parse: 11.0.0
remark-stringify: 11.0.0
unified: 11.0.5
transitivePeerDependencies:
- supports-color
remark-parse@11.0.0:
dependencies:
'@types/mdast': 4.0.4
mdast-util-from-markdown: 2.0.2
micromark-util-types: 2.0.1
unified: 11.0.5
transitivePeerDependencies:
- supports-color
remark-rehype@11.1.1:
dependencies:
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
mdast-util-to-hast: 13.2.0
unified: 11.0.5
vfile: 6.0.3
remark-stringify@11.0.0:
dependencies:
'@types/mdast': 4.0.4
mdast-util-to-markdown: 2.1.2
unified: 11.0.5
require-directory@2.1.1: {}
resolve-from@4.0.0: {}
resolve@1.22.10:
dependencies:
is-core-module: 2.16.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
reusify@1.1.0: {}
rollup@4.34.8:
dependencies:
'@types/estree': 1.0.6
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.34.8
'@rollup/rollup-android-arm64': 4.34.8
'@rollup/rollup-darwin-arm64': 4.34.8
'@rollup/rollup-darwin-x64': 4.34.8
'@rollup/rollup-freebsd-arm64': 4.34.8
'@rollup/rollup-freebsd-x64': 4.34.8
'@rollup/rollup-linux-arm-gnueabihf': 4.34.8
'@rollup/rollup-linux-arm-musleabihf': 4.34.8
'@rollup/rollup-linux-arm64-gnu': 4.34.8
'@rollup/rollup-linux-arm64-musl': 4.34.8
'@rollup/rollup-linux-loongarch64-gnu': 4.34.8
'@rollup/rollup-linux-powerpc64le-gnu': 4.34.8
'@rollup/rollup-linux-riscv64-gnu': 4.34.8
'@rollup/rollup-linux-s390x-gnu': 4.34.8
'@rollup/rollup-linux-x64-gnu': 4.34.8
'@rollup/rollup-linux-x64-musl': 4.34.8
'@rollup/rollup-win32-arm64-msvc': 4.34.8
'@rollup/rollup-win32-ia32-msvc': 4.34.8
'@rollup/rollup-win32-x64-msvc': 4.34.8
fsevents: 2.3.3
run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3
rxjs@7.8.2:
dependencies:
tslib: 2.7.0
sade@1.8.1:
dependencies:
mri: 1.2.0
safe-buffer@5.1.2: {}
sax@1.4.1: {}
semver@6.3.1: {}
semver@7.7.1: {}
set-cookie-parser@2.7.1: {}
setimmediate@1.0.5: {}
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
shebang-regex@3.0.0: {}
shell-quote@1.8.2: {}
shiki@3.7.0:
dependencies:
'@shikijs/core': 3.7.0
'@shikijs/engine-javascript': 3.7.0
'@shikijs/engine-oniguruma': 3.7.0
'@shikijs/langs': 3.7.0
'@shikijs/themes': 3.7.0
'@shikijs/types': 3.7.0
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
shikiji-core@0.10.2: {}
shikiji@0.10.2:
dependencies:
shikiji-core: 0.10.2
siginfo@2.0.0: {}
signal-exit@4.1.0: {}
sirv@2.0.4:
dependencies:
'@polka/url': 1.0.0-next.28
mrmime: 2.0.1
totalist: 3.0.1
snake-case@3.0.4:
dependencies:
dot-case: 3.0.4
tslib: 2.7.0
source-map-js@1.2.1: {}
space-separated-tokens@2.0.2: {}
stackback@0.0.2: {}
std-env@3.8.0: {}
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
string-width@5.1.2:
dependencies:
eastasianwidth: 0.2.0
emoji-regex: 9.2.2
strip-ansi: 7.1.0
string_decoder@1.1.1:
dependencies:
safe-buffer: 5.1.2
stringify-entities@4.0.4:
dependencies:
character-entities-html4: 2.1.0
character-entities-legacy: 3.0.0
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
strip-ansi@7.1.0:
dependencies:
ansi-regex: 6.1.0
strip-json-comments@3.1.1: {}
sucrase@3.35.0:
dependencies:
'@jridgewell/gen-mapping': 0.3.8
commander: 4.1.1
glob: 10.4.5
lines-and-columns: 1.2.4
mz: 2.7.0
pirates: 4.0.6
ts-interface-checker: 0.1.13
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
supports-color@8.1.1:
dependencies:
has-flag: 4.0.0
supports-preserve-symlinks-flag@1.0.0: {}
svelte-check@4.0.9(picomatch@4.0.2)(svelte@4.2.20)(typescript@5.6.2):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
chokidar: 4.0.3
fdir: 6.4.3(picomatch@4.0.2)
picocolors: 1.1.1
sade: 1.8.1
svelte: 4.2.20
typescript: 5.6.2
transitivePeerDependencies:
- picomatch
svelte-eslint-parser@0.41.1(svelte@4.2.20):
dependencies:
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
postcss: 8.5.3
postcss-scss: 4.0.9(postcss@8.5.3)
optionalDependencies:
svelte: 4.2.20
svelte-hmr@0.16.0(svelte@4.2.20):
dependencies:
svelte: 4.2.20
svelte-sonner@0.3.28(svelte@4.2.20):
dependencies:
svelte: 4.2.20
svelte@4.2.20:
dependencies:
'@ampproject/remapping': 2.3.0
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
'@types/estree': 1.0.6
acorn: 8.14.0
aria-query: 5.3.2
axobject-query: 4.1.0
code-red: 1.0.4
css-tree: 2.3.1
estree-walker: 3.0.3
is-reference: 3.0.3
locate-character: 3.0.0
magic-string: 0.30.17
periscopic: 3.1.0
sveltekit-search-params@3.0.0(@sveltejs/kit@2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)):
dependencies:
'@sveltejs/kit': 2.5.28(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5)))(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
'@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.20)(vite@5.4.7(@types/node@22.5.5))
svelte: 4.2.20
transitivePeerDependencies:
- supports-color
- vite
svg-parser@2.0.4: {}
svgo@4.0.0:
dependencies:
commander: 11.1.0
css-select: 5.2.2
css-tree: 3.1.0
css-what: 6.2.2
csso: 5.0.5
picocolors: 1.1.1
sax: 1.4.1
tabbable@6.2.0: {}
tailwind-merge@2.5.4: {}
tailwind-merge@2.6.0: {}
tailwind-variants@0.3.1(tailwindcss@3.4.17):
dependencies:
tailwind-merge: 2.5.4
tailwindcss: 3.4.17
tailwindcss@3.4.17:
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
chokidar: 3.6.0
didyoumean: 1.2.2
dlv: 1.1.3
fast-glob: 3.3.3
glob-parent: 6.0.2
is-glob: 4.0.3
jiti: 1.21.7
lilconfig: 3.1.3
micromatch: 4.0.8
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.1.1
postcss: 8.5.3
postcss-import: 15.1.0(postcss@8.5.3)
postcss-js: 4.0.1(postcss@8.5.3)
postcss-load-config: 4.0.2(postcss@8.5.3)
postcss-nested: 6.2.0(postcss@8.5.3)
postcss-selector-parser: 6.1.2
resolve: 1.22.10
sucrase: 3.35.0
transitivePeerDependencies:
- ts-node
text-table@0.2.0: {}
thenify-all@1.6.0:
dependencies:
thenify: 3.3.1
thenify@3.3.1:
dependencies:
any-promise: 1.3.0
tiny-glob@0.2.9:
dependencies:
globalyzer: 0.1.0
globrex: 0.1.2
tinybench@2.9.0: {}
tinyexec@0.3.2: {}
tinypool@1.0.2: {}
tinyrainbow@1.2.0: {}
tinyspy@3.0.2: {}
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
totalist@3.0.1: {}
tree-kill@1.2.2: {}
trim-lines@3.0.1: {}
trough@2.2.0: {}
ts-api-utils@1.4.3(typescript@5.6.2):
dependencies:
typescript: 5.6.2
ts-interface-checker@0.1.13: {}
tslib@2.7.0: {}
tslib@2.8.1: {}
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
typescript-eslint@8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2):
dependencies:
'@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)
'@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)
'@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.7))(typescript@5.6.2)
optionalDependencies:
typescript: 5.6.2
transitivePeerDependencies:
- eslint
- supports-color
typescript@5.6.2: {}
uncrypto@0.1.3: {}
undici-types@6.19.8: {}
unified@11.0.5:
dependencies:
'@types/unist': 3.0.3
bail: 2.0.2
devlop: 1.1.0
extend: 3.0.2
is-plain-obj: 4.1.0
trough: 2.2.0
vfile: 6.0.3
unist-util-is@4.1.0: {}
unist-util-is@6.0.0:
dependencies:
'@types/unist': 3.0.3
unist-util-position@5.0.0:
dependencies:
'@types/unist': 3.0.3
unist-util-stringify-position@2.0.3:
dependencies:
'@types/unist': 2.0.11
unist-util-stringify-position@4.0.0:
dependencies:
'@types/unist': 3.0.3
unist-util-visit-parents@3.1.1:
dependencies:
'@types/unist': 2.0.11
unist-util-is: 4.1.0
unist-util-visit-parents@6.0.1:
dependencies:
'@types/unist': 3.0.3
unist-util-is: 6.0.0
unist-util-visit@2.0.3:
dependencies:
'@types/unist': 2.0.11
unist-util-is: 4.1.0
unist-util-visit-parents: 3.1.1
unist-util-visit@5.0.0:
dependencies:
'@types/unist': 3.0.3
unist-util-is: 6.0.0
unist-util-visit-parents: 6.0.1
update-browserslist-db@1.1.2(browserslist@4.24.4):
dependencies:
browserslist: 4.24.4
escalade: 3.2.0
picocolors: 1.1.1
uri-js@4.4.1:
dependencies:
punycode: 2.3.1
util-deprecate@1.0.2: {}
vfile-location@5.0.3:
dependencies:
'@types/unist': 3.0.3
vfile: 6.0.3
vfile-message@2.0.4:
dependencies:
'@types/unist': 2.0.11
unist-util-stringify-position: 2.0.3
vfile-message@4.0.2:
dependencies:
'@types/unist': 3.0.3
unist-util-stringify-position: 4.0.0
vfile@6.0.3:
dependencies:
'@types/unist': 3.0.3
vfile-message: 4.0.2
vite-node@2.1.1(@types/node@22.5.5):
dependencies:
cac: 6.7.14
debug: 4.4.0
pathe: 1.1.2
vite: 5.4.7(@types/node@22.5.5)
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
dev: true
/vscode-oniguruma@1.7.0:
resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
dev: false
vite@5.4.7(@types/node@22.5.5):
dependencies:
esbuild: 0.21.5
postcss: 8.5.3
rollup: 4.34.8
optionalDependencies:
'@types/node': 22.5.5
fsevents: 2.3.3
/vscode-textmate@8.0.0:
resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==}
dev: false
vitefu@0.2.5(vite@5.4.7(@types/node@22.5.5)):
optionalDependencies:
vite: 5.4.7(@types/node@22.5.5)
/which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
vitest@2.1.1(@types/node@22.5.5):
dependencies:
'@vitest/expect': 2.1.1
'@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.7(@types/node@22.5.5))
'@vitest/pretty-format': 2.1.9
'@vitest/runner': 2.1.1
'@vitest/snapshot': 2.1.1
'@vitest/spy': 2.1.1
'@vitest/utils': 2.1.1
chai: 5.2.0
debug: 4.4.0
magic-string: 0.30.17
pathe: 1.1.2
std-env: 3.8.0
tinybench: 2.9.0
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 1.2.0
vite: 5.4.7(@types/node@22.5.5)
vite-node: 2.1.1(@types/node@22.5.5)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.5.5
transitivePeerDependencies:
- less
- lightningcss
- msw
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
web-namespaces@2.0.1: {}
which@2.0.2:
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
why-is-node-running@2.3.0:
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'}
word-wrap@1.2.5: {}
wrap-ansi@7.0.0:
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
wrap-ansi@8.1.0:
dependencies:
ansi-styles: 6.2.1
string-width: 5.1.2
strip-ansi: 7.1.0
/y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
dev: true
y18n@5.0.8: {}
/yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
dev: true
yallist@3.1.1: {}
/yaml@1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
dev: true
yaml@1.10.2: {}
/yaml@2.3.4:
resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
engines: {node: '>= 14'}
dev: true
yaml@2.7.0: {}
/yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
dev: true
yargs-parser@21.1.1: {}
/yargs@17.7.2:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
yargs@17.7.2:
dependencies:
cliui: 8.0.1
escalade: 3.1.1
escalade: 3.2.0
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@0.1.0: {}
/yocto-queue@1.0.0:
resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
engines: {node: '>=12.20'}
dev: true
zwitch@2.0.4: {}
-6
View File
@@ -1,6 +0,0 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
+6
View File
@@ -0,0 +1,6 @@
export default {
plugins: {
tailwindcss: {},
autoprefixer: {}
}
};
-4
View File
@@ -1,4 +0,0 @@
/** @type {import("prettier").Config} */
module.exports = {
plugins: [require.resolve('prettier-plugin-tailwindcss')]
};
+12
View File
@@ -0,0 +1,12 @@
/** @type {import("prettier").Config} */
const config = {
useTabs: false,
singleQuote: true,
trailingComma: 'none',
printWidth: 100,
plugins: ['prettier-plugin-svelte', 'prettier-plugin-tailwindcss'],
pluginSearchDirs: ['.'],
overrides: [{ files: '*.svelte', options: { parser: 'svelte' } }]
};
export default config;
+5 -11
View File
@@ -9,27 +9,21 @@
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="%sveltekit.assets%/images/logo.svg" />
<link rel="icon" type="image/ico" href="%sveltekit.assets%/images/logo_ico.ico" />
<!-- OG -->
<meta property="og:type" content="website" />
<meta property="og:title" content="svgl" />
<meta property="og:description" content="A beautiful library with SVG logos" />
<meta property="og:url" content="https://svgl.vercel.app/" />
<meta property="og:image" content="https://svgl.vercel.app/images/screenshot.png" />
<meta property="og:url" content="https://svgl.app" />
<meta property="og:image" content="https://svgl.app/images/screenshot.png" />
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Svgl" />
<meta name="twitter:description" content="A beautiful library with SVG logos" />
<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>
<meta name="twitter:image" content="https://svgl.app/images/screenshot.png" />
<!-- Title -->
<title>A beautiful library with SVG logos - Svgl</title>
@@ -37,7 +31,7 @@
</head>
<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"
class="min-h-screen scroll-smooth overscroll-none bg-white font-sans text-mini antialiased [text-rendering:optimizeLegibility;] selection:bg-neutral-200 dark:bg-dark dark:text-white dark:selection:bg-neutral-700"
>
<div>%sveltekit.body%</div>
</body>
-55
View File
@@ -1,55 +0,0 @@
<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>
+1 -1
View File
@@ -1,3 +1,3 @@
<div class="container mx-auto px-6 pt-4 xl:px-4">
<div class="container mx-auto px-6 pt-4 xl:px-[18px]">
<slot />
</div>
+514
View File
@@ -0,0 +1,514 @@
<script lang="ts">
import type { iSVG } from '@/types/svg';
import { ClipboardIcon, CopyIcon, Loader, X } from 'lucide-svelte';
import { toast } from 'svelte-sonner';
import * as Popover from '@/ui/popover';
import * as Tabs from '@/ui/tabs';
import { buttonStyles } from '@/ui/styles';
// Utils:
import { cn } from '@/utils/cn';
import { clipboard } from '@/utils/clipboard';
import { copyToClipboard as figmaCopyToClipboard } from '@/figma/copy-to-clipboard';
import { getPrefixFromSvgUrl, prefixSvgIds } from '@/utils/prefixSvgIds';
// Templates:
import { getSource } from '@/templates/getSource';
import { getReactCode } from '@/templates/getReactCode';
import { getVueCode } from '@/templates/getVueCode';
import { getSvelteCode } from '@/templates/getSvelteCode';
import { getAngularCode } from '@/templates/getAngularCode';
import { getWebComponent } from '@/templates/getWebComponent';
import { getAstroCode } from '@/templates/getAstroCode';
//Icons:
import ReactIcon from '@/components/icons/reactIcon.svelte';
import VueIcon from '@/components/icons/vueIcon.svelte';
import SvelteIcon from '@/components/icons/svelteIcon.svelte';
import AngularIcon from '@/components/icons/angularIcon.svelte';
import WebComponentIcon from '@/components/icons/webComponentIcon.svelte';
import AstroIcon from '@/components/icons/astroIcon.svelte';
// Props:
export let iconSize = 24;
export let iconStroke = 2;
export let isInFigma = false;
export let isWordmarkSvg = false;
export let svgInfo: iSVG;
// Variables:
let optionsOpen = false;
let isLoading = false;
const getSvgUrl = () => {
let svgUrlToCopy;
const dark = document.documentElement.classList.contains('dark');
if (isWordmarkSvg) {
const svgHasTheme = typeof svgInfo.wordmark !== 'string';
if (!svgHasTheme) {
svgUrlToCopy =
typeof svgInfo.wordmark === 'string'
? svgInfo.wordmark
: "Something went wrong. Couldn't copy the SVG.";
}
svgUrlToCopy =
typeof svgInfo.wordmark !== 'string'
? dark
? svgInfo.wordmark?.dark
: svgInfo.wordmark?.light
: svgInfo.wordmark;
} else {
const svgHasTheme = typeof svgInfo.route !== 'string';
if (!svgHasTheme) {
svgUrlToCopy =
typeof svgInfo.route === 'string'
? svgInfo.route
: "Something went wrong. Couldn't copy the SVG.";
}
svgUrlToCopy =
typeof svgInfo.route !== 'string'
? dark
? svgInfo.route.dark
: svgInfo.route.light
: svgInfo.route;
}
return svgUrlToCopy;
};
// Copy SVG to clipboard:
const copyToClipboard = async () => {
const svgUrlToCopy = getSvgUrl();
optionsOpen = false;
let content = await getSource({
url: svgUrlToCopy
});
if (svgUrlToCopy) {
content = prefixSvgIds(content, getPrefixFromSvgUrl(svgUrlToCopy));
}
if (isInFigma) {
figmaCopyToClipboard(content);
}
await clipboard(content);
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 (isWordmarkSvg) {
toast.success('Copied wordmark SVG to clipboard', {
description: `${svgInfo.title} - ${category}`
});
return;
}
toast.success('Copied to clipboard', {
description: `${svgInfo.title} - ${category}`
});
};
// Convert SVG as React component:
const convertSvgReactComponent = async (tsx: boolean) => {
const svgUrlToCopy = getSvgUrl();
optionsOpen = false;
isLoading = true;
const title = svgInfo.title.split(' ').join('');
let content = await getSource({
url: svgUrlToCopy
});
if (svgUrlToCopy) {
content = prefixSvgIds(content, getPrefixFromSvgUrl(svgUrlToCopy));
}
const dataComponent = { code: content, typescript: tsx, name: title };
const { data, error } = await getReactCode(dataComponent);
if (error || !data) {
toast.error('Failed to fetch React component', {
description: `${error ?? ''}`,
duration: 5000
});
isLoading = false;
return;
}
await clipboard(data);
toast.success(`Copied as React ${tsx ? 'TSX' : 'JSX'} component`, {
description: `${svgInfo.title} - ${svgInfo.category}`
});
isLoading = false;
};
// Copy SVG as Vue Component:
const convertSvgVueComponent = async (ts: boolean) => {
try {
const svgUrlToCopy = getSvgUrl();
optionsOpen = false;
let content = await getSource({
url: svgUrlToCopy
});
if (svgUrlToCopy) {
content = prefixSvgIds(content, getPrefixFromSvgUrl(svgUrlToCopy));
}
const copyCode = getVueCode({
content: content,
lang: ts ? 'ts' : 'js'
});
if (copyCode) {
await clipboard(copyCode);
}
const category = Array.isArray(svgInfo?.category)
? svgInfo.category.sort().join(' - ')
: svgInfo.category;
toast.success(`Copied as Vue ${ts ? 'TS' : 'JS'} component`, {
description: `${svgInfo?.title} - ${category}`
});
} catch (err) {
console.error(`Error copying Vue component:`, err);
toast.error(`Failed to copy Vue component`);
}
};
// Copy SVG as Svelte Component:
const convertSvgSvelteComponent = async (ts: boolean) => {
try {
const svgUrlToCopy = getSvgUrl();
optionsOpen = false;
let content = await getSource({
url: svgUrlToCopy
});
if (svgUrlToCopy) {
content = prefixSvgIds(content, getPrefixFromSvgUrl(svgUrlToCopy));
}
const copyCode = getSvelteCode({
content: content,
lang: ts ? 'ts' : 'js'
});
if (copyCode) {
await clipboard(copyCode);
}
const category = Array.isArray(svgInfo?.category)
? svgInfo.category.sort().join(' - ')
: svgInfo.category;
toast.success(`Copied as Svelte ${ts ? 'TS' : 'JS'} component`, {
description: `${svgInfo?.title} - ${category}`
});
} catch (err) {
console.error(`Error copying Svelte component:`, err);
toast.error(`Failed to copy Svelte component`);
}
};
// Copy SVG as Standalone Angular component:
const convertSvgAngularComponent = async () => {
isLoading = true;
optionsOpen = false;
const title = svgInfo.title.split(' ').join('');
const svgUrlToCopy = getSvgUrl();
let content = await getSource({
url: svgUrlToCopy
});
if (svgUrlToCopy) {
content = prefixSvgIds(content, getPrefixFromSvgUrl(svgUrlToCopy));
}
if (!content) {
toast.error('Failed to fetch the SVG content', {
duration: 5000
});
isLoading = false;
return;
}
const angularComponent = getAngularCode({
componentName: title,
svgContent: content
});
await clipboard(angularComponent);
toast.success(`Copied as Standalone Angular component`, {
description: `${svgInfo.title} - ${svgInfo.category}`
});
isLoading = false;
};
// Copy SVG as Web Component:
const convertSvgWebComponent = async () => {
isLoading = true;
optionsOpen = false;
const title = svgInfo.title.split(' ').join('');
const svgUrlToCopy = getSvgUrl();
let content = await getSource({
url: svgUrlToCopy
});
if (svgUrlToCopy) {
content = prefixSvgIds(content, getPrefixFromSvgUrl(svgUrlToCopy));
}
if (!content) {
toast.error('Failed to fetch the SVG content', {
duration: 5000
});
isLoading = false;
return;
}
const webComponentCode = getWebComponent({
name: title,
content: content
});
await clipboard(webComponentCode);
toast.success(`Copied as Web Component`, {
description: `${svgInfo.title} - ${svgInfo.category}`
});
isLoading = false;
};
// Copy SVG as Astro component:
const convertSvgAstroComponent = async () => {
isLoading = true;
optionsOpen = false;
const svgUrlToCopy = getSvgUrl();
let content = await getSource({
url: svgUrlToCopy
});
if (svgUrlToCopy) {
content = prefixSvgIds(content, getPrefixFromSvgUrl(svgUrlToCopy));
}
if (!content) {
toast.error('Failed to fetch the SVG content', {
duration: 5000
});
isLoading = false;
return;
}
const astroComponentCode = getAstroCode({
svgContent: content
});
await clipboard(astroComponentCode);
toast.success(`Copied as Astro Component`, {
description: `${svgInfo.title} - ${svgInfo.category}`
});
isLoading = false;
};
</script>
<Popover.Root open={optionsOpen} onOpenChange={(isOpen) => (optionsOpen = isOpen)}>
<Popover.Trigger
title="Copy SVG element as svg file, React TSX code, or React JSX code"
class="flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40"
>
{#if optionsOpen}
<X size={iconSize} strokeWidth={iconStroke} />
{:else if isLoading}
<Loader size={iconSize} strokeWidth={iconStroke} class="animate-spin" />
{:else}
<CopyIcon size={iconSize} strokeWidth={iconStroke} />
{/if}
</Popover.Trigger>
<Popover.Content class="flex flex-col space-y-2 p-4" sideOffset={2}>
<Tabs.Root value="source" class="flex w-full flex-col space-y-1">
<Tabs.List>
<Tabs.Trigger value="source">Source</Tabs.Trigger>
<div
class="ml-3 flex flex-row space-x-0.5 border-l border-dashed border-neutral-200 pl-3 dark:border-neutral-800"
>
<Tabs.Trigger value="web-component" title="Web Component">
<WebComponentIcon iconSize={21} />
</Tabs.Trigger>
<Tabs.Trigger value="react" title="React">
<ReactIcon iconSize={20} />
</Tabs.Trigger>
<Tabs.Trigger value="vue" title="Vue">
<VueIcon iconSize={20} />
</Tabs.Trigger>
<Tabs.Trigger value="svelte" title="Svelte">
<SvelteIcon iconSize={20} />
</Tabs.Trigger>
<Tabs.Trigger value="angular" title="Angular">
<AngularIcon iconSize={20} />
</Tabs.Trigger>
<Tabs.Trigger value="astro" title="Astro" class="text-black dark:text-white">
<AstroIcon iconSize={21} />
</Tabs.Trigger>
</div>
</Tabs.List>
<Tabs.Content value="source">
<section class="flex flex-col space-y-2">
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title={isWordmarkSvg ? 'Copy wordmark SVG to clipboard' : 'Copy SVG to clipboard'}
on:click={() => copyToClipboard()}
>
<ClipboardIcon size={16} strokeWidth={2} />
<span>Copy SVG</span>
</button>
</section>
</Tabs.Content>
<Tabs.Content value="react">
<section class="flex flex-col space-y-2">
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title="Copy as React component"
disabled={isLoading}
on:click={() => convertSvgReactComponent(true)}
>
<ReactIcon iconSize={18} />
<span>Copy TSX</span>
</button>
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title="Copy as React component"
disabled={isLoading}
on:click={() => convertSvgReactComponent(false)}
>
<ReactIcon iconSize={18} />
<span>Copy JSX</span>
</button>
</section>
</Tabs.Content>
<Tabs.Content value="svelte">
<section class="flex flex-col space-y-2">
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title="Copy as Svelte component"
disabled={isLoading}
on:click={() => convertSvgSvelteComponent(false)}
>
<SvelteIcon iconSize={18} />
<span>Copy JS</span>
</button>
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title="Copy as Svelte component"
disabled={isLoading}
on:click={() => convertSvgSvelteComponent(true)}
>
<SvelteIcon iconSize={18} />
<span>Copy TS</span>
</button>
</section>
</Tabs.Content>
<Tabs.Content value="vue">
<section class="flex flex-col space-y-2">
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title="Copy as Vue component"
disabled={isLoading}
on:click={() => convertSvgVueComponent(false)}
>
<VueIcon iconSize={18} />
<span>Copy JS</span>
</button>
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title="Copy as Vue component"
disabled={isLoading}
on:click={() => convertSvgVueComponent(true)}
>
<VueIcon iconSize={18} />
<span>Copy TS</span>
</button>
</section>
</Tabs.Content>
<Tabs.Content value="angular">
<section class="flex flex-col space-y-2">
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title="Copy as Standalone Component"
disabled={isLoading}
on:click={() => convertSvgAngularComponent()}
>
<AngularIcon iconSize={18} />
<span>Copy Standalone Component</span>
</button>
</section>
</Tabs.Content>
<Tabs.Content value="web-component">
<section class="flex flex-col space-y-2">
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title="Copy as Web Component"
disabled={isLoading}
on:click={() => convertSvgWebComponent()}
>
<WebComponentIcon iconSize={18} />
<span>Copy Web Component</span>
</button>
</section>
</Tabs.Content>
<Tabs.Content value="astro">
<section class="flex flex-col space-y-2">
<button
class={cn(buttonStyles, 'w-full rounded-md')}
title="Copy as Astro Component"
disabled={isLoading}
on:click={() => convertSvgAstroComponent()}
>
<AstroIcon iconSize={18} />
<span>Copy Astro Component</span>
</button>
</section>
</Tabs.Content>
</Tabs.Root>
<div
class="mt-1 flex w-full items-center text-center text-[12px] text-neutral-600 dark:text-neutral-400"
>
<p>
Remember to request permission from the creators for the use of the SVG. Modification is not
allowed.
</p>
</div>
</Popover.Content>
</Popover.Root>
+113 -63
View File
@@ -4,17 +4,20 @@
import download from 'downloadjs';
import { toast } from 'svelte-sonner';
import { DownloadIcon } from 'lucide-svelte';
import { getSvgContent } from '@/utils/getSvgContent';
import { getSource } from '@/templates/getSource';
import {
Dialog,
DialogTrigger,
DialogContent,
DialogHeader,
DialogTitle,
DialogDescription
DialogDescription,
DialogFooter
} from '@/ui/dialog';
import { buttonStyles } from '@/ui/styles';
import { cn } from '@/utils/cn';
import { getPrefixFromSvgUrl, prefixSvgIds } from '@/utils/prefixSvgIds';
// Props:
export let svgInfo: iSVG;
@@ -26,11 +29,17 @@
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';
'flex w-full h-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 downloadSvg = async (url?: string) => {
let content = await getSource({
url: url
});
if (url) {
content = prefixSvgIds(content, getPrefixFromSvgUrl(url));
}
download(content || '', url?.split('/').pop() || '', 'image/svg+xml');
const category = Array.isArray(svgInfo.category)
? svgInfo.category.sort().join(' - ')
@@ -53,8 +62,21 @@
}) => {
const zip = new JSZip();
const lightSvg = await getSvgContent(lightRoute, false);
const darkSvg = await getSvgContent(darkRoute, false);
let lightSvg = await getSource({
url: lightRoute
});
let darkSvg = await getSource({
url: darkRoute
});
lightSvg = prefixSvgIds(
lightSvg,
svgInfo.title.toLowerCase() + (isWordmark ? '_wordmark_light' : '_light')
);
darkSvg = prefixSvgIds(
darkSvg,
svgInfo.title.toLowerCase() + (isWordmark ? '_wordmark_dark' : '_dark')
);
if (isWordmark) {
zip.file(`${svgInfo.title}_wordmark_light.svg`, lightSvg);
@@ -84,7 +106,7 @@
};
</script>
{#if typeof svgInfo.route === 'string'}
{#if typeof svgInfo.route === 'string' && svgInfo.wordmark === undefined}
<button
title="Download Light & Dark variants"
class={mainDownloadStyles}
@@ -104,73 +126,95 @@
</DialogTrigger>
<DialogContent class="max-w-[630px]">
<DialogHeader>
<DialogTitle>Download {svgInfo.title}</DialogTitle>
<DialogDescription>This logo has multiple options to download.</DialogDescription>
<DialogTitle>Download {svgInfo.title} SVG</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'
'flex h-full flex-col space-y-2 pb-0.5 pt-4',
'md:flex-row md:items-center md:justify-center md:space-x-2 md:space-y-0'
)}
>
<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>
{#if typeof svgInfo.route === 'string'}
<div class={cardDownloadStyles}>
<img
src={isDarkTheme() ? svgInfo.route : svgInfo.route}
alt={svgInfo.title}
class="my-4 h-8"
/>
<button
title="Download logo"
class={buttonStyles}
on:click={() => {
if (typeof svgInfo.route === 'string') {
downloadSvg(svgInfo.route);
return;
}
}}
>
<DownloadIcon class="mr-2" size={iconSize} />
<p>Icon logo</p>
</button>
</div>
{:else}
<div class={cardDownloadStyles}>
<img
src={isDarkTheme() ? svgInfo.route.dark : svgInfo.route.light}
alt={svgInfo.title}
class="my-4 h-10"
/>
<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 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>
<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}
{#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"
class="my-4 h-8"
/>
<button
title="Download Wordmark logo"
@@ -193,7 +237,7 @@
<img
src={isDarkTheme() ? svgInfo.wordmark.dark : svgInfo.wordmark.light}
alt={svgInfo.title}
class="h-10 my-4"
class="my-4 h-10"
/>
<button
title="Download Wordmark light variant"
@@ -243,6 +287,12 @@
</div>
{/if}
</div>
<DialogFooter class="mt-3 text-xs text-neutral-600 dark:text-neutral-400">
<p>
Remember to request permission from the creators for the use of the SVG. Modification is
not allowed.
</p>
</DialogFooter>
</DialogContent>
</Dialog>
{/if}
+1 -1
View File
@@ -1,5 +1,5 @@
<div
class="mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2 md:grid-cols-2 lg:grid-cols-4 xl:grid-cols-6"
class="mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2 md:grid-cols-2 lg:grid-cols-4 xl:grid-cols-5"
>
<slot />
</div>
+54
View File
@@ -0,0 +1,54 @@
<script lang="ts">
import { toast } from 'svelte-sonner';
import * as ContextMenu from '@/ui/context-menu';
import { ArrowUpRightIcon, CopyIcon, StarsIcon } from 'lucide-svelte';
import Logo from './icons/logo.svelte';
import { clipboard } from '@/utils/clipboard';
import GithubIcon from './icons/githubIcon.svelte';
import { getSource } from '@/templates/getSource';
const logoUrl = '/library/svgl.svg';
const copyToClipboard = async () => {
const content = await getSource({
url: logoUrl
});
await clipboard(content);
toast.success('Copied to clipboard', {
description: `Svgl - Library`
});
};
const openUrl = (url: string) => {
window.open(url, '_blank');
};
</script>
<ContextMenu.Root>
<ContextMenu.Trigger 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-100 transition-opacity hover:opacity-80">
<svelte:component this={Logo} />
<span class="hidden text-xl font-medium tracking-tight md:block">svgl</span>
</div>
</a>
</ContextMenu.Trigger>
<ContextMenu.Content>
<ContextMenu.Item on:click={() => copyToClipboard()}>
<CopyIcon size={16} strokeWidth={1.5} />
<span>Copy as SVG</span>
</ContextMenu.Item>
<ContextMenu.Item on:click={() => openUrl('https://github.com/pheralb/svgl')}>
<GithubIcon iconSize={16} />
<span>Repository</span>
<ArrowUpRightIcon class="text-neutral-400 dark:text-neutral-500" size={14} strokeWidth={2} />
</ContextMenu.Item>
<ContextMenu.Item disabled class="font-mono">
<StarsIcon size={16} strokeWidth={1.5} />
<span>v4.6.1</span>
</ContextMenu.Item>
</ContextMenu.Content>
</ContextMenu.Root>
+48
View File
@@ -0,0 +1,48 @@
<script lang="ts">
import type { IconProps } from '@/types/icon';
export let iconSize: IconProps['size'];
</script>
<svg
xmlns="http://www.w3.org/2000/svg"
width={iconSize || 16}
height={iconSize || 16}
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
>
+20
View File
@@ -0,0 +1,20 @@
<script lang="ts">
import type { IconProps } from '@/types/icon';
export let iconSize: IconProps['size'];
</script>
<svg
viewBox="0 0 256 366"
xmlns="http://www.w3.org/2000/svg"
width={iconSize || 16}
height={iconSize || 16}
preserveAspectRatio="xMidYMid"
><path
fill="currentColor"
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
>
@@ -1,5 +1,7 @@
<script lang="ts">
export let iconSize: number;
import type { IconProps } from '@/types/icon';
export let iconSize: IconProps['size'];
</script>
<svg
@@ -8,8 +10,9 @@
fill="none"
xmlns="http://www.w3.org/2000/svg"
preserveAspectRatio="xMidYMid"
viewBox="0 0 256 256"
><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"
fill="currentColor"
/>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

+22
View File
@@ -0,0 +1,22 @@
<script lang="ts">
import type { IconProps } from '@/types/icon';
export let iconSize: IconProps['size'];
export let className: IconProps['className'];
</script>
<svg
width={iconSize || 28}
height={iconSize || 28}
class={className}
viewBox="0 0 28 28"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M7 18.079V21L0 14L1.46 12.54L7 18.081V18.079ZM9.921 21H7L14 28L15.46 26.54L9.921 21ZM26.535 15.462L27.996 14L13.996 0L12.538 1.466L18.077 7.004H14.73L10.864 3.146L9.404 4.606L11.809 7.01H10.129V17.876H20.994V16.196L23.399 18.6L24.859 17.14L20.994 13.274V9.927L26.535 15.462ZM7.73 6.276L6.265 7.738L7.833 9.304L9.294 7.844L7.73 6.276ZM20.162 18.708L18.702 20.17L20.268 21.738L21.73 20.276L20.162 18.708ZM4.596 9.41L3.134 10.872L7 14.738V11.815L4.596 9.41ZM16.192 21.006H13.268L17.134 24.872L18.596 23.41L16.192 21.006Z"
fill="#FF6363"
/>
</svg>
File diff suppressed because one or more lines are too long
+19
View File
@@ -0,0 +1,19 @@
<script lang="ts">
import type { IconProps } from '@/types/icon';
export let iconSize: IconProps['size'];
</script>
<svg
xmlns="http://www.w3.org/2000/svg"
width={iconSize || 16}
height={iconSize || 16}
viewBox="0 0 256 308"
><path
fill="#FF3E00"
d="M239.682 40.707C211.113-.182 154.69-12.301 113.895 13.69L42.247 59.356a82.2 82.2 0 0 0-37.135 55.056a86.57 86.57 0 0 0 8.536 55.576a82.4 82.4 0 0 0-12.296 30.719a87.6 87.6 0 0 0 14.964 66.244c28.574 40.893 84.997 53.007 125.787 27.016l71.648-45.664a82.18 82.18 0 0 0 37.135-55.057a86.6 86.6 0 0 0-8.53-55.577a82.4 82.4 0 0 0 12.29-30.718a87.57 87.57 0 0 0-14.963-66.244"
/><path
fill="#FFF"
d="M106.889 270.841c-23.102 6.007-47.497-3.036-61.103-22.648a52.7 52.7 0 0 1-9.003-39.85a50 50 0 0 1 1.713-6.693l1.35-4.115l3.671 2.697a92.5 92.5 0 0 0 28.036 14.007l2.663.808l-.245 2.659a16.07 16.07 0 0 0 2.89 10.656a17.14 17.14 0 0 0 18.397 6.828a15.8 15.8 0 0 0 4.403-1.935l71.67-45.672a14.92 14.92 0 0 0 6.734-9.977a15.92 15.92 0 0 0-2.713-12.011a17.16 17.16 0 0 0-18.404-6.832a15.8 15.8 0 0 0-4.396 1.933l-27.35 17.434a52.3 52.3 0 0 1-14.553 6.391c-23.101 6.007-47.497-3.036-61.101-22.649a52.68 52.68 0 0 1-9.004-39.849a49.43 49.43 0 0 1 22.34-33.114l71.664-45.677a52.2 52.2 0 0 1 14.563-6.398c23.101-6.007 47.497 3.036 61.101 22.648a52.7 52.7 0 0 1 9.004 39.85a51 51 0 0 1-1.713 6.692l-1.35 4.116l-3.67-2.693a92.4 92.4 0 0 0-28.037-14.013l-2.664-.809l.246-2.658a16.1 16.1 0 0 0-2.89-10.656a17.14 17.14 0 0 0-18.398-6.828a15.8 15.8 0 0 0-4.402 1.935l-71.67 45.674a14.9 14.9 0 0 0-6.73 9.975a15.9 15.9 0 0 0 2.709 12.012a17.16 17.16 0 0 0 18.404 6.832a15.8 15.8 0 0 0 4.402-1.935l27.345-17.427a52.2 52.2 0 0 1 14.552-6.397c23.101-6.006 47.497 3.037 61.102 22.65a52.68 52.68 0 0 1 9.003 39.848a49.45 49.45 0 0 1-22.34 33.12l-71.664 45.673a52.2 52.2 0 0 1-14.563 6.398"
/></svg
>
+16
View File
@@ -0,0 +1,16 @@
<script lang="ts">
import type { IconProps } from '@/types/icon';
export let iconSize: IconProps['size'];
</script>
<svg
xmlns="http://www.w3.org/2000/svg"
width={iconSize || 16}
height={iconSize || 16}
viewBox="0 0 256 221"
><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0z" /><path
fill="#41B883"
d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0z"
/><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0z" /></svg
>
@@ -0,0 +1,18 @@
<script lang="ts">
import type { IconProps } from '@/types/icon';
export let iconSize: IconProps['size'];
</script>
<svg viewBox="0 0 128 128" width={iconSize || 16} height={iconSize || 16}>
<path
fill="var(--bgcolor, #fff)"
d="m31 12-1 1L2 63l29 51h67l15-26v-2l14-23-15-24v-2L98 12H31zm21 30h21l13 21-13 21H52L40 63z"
/>
<path fill="#166da5" d="m122 63-12 21-18-21 18-21z" />
<path fill="#8fdb69" d="M108 88 89 65 78 84l17 26z" />
<path fill="#166da5" d="M108 38 89 61 78 42l17-26z" />
<path d="M63 110 35 63l28-47H33L6 63l27 47z" />
<path fill="#287bbe" d="m50 38 13-22h32l13 22zm28 4h32l11 19H89z" />
<path fill="#ddf021" d="m50 88 13 22h32l13-22zm28-4h32l11-19H89z" />
</svg>
@@ -1,16 +1,19 @@
<script lang="ts">
export let iconSize: number;
import type { IconProps } from '@/types/icon';
export let size: IconProps['size'];
export let color: IconProps['color'];
</script>
<svg
xmlns="http://www.w3.org/2000/svg"
width={iconSize || 16}
height={iconSize || 16}
width={size || 16}
height={size || 16}
name="Twitter"
fill="none"
viewBox="0 0 1200 1227"
><path
fill="currentColor"
fill={color || '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>
+23 -42
View File
@@ -2,20 +2,12 @@
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
}
];
import { ArrowUpRight, CloudyIcon } from 'lucide-svelte';
import XIcon from './icons/xIcon.svelte';
import GithubIcon from './icons/githubIcon.svelte';
import HeaderLogoLink from './headerLogoLink.svelte';
const externalLinks = [
{
@@ -44,26 +36,17 @@
<nav
class={cn(
'dark:bg-neutral-900 bg-white',
'w-full px-5 py-4 border-b border-neutral-200 dark:border-neutral-800',
'bg-white dark:bg-neutral-900',
'w-full border-b border-neutral-200 px-5 py-4 dark:border-neutral-800',
'sticky top-0 z-50',
'backdrop-blur-md opacity-95'
'bg-white/90 backdrop-blur-md dark:bg-neutral-900/90'
)}
>
<!-- 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="mx-auto flex items-center justify-between">
<HeaderLogoLink />
<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"
class="flex items-center divide-x divide-dashed divide-neutral-300 dark:divide-neutral-700 md:space-x-4"
>
{#each externalLinks as link}
<a
@@ -71,9 +54,9 @@
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',
'group flex items-center pl-2 text-[15px] opacity-80 transition-opacity hover:opacity-100 md:pl-3',
currentPath === link.url &&
'underline underline-offset-8 decoration-dotted decoration-neutral-500'
'underline decoration-neutral-500 decoration-dotted underline-offset-8'
)}
>
{#if !link.external}
@@ -92,7 +75,7 @@
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"
class="ml-1 hidden transition-transform duration-300 group-hover:-translate-y-[1px] group-hover:translate-x-[1px] md:block"
/>
{/if}
</a>
@@ -102,21 +85,19 @@
<a
href="https://twitter.com/pheralb_"
target="_blank"
class="flex items-center space-x-1 opacity-80 hover:opacity-100 transition-opacity"
class="flex items-center space-x-1 opacity-80 transition-opacity hover:opacity-100"
title="Twitter"
>
<XIcon iconSize={16} />
<XIcon size={16} color="currentColor" />
</a>
<a
href="https://github.com/pheralb/svgl"
target="_blank"
class="flex items-center space-x-1 opacity-80 transition-opacity hover:opacity-100"
title="GitHub"
>
<GithubIcon iconSize={19} />
</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>
+12
View File
@@ -1,4 +1,5 @@
<script lang="ts">
import { page } from '$app/stores';
import { inputStyles } from '@/ui/styles';
import { Command, SearchIcon } from 'lucide-svelte';
export let searchTerm: string;
@@ -24,6 +25,17 @@
}
};
}
let searchParams = {} as { [key: string]: string };
$: {
if ($page) {
searchParams = Object.fromEntries($page.url.searchParams);
if (!searchParams?.search) {
clearSearch();
}
}
}
</script>
<div class="sticky top-[63px] z-50">
+198 -227
View File
@@ -1,26 +1,35 @@
<script lang="ts">
import type { iSVG } from '../types/svg';
import { toast } from 'svelte-sonner';
import type { iSVG } from '@/types/svg';
// Utils:
import { cn } from '@/utils/cn';
import { MIMETYPE, getSvgContent } from '@/utils/getSvgContent';
// Icons:
import { CopyIcon, LinkIcon, ChevronsRight, Baseline, Sparkles } from 'lucide-svelte';
import {
LinkIcon,
ChevronsRight,
Baseline,
Sparkles,
EllipsisIcon,
TagIcon,
XIcon,
PaletteIcon
} from 'lucide-svelte';
// Components & styles:
import CardSpotlight from './cardSpotlight.svelte';
import DownloadSvg from './downloadSvg.svelte';
import { badgeStyles } from '@/ui/styles';
import CopySvg from './copySvg.svelte';
import { badgeStyles, buttonStyles } from '@/ui/styles';
import * as Popover from '@/ui/popover';
// Figma
import { onMount } from 'svelte';
import { copyToClipboard as figmaCopyToClipboard } from '@/figma/copy-to-clipboard';
import { insertSVG as figmaInsertSVG } from '@/figma/insert-svg';
import { getSource } from '@/templates/getSource';
// Props:
export let svgInfo: iSVG;
export let searchTerm: string;
let isInFigma = false;
onMount(() => {
@@ -30,239 +39,201 @@
// 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);
$: {
if (searchTerm) {
wordmarkSvg = false;
}
try {
const clipboardItem = new ClipboardItem(data);
await navigator.clipboard.write([clipboardItem]);
} catch (error) {
const content = (await getSvgContent(url, false)) as string;
await navigator.clipboard.writeText(content);
}
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;
const content = (await getSource({
url
})) as string;
figmaInsertSVG(content);
};
// Icon Stroke & Size:
let iconStroke = 1.8;
let iconSize = 16;
// Max Categories:
let maxVisibleCategories = 1;
let moreTagsOptions = false;
// Global Styles:
const globalImageStyles = 'mb-4 mt-2 h-10 select-none pointer-events-none';
const btnStyles =
'flex items-center space-x-2 rounded-md p-2 duration-100 hover:bg-neutral-200 dark:hover:bg-neutral-700/40';
</script>
<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>
<div
class="group flex flex-col items-center justify-center rounded-md border border-neutral-200 p-4 transition-colors duration-100 hover:bg-neutral-100/80 dark:border-neutral-800 dark:hover:bg-neutral-800/20"
>
<!-- Image -->
{#if wordmarkSvg == true && svgInfo.wordmark !== undefined}
<img
class={cn('hidden dark:block', globalImageStyles)}
src={typeof svgInfo.wordmark !== 'string'
? svgInfo.wordmark?.dark || ''
: svgInfo.wordmark || ''}
alt={svgInfo.title}
title={svgInfo.title}
loading="lazy"
/>
<img
class={cn('block dark:hidden', globalImageStyles)}
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', globalImageStyles)}
src={typeof svgInfo.route !== 'string' ? svgInfo.route.dark : svgInfo.route}
alt={svgInfo.title}
title={svgInfo.title}
loading="lazy"
/>
<img
class={cn('block dark:hidden', globalImageStyles)}
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 items-center justify-center space-y-1">
<p class="select-all truncate text-balance text-center text-[15px] font-medium">
{svgInfo.title}
</p>
<div class="flex items-center justify-center space-x-1">
{#if Array.isArray(svgInfo.category)}
{#each svgInfo.category.slice(0, maxVisibleCategories) as c, index}
<a
href={`/directory/${c.toLowerCase()}`}
class={badgeStyles}
title={`This icon is part of the ${svgInfo.category} category`}>{c}</a
>
{/each}
{#if svgInfo.category.length > maxVisibleCategories}
<Popover.Root
open={moreTagsOptions}
onOpenChange={(isOpen) => (moreTagsOptions = isOpen)}
>
<Popover.Trigger class={badgeStyles} title="More Tags">
{#if moreTagsOptions}
<XIcon size={15} strokeWidth={1.5} />
{:else}
<EllipsisIcon size={15} strokeWidth={1.5} />
{/if}
</Popover.Trigger>
<Popover.Content class="flex flex-col space-y-2">
<p class="font-medium">More tags:</p>
{#each svgInfo.category.slice(maxVisibleCategories) as c}
<a
href={`/directory/${c.toLowerCase()}`}
class={cn(buttonStyles, 'w-full rounded-md')}
>
<TagIcon size={15} strokeWidth={1.5} />
<span>{c}</span>
</a>
{/each}
</Popover.Content>
</Popover.Root>
{/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>
<a href={`/directory/${svgInfo.category.toLowerCase()}`} class={badgeStyles}>
{svgInfo.category}
</a>
{/if}
</div>
</div>
</CardSpotlight>
<!-- 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={btnStyles}
>
<ChevronsRight size={iconSize} strokeWidth={iconStroke} />
</button>
{/if}
{#if wordmarkSvg && svgInfo.wordmark !== undefined}
<CopySvg {iconSize} {iconStroke} {svgInfo} isInFigma={false} isWordmarkSvg={true} />
{:else}
<CopySvg {iconSize} {iconStroke} {svgInfo} isInFigma={false} isWordmarkSvg={false} />
{/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={btnStyles}
>
<LinkIcon size={iconSize} strokeWidth={iconStroke} />
</a>
{#if svgInfo.wordmark !== undefined}
<button
title={wordmarkSvg ? 'Show logo SVG' : 'Show wordmark SVG'}
on:click={() => {
wordmarkSvg = !wordmarkSvg;
}}
class={btnStyles}
>
{#if wordmarkSvg}
<Sparkles size={iconSize} strokeWidth={iconStroke} />
{:else}
<Baseline size={iconSize} strokeWidth={iconStroke} />
{/if}
</button>
{/if}
{#if svgInfo.brandUrl !== undefined}
<a
href={svgInfo.brandUrl}
title="Brand Assets"
target="_blank"
rel="noopener noreferrer"
class={btnStyles}
>
<PaletteIcon size={iconSize} strokeWidth={iconStroke} />
</a>
{/if}
</div>
</div>
+3 -50
View File
@@ -1,59 +1,12 @@
<script lang="ts">
import { onMount } from 'svelte';
let dark: boolean;
let hidden = true;
onMount(() => {
dark = document.documentElement.classList.contains('dark');
hidden = false;
const matcher = window.matchMedia('(prefers-color-scheme: dark)');
matcher.addEventListener('change', handleChange);
return () => matcher.removeEventListener('change', handleChange);
});
function handleChange({ matches: dark }: MediaQueryListEvent) {
if (!localStorage.theme) {
setMode(dark);
}
}
function toggle() {
setMode(!dark);
}
function setMode(value: boolean) {
dark = value;
if (dark) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
localStorage.theme = dark ? 'dark' : 'light';
if (window.matchMedia(`(prefers-color-scheme: ${localStorage.theme})`).matches) {
localStorage.removeItem('theme');
}
}
import { toggleMode, mode } from 'mode-watcher';
// Icons:
import { MoonIcon, SunIcon } from 'lucide-svelte';
</script>
<svelte:head>
<script>
if (
localStorage.theme === 'dark' ||
(!localStorage.theme && window.matchMedia('(prefers-color-scheme: dark)').matches)
) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
</script>
</svelte:head>
<button on:click={toggle} aria-label="Toggle dark mode" class="opacity-80 hover:opacity-100">
<!-- moon icon -->
{#if dark}
<button on:click={toggleMode} aria-label="Toggle dark mode" class="opacity-80 hover:opacity-100">
{#if $mode === 'light'}
<SunIcon size={20} strokeWidth={1.5} />
{:else}
<MoonIcon size={20} strokeWidth={1.5} />
+14 -10
View File
@@ -5,32 +5,36 @@
import { cn } from '@/utils/cn';
let warning = false;
const initialValue = browser ? window.localStorage.getItem('warning') : true;
let warningName = 'svgl_warn_message';
const initialValue = browser ? window.localStorage.getItem(warningName) : 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"
class="flex w-full flex-col items-center justify-between space-x-0 space-y-2 border-b border-neutral-200 bg-neutral-100/60 px-3 py-2 text-neutral-700 dark:border-neutral-800 dark:bg-neutral-800/40 dark:text-neutral-300 md:flex-row md:space-x-2 md:space-y-0"
>
<div class="flex items-center space-x-2">
<AlertTriangleIcon size={18} strokeWidth={2} class="mr-1" />
<AlertTriangleIcon
size={18}
strokeWidth={2}
class="mr-1 flex-shrink-0 animate-pulse text-yellow-600 dark:text-yellow-500"
/>
<p>
All svgs provides the link to the product or company that owns it, <strong
>please contact them</strong
All SVGs include links to the respective products or companies that own them. <strong
>Please contact the owner directly if you need to use their logo.</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
If you are the owner of an SVG and would like it removed,
<a
target="_blank"
class="underline underline-offset-4 decoration-dotted decoration-neutral-500"
class="underline decoration-neutral-500 decoration-dotted underline-offset-4"
href="https://github.com/pheralb/svgl/issues/new">create an issue</a
> on Github.
> on GitHub.
</p>
</div>
<button
class={cn(buttonStyles, 'h-10 text-sm')}
on:click={() => {
localStorage.setItem('warning', 'true');
localStorage.setItem(warningName, 'true');
warning = true;
}}
>
+87
View File
@@ -0,0 +1,87 @@
import type { Extension } from '@/types/extensions';
export const extensions: Extension[] = [
{
name: 'SVGL for Raycast',
description: 'Search SVG logos via svgl using Raycast.',
url: 'https://www.raycast.com/1weiho/svgl',
image: 'https://github.com/pheralb/svgl/raw/main/static/library/raycast.svg',
created_by: {
name: '1weiho',
socialUrl: 'https://x.com/1weiho'
}
},
{
name: 'SVGL for PowerToys',
description: 'Search & copy SVG logos in PowerToys Run.',
url: 'https://svgl.sameerjs.com/',
image: 'https://github.com/pheralb/svgl/raw/main/static/library/powertoys.svg',
created_by: {
name: 'SameerJS6',
socialUrl: 'https://svgl.sameerjs.com/'
}
},
{
name: 'SVGL for React',
description:
'An open-source NPM package that offers a collection of high-quality SVGL logos for React.',
url: 'https://github.com/ridemountainpig/svgl-react?tab=readme-ov-file',
image:
'https://raw.githubusercontent.com/pheralb/svgl/0d4514c9521688e76c6a1b426f3054a424d96aa5/static/library/react_dark.svg',
created_by: {
name: 'ridemountainpig',
socialUrl: 'https://twitter.com/ridemountainpig'
}
},
{
name: 'SVGL Badges',
description: 'A beautiful badges with svgl SVG logos.',
url: 'https://svgl-badge.vercel.app/',
image:
'https://camo.githubusercontent.com/b516f0f725ad1827dd854f16ec08626569d02ab827cd06b4f42163e519b813c7/68747470733a2f2f7376676c2d62616467652e76657263656c2e6170702f6170692f4c6962726172792f5376676c3f7468656d653d6c69676874',
created_by: {
name: 'ridemountainpig',
socialUrl: 'https://twitter.com/ridemountainpig'
}
},
{
name: 'Magic',
description: 'AI extension for Cursor & other IDEs.',
url: 'https://21st.dev/magic',
image: 'https://github.com/serafimcloud/21st/blob/main/apps/web/public/icon.png?raw=true',
created_by: {
name: 'serafim',
socialUrl: 'https://x.com/serafimcloud'
}
},
{
name: 'svgls',
description: 'A CLI for easily adding SVG icons to your project.',
url: 'https://github.com/sujjeee/svgls',
image: 'https://github.com/pheralb/svgl/raw/main/static/library/svgl.svg',
created_by: {
name: 'Sujjeee',
socialUrl: 'https://twitter.com/sujjeeee'
}
},
{
name: 'SVGL for Figma',
description: 'Add svgs from svgl to your Figma project.',
url: 'https://www.figma.com/community/plugin/1320306989350693206/svgl',
image: 'https://github.com/pheralb/svgl/raw/main/static/library/figma.svg',
created_by: {
name: 'Quill',
socialUrl: 'https://x.com/quillzhou'
}
},
{
name: 'SVGL for VSCode',
description: 'SVGL directly in your VSCode.',
url: 'https://marketplace.visualstudio.com/items?itemName=EsteveSegura.svgl',
image: 'https://github.com/pheralb/svgl/blob/main/static/library/vscode.svg',
created_by: {
name: 'GiR',
socialUrl: 'https://x.com/girlazote'
}
}
];
+18 -1
View File
@@ -3,4 +3,21 @@ import { svgs } from './svgs';
export const svgsData = svgs.map((svg: iSVG, index: number) => {
return { id: index, ...svg };
});
});
export const getCategories = () => {
const categories = svgs
.flatMap((svg) => (Array.isArray(svg.category) ? svg.category : [svg.category]))
.filter((category, index, array) => array.indexOf(category) === index);
return categories;
};
export const getCategoriesForDirectory = () => {
const categories = svgs
.flatMap((svg) => (Array.isArray(svg.category) ? svg.category : [svg.category]))
.filter((category, index, array) => array.indexOf(category) === index)
.map((category) => ({
slug: category.toLowerCase()
}));
return categories;
};
+1649 -155
View File
@@ -1,17 +1,230 @@
import type { iSVG } from '../types/svg';
import type { iSVG } from '@/types/svg';
export const svgs: iSVG[] = [
{
title: 'Google Classroom',
category: ['Google', 'Education'],
route: '/library/google-classroom.svg',
url: 'https://edu.google.com/workspace-for-education/products/classroom/',
brandUrl: 'https://developers.google.com/workspace/classroom/brand'
},
{
title: 'Kimi',
category: 'AI',
route: '/library/kimi.svg',
url: 'https://kimi.ai/'
},
{
title: 'Perspective',
category: 'Software',
route: {
light: '/library/perspective-light.svg',
dark: '/library/perspective-dark.svg'
},
wordmark: {
light: '/library/perspective-wordmark-light.svg',
dark: '/library/perspective-wordmark-dark.svg'
},
url: 'https://perspective.co/'
},
{
title: 'Windsurf',
category: ['Software', 'AI'],
route: {
light: '/library/windsurf-light.svg',
dark: '/library/windsurf-dark.svg'
},
wordmark: {
light: '/library/windsurf-wordmark-light.svg',
dark: '/library/windsurf-wordmark-dark.svg'
},
url: 'https://windsurf.com/editor',
brandUrl: 'https://windsurf.com/brand'
},
{
title: 'Mattermost',
category: 'Software',
route: {
light: '/library/mattermost-light.svg',
dark: '/library/mattermost-dark.svg'
},
url: 'http://mattermost.com/'
},
{
title: 'Inngest',
category: 'Software',
route: {
light: '/library/inngest-light.svg',
dark: '/library/inngest-dark.svg'
},
url: 'https://inngest.com/'
},
{
title: 'daisyUI',
category: 'Library',
route: '/library/daisyui.svg',
url: 'https://daisyui.com/'
},
{
title: 'PayPal',
category: 'Payment',
route: '/library/paypal.svg',
wordmark: '/library/paypal-wordmark.svg',
url: 'https://paypal.com'
},
{
title: 'Google Drive',
category: 'Google',
route: '/library/drive.svg',
url: 'https://www.google.com/drive/'
},
{
title: 'Amazon Q',
category: 'AI',
route: '/library/amazon-q.svg',
url: 'https://aws.amazon.com/q'
},
{
title: 'Mulesoft',
category: 'Software',
route: '/library/mulesoft.svg',
url: 'https://www.mulesoft.com/'
},
{
title: 'UV',
category: 'Devtool',
route: '/library/uv.svg',
url: 'https://docs.astral.sh/uv/'
},
{
title: 'Milanote',
category: 'Software',
route: {
light: '/library/milanote-light.svg',
dark: '/library/milanote-dark.svg'
},
wordmark: {
light: '/library/milanote-wordmark-light.svg',
dark: '/library/milanote-wordmark-dark.svg'
},
url: 'https://milanote.com'
},
{
title: 'Together AI',
category: 'AI',
route: {
light: '/library/togetherai_light.svg',
dark: '/library/togetherai_dark.svg'
},
url: 'https://www.together.ai/'
},
{
title: 'Suno',
category: 'AI',
route: '/library/suno.svg',
wordmark: {
light: '/library/suno_wordmark_light.svg',
dark: '/library/suno_wordmark_dark.svg'
},
url: 'https://suno.com/'
},
{
title: 'Groq',
category: 'AI',
route: '/library/groq.svg',
wordmark: {
light: '/library/groq_wordmark_light.svg',
dark: '/library/groq_wordmark_dark.svg'
},
url: 'https://groq.com/'
},
{
title: 'Cohere',
category: 'AI',
route: '/library/cohere.svg',
wordmark: '/library/cohere_wordmark.svg',
url: 'https://cohere.com/'
},
{
title: 'Ollama',
category: 'AI',
route: {
light: '/library/ollama_light.svg',
dark: '/library/ollama_dark.svg'
},
url: 'https://www.ollama.com/'
},
{
title: 'Cisco',
category: 'Software',
route: {
light: '/library/cisco_light.svg',
dark: '/library/cisco_dark.svg'
},
url: 'https://www.cisco.com/'
},
{
title: 'Animate',
category: ['Software', 'Design'],
route: '/library/animate.svg',
url: 'https://www.adobe.com/products/animate'
},
{
title: 'Apollo.io',
category: 'Software',
route: '/library/apollo.io.svg',
url: 'https://www.apollo.io/'
},
{
title: 'Blender',
category: ['Software', 'Design'],
route: '/library/blender.svg',
url: 'https://blender.org/',
brandUrl: 'https://www.blender.org/about/logo/'
},
{
title: 'Lua',
category: 'Language',
route: '/library/lua.svg',
url: 'https://lua.org/'
},
{
title: 'Mercado Pago',
category: 'Payment',
route: '/library/mercado-pago.svg',
wordmark: '/library/mercado-pago-wordmark.svg',
url: 'https://www.mercadopago.com/developers/'
},
{
title: 'Basewell',
category: ['AI', 'Software'],
route: '/library/basewell.svg',
url: 'https://www.basewell.com/'
},
{
title: 'ahooks',
category: 'Library',
route: '/library/ahooks.svg',
wordmark: {
light: '/library/ahooks-wordmark-light.svg',
dark: '/library/ahooks-wordmark-dark.svg'
},
url: 'https://ahooks.js.org/'
},
{
title: 'Discord',
category: 'Software',
route: '/library/discord.svg',
url: 'https://discord.com/'
url: 'https://discord.com/',
brandUrl: 'https://discord.com/branding'
},
{
title: 'Github',
title: 'Aliexpress',
category: 'Software',
route: '/library/github.svg',
url: 'https://github.com/'
route: '/library/aliexpress-icon.svg',
wordmark: '/library/aliexpress-logo.svg',
url: 'https://aliexpress.com/'
},
{
title: 'Preact',
@@ -22,21 +235,15 @@ export const svgs: iSVG[] = [
{
title: 'React',
category: 'Library',
route: '/library/react.svg',
url: 'https://reactjs.org/'
},
{
title: 'Vercel',
category: 'Hosting',
route: {
light: '/library/vercel.svg',
dark: '/library/vercel_dark.svg'
light: '/library/react_light.svg',
dark: '/library/react_dark.svg'
},
wordmark: {
light: '/library/vercel_wordmark.svg',
dark: '/library/vercel_wordmark_dark.svg'
light: '/library/react_wordmark_light.svg',
dark: '/library/react_wordmark_dark.svg'
},
url: 'https://vercel.com/'
url: 'https://react.dev/'
},
{
title: 'Svelte',
@@ -54,25 +261,22 @@ export const svgs: iSVG[] = [
title: 'Vuetify',
category: 'Library',
route: '/library/vuetify.svg',
url: 'https://vuetifyjs.com/'
url: 'https://vuetifyjs.com/',
brandUrl: 'https://vuetifyjs.com/en/resources/brand-kit/'
},
{
title: 'Nuxt',
category: 'Framework',
route: '/library/nuxt.svg',
url: 'https://nuxtjs.org/'
},
{
title: 'Next.js',
category: 'Framework',
route: '/library/nextjs.svg',
url: 'https://nextjs.org/'
url: 'https://nuxtjs.org/',
brandUrl: 'https://nuxt.com/design-kit'
},
{
title: 'Visual Studio Code',
category: 'Software',
route: '/library/vscode.svg',
url: 'https://code.visualstudio.com/'
url: 'https://code.visualstudio.com/',
brandUrl: 'https://code.visualstudio.com/brand'
},
{
title: 'Ton',
@@ -100,7 +304,7 @@ export const svgs: iSVG[] = [
},
{
title: 'JWT',
category: 'Library',
category: ['Library', 'Authentication'],
route: '/library/jwt.svg',
url: 'https://jwt.io/'
},
@@ -108,23 +312,26 @@ export const svgs: iSVG[] = [
title: 'Strapi',
category: 'CMS',
route: '/library/strapi.svg',
url: 'https://strapi.io/'
url: 'https://strapi.io/',
brandUrl: 'https://handbook.strapi.io/strapi-brand-book-2022'
},
{
title: 'Figma',
category: 'Design',
route: '/library/figma.svg',
url: 'https://www.figma.com/'
url: 'https://www.figma.com/',
brandUrl: 'https://www.figma.com/using-the-figma-brand/'
},
{
title: 'Spotify',
category: 'Software',
category: 'Music',
route: '/library/spotify.svg',
wordmark: '/library/spotify_wordmark.svg',
url: 'https://www.spotify.com/'
},
{
title: 'WorkOS',
category: 'Software',
category: ['Software', 'Authentication'],
route: {
light: '/library/workos.svg',
dark: '/library/workos-light.svg'
@@ -168,31 +375,15 @@ export const svgs: iSVG[] = [
title: 'Bootstrap',
category: 'Framework',
route: '/library/bootstrap.svg',
url: 'https://getbootstrap.com/'
},
{
title: 'Firebase',
category: 'Hosting',
route: '/library/firebase.svg',
url: 'https://firebase.google.com/'
},
{
title: 'Supabase',
category: 'Database',
route: '/library/supabase.svg',
url: 'https://supabase.com/'
},
{
title: 'Vite.js',
category: 'Compiler',
route: '/library/vitejs.svg',
url: 'https://vitejs.dev'
url: 'https://getbootstrap.com/',
brandUrl: 'https://getbootstrap.com/docs/4.0/about/brand/'
},
{
title: 'Facebook',
category: 'Social',
route: '/library/facebook.svg',
url: 'https://www.facebook.com/'
url: 'https://www.facebook.com/',
brandUrl: 'https://about.meta.com/brand/resources/facebook/logo/'
},
{
title: 'Twitter',
@@ -200,12 +391,6 @@ export const svgs: iSVG[] = [
route: '/library/twitter.svg',
url: 'https://twitter.com/'
},
{
title: 'Node.js',
category: 'Library',
route: '/library/nodejs.svg',
url: 'https://nodejs.org/'
},
{
title: 'Esbuild',
category: 'Compiler',
@@ -219,7 +404,12 @@ export const svgs: iSVG[] = [
light: '/library/deno.svg',
dark: '/library/deno_dark.svg'
},
url: 'https://deno.land/'
wordmark: {
light: '/library/deno_wordmark.svg',
dark: '/library/deno_wordmark_dark.svg'
},
brandUrl: 'https://deno.com/brand',
url: 'https://deno.com/'
},
{
title: 'Gatsby',
@@ -233,6 +423,12 @@ export const svgs: iSVG[] = [
route: '/library/npm.svg',
url: 'https://www.npmjs.com/'
},
{
title: 'Nuget',
category: 'Software',
route: '/library/nuget.svg',
url: 'https://www.nuget.org/'
},
{
title: 'Homebrew',
category: 'Software',
@@ -246,8 +442,8 @@ export const svgs: iSVG[] = [
url: 'https://www.sublimetext.com/'
},
{
title: 'TurboRepo',
category: 'Library',
title: 'Turborepo',
category: ['Library', 'Vercel', 'Monorepo'],
route: '/library/turborepo.svg',
url: 'https://turborepo.org/'
},
@@ -255,6 +451,11 @@ export const svgs: iSVG[] = [
title: 'Tailwind CSS',
category: 'Framework',
route: '/library/tailwindcss.svg',
wordmark: {
light: '/library/tailwindcss-wordmark.svg',
dark: '/library/tailwindcss-wordmark-dark.svg'
},
brandUrl: 'https://tailwindcss.com/brand',
url: 'https://tailwindcss.com/'
},
{
@@ -267,7 +468,8 @@ export const svgs: iSVG[] = [
title: 'Angular',
category: 'Framework',
route: '/library/angular.svg',
url: 'https://angular.dev/'
url: 'https://angular.dev/',
brandUrl: 'https://angular.dev/press-kit'
},
{
title: 'Blitz',
@@ -289,7 +491,7 @@ export const svgs: iSVG[] = [
},
{
title: 'YouTube',
category: 'Social',
category: ['Google', 'Social'],
route: '/library/youtube.svg',
wordmark: '/library/youtube-wordmark.svg',
url: 'https://www.youtube.com/'
@@ -301,11 +503,12 @@ export const svgs: iSVG[] = [
light: '/library/astro.svg',
dark: '/library/astro_dark.svg'
},
url: 'https://astro.build/'
url: 'https://astro.build/',
brandUrl: 'https://astro.build/press/'
},
{
title: 'Google',
category: 'Social',
category: 'Google',
route: '/library/google.svg',
wordmark: '/library/google-wordmark.svg',
url: 'https://www.google.com/'
@@ -323,19 +526,22 @@ export const svgs: iSVG[] = [
title: 'Netflix',
category: 'Entertainment',
route: '/library/netflix.svg',
url: 'https://www.netflix.com/'
url: 'https://www.netflix.com/',
brandUrl: 'https://brand.netflix.com/en/assets/logos'
},
{
title: 'Firefox',
category: 'Browser',
route: '/library/firefox.svg',
url: 'https://www.mozilla.org/en-US/firefox/'
url: 'https://www.mozilla.org/en-US/firefox/',
brandUrl: 'https://mozilla.design/firefox/'
},
{
title: 'LinkedIn',
category: 'Social',
route: '/library/linkedin.svg',
url: 'https://www.linkedin.com/'
url: 'https://www.linkedin.com/',
brandUrl: 'https://brand.linkedin.com/'
},
{
title: 'Telegram',
@@ -343,6 +549,15 @@ export const svgs: iSVG[] = [
route: '/library/telegram.svg',
url: 'https://web.telegram.org/'
},
{
title: 'Matrix',
category: 'Social',
route: {
light: '/library/matrix-light.svg',
dark: '/library/matrix-dark.svg'
},
url: 'https://matrix.org/'
},
{
title: 'WhatsApp',
category: 'Social',
@@ -361,12 +576,6 @@ export const svgs: iSVG[] = [
route: '/library/kotlin.svg',
url: 'https://kotlinlang.org/'
},
{
title: 'Vitest',
category: 'Framework',
route: '/library/vitest.svg',
url: 'https://vitest.dev/'
},
{
title: 'Storybook',
category: 'Software',
@@ -390,7 +599,8 @@ export const svgs: iSVG[] = [
category: 'Database',
route: '/library/mongodb.svg',
wordmark: '/library/mongodb-wordmark.svg',
url: 'https://www.mongodb.com/'
url: 'https://www.mongodb.com/',
brandUrl: 'https://www.mongodb.com/company/newsroom/brand-resources'
},
{
title: 'Moon',
@@ -411,7 +621,8 @@ export const svgs: iSVG[] = [
title: 'Fly',
category: 'Hosting',
route: '/library/fly.svg',
url: 'https://fly.io'
url: 'https://fly.io',
brandUrl: 'https://fly.io/docs/about/brand/'
},
{
title: 'LearnThis',
@@ -457,7 +668,7 @@ export const svgs: iSVG[] = [
},
{
title: 'jQuery',
category: 'Language',
category: 'Library',
route: {
light: '/library/jquery.svg',
dark: '/library/jquery_dark.svg'
@@ -480,11 +691,18 @@ export const svgs: iSVG[] = [
title: 'Bun',
category: 'Library',
route: '/library/bun.svg',
url: 'https://bun.sh'
url: 'https://bun.sh',
brandUrl: 'https://bun.sh/press-kit'
},
{
title: 'BuildShip',
category: 'AI',
route: '/library/buildship.svg',
url: 'https://buildship.com/'
},
{
title: 'Twilio',
category: 'Software',
category: ['Software', 'Authentication'],
route: '/library/twilio.svg',
url: 'https://twilio.com'
},
@@ -499,7 +717,7 @@ export const svgs: iSVG[] = [
},
{
title: 'Arc',
category: 'Fintech',
category: 'Software',
route: {
light: '/library/arc_fintech_light.svg',
dark: '/library/arc_fintech_dark.svg'
@@ -524,7 +742,7 @@ export const svgs: iSVG[] = [
},
{
title: 'Authy',
category: 'Software',
category: ['Software', 'Authentication'],
route: '/library/authy.svg',
url: 'https://authy.com/'
},
@@ -535,7 +753,7 @@ export const svgs: iSVG[] = [
url: 'https://nestjs.com/'
},
{
title: 'Github Copilot',
title: 'GitHub Copilot',
category: 'Software',
route: {
light: '/library/copilot.svg',
@@ -588,6 +806,19 @@ export const svgs: iSVG[] = [
route: '/library/graphql.svg',
url: 'https://graphql.org/'
},
{
title: 'Grok',
category: 'AI',
route: {
light: '/library/grok-light.svg',
dark: '/library/grok-dark.svg'
},
wordmark: {
light: '/library/grok-wordmark-light.svg',
dark: '/library/grok-wordmark-dark.svg'
},
url: 'https://grok.com/'
},
{
title: 'GitLab',
category: 'Software',
@@ -640,12 +871,16 @@ export const svgs: iSVG[] = [
title: 'Docker',
category: 'Software',
route: '/library/docker.svg',
url: 'https://www.docker.com/'
url: 'https://www.docker.com/',
brandUrl: 'https://www.docker.com/company/newsroom/media-resources/'
},
{
title: 'Amazon Web Services',
category: 'Software',
route: '/library/aws.svg',
route: {
light: '/library/aws_light.svg',
dark: '/library/aws_dark.svg'
},
url: 'https://aws.amazon.com/'
},
{
@@ -664,7 +899,8 @@ export const svgs: iSVG[] = [
title: 'JetBrains',
category: 'Software',
route: '/library/jetbrains.svg',
url: 'https://www.jetbrains.com/'
url: 'https://www.jetbrains.com/',
brandUrl: 'https://www.jetbrains.com/company/brand/'
},
{
title: 'JetBrains Rider',
@@ -715,11 +951,12 @@ export const svgs: iSVG[] = [
title: 'Flutter',
category: 'Framework',
route: '/library/flutter.svg',
url: 'https://flutter.dev/'
url: 'https://flutter.dev/',
brandUrl: 'https://flutter.dev/brand'
},
{
title: 'Auth0',
category: 'Library',
category: ['Library', 'Authentication'],
route: '/library/auth0.svg',
url: 'https://auth0.com/'
},
@@ -955,7 +1192,8 @@ export const svgs: iSVG[] = [
title: 'Brave Browser',
category: 'Browser',
route: '/library/brave.svg',
url: 'https://brave.com/'
url: 'https://brave.com/',
brandUrl: 'https://brave.com/brave-branding-assets/'
},
{
title: 'Eclipse IDE',
@@ -979,11 +1217,17 @@ export const svgs: iSVG[] = [
url: 'https://es.wikipedia.org/wiki/HTML5'
},
{
title: 'CSS',
title: 'CSS (New)',
category: 'Language',
route: '/library/css.svg',
url: 'https://es.wikipedia.org/wiki/CSS'
},
{
title: 'CSS',
category: 'Language',
route: '/library/css_old.svg',
url: 'https://es.wikipedia.org/wiki/CSS'
},
{
title: 'midudev',
category: 'Community',
@@ -1011,6 +1255,12 @@ export const svgs: iSVG[] = [
route: '/library/python.svg',
url: 'https://www.python.org/'
},
{
title: 'Solidity',
category: 'Language',
route: '/library/solidity.svg',
url: 'https://soliditylang.org/'
},
{
title: 'Turbopack',
category: 'Software',
@@ -1063,7 +1313,8 @@ export const svgs: iSVG[] = [
title: 'Upstash',
category: 'Database',
route: '/library/upstash.svg',
url: 'https://upstash.com/'
url: 'https://upstash.com/',
brandUrl: 'https://upstash.com/brand'
},
{
title: 'Storyblok',
@@ -1162,7 +1413,8 @@ export const svgs: iSVG[] = [
title: 'WordPress',
category: ['Software', 'CMS'],
route: '/library/wordpress.svg',
url: 'https://wordpress.org/'
url: 'https://wordpress.org/',
brandUrl: 'https://wordpress.org/about/logos/'
},
{
title: 'Microsoft',
@@ -1176,6 +1428,15 @@ export const svgs: iSVG[] = [
route: '/library/elementor.svg',
url: 'https://elementor.com/'
},
{
title: 'Kick',
category: 'Entertainment',
route: {
light: '/library/kick-light.svg',
dark: '/library/kick-dark.svg'
},
url: 'https://kick.com/'
},
{
title: 'Prime video',
category: 'Entertainment',
@@ -1294,16 +1555,19 @@ export const svgs: iSVG[] = [
url: 'https://webkit.org/'
},
{
title: 'Google Bard',
category: 'AI',
route: '/library/bard.svg',
url: 'https://bard.google.com/'
title: 'DuckDuckGo',
category: ['Software', 'Browser'],
route: '/library/duckduckgo.svg',
wordmark: '/library/duckduckgo-wordmark.svg',
url: 'https://duckduckgo.com/'
},
{
title: 'Obsidian',
category: 'Software',
route: '/library/obsidian.svg',
url: 'https://obsidian.md/'
url: 'https://obsidian.md/',
brandUrl: 'https://obsidian.md/brand'
},
{
title: 'Zod',
@@ -1311,6 +1575,16 @@ export const svgs: iSVG[] = [
route: '/library/zod.svg',
url: 'https://zod.dev/'
},
{
title: 'Valibot',
category: 'Library',
route: '/library/valibot.svg',
wordmark: {
light: '/library/valibot-wordmark-light.svg',
dark: '/library/valibot-wordmark-dark.svg'
},
url: 'https://valibot.dev'
},
{
title: 'Dreamweaver',
category: 'Software',
@@ -1324,7 +1598,12 @@ export const svgs: iSVG[] = [
light: '/library/openai.svg',
dark: '/library/openai_dark.svg'
},
url: 'https://openai.com/'
wordmark: {
light: '/library/openai_wordmark_light.svg',
dark: '/library/openai_wordmark_dark.svg'
},
url: 'https://openai.com/',
brandUrl: 'https://openai.com/brand/'
},
{
title: 'Threads',
@@ -1342,7 +1621,8 @@ export const svgs: iSVG[] = [
light: '/library/instagram.svg',
dark: '/library/instagram_dark.svg'
},
url: 'https://www.instagram.com/'
url: 'https://www.instagram.com/',
brandUrl: 'https://about.instagram.com/brand'
},
{
title: 'VueUse',
@@ -1478,61 +1758,62 @@ export const svgs: iSVG[] = [
url: 'https://tether.to/'
},
{
title: 'X',
title: 'X (formerly Twitter)',
category: 'Social',
route: {
light: '/library/x.svg',
dark: '/library/x_dark.svg'
},
url: 'https://x.com'
url: 'https://x.com',
brandUrl: 'https://about.x.com/en/who-we-are/brand-toolkit'
},
{
title: 'Adobe',
category: 'Design',
route: '/library/adobe.svg',
url: 'https://x.com'
url: 'https://www.adobe.com/'
},
{
title: 'After Effects',
category: 'Design',
route: '/library/after-effects.svg',
url: 'https://x.com'
url: 'https://www.adobe.com/products/aftereffects'
},
{
title: 'Canva',
category: 'Design',
route: '/library/canva.svg',
url: 'https://x.com'
url: 'https://www.canva.com/'
},
{
title: 'Illustrator',
category: 'Design',
route: '/library/illustrator.svg',
url: 'https://x.com'
url: 'https://www.adobe.com/products/illustrator'
},
{
title: 'InDesign',
category: 'Design',
route: '/library/indesign.svg',
url: 'https://x.com'
url: 'https://www.adobe.com/products/indesign'
},
{
title: 'Lightroom',
category: 'Design',
route: '/library/lightroom.svg',
url: 'https://x.com'
url: 'https://www.adobe.com/products/photoshop-lightroom'
},
{
title: 'Photoshop',
category: 'Design',
route: '/library/photoshop.svg',
url: 'https://x.com'
url: 'https://www.adobe.com/products/photoshop'
},
{
title: 'Premiere',
category: 'Design',
route: '/library/premiere.svg',
url: 'https://x.com'
url: 'https://www.adobe.com/products/premiere'
},
{
title: 'VK',
@@ -1544,25 +1825,22 @@ export const svgs: iSVG[] = [
title: 'Hoppscotch',
category: 'Software',
route: '/library/hoppscotch.svg',
url: 'https://hoppscotch.com'
},
{
title: 'Dub',
category: 'Software',
route: '/library/dub.svg',
url: 'https://dub.co'
url: 'https://hoppscotch.com',
brandUrl: 'https://hoppscotch.com/brand'
},
{
title: 'Opera',
category: 'Browser',
route: '/library/opera.svg',
url: 'https://www.opera.com'
url: 'https://www.opera.com',
brandUrl: 'https://brand.opera.com/'
},
{
title: 'Salesforce',
category: 'Software',
route: '/library/salesforce.svg',
url: 'https://www.salesforce.com'
url: 'https://www.salesforce.com',
brandUrl: 'https://brand.salesforce.com/'
},
{
title: 'Unreal Engine',
@@ -1691,7 +1969,8 @@ export const svgs: iSVG[] = [
light: '/library/cal.svg',
dark: '/library/cal_dark.svg'
},
url: 'https://cal.com'
url: 'https://cal.com',
brandUrl: 'https://design.cal.com/'
},
{
title: 'Calendly',
@@ -1771,7 +2050,7 @@ export const svgs: iSVG[] = [
{
title: 'C++',
category: 'Language',
route: '/library/c++.svg',
route: '/library/c-plusplus.svg',
url: 'https://en.wikipedia.org/wiki/C%2B%2B'
},
{
@@ -1784,7 +2063,7 @@ export const svgs: iSVG[] = [
title: 'Fortran',
category: 'Language',
route: '/library/fortran.svg',
url: 'https://en.wikipedia.org/wiki/Fortran'
url: 'https://fortran-lang.org/'
},
{
title: 'Haskell',
@@ -1850,13 +2129,18 @@ export const svgs: iSVG[] = [
dark: '/library/axiom-dark.svg',
light: '/library/axiom-light.svg'
},
wordmark: {
light: '/library/axiom-wordmark-light.svg',
dark: '/library/axiom-wordmark-dark.svg'
},
url: 'https://axiom.co/'
},
{
title: 'Django',
category: 'Framework',
route: '/library/django.svg',
url: 'https://www.djangoproject.com/'
url: 'https://www.djangoproject.com/',
brandUrl: 'https://www.djangoproject.com/community/logos/'
},
{
title: 'Zeabur',
@@ -1865,6 +2149,10 @@ export const svgs: iSVG[] = [
light: '/library/zeabur-light.svg',
dark: '/library/zeabur-dark.svg'
},
wordmark: {
light: '/library/zeabur_wordmark_light.svg',
dark: '/library/zeabur_wordmark_dark.svg'
},
url: 'https://zeabur.com/'
},
{
@@ -1905,7 +2193,7 @@ export const svgs: iSVG[] = [
},
{
title: 'Stripe',
category: 'Software',
category: ['Software', 'Payment'],
route: '/library/stripe.svg',
url: 'https://stripe.com/'
},
@@ -1919,7 +2207,7 @@ export const svgs: iSVG[] = [
title: 'XD',
category: 'Design',
route: '/library/adobe-xd.svg',
url: 'https://helpx.adobe.com/xd/get-started.html'
url: 'https://www.adobe.com/products/xd'
},
{
title: 'Axure',
@@ -1955,7 +2243,8 @@ export const svgs: iSVG[] = [
title: 'Ubuntu',
category: 'Software',
route: '/library/ubuntu.svg',
url: 'https://ubuntu.com/'
url: 'https://ubuntu.com/',
brandUrl: 'https://design.ubuntu.com/brand'
},
{
title: 'Cypress',
@@ -1967,7 +2256,8 @@ export const svgs: iSVG[] = [
title: 'Reddit',
category: 'Social',
route: '/library/reddit.svg',
url: 'https://www.reddit.com/'
url: 'https://www.reddit.com/',
brandUrl: 'https://redditinc.com/brand'
},
{
title: 'JetBrains WebStorm',
@@ -2000,9 +2290,13 @@ export const svgs: iSVG[] = [
url: 'https://www.jetbrains.com/phpstorm/'
},
{
title: 'MonkeyType',
title: 'Monkeytype',
category: 'Software',
route: '/library/monkeytype.svg',
wordmark: {
dark: '/library/monkeytype-wordmark-dark.svg',
light: '/library/monkeytype-wordmark-light.svg'
},
url: 'https://monkeytype.com/'
},
{
@@ -2019,18 +2313,31 @@ export const svgs: iSVG[] = [
dark: '/library/shopify-wordmark-dark.svg',
light: '/library/shopify-wordmark-light.svg'
},
url: 'https://www.shopify.com'
url: 'https://www.shopify.com',
brandUrl: 'https://www.shopify.com/brand-assets'
},
{
title: 'WebFlow',
title: 'Webflow',
category: 'CMS',
route: '/library/webflow.svg',
url: 'https://www.webflow.com'
wordmark: {
dark: '/library/webflow-wordmark-dark.svg',
light: '/library/webflow-wordmark-light.svg'
},
url: 'https://www.webflow.com',
brandUrl: 'https://brand-at.webflow.io/resources'
},
{
title: 'Sanity',
category: 'CMS',
route: '/library/sanity.svg',
route: {
dark: '/library/sanity-dark.svg',
light: '/library/sanity-light.svg'
},
wordmark: {
dark: '/library/sanity-wordmark-dark.svg',
light: '/library/sanity-wordmark-light.svg'
},
url: 'https://www.sanity.io'
},
{
@@ -2053,11 +2360,12 @@ export const svgs: iSVG[] = [
light: '/library/uber_light.svg',
dark: '/library/uber_dark.svg'
},
url: 'https://www.uber.com'
url: 'https://www.uber.com',
brandUrl: 'https://brand.uber.com/'
},
{
title: 'Gmail',
category: 'Software',
category: ['Google', 'Software'],
route: '/library/gmail.svg',
url: 'https://www.gmail.com'
},
@@ -2102,8 +2410,28 @@ export const svgs: iSVG[] = [
title: 'Raycast',
category: 'Software',
route: '/library/raycast.svg',
wordmark: {
light: '/library/raycast-wordmark-light.svg',
dark: '/library/raycast-wordmark-dark.svg'
},
url: 'https://raycast.com/'
},
{
title: 'Flow Launcher',
category: ['Software', 'Devtool'],
route: '/library/FlowLauncher.svg',
url: 'https://www.flowlauncher.com/'
},
{
title: 'Hack The Box',
category: 'Cybersecurity',
route: '/library/hack-the-box.svg',
wordmark: {
light: '/library/hack-the-box-wordmark-light.svg',
dark: '/library/hack-the-box-wordmark-dark.svg'
},
url: 'https://www.hackthebox.com/'
},
{
title: 'Procure',
category: 'Marketplace',
@@ -2146,16 +2474,14 @@ export const svgs: iSVG[] = [
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',
wordmark: {
light: '/library/perplexity_wordmark_light.svg',
dark: '/library/perplexity_wordmark_dark.svg'
},
url: 'https://perplexity.ai/'
},
{
@@ -2177,6 +2503,10 @@ export const svgs: iSVG[] = [
light: '/library/pnpm.svg',
dark: '/library/pnpm_dark.svg'
},
wordmark: {
light: '/library/pnpm_wordmark_light.svg',
dark: '/library/pnpm_wordmark_dark.svg'
},
url: 'https://pnpm.io/'
},
{
@@ -2193,16 +2523,10 @@ export const svgs: iSVG[] = [
},
{
title: 'Google Idx',
category: 'Software',
category: ['Software', 'Google'],
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',
@@ -2210,7 +2534,12 @@ export const svgs: iSVG[] = [
light: '/library/remix_light.svg',
dark: '/library/remix_dark.svg'
},
url: 'https://remix.run/'
wordmark: {
light: '/library/remix_wordmark_light.svg',
dark: '/library/remix_wordmark_dark.svg'
},
url: 'https://remix.run/',
brandUrl: 'https://remix.run/brand'
},
{
title: 'Steam',
@@ -2240,6 +2569,10 @@ export const svgs: iSVG[] = [
light: '/library/flask-light.svg',
dark: '/library/flask-dark.svg'
},
wordmark: {
light: '/library/flask-wordmark-light.svg',
dark: '/library/flask-wordmark-dark.svg'
},
url: 'https://flask.palletsprojects.com/'
},
{
@@ -2256,9 +2589,10 @@ export const svgs: iSVG[] = [
},
{
title: 'Bitwarden',
category: 'Software',
category: ['Software', 'Authentication'],
route: '/library/bitwarden.svg',
url: 'https://bitwarden.com/'
url: 'https://bitwarden.com/',
brandUrl: 'https://bitwarden.com/brand/'
},
{
title: 'Voicemod',
@@ -2297,7 +2631,8 @@ export const svgs: iSVG[] = [
title: 'Meta',
category: 'Social',
route: '/library/meta.svg',
url: 'https://about.meta.com/es/'
url: 'https://about.meta.com/es/',
brandUrl: 'https://about.meta.com/brand/resources/'
},
{
title: 'Stability AI',
@@ -2307,7 +2642,7 @@ export const svgs: iSVG[] = [
},
{
title: 'Google PaLM',
category: 'AI',
category: ['AI', 'Google'],
route: '/library/google-palm.svg',
url: 'https://ai.google/discover/palm2/'
},
@@ -2321,7 +2656,8 @@ export const svgs: iSVG[] = [
title: 'Sentry',
category: 'Software',
route: '/library/sentry.svg',
url: 'https://sentry.io/'
url: 'https://sentry.io/',
brandUrl: 'https://sentry.io/branding/'
},
{
title: 'Grafana',
@@ -2387,12 +2723,6 @@ export const svgs: iSVG[] = [
},
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',
@@ -2401,5 +2731,1169 @@ export const svgs: iSVG[] = [
dark: '/library/radix-ui_dark.svg'
},
url: 'https://www.radix-ui.com/'
},
{
title: 'Web.dev',
category: 'Education',
route: '/library/webdev.svg',
url: 'https://web.dev/'
},
{
title: 'SWR',
category: 'Library',
route: {
light: '/library/swr-light.svg',
dark: '/library/swr-dark.svg'
},
url: 'https://swr.vercel.app/'
},
{
title: 'Refine',
category: 'Framework',
route: {
light: '/library/refine_dark.svg',
dark: '/library/refine_light.svg'
},
url: 'https://refine.dev/'
},
{
title: 'Youtube Music',
category: ['Google', 'Music'],
route: '/library/youtube_music.svg',
wordmark: {
light: '/library/youtube_music_wordmark_light.svg',
dark: '/library/youtube_music_wordmark_dark.svg'
},
url: 'https://music.youtube.com/'
},
{
title: 'TIDAL',
category: 'Music',
route: {
light: '/library/tidal_light.svg',
dark: '/library/tidal_dark.svg'
},
wordmark: {
light: '/library/tidal_wordmark_light.svg',
dark: '/library/tidal_wordmark_dark.svg'
},
url: 'https://tidal.com/'
},
{
title: 'OBS',
category: 'Software',
route: '/library/obs.svg',
url: 'https://obsproject.com/'
},
{
title: 'Stack Overflow',
category: 'Software',
route: '/library/stackoverflow.svg',
wordmark: '/library/stackoverflow_wordmark.svg',
url: 'https://stackoverflow.com/',
brandUrl: 'https://stackoverflow.design/brand/'
},
{
title: 'TikTok',
category: 'Social',
route: '/library/tiktok.svg',
url: 'https://www.tiktok.com/'
},
{
title: 'Ngrok',
category: 'Software',
route: {
dark: '/library/ngrok-dark.svg',
light: '/library/ngrok-light.svg'
},
url: 'https://ngrok.com'
},
{
title: 'Lemon Squeezy',
category: 'Software',
route: '/library/lemonsqueezy.svg',
url: 'https://www.lemonsqueezy.com'
},
{
title: 'Asana',
category: 'Software',
route: '/library/asana-logo.svg',
wordmark: {
dark: '/library/asana-wordmark-dark.svg',
light: '/library/asana-wordmark-light.svg'
},
url: 'https://asana.com'
},
{
title: 'UpLeveled',
category: 'Education',
route: '/library/upleveled.svg',
wordmark: '/library/upleveled-wordmark.svg',
url: 'https://upleveled.io/'
},
{
title: 'Zoom',
category: 'Software',
route: '/library/zoom.svg',
url: 'https://zoom.us/'
},
{
title: 'Tina',
category: 'CMS',
route: '/library/tina.svg',
wordmark: '/library/tina_wordmark.svg',
url: 'https://tina.io/'
},
{
title: 'Next.js',
category: ['Framework', 'Vercel'],
route: '/library/nextjs_icon_dark.svg',
wordmark: {
light: '/library/nextjs_logo_light.svg',
dark: '/library/nextjs_logo_dark.svg'
},
url: 'https://nextjs.org/'
},
{
title: 'Mistral AI',
category: 'AI',
route: '/library/mistral-ai_logo.svg',
wordmark: '/library/mistral-ai_wordmark.svg',
url: 'https://mistral.ai/'
},
{
title: 'Hugging Face',
category: 'AI',
route: '/library/hugging_face.svg',
url: 'https://huggingface.co/',
brandUrl: 'https://huggingface.co/brand'
},
{
title: 'Node.js',
category: 'Library',
route: '/library/nodejs.svg',
url: 'https://nodejs.org/',
brandUrl: 'https://nodejs.org/en/about/branding'
},
{
title: 'Raindrop.io',
category: 'Software',
route: '/library/raindrop.svg',
url: 'https://raindrop.io/'
},
{
title: 'Microsoft Todo',
category: 'Software',
route: '/library/microsoft-todo.svg',
url: 'https://to-do.office.com/'
},
{
title: 'Manifest',
category: ['Software', 'AI', 'Database'],
route: '/library/manifest.svg',
url: 'https://manifest.build',
brandUrl: 'https://manifest.build/brand-assets'
},
{
title: 'Supabase',
category: 'Database',
route: '/library/supabase.svg',
url: 'https://supabase.com/',
wordmark: {
light: '/library/supabase_wordmark_light.svg',
dark: '/library/supabase_wordmark_dark.svg'
},
brandUrl: 'https://supabase.com/brand-assets'
},
{
title: 'Gleam',
category: 'Language',
route: '/library/gleam.svg',
url: 'https://gleam.run/'
},
{
title: 'Flowbite',
category: 'Framework',
route: '/library/flowbite.svg',
url: 'https://flowbite.com/'
},
{
title: 'Hume AI',
category: 'AI',
route: '/library/hume-ai.svg',
url: 'https://hume.ai/'
},
{
title: 'Resend',
category: 'Software',
url: 'https://resend.com/',
route: {
light: '/library/resend-icon-black.svg',
dark: '/library/resend-icon-white.svg'
},
wordmark: {
light: '/library/resend-wordmark-black.svg',
dark: '/library/resend-wordmark-white.svg'
},
brandUrl: 'https://resend.com/brand'
},
{
title: 'Layers',
category: 'Design',
route: {
light: '/library/layers_light.svg',
dark: '/library/layers_dark.svg'
},
url: 'https://layers.to/'
},
{
title: 'Exome',
category: 'Library',
route: '/library/exome.svg',
url: 'https://exome.dev/'
},
{
title: 'Poper',
category: 'AI',
route: '/library/poper.svg',
url: 'https://www.poper.ai'
},
{
title: 'Dub',
category: 'Software',
route: {
light: '/library/dub.svg',
dark: '/library/dub_dark_logo.svg'
},
wordmark: {
light: '/library/dub_light_wordmark.svg',
dark: '/library/dub_dark_wordmark.svg'
},
url: 'https://dub.co',
brandUrl: 'https://dub.co/brand'
},
{
title: 'Turso',
category: ['Database', 'Software'],
route: {
light: '/library/turso-light.svg',
dark: '/library/turso-dark.svg'
},
wordmark: {
light: '/library/turso-wordmark-light.svg',
dark: '/library/turso-wordmark-dark.svg'
},
url: 'https://turso.tech'
},
{
title: 'RelaGit',
category: 'Software',
route: {
light: '/library/relagit-icon-light.svg',
dark: '/library/relagit-icon-dark.svg'
},
wordmark: {
light: '/library/relagit-wordmark-light.svg',
dark: '/library/relagit-wordmark-dark.svg'
},
url: 'https://rela.dev'
},
{
title: 'T3 Stack',
category: 'Framework',
route: {
light: '/library/t3-dark.svg',
dark: '/library/t3-light.svg'
},
url: 'https://create.t3.gg/'
},
{
title: 'Apple Music',
category: 'Music',
route: '/library/apple-music-icon.svg',
wordmark: {
light: '/library/apple-music-wordmark-light.svg',
dark: '/library/apple-music-wordmark-dark.svg'
},
url: 'https://music.apple.com/'
},
{
title: 'YGeeker',
category: 'Software',
route: '/library/ygeeker.svg',
url: 'https://www.ygeeker.com'
},
{
title: 'PostCSS',
category: 'Compiler',
route: '/library/postcss.svg',
wordmark: '/library/postcss_wordmark.svg',
url: 'https://postcss.org/'
},
{
title: 'SVG',
category: ['Language', 'Design'],
route: '/library/svg.svg',
wordmark: '/library/svg_wordmark.svg',
url: 'https://www.w3.org/TR/SVG/'
},
{
title: 'Todoist',
category: 'Software',
route: '/library/todoist.svg',
wordmark: '/library/todoist-wordmark.svg',
url: 'https://todoist.com/'
},
{
title: 'Apidog',
category: 'Software',
route: '/library/apidog.svg',
url: 'https://apidog.com/'
},
{
title: 'Chart.js',
category: 'Library',
route: '/library/chartjs.svg',
url: 'https://www.chartjs.org/'
},
{
title: 'JSON Schema',
category: 'Library',
route: '/library/json-schema.svg',
url: 'https://json-schema.org/'
},
{
title: 'v0',
category: 'Vercel',
route: {
light: '/library/v0_light.svg',
dark: '/library/v0_dark.svg'
},
url: 'https://v0.dev/'
},
{
title: 'Bento',
category: 'Software',
route: '/library/bento.svg',
url: 'https://bento.me/home'
},
{
title: 'Firebase',
category: ['Hosting', 'Google'],
route: '/library/firebase.svg',
wordmark: '/library/firebase-wordmark.svg',
url: 'https://firebase.google.com/'
},
{
title: 'Prettier',
category: 'Library',
route: {
light: '/library/prettier-icon-light.svg',
dark: '/library/prettier-icon-dark.svg'
},
url: 'https://prettier.io/'
},
{
title: 'Leap Wallet',
category: ['Crypto', 'Software', 'Payment'],
route: '/library/leap-wallet.svg',
wordmark: {
light: '/library/leap-wallet-wordmark-light.svg',
dark: '/library/leap-wallet-wordmark-dark.svg'
},
url: 'https://leapwallet.io/'
},
{
title: 'Nx',
category: ['Devtool', 'Monorepo'],
route: {
light: '/library/nx_light.svg',
dark: '/library/nx_dark.svg'
},
url: 'https://nx.dev'
},
{
title: 'Google Colaboratory',
category: ['Google', 'Software'],
route: '/library/Google_Colaboratory.svg',
url: 'https://colab.research.google.com/'
},
{
title: 'Raspberry PI',
category: ['Hardware', 'Software'],
route: '/library/raspberry_pi.svg',
url: 'https://www.raspberrypi.com/'
},
{
title: 'Vite',
category: ['Devtool', 'VoidZero'],
route: '/library/vitejs.svg',
url: 'https://vitejs.dev'
},
{
title: 'Vitest',
category: ['Framework', 'VoidZero'],
route: '/library/vitest.svg',
url: 'https://vitest.dev/'
},
{
title: 'Oxc',
category: ['Devtool', 'VoidZero'],
route: '/library/oxc.svg',
url: 'https://oxc.rs/'
},
{
title: 'Rolldown',
category: ['Compiler', 'VoidZero'],
route: '/library/rolldown.svg',
url: 'https://rolldown.rs/'
},
{
title: 'ManzDev',
category: ['Community'],
route: '/library/manzdev.svg',
url: 'https://manz.dev/'
},
{
title: 'Afordin',
category: ['Community'],
route: {
light: '/library/afordin-light.svg',
dark: '/library/afordin-dark.svg'
},
url: 'https://github.com/Afordin'
},
{
title: 'MediaWiki',
category: ['Software', 'CMS'],
route: '/library/mediawiki.svg',
wordmark: {
light: '/library/mediawiki-wordmark-light.svg',
dark: '/library/mediawiki-wordmark-dark.svg'
},
url: 'https://www.mediawiki.org/'
},
{
title: 'Carrd',
category: ['Social'],
route: '/library/carrd.svg',
url: 'https://carrd.co/'
},
{
title: 'Claude AI',
category: 'AI',
route: '/library/claude-ai-icon.svg',
wordmark: {
light: '/library/claude-ai-wordmark-icon_light.svg',
dark: '/library/claude-ai-wordmark-icon_dark.svg'
},
url: 'https://claude.ai/'
},
{
title: 'UnoCSS',
category: 'Devtool',
route: '/library/unocss.svg',
url: 'https://unocss.dev/'
},
{
title: 'tRPC',
category: 'Framework',
route: '/library/trpc.svg',
wordmark: {
light: '/library/trpc_wordmark_light.svg',
dark: 'library/trpc_wordmark_dark.svg'
},
url: 'https://trpc.io/'
},
{
title: 'Bluesky',
category: 'Social',
route: '/library/bluesky.svg',
url: 'https://blueskyweb.xyz/'
},
{
title: 'Drizzle ORM',
category: ['Library', 'Database'],
route: {
light: '/library/drizzle-orm_light.svg',
dark: '/library/drizzle-orm_dark.svg'
},
url: 'https://orm.drizzle.team/'
},
{
title: 'daily.dev',
category: ['Social', 'Community'],
route: {
light: '/library/daily-dev-ligth.svg',
dark: '/library/daily-dev-dark.svg'
},
url: 'https://daily.dev/'
},
{
title: 'Polars',
category: 'Library',
route: '/library/polars-logo.svg',
url: 'https://pola.rs/'
},
{
title: 'Zed',
category: 'Software',
route: {
light: '/library/zed-logo.svg',
dark: '/library/zed-logo_dark.svg'
},
url: 'https://zed.dev/'
},
{
title: 'Polar',
category: ['Software', 'Payment'],
route: {
light: '/library/polar-sh_light.svg',
dark: '/library/polar-sh_dark.svg'
},
url: 'https://polar.sh/'
},
{
title: 'bolt',
category: 'Devtool',
route: {
light: '/library/bolt-new.svg',
dark: '/library/bolt-new_dark.svg'
},
url: 'https://bolt.new/'
},
{
title: 'JSON',
category: 'Language',
route: '/library/json.svg',
url: 'https://json.org/'
},
{
title: 'nuqs',
category: 'Library',
route: {
light: '/library/nuqs.svg',
dark: '/library/nuqs_dark.svg'
},
wordmark: {
light: '/library/nuqs-wordmark.svg',
dark: '/library/nuqs-wordmark_dark.svg'
},
url: 'https://nuqs.47ng.com/'
},
{
title: 'SoundCloud',
category: 'Music',
route: {
light: '/library/soundcloud-logo.svg',
dark: '/library/soundcloud-logo_dark.svg'
},
wordmark: {
light: '/library/soundcloud-wordmark.svg',
dark: 'library/soundcloud-wordmark_dark.svg'
},
url: 'https://soundcloud.com/'
},
{
title: 'Mermaid',
category: ['Library'],
route: {
light: '/library/mermaid-logo-light.svg',
dark: '/library/mermaid-logo-dark.svg'
},
url: 'https://mermaid.js.org/'
},
{
title: 'Home Assistant',
category: ['IoT', 'Software'],
route: '/library/home-assistant.svg',
wordmark: {
light: '/library/home-assistant-wordmark.svg',
dark: '/library/home-assistant-wordmark-dark.svg'
},
url: 'https://github.com/home-assistant/assets/tree/master/logo'
},
{
title: 'UXAnaRangel',
category: ['Community'],
route: {
light: '/library/uxanarangel-light.svg',
dark: '/library/uxanarangel-dark.svg'
},
url: 'https://uxanarangel.com/'
},
{
title: 'UXCorpRangel',
category: ['Community'],
route: {
light: '/library/uxcorprangel-light.svg',
dark: '/library/uxcorprangel-dark.svg'
},
url: 'https://github.com/UXCorpRangel/'
},
{
title: 'PostHog',
category: 'Devtool',
route: '/library/posthog.svg',
wordmark: {
light: '/library/posthog-wordmark.svg',
dark: '/library/posthog-wordmark_dark.svg'
},
url: 'https://posthog.com/',
brandUrl: 'https://posthog.com/handbook/company/brand-assets'
},
{
title: 'PowerToys',
category: 'Software',
route: '/library/powertoys.svg',
url: 'https://learn.microsoft.com/en-us/windows/powertoys/'
},
{
title: 'PowerShell',
category: 'Language',
route: '/library/powershell.svg',
url: 'https://learn.microsoft.com/en-us/powershell/'
},
{
title: 'Lottielab',
category: 'Design',
route: '/library/lottielab.svg',
url: 'https://www.lottielab.com/'
},
{
title: 'TanStack',
category: ['Software', 'Library'],
route: '/library/tanstack.svg',
url: 'https://tanstack.com/'
},
{
title: 'TypeGPU',
category: ['Software', 'Library'],
route: {
light: '/library/typegpu-light.svg',
dark: '/library/typegpu-dark.svg'
},
wordmark: {
light: '/library/typegpu-wordmark-light.svg',
dark: '/library/typegpu-wordmark-dark.svg'
},
url: 'https://typegpu.com'
},
{
title: 'dotenv',
category: ['Config', 'Library', 'Devtool'],
route: '/library/dotenv.svg',
url: 'https://github.com/motdotla/dotenv'
},
{
title: 'dotenvx',
category: ['Secrets', 'Config', 'Devtool'],
route: '/library/dotenvx.svg',
url: 'https://dotenvx.com'
},
{
title: 'Motion',
category: 'Library',
route: {
light: '/library/motion.svg',
dark: '/library/motion_dark.svg'
},
url: 'https://motion.dev/'
},
{
title: 'Keycloak',
category: 'Authentication',
route: '/library/keycloak.svg',
url: 'https://keycloak.org'
},
{
title: 'DeepSeek',
category: 'AI',
route: '/library/deepseek.svg',
wordmark: '/library/deepseek_wordmark.svg',
url: 'https://deepseek.com/'
},
{
title: 'Shiki',
category: 'Library',
route: '/library/shiki.svg',
url: 'https://shiki.style/'
},
{
title: 'Dropbox',
category: ['Hosting', 'Software'],
route: '/library/dropbox.svg',
wordmark: {
light: '/library/dropbox_wordmark.svg',
dark: '/library/dropbox_wordmark_dark.svg'
},
url: 'https://www.dropbox.com/',
brandUrl: 'https://brand.dropbox.com/'
},
{
title: 'Open WebUI',
category: ['AI', 'Software'],
route: '/library/openwebui.svg',
url: 'https://openwebui.com/'
},
{
title: 'Base UI',
category: 'Library',
route: {
light: '/library/base-ui.svg',
dark: '/library/base-ui-dark.svg'
},
url: 'https://base-ui.com/'
},
{
title: 'Vercel',
category: ['Hosting', 'Vercel'],
route: {
light: '/library/vercel.svg',
dark: '/library/vercel_dark.svg'
},
wordmark: {
light: '/library/vercel_wordmark.svg',
dark: '/library/vercel_wordmark_dark.svg'
},
brandUrl: 'https://vercel.com/geist/brands',
url: 'https://vercel.com/'
},
{
title: 'Model Context Protocol',
category: ['AI', 'Framework'],
route: {
light: '/library/model-context-protocol-light.svg',
dark: '/library/model-context-protocol-dark.svg'
},
wordmark: {
light: '/library/model-context-protocol-wordmark-light.svg',
dark: '/library/model-context-protocol-wordmark-dark.svg'
},
url: 'https://modelcontextprotocol.io/'
},
{
title: 'Socket.io',
category: 'Software',
route: {
dark: '/library/socketio-dark.svg',
light: '/library/socketio-light.svg'
},
url: 'https://socket.io/'
},
{
title: 'Ant Design',
category: 'Library',
route: '/library/ant-design-dark-theme.svg',
url: 'https://ant.design/'
},
{
title: 'VSCodium',
category: 'Software',
route: '/library/vscodium.svg',
url: 'https://vscodium.com/'
},
{
title: 'Zen Browser',
category: 'Browser',
route: {
light: '/library/zen-browser-light.svg',
dark: '/library/zen-browser-dark.svg'
},
wordmark: {
light: '/library/zen-browser-wordmark-light.svg',
dark: '/library/zen-browser-wordmark-dark.svg'
},
url: 'https://zen-browser.app/'
},
{
title: 'Gemini',
category: ['Google', 'AI'],
route: '/library/gemini.svg',
wordmark: '/library/gemini_wordmark.svg',
url: 'https://gemini.google.com/'
},
{
title: 'xAI (Grok)',
category: ['AI'],
route: {
light: '/library/xai_light.svg',
dark: '/library/xai_dark.svg'
},
url: 'https://grok.com/'
},
{
title: 'Qwen',
category: ['AI'],
route: {
light: '/library/qwen_light.svg',
dark: '/library/qwen_dark.svg'
},
url: 'https://chat.qwenlm.ai/'
},
{
title: 'Inflection AI',
category: 'AI',
route: {
light: '/library/inflectionai_light.svg',
dark: '/library/inflectionai_dark.svg'
},
wordmark: {
light: '/library/inflectionai_wordmark_light.svg',
dark: '/library/inflectionai_wordmark_dark.svg'
},
url: 'https://inflection.ai/'
},
{
title: 'D3.js',
category: 'Library',
route: '/library/D3.svg',
url: 'https://d3js.org/'
},
{
title: 'Anthropic',
category: 'AI',
route: {
light: '/library/anthropic_black.svg',
dark: '/library/anthropic_white.svg'
},
wordmark: {
light: '/library/anthropic_black_wordmark.svg',
dark: '/library/anthropic_white_wordmark.svg'
},
url: 'https://www.anthropic.com/'
},
{
title: 'Replit',
category: 'AI',
route: '/library/replit.svg',
wordmark: {
light: '/library/replit-wordmark-light.svg',
dark: '/library/replit-wordmark-dark.svg'
},
url: 'https://replit.com/',
brandUrl: 'https://replit.com/brandkit'
},
{
title: 'Magic UI',
category: 'Library',
route: '/library/magicui.svg',
url: 'https://magicui.design/'
},
{
title: 'Web Components',
category: 'Library',
route: '/library/webcomponents.svg',
url: 'https://www.webcomponents.org/'
},
{
title: 'Designali',
category: ['Software', 'Design'],
route: '/library/designali.svg',
url: 'https://designali.in'
},
{
title: 'CurseForge',
category: ['Marketplace', 'Community'],
route: {
light: '/library/curseforge.svg',
dark: '/library/curseforge-dark.svg'
},
wordmark: {
light: '/library/curseforge-wordmark.svg',
dark: '/library/curseforge-wordmark-dark.svg'
},
url: 'https://curseforge.com/',
brandUrl:
'https://www.figma.com/file/YYn36CxVpcT6aPKDXIH9JG/CurseForge-Brandbook?type=design&node-id=0-1&t=dvC0gPtyP36PQdsi-0'
},
{
title: 'Cursor',
category: ['Software'],
route: {
light: '/library/cursor_light.svg',
dark: '/library/cursor_dark.svg'
},
wordmark: {
light: '/library/cursor_wordmark_light.svg',
dark: '/library/cursor_wordmark_dark.svg'
},
url: 'https://www.cursor.com'
},
{
title: 'Ghostty',
category: ['Software'],
route: '/library/ghostty.svg',
wordmark: {
dark: '/library/ghostty_wordmark_dark.svg',
light: '/library/ghostty_wordmark_light.svg'
},
url: 'https://ghostty.org/'
},
{
title: 'Better Auth',
category: ['Authentication', 'Library'],
route: {
light: '/library/better-auth_light.svg',
dark: '/library/better-auth_dark.svg'
},
wordmark: {
dark: '/library/better-auth_wordmark_dark.svg',
light: '/library/better-auth_wordmark_light.svg'
},
url: 'https://www.better-auth.com/'
},
{
title: 'Buy Me a Coffee',
category: ['Software'],
route: '/library/bmc.svg',
brandUrl: 'https://buymeacoffee.com/brand',
url: 'https://buymeacoffee.com/'
},
{
title: 'GitHub',
category: 'Software',
route: {
light: '/library/github_light.svg',
dark: '/library/github_dark.svg'
},
wordmark: {
light: '/library/github_wordmark_light.svg',
dark: '/library/github_wordmark_dark.svg'
},
url: 'https://github.com/',
brandUrl: 'https://brand.github.com/'
},
{
title: 'Firebase Studio',
category: ['AI', 'Google'],
route: '/library/firebase-studio.svg',
url: 'https://firebase.studio/'
},
{
title: 'HeroUI',
category: 'Library',
route: {
light: '/library/heroui_black.svg',
dark: '/library/heroui_light.svg'
},
url: 'https://www.heroui.com/'
},
{
title: 'Convex',
category: ['Database', 'Software'],
route: '/library/convex.svg',
wordmark: {
light: '/library/convex_wordmark_light.svg',
dark: '/library/convex_wordmark_dark.svg'
},
url: 'https://www.convex.dev/'
},
{
title: 'Clerk',
category: ['Software', 'Authentication'],
route: {
light: '/library/clerk-light.svg',
dark: '/library/clerk-dark.svg'
},
wordmark: {
light: '/library/clerk-wordmark-light.svg',
dark: '/library/clerk-wordmark-dark.svg'
},
url: 'https://clerk.com/',
brandUrl: 'https://clerk.com/design'
},
{
title: 'Terraform',
category: ['Software', 'Language', 'IaC'],
route: '/library/terraform.svg',
url: 'https://terraform.io',
brandUrl: 'https://brand.hashicorp.com'
},
{
title: 'Rspack',
category: 'Compiler',
route: '/library/rspack.svg',
url: 'https://rspack.rs/'
},
{
title: 'Rsbuild',
category: ['Devtool', 'Compiler'],
route: '/library/rsbuild.svg',
url: 'https://rsbuild.rs'
},
{
title: 'React Wheel Picker',
category: 'Library',
route: {
light: '/library/react-wheel-picker_light.svg',
dark: '/library/react-wheel-picker_dark.svg'
},
url: 'https://react-wheel-picker.chanhdai.com'
},
{
title: 'cPanel',
category: 'Software',
route: '/library/cP_orange.svg',
wordmark: '/library/cPanel_orange_wordmark.svg',
url: 'https://cpanel.net/',
brandUrl: 'https://cpanel.net/company/cpanel-brand-guide/'
},
{
title: 'Lovable',
category: 'AI',
route: '/library/lovable.svg',
url: 'https://lovable.dev/',
brandUrl: 'https://lovable.dev/brand'
},
{
title: 'Mocha',
category: 'AI',
route: {
light: '/library/mocha-light.svg',
dark: '/library/mocha-dark.svg'
},
wordmark: {
light: '/library/mocha-light_wordmark.svg',
dark: '/library/mocha-dark_wordmark.svg'
},
url: 'https://getmocha.com/'
},
{
title: 'OpenRouter',
category: 'AI',
route: {
light: '/library/openrouter_light.svg',
dark: '/library/openrouter_dark.svg'
},
url: 'https://openrouter.ai/'
},
{
title: 'OpenHunts',
category: ['Platform', 'Community'],
route: '/library/openhunts.svg',
url: 'https://openhunts.com'
},
{
title: 'Kokonut UI',
category: 'Library',
route: {
light: '/library/kokonutui-light.svg',
dark: '/library/kokonutui-dark.svg'
},
url: 'https://kokonutui.com/'
},
{
title: 'Google Cloud',
category: ['Google', 'Hosting'],
route: '/library/google-cloud.svg',
url: 'https://cloud.google.com/'
},
{
title: 'Zulip',
category: ['Software', 'Social'],
route: '/library/zulip.svg',
wordmark: '/library/zulip-wordmark.svg',
url: 'https://zulip.com/',
brandUrl:
'https://github.com/zulip/zulip/tree/bd29fb3e2691daef570ba5661351922a16782dd2/static/images/logo'
},
{
title: 'Effect TS',
category: 'Library',
route: {
light: '/library/effect_light.svg',
dark: '/library/effect_dark.svg'
},
url: 'https://effect.website/',
brandUrl:
'https://sparkling-lancer-5bd.notion.site/Effect-logo-guidelines-14280adbc6354eaa8bd173e1bc0128a4'
},
{
title: 'Ark UI',
category: 'Library',
route: '/library/ark-ui.svg',
url: 'https://ark-ui.com/'
},
{
title: 'Mantine',
category: 'Library',
route: '/library/mantine.svg',
url: 'https://mantine.dev'
},
{
title: 'ESLint',
category: 'Library',
route: '/library/eslint.svg',
url: 'https://eslint.org/'
},
{
title: 'Apache Kafka',
category: 'Analytics',
route: '/library/apache-kafka-logo.svg',
wordmark: {
light: '/library/apache-kafka-wordmark-light.svg',
dark: '/library/apache-kafka-wordmark-dark.svg'
},
url: 'https://kafka.apache.org/',
brandUrl: 'https://kafka.apache.org/brand'
},
{
title: 'PlainSignal',
category: 'Analytics',
route: '/library/plainsignal.svg',
url: 'https://plainsignal.com/'
},
{
title: 'Heptabase',
category: 'Software',
route: '/library/heptabase.svg',
url: 'https://heptabase.com/'
},
{
title: 'UnJS',
category: 'Library',
route: '/library/unjs.svg',
url: 'https://unjs.io/'
},
{
title: 'PowerSync',
category: ['Sync Engine', 'Database', 'Library'],
route: '/library/powersync.svg',
wordmark: {
light: '/library/powersync-wordmark-light.svg',
dark: '/library/powersync-wordmark-dark.svg'
},
url: 'https://powersync.com/'
},
{
title: 'n8n',
category: ['Platform', 'Automation', 'AI'],
route: '/library/n8n.svg',
wordmark: {
dark: '/library/n8n-wordmark-dark.svg',
light: '/library/n8n-wordmark-light.svg'
},
url: 'https://n8n.io/'
},
{
title: 'Kibo UI',
category: 'Library',
route: {
light: '/library/kibo-ui-light.svg',
dark: '/library/kibo-ui-dark.svg'
},
url: 'https://kibo-ui.com/'
},
{
title: 'Ahrefs',
category: 'Platform',
route: '/library/ahrefs.svg',
wordmark: {
dark: '/library/ahrefs-wordmark-dark.svg',
light: '/library/ahrefs-wordmark-light.svg'
},
url: 'https://ahrefs.com/',
brandUrl: 'https://ahrefs.com/logo'
}
];
+51 -17
View File
@@ -5,6 +5,7 @@ description: The API reference is a detailed documentation of all the endpoints
<script>
import Endpoint from '../components/endpoints.svelte';
import Alert from '../ui/alert/alert-component.svelte';
</script>
## Introduction
@@ -13,16 +14,20 @@ SVGL API is a RESTFul API that allows you to get all the information of the SVGs
## 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.
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.
<Alert type="info">
Don't use the API for create the same product as SVGL. The API is intended to be used for extensions, plugins, or other tools that can help the community.
</Alert>
## Base URL
The base URL for the API is:
```bash
https://svgl.app/api/svgs
https://api.svgl.app
# or
https://svgl.app/api/categories
https://api.svgl.app/categories
```
## Typescript usage
@@ -39,27 +44,30 @@ export interface Category {
- For SVGs:
```ts
type ThemeOptions = {
light: string;
export type ThemeOptions = {
dark: string;
light: string;
};
export interface iSVG {
id: number;
id?: number;
title: string;
category: string | string[];
category: tCategory | tCategory[];
route: string | ThemeOptions;
wordmark?: string | ThemeOptions;
brandUrl?: string;
url: string;
}
```
- `tCategory` is a large list of categories that can be found [here](https://github.com/pheralb/svgl/blob/main/src/types/categories.ts#L1).
## Endpoints
<Endpoint title="Get all SVGs" method="GET" description="Returns all the SVGs in the repository.">
```bash
/api/svgs
https://api.svgl.app
```
<p></p>
@@ -71,7 +79,7 @@ export interface iSVG {
"id": 0,
"title": "Discord",
"category": "Software",
"route": "https://svgl.app/library/discord.svg",
"route": "https://svgl.app/discord.svg",
"url": "https://discord.com/"
},
...
@@ -83,7 +91,7 @@ export interface iSVG {
<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
https://api.svgl.app?limit=10
```
<p></p>
@@ -95,7 +103,7 @@ export interface iSVG {
"id": 0,
"title": "Discord",
"category": "Software",
"route": "https://svgl.app/library/discord.svg",
"route": "https://svgl.app/discord.svg",
"url": "https://discord.com/"
},
...
@@ -107,7 +115,7 @@ export interface iSVG {
<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
https://api.svgl.app/category/software
```
<p></p>
@@ -119,7 +127,7 @@ export interface iSVG {
"id": 0,
"title": "Discord",
"category": "Software",
"route": "https://svgl.app/library/discord.svg",
"route": "https://svgl.app/discord.svg",
"url": "https://discord.com/"
},
...
@@ -130,10 +138,36 @@ The list of categories is available [here](https://github.com/pheralb/svgl/blob/
</Endpoint>
<Endpoint title="Get the SVG code for a logo" method="GET" description="Returns the SVG code directly.">
```bash
https://api.svgl.app/svg/adobe.svg
```
<p></p>
```html
// Returns:
<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>
```
</Endpoint>
<Endpoint title="Get only categories" method="GET" description="Returns only categories with the number of SVGs in each category.">
```bash
/api/categories
https://api.svgl.app/categories
```
<p></p>
@@ -158,7 +192,7 @@ The list of categories is available [here](https://github.com/pheralb/svgl/blob/
<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
https://api.svgl.app?search=axiom
```
<p></p>
@@ -171,8 +205,8 @@ The list of categories is available [here](https://github.com/pheralb/svgl/blob/
"title": "Axiom",
"category": "Software",
"route": {
"light": "https://svgl.app/library/axiom-light.svg",
"dark": "https://svgl.app/library/axiom-dark.svg"
"light": "https://svgl.app/axiom-light.svg",
"dark": "https://svgl.app/axiom-dark.svg"
},
"url": "https://axiom.co/"
}
+5
View File
@@ -0,0 +1,5 @@
<script lang="ts">
import { redirect } from '@sveltejs/kit';
redirect(301, '/');
</script>
-7
View File
@@ -1,7 +0,0 @@
import type { LayoutServerLoad } from './$types';
import { fetchGitHubStars } from '@/utils/getStarsRepository';
export const load: LayoutServerLoad = async ({ url: { pathname } }) => {
const stars = await fetchGitHubStars();
return { pathname, stars };
};
+52 -28
View File
@@ -1,15 +1,15 @@
<script lang="ts">
import type { LayoutServerData } from './$types';
export let data: LayoutServerData;
import { page } from '$app/stores';
// Global styles:
import '../app.css';
import '@/styles/app.css';
import { cn } from '@/utils/cn';
import { ModeWatcher, mode } from 'mode-watcher';
// Get categories:
// Categories:
import type { tCategory } from '@/types/categories';
import { svgs } from '@/data/svgs';
const categories = svgs
.flatMap((svg) => Array.isArray(svg.category) ? svg.category : [svg.category])
.filter((category, index, array) => array.indexOf(category) === index);
import { getCategories } from '@/data';
// Toaster:
import { Toaster } from 'svelte-sonner';
@@ -20,63 +20,87 @@
// Layout:
import Navbar from '@/components/navbar.svelte';
import { cn } from '@/utils/cn';
import { sidebarCategoryCountStyles } from '@/ui/styles';
import { sidebarItemStyles } from '@/ui/styles';
// Get category counts:
const categories: tCategory[] = getCategories();
let categoryCounts: Record<string, number> = {};
categories.forEach((category) => {
categoryCounts[category] = svgs.filter((svg) => svg.category.includes(category)).length;
});
// Get main pathname:
$: pathname = $page.url.pathname;
</script>
<Navbar currentPath={data.pathname} />
<ModeWatcher />
<Navbar currentPath={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',
'dark:border-neutral-800 md:fixed md:left-0 md:h-[calc(100vh-63px)] md:w-56 md:pb-0',
'bg-white dark:bg-neutral-900',
'backdrop-blur-md opacity-95',
'border-r border-neutral-200 dark:border-neutral-800'
'opacity-95 backdrop-blur-md',
'border-b border-neutral-200 dark:border-neutral-800 md:border-r'
)}
>
<div class="md:px-6 md:py-6">
<div class="md:px-3 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"
class="flex items-center space-x-1 overflow-y-auto px-6 pb-2 pt-2 md:mb-3 md:flex-col md:space-x-0 md:space-y-1 md:overflow-y-visible md:px-0 md:pt-0"
>
<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'
class={cn(
sidebarItemStyles,
pathname === '/'
? 'bg-neutral-200 font-medium text-dark dark:bg-neutral-700/30 dark:text-white'
: ''
}`}
)}
data-sveltekit-preload-data>All</a
>
<!-- Order alfabetically: -->
{#each categories.sort() as category}
<a
href={`/directory/${category.toLowerCase()}`}
data-sveltekit-preload-data
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'
sidebarItemStyles,
pathname === `/directory/${category.toLowerCase()}`
? 'bg-neutral-200 font-medium text-dark dark:bg-neutral-700/30 dark:text-white'
: ''
)}
>
<span>{category}</span>
<span
class={cn(
sidebarCategoryCountStyles,
pathname === `/directory/${category.toLowerCase()}`
? 'border-neutral-300 dark:border-neutral-700'
: '',
'hidden font-mono text-xs md:inline'
)}>{categoryCounts[category]}</span
>
</a>
{/each}
</nav>
</div>
</aside>
<div class="ml-0 md:ml-56 pb-6">
<div class="ml-0 pb-6 md:ml-56">
<Warning />
<Transition pathname={data.pathname}>
<Transition {pathname}>
<slot />
</Transition>
<Toaster
position="bottom-right"
theme={$mode}
class="toaster group"
toastOptions={{
class: 'font-sans',
descriptionClass: 'font-mono',
style: `background-color: #262626;
color: #ffff;
border-radius: 0.4rem; border: 1px solid #121212;`
classes: {
toast: 'group toast dark:group-[.toaster]:bg-neutral-900 group-[.toaster]:font-sans',
description: 'group-[.toast]:text-xs font-mono'
}
}}
/>
</div>
+89 -53
View File
@@ -1,11 +1,27 @@
<script lang="ts">
import type { iSVG } from '@/types/svg';
import { cn } from '@/utils/cn';
import { onMount } from 'svelte';
import { queryParam } from 'sveltekit-search-params';
import Fuse from 'fuse.js';
// Get all svgs:
import { svgsData } from '@/data';
const allSvgs = JSON.parse(JSON.stringify(svgsData));
// Cache sorted arrays
const latestSorted = [...allSvgs].sort((a, b) => b.id! - a.id!);
const alphabeticallySorted = [...allSvgs].sort((a, b) => a.title.localeCompare(b.title));
// Fuzzy search setup:
const fuse = new Fuse<iSVG>(allSvgs, {
keys: ['title'],
threshold: 0.35,
ignoreLocation: true,
isCaseSensitive: false,
shouldSort: true
});
// Components:
import Search from '@/components/search.svelte';
import Container from '@/components/container.svelte';
@@ -13,74 +29,76 @@
import Grid from '@/components/grid.svelte';
import NotFound from '@/components/notFound.svelte';
// URL params
const searchParam = queryParam('search');
// Icons:
import { ArrowDown, ArrowDownUpIcon, ArrowUpDownIcon } from 'lucide-svelte';
import { ArrowDown, ArrowDownUpIcon, ArrowUpDownIcon, TrashIcon } 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[] = [];
let displaySvgs: iSVG[] = [];
let maxDisplay = 24;
// Order by last added:
if (searchTerm.length === 0) {
filteredSvgs = allSvgs.sort((a: iSVG, b: iSVG) => {
return b.id! - a.id!;
});
}
const loadSvgs = () => {
if (isFirstLoad || showAll) {
filteredSvgs = allSvgs;
isFirstLoad = false;
} else {
filteredSvgs = allSvgs.slice(0, 30);
}
const updateDisplaySvgs = () => {
displaySvgs = showAll ? filteredSvgs : filteredSvgs.slice(0, maxDisplay);
};
// Search svgs:
// Hybrid search strategy:
// - Simple string matching for queries < 3 chars
// - Fuzzy search for longer queries (handle typos and partial matches)
const searchSvgs = () => {
loadSvgs();
filteredSvgs = allSvgs.filter((svg: iSVG) => {
let svgTitle = svg.title.toLowerCase();
return svgTitle.includes(searchTerm.toLowerCase());
});
$searchParam = searchTerm || null;
if (!searchTerm) {
filteredSvgs = sorted ? alphabeticallySorted : latestSorted;
updateDisplaySvgs();
return;
}
if (searchTerm.length < 3) {
filteredSvgs = allSvgs.filter((svg: iSVG) =>
svg.title.toLowerCase().includes(searchTerm.toLowerCase())
);
} else {
filteredSvgs = fuse.search(searchTerm).map((result) => result.item);
}
updateDisplaySvgs();
};
// Clear search:
const clearSearch = () => {
searchTerm = '';
searchSvgs();
// Use current sort state to determine order
filteredSvgs = sorted ? alphabeticallySorted : latestSorted;
updateDisplaySvgs();
};
// Sort:
const sort = () => {
if (sorted) {
sortByLatest();
} else {
sortAlphabetically();
}
sorted = !sorted;
filteredSvgs = sorted ? alphabeticallySorted : latestSorted;
updateDisplaySvgs();
};
// Sort alphabetically:
const sortAlphabetically = () => {
filteredSvgs = allSvgs.sort((a: iSVG, b: iSVG) => {
return a.title.localeCompare(b.title);
});
};
onMount(() => {
if ($searchParam) {
searchTerm = $searchParam;
}
searchSvgs();
});
// Sort by latest:
const sortByLatest = () => {
filteredSvgs = filteredSvgs.sort((a: iSVG, b: iSVG) => {
return b.id! - a.id!;
});
};
loadSvgs();
$: {
if (showAll || filteredSvgs) {
updateDisplaySvgs();
}
}
</script>
<svelte:head>
@@ -91,14 +109,26 @@
bind:searchTerm
on:input={searchSvgs}
clearSearch={() => clearSearch()}
placeholder={`Search ${filteredSvgs.length} logos...`}
placeholder={`Search ${allSvgs.length} logos...`}
/>
<Container>
<div class="flex items-center justify-end mb-4">
<div class={cn('mb-4 flex items-center justify-end', searchTerm.length > 0 && 'justify-between')}>
{#if searchTerm.length > 0}
<button
class={cn(
'flex items-center justify-center space-x-1 rounded-md py-1.5 text-sm font-medium opacity-80 transition-opacity hover:opacity-100',
filteredSvgs.length === 0 && 'hidden'
)}
on:click={() => clearSearch()}
>
<TrashIcon size={16} strokeWidth={2} class="mr-1" />
<span>Clear results</span>
</button>
{/if}
<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',
'flex items-center justify-center space-x-1 rounded-md py-1.5 text-sm font-medium opacity-80 transition-opacity hover:opacity-100',
filteredSvgs.length === 0 && 'hidden'
)}
on:click={() => sort()}
@@ -108,22 +138,28 @@
{:else}
<ArrowUpDownIcon size={16} strokeWidth={2} class="mr-1" />
{/if}
<span>{sorted ? 'Sort by latest' : 'Sort alphabetically'}</span>
<span>{sorted ? 'Sort by latest' : 'Sort A-Z'}</span>
</button>
</div>
<Grid>
{#each filteredSvgs.slice(0, showAll ? undefined : 30) as svg}
<SvgCard svgInfo={svg} />
{#each displaySvgs as svg}
<SvgCard svgInfo={svg} {searchTerm} />
{/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">
{#if filteredSvgs.length > maxDisplay && !showAll}
<div class="mt-4 flex items-center justify-center">
<button
class={buttonStyles}
on:click={() => {
showAll = true;
updateDisplaySvgs();
}}
>
<div class="relative flex items-center space-x-2">
<ArrowDown size={16} strokeWidth={2} />
<span>Load All SVGs</span>
<span class="opacity-70">
({filteredSvgs.length - 30} more)
({filteredSvgs.length - maxDisplay} more)
</span>
</div>
</button>
+11 -10
View File
@@ -11,12 +11,12 @@
</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')]"
class="bg-white bg-[url('/images/hero-pattern_light.svg')] dark:bg-neutral-900 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">
<div class="relative z-10 mx-auto max-w-screen-xl px-4 py-8 text-center lg:py-20">
<div class="flex items-center justify-center space-x-4 text-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"
class="mb-4 text-4xl font-bold leading-none tracking-tight text-neutral-900 dark:text-white md:text-5xl lg:text-6xl"
>
API Reference
</h1>
@@ -25,13 +25,13 @@
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"
class="inline-flex h-full w-full cursor-default items-center justify-center rounded-full border border-neutral-100 bg-neutral-100 px-3 py-1 font-mono text-xs font-medium backdrop-blur-3xl dark:border-neutral-800 dark:bg-neutral-900 dark:text-white"
>
beta
v1
</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">
<p class="text-lg font-normal text-gray-500 dark:text-gray-200 sm:px-16 lg:px-48 lg:text-xl">
The API reference is a detailed documentation of all the endpoints available in the API.
</p>
</div>
@@ -40,9 +40,10 @@
<article
class={cn(
'prose dark:prose-invert',
'mx-auto py-10 px-4 max-w-3xl',
'prose-h2:font-medium',
'prose-pre:m-0'
'mx-auto max-w-3xl px-4 py-10',
'prose-h2:font-medium prose-h2:tracking-tight prose-h2:underline prose-h2:decoration-neutral-300 prose-h2:underline-offset-[6px] prose-h2:transition-opacity hover:prose-h2:opacity-70 dark:prose-h2:decoration-neutral-700/65',
'prose-pre:m-0 prose-pre:border prose-pre:border-neutral-200 dark:prose-pre:border dark:prose-pre:border-neutral-800/65',
'prose-inline-code:rounded prose-inline-code:border prose-inline-code:border-neutral-300 prose-inline-code:bg-neutral-200/50 prose-inline-code:p-[2px] prose-inline-code:font-mono prose-inline-code:dark:border-neutral-800 prose-inline-code:dark:bg-neutral-800/50'
)}
>
<svelte:component this={data.content} />
-38
View File
@@ -1,38 +0,0 @@
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
@@ -1,120 +0,0 @@
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 });
};
+37
View File
@@ -0,0 +1,37 @@
import type { RequestEvent } from '../$types';
import { transform } from '@svgr/core';
import { json, redirect } from '@sveltejs/kit';
import { ratelimit } from '@/server/redis';
// SVGR Plugins:
import svgrJSX from '@svgr/plugin-jsx';
export const GET = async () => {
return redirect(301, 'https://svgl.app/api');
};
export const POST = async ({ request }: RequestEvent) => {
try {
const body = await request.json();
const svgCode = body.code;
const typescript = body.typescript;
const name = body.name.replace(/[^a-zA-Z0-9]/g, '');
const jsCode = await transform(
svgCode,
{
plugins: [svgrJSX],
icon: true,
typescript: typescript
},
{ componentName: name }
);
return json({ data: jsCode }, { status: 200 });
} catch (error) {
return json({ error: `⚠️ api/svgs/svgr - Error: ${error}` }, { status: 500 });
}
};
+11 -2
View File
@@ -1,6 +1,7 @@
<script lang="ts">
import type { PageData } from './$types';
import type { iSVG } from '@/types/svg';
import { queryParam } from 'sveltekit-search-params';
export let data: PageData;
let svgsByCategory = data.svgs || [];
@@ -13,8 +14,11 @@
import SvgCard from '@/components/svgCard.svelte';
import NotFound from '@/components/notFound.svelte';
// URL params
const searchParam = queryParam('search');
// Search:
let searchTerm = '';
let searchTerm = $searchParam || '';
let filteredSvgs: iSVG[] = [];
if (searchTerm.length === 0) {
@@ -24,6 +28,7 @@
}
const searchSvgs = () => {
$searchParam = searchTerm || null;
return (filteredSvgs = svgsByCategory.filter((svg: iSVG) => {
let svgTitle = svg.title.toLowerCase();
return svgTitle.includes(searchTerm.toLowerCase());
@@ -34,6 +39,10 @@
searchTerm = '';
searchSvgs();
};
if ($searchParam) {
searchSvgs();
}
</script>
<svelte:head>
@@ -49,7 +58,7 @@
/>
<Grid>
{#each filteredSvgs as svg}
<SvgCard svgInfo={svg} />
<SvgCard svgInfo={svg} {searchTerm} />
{/each}
</Grid>
{#if filteredSvgs.length === 0}
+17 -13
View File
@@ -1,28 +1,32 @@
import { error } from '@sveltejs/kit';
import type { PageLoad } from './$types';
import { svgs } from '@/data/svgs';
import type { PageLoad, EntryGenerator } from './$types';
import type { iSVG } from '@/types/svg';
import { error } from '@sveltejs/kit';
import { svgs } from '@/data/svgs';
import { getCategoriesForDirectory } from '@/data';
export const entries: EntryGenerator = () => {
const categories = getCategoriesForDirectory();
return categories;
};
export const load = (async ({ params }) => {
const { slug } = params;
// Check if slug is valid:
if (!slug) {
return error(404, 'Not found');
}
// Filter out the svg with the matching slug:
const svgsByCategory = svgs.filter((svg: iSVG) => {
if (Array.isArray(svg.category)) {
return svg.category.some(categoryItem => categoryItem.toLowerCase() === slug);
return svg.category.some((categoryItem) => categoryItem.toLowerCase() === slug.toLowerCase());
} else {
return svg.category.toLowerCase() === slug;
return svg.category.toLowerCase() === slug.toLowerCase();
}
});
if (svgsByCategory.length === 0) {
throw error(404, 'Category not found');
}
return {
category: slug as string,
category: slug,
svgs: svgsByCategory
};
}) satisfies PageLoad;
+3 -1
View File
@@ -2,8 +2,10 @@ 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 cleanUrl = UPSTASH_REDIS_URL.replace(/^['"]|['"]$/g, '').trim();
const redis = new Redis({
url: UPSTASH_REDIS_URL,
url: cleanUrl,
token: UPSTASH_REDIS_TOKEN
});
+9
View File
@@ -72,3 +72,12 @@
src: url('/fonts/GeistMonoVariableVF.woff2') format('woff2');
font-display: swap;
}
html.dark .shiki,
html.dark .shiki span {
color: var(--shiki-dark) !important;
background-color: transparent !important;
font-style: var(--shiki-dark-font-style) !important;
font-weight: var(--shiki-dark-font-weight) !important;
text-decoration: var(--shiki-dark-text-decoration) !important;
}
+26
View File
@@ -0,0 +1,26 @@
interface AngularComponentParams {
svgContent: string;
componentName: string;
}
export function getAngularCode(params: AngularComponentParams): string {
const updatedSvgContent = params.svgContent.replace(
/<svg([^>]*)>/,
`<svg$1 [attr.width]="size.width" [attr.height]="size.height">`
);
return `
import { Component, Input } from '@angular/core';
@Component({
selector: 'svg-${params.componentName}',
standalone: true,
template: \`
${updatedSvgContent.trim()}
\`,
})
export class ${params.componentName}Component {
@Input({ required: true }) size: { width: number; height: number };
}
`;
}
+16
View File
@@ -0,0 +1,16 @@
interface AstroComponentParams {
svgContent: string;
}
export function getAstroCode({ svgContent }: AstroComponentParams): string {
const cleanedSvg = svgContent
.replace(/\s*(width|height)="[^"]*"/gi, '')
.replace(/\s*(width|height)='[^']*'/gi, '')
.replace(/\s*(width|height)=\{[^}]*\}/gi, '')
.replace(/<svg([^>]*)>/i, (match, attrs) => {
const cleanedAttrs = attrs.replace(/\s*\{?\.\.\.Astro\.props\}?\s*/i, '');
return `<svg ${cleanedAttrs} {...Astro.props}>`;
});
return cleanedSvg.trim();
}
+23
View File
@@ -0,0 +1,23 @@
interface ReactComponentParams {
code: string;
name: string;
typescript: boolean;
}
export const getReactCode = async (
params: ReactComponentParams
): Promise<{ data?: string; error?: string }> => {
try {
const getCode = await fetch('/api/svgs/svgr', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
});
const data = await getCode.json();
return data;
} catch (error) {
return { error: `⚠️ getReactCode: An error has ocurred - ${error}` };
}
};
+9
View File
@@ -0,0 +1,9 @@
interface SourceParams {
url: string | undefined;
}
export const getSource = async (params: SourceParams) => {
const response = await fetch(params.url || '');
const content = await response.text();
return content;
};
+15
View File
@@ -0,0 +1,15 @@
import { parseSvgContent } from '@/utils/parseSvgContent';
interface SvelteComponentParams {
lang: string;
content: string;
}
export const getSvelteCode = (params: SvelteComponentParams) => {
const { templateContent, componentStyle } = parseSvgContent(params.content, 'Svelte');
return `<script${params.lang ? ` lang="${params.lang}"` : ''}></script>
${templateContent}
${componentStyle}
`;
};
+17
View File
@@ -0,0 +1,17 @@
import { parseSvgContent } from '@/utils/parseSvgContent';
interface VueComponentParams {
lang: string;
content: string;
}
export const getVueCode = (params: VueComponentParams) => {
const { templateContent, componentStyle } = parseSvgContent(params.content, 'Vue');
return `<script setup${params.lang ? ` lang="${params.lang}"` : ''}></script>
<template>
${templateContent}
</template>
${componentStyle}
`;
};
+28
View File
@@ -0,0 +1,28 @@
interface WebComponentParams {
name: string;
content: string;
}
export const getWebComponent = (params: WebComponentParams) => {
return `
class Icon${params.name} extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: "open" });
}
connectedCallback() {
this.shadowRoot.innerHTML = /* html */ \`
<style>
svg {
width: var(--size, 128px);
color: var(--color, currentColor);
}
</style>
${params.content}
\`;
}
}
customElements.define("icon-${params.name.toLowerCase()}", Icon${params.name});
`;
};
+18 -1
View File
@@ -2,13 +2,17 @@ export type tCategory =
| 'All'
| 'AI'
| 'Software'
| 'Hardware'
| 'Library'
| 'Hosting'
| 'Framework'
| 'Devtool'
| 'Monorepo'
| 'CMS'
| 'Database'
| 'Compiler'
| 'Crypto'
| 'Cybersecurity'
| 'Social'
| 'Entertainment'
| 'Browser'
@@ -17,4 +21,17 @@ export type tCategory =
| 'Design'
| 'Community'
| 'Marketplace'
| 'Fintech';
| 'Music'
| 'Vercel'
| 'Google'
| 'Payment'
| 'VoidZero'
| 'Authentication'
| 'IoT'
| 'Config'
| 'Secrets'
| 'IaC'
| 'Analytics'
| 'Sync Engine'
| 'Platform'
| 'Automation';
+10
View File
@@ -0,0 +1,10 @@
export interface Extension {
name: string;
description: string;
created_by: {
name: string;
socialUrl: string;
};
url: string;
image: string;
}
+5
View File
@@ -0,0 +1,5 @@
export interface IconProps {
size?: number;
color?: string;
className?: string;
}
+3 -5
View File
@@ -1,9 +1,6 @@
import type { tCategory } from './categories';
type CategoryPair = [tCategory, tCategory];
type CategoryTriple = [tCategory, tCategory, tCategory];
type ThemeOptions = {
export type ThemeOptions = {
dark: string;
light: string;
};
@@ -11,8 +8,9 @@ type ThemeOptions = {
export interface iSVG {
id?: number;
title: string;
category: tCategory | CategoryPair | CategoryTriple;
category: tCategory | tCategory[];
route: string | ThemeOptions;
wordmark?: string | ThemeOptions;
brandUrl?: string;
url: string;
}
+36
View File
@@ -0,0 +1,36 @@
<script lang="ts">
import { cn } from '@/utils/cn';
import { AlertTriangleIcon, CheckCircleIcon, InfoIcon, XCircleIcon } from 'lucide-svelte';
type iAlertType = 'success' | 'error' | 'warning' | 'info';
export let type: iAlertType = 'info';
const icons = {
success: CheckCircleIcon,
error: XCircleIcon,
warning: AlertTriangleIcon,
info: InfoIcon
};
</script>
<div
class={cn(
'flex items-center space-x-3 rounded-lg border px-3 py-2 text-sm dark:border-gray-700/20 dark:text-gray-200',
type === 'success' &&
'border-emerald-600/20 bg-emerald-100/50 text-emerald-900 selection:bg-emerald-500/20 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-200 dark:selection:bg-emerald-500/30',
type === 'error' &&
'border-red-600/20 bg-red-100/50 text-red-900 selection:bg-red-500/20 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-200 dark:selection:bg-red-500/30',
type === 'warning' &&
'border-yellow-600/20 bg-yellow-100/50 text-yellow-900 selection:bg-yellow-500/20 dark:border-yellow-500/30 dark:bg-yellow-500/10 dark:text-yellow-200 dark:selection:bg-yellow-500/30',
type === 'info' &&
'border-blue-600/20 bg-blue-100/50 text-blue-900 selection:bg-blue-500/20 dark:border-blue-500/30 dark:bg-blue-500/10 dark:text-blue-200 dark:selection:bg-blue-500/30'
)}
>
{#if icons[type]}
<svelte:component this={icons[type]} class="flex-shrink-0" size={16} />
{/if}
<div>
<slot />
</div>
</div>
@@ -0,0 +1,35 @@
<script lang="ts">
import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
import { CheckIcon } from 'lucide-svelte';
import { cn } from '@/utils/cn';
type $$Props = ContextMenuPrimitive.CheckboxItemProps;
type $$Events = ContextMenuPrimitive.CheckboxItemEvents;
let className: $$Props['class'] = undefined;
export { className as class };
export let checked: $$Props['checked'] = undefined;
</script>
<ContextMenuPrimitive.CheckboxItem
bind:checked
class={cn(
'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
className
)}
{...$$restProps}
on:click
on:keydown
on:focusin
on:focusout
on:pointerdown
on:pointerleave
on:pointermove
>
<span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
<ContextMenuPrimitive.CheckboxIndicator>
<CheckIcon class="h-4 w-4" />
</ContextMenuPrimitive.CheckboxIndicator>
</span>
<slot />
</ContextMenuPrimitive.CheckboxItem>
@@ -0,0 +1,25 @@
<script lang="ts">
import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
import { flyAndScale } from '@/utils/flyAndScale';
type $$Props = ContextMenuPrimitive.ContentProps;
let className: $$Props['class'] = undefined;
export let transition: $$Props['transition'] = flyAndScale;
export let transitionConfig: $$Props['transitionConfig'] = undefined;
export { className as class };
</script>
<ContextMenuPrimitive.Content
{transition}
{transitionConfig}
class={cn(
'bg-white dark:bg-neutral-900 text-popover-foreground z-50 min-w-[8rem] rounded-md border border-neutral-200 dark:border-neutral-800 p-1 shadow-md focus:outline-none',
className
)}
{...$$restProps}
on:keydown
>
<slot />
</ContextMenuPrimitive.Content>
@@ -0,0 +1,31 @@
<script lang="ts">
import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
type $$Props = ContextMenuPrimitive.ItemProps & {
inset?: boolean;
};
type $$Events = ContextMenuPrimitive.ItemEvents;
let className: $$Props['class'] = undefined;
export let inset: $$Props['inset'] = undefined;
export { className as class };
</script>
<ContextMenuPrimitive.Item
class={cn(
'data-[highlighted]:bg-neutral-100 dark:data-[highlighted]:bg-neutral-800 data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 space-x-2',
inset && 'pl-8',
className
)}
{...$$restProps}
on:click
on:keydown
on:focusin
on:focusout
on:pointerdown
on:pointerleave
on:pointermove
>
<slot />
</ContextMenuPrimitive.Item>
@@ -0,0 +1,19 @@
<script lang="ts">
import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
type $$Props = ContextMenuPrimitive.LabelProps & {
inset?: boolean;
};
let className: $$Props['class'] = undefined;
export let inset: $$Props['inset'] = undefined;
export { className as class };
</script>
<ContextMenuPrimitive.Label
class={cn('text-foreground px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
{...$$restProps}
>
<slot />
</ContextMenuPrimitive.Label>
+31
View File
@@ -0,0 +1,31 @@
import { ContextMenu as ContextMenuPrimitive } from 'bits-ui';
import Item from './context-menu-item.svelte';
import Label from './context-menu-label.svelte';
import Content from './context-menu-content.svelte';
import CheckboxItem from './context-menu-checkbox-item.svelte';
const Sub = ContextMenuPrimitive.Sub;
const Root = ContextMenuPrimitive.Root;
const Trigger = ContextMenuPrimitive.Trigger;
const Group = ContextMenuPrimitive.Group;
export {
Sub,
Root,
Item,
Label,
Group,
Trigger,
Content,
CheckboxItem,
//
Root as ContextMenu,
Sub as ContextMenuSub,
Item as ContextMenuItem,
Label as ContextMenuLabel,
Group as ContextMenuGroup,
Content as ContextMenuContent,
Trigger as ContextMenuTrigger,
CheckboxItem as ContextMenuCheckboxItem
};
+16
View File
@@ -0,0 +1,16 @@
import { Popover as PopoverPrimitive } from 'bits-ui';
import Content from './popover-content.svelte';
const Root = PopoverPrimitive.Root;
const Trigger = PopoverPrimitive.Trigger;
const Close = PopoverPrimitive.Close;
export {
Root,
Content,
Trigger,
Close,
Root as Popover,
Content as PopoverContent,
Trigger as PopoverTrigger,
Close as PopoverClose
};
+29
View File
@@ -0,0 +1,29 @@
<script lang="ts">
import { Popover as PopoverPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
import { flyAndScale } from '@/utils/flyAndScale';
type $$Props = PopoverPrimitive.ContentProps;
let className: $$Props['class'] = undefined;
export let transition: $$Props['transition'] = flyAndScale;
export let transitionConfig: $$Props['transitionConfig'] = undefined;
export let align: $$Props['align'] = 'center';
export let sideOffset: $$Props['sideOffset'] = 4;
export { className as class };
</script>
<PopoverPrimitive.Content
{transition}
{transitionConfig}
{align}
{sideOffset}
{...$$restProps}
class={cn(
'z-50 w-auto max-w-96 rounded-md border border-neutral-200 bg-white p-3 shadow-md outline-none dark:border-neutral-800 dark:bg-neutral-900',
className
)}
>
<slot />
</PopoverPrimitive.Content>
+8 -2
View File
@@ -1,8 +1,14 @@
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';
'flex items-center space-x-2 relative h-10 rounded-full 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 disabled:opacity-50 disabled:cursor-not-allowed';
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';
'inline-flex items-center px-2.5 py-0.5 rounded-full font-medium bg-neutral-100 dark:bg-neutral-800/50 border border-neutral-200 dark:border-neutral-800 text-neutral-600 dark:text-neutral-400 text-xs font-mono hover:underline hover:bg-neutral-200 dark:hover:bg-neutral-700/50 transition-colors duration-100';
export const sidebarItemStyles =
'flex w-full items-center space-x-3 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 text-sm';
export const sidebarCategoryCountStyles =
'px-2.5 py-0.5 rounded-full font-medium bg-neutral-100 dark:bg-neutral-800/50 border border-neutral-200 dark:border-neutral-800 text-neutral-600 dark:text-neutral-400 text-xs font-mono';
+18
View File
@@ -0,0 +1,18 @@
import { Tabs as TabsPrimitive } from 'bits-ui';
import Content from './tabs-content.svelte';
import List from './tabs-list.svelte';
import Trigger from './tabs-trigger.svelte';
const Root = TabsPrimitive.Root;
export {
Root,
Content,
List,
Trigger,
//
Root as Tabs,
Content as TabsContent,
List as TabsList,
Trigger as TabsTrigger
};
+21
View File
@@ -0,0 +1,21 @@
<script lang="ts">
import { Tabs as TabsPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
type $$Props = TabsPrimitive.ContentProps;
let className: $$Props['class'] = undefined;
export let value: $$Props['value'];
export { className as class };
</script>
<TabsPrimitive.Content
class={cn(
'focus-visible:ring-ring mt-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2',
className
)}
{value}
{...$$restProps}
>
<slot />
</TabsPrimitive.Content>
+16
View File
@@ -0,0 +1,16 @@
<script lang="ts">
import { Tabs as TabsPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
type $$Props = TabsPrimitive.ListProps;
let className: $$Props['class'] = undefined;
export { className as class };
</script>
<TabsPrimitive.List
class={cn('mb-2 flex flex-wrap items-center justify-center rounded-lg', className)}
{...$$restProps}
>
<slot />
</TabsPrimitive.List>
+25
View File
@@ -0,0 +1,25 @@
<script lang="ts">
import { Tabs as TabsPrimitive } from 'bits-ui';
import { cn } from '@/utils/cn';
type $$Props = TabsPrimitive.TriggerProps;
type $$Events = TabsPrimitive.TriggerEvents;
let className: $$Props['class'] = undefined;
export let value: $$Props['value'];
export { className as class };
</script>
<TabsPrimitive.Trigger
class={cn(
'inline-flex items-center justify-center whitespace-nowrap rounded-md px-2.5 py-1 text-sm font-medium text-neutral-500 transition-all hover:bg-neutral-300/40 hover:text-black focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-200 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-neutral-300/40 data-[state=active]:text-black data-[state=active]:shadow dark:text-neutral-400 dark:hover:bg-neutral-800/40 dark:hover:text-white dark:focus-visible:ring-neutral-800 dark:data-[state=active]:bg-neutral-800/40 dark:data-[state=active]:text-white',
className
)}
{value}
{...$$restProps}
on:click
on:keydown
on:focus
>
<slot />
</TabsPrimitive.Trigger>
+15
View File
@@ -0,0 +1,15 @@
const MIMETYPE = 'text/plain';
export const clipboard = async (content: string) => {
try {
const clipboardItem = new ClipboardItem({
[MIMETYPE]: new Blob([content], { type: MIMETYPE })
});
setTimeout(async () => {
await navigator.clipboard.write([clipboardItem]);
}, 200);
} catch (error) {
await navigator.clipboard.writeText(content);
}
};
-7
View File
@@ -1,7 +0,0 @@
export const MIMETYPE = 'text/plain';
export const getSvgContent = async (url: string | undefined, isSupported: boolean) => {
const response = await fetch(url || '');
const content = await response.text();
const blob = new Blob([content], { type: MIMETYPE });
return isSupported ? blob : content;
};
+26
View File
@@ -0,0 +1,26 @@
export const parseSvgContent = (content: string, framework: 'Vue' | 'Svelte') => {
if (content.includes('<?xml')) {
content = content.replace(/<\?xml[^>]*\?>/i, '');
}
// Regular expression to match <style> tags in the SVG content
const styleTagRegex = /<style[^>]*>([\s\S]*?)<\/style>/gi;
// Extract styles and store them in an array
const styles = [];
let matched;
while ((matched = styleTagRegex.exec(content)) !== null) {
styles.push(matched[1]); // Add the style content (not including the style tag)
}
// Remove <style> tags from the SVG content
const templateContent = content.replace(styleTagRegex, '');
const componentStyle = styles.length
? `<style${framework === 'Vue' ? ' scoped' : ''}>\n${styles.join('\n')}\n</style>`
: '';
return {
componentStyle,
templateContent
};
};
+21
View File
@@ -0,0 +1,21 @@
import { optimize } from 'svgo';
export const getPrefixFromSvgUrl = (svgUrl: string) => {
return svgUrl.split('/').pop()!.replace('.svg', '').split('-').join('_');
};
export const prefixSvgIds = (content: string, prefix: string): string => {
const result = optimize(content, {
plugins: [
{
name: 'prefixIds',
params: {
prefix
}
}
],
multipass: false
});
return (result as { data: string }).data;
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

After

Width:  |  Height:  |  Size: 307 KiB

+22
View File
@@ -0,0 +1,22 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-10 -10 116 111" xmlns:xlink="http://www.w3.org/1999/xlink">
<clipPath id="clip">
<path d="M0,0h7.75a45.5,45.5 0 1 1 0,91h-7.75v-20h7.75a25.5,25.5 0 1 0 0,-51h-7.75zm36.2510,0h32a27.75,27.75 0 0 1 21.331,45.5a27.75,27.75 0 0 1 -21.331,45.5h-32a53.6895,53.6895 0 0 0 18.7464,-20h13.2526a7.75,7.75 0 1 0 0,-15.5h-7.75a53.6895,53.6895 0 0 0 0,-20h7.75a7.75,7.75 0 1 0 0,-15.5h-13.2526a53.6895,53.6895 0 0 0 -18.7464,-20z"/>
</clipPath>
<linearGradient id="gradient-1" gradientUnits="userSpaceOnUse" x1="7" y1="64" x2="50" y2="107">
<stop offset="0" stop-color="#f9a03c"/>
<stop offset="1" stop-color="#f7974e"/>
</linearGradient>
<linearGradient id="gradient-2" gradientUnits="userSpaceOnUse" x1="2" y1="-2" x2="87" y2="84">
<stop offset="0" stop-color="#f26d58"/>
<stop offset="1" stop-color="#f9a03c"/>
</linearGradient>
<linearGradient id="gradient-3" gradientUnits="userSpaceOnUse" x1="45" y1="-10" x2="108" y2="53">
<stop offset="0" stop-color="#b84e51"/>
<stop offset="1" stop-color="#f68e48"/>
</linearGradient>
<g clip-path="url(#clip)">
<path d="M-100,-102m-28,0v300h300z" fill="url(#gradient-1)"/>
<path d="M-100,-102m28,0h300v300z" fill="url(#gradient-3)"/>
<path d="M-100,-102l300,300" fill="none" stroke="url(#gradient-2)" stroke-width="40"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 382.6 382.5"><defs><linearGradient id="a" x2="249.9" y1="191.3" y2="191.3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1b9de2"/><stop offset=".2" stop-color="#1595df"/><stop offset=".7" stop-color="#0680d7"/><stop offset="1" stop-color="#0078d4"/></linearGradient><linearGradient xlink:href="#a" id="b" x1="697.3" x2="809.9" y1="499.2" y2="499.2" gradientTransform="rotate(49.2 809.6 -269.1)"/><linearGradient id="c" x1="143.6" x2="393.5" y1="249.8" y2="249.8" gradientTransform="rotate(180 263.1 220.5)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0c59a4"/><stop offset="1" stop-color="#114a8b"/></linearGradient></defs><path fill="url(#a)" d="M117 382.5H0v-189C0 90.7 84 0 186.9 0h63v120.4h-54.6c-46.8 0-78 31.2-78 78l-.1 184.1z"/><path fill="url(#b)" d="m249.9 182.6.2-46.8h-54.7c-39 0-62.4 23.4-62.4 62.4l-.2 47 54.6-.1c39 0 62.5-23.4 62.5-62.5z"/><path fill="url(#c)" d="M265.5 0h117v189c0 102.8-84 193.5-186.8 193.5h-63V262.1h54.6c46.9 0 78.1-31.2 78.1-78L265.5 0z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="977" height="602" style="pointer-events:none;display:block;width:100%;height:100%" viewBox="0 0 24 24"><path fill="#E8710A" d="M4.54 9.46 2.19 7.1a6.93 6.93 0 0 0 0 9.79l2.36-2.36a3.59 3.59 0 0 1-.01-5.07Z"/><path fill="#F9AB00" d="m2.19 7.1 2.35 2.36a3.59 3.59 0 0 1 5.08 0l1.71-2.93-.1-.08a6.93 6.93 0 0 0-9.04.65ZM11.34 17.46l-1.72-2.92a3.59 3.59 0 0 1-5.08 0L2.19 16.9a6.93 6.93 0 0 0 9 .65l.11-.09M12 7.1a6.93 6.93 0 0 0 0 9.79l2.36-2.36a3.59 3.59 0 1 1 5.08-5.08l2.37-2.35a6.93 6.93 0 0 0-9.81 0Z"/><path fill="#E8710A" d="m21.81 7.1-2.35 2.36a3.59 3.59 0 0 1-5.08 5.08L12 16.9a6.93 6.93 0 0 0 9.81-9.8Z"/></svg>

After

Width:  |  Height:  |  Size: 665 B

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