From 83b6472760fae8e721cac031dc82e8d282b3e19b Mon Sep 17 00:00:00 2001 From: Archit Khode Date: Sat, 25 May 2024 12:52:20 -0700 Subject: [PATCH 1/2] v7 initial commit --- .gitignore | 52 +- .vscode/extensions.json | 3 + css/style.css | 69 - index.html | 84 +- js/nowplaying.js | 126 -- js/v6.js | 241 --- nowplaying.html | 35 - package-lock.json | 1814 +++++++++++++++++++++ package.json | 21 + public/vite.svg | 1 + src/App.svelte | 21 + src/app.css | 79 + src/assets/svelte.svg | 1 + src/lib/Carousel.svelte | 72 + src/lib/Counter.svelte | 10 + src/lib/LinksCard.svelte | 32 + src/lib/NewsFeedCard.svelte | 58 + src/lib/NowPlayingCard.svelte | 33 + src/main.ts | 8 + src/vite-env.d.ts | 2 + static/favicon/android-chrome-192x192.png | Bin 9123 -> 0 bytes static/favicon/android-chrome-512x512.png | Bin 26069 -> 0 bytes static/favicon/apple-touch-icon.png | Bin 8377 -> 0 bytes static/favicon/favicon-16x16.png | Bin 525 -> 0 bytes static/favicon/favicon-32x32.png | Bin 1183 -> 0 bytes static/favicon/favicon.ico | Bin 15406 -> 0 bytes svelte.config.js | 7 + tsconfig.json | 20 + tsconfig.node.json | 10 + vite.config.ts | 7 + 30 files changed, 2231 insertions(+), 575 deletions(-) create mode 100644 .vscode/extensions.json delete mode 100644 css/style.css delete mode 100644 js/nowplaying.js delete mode 100644 js/v6.js delete mode 100644 nowplaying.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 src/App.svelte create mode 100644 src/app.css create mode 100644 src/assets/svelte.svg create mode 100644 src/lib/Carousel.svelte create mode 100644 src/lib/Counter.svelte create mode 100644 src/lib/LinksCard.svelte create mode 100644 src/lib/NewsFeedCard.svelte create mode 100644 src/lib/NowPlayingCard.svelte create mode 100644 src/main.ts create mode 100644 src/vite-env.d.ts delete mode 100644 static/favicon/android-chrome-192x192.png delete mode 100644 static/favicon/android-chrome-512x512.png delete mode 100644 static/favicon/apple-touch-icon.png delete mode 100644 static/favicon/favicon-16x16.png delete mode 100644 static/favicon/favicon-32x32.png delete mode 100644 static/favicon/favicon.ico create mode 100644 svelte.config.js create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore index 1437c53..a547bf3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,34 +1,24 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug +# Logs +logs +*.log npm-debug.log* yarn-debug.log* yarn-error.log* - -# local env files -.env.local -.env.development.local -.env.test.local -.env.production.local - -# vercel -.vercel +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..bdef820 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["svelte.svelte-vscode"] +} diff --git a/css/style.css b/css/style.css deleted file mode 100644 index 279d8bc..0000000 --- a/css/style.css +++ /dev/null @@ -1,69 +0,0 @@ -html, -body { - font-family: 'Inter', sans-serif; - height: 100%; - background-color: #191d21; -} - -body { - /* background: linear-gradient(rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.75)), - url("https://source.unsplash.com/collection/898543/daily") !important; */ - background-position: center !important; - background-repeat: no-repeat !important; - background-size: cover !important; -} - -#now-playing-text-col { - padding-top: 20px; - padding-left: 20px; -} - -#now-playing-cover-art { - height: 100%; - width: fit-content; -} - -#feed-card { - margin-top: 0px; -} - -.feed-col { - padding-right: 15px; - padding-left: 15px; -} - -.semi-bold { - font-weight: 600; -} - -.medium-bold { - font-weight: 500; -} - -a { - color: #ffffff !important; -} - -.accent { - color: var(--accent-color); - text-shadow: 1px 1px #000000; - transition: color 300ms linear; -} - -#navbar-full-width { - width: 100%; -} - -#navbar { - background-color: black; - transition: background-color 300ms linear; -} - -.accent-inverted { - color: var(--inverted-accent-color) !important; - transition: color 300ms linear; -} - -#now-playing-fullscreen { - height: 100%; -} diff --git a/index.html b/index.html index cc8de07..b6c5f0a 100644 --- a/index.html +++ b/index.html @@ -1,75 +1,13 @@ - + - - - - - - - NPv6 - - - - - - -
-
-
-
-
-
-
-
-
Now Playing
-

-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
- -
- - - - + + + + + Vite + Svelte + TS + + +
+ + diff --git a/js/nowplaying.js b/js/nowplaying.js deleted file mode 100644 index 5af1af6..0000000 --- a/js/nowplaying.js +++ /dev/null @@ -1,126 +0,0 @@ -const FEED_CONFIGS = [ - { - url: 'https://www.theverge.com/rss/index.xml' - }, - { - url: 'https://www.androidpolice.com/feed/' - }, - { - url: 'http://feeds.arstechnica.com/arstechnica/index' - } -]; - -const NUMBER_OF_ARTICLES_TO_DISPLAY = 5; - -var COVER_ART_URL; - -function updateNowPlaying() { - fetch('https://musick.archit.xyz/musick/now', { - method: 'GET', - redirect: 'follow' - }) - .then((r) => r.json()) - .then((response) => { - // Set Now Playing text... - document.getElementById('now-playing-track-name').textContent = response.nowPlaying.trackName; - document.getElementById('now-playing-artist-name').textContent = response.nowPlaying.artistName; - document.getElementById('now-playing-album-name').textContent = response.nowPlaying.albumName; - - // Set the background of the Now Playing card... - document.getElementById( - 'now-playing-fullscreen' - ).style.background = `linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)), url(${response.nowPlaying.coverArtUrl})`; - document.getElementById('now-playing-fullscreen').style.backgroundPosition = `center`; - document.getElementById('now-playing-fullscreen').style.backgroundSize = `cover`; - - if (COVER_ART_URL != response.nowPlaying.coverArtUrl) { - COVER_ART_URL = response.nowPlaying.coverArtUrl; - updateAccentColor(COVER_ART_URL); - } - }) - .catch((error) => console.log('Caught error when fetching now playing!', error)); - - setTimeout(function () { - updateNowPlaying(); - }, 10000); -} - -function updateAccentColor(imageUrl) { - const colorThief = new ColorThief(); - - // This will load the image again... TODO: find a better way to grab the image - var img = document.createElement('img'); - img.setAttribute('src', imageUrl); - img.crossOrigin = 'Anonymous'; - - img.addEventListener('load', function () { - // default dominantColor - var dominantColor = [206, 206, 206]; - - // get colors from the image - var colorPalette = colorThief.getPalette(img); - - for (var color of colorPalette) { - // if the color is a dark color... - if (isDark(color[0], color[1], color[2])) { - // ignore it... - console.log('Too dark!', color); - continue; - } else { - dominantColor = [color[0], color[1], color[2]]; - console.log('Setting dominantColor=', dominantColor); - break; - } - } - - var dominantColorHex = rgbToHex(dominantColor[0], dominantColor[1], dominantColor[2]); - - // update accent color css var - document.documentElement.style.setProperty('--accent-color', dominantColorHex); - if (isLight(dominantColor[0], dominantColor[1], dominantColor[2])) { - document.documentElement.style.setProperty('--inverted-accent-color', '#25292C'); - } else { - document.documentElement.style.setProperty('--inverted-accent-color', '#E0BCB0'); - } - - // update navbar color - document.getElementById('navbar').style.backgroundColor = dominantColorHex; - }); -} - -const rgbToHex = (r, g, b) => - '#' + - [r, g, b] - .map((x) => { - const hex = x.toString(16); - return hex.length === 1 ? '0' + hex : hex; - }) - .join(''); - -function isDark(r, g, b) { - if (calculateHsp(r, g, b) > 90) { - return false; - } else { - return true; - } -} - -function isLight(r, g, b) { - if (calculateHsp(r, g, b) < 120) { - return false; - } else { - return true; - } -} - -function calculateHsp(r, g, b) { - // HSP (Highly Sensitive Poo) equation from http://alienryderflex.com/hsp.html - var hsp = Math.sqrt(0.299 * (r * r) + 0.587 * (g * g) + 0.114 * (b * b)); - return hsp; -} - -window.addEventListener('DOMContentLoaded', (event) => { - halfmoon.toggleDarkMode(); - updateNowPlaying(); -}); -ƒ; diff --git a/js/v6.js b/js/v6.js deleted file mode 100644 index c209305..0000000 --- a/js/v6.js +++ /dev/null @@ -1,241 +0,0 @@ -const FEED_CONFIGS = [ - { - url: 'https://www.theverge.com/rss/index.xml' - }, - { - url: 'https://www.reddit.com/r/Android.rss' - }, - { - url: 'http://feeds.arstechnica.com/arstechnica/index' - } -]; - -const NUMBER_OF_ARTICLES_TO_DISPLAY = 5; - -var COVER_ART_URL; - -function updateNowPlaying() { - fetch('https://musick.archit.xyz/musick/now', { - method: 'GET', - redirect: 'follow' - }) - .then((r) => r.json()) - .then((response) => { - // Set Now Playing text... - document.getElementById('now-playing-track-name').textContent = response.nowPlaying.trackName; - document.getElementById('now-playing-artist-name').textContent = response.nowPlaying.artistName; - document.getElementById('now-playing-album-name').textContent = response.nowPlaying.albumName; - - // Set the background of the Now Playing card... - document.getElementById( - 'now-playing-card' - ).style.background = `linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)), url(${response.nowPlaying.coverArtUrl})`; - document.getElementById('now-playing-card').style.backgroundPosition = `center`; - document.getElementById('now-playing-card').style.backgroundSize = `cover`; - - if (COVER_ART_URL != response.nowPlaying.coverArtUrl) { - COVER_ART_URL = response.nowPlaying.coverArtUrl; - updateAccentColor(COVER_ART_URL); - } - }) - .catch((error) => console.log('Caught error when fetching now playing!', error)); - - setTimeout(function () { - updateNowPlaying(); - }, 10000); -} - -function updateNewsFeeds() { - var feedRow = document.createElement('div'); - feedRow.className = 'row'; - - var feed = document.getElementById('feed'); - feed.appendChild(feedRow); - - let feedUrls = FEED_CONFIGS.map((feedConfig) => `https://rss.archit.xyz/rss/feed?url=${feedConfig.url}`); - - let feedPromises = feedUrls.map((feedUrl) => - fetch(feedUrl, { - method: 'GET', - redirect: 'follow' - }) - ); - - Promise.all(feedPromises) - .then((responses) => { - return Promise.all( - responses.map(function (r) { - return r.json(); - }) - ); - }) - .then((responsesJson) => { - responsesJson.forEach((response) => { - console.log(response); - var articles = document.createElement('div'); - - response.items.slice(0, NUMBER_OF_ARTICLES_TO_DISPLAY).forEach((newsItem) => { - var articleLink = document.createElement('a'); - articleLink.innerHTML = newsItem.title; - articleLink.href = newsItem.link; - articleLink.target = '_blank'; - articleLink.className = 'medium-bold'; - - var articleListing = document.createElement('ul'); - articleListing.appendChild(articleLink); - - articles.appendChild(articleListing); - }); - - var feedCol = document.createElement('div'); - feedCol.className = 'col-sm feed-col'; - - var feedTitle = document.createElement('h4'); - feedTitle.className = 'card-title accent semi-bold'; - feedTitle.textContent = response.title; - - feedCol.appendChild(feedTitle); - feedCol.appendChild(articles); - - feedRow.appendChild(feedCol); - }); - }) - .catch((error) => { - console.log(error); - }); -} - -function loadLinks() { - var linkRow = document.createElement('div'); - linkRow.className = 'row'; - - var links = document.getElementById('links'); - links.appendChild(linkRow); - - fetch('static/links.json', { - method: 'GET', - redirect: 'follow' - }) - .then((r) => r.json()) - .then((response) => { - for (var linkType in response) { - // Create a column for the link type - var linkCol = document.createElement('div'); - linkCol.className = 'col-sm'; - - // Create a title for the link type - var linkColTitle = document.createElement('h4'); - linkColTitle.className = 'card-title accent semi-bold'; - linkColTitle.textContent = linkType; - - // Add the title to the column - linkCol.appendChild(linkColTitle); - - // Traves the associated object for the linkType - var linksObject = response[linkType]; - for (var prettyLinkName in linksObject) { - // Generate a elements for each element in the object - var linkLink = document.createElement('a'); - linkLink.innerHTML = prettyLinkName; - linkLink.href = linksObject[prettyLinkName]; - linkLink.className = 'medium-bold'; - - linkCol.appendChild(linkLink); - linkCol.appendChild(document.createElement('br')); - } - - // Append the column to the main row - linkRow.appendChild(linkCol); - } - }) - .catch((error) => console.log('Caught error when fetching links!', error)); -} - -function updateCurrentTime() { - document.getElementById('datetime').innerHTML = new Date().toLocaleTimeString(); - setTimeout(function () { - updateCurrentTime(); - }, 500); -} - -function updateAccentColor(imageUrl) { - const colorThief = new ColorThief(); - - // This will load the image again... TODO: find a better way to grab the image - var img = document.createElement('img'); - img.setAttribute('src', imageUrl); - img.crossOrigin = 'Anonymous'; - - img.addEventListener('load', function () { - // default dominantColor - var dominantColor = [206, 206, 206]; - - // get colors from the image - var colorPalette = colorThief.getPalette(img); - - for (var color of colorPalette) { - // if the color is a dark color... - if (isDark(color[0], color[1], color[2])) { - // ignore it... - console.log('Too dark!', color); - continue; - } else { - dominantColor = [color[0], color[1], color[2]]; - console.log('Setting dominantColor=', dominantColor); - break; - } - } - - var dominantColorHex = rgbToHex(dominantColor[0], dominantColor[1], dominantColor[2]); - - // update accent color css var - document.documentElement.style.setProperty('--accent-color', dominantColorHex); - if (isLight(dominantColor[0], dominantColor[1], dominantColor[2])) { - document.documentElement.style.setProperty('--inverted-accent-color', '#25292C'); - } else { - document.documentElement.style.setProperty('--inverted-accent-color', '#E0BCB0'); - } - - // update navbar color - document.getElementById('navbar').style.backgroundColor = dominantColorHex; - }); -} - -const rgbToHex = (r, g, b) => - '#' + - [r, g, b] - .map((x) => { - const hex = x.toString(16); - return hex.length === 1 ? '0' + hex : hex; - }) - .join(''); - -function isDark(r, g, b) { - if (calculateHsp(r, g, b) > 90) { - return false; - } else { - return true; - } -} - -function isLight(r, g, b) { - if (calculateHsp(r, g, b) < 120) { - return false; - } else { - return true; - } -} - -function calculateHsp(r, g, b) { - // HSP (Highly Sensitive Poo) equation from http://alienryderflex.com/hsp.html - var hsp = Math.sqrt(0.299 * (r * r) + 0.587 * (g * g) + 0.114 * (b * b)); - return hsp; -} - -window.addEventListener('DOMContentLoaded', (event) => { - halfmoon.toggleDarkMode(); - updateNewsFeeds(); - loadLinks(); - updateCurrentTime(); - updateNowPlaying(); -}); diff --git a/nowplaying.html b/nowplaying.html deleted file mode 100644 index 4c54b46..0000000 --- a/nowplaying.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - NPv6 - - - - - - - -
-
-
-
Now Playing
-

-
-
- -
-
-
-
- - - - - - \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..cd38417 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1814 @@ +{ + "name": "newtab", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "newtab", + "version": "0.0.0", + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.2", + "@tsconfig/svelte": "^5.0.2", + "svelte": "^4.2.12", + "svelte-check": "^3.6.7", + "tslib": "^2.6.2", + "typescript": "^5.2.2", + "vite": "^5.2.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.0.tgz", + "integrity": "sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==", + "dev": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0", + "debug": "^4.3.4", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.9", + "svelte-hmr": "^0.16.0", + "vitefu": "^0.2.5" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz", + "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "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" + } + }, + "node_modules/@tsconfig/svelte": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.4.tgz", + "integrity": "sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/pug": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", + "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/sorcery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0" + }, + "bin": { + "sorcery": "bin/sorcery" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svelte": { + "version": "4.2.17", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.17.tgz", + "integrity": "sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte-check": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.7.1.tgz", + "integrity": "sha512-U4uJoLCzmz2o2U33c7mPDJNhRYX/DNFV11XTUDlFxaKLsO7P+40gvJHMPpoRfa24jqZfST4/G9fGNcUGMO8NAQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.1.3", + "typescript": "^5.0.3" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" + } + }, + "node_modules/svelte-hmr": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz", + "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==", + "dev": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.19.0 || ^4.0.0" + } + }, + "node_modules/svelte-preprocess": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz", + "integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.30.5", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 16.0.0" + }, + "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 || ^5.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 + } + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/vite": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", + "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", + "dev": true, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..bbb82b5 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "newtab", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.json" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.2", + "@tsconfig/svelte": "^5.0.2", + "svelte": "^4.2.12", + "svelte-check": "^3.6.7", + "tslib": "^2.6.2", + "typescript": "^5.2.2", + "vite": "^5.2.0" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.svelte b/src/App.svelte new file mode 100644 index 0000000..76fec4f --- /dev/null +++ b/src/App.svelte @@ -0,0 +1,21 @@ + + +
+
+
+
+ +
+
+ +
+
+
+ +
+
+
diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..617f5e9 --- /dev/null +++ b/src/app.css @@ -0,0 +1,79 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/assets/svelte.svg b/src/assets/svelte.svg new file mode 100644 index 0000000..c5e0848 --- /dev/null +++ b/src/assets/svelte.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/lib/Carousel.svelte b/src/lib/Carousel.svelte new file mode 100644 index 0000000..5637505 --- /dev/null +++ b/src/lib/Carousel.svelte @@ -0,0 +1,72 @@ + + +
+
+
+ {#await promise} +

Loading...

+ {:then feeds} + {#each feeds as feed} +
+
+

{feed.title}

+ {#each feed.items.slice(0, 6) as feedItem} +
  • {feedItem.title}
  • + {/each} +
    +
    + {/each} + {:catch error} +

    {error.message}

    + {/await} +
    +
    +
    + + diff --git a/src/lib/Counter.svelte b/src/lib/Counter.svelte new file mode 100644 index 0000000..979b4df --- /dev/null +++ b/src/lib/Counter.svelte @@ -0,0 +1,10 @@ + + + diff --git a/src/lib/LinksCard.svelte b/src/lib/LinksCard.svelte new file mode 100644 index 0000000..e920df7 --- /dev/null +++ b/src/lib/LinksCard.svelte @@ -0,0 +1,32 @@ + + +
    +
    + {#await promise} +

    Loading...

    + {:then links} +
    + {#each Object.entries(links) as [category, linksMap]} +
    +

    {category}

    + {#each Object.entries(linksMap) as [name, url]} +
  • + {name} +
  • + {/each} +
    +
    + {/each} +
    + {:catch error} +

    {error.message}

    + {/await} +
    +
    diff --git a/src/lib/NewsFeedCard.svelte b/src/lib/NewsFeedCard.svelte new file mode 100644 index 0000000..b75293f --- /dev/null +++ b/src/lib/NewsFeedCard.svelte @@ -0,0 +1,58 @@ + + +
    +
    + {#await promise} +

    Loading...

    + {:then feeds} +
    + {#each feeds as feed} +
    +

    {feed.title}

    + {#each feed.items.slice(0, 4) as feedItem} +
  • {feedItem.title}
  • + {/each} +
    +
    + {/each} +
    + {:catch error} +

    {error.message}

    + {/await} +
    +
    diff --git a/src/lib/NowPlayingCard.svelte b/src/lib/NowPlayingCard.svelte new file mode 100644 index 0000000..989038d --- /dev/null +++ b/src/lib/NowPlayingCard.svelte @@ -0,0 +1,33 @@ + + +
    +
    + {#await promise} +

    Loading...

    + {:then musick} + Sunset in the mountains +
    +
    {musick.nowPlaying.trackName}
    +

    + {musick.nowPlaying.albumName} +

    +

    + {musick.nowPlaying.artistName} +

    +
    + {:catch error} +

    {error.message}

    + {/await} +
    +
    diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..4d67e2a --- /dev/null +++ b/src/main.ts @@ -0,0 +1,8 @@ +import './app.css' +import App from './App.svelte' + +const app = new App({ + target: document.getElementById('app')!, +}) + +export default app diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..4078e74 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/static/favicon/android-chrome-192x192.png b/static/favicon/android-chrome-192x192.png deleted file mode 100644 index 0974be5dff1cdd65f5aec28db300d185cec09d32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9123 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 diff --git a/static/favicon/android-chrome-512x512.png b/static/favicon/android-chrome-512x512.png deleted file mode 100644 index 24895905bcb66df67421dc1205461e10607cefbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26069 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 diff --git a/static/favicon/apple-touch-icon.png b/static/favicon/apple-touch-icon.png deleted file mode 100644 index 5fa0ab2923c6e744cee5d099b398f9d3542ade20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8377 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 diff --git a/static/favicon/favicon-16x16.png b/static/favicon/favicon-16x16.png deleted file mode 100644 index 5bb730ee891b99f8c0a5087cfae98db0af97e2b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)g`oM!A=0%W*I)vIGh=RQ7p;L!C zq(MPq)Fpx}3R0A?AgDxh54)Q?>VDwv>^9MWBP$&m>b<`I|L=MJ@B2I=G7-B5W>xZltCQjW<)-eNfd3`J^?gy7Ot zijB7a8gOoxk24`3oo|w)i<_w}K>t2JB@=FaT(u+KK2*a8-QfOwhP{3lBQ14YoJujD zG01EM{1)74t>eUtIJuHZz%B8(EkOIrIBUjF9vrEs+9eTRFR|St@oCjyU{<&8>IafP)*m{AAC(0sjLtTx76}2Q?xp^0jD%Cr+0cS;rOv2 zgR?p_dV%f+m9Q#vbw;=2MR$1U*sXB>b#fEnmITj^2f6ztO;q!8b~0%hPHJAFnunfu z%Qm1ZtZ=ZllD_xL<==Rv*-yLXVdQg~hYMNDpvZ#JqXC}Ba=c39X;Ni+_f&CtI>mIV zP!0(BWO^D^ZqBWgy>!qm(HT|8}o5@QQl=2i^ngY>77{}0RbkL&yk%`M2ih+h7s P00000NkvXXu0mjf#BuYZ diff --git a/static/favicon/favicon-32x32.png b/static/favicon/favicon-32x32.png deleted file mode 100644 index 0da2c943b37831dd047b9d9b57637e05195c960f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1183 zcmV;Q1YrA#P)fXypR~ggz4rbT-1bU zgs6!UQA`j+qLNsL(ZHB2TQ>$Xn~R7j%G%kk?b==1wd=*aZ@aSI#vi)<;UrDde&;*y zbIy6rbMg|r5#cJ9TVCbBJr6_*FfB&lmReEqFdia5E zcM9FI20)Z?IJw4vJedSN?f{-`b7DN4%J-}Qpc#L-T#qWf3@(2d+gk=;9}A@&wyXfy zF;9(M3)BckB6z{j~hg7DoyI3hr#J5lWuJ-cA>qY-4es%|!~-m1;qWe#z-anNDEIP^15u z9ey0WI)p!l#xv_cNv;$pRvVbZlNSeYHOZNRqaZ1xH=eg46zh_jCphzv5gOVT0G>b? zW~ZNh&r(R(H1HgOKNP{9P8S1{aTibk6v*j+M)B@%o&>aCREt=o74XTmVfLA@?Zqm* zv{1u-nk-(t)8m0}0v&+a3JKm{rpH_r&&G1o1slAvmZVIsInCs)!BFeM^dffp$)9PR)Pc};4uh!&)5a3|98{giHax4Xaoc6iK z2$ht>o4*d?dy9`b?pu_LEpwD;`fm(-FS`=rx2!9GOhT}~+l@1^!08zLm!N}BDYlMpD@M60YZIgOP4{F~~$n^d>vlAW8Tm4N2akw%M z4;tn8so#gXE71{63*bH#kFVF}Gl$2U?X0}7muu1I4dSsTJCZAGsxiVSm*BOoLHuZq zRxF);UM-?jE8x_PQ5^1#@++efe!5abMV^4;*N3rKD`2T!h9kcZ;ly7fDX|YM(P4dI z4u0WT!bw9;eslvr6r`H$NtSijH!6iB-D#a=ubc;W7&IWfNai7y5 zbl)FaC9;5TP2$Z22!o8nkt#jrYoz#dcpTd<4#bI?5rC8<_@TxKDzDTUtv)nNA+2-_ z={QpBaQK-H1VRxMtEG6jK+eRA>cY-82d<9<;{}>>8SQ>RgQxG02Bl=Aq|9Vg^R^W$ zv2(tf9hPiVeBSPHqtBbTmZtvwGHJkCv=}ceG{|EF9?c9fg?l=Gd002ovPDHLkV1lRRDWL!W diff --git a/static/favicon/favicon.ico b/static/favicon/favicon.ico deleted file mode 100644 index d2f17387fd18497a85e3142f0f72b47eb5eb401a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 zcmeHNYj9mv6+S5cg&+R!FNdGlL=Xg9@rB~x3sDqDP!vWH6nucFC@4=A#i` z85}i9leTF|(3k!WcKb-IDDKGT*h^0JC(;=;Fr;~Oit=~KH$|po|VNmEp8ytNJ4}VzX=l&^- z_&!mX9}v;qUvSh*Uinl15cO(7q>nsl*MnEB6cX7Je-g2=+ePZ|4irDy9Y#h+* zgYV+<^wD36O7?_Zmpb@kVI-#P|G>?>wn-S#-Hx)9~PC&jH9fQo))P?k2GkWqjA{G--&(qQJ?Z6vh!yCuW!DZ#$k%a<6ky? zbl0tnqYqxoW#Qou3A0ubp{?&Dd9DzZ+^nb@2~kNO74>q8We;t6k4>LH{j!4}`dAEY z7a1B0d^7)YTEuqW=9wGRxAUZ@pBB~pX`Z$~`PXY?yR`Hha~ z{bV|qJ#a32P}2G;g(Vb1&#a?oBR$YhK_Gsly=lJx?cdk?dvw2XSdKEZg*Ii|%h5(V zJkNK(-7=leF?YAU_P@1$gPw(+PAoyM=tI|v#MHM%=J;TW1??o0lWd(02^)T~$ODU;oMudfWTu`d#?$q#I>n|Em2 z^=y~Hu#$b9ZMhrA{lA>p4|MV`o@cv^@654Zd3b{kHXTsZxBAut2R;yWg7FfQ-wecK z+>uWap4A_$9r!AMYT+!=d2M8^6y|!2nY$nAfA}$g{Heb;#e=^EC?^jvo<4XD&0&tq z;(Nd5p_ToL@43rUr?y`rI}dRCO)8G%uUT!Wa|yo)Pzvqvv|-i^u9JS2%1`|+lb-}A zocXthhs1-w2Y@dLS!8*1^cF5R&6jO4%^s{GV%oF^nr>hMnk@$#o%V!q&~ z(qmti={YE4Wf|l-!>_I7EQ^hQ857MiK>sgiTS2^WHUpSu)pH&UqUmZmofVDv1j~T^=GGTo zZ7blM7TWefQKPm2(EG6G=c8S<4eWL7JwP*^tI~A)JGSRe_Qf)^CNL)5=D)^oQ8#rm z78mjiB+sFp$lVPZ^$dJI$3gZR=kK7nz#F9;aS{sAYPZqTEKWkz+U$!xZ_)eK-@4GZ zevIb7*o`%?OgxH^5wb#NDLa*In(tq4EK{3Z*R3oo$t=fxHOVf=7&0qsrt4!Q+gaB4 z%3trT#&sp{)mE~v)d%>v%ev;@z-=Pm6du0bdd}Hr?xnNvMmnp0gyW!yD@5rG8+qm9 z%wHe8y6fvZbNo3vgTH1y6iYy!v6HoexM6zwDULZI_J$aw1t!ObD(Pb!-%RZLR$xqJ zsqI2m%gV7(zH>=&o@Yfml9QqDv| zHGhiYq>u7GLm6`K=%0%3{thGNLHkrfj_ww?as2)xuVBPztQvsz#X0si*DH7;W>+if zk_E>;5pSqcj@|;3^D}^kv=^Om@*p~tq@7>gQ=rU~AD(4*4 zJ{IS#{1WQ1Hr2d@ikBt3Cjof`><6{J**EUq)Qq?!r}gwyTeQ#(xmn8nHF6u!(e8PV zjo(52sxWWNaeVwvU)~wYUs7|aRVUFo2OE-2GoA&CPWiTgKhp2+*kJQ;8;yY0=_x#{%HSFyg3I+XYC$R|Dg-E{b$ zq<$kO1%N$_Pu%ULBUusuL_8c2v^J0*t`!#;2S4>nj`e>lU7nb{$FcTHkzM5TE#5=& zlUtURlLzhguy)+JD~T7|eLLB<#`>gw_~uZ_z822*+5GTPGh!ljNd%g|q*ozFy^B10=6(gWn_%a&!_f2FO`Ca9lLlQ#Mdr@YDS8v$(g=&<9x4 zY!g&DZ6=E!&vgoIW?&#*e4qC(~-TT7ap{ICrFBW zlCT>%d%>qmPJPFc*_A6++Y0&)ZN1L&Ey0)oclX-e@9^OuH^8hL4Ljr2k+=_;n|*=t z_=oHw&SHLgH%QK)^5`htt1M@DU1HrO4?INcz$=3vJ_8_p=z~G`iKOmgJ4@%gZtUkyzIzm56k_zZ}< zA;y9@6V7h1Eh|x8KbfFEVapLGz{7DjAAi=5cCF0iiwCXswenT7AKF;ct2qbB_X*nQ q Date: Sat, 25 May 2024 13:03:32 -0700 Subject: [PATCH 2/2] Added tailwind --- .gitignore | 1 + index.html | 23 +- package-lock.json | 1108 +++++++++++++++++++++++++++++++++++++++- package.json | 3 + postcss.config.cjs | 6 + src/app.css | 77 +-- src/lib/Counter.svelte | 10 - tailwind.config.js | 8 + 8 files changed, 1134 insertions(+), 102 deletions(-) create mode 100644 postcss.config.cjs delete mode 100644 src/lib/Counter.svelte create mode 100644 tailwind.config.js diff --git a/.gitignore b/.gitignore index a547bf3..fc5ae9f 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ dist-ssr *.njsproj *.sln *.sw? +.vercel diff --git a/index.html b/index.html index b6c5f0a..b025721 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,14 @@ - + - - - - - Vite + Svelte + TS - - -
    - - + + + + + Newtab v7 + + + +
    + + diff --git a/package-lock.json b/package-lock.json index cd38417..fca5814 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,13 +10,28 @@ "devDependencies": { "@sveltejs/vite-plugin-svelte": "^3.0.2", "@tsconfig/svelte": "^5.0.2", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", "svelte": "^4.2.12", "svelte-check": "^3.6.7", + "tailwindcss": "^3.4.3", "tslib": "^2.6.2", "typescript": "^5.2.2", "vite": "^5.2.0" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -398,6 +413,23 @@ "node": ">=12" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -481,6 +513,16 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.18.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", @@ -758,6 +800,36 @@ "node": ">=0.4.0" } }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -771,6 +843,12 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", @@ -780,6 +858,43 @@ "dequal": "^2.0.3" } }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/axobject-query": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", @@ -829,6 +944,38 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -847,6 +994,35 @@ "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001621", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz", + "integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -884,12 +1060,53 @@ "periscopic": "^3.1.0" } }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/css-tree": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", @@ -903,6 +1120,18 @@ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -947,6 +1176,36 @@ "node": ">=8" } }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.783", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz", + "integrity": "sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", @@ -991,6 +1250,15 @@ "@esbuild/win32-x64": "0.20.2" } }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", @@ -1037,6 +1305,35 @@ "node": ">=8" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1057,6 +1354,15 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -1095,6 +1401,18 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -1140,6 +1458,18 @@ "node": ">=8" } }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1149,6 +1479,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1179,6 +1518,39 @@ "@types/estree": "*" } }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -1188,12 +1560,36 @@ "node": ">=6" } }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/locate-character": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", "dev": true }, + "node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/magic-string": { "version": "0.30.10", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", @@ -1261,6 +1657,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -1288,6 +1693,17 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -1306,6 +1722,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1315,6 +1737,33 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1345,21 +1794,52 @@ "node": ">=0.10.0" } }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -1374,6 +1854,24 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/postcss": { "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", @@ -1402,6 +1900,127 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -1422,6 +2041,15 @@ } ] }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -1434,6 +2062,23 @@ "node": ">=8.10.0" } }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1547,6 +2192,39 @@ "rimraf": "^2.5.2" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/sorcery": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", @@ -1571,6 +2249,102 @@ "node": ">=0.10.0" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -1583,6 +2357,86 @@ "node": ">=8" } }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/svelte": { "version": "4.2.17", "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.17.tgz", @@ -1704,6 +2558,76 @@ } } }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dev": 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.0", + "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.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1716,6 +2640,12 @@ "node": ">=8.0" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -1735,6 +2665,42 @@ "node": ">=14.17" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, "node_modules/vite": { "version": "5.2.11", "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", @@ -1804,11 +2770,129 @@ } } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true + }, + "node_modules/yaml": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } } } } diff --git a/package.json b/package.json index bbb82b5..57ff683 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,11 @@ "devDependencies": { "@sveltejs/vite-plugin-svelte": "^3.0.2", "@tsconfig/svelte": "^5.0.2", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", "svelte": "^4.2.12", "svelte-check": "^3.6.7", + "tailwindcss": "^3.4.3", "tslib": "^2.6.2", "typescript": "^5.2.2", "vite": "^5.2.0" diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..e2dc478 --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + } +} \ No newline at end of file diff --git a/src/app.css b/src/app.css index 617f5e9..670dab0 100644 --- a/src/app.css +++ b/src/app.css @@ -1,79 +1,18 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + :root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; font-weight: 400; color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -.card { - padding: 2em; -} - -#app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } + -webkit-text-size-adjust: 100%; } diff --git a/src/lib/Counter.svelte b/src/lib/Counter.svelte deleted file mode 100644 index 979b4df..0000000 --- a/src/lib/Counter.svelte +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..9d8beda --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,8 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./index.html', './src/**/*.{js,ts,jsx,tsx,svelte}'], + theme: { + extend: {} + }, + plugins: [] +};