From 9004a207efc5ff1970d9e90e18aefae97972777f Mon Sep 17 00:00:00 2001 From: Simeon Kerkola Date: Wed, 3 Aug 2022 12:05:36 +0300 Subject: [PATCH] Add stylelint (#2095) * Add stylelint * Add single quote rule * Config * Remove unused stylelint-config-html * Integrate prettier to stylelint * Add stylelint ignore * Allow v-bind function keyword to be any case * Remove postcss-html from stylelint config * Add comment about conflicting stylelint plugins * Ignore vendor prefix for "box" values * Add stylelint-prettier, remove stylelint-config-prettier * Apply single string quotes rule * Run autofix * Fix declaration-block-no-duplicate-properties * Fix no-duplicate-selectors * Ignore keyframes-name-pattern * Fix no-descending-specificity * Fix max-line-length * Fix custom-property-pattern * number-max-precision * Remove postcss-html * Add stylelint to lint-staged * Add prettier rules to stylelint * Add stylelint-config-prettier * Remove duplicate keyframes * Remove duplicate husky install command * Run linters for all files * Edit comment --- .github/workflows/checks.yml | 2 + .stylelintignore | 2 + package-lock.json | 1804 +++++++++++++++-- package.json | 13 +- src/assets/css/animations/fireworks.css | 247 +-- src/assets/css/global/all.css | 7 +- src/assets/css/global/animations.css | 11 +- src/assets/css/global/fonts.css | 2 +- src/assets/css/global/social-icons.css | 21 +- src/assets/css/global/typography.css | 9 + src/assets/css/tailwind.css | 28 +- src/components/_global/BalAlert/BalAlert.vue | 1 + src/components/_global/BalAsset/BalAsset.vue | 3 +- .../_global/BalAsset/BalAssetSet.vue | 24 +- .../_global/BalBlankSlate/BalBlankSlate.vue | 1 + src/components/_global/BalBtn/BalBtn.vue | 1 + src/components/_global/BalCard/BalCard.vue | 1 + .../_global/BalCheckbox/BalCheckbox.vue | 11 +- src/components/_global/BalChip/BalChip.vue | 2 + src/components/_global/BalImage/BalImage.vue | 3 +- .../BalLoadingBlock/BalLoadingBlock.vue | 61 +- .../_global/BalLoadingIcon/BalLoadingIcon.vue | 16 +- src/components/_global/BalModal/BalModal.vue | 4 +- .../_global/BalPopover/BalPopover.vue | 7 +- src/components/_global/BalRadio/BalRadio.vue | 8 +- .../_global/BalRangeInput/BalRangeInput.vue | 2 +- .../_global/BalSelectInput/BalSelectInput.vue | 8 +- src/components/_global/BalTable/BalTable.vue | 1 + .../_global/BalToggle/BalToggle.vue | 21 +- .../_global/BalTooltip/BalTooltip.vue | 35 +- .../BalVerticalSteps/BalVerticalSteps.vue | 1 + .../cards/CreatePool/WalletPoolTokens.vue | 2 + .../cards/PairPriceGraph/PairPriceGraph.vue | 1 + .../cards/TradeCardGP/TradeCardGP.vue | 7 +- .../cards/TrendingPairs/TrendingPairs.vue | 1 + .../contextual/pages/claim/HeroClaim.vue | 8 +- .../StakingIncentivesCard.vue | 6 +- .../contextual/pages/vebal/Hero.vue | 44 +- .../vebal/LMVoting/GaugesTableVoteBtn.vue | 2 + .../vebal/MyVeBAL/components/MyVeBalCards.vue | 21 +- src/components/footer/Footer.vue | 1 + .../components/InvestSummary.vue | 3 + .../components/WithdrawalTokenSelect.vue | 1 + src/components/heros/AppHero.vue | 1 + src/components/heros/HomePageHero.vue | 1 + src/components/heros/PortfolioPageHero.vue | 3 + src/components/icons/IconMedium.vue | 2 +- src/components/icons/IconTwitter.vue | 2 +- src/components/images/AppLogo.vue | 1 + .../inputs/TokenInput/TokenWeightInput.vue | 2 +- .../TokenSelectInput/TokenSelectInput.vue | 1 + src/components/modals/TradePreviewModal.vue | 1 + src/components/modals/TradePreviewModalGP.vue | 9 +- src/components/navs/AppNav/AppNav.vue | 1 + .../AppNav/AppNavActivityBtn/ActivityRows.vue | 5 + src/components/navs/AppNav/AppNavAlert.vue | 2 + src/components/navs/AppNav/AppNavSettings.vue | 1 + src/components/navs/AppNav/AppNavToggle.vue | 1 + .../navs/AppNav/AppSidebar/AppSidebar.vue | 9 +- .../navs/AppNav/AppSidebar/SidebarContent.vue | 8 +- .../AppNav/DesktopLinks/DesktopLinkItem.vue | 28 +- src/components/notifications/Notification.vue | 3 + .../notifications/Notifications.vue | 2 + src/components/pool/PoolChartPeriodSelect.vue | 8 +- src/components/pool/PoolPageHeader.vue | 1 + .../TokenPills/HiddenTokensPills.vue | 6 +- .../PoolsTable/TokenPills/StableTokenPill.vue | 11 +- .../TokenPills/WeightedTokenPill.vue | 3 +- src/pages/_layouts/ContentLayout.vue | 3 + src/pages/_layouts/DefaultLayout.vue | 1 + src/pages/pool/_id.vue | 1 + stylelint.config.js | 31 + 72 files changed, 2058 insertions(+), 544 deletions(-) create mode 100644 .stylelintignore create mode 100644 stylelint.config.js diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 71df6b2e3c..004164d2c1 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -65,6 +65,8 @@ jobs: run: npm run lint - name: Run prettier run: npm run prettier + - name: Run stylelint + run: npm run stylelint Test: runs-on: ubuntu-latest diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000000..c0f64a8361 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,2 @@ +dist/ +build/ diff --git a/package-lock.json b/package-lock.json index e42b0f6947..5ac827b10f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -88,6 +88,12 @@ "postcss": "^8.2.13", "prettier": "^2.7.1", "promise-worker": "^2.0.1", + "stylelint": "^14.9.1", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-recommended-vue": "^1.4.0", + "stylelint-config-standard": "^26.0.0", + "stylelint-config-tailwindcss": "^0.0.6", + "stylelint-prettier": "^2.0.0", "tailwind-config-viewer": "^1.5.0", "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.17", "ts-jest": "^27.1.3", @@ -2186,6 +2192,23 @@ "node": ">=12" } }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } + }, "node_modules/@ensdomains/content-hash": { "version": "2.5.7", "resolved": "https://registry.npmjs.org/@ensdomains/content-hash/-/content-hash-2.5.7.tgz", @@ -10650,6 +10673,18 @@ "node": ">=0.8" } }, + "node_modules/clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "dependencies": { + "is-regexp": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -10761,6 +10796,12 @@ "integrity": "sha512-0ajlNgWWOR7EK9N6l2h0YKsZPzMCLQG5bheCoTGpGfhkR8tB5eQNItdua1oFHDTeq9JKgSzQJqo+Gp3V/xW+Lw==", "dev": true }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, "node_modules/colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", @@ -12109,6 +12150,15 @@ "node": ">=0.10.0" } }, + "node_modules/css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, "node_modules/css-loader": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", @@ -13196,9 +13246,9 @@ } }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { @@ -15622,6 +15672,18 @@ "node": ">=6" } }, + "node_modules/execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "dependencies": { + "clone-regexp": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -16173,6 +16235,15 @@ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, + "node_modules/fastest-levenshtein": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz", + "integrity": "sha512-tFfWHjnuUfKE186Tfgr+jtaFc0mZTApEgKDOeyN+FwOqRkO/zK/3h1AiRd8u8CY53owL3CUmGr/oI9p/RdyLTA==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -17128,6 +17199,18 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -17307,6 +17390,32 @@ "process": "^0.11.10" } }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -17345,6 +17454,12 @@ "node": ">=8" } }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, "node_modules/got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -17830,12 +17945,15 @@ } }, "node_modules/html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/html-webpack-plugin": { @@ -18241,6 +18359,15 @@ "node": ">=4" } }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/import-local": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", @@ -18838,6 +18965,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -22943,6 +23079,12 @@ "node": ">=6" } }, + "node_modules/known-css-properties": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", + "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", + "dev": true + }, "node_modules/koa": { "version": "2.13.4", "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz", @@ -23773,6 +23915,12 @@ "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", "dev": true }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -24015,6 +24163,16 @@ "remove-accents": "0.4.2" } }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -24145,19 +24303,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/meow/node_modules/hosted-git-info": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", @@ -24170,18 +24315,6 @@ "node": ">=10" } }, - "node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/meow/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -24209,53 +24342,6 @@ "node": ">=10" } }, - "node_modules/meow/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/meow/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -26798,6 +26884,108 @@ "node": ">=0.10.0" } }, + "node_modules/postcss-html": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.5.0.tgz", + "integrity": "sha512-kCMRWJRHKicpA166kc2lAVUGxDZL324bkj/pVOb6RhjB0Z5Krl7mN0AsVkBhVIRZZirY0lyQXG38HCVaoKVNoA==", + "dev": true, + "peer": true, + "dependencies": { + "htmlparser2": "^8.0.0", + "js-tokens": "^8.0.0", + "postcss": "^8.4.0", + "postcss-safe-parser": "^6.0.0" + }, + "engines": { + "node": "^12 || >=14" + } + }, + "node_modules/postcss-html/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/postcss-html/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/postcss-html/node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dev": true, + "peer": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/postcss-html/node_modules/entities": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", + "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/postcss-html/node_modules/htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, + "node_modules/postcss-html/node_modules/js-tokens": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.0.tgz", + "integrity": "sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==", + "dev": true, + "peer": true + }, "node_modules/postcss-js": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz", @@ -26906,6 +27094,12 @@ "node": ">=0.10.0" } }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, "node_modules/postcss-merge-longhand": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", @@ -27947,6 +28141,28 @@ "node": ">=0.10.0" } }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, "node_modules/postcss-selector-parser": { "version": "6.0.10", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", @@ -28047,9 +28263,9 @@ } }, "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "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/postcss/node_modules/picocolors": { @@ -28749,6 +28965,78 @@ "node": ">=8" } }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/read-pkg/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -29274,6 +29562,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -31128,6 +31425,12 @@ "lodash.defaults": "^4.2.0" } }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, "node_modules/stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -31182,6 +31485,454 @@ "node": ">=0.10.0" } }, + "node_modules/stylelint": { + "version": "14.9.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.9.1.tgz", + "integrity": "sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.1", + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "execall": "^2.0.0", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.25.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.14", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-html": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-html/-/stylelint-config-html-1.1.0.tgz", + "integrity": "sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==", + "dev": true, + "engines": { + "node": "^12 || >=14" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "postcss-html": "^1.0.0", + "stylelint": ">=14.0.0" + } + }, + "node_modules/stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "bin": { + "stylelint-config-prettier": "bin/check.js", + "stylelint-config-prettier-check": "bin/check.js" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "stylelint": ">=11.0.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-8.0.0.tgz", + "integrity": "sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.8.0" + } + }, + "node_modules/stylelint-config-recommended-vue": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.4.0.tgz", + "integrity": "sha512-DVJqyX2KvMCn9U0+keL12r7xlsH26K4Vg8NrIZuq5MoF7g82DpMp326Om4E0Q+Il1o+bTHuUyejf2XAI0iD04Q==", + "dev": true, + "dependencies": { + "semver": "^7.3.5", + "stylelint-config-html": ">=1.0.0", + "stylelint-config-recommended": ">=6.0.0" + }, + "engines": { + "node": "^12 || >=14" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "postcss-html": "^1.0.0", + "stylelint": ">=14.0.0" + } + }, + "node_modules/stylelint-config-recommended-vue/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint-config-recommended-vue/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint-config-recommended-vue/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/stylelint-config-standard": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-26.0.0.tgz", + "integrity": "sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^8.0.0" + }, + "peerDependencies": { + "stylelint": "^14.9.0" + } + }, + "node_modules/stylelint-config-tailwindcss": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stylelint-config-tailwindcss/-/stylelint-config-tailwindcss-0.0.6.tgz", + "integrity": "sha512-ymqhRR0Ob7vZmMHkgkBZk2H1PO7Z+yRLxv/c3RpKavdVJNlXEdkabaDVkHaE4Zp37Y9LlpBfWYHX23Xl8HVvIw==", + "dev": true, + "peerDependencies": { + "stylelint": ">=13.13.1", + "tailwindcss": ">=2.2.16" + } + }, + "node_modules/stylelint-prettier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-2.0.0.tgz", + "integrity": "sha512-jvT3G+9lopkeB0ARmDPszyfaOnvnIF+30QCjZxyt7E6fynI1T9mOKgYDNb9bXX17M7PXMZaX3j/26wqakjp1tw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "prettier": ">=2.0.0", + "stylelint": ">=14.0.0" + } + }, + "node_modules/stylelint/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/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/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/stylelint/node_modules/import-fresh/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/stylelint/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/stylelint/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/stylelint/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/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/stylelint/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/stylelint/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/stylelint/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -31421,6 +32172,138 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/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/table/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/table/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/table/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/table/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/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/table/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/table/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/tailwind-config-viewer": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/tailwind-config-viewer/-/tailwind-config-viewer-1.6.2.tgz", @@ -37841,6 +38724,13 @@ "@cspotcode/source-map-consumer": "0.8.0" } }, + "@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "dev": true, + "requires": {} + }, "@ensdomains/content-hash": { "version": "2.5.7", "resolved": "https://registry.npmjs.org/@ensdomains/content-hash/-/content-hash-2.5.7.tgz", @@ -44426,6 +45316,15 @@ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", "dev": true }, + "clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "requires": { + "is-regexp": "^2.0.0" + } + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -44521,6 +45420,12 @@ "integrity": "sha512-0ajlNgWWOR7EK9N6l2h0YKsZPzMCLQG5bheCoTGpGfhkR8tB5eQNItdua1oFHDTeq9JKgSzQJqo+Gp3V/xW+Lw==", "dev": true }, + "colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, "colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", @@ -45652,6 +46557,12 @@ } } }, + "css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true + }, "css-loader": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", @@ -46499,9 +47410,9 @@ "dev": true }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true }, "domexception": { @@ -48423,6 +49334,15 @@ "strip-eof": "^1.0.0" } }, + "execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "requires": { + "clone-regexp": "^2.1.0" + } + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -48884,6 +49804,12 @@ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, + "fastest-levenshtein": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz", + "integrity": "sha512-tFfWHjnuUfKE186Tfgr+jtaFc0mZTApEgKDOeyN+FwOqRkO/zK/3h1AiRd8u8CY53owL3CUmGr/oI9p/RdyLTA==", + "dev": true + }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -49658,6 +50584,12 @@ } } }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -49804,6 +50736,26 @@ "process": "^0.11.10" } }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -49832,6 +50784,12 @@ } } }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -50216,9 +51174,9 @@ } }, "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", "dev": true }, "html-webpack-plugin": { @@ -50524,6 +51482,12 @@ "resolve-from": "^3.0.0" } }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, "import-local": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", @@ -50958,6 +51922,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true + }, "is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -54121,6 +55091,12 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, + "known-css-properties": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", + "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", + "dev": true + }, "koa": { "version": "2.13.4", "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz", @@ -54784,6 +55760,12 @@ "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", "dev": true }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -54967,6 +55949,12 @@ "remove-accents": "0.4.2" } }, + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -55086,16 +56074,6 @@ "yargs-parser": "^20.2.3" }, "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, "hosted-git-info": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", @@ -55105,15 +56083,6 @@ "lru-cache": "^6.0.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -55135,40 +56104,6 @@ "validate-npm-package-license": "^3.0.1" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -57252,6 +58187,82 @@ } } }, + "postcss-html": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.5.0.tgz", + "integrity": "sha512-kCMRWJRHKicpA166kc2lAVUGxDZL324bkj/pVOb6RhjB0Z5Krl7mN0AsVkBhVIRZZirY0lyQXG38HCVaoKVNoA==", + "dev": true, + "peer": true, + "requires": { + "htmlparser2": "^8.0.0", + "js-tokens": "^8.0.0", + "postcss": "^8.4.0", + "postcss-safe-parser": "^6.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "peer": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "peer": true, + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dev": true, + "peer": true, + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + } + }, + "entities": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", + "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "dev": true, + "peer": true + }, + "htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "dev": true, + "peer": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, + "js-tokens": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.0.tgz", + "integrity": "sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==", + "dev": true, + "peer": true + } + } + }, "postcss-js": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz", @@ -57331,6 +58342,12 @@ } } }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, "postcss-merge-longhand": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", @@ -58116,6 +59133,19 @@ } } }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "requires": {} + }, "postcss-selector-parser": { "version": "6.0.10", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", @@ -58191,9 +59221,9 @@ } }, "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "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 }, "preact": { @@ -58749,6 +59779,59 @@ } } }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -59147,6 +60230,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -60674,6 +61763,12 @@ "lodash.defaults": "^4.2.0" } }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, "stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -60714,6 +61809,329 @@ } } }, + "stylelint": { + "version": "14.9.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.9.1.tgz", + "integrity": "sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==", + "dev": true, + "requires": { + "@csstools/selector-specificity": "^2.0.1", + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "execall": "^2.0.0", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.25.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.14", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "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 + }, + "balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, + "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 + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "stylelint-config-html": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-html/-/stylelint-config-html-1.1.0.tgz", + "integrity": "sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==", + "dev": true, + "requires": {} + }, + "stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "requires": {} + }, + "stylelint-config-recommended": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-8.0.0.tgz", + "integrity": "sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==", + "dev": true, + "requires": {} + }, + "stylelint-config-recommended-vue": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.4.0.tgz", + "integrity": "sha512-DVJqyX2KvMCn9U0+keL12r7xlsH26K4Vg8NrIZuq5MoF7g82DpMp326Om4E0Q+Il1o+bTHuUyejf2XAI0iD04Q==", + "dev": true, + "requires": { + "semver": "^7.3.5", + "stylelint-config-html": ">=1.0.0", + "stylelint-config-recommended": ">=6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "stylelint-config-standard": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-26.0.0.tgz", + "integrity": "sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==", + "dev": true, + "requires": { + "stylelint-config-recommended": "^8.0.0" + } + }, + "stylelint-config-tailwindcss": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stylelint-config-tailwindcss/-/stylelint-config-tailwindcss-0.0.6.tgz", + "integrity": "sha512-ymqhRR0Ob7vZmMHkgkBZk2H1PO7Z+yRLxv/c3RpKavdVJNlXEdkabaDVkHaE4Zp37Y9LlpBfWYHX23Xl8HVvIw==", + "dev": true, + "requires": {} + }, + "stylelint-prettier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-2.0.0.tgz", + "integrity": "sha512-jvT3G+9lopkeB0ARmDPszyfaOnvnIF+30QCjZxyt7E6fynI1T9mOKgYDNb9bXX17M7PXMZaX3j/26wqakjp1tw==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -60921,6 +62339,106 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "tailwind-config-viewer": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/tailwind-config-viewer/-/tailwind-config-viewer-1.6.2.tgz", diff --git a/package.json b/package.json index 7f026790d8..e4adef1ad3 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,9 @@ "lint:fix": "npm run lint -- --fix", "prettier": "prettier --check '**/*.*(md|json|yaml|html)' --loglevel warn", "prettier:fix": "npm run prettier -- --write", - "prepare": "node ./prepare.js && husky install", + "prepare": "node ./prepare.js", + "stylelint": "stylelint '**/*.{vue,css}'", + "stylelint:fix": "npm run stylelint -- --fix", "tailwind:build": "tailwind-config-viewer export ./tailwind-static", "tailwind:view": "tailwind-config-viewer -o", "generate:tokenlists": "ts-node -O '{\"module\": \"commonjs\"}' ./src/lib/scripts/tokenlists.generator.ts", @@ -101,6 +103,12 @@ "postcss": "^8.2.13", "prettier": "^2.7.1", "promise-worker": "^2.0.1", + "stylelint": "^14.9.1", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-recommended-vue": "^1.4.0", + "stylelint-config-standard": "^26.0.0", + "stylelint-config-tailwindcss": "^0.0.6", + "stylelint-prettier": "^2.0.0", "tailwind-config-viewer": "^1.5.0", "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.17", "ts-jest": "^27.1.3", @@ -125,7 +133,8 @@ }, "lint-staged": { "*.{js,ts,vue}": "eslint --cache --fix --max-warnings 0", - "*.{md,json,yaml,html}": "prettier --write" + "*.{md,json,yaml,html}": "prettier --write", + "*.{css,vue}": "stylelint --fix" }, "license": "MIT", "repository": "balancer-labs/frontend-v2" diff --git a/src/assets/css/animations/fireworks.css b/src/assets/css/animations/fireworks.css index 8009709eb7..c29596a8ab 100644 --- a/src/assets/css/animations/fireworks.css +++ b/src/assets/css/animations/fireworks.css @@ -4,32 +4,27 @@ width: 5px; height: 5px; border-radius: 50%; - box-shadow: -120px -218.66667px blue, 248px -16.66667px #00ff84, - 190px 16.33333px #002bff, -113px -308.66667px #ff009d, - -109px -287.66667px #ffb300, -50px -313.66667px #ff006e, - 226px -31.66667px #ff4000, 180px -351.66667px #ff00d0, - -12px -338.66667px #00f6ff, 220px -388.66667px #99ff00, - -69px -27.66667px #ff0400, -111px -339.66667px #6200ff, - 155px -237.66667px #00ddff, -152px -380.66667px #00ffd0, - -50px -37.66667px #00ffdd, -95px -175.66667px #a6ff00, - -88px 10.33333px #0d00ff, 112px -309.66667px #005eff, - 69px -415.66667px #ff00a6, 168px -100.66667px #ff004c, - -244px 24.33333px #ff6600, 97px -325.66667px #ff0066, - -211px -182.66667px #00ffa2, 236px -126.66667px #b700ff, - 140px -196.66667px #9000ff, 125px -175.66667px #00bbff, - 118px -381.66667px #ff002f, 144px -111.66667px #ffae00, - 36px -78.66667px #f600ff, -63px -196.66667px #c800ff, - -218px -227.66667px #d4ff00, -134px -377.66667px #ea00ff, - -36px -412.66667px #ff00d4, 209px -106.66667px #00fff2, - 91px -278.66667px #000dff, -22px -191.66667px #9dff00, - 139px -392.66667px #a6ff00, 56px -2.66667px #0099ff, - -156px -276.66667px #ea00ff, -163px -233.66667px #00fffb, - -238px -346.66667px #00ff73, 62px -363.66667px #0088ff, - 244px -170.66667px #0062ff, 224px -142.66667px #b300ff, - 141px -208.66667px #9000ff, 211px -285.66667px #ff6600, - 181px -128.66667px #1e00ff, 90px -123.66667px #c800ff, - 189px 70.33333px #00ffc8, -18px -383.66667px #00ff33, - 100px -6.66667px #ff008c; + box-shadow: -120px -218.6667px blue, 248px -16.6667px #00ff84, + 190px 16.3333px #002bff, -113px -308.6667px #ff009d, + -109px -287.6667px #ffb300, -50px -313.6667px #ff006e, + 226px -31.6667px #ff4000, 180px -351.6667px #ff00d0, + -12px -338.6667px #00f6ff, 220px -388.6667px #9f0, -69px -27.6667px #ff0400, + -111px -339.6667px #6200ff, 155px -237.6667px #0df, + -152px -380.6667px #00ffd0, -50px -37.6667px #0fd, -95px -175.6667px #a6ff00, + -88px 10.3333px #0d00ff, 112px -309.6667px #005eff, 69px -415.6667px #ff00a6, + 168px -100.6667px #ff004c, -244px 24.3333px #f60, 97px -325.6667px #f06, + -211px -182.6667px #00ffa2, 236px -126.6667px #b700ff, + 140px -196.6667px #9000ff, 125px -175.6667px #0bf, 118px -381.6667px #ff002f, + 144px -111.6667px #ffae00, 36px -78.6667px #f600ff, + -63px -196.6667px #c800ff, -218px -227.6667px #d4ff00, + -134px -377.6667px #ea00ff, -36px -412.6667px #ff00d4, + 209px -106.6667px #00fff2, 91px -278.6667px #000dff, + -22px -191.6667px #9dff00, 139px -392.6667px #a6ff00, 56px -2.6667px #09f, + -156px -276.6667px #ea00ff, -163px -233.6667px #00fffb, + -238px -346.6667px #00ff73, 62px -363.6667px #08f, 244px -170.6667px #0062ff, + 224px -142.6667px #b300ff, 141px -208.6667px #9000ff, 211px -285.6667px #f60, + 181px -128.6667px #1e00ff, 90px -123.6667px #c800ff, 189px 70.3333px #00ffc8, + -18px -383.6667px #0f3, 100px -6.6667px #ff008c; animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards; } @@ -39,58 +34,6 @@ animation-duration: 1.25s, 1.25s, 6.25s; } -@-webkit-keyframes bang { - from { - box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white; - } -} -@-moz-keyframes bang { - from { - box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white; - } -} -@-o-keyframes bang { - from { - box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white; - } -} -@-ms-keyframes bang { - from { - box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, - 0 0 white, 0 0 white, 0 0 white; - } -} @keyframes bang { from { box-shadow: 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, 0 0 white, @@ -104,160 +47,14 @@ 0 0 white, 0 0 white, 0 0 white; } } -@-webkit-keyframes gravity { - to { - transform: translateY(200px); - opacity: 0; - } -} -@-moz-keyframes gravity { - to { - transform: translateY(200px); - opacity: 0; - } -} -@-o-keyframes gravity { - to { - transform: translateY(200px); - opacity: 0; - } -} -@-ms-keyframes gravity { - to { - transform: translateY(200px); - opacity: 0; - } -} + @keyframes gravity { to { transform: translateY(200px); opacity: 0; } } -@-webkit-keyframes position { - 0%, - 19.9% { - margin-top: 10%; - margin-left: 40%; - } - - 20%, - 39.9% { - margin-top: 40%; - margin-left: 30%; - } - - 40%, - 59.9% { - margin-top: 20%; - margin-left: 70%; - } - - 60%, - 79.9% { - margin-top: 30%; - margin-left: 20%; - } - - 80%, - 99.9% { - margin-top: 30%; - margin-left: 80%; - } -} -@-moz-keyframes position { - 0%, - 19.9% { - margin-top: 10%; - margin-left: 40%; - } - - 20%, - 39.9% { - margin-top: 40%; - margin-left: 30%; - } - - 40%, - 59.9% { - margin-top: 20%; - margin-left: 70%; - } - - 60%, - 79.9% { - margin-top: 30%; - margin-left: 20%; - } - - 80%, - 99.9% { - margin-top: 30%; - margin-left: 80%; - } -} -@-o-keyframes position { - 0%, - 19.9% { - margin-top: 10%; - margin-left: 40%; - } - - 20%, - 39.9% { - margin-top: 40%; - margin-left: 30%; - } - - 40%, - 59.9% { - margin-top: 20%; - margin-left: 70%; - } - - 60%, - 79.9% { - margin-top: 30%; - margin-left: 20%; - } - - 80%, - 99.9% { - margin-top: 30%; - margin-left: 80%; - } -} -@-ms-keyframes position { - 0%, - 19.9% { - margin-top: 10%; - margin-left: 40%; - } - 20%, - 39.9% { - margin-top: 40%; - margin-left: 30%; - } - - 40%, - 59.9% { - margin-top: 20%; - margin-left: 70%; - } - - 60%, - 79.9% { - margin-top: 30%; - margin-left: 20%; - } - - 80%, - 99.9% { - margin-top: 30%; - margin-left: 80%; - } -} @keyframes position { 0%, 19.9% { diff --git a/src/assets/css/global/all.css b/src/assets/css/global/all.css index 2b7732dc36..bbf4b51dea 100644 --- a/src/assets/css/global/all.css +++ b/src/assets/css/global/all.css @@ -8,6 +8,7 @@ html, body { @apply font-body; + -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @@ -41,16 +42,18 @@ a { /* Hide number input spin/arrows */ input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { - -webkit-appearance: none; + appearance: none; margin: 0; } + input[type='number'] { - -moz-appearance: textfield; /* Firefox */ + appearance: textfield; /* Firefox */ } *::-webkit-scrollbar { @apply bg-gray-50 dark:bg-gray-900; } + *::-webkit-scrollbar-thumb { @apply bg-gray-200 dark:bg-gray-700; } diff --git a/src/assets/css/global/animations.css b/src/assets/css/global/animations.css index 021e36b4ce..5d88cbca40 100644 --- a/src/assets/css/global/animations.css +++ b/src/assets/css/global/animations.css @@ -16,6 +16,7 @@ 0% { opacity: 0; } + 100% { opacity: 1; } @@ -38,9 +39,10 @@ opacity: 0; transform: translateY(5px); } + 100% { opacity: 1; - transform: translateY(0px); + transform: translateY(0); } } @@ -49,9 +51,10 @@ opacity: 0; transform: translateY(-5px); } + 100% { opacity: 1; - transform: translateY(0px); + transform: translateY(0); } } @@ -60,6 +63,7 @@ transform: rotate(0deg); opacity: 0; } + to { transform: rotate(-90deg); opacity: 1; @@ -71,9 +75,10 @@ opacity: 0; transform: scale(0.96) translateY(-10px); } + 100% { opacity: 1; - transform: scale(1) translateY(0px); + transform: scale(1) translateY(0); } } diff --git a/src/assets/css/global/fonts.css b/src/assets/css/global/fonts.css index 1d84b461a0..9cb7b91233 100644 --- a/src/assets/css/global/fonts.css +++ b/src/assets/css/global/fonts.css @@ -1,5 +1,5 @@ @font-face { - font-family: 'Inter-Variable'; + font-family: Inter-Variable; src: url('../../fonts/Inter-Variable.ttf') format('truetype'); font-weight: 400; font-style: normal; diff --git a/src/assets/css/global/social-icons.css b/src/assets/css/global/social-icons.css index 206ef38d3b..f2c30a09fd 100644 --- a/src/assets/css/global/social-icons.css +++ b/src/assets/css/global/social-icons.css @@ -1,22 +1,29 @@ +.social-icon .logo { + fill: #fff; + + @apply transition-all; +} + +.dark .social-icon .logo { + fill: #0f172a; /* gray-900 */ +} + .social-icon:hover .logo { fill: #fff; /* gray-900 */ transform-origin: center; transform: scale(1.05); } + .social-icon .bg { fill: #0f172a; /* gray-900 */ + @apply transition-all; } -.social-icon .logo { - fill: #fff; - @apply transition-all; -} + .dark .social-icon:hover .logo { fill: #fff; } + .dark .social-icon .bg { fill: #fff; } -.dark .social-icon .logo { - fill: #0f172a; /* gray-900 */ -} diff --git a/src/assets/css/global/typography.css b/src/assets/css/global/typography.css index 60a42c561f..0003be9029 100644 --- a/src/assets/css/global/typography.css +++ b/src/assets/css/global/typography.css @@ -2,9 +2,11 @@ h1, h2 { font-variation-settings: 'wght' 700; } + h1 { @apply text-4xl; } + h2 { @apply text-3xl tracking-tight; } @@ -15,19 +17,26 @@ h5, h6 { @apply font-body; } + h3 { @apply text-2xl tracking-tight; + font-variation-settings: 'wght' 600; } + h4 { @apply text-xl tracking-tight; + font-variation-settings: 'wght' 600; } + h5 { @apply text-lg; + font-weight: unset; font-variation-settings: 'wght' 600; } + h6 { font-variation-settings: 'wght' 600; } diff --git a/src/assets/css/tailwind.css b/src/assets/css/tailwind.css index 20f6149b9c..5193931e3a 100644 --- a/src/assets/css/tailwind.css +++ b/src/assets/css/tailwind.css @@ -6,6 +6,7 @@ .text-primary { @apply text-gray-900 dark:text-gray-100; } + .text-secondary { @apply text-gray-600 dark:text-gray-400; } @@ -22,64 +23,81 @@ .font-black { font-weight: unset; } + th { font-variation-settings: 'wght' 600; } + .font-thin { font-variation-settings: 'wght' 100; } + .font-extralight { font-variation-settings: 'wght' 200; } + .font-light { font-variation-settings: 'wght' 300; } + .font-normal { font-variation-settings: 'wght' 400; } + .font-medium { font-variation-settings: 'wght' 500; } + .font-semibold { font-variation-settings: 'wght' 600; } + .font-bold { font-variation-settings: 'wght' 700; } + .font-extrabold { font-variation-settings: 'wght' 800; } + .font-black { font-variation-settings: 'wght' 900; } + .font-numeric { font-feature-settings: 'tnum'; letter-spacing: -0.5px; } + .eth-address { font-variant-ligatures: no-contextual; } + .text-gradient { @apply bg-blue-500; + background-image: linear-gradient( 45deg, theme('colors.blue.700'), theme('colors.pink.500') ); background-size: 100%; - -webkit-background-clip: text; - -moz-background-clip: text; + background-clip: text; -webkit-text-fill-color: transparent; -moz-text-fill-color: transparent; } + .link { - @apply text-blue-600 hover:text-purple-600 focus:text-purple-600 dark:text-blue-400 dark:hover:text-yellow-500 dark:focus:text-yellow-500 hover:underline focus:underline transition-all; + @apply text-blue-600 hover:text-purple-600 focus:text-purple-600 dark:text-blue-400 dark:hover:text-yellow-500 + dark:focus:text-yellow-500 hover:underline focus:underline transition-all; } .link-black { - @apply text-gray-900 hover:text-purple-600 focus:text-purple-600 dark:text-gray-100 dark:hover:text-yellow-500 dark:focus:text-yellow-500 hover:underline focus:underline transition-all; + @apply text-gray-900 hover:text-purple-600 focus:text-purple-600 dark:text-gray-100 dark:hover:text-yellow-500 + dark:focus:text-yellow-500 hover:underline focus:underline transition-all; } + .text-shadow { - text-shadow: 0px 1px 0px rgb(0 0 0 / 10%), 4px 4px 8px rgb(0 0 0 / 15%); + text-shadow: 0 1px 0 rgb(0 0 0 / 10%), 4px 4px 8px rgb(0 0 0 / 15%); } } diff --git a/src/components/_global/BalAlert/BalAlert.vue b/src/components/_global/BalAlert/BalAlert.vue index ab1c6bd18c..a43a4fe607 100644 --- a/src/components/_global/BalAlert/BalAlert.vue +++ b/src/components/_global/BalAlert/BalAlert.vue @@ -205,6 +205,7 @@ export default defineComponent({ .bal-alert-content { @apply flex; + min-width: 0; } diff --git a/src/components/_global/BalAsset/BalAsset.vue b/src/components/_global/BalAsset/BalAsset.vue index abdc6d22f6..de782adee9 100644 --- a/src/components/_global/BalAsset/BalAsset.vue +++ b/src/components/_global/BalAsset/BalAsset.vue @@ -95,6 +95,7 @@ button.bal-asset { button.bal-asset:hover, button.bal-asset:focus { @apply scale-110 transform-gpu; - box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.15); + + box-shadow: 0 4px 8px rgb(0 0 0 / 15%); } diff --git a/src/components/_global/BalAsset/BalAssetSet.vue b/src/components/_global/BalAsset/BalAssetSet.vue index fdbf887e9f..50707b9e5f 100644 --- a/src/components/_global/BalAsset/BalAssetSet.vue +++ b/src/components/_global/BalAsset/BalAssetSet.vue @@ -155,8 +155,21 @@ export default defineComponent({ @apply relative flex; } +.token-icon { + margin-left: -2px; + + @apply rounded-full overflow-hidden shadow-none; + @apply bg-white dark:bg-gray-850; + @apply border-2 border-white dark:border-gray-850 group-hover:border-gray-50 dark:group-hover:border-gray-800; +} + +.my-wallet .token-icon { + @apply ml-0; +} + .my-wallet .addresses-row { @apply flex-wrap gap-2; + width: auto !important; height: auto !important; } @@ -176,15 +189,4 @@ export default defineComponent({ width: 24px !important; height: 24px !important; } - -.token-icon { - margin-left: -2px; - @apply rounded-full overflow-hidden shadow-none; - @apply bg-white dark:bg-gray-850; - @apply border-2 border-white dark:border-gray-850 group-hover:border-gray-50 dark:group-hover:border-gray-800; -} - -.my-wallet .token-icon { - @apply ml-0; -} diff --git a/src/components/_global/BalBlankSlate/BalBlankSlate.vue b/src/components/_global/BalBlankSlate/BalBlankSlate.vue index 2656516996..d2ae865bdc 100644 --- a/src/components/_global/BalBlankSlate/BalBlankSlate.vue +++ b/src/components/_global/BalBlankSlate/BalBlankSlate.vue @@ -15,6 +15,7 @@ export default defineComponent({ diff --git a/src/components/_global/BalBtn/BalBtn.vue b/src/components/_global/BalBtn/BalBtn.vue index 1d1bd95193..e9bfeeca7a 100644 --- a/src/components/_global/BalBtn/BalBtn.vue +++ b/src/components/_global/BalBtn/BalBtn.vue @@ -229,6 +229,7 @@ export default defineComponent({ diff --git a/src/components/_global/BalModal/BalModal.vue b/src/components/_global/BalModal/BalModal.vue index ec78567f44..9d5c15943e 100644 --- a/src/components/_global/BalModal/BalModal.vue +++ b/src/components/_global/BalModal/BalModal.vue @@ -104,6 +104,7 @@ defineExpose({ hide }); .content { @apply relative w-full h-3/4 sm:h-auto max-h-screen; + max-width: 450px; transform-style: preserve-3d; } @@ -116,7 +117,7 @@ defineExpose({ hide }); @apply mx-auto h-full rounded-b-none sm:rounded-b-lg dark:border-0; } -.dark .bal-modal .content:before { +.dark .bal-modal .content::before { background-blend-mode: soft-light, soft-light, normal; background: radial-gradient(circle at left, yellow, transparent), radial-gradient(circle at bottom right, blue, transparent), @@ -152,6 +153,7 @@ defineExpose({ hide }); .modal-leave-active { transition: all 0.2s ease-out; } + .modal-enter-from, .modal-leave-to { transform: translateY(10px); diff --git a/src/components/_global/BalPopover/BalPopover.vue b/src/components/_global/BalPopover/BalPopover.vue index aca3d5ceab..2aba76c0b7 100644 --- a/src/components/_global/BalPopover/BalPopover.vue +++ b/src/components/_global/BalPopover/BalPopover.vue @@ -104,6 +104,7 @@ watch(popoverOpened, () => { diff --git a/src/components/_global/BalRadio/BalRadio.vue b/src/components/_global/BalRadio/BalRadio.vue index eb6eb8f14f..038350d7e4 100644 --- a/src/components/_global/BalRadio/BalRadio.vue +++ b/src/components/_global/BalRadio/BalRadio.vue @@ -113,25 +113,21 @@ export default defineComponent({ .bal-radio-input { @apply bg-white dark:bg-gray-900 rounded-full m-0; @apply border border-gray-300 dark:border-gray-900; + transition: all ease 0.25s; - -webkit-appearance: none; - -moz-appearance: none; appearance: none; -webkit-print-color-adjust: exact; color-adjust: exact; display: inline-block; vertical-align: middle; background-origin: border-box; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; user-select: none; } .bal-radio-input:checked { background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); border-color: transparent; - background-color: currentColor; + background-color: currentcolor; background-size: 100% 100%; background-position: center; background-repeat: no-repeat; diff --git a/src/components/_global/BalRangeInput/BalRangeInput.vue b/src/components/_global/BalRangeInput/BalRangeInput.vue index 8b0b52451b..3e450f02ea 100644 --- a/src/components/_global/BalRangeInput/BalRangeInput.vue +++ b/src/components/_global/BalRangeInput/BalRangeInput.vue @@ -106,6 +106,6 @@ export default defineComponent({ diff --git a/src/components/_global/BalSelectInput/BalSelectInput.vue b/src/components/_global/BalSelectInput/BalSelectInput.vue index 71aafd0061..3dba1ada7a 100644 --- a/src/components/_global/BalSelectInput/BalSelectInput.vue +++ b/src/components/_global/BalSelectInput/BalSelectInput.vue @@ -165,7 +165,8 @@ export default defineComponent({ diff --git a/src/components/cards/PairPriceGraph/PairPriceGraph.vue b/src/components/cards/PairPriceGraph/PairPriceGraph.vue index 98c0dfec8d..512a7715d9 100644 --- a/src/components/cards/PairPriceGraph/PairPriceGraph.vue +++ b/src/components/cards/PairPriceGraph/PairPriceGraph.vue @@ -392,6 +392,7 @@ const chartGrid = computed(() => { diff --git a/src/components/cards/TrendingPairs/TrendingPairs.vue b/src/components/cards/TrendingPairs/TrendingPairs.vue index d6291b9aa9..02acc38066 100644 --- a/src/components/cards/TrendingPairs/TrendingPairs.vue +++ b/src/components/cards/TrendingPairs/TrendingPairs.vue @@ -97,6 +97,7 @@ const setTradePair = (pair: TrendingPair[]) => { diff --git a/src/components/contextual/pages/claim/HeroClaim.vue b/src/components/contextual/pages/claim/HeroClaim.vue index dd81d73d23..d770f46b75 100644 --- a/src/components/contextual/pages/claim/HeroClaim.vue +++ b/src/components/contextual/pages/claim/HeroClaim.vue @@ -106,7 +106,9 @@ diff --git a/src/components/footer/Footer.vue b/src/components/footer/Footer.vue index b0a6c26ac5..2f9c772d16 100644 --- a/src/components/footer/Footer.vue +++ b/src/components/footer/Footer.vue @@ -259,6 +259,7 @@ footer { footer :deep(.logotype) { @apply origin-top-left; + transform: scale(1.5); } diff --git a/src/components/forms/pool_actions/InvestForm/components/InvestPreviewModal/components/InvestSummary.vue b/src/components/forms/pool_actions/InvestForm/components/InvestPreviewModal/components/InvestSummary.vue index 4b279a30a9..efe5c3706d 100644 --- a/src/components/forms/pool_actions/InvestForm/components/InvestPreviewModal/components/InvestSummary.vue +++ b/src/components/forms/pool_actions/InvestForm/components/InvestPreviewModal/components/InvestSummary.vue @@ -84,12 +84,15 @@ const { currency } = useUserSettings(); .summary-table { @apply border dark:border-gray-700 divide-y dark:divide-gray-700 rounded-lg mt-4; } + .summary-table-row { @apply grid grid-cols-2 px-2 py-1; } + .summary-table-label { @apply flex items-center; } + .summary-table-number { @apply flex items-center justify-end; } diff --git a/src/components/forms/pool_actions/WithdrawForm/components/WithdrawalTokenSelect.vue b/src/components/forms/pool_actions/WithdrawForm/components/WithdrawalTokenSelect.vue index 9e1ce63bf7..68fec6a6d5 100644 --- a/src/components/forms/pool_actions/WithdrawForm/components/WithdrawalTokenSelect.vue +++ b/src/components/forms/pool_actions/WithdrawForm/components/WithdrawalTokenSelect.vue @@ -133,6 +133,7 @@ function handleSelected(newToken: string): void { .token-select-input { @apply shadow rounded-lg flex items-center h-10 px-2 whitespace-nowrap; @apply text-sm; + font-variation-settings: 'wght' 700; } diff --git a/src/components/heros/AppHero.vue b/src/components/heros/AppHero.vue index 8367455f20..f937ab0518 100644 --- a/src/components/heros/AppHero.vue +++ b/src/components/heros/AppHero.vue @@ -9,6 +9,7 @@ diff --git a/src/components/icons/IconTwitter.vue b/src/components/icons/IconTwitter.vue index 766a513319..ffbf8742a5 100644 --- a/src/components/icons/IconTwitter.vue +++ b/src/components/icons/IconTwitter.vue @@ -30,6 +30,6 @@ export default {}; diff --git a/src/components/images/AppLogo.vue b/src/components/images/AppLogo.vue index 64aa030b95..ffdff5a4d3 100644 --- a/src/components/images/AppLogo.vue +++ b/src/components/images/AppLogo.vue @@ -61,6 +61,7 @@ const fillColor = computed(() => { diff --git a/src/components/inputs/TokenSelectInput/TokenSelectInput.vue b/src/components/inputs/TokenSelectInput/TokenSelectInput.vue index 8fb1de69d1..c481e19a13 100644 --- a/src/components/inputs/TokenSelectInput/TokenSelectInput.vue +++ b/src/components/inputs/TokenSelectInput/TokenSelectInput.vue @@ -167,6 +167,7 @@ function toggleModal(): void { .token-select-input { @apply shadow rounded-lg flex items-center h-10 px-2 whitespace-nowrap; @apply text-sm; + font-variation-settings: 'wght' 700; } diff --git a/src/components/modals/TradePreviewModal.vue b/src/components/modals/TradePreviewModal.vue index ec12bff5f3..4dcf2019e6 100644 --- a/src/components/modals/TradePreviewModal.vue +++ b/src/components/modals/TradePreviewModal.vue @@ -296,6 +296,7 @@ export default defineComponent({ .card-container { @apply p-3 flex items-center border rounded-lg dark:border-gray-800; } + .card-step { @apply w-9 h-9 flex items-center justify-center border rounded-full dark:border-gray-700; } diff --git a/src/components/modals/TradePreviewModalGP.vue b/src/components/modals/TradePreviewModalGP.vue index 467abdae1e..79e8e3a290 100644 --- a/src/components/modals/TradePreviewModalGP.vue +++ b/src/components/modals/TradePreviewModalGP.vue @@ -880,7 +880,9 @@ export default defineComponent({ diff --git a/src/components/navs/AppNav/AppNavActivityBtn/ActivityRows.vue b/src/components/navs/AppNav/AppNavActivityBtn/ActivityRows.vue index 8f8d52323b..aab035c287 100644 --- a/src/components/navs/AppNav/AppNavActivityBtn/ActivityRows.vue +++ b/src/components/navs/AppNav/AppNavActivityBtn/ActivityRows.vue @@ -129,18 +129,23 @@ export default defineComponent({ .row { @apply flex justify-between items-center; } + .row:last-child { @apply mb-0; } + .summary { @apply overflow-hidden; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } + .failed-reason-tooltip { @apply lowercase; } + .failed-reason-tooltip::first-letter { @apply uppercase; } diff --git a/src/components/navs/AppNav/AppNavAlert.vue b/src/components/navs/AppNav/AppNavAlert.vue index ab00e68b65..f1960ea963 100644 --- a/src/components/navs/AppNav/AppNavAlert.vue +++ b/src/components/navs/AppNav/AppNavAlert.vue @@ -87,8 +87,10 @@ export default defineComponent({ diff --git a/src/components/navs/AppNav/AppSidebar/SidebarContent.vue b/src/components/navs/AppNav/AppSidebar/SidebarContent.vue index 404344e4f8..372e844f06 100644 --- a/src/components/navs/AppNav/AppSidebar/SidebarContent.vue +++ b/src/components/navs/AppNav/AppSidebar/SidebarContent.vue @@ -175,20 +175,22 @@ watch(blockNumber, async () => { } .social-link { - @apply w-11 h-11 xs:w-12 xs:h-12 rounded-full bg-gray-850 hover:bg-gray-800 flex items-center justify-center text-white cursor-pointer; + @apply w-11 h-11 xs:w-12 xs:h-12 rounded-full bg-gray-850 hover:bg-gray-800 flex items-center justify-center + text-white cursor-pointer; } .social-link > svg { @apply w-6 h-6; + fill: white; } .block-icon { - box-shadow: 0px 0px 3px 2px theme('colors.green.500'); + box-shadow: 0 0 3px 2px theme('colors.green.500'); transition: box-shadow 0.3s ease-in-out; } .block-change { - box-shadow: 0px 0px 6px 4px theme('colors.green.500'); + box-shadow: 0 0 6px 4px theme('colors.green.500'); } diff --git a/src/components/navs/AppNav/DesktopLinks/DesktopLinkItem.vue b/src/components/navs/AppNav/DesktopLinks/DesktopLinkItem.vue index c85ceda62f..161993c266 100644 --- a/src/components/navs/AppNav/DesktopLinks/DesktopLinkItem.vue +++ b/src/components/navs/AppNav/DesktopLinks/DesktopLinkItem.vue @@ -24,33 +24,43 @@ const classes = computed(() => ({ diff --git a/src/components/notifications/Notification.vue b/src/components/notifications/Notification.vue index c987460fa4..9a8682ec7a 100644 --- a/src/components/notifications/Notification.vue +++ b/src/components/notifications/Notification.vue @@ -129,11 +129,14 @@ export default defineComponent({ .title { @apply lowercase; } + .title::first-letter { @apply uppercase; } + .message { @apply overflow-hidden; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; diff --git a/src/components/notifications/Notifications.vue b/src/components/notifications/Notifications.vue index 879f054814..ca83b42f1f 100644 --- a/src/components/notifications/Notifications.vue +++ b/src/components/notifications/Notifications.vue @@ -42,10 +42,12 @@ export default defineComponent({ opacity: 0; transform: translateX(-300px); } + .slide-enter-active, .slide-leave-active { transition: all 1s cubic-bezier(0.5, 0, 0.54, 1.42); } + .slide-move { transition: all 0.3s ease; } diff --git a/src/components/pool/PoolChartPeriodSelect.vue b/src/components/pool/PoolChartPeriodSelect.vue index 1896729874..6f9d137fd4 100644 --- a/src/components/pool/PoolChartPeriodSelect.vue +++ b/src/components/pool/PoolChartPeriodSelect.vue @@ -60,19 +60,21 @@ defineProps(); diff --git a/src/components/tables/PoolsTable/TokenPills/HiddenTokensPills.vue b/src/components/tables/PoolsTable/TokenPills/HiddenTokensPills.vue index f0b21b4356..43669341ef 100644 --- a/src/components/tables/PoolsTable/TokenPills/HiddenTokensPills.vue +++ b/src/components/tables/PoolsTable/TokenPills/HiddenTokensPills.vue @@ -55,7 +55,8 @@ withDefaults(defineProps(), { @apply bg-gray-50 dark:bg-gray-600 text-gray-600 dark:text-gray-400; @apply text-sm; @apply flex items-center; - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.07); + + box-shadow: 2px 2px 4px rgb(0 0 0 / 7%); } .pill-selected { @@ -66,7 +67,8 @@ withDefaults(defineProps(), { .pill-stacked { @apply h-full w-full; @apply absolute top-0 left-0; - box-shadow: 2px 0px 4px rgba(0, 0, 0, 0.07); + + box-shadow: 2px 0 4px rgb(0 0 0 / 7%); } .balance-indicator { diff --git a/src/components/tables/PoolsTable/TokenPills/StableTokenPill.vue b/src/components/tables/PoolsTable/TokenPills/StableTokenPill.vue index fed2dad1e0..bd4b6487c8 100644 --- a/src/components/tables/PoolsTable/TokenPills/StableTokenPill.vue +++ b/src/components/tables/PoolsTable/TokenPills/StableTokenPill.vue @@ -62,24 +62,26 @@ withDefaults(defineProps(), { @apply w-full h-full; @apply absolute; @apply bg-gray-100 dark:bg-gray-700; + content: ''; transform: skew(-12deg); } .pill:first-child::before { - border-radius: 4px 0px 0px 4px; + border-radius: 4px 0 0 4px; } .pill:last-child::before { - border-radius: 0px 4px 4px 0px; + border-radius: 0 4px 4px 0; } .pill:only-child::before { - border-radius: 4px 4px 4px 4px; + border-radius: 4px; } .pill-text { @apply px-2 py-1; + z-index: 1; } @@ -89,7 +91,8 @@ withDefaults(defineProps(), { .balance-indicator { @apply w-3 h-3; - @apply rounded-full border-2 border-white dark:border-gray-850 group-hover:border-gray-50 dark:group-hover:border-gray-800; + @apply rounded-full border-2 border-white dark:border-gray-850 group-hover:border-gray-50 + dark:group-hover:border-gray-800; @apply bg-green-200 dark:bg-green-500; @apply absolute top-0 right-0 -mt-1 -mr-2; } diff --git a/src/components/tables/PoolsTable/TokenPills/WeightedTokenPill.vue b/src/components/tables/PoolsTable/TokenPills/WeightedTokenPill.vue index 304a3cdf11..3901fe0b06 100644 --- a/src/components/tables/PoolsTable/TokenPills/WeightedTokenPill.vue +++ b/src/components/tables/PoolsTable/TokenPills/WeightedTokenPill.vue @@ -69,7 +69,8 @@ withDefaults(defineProps(), { .balance-indicator { @apply w-3 h-3; - @apply rounded-full border-2 border-white dark:border-gray-850 group-hover:border-gray-50 dark:group-hover:border-gray-800; + @apply rounded-full border-2 border-white dark:border-gray-850 group-hover:border-gray-50 + dark:group-hover:border-gray-800; @apply bg-green-400 dark:bg-green-500; @apply absolute top-0 right-0 -mt-1 -mr-1; } diff --git a/src/pages/_layouts/ContentLayout.vue b/src/pages/_layouts/ContentLayout.vue index 9254744627..036607e9d9 100644 --- a/src/pages/_layouts/ContentLayout.vue +++ b/src/pages/_layouts/ContentLayout.vue @@ -16,6 +16,7 @@ import AppNav from '@/components/navs/AppNav/AppNav.vue'; diff --git a/src/pages/pool/_id.vue b/src/pages/pool/_id.vue index f1709f9955..65df952351 100644 --- a/src/pages/pool/_id.vue +++ b/src/pages/pool/_id.vue @@ -328,6 +328,7 @@ export default defineComponent({ @apply sticky top-24; } } + .staking-incentives :deep(.active-section) { @apply border-transparent; } diff --git a/stylelint.config.js b/stylelint.config.js new file mode 100644 index 0000000000..fedce45b9e --- /dev/null +++ b/stylelint.config.js @@ -0,0 +1,31 @@ +module.exports = { + extends: [ + 'stylelint-config-standard', + 'stylelint-config-recommended-vue', + 'stylelint-config-tailwindcss', + 'stylelint-config-prettier', + ], + plugins: ['stylelint-prettier'], + rules: { + 'prettier/prettier': true, + 'string-quotes': 'single', + 'selector-class-pattern': '', + 'keyframes-name-pattern': '', + + // Ignore "display: -webkit-box;" + // This line clampin technique only works with the webkit prefix. + // https://css-tricks.com/line-clampin/ + 'value-no-vendor-prefix': [true, { ignoreValues: ['box'] }], + + // stylelint-config-tailwindcss and stylelint-config-recommended-vue + // somehow conflict with each other, so we need to allow + // tailwind's theme, and vue's v-bind functions here. + // Check back later if this is a bug in stylelint-config-tailwindcss and it's fixed. + 'function-no-unknown': [true, { ignoreFunctions: ['v-bind', 'theme'] }], + + // Allow v-bind function (a method to use component state properties inside