diff --git a/.dockerignore b/.dockerignore index d06d9902403..e8df2e10a4a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -14,6 +14,7 @@ !webpack.config.js !postcss.config.js !playwright.config.ts +!tailwind.config.js !.kearc !.storybook !tsconfig.json diff --git a/.stylelintrc.js b/.stylelintrc.js index e41cb17d841..3b41343e308 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -40,6 +40,12 @@ module.exports = { message: 'Expected variable to match kebab-case or snake_case', }, ], + 'scss/at-rule-no-unknown': [ + true, + { + 'ignoreAtRules': ['tailwind'] + } + ], 'scss/operator-no-newline-after': null, // Doesn't always play well with prettier 'scss/at-extend-no-missing-placeholder': null, 'scss/comment-no-empty': null, diff --git a/bin/start-frontend b/bin/start-frontend index 8e5ba74fc91..f71a8c35936 100755 --- a/bin/start-frontend +++ b/bin/start-frontend @@ -4,5 +4,9 @@ set -e # pass first argument to WEBPACK_HOT_RELOAD_HOST [ $# -ge 1 ] && export WEBPACK_HOT_RELOAD_HOST=$1 +# DEBUG=1 might be exported to this script from a parent, but we don't want it in the frontend build process +# In particular, DEBUG=1 enables a lot of Tailwind logging we don't need, so let's set 0 instead +export DEBUG=0 + pnpm install pnpm start diff --git a/cypress/e2e/trends.cy.ts b/cypress/e2e/trends.cy.ts index 4db6c8ee95a..a1aa9d31a55 100644 --- a/cypress/e2e/trends.cy.ts +++ b/cypress/e2e/trends.cy.ts @@ -43,8 +43,7 @@ describe('Trends', () => { cy.get('[data-attr=math-selector-0]').click() cy.get('[data-attr=math-total-0]').should('be.visible') - cy.get('[data-attr=math-node-property-value-0]').click() - cy.get('[data-attr=math-avg-0]').click() + cy.get('[data-attr=math-node-property-value-0]').click('left') cy.get('[data-attr=math-property-select]').should('exist') }) diff --git a/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--dark.png b/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--dark.png index a7abeb3e31d..ee4c46f959b 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--dark.png and b/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--dark.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--light.png b/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--light.png index bb1a4dc6284..216fe48ac87 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--light.png and b/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--light.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--importing-module--dark.png b/frontend/__snapshots__/components-errors-error-display--importing-module--dark.png index b70d129dff5..e994ede6d9b 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--importing-module--dark.png and b/frontend/__snapshots__/components-errors-error-display--importing-module--dark.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--importing-module--light.png b/frontend/__snapshots__/components-errors-error-display--importing-module--light.png index caa7590b38f..b86d5d5c035 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--importing-module--light.png and b/frontend/__snapshots__/components-errors-error-display--importing-module--light.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--dark.png b/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--dark.png index 0078c07650b..9589b57a0d9 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--dark.png and b/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--dark.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--light.png b/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--light.png index d3e7c1ce679..88915ba8453 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--light.png and b/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--light.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--safari-script-error--dark.png b/frontend/__snapshots__/components-errors-error-display--safari-script-error--dark.png index b8b63482a6d..8e90948a09f 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--safari-script-error--dark.png and b/frontend/__snapshots__/components-errors-error-display--safari-script-error--dark.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--safari-script-error--light.png b/frontend/__snapshots__/components-errors-error-display--safari-script-error--light.png index c66770936ea..300a2d36739 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--safari-script-error--light.png and b/frontend/__snapshots__/components-errors-error-display--safari-script-error--light.png differ diff --git a/frontend/__snapshots__/components-networkrequesttiming--basic--dark.png b/frontend/__snapshots__/components-networkrequesttiming--basic--dark.png index 3923c9d8ca7..39d124b7321 100644 Binary files a/frontend/__snapshots__/components-networkrequesttiming--basic--dark.png and b/frontend/__snapshots__/components-networkrequesttiming--basic--dark.png differ diff --git a/frontend/__snapshots__/components-networkrequesttiming--basic--light.png b/frontend/__snapshots__/components-networkrequesttiming--basic--light.png index 9909a831e80..dd3ec76426d 100644 Binary files a/frontend/__snapshots__/components-networkrequesttiming--basic--light.png and b/frontend/__snapshots__/components-networkrequesttiming--basic--light.png differ diff --git a/frontend/__snapshots__/components-not-found--not-found--dark.png b/frontend/__snapshots__/components-not-found--not-found--dark.png index 2851e668fac..0490729ac83 100644 Binary files a/frontend/__snapshots__/components-not-found--not-found--dark.png and b/frontend/__snapshots__/components-not-found--not-found--dark.png differ diff --git a/frontend/__snapshots__/components-not-found--not-found--light.png b/frontend/__snapshots__/components-not-found--not-found--light.png index 6090c39c0df..5886f7561c0 100644 Binary files a/frontend/__snapshots__/components-not-found--not-found--light.png and b/frontend/__snapshots__/components-not-found--not-found--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--dark.png b/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--dark.png index dc701797d93..5aeb67eab85 100644 Binary files a/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--dark.png and b/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--light.png b/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--light.png index 80c440d0c93..8c832059395 100644 Binary files a/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--light.png and b/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png index 6a53270f112..63b7bfd9b12 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png index 9e2bdac9d67..550cee152c1 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png and b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--dark.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--dark.png index e41052cc3e6..b3f0e5aff92 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--light.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--light.png index 1e3bd4537ae..2270b98673d 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--light.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--dark.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--dark.png index e41052cc3e6..b3f0e5aff92 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--light.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--light.png index 1e3bd4537ae..2270b98673d 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--light.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--dark.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--dark.png index 431eb5f5086..c443418b645 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--light.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--light.png index 104b2e2158d..0e60b3bbfed 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--light.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--dark.png b/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--dark.png index 39e1746d4f2..be0f293e55e 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--light.png b/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--light.png index 0c3de1ec602..aa5074e189f 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--light.png and b/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--dark.png b/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--dark.png index 16a7dce66e7..26f01c95ac3 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--light.png b/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--light.png index 2383a3628ca..31376935890 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--light.png and b/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--light.png differ diff --git a/frontend/__snapshots__/replay-player-failure--recent-recordings-404--dark.png b/frontend/__snapshots__/replay-player-failure--recent-recordings-404--dark.png index 0c0dfaa5d93..6f65b705003 100644 Binary files a/frontend/__snapshots__/replay-player-failure--recent-recordings-404--dark.png and b/frontend/__snapshots__/replay-player-failure--recent-recordings-404--dark.png differ diff --git a/frontend/__snapshots__/replay-player-failure--recent-recordings-404--light.png b/frontend/__snapshots__/replay-player-failure--recent-recordings-404--light.png index 691ed0e6485..1c75975ae47 100644 Binary files a/frontend/__snapshots__/replay-player-failure--recent-recordings-404--light.png and b/frontend/__snapshots__/replay-player-failure--recent-recordings-404--light.png differ diff --git a/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--dark.png b/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--dark.png index d5f702a033e..5e7de45b99f 100644 Binary files a/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--dark.png and b/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--light.png b/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--light.png index 16ee0a54f36..a22ddbb2215 100644 Binary files a/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--light.png and b/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--dark.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--dark.png index a60892c250f..f34d9ff379b 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--light.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--light.png index c7ecb5f0dec..b6753ebf76e 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--light.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--dark.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--dark.png index 76a00bfefed..df154c90cb7 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--light.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--light.png index 40b74bcf45d..368cc4ccd4c 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--light.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--dark.png b/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--dark.png index 33cdc47ddc5..a898fec7fd1 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--light.png b/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--light.png index aa8381288ad..3ab2a31a262 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--light.png and b/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--dark.png b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--dark.png index 863c5df6ef0..159195c4030 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--light.png b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--light.png index 3f7f7df0a67..a6b18e21273 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--light.png and b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--light.png differ diff --git a/frontend/__snapshots__/scenes-app-features--not-found-early-access--dark.png b/frontend/__snapshots__/scenes-app-features--not-found-early-access--dark.png index 4a464b2db4f..cd9f9b82f55 100644 Binary files a/frontend/__snapshots__/scenes-app-features--not-found-early-access--dark.png and b/frontend/__snapshots__/scenes-app-features--not-found-early-access--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-features--not-found-early-access--light.png b/frontend/__snapshots__/scenes-app-features--not-found-early-access--light.png index 43003e4f01f..3327b43d90d 100644 Binary files a/frontend/__snapshots__/scenes-app-features--not-found-early-access--light.png and b/frontend/__snapshots__/scenes-app-features--not-found-early-access--light.png differ diff --git a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--dark.png b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--dark.png index 0f1bf2a59f3..5426bf1fba2 100644 Binary files a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--dark.png and b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--light.png b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--light.png index fca76e6e6fb..ca320211b97 100644 Binary files a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--light.png and b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--light.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--dark.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--dark.png index e4699ad769e..fc7327a3555 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--dark.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--light.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--light.png index b8430d6a602..52c56473a5e 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--light.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--light.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--dark.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--dark.png index cc94e6ccb8a..486581ad689 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--dark.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--light.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--light.png index 8421c85da4f..e602a6dee2e 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--light.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--light.png differ diff --git a/frontend/__snapshots__/scenes-app-surveys--survey-not-found--dark.png b/frontend/__snapshots__/scenes-app-surveys--survey-not-found--dark.png index ac812df42d0..0d7aa6975e8 100644 Binary files a/frontend/__snapshots__/scenes-app-surveys--survey-not-found--dark.png and b/frontend/__snapshots__/scenes-app-surveys--survey-not-found--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-surveys--survey-not-found--light.png b/frontend/__snapshots__/scenes-app-surveys--survey-not-found--light.png index 22b5594b789..149f444c28a 100644 Binary files a/frontend/__snapshots__/scenes-app-surveys--survey-not-found--light.png and b/frontend/__snapshots__/scenes-app-surveys--survey-not-found--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud--dark.png b/frontend/__snapshots__/scenes-other-login--cloud--dark.png index 83955b278a7..c4e484eee4a 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud--dark.png and b/frontend/__snapshots__/scenes-other-login--cloud--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud--light.png b/frontend/__snapshots__/scenes-other-login--cloud--light.png index 910ccf73d8e..3537fc9996c 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud--light.png and b/frontend/__snapshots__/scenes-other-login--cloud--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud-eu--dark.png b/frontend/__snapshots__/scenes-other-login--cloud-eu--dark.png index e4f152b590d..4110413b749 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud-eu--dark.png and b/frontend/__snapshots__/scenes-other-login--cloud-eu--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud-eu--light.png b/frontend/__snapshots__/scenes-other-login--cloud-eu--light.png index a3c1a42ac91..1f561ff026a 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud-eu--light.png and b/frontend/__snapshots__/scenes-other-login--cloud-eu--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--dark.png b/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--dark.png index 5178a2b0ac1..ab7c4163b98 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--dark.png and b/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--light.png b/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--light.png index b845e333209..d4d4e3851de 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--light.png and b/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--second-factor--dark.png b/frontend/__snapshots__/scenes-other-login--second-factor--dark.png index 11516e761f2..3be47d83ee9 100644 Binary files a/frontend/__snapshots__/scenes-other-login--second-factor--dark.png and b/frontend/__snapshots__/scenes-other-login--second-factor--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--second-factor--light.png b/frontend/__snapshots__/scenes-other-login--second-factor--light.png index 9f9f2c349d9..661e5be1063 100644 Binary files a/frontend/__snapshots__/scenes-other-login--second-factor--light.png and b/frontend/__snapshots__/scenes-other-login--second-factor--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--self-hosted--dark.png b/frontend/__snapshots__/scenes-other-login--self-hosted--dark.png index 5a4479997a4..d13928689c2 100644 Binary files a/frontend/__snapshots__/scenes-other-login--self-hosted--dark.png and b/frontend/__snapshots__/scenes-other-login--self-hosted--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--self-hosted--light.png b/frontend/__snapshots__/scenes-other-login--self-hosted--light.png index 04a38d84262..58a8099d28f 100644 Binary files a/frontend/__snapshots__/scenes-other-login--self-hosted--light.png and b/frontend/__snapshots__/scenes-other-login--self-hosted--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--dark.png b/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--dark.png index 2cbc14c70de..2ad0276be42 100644 Binary files a/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--dark.png and b/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--light.png b/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--light.png index ad71d0f7722..1329715e2b4 100644 Binary files a/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--light.png and b/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--sso-error--dark.png b/frontend/__snapshots__/scenes-other-login--sso-error--dark.png index 2de7d23fc3d..6cc5794f005 100644 Binary files a/frontend/__snapshots__/scenes-other-login--sso-error--dark.png and b/frontend/__snapshots__/scenes-other-login--sso-error--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--sso-error--light.png b/frontend/__snapshots__/scenes-other-login--sso-error--light.png index 274875b2255..ce0bd3a7269 100644 Binary files a/frontend/__snapshots__/scenes-other-login--sso-error--light.png and b/frontend/__snapshots__/scenes-other-login--sso-error--light.png differ diff --git a/frontend/src/layout/navigation-3000/sidepanel/SidePanel.scss b/frontend/src/layout/navigation-3000/sidepanel/SidePanel.scss index 59d909f5737..cd88a2f4fcd 100644 --- a/frontend/src/layout/navigation-3000/sidepanel/SidePanel.scss +++ b/frontend/src/layout/navigation-3000/sidepanel/SidePanel.scss @@ -45,6 +45,10 @@ overflow: hidden; user-select: none; border-left-width: 1px; + + .LemonButton__icon { + transform: rotate(-90deg); + } } .SidePanel3000__tabs { diff --git a/frontend/src/layout/navigation-3000/sidepanel/SidePanel.tsx b/frontend/src/layout/navigation-3000/sidepanel/SidePanel.tsx index 124d2636154..0ae6b786ccc 100644 --- a/frontend/src/layout/navigation-3000/sidepanel/SidePanel.tsx +++ b/frontend/src/layout/navigation-3000/sidepanel/SidePanel.tsx @@ -150,7 +150,7 @@ export function SidePanel(): JSX.Element | null { return ( } + icon={} onClick={() => activeTab === tab ? closeSidePanel() : openSidePanel(tab as SidePanelTab) } diff --git a/frontend/src/layout/navigation/TopBar/SitePopover.tsx b/frontend/src/layout/navigation/TopBar/SitePopover.tsx index 557cac5a3c1..97e98d360a9 100644 --- a/frontend/src/layout/navigation/TopBar/SitePopover.tsx +++ b/frontend/src/layout/navigation/TopBar/SitePopover.tsx @@ -273,7 +273,7 @@ export function SitePopoverOverlay(): JSX.Element { )} {(!(preflight?.cloud || preflight?.demo) || user?.is_staff) && ( - + diff --git a/frontend/src/lib/components/AddToDashboard/AddToDashboardModal.tsx b/frontend/src/lib/components/AddToDashboard/AddToDashboardModal.tsx index 47dfaa90436..be366dc1117 100644 --- a/frontend/src/lib/components/AddToDashboard/AddToDashboardModal.tsx +++ b/frontend/src/lib/components/AddToDashboard/AddToDashboardModal.tsx @@ -150,7 +150,7 @@ export function AddToDashboardModal({ } > -
+
{
basic text
@@ -46,7 +46,7 @@ export const Template: Story = () => {
markdown text
@@ -54,7 +54,7 @@ export const Template: Story = () => {
Long text
{
with resize handles
(fun backdropFilter: 'blur(var(--modal-backdrop-blur))', }} > -
+
)} -
+
{CustomHog ? ( diff --git a/frontend/src/lib/components/PropertyFilters/components/OperatorValueSelect.tsx b/frontend/src/lib/components/PropertyFilters/components/OperatorValueSelect.tsx index 5afaea8c4fa..d1d19236818 100644 --- a/frontend/src/lib/components/PropertyFilters/components/OperatorValueSelect.tsx +++ b/frontend/src/lib/components/PropertyFilters/components/OperatorValueSelect.tsx @@ -128,7 +128,7 @@ export function OperatorValueSelect({ />
{!isOperatorFlag(currentOperator || PropertyOperator.Exact) && type && propkey && ( -
+
void; open: boolean }): JSX.Element { return ( setOpen(false)}> -
+

Labels are awesome.

They truly are.

diff --git a/frontend/src/lib/lemon-ui/LemonSegmentedButton/LemonSegmentedButton.scss b/frontend/src/lib/lemon-ui/LemonSegmentedButton/LemonSegmentedButton.scss index 2b2fa0d912d..f6b35541e4c 100644 --- a/frontend/src/lib/lemon-ui/LemonSegmentedButton/LemonSegmentedButton.scss +++ b/frontend/src/lib/lemon-ui/LemonSegmentedButton/LemonSegmentedButton.scss @@ -153,7 +153,7 @@ body:not(.posthog-3000) { } &:not(:last-child) { - .LemonButton { + .LemonButton__chrome { border-right: none; } } diff --git a/frontend/src/lib/lemon-ui/LemonSnack/LemonSnack.tsx b/frontend/src/lib/lemon-ui/LemonSnack/LemonSnack.tsx index 8f41b6102d2..5c05cb91e23 100644 --- a/frontend/src/lib/lemon-ui/LemonSnack/LemonSnack.tsx +++ b/frontend/src/lib/lemon-ui/LemonSnack/LemonSnack.tsx @@ -32,7 +32,7 @@ export function LemonSnack({ !isRegular && 'LemonSnack--pill', `inline-flex text-primary-alt max-w-full overflow-hidden break-all items-center py-1 bg-${bgColor}`, !wrap && 'whitespace-nowrap', - isRegular ? 'px-1.5 rounded' : 'px-4 rounded-4xl h-8', + isRegular ? 'px-1.5 rounded' : 'px-4 rounded-full h-8', isClickable && 'cursor-pointer', className )} diff --git a/frontend/src/queries/nodes/WebOverview/WebOverview.tsx b/frontend/src/queries/nodes/WebOverview/WebOverview.tsx index 5612f1060ed..5af5142ca41 100644 --- a/frontend/src/queries/nodes/WebOverview/WebOverview.tsx +++ b/frontend/src/queries/nodes/WebOverview/WebOverview.tsx @@ -71,7 +71,7 @@ export const WebOverviewItemCell = ({ item }: { item: WebOverviewItem }): JSX.El return ( -
+
{label}
{formatItem(item.value, item.kind)}
diff --git a/frontend/src/scenes/authentication/Login.tsx b/frontend/src/scenes/authentication/Login.tsx index 0221e60b454..892cc9960be 100644 --- a/frontend/src/scenes/authentication/Login.tsx +++ b/frontend/src/scenes/authentication/Login.tsx @@ -86,7 +86,7 @@ export function Login(): JSX.Element { } footer={} > -
+

Log in

{generalError && ( diff --git a/frontend/src/scenes/authentication/RegionSelect.tsx b/frontend/src/scenes/authentication/RegionSelect.tsx index 161ced67a36..3b8e3eda542 100644 --- a/frontend/src/scenes/authentication/RegionSelect.tsx +++ b/frontend/src/scenes/authentication/RegionSelect.tsx @@ -32,7 +32,7 @@ const sections = [ function WhyCloudModal({ setOpen, open }: { setOpen: (open: boolean) => void; open: boolean }): JSX.Element { return ( setOpen(false)}> -
+

A particular region can have advantages, but you can migrate regions at any time for free.

diff --git a/frontend/src/scenes/billing/Billing.tsx b/frontend/src/scenes/billing/Billing.tsx index 6aa63320c57..e435666b9b9 100644 --- a/frontend/src/scenes/billing/Billing.tsx +++ b/frontend/src/scenes/billing/Billing.tsx @@ -325,7 +325,7 @@ export function Billing(): JSX.Element {
-
+
diff --git a/frontend/src/scenes/billing/BillingProduct.tsx b/frontend/src/scenes/billing/BillingProduct.tsx index 0961fe223e8..6906124bbfa 100644 --- a/frontend/src/scenes/billing/BillingProduct.tsx +++ b/frontend/src/scenes/billing/BillingProduct.tsx @@ -291,7 +291,7 @@ export const BillingProduct = ({ product }: { product: BillingProductV2Type }): return (
setInnerGroupType(value, groupIndex)} value={group.type} /> -
+
} onClick={() => duplicateFilter(groupIndex)} diff --git a/frontend/src/scenes/dashboard/DashboardTemplateVariables.tsx b/frontend/src/scenes/dashboard/DashboardTemplateVariables.tsx index a2fe844aab3..8ae5d08d7a9 100644 --- a/frontend/src/scenes/dashboard/DashboardTemplateVariables.tsx +++ b/frontend/src/scenes/dashboard/DashboardTemplateVariables.tsx @@ -17,7 +17,7 @@ export function DashboardTemplateVariables(): JSX.Element { const { setVariable } = useActions(theDashboardTemplateVariablesLogic) return ( -
+
{variables.map((variable, index) => (
diff --git a/frontend/src/scenes/early-access-features/EarlyAccessFeature.tsx b/frontend/src/scenes/early-access-features/EarlyAccessFeature.tsx index 87f193b38db..b93654c9a97 100644 --- a/frontend/src/scenes/early-access-features/EarlyAccessFeature.tsx +++ b/frontend/src/scenes/early-access-features/EarlyAccessFeature.tsx @@ -184,7 +184,7 @@ export function EarlyAccessFeature({ id }: { id?: string } = {}): JSX.Element { isEditingFeature || isNewEarlyAccessFeature ? 'max-w-160' : null )} > -
+
{isNewEarlyAccessFeature && ( @@ -285,7 +285,7 @@ export function EarlyAccessFeature({ id }: { id?: string } = {}): JSX.Element { )}
{!isEditingFeature && !isNewEarlyAccessFeature && 'id' in earlyAccessFeature && ( -
+
)} diff --git a/frontend/src/scenes/experiments/ExperimentImplementationDetails.tsx b/frontend/src/scenes/experiments/ExperimentImplementationDetails.tsx index e4f4562192c..13bebbf4a3d 100644 --- a/frontend/src/scenes/experiments/ExperimentImplementationDetails.tsx +++ b/frontend/src/scenes/experiments/ExperimentImplementationDetails.tsx @@ -77,7 +77,7 @@ export function CodeLanguageSelect({ return ( ({ @@ -117,7 +117,7 @@ export function ExperimentImplementationDetails({ experiment }: ExperimentImplem Variant group -
-
+
+
{featureFlag.filters.super_groups && } @@ -144,7 +144,7 @@ export function FeatureFlag({ id }: { id?: string } = {}): JSX.Element { )}
-
+
diff --git a/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx index 29469c77f81..c38aac8991f 100644 --- a/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx +++ b/frontend/src/scenes/feature-flags/FeatureFlagProjects.tsx @@ -171,7 +171,7 @@ function FeatureFlagCopySection(): JSX.Element { ?.map((team) => ({ value: team.id, label: team.name })) .filter((option) => option.value !== currentTeam?.id) || [] } - className="min-w-40" + className="min-w-[10rem]" />
diff --git a/frontend/src/scenes/notebooks/NotebooksTable/ContainsTypeFilter.tsx b/frontend/src/scenes/notebooks/NotebooksTable/ContainsTypeFilter.tsx index 94fcfaa5572..48c7ad1459a 100644 --- a/frontend/src/scenes/notebooks/NotebooksTable/ContainsTypeFilter.tsx +++ b/frontend/src/scenes/notebooks/NotebooksTable/ContainsTypeFilter.tsx @@ -40,7 +40,7 @@ export function ContainsTypeFilters({ Containing: entry[1] !== '') diff --git a/frontend/src/scenes/onboarding/OnboardingStep.tsx b/frontend/src/scenes/onboarding/OnboardingStep.tsx index 2744a0e650a..e0641df4669 100644 --- a/frontend/src/scenes/onboarding/OnboardingStep.tsx +++ b/frontend/src/scenes/onboarding/OnboardingStep.tsx @@ -66,7 +66,7 @@ export const OnboardingStep = ({
} > -
+
{hedgehog &&
{hedgehogToRender}
}

{title}

diff --git a/frontend/src/scenes/onboarding/sdks/SDKs.tsx b/frontend/src/scenes/onboarding/sdks/SDKs.tsx index 4fa63914a23..92d1c5f0729 100644 --- a/frontend/src/scenes/onboarding/sdks/SDKs.tsx +++ b/frontend/src/scenes/onboarding/sdks/SDKs.tsx @@ -53,7 +53,7 @@ export function SDKs({
@@ -95,7 +95,9 @@ export function SDKs({
{selectedSDK && productKey && !!sdkInstructionMap[selectedSDK.key] && ( -
+
{!showSideBySide && ( } diff --git a/frontend/src/scenes/products/Products.tsx b/frontend/src/scenes/products/Products.tsx index 1ad05a3f990..df12a998b77 100644 --- a/frontend/src/scenes/products/Products.tsx +++ b/frontend/src/scenes/products/Products.tsx @@ -149,7 +149,7 @@ export function Products(): JSX.Element {
{products.length > 0 ? ( <> -
+
{products .filter( (product) => diff --git a/frontend/src/scenes/session-recordings/player/PlayerMeta.tsx b/frontend/src/scenes/session-recordings/player/PlayerMeta.tsx index e4446100ae2..900818ebb62 100644 --- a/frontend/src/scenes/session-recordings/player/PlayerMeta.tsx +++ b/frontend/src/scenes/session-recordings/player/PlayerMeta.tsx @@ -241,7 +241,7 @@ export function PlayerMeta(): JSX.Element { )} )} -
+
{resolutionView}
diff --git a/frontend/src/scenes/session-recordings/player/inspector/PlayerInspectorControls.tsx b/frontend/src/scenes/session-recordings/player/inspector/PlayerInspectorControls.tsx index fda06edba2a..f0c1a2e09b4 100644 --- a/frontend/src/scenes/session-recordings/player/inspector/PlayerInspectorControls.tsx +++ b/frontend/src/scenes/session-recordings/player/inspector/PlayerInspectorControls.tsx @@ -82,7 +82,7 @@ export function PlayerInspectorControls(): JSX.Element {
setSearchQuery(e)} placeholder="Search..." diff --git a/frontend/src/scenes/session-recordings/player/inspector/components/ItemConsoleLog.tsx b/frontend/src/scenes/session-recordings/player/inspector/components/ItemConsoleLog.tsx index e738b1312e2..16b91ddc6bb 100644 --- a/frontend/src/scenes/session-recordings/player/inspector/components/ItemConsoleLog.tsx +++ b/frontend/src/scenes/session-recordings/player/inspector/components/ItemConsoleLog.tsx @@ -17,8 +17,8 @@ export function ItemConsoleLog({ item, expanded, setExpanded }: ItemConsoleLogPr
{item.data.content}
{(item.data.count || 1) > 1 ? ( {item.data.count} diff --git a/frontend/src/scenes/session-recordings/saved-playlists/SavedSessionRecordingPlaylistsEmptyState.tsx b/frontend/src/scenes/session-recordings/saved-playlists/SavedSessionRecordingPlaylistsEmptyState.tsx index 8397d40f303..4086a62f21c 100644 --- a/frontend/src/scenes/session-recordings/saved-playlists/SavedSessionRecordingPlaylistsEmptyState.tsx +++ b/frontend/src/scenes/session-recordings/saved-playlists/SavedSessionRecordingPlaylistsEmptyState.tsx @@ -17,7 +17,7 @@ export function SavedSessionRecordingPlaylistsEmptyState(): JSX.Element { Error while trying to load playlist. ) : (
-
+

There are no playlists that match these filters

Once you create a playlist, it will show up here.

-

+

Project API Key

@@ -132,7 +132,7 @@ export function ProjectVariables(): JSX.Element {

-

+

Project ID

diff --git a/frontend/src/scenes/surveys/surveyViewViz.tsx b/frontend/src/scenes/surveys/surveyViewViz.tsx index 6ff1ecc331b..68774bc5329 100644 --- a/frontend/src/scenes/surveys/surveyViewViz.tsx +++ b/frontend/src/scenes/surveys/surveyViewViz.tsx @@ -325,16 +325,17 @@ export function SingleChoiceQuestionPieChart({

{ + className={`grid h-full pl-4 ${(() => { const dataLength = surveySingleChoiceResults[questionIndex].data.length + // We need to return the whole class for Tailwind to see them when scanning code if (dataLength < 5) { - return 20 + return 'py-20' } else if (dataLength < 7) { - return 15 + return 'py-15' } else if (dataLength < 10) { - return 10 + return 'py-10' } else { - return 5 + return 'py-5' } })()} grid-cols-${Math.ceil(surveySingleChoiceResults[questionIndex].data.length / 10)}`} > diff --git a/frontend/src/scenes/web-analytics/WebAnalyticsNotice.tsx b/frontend/src/scenes/web-analytics/WebAnalyticsNotice.tsx index 3a7443afbc6..40a56e16874 100644 --- a/frontend/src/scenes/web-analytics/WebAnalyticsNotice.tsx +++ b/frontend/src/scenes/web-analytics/WebAnalyticsNotice.tsx @@ -14,7 +14,7 @@ export const WebAnalyticsNotice = (): JSX.Element => { return (
- + PostHog Web Analytics is in opt-in Beta. Thanks for taking part! We'd love to hear what you think. {showSupportOptions ? ( diff --git a/frontend/src/scenes/web-analytics/WebDashboard.tsx b/frontend/src/scenes/web-analytics/WebDashboard.tsx index 356282a5c0e..bfd7896da44 100644 --- a/frontend/src/scenes/web-analytics/WebDashboard.tsx +++ b/frontend/src/scenes/web-analytics/WebDashboard.tsx @@ -95,8 +95,9 @@ const Tiles = (): JSX.Element => { key={i} className={clsx( 'col-span-1 row-span-1 flex flex-col', - `md:col-span-${layout.colSpan ?? 6} md:row-span-${layout.rowSpan ?? 1}`, - `xxl:order-${layout.orderLarge ?? 12}`, + layout.colSpanClassName ?? 'md:col-span-6', + layout.rowSpanClassName ?? 'md:row-span-1', + layout.orderWhenLargeClassName ?? 'xxl:order-12', layout.className )} > @@ -121,8 +122,9 @@ const TabsTileItem = ({ tile }: { tile: TabsTile }): JSX.Element => { ([ const tiles: (WebDashboardTile | null)[] = [ { layout: { - colSpan: 'full', - orderLarge: 0, + colSpanClassName: 'md:col-span-full', + orderWhenLargeClassName: 'xxl:order-0', }, query: { kind: NodeKind.WebOverviewQuery, @@ -336,8 +339,8 @@ export const webAnalyticsLogic = kea([ }, { layout: { - colSpan: 2, - orderLarge: 1, + colSpanClassName: `md:col-span-2`, + orderWhenLargeClassName: 'xxl:order-1', }, activeTabId: graphsTab, setTabId: actions.setGraphsTab, @@ -437,8 +440,8 @@ export const webAnalyticsLogic = kea([ }, { layout: { - colSpan: 2, - orderLarge: 4, + colSpanClassName: `md:col-span-2`, + orderWhenLargeClassName: 'xxl:order-4', }, activeTabId: pathTab, setTabId: actions.setPathTab, @@ -481,8 +484,8 @@ export const webAnalyticsLogic = kea([ }, { layout: { - colSpan: 1, - orderLarge: 2, + colSpanClassName: `md:col-span-1`, + orderWhenLargeClassName: 'xxl:order-2', }, activeTabId: sourceTab, setTabId: actions.setSourceTab, @@ -596,8 +599,8 @@ export const webAnalyticsLogic = kea([ }, { layout: { - colSpan: 1, - orderLarge: 3, + colSpanClassName: `md:col-span-1`, + orderWhenLargeClassName: 'xxl:order-3', }, activeTabId: deviceTab, setTabId: actions.setDeviceTab, @@ -674,7 +677,7 @@ export const webAnalyticsLogic = kea([ shouldShowGeographyTile ? { layout: { - colSpan: 'full', + colSpanClassName: 'md:col-span-full', }, activeTabId: geographyTab || GeographyTab.MAP, setTabId: actions.setGeographyTab, @@ -760,7 +763,7 @@ export const webAnalyticsLogic = kea([ { title: 'Retention', layout: { - colSpan: 2, + colSpanClassName: 'md:col-span-2', }, query: { kind: NodeKind.InsightVizNode, diff --git a/frontend/src/styles/colors.scss b/frontend/src/styles/colors.scss new file mode 100644 index 00000000000..2286b888560 --- /dev/null +++ b/frontend/src/styles/colors.scss @@ -0,0 +1,38 @@ +@use 'sass:string'; +@import 'vars'; +@import 'mixins'; + +@each $name, $hex in $colors { + .text-#{$name} { + color: var(--#{$name}); + } + .bg-#{$name} { + background-color: var(--#{$name}); + } + .border-#{$name} { + border-color: var(--#{$name}); + } + .border-x-#{$name} { + border-right-color: var(--#{$name}); + border-left-color: var(--#{$name}); + } + .border-y-#{$name} { + border-top-color: var(--#{$name}); + border-bottom-color: var(--#{$name}); + } + .decoration-#{$name} { + text-decoration-color: var(--#{$name}); + } +} + +@each $name, $hex in $colors { + .hover\:text-#{$name}:hover { + color: $hex; + } + .hover\:bg-#{$name}:hover { + background-color: $hex; + } + .hover\:border-#{$name}:hover { + border-color: $hex; + } +} diff --git a/frontend/src/styles/global.scss b/frontend/src/styles/global.scss index 0b0424caee4..7b9724e08d4 100644 --- a/frontend/src/styles/global.scss +++ b/frontend/src/styles/global.scss @@ -15,7 +15,9 @@ Only 400 (`normal`), 500 (`var(--font-medium)`), 600 (`var(--font-semibold)`), o @import 'functions'; @import 'mixins'; @import 'utility-legacy'; -@import 'utilities'; +@import 'colors'; +@tailwind components; +@tailwind utilities; :root { @include root-variables; @@ -74,12 +76,12 @@ ul { .page-caption { max-width: 48rem; margin-bottom: 1rem; + font-size: 0.875rem; + line-height: 1.25rem; &.tabbed { margin-bottom: 0.5rem; } - - @extend .text-sm; } .page-buttons { @@ -188,7 +190,10 @@ input::-ms-clear { .Toastify__toast-body { padding: 0; + font-size: 0.875rem; font-weight: 500; + line-height: 1.25rem; + color: var(--default); b, strong { @@ -198,9 +203,6 @@ input::-ms-clear { button { margin: 0 0.75rem; } - - @extend .text-sm; - @extend .text-default; } .Toastify__toast-icon { @@ -234,15 +236,15 @@ input::-ms-clear { color: var(--default); label { + font-size: 0.875rem; font-weight: bold; - - @extend .text-sm; + line-height: 1.25rem; } .caption { + font-size: 0.875rem; + line-height: 1.25rem; color: var(--muted); - - @extend .text-sm; } .ant-radio-button-wrapper { diff --git a/frontend/src/styles/utilities.scss b/frontend/src/styles/utilities.scss deleted file mode 100644 index dd485096983..00000000000 --- a/frontend/src/styles/utilities.scss +++ /dev/null @@ -1,1414 +0,0 @@ -@use 'sass:string'; -@import 'vars'; -@import 'mixins'; - -/* - PLEASE READ BEFORE MODIFYING THIS FILE - - We don't use Tailwind in PostHog but we do use a lot of helpful Utility classes to make straightforward CSS easy. - To keep this maintainable we are attempting to emulate as much of Tailwind's API as possible. - As such, if something is missing here, please go to Tailwind's docs and copy their implementation rather than creating your own - custom naming conventions 🙌 -*/ - -// TODO: Support the screen breakpoint versions like md:foo -// The problem is CSS file size, which could be solved by using Tailwind directly. -// See the Grid section, which has breakpoint support, to add it for something in this file. -@each $space in $tiny_spaces { - .space-y-#{escape-number($space)} { - & > * + * { - margin-top: #{$space * 0.25}rem; - } - } - - .space-x-#{escape-number($space)} { - & > * + * { - margin-left: #{$space * 0.25}rem; - } - } - - .gap-#{escape-number($space)} { - gap: #{$space * 0.25}rem; - } - - .gap-x-#{escape-number($space)} { - column-gap: #{$space * 0.25}rem; - } - - .gap-y-#{escape-number($space)} { - row-gap: #{$space * 0.25}rem; - } - - .m-#{escape-number($space)} { - margin: #{$space * 0.25}rem; - } - - .-m-#{escape-number($space)} { - margin: #{-$space * 0.25}rem; - } - - .mx-#{escape-number($space)} { - margin-right: #{$space * 0.25}rem; - margin-left: #{$space * 0.25}rem; - } - - .-mx-#{escape-number($space)} { - margin-right: #{-$space * 0.25}rem; - margin-left: #{-$space * 0.25}rem; - } - - .my-#{escape-number($space)} { - margin-top: #{$space * 0.25}rem; - margin-bottom: #{$space * 0.25}rem; - } - - .-my-#{escape-number($space)} { - margin-top: #{-$space * 0.25}rem; - margin-bottom: #{-$space * 0.25}rem; - } - - .px-#{escape-number($space)} { - padding-right: #{$space * 0.25}rem; - padding-left: #{$space * 0.25}rem; - } - - .py-#{escape-number($space)} { - padding-top: #{$space * 0.25}rem; - padding-bottom: #{$space * 0.25}rem; - } - - .p-#{escape-number($space)} { - padding: #{$space * 0.25}rem; - } - - .inset-#{escape-number($space)} { - inset: #{$space * 0.25}rem #{$space * 0.25}rem #{$space * 0.25}rem #{$space * 0.25}rem; - } - - .inset-x-#{escape-number($space)} { - right: #{$space * 0.25}rem; - left: #{$space * 0.25}rem; - } - - .inset-y-#{escape-number($space)} { - top: #{$space * 0.25}rem; - bottom: #{$space * 0.25}rem; - } - .top-#{escape-number($space)} { - top: #{$space * 0.25}rem; - } - - .bottom-#{escape-number($space)} { - bottom: #{$space * 0.25}rem; - } - - .right-#{escape-number($space)} { - right: #{$space * 0.25}rem; - } - - .left-#{escape-number($space)} { - left: #{$space * 0.25}rem; - } - - @each $side in $sides { - .m#{string.slice($side, 0, 1)}-#{escape-number($space)} { - margin-#{$side}: #{$space * 0.25}rem; - } - - .-m#{string.slice($side, 0, 1)}-#{escape-number($space)} { - margin-#{$side}: #{-$space * 0.25}rem; - } - - .p#{string.slice($side, 0, 1)}-#{escape-number($space)} { - padding-#{$side}: #{$space * 0.25}rem; - } - } -} - -.w-px { - width: 1px; -} - -.h-px { - height: 1px; -} - -.min-w-px { - min-width: 1px; -} - -.max-w-px { - max-width: 1px; -} - -.min-h-px { - min-height: 1px; -} - -.max-h-px { - max-height: 1px; -} - -@each $name, $size in $screens { - .w-#{$name} { - width: $size; - } - .h-#{$name} { - height: $size; - } - .min-w-#{$name} { - min-width: $size; - } - .max-w-#{$name} { - max-width: $size; - } - .min-h-#{$name} { - min-height: $size; - } - .max-h-#{$name} { - max-height: $size; - } -} - -// TODO: Wrap all of this in a catch for the screen breakpoints like md:foo -@each $space in $all_spaces { - .w-#{escape-number($space)} { - width: #{$space * 0.25}rem; - } - - .h-#{escape-number($space)} { - height: #{$space * 0.25}rem; - } - - .max-w-#{escape-number($space)} { - max-width: #{$space * 0.25}rem; - } - .max-h-#{escape-number($space)} { - max-height: #{$space * 0.25}rem; - } - - .min-w-#{escape-number($space)} { - min-width: #{$space * 0.25}rem; - } - .min-h-#{escape-number($space)} { - min-height: #{$space * 0.25}rem; - } -} - -.space-y-px { - & > * + * { - margin-top: 1px; - } -} - -.space-x-px { - & > * + * { - margin-left: 1px; - } -} - -.border { - border-width: 1px; -} - -// Margins/padding -@each $kind in ('margin', 'padding') { - $char: string.slice($kind, 0, 1); - - .#{$char}-auto { - #{$kind}: auto; - } - .#{$char}x-auto { - #{$kind}-left: auto; - #{$kind}-right: auto; - } - - .#{$char}y-auto { - #{$kind}-top: auto; - #{$kind}-bottom: auto; - } - .#{$char}-px { - #{$kind}: 1px; - } - - .#{$char}x-px { - #{$kind}-left: 1px; - #{$kind}-right: 1px; - } - - .#{$char}y-px { - #{$kind}-top: 1px; - #{$kind}-bottom: 1px; - } - - @each $side in $sides { - .#{$char}#{string.slice($side, 0, 1)}-auto { - #{$kind}-#{$side}: auto; - } - - .#{$char}#{string.slice($side, 0, 1)}-px { - #{$kind}-#{$side}: 1px; - } - } -} - -.-mt-px { - margin-top: -1px; -} - -// Border -.border-0 { - border-width: 0; -} - -.border-2 { - border-width: 2px; -} - -.border-4 { - border-width: 4px; -} - -.border-6 { - border-width: 6px; -} - -.border-8 { - border-width: 8px; -} - -.border-t-0 { - border-top-width: 0; -} - -.border-t-2 { - border-top-width: 2px; -} - -.border-t-4 { - border-top-width: 4px; -} - -.border-t-6 { - border-top-width: 6px; -} - -.border-t-8 { - border-top-width: 8px; -} - -.border-t { - border-top-width: 1px; -} - -.border-r-0 { - border-right-width: 0; -} - -.border-r-2 { - border-right-width: 2px; -} - -.border-r-4 { - border-right-width: 4px; -} - -.border-r-6 { - border-right-width: 6px; -} - -.border-r-8 { - border-right-width: 8px; -} - -.border-r { - border-right-width: 1px; -} - -.border-b-0 { - border-bottom-width: 0; -} - -.border-b-2 { - border-bottom-width: 2px; -} - -.border-b-4 { - border-bottom-width: 4px; -} - -.border-b-6 { - border-bottom-width: 6px; -} - -.border-b-8 { - border-bottom-width: 8px; -} - -.border-b { - border-bottom-width: 1px; -} - -.border-l-0 { - border-left-width: 0; -} - -.border-l-2 { - border-left-width: 2px; -} - -.border-l-4 { - border-left-width: 4px; -} - -.border-l-6 { - border-left-width: 6px; -} - -.border-l-8 { - border-left-width: 8px; -} - -.border-l { - border-left-width: 1px; -} - -.border-solid { - border-style: solid; -} - -.border-dashed { - border-style: dashed; -} - -.border-dotted { - border-style: dotted; -} - -.border-double { - border-style: double; -} - -.border-hidden { - border-style: hidden; -} - -.border-none { - border-style: none; -} - -$decorations: underline, overline, line-through, no-underline; - -@each $decoration in $decorations { - .#{$decoration} { - text-decoration-line: $decoration; - } - .hover\:#{$decoration}:hover { - text-decoration-line: $decoration; - } -} - -.decoration-inherit { - text-decoration-color: inherit; -} - -.decoration-current { - text-decoration-color: currentColor; -} - -.decoration-transparent { - text-decoration-color: transparent; -} - -@each $name, $hex in $colors { - .text-#{$name} { - color: var(--#{$name}); - } - .bg-#{$name} { - background-color: var(--#{$name}); - } - .border-#{$name} { - border-color: var(--#{$name}); - } - .border-x-#{$name} { - border-right-color: var(--#{$name}); - border-left-color: var(--#{$name}); - } - .border-y-#{$name} { - border-top-color: var(--#{$name}); - border-bottom-color: var(--#{$name}); - } - .decoration-#{$name} { - text-decoration-color: var(--#{$name}); - } -} - -.text-inherit { - color: inherit; -} - -.text-current { - color: currentColor; -} - -@each $name, $hex in $colors { - .hover\:text-#{$name}:hover { - color: $hex; - } - .hover\:bg-#{$name}:hover { - background-color: $hex; - } - .hover\:border-#{$name}:hover { - border-color: $hex; - } -} - -// Widths / heights - -@each $kind in ('width', 'height') { - $char: string.slice($kind, 1, 1); - .#{$char}-auto { - #{$kind}: auto; - } - .#{$char}-full { - #{$kind}: 100%; - } - .#{$char}-screen { - #{$kind}: string.unquote('100v' + $char); - } - .#{$char}-min { - #{$kind}: min-content; - } - .#{$char}-max { - #{$kind}: max-content; - } - .#{$char}-fit { - #{$kind}: fit-content; - } - - .min-#{$char}-full { - min-#{$kind}: 100%; - } - .min-#{$char}-screen { - min-#{$kind}: string.unquote('100v' + $char); - } - - .max-#{$char}-full { - max-#{$kind}: 100%; - } - .max-#{$char}-screen { - max-#{$kind}: string.unquote('100v' + $char); - } - - @each $variant in ('', 'max-', 'min-') { - .#{$variant}#{$char}-1\/2 { - #{$variant}#{$kind}: 50%; - } - - .#{$variant}#{$char}-1\/3 { - #{$variant}#{$kind}: 33.3333%; - } - - .#{$variant}#{$char}-2\/3 { - #{$variant}#{$kind}: 66.6667%; - } - - .#{$variant}#{$char}-1\/4 { - #{$variant}#{$kind}: 25%; - } - - .#{$variant}#{$char}-2\/4 { - #{$variant}#{$kind}: 50%; - } - - .#{$variant}#{$char}-3\/4 { - #{$variant}#{$kind}: 75%; - } - - .#{$variant}#{$char}-1\/5 { - #{$variant}#{$kind}: 20%; - } - - .#{$variant}#{$char}-2\/5 { - #{$variant}#{$kind}: 40%; - } - - .#{$variant}#{$char}-3\/5 { - #{$variant}#{$kind}: 60%; - } - - .#{$variant}#{$char}-4\/5 { - #{$variant}#{$kind}: 80%; - } - - .#{$variant}#{$char}-1\/6 { - #{$variant}#{$kind}: 16.66667%; - } - - .#{$variant}#{$char}-2\/6 { - #{$variant}#{$kind}: 33.33333%; - } - - .#{$variant}#{$char}-3\/6 { - #{$variant}#{$kind}: 50%; - } - - .#{$variant}#{$char}-4\/6 { - #{$variant}#{$kind}: 66.66667%; - } - - .#{$variant}#{$char}-5\/6 { - #{$variant}#{$kind}: 83.33333%; - } - } -} - -// One-off utilities - -.text-right { - text-align: right; -} - -.text-left { - text-align: left; -} - -.text-center { - text-align: center; -} - -.uppercase { - text-transform: uppercase; -} - -.float-right { - float: right; -} - -.float-left { - float: left; -} - -.align-middle { - vertical-align: middle; -} - -// Display - -.block { - display: block; -} - -.inline-block { - display: inline-block; -} - -.inline { - display: inline; -} - -.grid { - display: grid; -} - -.inline-grid { - display: inline-grid; -} - -.hidden { - display: none; -} - -// Flex -.flex { - display: flex; -} - -.inline-flex { - display: inline-flex; -} - -@each $size in $flex_sizes { - .flex-#{escape-number($size)} { - flex: $size; - } -} - -.flex-auto { - flex: auto; -} - -.flex-col { - flex-direction: column; -} - -.flex-row { - flex-direction: row; -} - -.flex-wrap { - flex-wrap: wrap; -} - -.flex-wrap-reverse { - flex-wrap: wrap-reverse; -} - -.flex-nowrap { - flex-wrap: nowrap; -} - -.shrink { - flex-shrink: 1; -} - -.shrink-0 { - flex-shrink: 0; -} - -.grow { - flex-grow: 1; -} - -.grow-0 { - flex-grow: 0; -} - -.basis-0 { - flex-basis: 0; -} - -.justify-start { - justify-content: flex-start; -} - -.justify-end { - justify-content: flex-end; -} - -.justify-center { - justify-content: center; -} - -.justify-between { - justify-content: space-between; -} - -.justify-around { - justify-content: space-around; -} - -.justify-evenly { - justify-content: space-evenly; -} - -.items-start { - align-items: flex-start; -} - -.items-end { - align-items: flex-end; -} - -.items-center { - align-items: center; -} - -.items-baseline { - align-items: baseline; -} - -.items-stretch { - align-items: stretch; -} - -.self-auto { - align-self: auto; -} - -.self-start { - align-self: flex-start; -} - -.self-end { - align-self: flex-end; -} - -.self-center { - align-self: center; -} - -.self-stretch { - align-self: stretch; -} - -.self-baseline { - align-self: baseline; -} - -// Grid Template Columns -@each $name, - $size - in map-merge( - ( - 'base': null, - ), - $screens - ) -{ - $prefix: if($name == 'base', '', $name + '\\:'); - - @include screen($size) { - .#{$prefix}grid-cols-none { - grid-template-columns: none; - } - - // Grid Column Start/End - .#{$prefix}col-auto { - grid-column: auto; - } - .#{$prefix}col-span-full { - grid-column: 1 / -1; - } - .#{$prefix}col-start-auto { - grid-column-start: auto; - } - .#{$prefix}col-end-auto { - grid-column-end: auto; - } - - // Grid Row Start/End - .#{$prefix}row-auto { - grid-row: auto; - } - .#{$prefix}row-span-full { - grid-row: 1 / -1; - } - .#{$prefix}row-start-auto { - grid-row-start: auto; - } - .#{$prefix}row-end-auto { - grid-row-end: auto; - } - .#{$prefix}gap-px { - gap: 1px; - } - .#{$prefix}gap-x-px { - column-gap: 1px; - } - .#{$prefix}gap-y-px { - row-gap: 1px; - } - - @for $i from 1 through 12 { - .#{$prefix}grid-cols-#{$i} { - grid-template-columns: repeat(#{$i}, minmax(0, 1fr)); - } - } - - @for $i from 1 through 12 { - .#{$prefix}col-span-#{$i} { - grid-column: span #{$i} / span #{$i}; - } - } - - @for $i from 1 through 13 { - .#{$prefix}col-start-#{$i} { - grid-column-start: #{$i}; - } - } - - @for $i from 1 through 13 { - .#{$prefix}col-end-#{$i} { - grid-column-end: #{$i}; - } - } - - @for $i from 1 through 6 { - .#{$prefix}row-span-#{$i} { - grid-row: span #{$i} / span #{$i}; - } - } - - @for $i from 1 through 7 { - .#{$prefix}row-start-#{$i} { - grid-row-start: #{$i}; - } - } - - @for $i from 1 through 7 { - .#{$prefix}row-end-#{$i} { - grid-row-end: #{$i}; - } - } - - // Gap - @each $space in $all_spaces { - .#{$prefix}gap-#{escape-number($space)} { - gap: #{$space * 0.25}rem; - } - .#{$prefix}gap-x-#{escape-number($space)} { - column-gap: #{$space * 0.25}rem; - } - .#{$prefix}gap-y-#{escape-number($space)} { - row-gap: #{$space * 0.25}rem; - } - } - - // Order - @for $i from 1 through 12 { - .#{$prefix}order-#{$i} { - order: #{$i}; - } - } - } -} - -// Typography -.font-thin { - font-weight: 100; -} - -.font-extralight { - font-weight: 200; -} - -.font-light { - font-weight: 300; -} - -.font-normal { - font-weight: 400; -} - -.font-medium { - font-weight: 500; -} - -.font-semibold { - font-weight: 600; -} - -.font-bold { - font-weight: 700; -} - -.font-extrabold { - font-weight: 800; -} - -.font-black { - font-weight: 900; -} - -.italic { - font-style: italic; -} - -.not-italic { - font-style: normal; -} - -.break-normal { - word-break: normal; - overflow-wrap: normal; -} - -.break-words { - overflow-wrap: break-word; -} - -.break-all { - word-break: break-all; -} - -.whitespace-normal { - white-space: normal; -} - -.whitespace-nowrap { - white-space: nowrap; -} - -.whitespace-pre { - white-space: pre; -} - -.whitespace-pre-line { - white-space: pre-line; -} - -.whitespace-pre-wrap { - white-space: pre-wrap; -} - -.text-xxs { - font-size: 0.625rem; /* 10px */ - line-height: 0.75rem; /* 12px */ -} - -.text-xs { - font-size: 0.75rem; /* 12px */ - line-height: 1rem; /* 16px */ -} - -.text-sm { - font-size: 0.875rem; /* 14px */ - line-height: 1.25rem; /* 20px */ -} - -.text-base { - font-size: 1rem; /* 16px */ - line-height: 1.5rem; /* 24px */ -} - -.text-lg { - font-size: 1.125rem; /* 18px */ - line-height: 1.75rem; /* 28px */ -} - -.text-xl { - font-size: 1.25rem; /* 20px */ - line-height: 1.75rem; /* 28px */ -} - -.text-2xl { - font-size: 1.5rem; /* 24px */ - line-height: 2rem; /* 32px */ -} - -.text-3xl { - font-size: 1.875rem; /* 30px */ - line-height: 2.25rem; /* 36px */ -} - -.text-4xl { - font-size: 2.25rem; /* 36px */ - line-height: 2.5rem; /* 40px */ -} - -.text-5xl { - font-size: 3rem; /* 48px */ - line-height: 1; -} - -.text-6xl { - font-size: 3.75rem; /* 60px */ - line-height: 1; -} - -.text-7xl { - font-size: 4.5rem; /* 72px */ - line-height: 1; -} - -.text-8xl { - font-size: 6rem; /* 96px */ - line-height: 1; -} - -.text-9xl { - font-size: 8rem; /* 128px */ - line-height: 1; -} - -@each $space in $tiny_spaces { - .leading-#{escape-number($space)} { - line-height: #{$space * 0.25}rem; - } -} - -.rounded { - border-radius: 0.25rem; -} - -.rounded-l { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} - -.rounded-r { - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; -} - -.rounded-t { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} - -.rounded-b { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} - -.rounded-none { - border-radius: 0; -} - -.rounded-r-none { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.rounded-l-none { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.rounded-sm { - border-radius: calc(var(--radius) / 2); /* 2px */ -} - -.rounded-md { - border-radius: 0.375rem; -} - -.rounded-lg { - border-radius: 0.5rem; -} - -.rounded-xl { - border-radius: 0.75rem; -} - -.rounded-2xl { - border-radius: 1rem; -} - -.rounded-3xl { - border-radius: 1.5rem; -} - -.rounded-4xl { - border-radius: 2rem; -} - -.rounded-full { - border-radius: 1000rem; -} - -.overflow-auto { - overflow: auto; -} - -.overflow-hidden { - overflow: hidden; -} - -.overflow-clip { - overflow: clip; -} - -.overflow-visible { - overflow: visible; -} - -.overflow-scroll { - overflow: scroll; -} - -.overflow-x-scroll { - overflow-x: scroll; -} - -.overflow-y-scroll { - overflow-y: scroll; -} - -.overflow-x-auto { - overflow-x: auto; -} - -.overflow-y-auto { - overflow-y: auto; -} - -.overflow-x-hidden { - overflow-x: hidden; -} - -.font-sans { - font-family: var(--font-sans); -} - -.font-title { - font-family: var(--font-title); -} - -/** title font, but only when posthog-3000 is active */ -.font-title-3000 { - .posthog-3000 & { - font-family: var(--font-title); - } -} - -.font-mono { - font-family: var(--font-mono); -} - -.ligatures-none { - font-variant-ligatures: none; -} - -.opacity-0 { - opacity: 0; -} - -.opacity-5 { - opacity: 0.05; -} - -.opacity-10 { - opacity: 0.1; -} - -.opacity-20 { - opacity: 0.2; -} - -.opacity-25 { - opacity: 0.25; -} - -.opacity-30 { - opacity: 0.3; -} - -.opacity-40 { - opacity: 0.4; -} - -.opacity-50 { - opacity: 0.5; -} - -.opacity-60 { - opacity: 0.6; -} - -.opacity-70 { - opacity: 0.7; -} - -.opacity-75 { - opacity: 0.75; -} - -.opacity-80 { - opacity: 0.8; -} - -.opacity-90 { - opacity: 0.9; -} - -.opacity-95 { - opacity: 0.95; -} - -.opacity-100 { - opacity: 1; -} - -.pointer-events-none { - pointer-events: none; -} - -.pointer-events-auto { - pointer-events: auto; -} - -.truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.text-ellipsis { - text-overflow: ellipsis; -} - -.text-clip { - text-overflow: clip; -} - -@each $cursor in $cursors { - .cursor-#{$cursor} { - cursor: #{$cursor}; - } -} - -@each $list_style_type in $list_style_types { - .list-#{$list_style_type} { - list-style-type: #{$list_style_type}; - } -} - -.list-inside { - list-style-position: inside; -} - -.list-outside { - list-style-position: outside; -} - -.shadow { - box-shadow: var(--shadow-elevation); -} - -@each $fitOption in ('contain', 'cover', 'fill', 'none', 'scale-down') { - .object-#{$fitOption} { - object-fit: string.unquote($fitOption); - } - hover\:object-#{$fitOption}:hover { - object-fit: string.unquote($fitOption); - } -} - -.tracking-tighter { - letter-spacing: -0.05em; -} - -.tracking-tight { - letter-spacing: -0.025em; -} - -.tracking-normal { - letter-spacing: 0; -} - -.tracking-wide { - letter-spacing: 0.025em; -} - -.tracking-wider { - letter-spacing: 0.05em; -} - -.tracking-widest { - letter-spacing: 0.1em; -} - -.select-none { - user-select: none; -} - -.select-text { - user-select: text; -} - -.select-all { - user-select: all; -} - -.select-auto { - user-select: auto; -} - -.rotate-90 { - transform: rotate(90deg); -} - -.rotate-180 { - transform: rotate(180deg); -} - -.rotate-270 { - transform: rotate(270deg); -} - -.z-0 { - z-index: 0; -} - -.z-10 { - z-index: 10; -} - -.z-20 { - z-index: 20; -} - -.z-30 { - z-index: 30; -} - -.z-40 { - z-index: 40; -} - -.z-50 { - z-index: 50; -} - -.z-auto { - z-index: auto; -} - -.invisible { - visibility: hidden; -} - -.resize { - resize: both; -} - -.resize-x { - resize: horizontal; -} - -.resize-y { - resize: vertical; -} - -// Position - -.static { - position: static; -} - -.relative { - position: relative; -} - -.absolute { - position: absolute; -} - -.fixed { - position: fixed; -} - -.sticky { - position: sticky; -} - -.line-clamp-2 { - display: -webkit-box; - overflow: hidden; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; -} - -.transition-all { - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; - transition-property: all; -} - -.aspect-auto { - aspect-ratio: auto; -} - -.aspect-square { - aspect-ratio: 1 / 1; -} - -.aspect-video { - aspect-ratio: 16 / 9; -} - -.-scale-x-1 { - transform: scaleX(-1); -} diff --git a/frontend/src/styles/utilities.stories.tsx b/frontend/src/styles/utilities.stories.tsx deleted file mode 100644 index 324b4e0bba7..00000000000 --- a/frontend/src/styles/utilities.stories.tsx +++ /dev/null @@ -1,261 +0,0 @@ -import { LemonButton } from '@posthog/lemon-ui' -import { Meta } from '@storybook/react' - -const meta: Meta = { - title: 'Lemon UI/Utilities', - tags: ['autodocs'], -} -export default meta - -export const Overview = (): JSX.Element => { - // TODO: I should be fleshed out using this example to describe when utilities should and should not be used... - return ( -
-
-
-
Hello there!
-
- I'm an example of how you can use utility classes to build a{' '} - complex component without any custom CSS... -
-
- -
- It's really... - Amazing! -
-
-
- ) -} - -export const Flex = (): JSX.Element => { - return ( -
-
-
- Button! - I am vertically centered! -
-
- -
-
- Button! - I am bottom aligned! -
-
-
- ) -} - -export const SpaceAndGap = (): JSX.Element => { - return ( -
-

- Use space-y/x- for non-flexed items -
- For flex items use gap- to space items -

-
- Button - Button - Button - gap-2 (0.5rem or 8px) -
- -
- Button - Button - Button - gap-4 (1rem or 16px) -
- -
- Button - Button - Button - gap-8 (2rem or 32px) -
-
- ) -} - -export const IndividualSpacing = (): JSX.Element => { - return ( - <> -

- If really necessary you can space individual elements using m or p utilities. -

-
- - Button - - - Button - - - Button - -
- - ) -} - -export const Dimensions = (): JSX.Element => { - return ( - <> -

- Some standard small widths and heights are available as utilities. If you need a very specific width or - height you should be using CSS / style -

- -
- {[8, 10, 20, 'full', 'screen'].map((x) => ( -
- w-{x} -
- ))} -
- - ) -} - -export const TextSize = (): JSX.Element => { - return ( - <> - {['xxs', 'xs', 'sm', 'base', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl', '6xl', '7xl', '8xl', '9xl'].map( - (x) => ( -

- text-{x} -

- ) - )} - - ) -} - -export const TextFont = (): JSX.Element => { - return ( - <> -

font-sans (default)

-

font-mono

- - ) -} - -export const TextWeight = (): JSX.Element => { - return ( - <> -

font-thin

-

font-extralight

-

font-light

-

font-normal

-

font-medium

-

font-semibold

-

font-bold

-

font-extrabold

-

font-black

- - ) -} - -export const Widths = (): JSX.Element => { - return ( -
-
w-1/5
-
w-1/3
-
w-2/5
-
w-1/2
-
w-3/5
-
w-2/3
-
w-4/5
-
w-full
-
- ) -} -export const Heights = (): JSX.Element => { - return ( - // eslint-disable-next-line react/forbid-dom-props -
-
h-1/5
-
h-1/3
-
h-2/5
-
h-1/2
-
h-3/5
-
h-2/3
-
h-4/5
-
h-full
-
- ) -} - -export const AbsolutePositioning = (): JSX.Element => { - return ( - <> -

You can easily position elements absolutely using these classes:

-
-
-
-
-
-
- left-0 top-0 -
-
-
-
-
- inset-x-0 top-0 -
-
-
-
-
- top-0 right-0 -
-
-
-
-
-
-
- inset-y-0 left-0 -
-
-
-
-
- inset-0 -
-
-
-
-
- inset-y-0 right-0 -
-
-
-
-
-
-
- bottom-0 left-0 -
-
-
-
-
- inset-x-0 bottom-0 -
-
-
-
-
- bottom-0 right-0 -
-
-
- - ) -} diff --git a/frontend/src/styles/vars.scss b/frontend/src/styles/vars.scss index 98a7d1c711e..adfe98666c4 100644 --- a/frontend/src/styles/vars.scss +++ b/frontend/src/styles/vars.scss @@ -7,65 +7,6 @@ $md: 768px; $lg: 992px; $xl: 1200px; $xxl: 1600px; -$screens: ( - 'sm': $sm, - 'md': $md, - 'lg': $lg, - 'xl': $xl, - 'xxl': $xxl, -); -$tiny_spaces: 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20; -$humongous_spaces: 24, 30, 32, 40, 50, 60, 70, 80, 100, 120, 140, 160, 180, 200; -$all_spaces: list.join($tiny_spaces, $humongous_spaces); -$flex_sizes: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; -$leadings: 3, 4, 5, 6, 7, 8, 9, 10; -$sides: 'top', 'right', 'bottom', 'left'; - -// CSS cursors from https://tailwindcss.com/docs/cursor -$cursors: ( - 'auto', - 'default', - 'pointer', - 'wait', - 'text', - 'move', - 'help', - 'not-allowed', - 'none', - 'context-menu', - 'progress', - 'cell', - 'crosshair', - 'vertical-text', - 'alias', - 'copy', - 'no-drop', - 'grab', - 'grabbing', - 'all-scroll', - 'col-resize', - 'row-resize', - 'n-resize', - 'e-resize', - 's-resize', - 'w-resize', - 'ne-resize', - 'nw-resize', - 'se-resize', - 'sw-resize', - 'ew-resize', - 'ns-resize', - 'nesw-resize', - 'nwse-resize', - 'zoom-in', - 'zoom-out' -); - -// CSS list style types from https://tailwindcss.com/docs/list-style-type -$list_style_types: 'none', 'disc', 'decimal'; - -// See https://www.figma.com/file/Y9G24U4r04nEjIDGIEGuKI/PostHog-Design-System-One?node-id=2028%3A841 -// NOTE: Currently this has to be manually synced wit `tailwind.config.js` to allow IDE auto-completion $colors: ( 'primary-highlight': rgba(#1d4aff, 0.1), 'primary-light': #345cff, diff --git a/frontend/src/toolbar/actions/ActionsListView.tsx b/frontend/src/toolbar/actions/ActionsListView.tsx index d2ef9983ce8..45c49d3cb7d 100644 --- a/frontend/src/toolbar/actions/ActionsListView.tsx +++ b/frontend/src/toolbar/actions/ActionsListView.tsx @@ -28,7 +28,7 @@ export function ActionsListView({ actions }: ActionsListViewProps): JSX.Element onClick={() => selectAction(action.id || null)} className="font-medium my-1" > - {index + 1}. + {index + 1}. {action.name || Untitled} diff --git a/frontend/utils.mjs b/frontend/utils.mjs index d0204981fbc..7a57e864887 100644 --- a/frontend/utils.mjs +++ b/frontend/utils.mjs @@ -1,11 +1,16 @@ +import autoprefixer from 'autoprefixer' import chokidar from 'chokidar' import cors from 'cors' +import cssnano from 'cssnano' import { analyzeMetafile, context } from 'esbuild' import { lessLoader } from 'esbuild-plugin-less' import { sassPlugin } from 'esbuild-sass-plugin' import express from 'express' import fse from 'fs-extra' import * as path from 'path' +import postcss from 'postcss' +import postcssPresetEnv from 'postcss-preset-env' +import tailwindcss from 'tailwindcss' const defaultHost = process.argv.includes('--host') && process.argv.includes('0.0.0.0') ? '0.0.0.0' : 'localhost' const defaultPort = 8234 @@ -112,6 +117,7 @@ export function createHashlessEntrypoints(absWorkingDir, entrypoints) { } } +/** @type {import('esbuild').BuildOptions} */ export const commonConfig = { sourcemap: true, minify: !isDev, @@ -121,7 +127,20 @@ export const commonConfig = { chunkNames: '[name]-[hash]', // no hashes in dev mode for faster reloads --> we save the old hash in index.html otherwise entryNames: isDev ? '[dir]/[name]' : '[dir]/[name]-[hash]', - plugins: [sassPlugin(), lessPlugin], + plugins: [ + sassPlugin({ + async transform(source, resolveDir, filePath) { + // Sync the plugins list with postcss.config.js + const plugins = [tailwindcss, autoprefixer, postcssPresetEnv({ stage: 0 })] + if (!isDev) { + plugins.push(cssnano({ preset: 'default' })) + } + const { css } = await postcss(plugins).process(source, { from: filePath }) + return css + }, + }), + lessPlugin, + ], tsconfig: isDev ? 'tsconfig.dev.json' : 'tsconfig.json', define: { global: 'globalThis', diff --git a/package.json b/package.json index 72857e7ccc1..24dd8a3ecd5 100644 --- a/package.json +++ b/package.json @@ -85,6 +85,7 @@ "@rrweb/types": "^2.0.0-alpha.11", "@sentry/react": "7.22.0", "@testing-library/dom": ">=7.21.4", + "@tailwindcss/container-queries": "^0.1.1", "@tiptap/core": "^2.1.0-rc.12", "@tiptap/extension-document": "^2.1.0-rc.12", "@tiptap/extension-floating-menu": "^2.1.0-rc.12", @@ -101,6 +102,7 @@ "ajv": "^8.12.0", "antd": "^4.17.1", "antd-dayjs-webpack-plugin": "^1.0.6", + "autoprefixer": "^10.4.13", "babel-preset-nano-react-app": "^0.1.0", "chart.js": "^3.9.1", "chartjs-adapter-dayjs-3": "^1.2.3", @@ -112,6 +114,7 @@ "clsx": "^1.1.1", "core-js": "^3.32.0", "cors": "^2.8.5", + "cssnano": "^6.0.3", "d3": "^7.8.2", "d3-sankey": "^0.12.3", "dayjs": "^1.10.7", @@ -141,6 +144,8 @@ "monaco-editor": "^0.39.0", "papaparse": "^5.4.1", "pmtiles": "^2.11.0", + "postcss": "^8.4.31", + "postcss-preset-env": "^9.3.0", "posthog-js": "1.96.0", "posthog-js-lite": "2.5.0", "prettier": "^2.8.8", @@ -170,6 +175,7 @@ "resize-observer-polyfill": "^1.5.1", "rrweb": "^2.0.0-alpha.11", "sass": "^1.26.2", + "tailwindcss": "^3.4.0", "use-debounce": "^9.0.3", "use-resize-observer": "^8.0.0", "wildcard-match": "^5.1.2", @@ -236,13 +242,11 @@ "@types/zxcvbn": "^4.4.0", "@typescript-eslint/eslint-plugin": "^6.9.0", "@typescript-eslint/parser": "^6.9.0", - "autoprefixer": "^10.4.7", "axe-core": "^4.4.3", "babel-loader": "^8.0.6", "babel-plugin-import": "^1.13.0", "concurrently": "^5.3.0", "css-loader": "^3.4.2", - "cssnano": "^4.1.10", "cypress": "^13.3.0", "cypress-axe": "^1.5.0", "cypress-terminal-report": "^5.3.7", @@ -278,7 +282,6 @@ "path-browserify": "^1.0.1", "pixelmatch": "^5.3.0", "pngjs": "^6.0.0", - "postcss": "^8.4.31", "postcss-loader": "^4.3.0", "process": "^0.11.10", "raw-loader": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eae5eb053ab..e0c4bfaf5e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -53,6 +53,9 @@ dependencies: '@sentry/react': specifier: 7.22.0 version: 7.22.0(react@18.2.0) + '@tailwindcss/container-queries': + specifier: ^0.1.1 + version: 0.1.1(tailwindcss@3.4.0) '@testing-library/dom': specifier: '>=7.21.4' version: 8.19.0 @@ -104,6 +107,9 @@ dependencies: antd-dayjs-webpack-plugin: specifier: ^1.0.6 version: 1.0.6(dayjs@1.11.6) + autoprefixer: + specifier: ^10.4.13 + version: 10.4.13(postcss@8.4.31) babel-preset-nano-react-app: specifier: ^0.1.0 version: 0.1.0 @@ -137,6 +143,9 @@ dependencies: cors: specifier: ^2.8.5 version: 2.8.5 + cssnano: + specifier: ^6.0.3 + version: 6.0.3(postcss@8.4.31) d3: specifier: ^7.8.2 version: 7.8.2 @@ -224,6 +233,12 @@ dependencies: pmtiles: specifier: ^2.11.0 version: 2.11.0 + postcss: + specifier: ^8.4.31 + version: 8.4.31 + postcss-preset-env: + specifier: ^9.3.0 + version: 9.3.0(postcss@8.4.31) posthog-js: specifier: 1.96.0 version: 1.96.0 @@ -311,6 +326,9 @@ dependencies: sass: specifier: ^1.26.2 version: 1.56.0 + tailwindcss: + specifier: ^3.4.0 + version: 3.4.0(ts-node@10.9.1) use-debounce: specifier: ^9.0.3 version: 9.0.3(react@18.2.0) @@ -327,7 +345,7 @@ dependencies: optionalDependencies: fsevents: specifier: ^2.3.2 - version: 2.3.2 + version: 2.3.3 devDependencies: '@babel/core': @@ -501,9 +519,6 @@ devDependencies: '@typescript-eslint/parser': specifier: ^6.9.0 version: 6.9.0(eslint@8.52.0)(typescript@4.9.5) - autoprefixer: - specifier: ^10.4.7 - version: 10.4.13(postcss@8.4.31) axe-core: specifier: ^4.4.3 version: 4.5.1 @@ -519,9 +534,6 @@ devDependencies: css-loader: specifier: ^3.4.2 version: 3.6.0(webpack@5.88.2) - cssnano: - specifier: ^4.1.10 - version: 4.1.11 cypress: specifier: ^13.3.0 version: 13.3.0 @@ -627,9 +639,6 @@ devDependencies: pngjs: specifier: ^6.0.0 version: 6.0.0 - postcss: - specifier: ^8.4.31 - version: 8.4.31 postcss-loader: specifier: ^4.3.0 version: 4.3.0(postcss@8.4.31)(webpack@5.88.2) @@ -699,6 +708,11 @@ packages: resolution: {integrity: sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==} dev: true + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: false + /@ampproject/remapping@2.2.0: resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} @@ -892,7 +906,7 @@ packages: dependencies: '@babel/compat-data': 7.22.9 '@babel/helper-validator-option': 7.23.5 - browserslist: 4.21.10 + browserslist: 4.22.2 lru-cache: 5.1.1 semver: 6.3.1 dev: true @@ -996,7 +1010,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.1 + resolve: 1.22.8 transitivePeerDependencies: - supports-color @@ -3433,7 +3447,46 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 - dev: true + + /@csstools/cascade-layer-name-parser@1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): + resolution: {integrity: sha512-v/5ODKNBMfBl0us/WQjlfsvSlYxfZLhNMVIsuCPib2ulTwGKYbKJbwqw671+qH9Y4wvWVnu7LBChvml/wBKjFg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.3.2 + '@csstools/css-tokenizer': ^2.2.1 + dependencies: + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + dev: false + + /@csstools/color-helpers@3.0.2: + resolution: {integrity: sha512-NMVs/l7Y9eIKL5XjbCHEgGcG8LOUT2qVcRjX6EzkCdlvftHVKr2tHIPzHavfrULRZ5Q2gxrJ9f44dAlj6fX97Q==} + engines: {node: ^14 || ^16 || >=18} + dev: false + + /@csstools/css-calc@1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): + resolution: {integrity: sha512-ZV1TSmToiNcQL1P3hfzlzZzA02mmVkVmXGaUDUqpYUG84PmLhVSZpKX+KfxAuOcK7de04UXSQPBrAvaya6iiGg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.3.2 + '@csstools/css-tokenizer': ^2.2.1 + dependencies: + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + dev: false + + /@csstools/css-color-parser@1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): + resolution: {integrity: sha512-SlGd8E6ron24JYQPQAIzu5tvmWi1H4sDKTdA7UDnwF45oJv7AVESbOlOO1YjfBhrQFuvLWUgKiOY9DwGoAxwTA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.3.2 + '@csstools/css-tokenizer': ^2.2.1 + dependencies: + '@csstools/color-helpers': 3.0.2 + '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + dev: false /@csstools/css-parser-algorithms@2.3.2(@csstools/css-tokenizer@2.2.1): resolution: {integrity: sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==} @@ -3442,12 +3495,10 @@ packages: '@csstools/css-tokenizer': ^2.2.1 dependencies: '@csstools/css-tokenizer': 2.2.1 - dev: true /@csstools/css-tokenizer@2.2.1: resolution: {integrity: sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==} engines: {node: ^14 || ^16 || >=18} - dev: true /@csstools/media-query-list-parser@2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1): resolution: {integrity: sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==} @@ -3458,7 +3509,315 @@ packages: dependencies: '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - dev: true + + /@csstools/postcss-cascade-layers@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-UYFuFL9GgVnftg9v7tBvVEBRLaBeAD66euD+yYy5fYCUld9ZIWTJNCE30hm6STMEdt6FL5xzeVw1lAZ1tpvUEg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.15) + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /@csstools/postcss-color-function@3.0.7(postcss@8.4.31): + resolution: {integrity: sha512-/PIB20G1TPCXmQlaJLWIYzTZRZpj6csT4ijgnshIj/kcmniIRroAfDa0xSWnfuO1eNo0NptIaPU7jzUukWn55Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + postcss: 8.4.31 + dev: false + + /@csstools/postcss-color-mix-function@2.0.7(postcss@8.4.31): + resolution: {integrity: sha512-57/g8aGo5eKFjEeJMiRKh8Qq43K2rCyk5ZZTvJ34TNl4zUtYU5DvLkIkOnhCtL8/a4z9oMA42aOnFPddRrScUQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + postcss: 8.4.31 + dev: false + + /@csstools/postcss-exponential-functions@1.0.1(postcss@8.4.31): + resolution: {integrity: sha512-ZLK2iSK4DUxeypGce2PnQSdYugUqDTwxnhNiq1o6OyKMNYgYs4eKbvEhFG8JKr1sJWbeqBi5jRr0017l2EWVvg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + postcss: 8.4.31 + dev: false + + /@csstools/postcss-font-format-keywords@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-ntkGj+1uDa/u6lpjPxnkPcjJn7ChO/Kcy08YxctOZI7vwtrdYvFhmE476dq8bj1yna306+jQ9gzXIG/SWfOaRg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /@csstools/postcss-gamut-mapping@1.0.0(postcss@8.4.31): + resolution: {integrity: sha512-6UQyK8l9YaG5Ao5rBDcCnKHrLsHiQ1E0zeFQuqDJqEtinVzAPb/MwSw3TenZXL1Rnd7th3tb+4CBFHBXdW5tbQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + postcss: 8.4.31 + dev: false + + /@csstools/postcss-gradients-interpolation-method@4.0.7(postcss@8.4.31): + resolution: {integrity: sha512-GT1CzE/Tyr/ei4j5BwKESkHAgg+Gzys/0mAY7W+UiR+XrcYk5hDbOrE/YJIx1rflfO/7La1bDoZtA0YnLl4qNA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + postcss: 8.4.31 + dev: false + + /@csstools/postcss-hwb-function@3.0.6(postcss@8.4.31): + resolution: {integrity: sha512-uQgWt2Ho2yy2S6qthWY7mD5v57NKxi6dD1NB8nAybU5bJSsm+hLXRGm3/zbOH4xNrqO3Cl60DFSNlSrUME3Xjg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + postcss: 8.4.31 + dev: false + + /@csstools/postcss-ic-unit@3.0.2(postcss@8.4.31): + resolution: {integrity: sha512-n28Er7W9qc48zNjJnvTKuVHY26/+6YlA9WzJRksIHiAWOMxSH5IksXkw7FpkIOd+jLi59BMrX/BWrZMgjkLBHg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /@csstools/postcss-initial@1.0.0(postcss@8.4.31): + resolution: {integrity: sha512-1l7iHHjIl5qmVeGItugr4ZOlCREDP71mNKqoEyxlosIoiu3Os1nPWMHpuCvDLCLiWI/ONTOg3nzJh7gwHOrqUA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + dev: false + + /@csstools/postcss-is-pseudo-class@4.0.3(postcss@8.4.31): + resolution: {integrity: sha512-/dt5M9Ty/x3Yiq0Nm/5PJJzwkVFchJgdjKVnryBPtoMCb9ohb/nDIJOwr/Wr3hK3FDs1EA1GE6PyRYsUmQPS8Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.15) + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /@csstools/postcss-logical-float-and-clear@2.0.0(postcss@8.4.31): + resolution: {integrity: sha512-Wki4vxsF6icRvRz8eF9bPpAvwaAt0RHwhVOyzfoFg52XiIMjb6jcbHkGxwpJXP4DVrnFEwpwmrz5aTRqOW82kg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + dev: false + + /@csstools/postcss-logical-overflow@1.0.0(postcss@8.4.31): + resolution: {integrity: sha512-cIrZ8f7bGGvr+W53nEuMspcwaeaI2YTmz6LZ4yiAO5z14/PQgOOv+Pn+qjvPOPoadeY2BmpaoTzZKvdAQuM17w==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + dev: false + + /@csstools/postcss-logical-overscroll-behavior@1.0.0(postcss@8.4.31): + resolution: {integrity: sha512-e89S2LWjnxf0SB2wNUAbqDyFb/Fow/tlOe1XqOLbNx4rf3LrQokM9qldVx7sarnddml3ORE5LDUmlKpPOOeJTA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + dev: false + + /@csstools/postcss-logical-resize@2.0.0(postcss@8.4.31): + resolution: {integrity: sha512-lCQ1aX8c5+WI4t5EoYf3alTzJNNocMqTb+u1J9CINdDhFh1fjovqK+0aHalUHsNstZmzFPNzIkU4Mb3eM9U8SA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /@csstools/postcss-logical-viewport-units@2.0.3(postcss@8.4.31): + resolution: {integrity: sha512-xeVxqND5rlQyqLGdH7rX34sIm/JbbQKxpKQP8oD1YQqUHHCLQR9NUS57WqJKajxKN6AcNAMWJhb5LUH5RfPcyA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-tokenizer': 2.2.1 + postcss: 8.4.31 + dev: false + + /@csstools/postcss-media-minmax@1.1.0(postcss@8.4.31): + resolution: {integrity: sha512-t5Li/DPC5QmW/6VFLfUvsw/4dNYYseWR0tOXDeJg/9EKUodBgNawz5tuk5vYKtNvoj+Q08odMuXcpS5YJj0AFA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + postcss: 8.4.31 + dev: false + + /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.3(postcss@8.4.31): + resolution: {integrity: sha512-IPL8AvnwMYW+cWtp+j8cW3MFN0RyXNT4hLOvs6Rf2N+NcbvXhSyKxZuE3W9Cv4KjaNoNoGx1d0UhT6tktq6tUw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + postcss: 8.4.31 + dev: false + + /@csstools/postcss-nested-calc@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-HsB66aDWAouOwD/GcfDTS0a7wCuVWaTpXcjl5VKP0XvFxDiU+r0T8FG7xgb6ovZNZ+qzvGIwRM+CLHhDgXrYgQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /@csstools/postcss-normalize-display-values@3.0.1(postcss@8.4.31): + resolution: {integrity: sha512-nUvRxI+ALJwkxZdPU4EDyuM380vP91sAGvI3jAOHs/sr3jfcCOzLkY6xKI1Mr526kZ3RivmMoYM/xq+XFyE/bw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /@csstools/postcss-oklab-function@3.0.7(postcss@8.4.31): + resolution: {integrity: sha512-vBFTQD3CARB3u/XIGO44wWbcO7xG/4GsYqJlcPuUGRSK8mtxes6n4vvNFlIByyAZy2k4d4RY63nyvTbMpeNTaQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + postcss: 8.4.31 + dev: false + + /@csstools/postcss-progressive-custom-properties@3.0.2(postcss@8.4.31): + resolution: {integrity: sha512-YEvTozk1SxnV/PGL5DllBVDuLQ+jiQhyCSQiZJ6CwBMU5JQ9hFde3i1qqzZHuclZfptjrU0JjlX4ePsOhxNzHw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /@csstools/postcss-relative-color-syntax@2.0.7(postcss@8.4.31): + resolution: {integrity: sha512-2AiFbJSVF4EyymLxme4JzSrbXykHolx8DdZECHjYKMhoulhKLltx5ccYgtrK3BmXGd3v3nJrWFCc8JM8bjuiOg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + postcss: 8.4.31 + dev: false + + /@csstools/postcss-scope-pseudo-class@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-GFNVsD97OuEcfHmcT0/DAZWAvTM/FFBDQndIOLawNc1Wq8YqpZwBdHa063Lq+Irk7azygTT+Iinyg3Lt76p7rg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /@csstools/postcss-stepped-value-functions@3.0.2(postcss@8.4.31): + resolution: {integrity: sha512-I3wX44MZVv+tDuWfrd3BTvRB/YRIM2F5v1MBtTI89sxpFn47mNpTwpPYUOGPVCgKlRDfZSlxIUYhUQmqRQZZFQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + postcss: 8.4.31 + dev: false + + /@csstools/postcss-text-decoration-shorthand@3.0.3(postcss@8.4.31): + resolution: {integrity: sha512-d5J9m49HhqXRcw1S6vTZuviHi/iknUKGjBpChiNK1ARg9sSa3b8m5lsWz5Izs8ISORZdv2bZRwbw5Z2R6gQ9kQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/color-helpers': 3.0.2 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /@csstools/postcss-trigonometric-functions@3.0.2(postcss@8.4.31): + resolution: {integrity: sha512-AwzNhF4QOKaLOKvMljwwFkeYXwufhRO15G+kKohHkyoNOL75xWkN+W2Y9ik9tSeAyDv+cYNlYaF+o/a79WjVjg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + postcss: 8.4.31 + dev: false + + /@csstools/postcss-unset-value@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-P0JD1WHh3avVyKKRKjd0dZIjCEeaBer8t1BbwGMUDtSZaLhXlLNBqZ8KkqHzYWXOJgHleXAny2/sx8LYl6qhEA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + dev: false /@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.13): resolution: {integrity: sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==} @@ -3469,6 +3828,15 @@ packages: postcss-selector-parser: 6.0.13 dev: true + /@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.15): + resolution: {integrity: sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 + dependencies: + postcss-selector-parser: 6.0.15 + dev: false + /@ctrl/tinycolor@3.4.1: resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==} engines: {node: '>=10'} @@ -4410,7 +4778,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.20 /@jridgewell/resolve-uri@3.1.0: @@ -4433,7 +4801,6 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true /@jridgewell/trace-mapping@0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} @@ -4451,8 +4818,7 @@ packages: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true + '@jridgewell/sourcemap-codec': 1.4.15 /@juggle/resize-observer@3.4.0: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} @@ -4622,12 +4988,10 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -4635,7 +4999,6 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 - dev: true /@open-draft/until@1.0.3: resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==} @@ -6502,7 +6865,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@swc/core-darwin-x64@1.3.93: @@ -6511,7 +6873,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@swc/core-linux-arm-gnueabihf@1.3.93: @@ -6520,7 +6881,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-linux-arm64-gnu@1.3.93: @@ -6529,7 +6889,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-linux-arm64-musl@1.3.93: @@ -6538,7 +6897,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-linux-x64-gnu@1.3.93: @@ -6547,7 +6905,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-linux-x64-musl@1.3.93: @@ -6556,7 +6913,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@swc/core-win32-arm64-msvc@1.3.93: @@ -6565,7 +6921,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@swc/core-win32-ia32-msvc@1.3.93: @@ -6574,7 +6929,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@swc/core-win32-x64-msvc@1.3.93: @@ -6583,7 +6937,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@swc/core@1.3.93: @@ -6609,11 +6962,9 @@ packages: '@swc/core-win32-arm64-msvc': 1.3.93 '@swc/core-win32-ia32-msvc': 1.3.93 '@swc/core-win32-x64-msvc': 1.3.93 - dev: true /@swc/counter@0.1.2: resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} - dev: true /@swc/jest@0.2.29(@swc/core@1.3.93): resolution: {integrity: sha512-8reh5RvHBsSikDC3WGCd5ZTd2BXKkyOdK7QwynrCH58jk2cQFhhHhFBg/jvnWZehUQe/EoOImLENc9/DwbBFow==} @@ -6628,7 +6979,14 @@ packages: /@swc/types@0.1.5: resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} - dev: true + + /@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.0): + resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==} + peerDependencies: + tailwindcss: '>=3.2.0' + dependencies: + tailwindcss: 3.4.0(ts-node@10.9.1) + dev: false /@testing-library/dom@8.19.0: resolution: {integrity: sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==} @@ -6997,21 +7355,22 @@ packages: engines: {node: '>= 10'} dev: true + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: false + /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - dev: true /@tsconfig/node12@1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true /@tsconfig/node16@1.0.3: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} - dev: true /@types/aria-query@4.2.2: resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} @@ -7511,7 +7870,6 @@ packages: /@types/node@18.11.9: resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} - dev: true /@types/node@18.18.4: resolution: {integrity: sha512-t3rNFBgJRugIhackit2mVcLfF6IRc0JE4oeizPQL8Zrm8n2WY/0wOdpOPhdtG0V9Q2TlW/axbF1MJ6z+Yj/kKQ==} @@ -7566,10 +7924,6 @@ packages: /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/q@1.5.5: - resolution: {integrity: sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==} - dev: true - /@types/qs@6.9.10: resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} dev: true @@ -8180,7 +8534,6 @@ packages: /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} - dev: true /acorn@7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} @@ -8192,7 +8545,6 @@ packages: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} @@ -8266,10 +8618,6 @@ packages: require-from-string: 2.0.2 uri-js: 4.4.1 - /alphanum-sort@1.0.2: - resolution: {integrity: sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==} - dev: true - /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -8392,7 +8740,6 @@ packages: /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true /anymatch@3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} @@ -8422,7 +8769,10 @@ packages: /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -8539,17 +8889,6 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /array.prototype.reduce@1.0.5: - resolution: {integrity: sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-array-method-boxes-properly: 1.0.0 - is-string: 1.0.7 - dev: true - /array.prototype.tosorted@1.1.1: resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} dependencies: @@ -8668,14 +9007,30 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.10 - caniuse-lite: 1.0.30001538 + browserslist: 4.22.2 + caniuse-lite: 1.0.30001568 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 postcss: 8.4.31 postcss-value-parser: 4.2.0 - dev: true + dev: false + + /autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.2 + caniuse-lite: 1.0.30001568 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} @@ -8907,7 +9262,6 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /balanced-match@2.0.0: resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} @@ -8993,7 +9347,6 @@ packages: /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - dev: true /bplist-parser@0.2.0: resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} @@ -9007,7 +9360,6 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -9050,7 +9402,6 @@ packages: electron-to-chromium: 1.4.609 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) - dev: true /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -9130,25 +9481,6 @@ packages: get-intrinsic: 1.2.2 set-function-length: 1.1.1 - /caller-callsite@2.0.0: - resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} - engines: {node: '>=4'} - dependencies: - callsites: 2.0.0 - dev: true - - /caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} - dependencies: - caller-callsite: 2.0.0 - dev: true - - /callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} - dev: true - /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -9161,6 +9493,11 @@ packages: tslib: 2.6.2 dev: true + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: false + /camelcase-keys@7.0.2: resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} engines: {node: '>=12'} @@ -9187,18 +9524,17 @@ packages: /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.21.10 - caniuse-lite: 1.0.30001538 + browserslist: 4.22.2 + caniuse-lite: 1.0.30001568 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - dev: true + dev: false /caniuse-lite@1.0.30001538: resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} /caniuse-lite@1.0.30001568: resolution: {integrity: sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==} - dev: true /case-anything@2.1.10: resolution: {integrity: sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==} @@ -9475,15 +9811,6 @@ packages: engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} dev: true - /coa@2.0.2: - resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==} - engines: {node: '>= 4.0'} - dependencies: - '@types/q': 1.5.5 - chalk: 2.4.2 - q: 1.5.1 - dev: true - /collect-v8-coverage@1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} dev: true @@ -9505,23 +9832,8 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - dev: true - - /color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - dependencies: - color-convert: 1.9.3 - color-string: 1.9.1 - dev: true - /colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: true /colorette@2.0.19: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} @@ -9559,7 +9871,6 @@ packages: /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - dev: true /commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} @@ -9637,7 +9948,6 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /concat-stream@1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} @@ -9741,16 +10051,6 @@ packages: vary: 1.1.2 dev: false - /cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} - dependencies: - import-fresh: 2.0.0 - is-directory: 0.3.1 - js-yaml: 3.14.1 - parse-json: 4.0.0 - dev: true - /cosmiconfig@7.0.1: resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} engines: {node: '>=10'} @@ -9799,7 +10099,6 @@ packages: /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true /crelt@1.0.5: resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} @@ -9831,23 +10130,42 @@ packages: engines: {node: '>=8'} dev: true - /css-color-names@0.0.4: - resolution: {integrity: sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==} - dev: true - - /css-declaration-sorter@4.0.1: - resolution: {integrity: sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==} - engines: {node: '>4'} + /css-blank-pseudo@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-VbfLlOWO7sBHBTn6pwDQzc07Z0SDydgDBfNfCE0nvrehdBNv9RKsuupIRa/qal0+fBZhAALyQDPMKz5lnvcchw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - postcss: 7.0.39 - timsort: 0.3.0 - dev: true + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /css-declaration-sorter@7.1.1(postcss@8.4.31): + resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.31 + dev: false /css-functions-list@3.2.1: resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==} engines: {node: '>=12 || >=16'} dev: true + /css-has-pseudo@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-X+r+JBuoO37FBOWVNhVJhxtSBUFHgHbrcc0CjFT28JEdOw1qaDwABv/uunyodUuSy2hMPe9j/HjssxSlvUmKjg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.15) + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + postcss-value-parser: 4.2.0 + dev: false + /css-loader@3.6.0(webpack@5.88.2): resolution: {integrity: sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==} engines: {node: '>= 8.9.0'} @@ -9887,18 +10205,14 @@ packages: webpack: 5.88.2(@swc/core@1.3.93)(esbuild@0.19.8)(webpack-cli@5.1.4) dev: true - /css-select-base-adapter@0.1.1: - resolution: {integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==} - dev: true - - /css-select@2.1.0: - resolution: {integrity: sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==} + /css-prefers-color-scheme@9.0.0(postcss@8.4.31): + resolution: {integrity: sha512-03QGAk/FXIRseDdLb7XAiu6gidQ0Nd8945xuM7VFVPpc6goJsG9uIO8xQjTxwbPdPIIV4o4AJoOJyt8gwDl67g==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - boolbase: 1.0.0 - css-what: 3.4.2 - domutils: 1.7.0 - nth-check: 1.0.2 - dev: true + postcss: 8.4.31 + dev: false /css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} @@ -9910,21 +10224,23 @@ packages: nth-check: 2.1.1 dev: true - /css-tree@1.0.0-alpha.37: - resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==} - engines: {node: '>=8.0.0'} + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: - mdn-data: 2.0.4 - source-map: 0.6.1 - dev: true + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.0.1 + nth-check: 2.1.1 + dev: false - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: - mdn-data: 2.0.14 - source-map: 0.6.1 - dev: true + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: false /css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} @@ -9932,106 +10248,92 @@ packages: dependencies: mdn-data: 2.0.30 source-map-js: 1.0.2 - dev: true - - /css-what@3.4.2: - resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==} - engines: {node: '>= 6'} - dev: true /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - dev: true /css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} dev: true + /cssdb@7.9.1: + resolution: {integrity: sha512-fqy6ZnNfpb8qAvTT0qijWyTsUmYThsDX2F2ctMG4ceI7mI4DtsMILSiMBiuuDnVIYTyWvCctdp9Nb08p/6m2SQ==} + dev: false + /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true - dev: true /cssfontparser@1.2.1: resolution: {integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==} dev: true - /cssnano-preset-default@4.0.8: - resolution: {integrity: sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==} - engines: {node: '>=6.9.0'} + /cssnano-preset-default@6.0.3(postcss@8.4.31): + resolution: {integrity: sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - css-declaration-sorter: 4.0.1 - cssnano-util-raw-cache: 4.0.1 - postcss: 7.0.39 - postcss-calc: 7.0.5 - postcss-colormin: 4.0.3 - postcss-convert-values: 4.0.1 - postcss-discard-comments: 4.0.2 - postcss-discard-duplicates: 4.0.2 - postcss-discard-empty: 4.0.1 - postcss-discard-overridden: 4.0.1 - postcss-merge-longhand: 4.0.11 - postcss-merge-rules: 4.0.3 - postcss-minify-font-values: 4.0.2 - postcss-minify-gradients: 4.0.2 - postcss-minify-params: 4.0.2 - postcss-minify-selectors: 4.0.2 - postcss-normalize-charset: 4.0.1 - postcss-normalize-display-values: 4.0.2 - postcss-normalize-positions: 4.0.2 - postcss-normalize-repeat-style: 4.0.2 - postcss-normalize-string: 4.0.2 - postcss-normalize-timing-functions: 4.0.2 - postcss-normalize-unicode: 4.0.1 - postcss-normalize-url: 4.0.1 - postcss-normalize-whitespace: 4.0.2 - postcss-ordered-values: 4.1.2 - postcss-reduce-initial: 4.0.3 - postcss-reduce-transforms: 4.0.2 - postcss-svgo: 4.0.3 - postcss-unique-selectors: 4.0.1 - dev: true + css-declaration-sorter: 7.1.1(postcss@8.4.31) + cssnano-utils: 4.0.1(postcss@8.4.31) + postcss: 8.4.31 + postcss-calc: 9.0.1(postcss@8.4.31) + postcss-colormin: 6.0.2(postcss@8.4.31) + postcss-convert-values: 6.0.2(postcss@8.4.31) + postcss-discard-comments: 6.0.1(postcss@8.4.31) + postcss-discard-duplicates: 6.0.1(postcss@8.4.31) + postcss-discard-empty: 6.0.1(postcss@8.4.31) + postcss-discard-overridden: 6.0.1(postcss@8.4.31) + postcss-merge-longhand: 6.0.2(postcss@8.4.31) + postcss-merge-rules: 6.0.3(postcss@8.4.31) + postcss-minify-font-values: 6.0.1(postcss@8.4.31) + postcss-minify-gradients: 6.0.1(postcss@8.4.31) + postcss-minify-params: 6.0.2(postcss@8.4.31) + postcss-minify-selectors: 6.0.2(postcss@8.4.31) + postcss-normalize-charset: 6.0.1(postcss@8.4.31) + postcss-normalize-display-values: 6.0.1(postcss@8.4.31) + postcss-normalize-positions: 6.0.1(postcss@8.4.31) + postcss-normalize-repeat-style: 6.0.1(postcss@8.4.31) + postcss-normalize-string: 6.0.1(postcss@8.4.31) + postcss-normalize-timing-functions: 6.0.1(postcss@8.4.31) + postcss-normalize-unicode: 6.0.2(postcss@8.4.31) + postcss-normalize-url: 6.0.1(postcss@8.4.31) + postcss-normalize-whitespace: 6.0.1(postcss@8.4.31) + postcss-ordered-values: 6.0.1(postcss@8.4.31) + postcss-reduce-initial: 6.0.2(postcss@8.4.31) + postcss-reduce-transforms: 6.0.1(postcss@8.4.31) + postcss-svgo: 6.0.2(postcss@8.4.31) + postcss-unique-selectors: 6.0.2(postcss@8.4.31) + dev: false - /cssnano-util-get-arguments@4.0.0: - resolution: {integrity: sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==} - engines: {node: '>=6.9.0'} - dev: true - - /cssnano-util-get-match@4.0.0: - resolution: {integrity: sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==} - engines: {node: '>=6.9.0'} - dev: true - - /cssnano-util-raw-cache@4.0.1: - resolution: {integrity: sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==} - engines: {node: '>=6.9.0'} + /cssnano-utils@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - postcss: 7.0.39 - dev: true + postcss: 8.4.31 + dev: false - /cssnano-util-same-parent@4.0.1: - resolution: {integrity: sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==} - engines: {node: '>=6.9.0'} - dev: true - - /cssnano@4.1.11: - resolution: {integrity: sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==} - engines: {node: '>=6.9.0'} + /cssnano@6.0.3(postcss@8.4.31): + resolution: {integrity: sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - cosmiconfig: 5.2.1 - cssnano-preset-default: 4.0.8 - is-resolvable: 1.1.0 - postcss: 7.0.39 - dev: true + cssnano-preset-default: 6.0.3(postcss@8.4.31) + lilconfig: 3.0.0 + postcss: 8.4.31 + dev: false - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: - css-tree: 1.1.3 - dev: true + css-tree: 2.2.1 + dev: false /cssom@0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} @@ -10666,6 +10968,10 @@ packages: - supports-color dev: true + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: false + /diff-sequences@29.3.1: resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10679,7 +10985,6 @@ packages: /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - dev: true /diffable-html@4.1.0: resolution: {integrity: sha512-++kyNek+YBLH8cLXS+iTj/Hiy2s5qkRJEJ8kgu/WHbFrVY2vz9xPFUT+fii2zGF0m1CaojDlQJjkfrCt7YWM1g==} @@ -10694,6 +10999,10 @@ packages: path-type: 4.0.0 dev: true + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: false + /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -10819,13 +11128,6 @@ packages: tslib: 2.6.2 dev: true - /dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: true - /dotenv-expand@10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} @@ -10876,7 +11178,6 @@ packages: /electron-to-chromium@1.4.609: resolution: {integrity: sha512-ihiCP7PJmjoGNuLpl7TjNA8pCQWu09vGyjlPYw1Rqww4gvNuCcmvl+44G+2QyJ6S2K4o+wbTS++Xz0YN8Q9ERw==} - dev: true /emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -11051,10 +11352,6 @@ packages: which-typed-array: 1.1.13 dev: true - /es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - dev: true - /es-get-iterator@1.1.2: resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==} dependencies: @@ -11802,7 +12099,6 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true /fast-json-parse@1.0.3: resolution: {integrity: sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==} @@ -11825,7 +12121,6 @@ packages: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 - dev: true /fault@1.0.4: resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} @@ -12161,7 +12456,11 @@ packages: /fraction.js@4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} - dev: true + dev: false + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: false /fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} @@ -12220,13 +12519,13 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true /fsevents@2.3.3: @@ -12398,7 +12697,6 @@ packages: engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 - dev: true /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -12425,7 +12723,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -12651,10 +12948,6 @@ packages: engines: {node: '>=10.0.0'} dev: true - /hex-color-regex@1.1.0: - resolution: {integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==} - dev: true - /highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} dev: false @@ -12689,14 +12982,6 @@ packages: lru-cache: 6.0.0 dev: true - /hsl-regex@1.0.0: - resolution: {integrity: sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==} - dev: true - - /hsla-regex@1.0.0: - resolution: {integrity: sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==} - dev: true - /html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -12920,14 +13205,6 @@ packages: /immutable@4.1.0: resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} - /import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} - dependencies: - caller-path: 2.0.0 - resolve-from: 3.0.0 - dev: true - /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -12965,16 +13242,11 @@ packages: engines: {node: '>=12'} dev: true - /indexes-of@1.0.1: - resolution: {integrity: sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==} - dev: true - /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -13056,11 +13328,6 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - /is-absolute-url@2.1.0: - resolution: {integrity: sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==} - engines: {node: '>=0.10.0'} - dev: true - /is-absolute-url@3.0.3: resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} engines: {node: '>=8'} @@ -13096,10 +13363,6 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: true - /is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} @@ -13145,21 +13408,11 @@ packages: ci-info: 3.5.0 dev: true - /is-color-stop@1.1.0: - resolution: {integrity: sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==} - dependencies: - css-color-names: 0.0.4 - hex-color-regex: 1.1.0 - hsl-regex: 1.0.0 - hsla-regex: 1.0.0 - rgb-regex: 1.0.1 - rgba-regex: 1.0.0 - dev: true - /is-core-module@2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 + dev: true /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} @@ -13180,11 +13433,6 @@ packages: resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} dev: true - /is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} - dev: true - /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -13312,11 +13560,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: true - /is-path-cwd@2.2.0: resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} engines: {node: '>=6'} @@ -13364,10 +13607,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-resolvable@1.1.0: - resolution: {integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==} - dev: true - /is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} @@ -14037,7 +14276,7 @@ packages: jest-pnp-resolver: 1.2.2(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.1 + resolve: 1.22.8 resolve.exports: 2.0.2 slash: 3.0.0 dev: true @@ -14241,6 +14480,11 @@ packages: - ts-node dev: true + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + dev: false + /joi@17.11.0: resolution: {integrity: sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==} dependencies: @@ -14649,9 +14893,18 @@ packages: type-check: 0.4.0 dev: true + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: false + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: false + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true /linkify-it@4.0.1: resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} @@ -14796,7 +15049,6 @@ packages: /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: true /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -14812,7 +15064,7 @@ packages: /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: true + dev: false /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -15026,17 +15278,12 @@ packages: resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} dev: false - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: true + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: false /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true - - /mdn-data@2.0.4: - resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} - dev: true /mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} @@ -15087,7 +15334,6 @@ packages: /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - dev: true /methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -15108,7 +15354,6 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -15150,7 +15395,6 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - dev: true /minimatch@5.1.1: resolution: {integrity: sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==} @@ -15327,13 +15571,11 @@ packages: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: true /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /native-request@1.1.0: resolution: {integrity: sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==} @@ -15413,13 +15655,12 @@ packages: /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - dev: true /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.1 + resolve: 1.22.8 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -15429,7 +15670,7 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.11.0 + is-core-module: 2.13.1 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -15441,12 +15682,7 @@ packages: /normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - dev: true - - /normalize-url@3.3.0: - resolution: {integrity: sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==} - engines: {node: '>=6'} - dev: true + dev: false /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} @@ -15462,17 +15698,10 @@ packages: path-key: 4.0.0 dev: true - /nth-check@1.0.2: - resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} - dependencies: - boolbase: 1.0.0 - dev: true - /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 - dev: true /nwsapi@2.2.2: resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} @@ -15518,6 +15747,11 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: false + /object-inspect@1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} @@ -15572,16 +15806,6 @@ packages: es-abstract: 1.22.3 dev: true - /object.getownpropertydescriptors@2.1.4: - resolution: {integrity: sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==} - engines: {node: '>= 0.8'} - dependencies: - array.prototype.reduce: 1.0.5 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /object.groupby@1.0.1: resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: @@ -15649,7 +15873,6 @@ packages: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - dev: true /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} @@ -15911,7 +16134,6 @@ packages: /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - dev: true /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} @@ -15997,7 +16219,6 @@ packages: /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - dev: true /pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} @@ -16012,7 +16233,6 @@ packages: /pirates@4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} - dev: true /pixelmatch@5.3.0: resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} @@ -16093,60 +16313,287 @@ packages: '@babel/runtime': 7.22.10 dev: true - /postcss-calc@7.0.5: - resolution: {integrity: sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==} + /postcss-attribute-case-insensitive@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - postcss: 7.0.39 - postcss-selector-parser: 6.0.13 + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /postcss-calc@9.0.1(postcss@8.4.31): + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 - dev: true + dev: false - /postcss-colormin@4.0.3: - resolution: {integrity: sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==} - engines: {node: '>=6.9.0'} + /postcss-clamp@4.1.0(postcss@8.4.31): + resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} + engines: {node: '>=7.6.0'} + peerDependencies: + postcss: ^8.4.6 dependencies: - browserslist: 4.21.10 - color: 3.2.1 - has: 1.0.3 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-convert-values@4.0.1: - resolution: {integrity: sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==} - engines: {node: '>=6.9.0'} + /postcss-color-functional-notation@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-FsjSmlSufuiFBsIqQ++VxFmvX7zKndZpBkHmfXr4wqhvzM92FTEkAh703iqWTl1U3faTgqioIqCbfqdWiFVwtw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-discard-comments@4.0.2: - resolution: {integrity: sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==} - engines: {node: '>=6.9.0'} + /postcss-color-hex-alpha@9.0.2(postcss@8.4.31): + resolution: {integrity: sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - postcss: 7.0.39 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-discard-duplicates@4.0.2: - resolution: {integrity: sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==} - engines: {node: '>=6.9.0'} + /postcss-color-rebeccapurple@9.0.1(postcss@8.4.31): + resolution: {integrity: sha512-ds4cq5BjRieizVb2PnvbJ0omg9VCo2/KzluvoFZbxuGpsGJ5BQSD93CHBooinEtangCM5YqUOerGDl4xGmOb6Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - postcss: 7.0.39 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-discard-empty@4.0.1: - resolution: {integrity: sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==} - engines: {node: '>=6.9.0'} + /postcss-colormin@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - postcss: 7.0.39 - dev: true + browserslist: 4.22.2 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-discard-overridden@4.0.1: - resolution: {integrity: sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==} - engines: {node: '>=6.9.0'} + /postcss-convert-values@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - postcss: 7.0.39 - dev: true + browserslist: 4.22.2 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-custom-media@10.0.2(postcss@8.4.31): + resolution: {integrity: sha512-zcEFNRmDm2fZvTPdI1pIW3W//UruMcLosmMiCdpQnrCsTRzWlKQPYMa1ud9auL0BmrryKK1+JjIGn19K0UjO/w==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + postcss: 8.4.31 + dev: false + + /postcss-custom-properties@13.3.2(postcss@8.4.31): + resolution: {integrity: sha512-2Coszybpo8lpLY24vy2CYv9AasiZ39/bs8Imv0pWMq55Gl8NWzfc24OAo3zIX7rc6uUJAqESnVOMZ6V6lpMjJA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-custom-selectors@7.1.6(postcss@8.4.31): + resolution: {integrity: sha512-svsjWRaxqL3vAzv71dV0/65P24/FB8TbPX+lWyyf9SZ7aZm4S4NhCn7N3Bg+Z5sZunG3FS8xQ80LrCU9hb37cw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /postcss-dir-pseudo-class@8.0.0(postcss@8.4.31): + resolution: {integrity: sha512-Oy5BBi0dWPwij/IA+yDYj+/OBMQ9EPqAzTHeSNUYrUWdll/PRJmcbiUj0MNcsBi681I1gcSTLvMERPaXzdbvJg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /postcss-discard-comments@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.31 + dev: false + + /postcss-discard-duplicates@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.31 + dev: false + + /postcss-discard-empty@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.31 + dev: false + + /postcss-discard-overridden@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.31 + dev: false + + /postcss-double-position-gradients@5.0.2(postcss@8.4.31): + resolution: {integrity: sha512-KTbvdOOy8z8zb0BTkEg4/1vqlRlApdvjw8/pFoehgQl0WVO+fezDGlvo0B8xRA+XccA7ohkQCULKNsiNOx70Cw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-focus-visible@9.0.0(postcss@8.4.31): + resolution: {integrity: sha512-zA4TbVaIaT8npZBEROhZmlc+GBKE8AELPHXE7i4TmIUEQhw/P/mSJfY9t6tBzpQ1rABeGtEOHYrW4SboQeONMQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /postcss-focus-within@8.0.0(postcss@8.4.31): + resolution: {integrity: sha512-E7+J9nuQzZaA37D/MUZMX1K817RZGDab8qw6pFwzAkDd/QtlWJ9/WTKmzewNiuxzeq6WWY7ATiRePVoDKp+DnA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /postcss-font-variant@5.0.0(postcss@8.4.31): + resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.31 + dev: false + + /postcss-gap-properties@5.0.0(postcss@8.4.31): + resolution: {integrity: sha512-YjsEEL6890P7MCv6fch6Am1yq0EhQCJMXyT4LBohiu87+4/WqR7y5W3RIv53WdA901hhytgRvjlrAhibhW4qsA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + dev: false + + /postcss-image-set-function@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-VlZncC9hhZ5tg0JllY4g6Z28BeoPO8DIkelioEEkXL0AA0IORlqYpTi2L8TUnl4YQrlwvBgxVy+mdZJw5R/cIQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-import@15.1.0(postcss@8.4.31): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: false + + /postcss-js@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.31 + dev: false + + /postcss-lab-function@6.0.7(postcss@8.4.31): + resolution: {integrity: sha512-4d1lhDVPukHFqkMv4G5vVcK+tgY52vwb5uR1SWKOaO5389r2q8fMxBWuXSW+YtbCOEGP0/X9KERi9E9le2pJuw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) + '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) + '@csstools/css-tokenizer': 2.2.1 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + postcss: 8.4.31 + dev: false + + /postcss-load-config@4.0.2(postcss@8.4.31)(ts-node@10.9.1): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.0.0 + postcss: 8.4.31 + ts-node: 10.9.1(@swc/core@1.3.93)(@types/node@18.11.9)(typescript@4.9.5) + yaml: 2.3.4 + dev: false /postcss-loader@4.3.0(postcss@8.4.31)(webpack@5.88.2): resolution: {integrity: sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==} @@ -16164,71 +16611,87 @@ packages: webpack: 5.88.2(@swc/core@1.3.93)(esbuild@0.19.8)(webpack-cli@5.1.4) dev: true + /postcss-logical@7.0.0(postcss@8.4.31): + resolution: {integrity: sha512-zYf3vHkoW82f5UZTEXChTJvH49Yl9X37axTZsJGxrCG2kOUwtaAoz9E7tqYg0lsIoJLybaL8fk/2mOi81zVIUw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + /postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} dev: true - /postcss-merge-longhand@4.0.11: - resolution: {integrity: sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==} - engines: {node: '>=6.9.0'} + /postcss-merge-longhand@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - css-color-names: 0.0.4 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - stylehacks: 4.0.3 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + stylehacks: 6.0.2(postcss@8.4.31) + dev: false - /postcss-merge-rules@4.0.3: - resolution: {integrity: sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==} - engines: {node: '>=6.9.0'} + /postcss-merge-rules@6.0.3(postcss@8.4.31): + resolution: {integrity: sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - browserslist: 4.21.10 + browserslist: 4.22.2 caniuse-api: 3.0.0 - cssnano-util-same-parent: 4.0.1 - postcss: 7.0.39 - postcss-selector-parser: 3.1.2 - vendors: 1.0.4 - dev: true + cssnano-utils: 4.0.1(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false - /postcss-minify-font-values@4.0.2: - resolution: {integrity: sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==} - engines: {node: '>=6.9.0'} + /postcss-minify-font-values@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-minify-gradients@4.0.2: - resolution: {integrity: sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==} - engines: {node: '>=6.9.0'} + /postcss-minify-gradients@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - cssnano-util-get-arguments: 4.0.0 - is-color-stop: 1.1.0 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + colord: 2.9.3 + cssnano-utils: 4.0.1(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-minify-params@4.0.2: - resolution: {integrity: sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==} - engines: {node: '>=6.9.0'} + /postcss-minify-params@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - alphanum-sort: 1.0.2 - browserslist: 4.21.10 - cssnano-util-get-arguments: 4.0.0 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - uniqs: 2.0.0 - dev: true + browserslist: 4.22.2 + cssnano-utils: 4.0.1(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-minify-selectors@4.0.2: - resolution: {integrity: sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==} - engines: {node: '>=6.9.0'} + /postcss-minify-selectors@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - alphanum-sort: 1.0.2 - has: 1.0.3 - postcss: 7.0.39 - postcss-selector-parser: 3.1.2 - dev: true + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false /postcss-modules-extract-imports@2.0.0: resolution: {integrity: sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==} @@ -16264,7 +16727,7 @@ packages: dependencies: icss-utils: 5.1.0(postcss@8.4.31) postcss: 8.4.31 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true @@ -16283,7 +16746,7 @@ packages: postcss: ^8.1.0 dependencies: postcss: 8.4.31 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 dev: true /postcss-modules-values@3.0.0: @@ -16303,115 +16766,272 @@ packages: postcss: 8.4.31 dev: true - /postcss-normalize-charset@4.0.1: - resolution: {integrity: sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==} - engines: {node: '>=6.9.0'} + /postcss-nested@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 dependencies: - postcss: 7.0.39 - dev: true + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false - /postcss-normalize-display-values@4.0.2: - resolution: {integrity: sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==} - engines: {node: '>=6.9.0'} + /postcss-nesting@12.0.1(postcss@8.4.31): + resolution: {integrity: sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - cssnano-util-get-match: 4.0.0 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.15) + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false - /postcss-normalize-positions@4.0.2: - resolution: {integrity: sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==} - engines: {node: '>=6.9.0'} + /postcss-normalize-charset@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - cssnano-util-get-arguments: 4.0.0 - has: 1.0.3 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + dev: false - /postcss-normalize-repeat-style@4.0.2: - resolution: {integrity: sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==} - engines: {node: '>=6.9.0'} + /postcss-normalize-display-values@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - cssnano-util-get-arguments: 4.0.0 - cssnano-util-get-match: 4.0.0 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-normalize-string@4.0.2: - resolution: {integrity: sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==} - engines: {node: '>=6.9.0'} + /postcss-normalize-positions@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - has: 1.0.3 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-normalize-timing-functions@4.0.2: - resolution: {integrity: sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==} - engines: {node: '>=6.9.0'} + /postcss-normalize-repeat-style@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - cssnano-util-get-match: 4.0.0 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-normalize-unicode@4.0.1: - resolution: {integrity: sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==} - engines: {node: '>=6.9.0'} + /postcss-normalize-string@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - browserslist: 4.21.10 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-normalize-url@4.0.1: - resolution: {integrity: sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==} - engines: {node: '>=6.9.0'} + /postcss-normalize-timing-functions@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - is-absolute-url: 2.1.0 - normalize-url: 3.3.0 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-normalize-whitespace@4.0.2: - resolution: {integrity: sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==} - engines: {node: '>=6.9.0'} + /postcss-normalize-unicode@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + browserslist: 4.22.2 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-ordered-values@4.1.2: - resolution: {integrity: sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==} - engines: {node: '>=6.9.0'} + /postcss-normalize-url@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - cssnano-util-get-arguments: 4.0.0 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false - /postcss-reduce-initial@4.0.3: - resolution: {integrity: sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==} - engines: {node: '>=6.9.0'} + /postcss-normalize-whitespace@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - browserslist: 4.21.10 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-opacity-percentage@2.0.0(postcss@8.4.31): + resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.31 + dev: false + + /postcss-ordered-values@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-utils: 4.0.1(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-overflow-shorthand@5.0.0(postcss@8.4.31): + resolution: {integrity: sha512-2rlxDyeSics/hC2FuMdPnWiP9WUPZ5x7FTuArXLFVpaSQ2woPSfZS4RD59HuEokbZhs/wPUQJ1E3MT6zVv94MQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-page-break@3.0.4(postcss@8.4.31): + resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} + peerDependencies: + postcss: ^8 + dependencies: + postcss: 8.4.31 + dev: false + + /postcss-place@9.0.0(postcss@8.4.31): + resolution: {integrity: sha512-qLEPD9VPH5opDVemwmRaujODF9nExn24VOC3ghgVLEvfYN7VZLwJHes0q/C9YR5hI2UC3VgBE8Wkdp1TxCXhtg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-preset-env@9.3.0(postcss@8.4.31): + resolution: {integrity: sha512-ycw6doPrqV6QxDCtgiyGDef61bEfiSc59HGM4gOw/wxQxmKnhuEery61oOC/5ViENz/ycpRsuhTexs1kUBTvVw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-cascade-layers': 4.0.1(postcss@8.4.31) + '@csstools/postcss-color-function': 3.0.7(postcss@8.4.31) + '@csstools/postcss-color-mix-function': 2.0.7(postcss@8.4.31) + '@csstools/postcss-exponential-functions': 1.0.1(postcss@8.4.31) + '@csstools/postcss-font-format-keywords': 3.0.0(postcss@8.4.31) + '@csstools/postcss-gamut-mapping': 1.0.0(postcss@8.4.31) + '@csstools/postcss-gradients-interpolation-method': 4.0.7(postcss@8.4.31) + '@csstools/postcss-hwb-function': 3.0.6(postcss@8.4.31) + '@csstools/postcss-ic-unit': 3.0.2(postcss@8.4.31) + '@csstools/postcss-initial': 1.0.0(postcss@8.4.31) + '@csstools/postcss-is-pseudo-class': 4.0.3(postcss@8.4.31) + '@csstools/postcss-logical-float-and-clear': 2.0.0(postcss@8.4.31) + '@csstools/postcss-logical-overflow': 1.0.0(postcss@8.4.31) + '@csstools/postcss-logical-overscroll-behavior': 1.0.0(postcss@8.4.31) + '@csstools/postcss-logical-resize': 2.0.0(postcss@8.4.31) + '@csstools/postcss-logical-viewport-units': 2.0.3(postcss@8.4.31) + '@csstools/postcss-media-minmax': 1.1.0(postcss@8.4.31) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.3(postcss@8.4.31) + '@csstools/postcss-nested-calc': 3.0.0(postcss@8.4.31) + '@csstools/postcss-normalize-display-values': 3.0.1(postcss@8.4.31) + '@csstools/postcss-oklab-function': 3.0.7(postcss@8.4.31) + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.31) + '@csstools/postcss-relative-color-syntax': 2.0.7(postcss@8.4.31) + '@csstools/postcss-scope-pseudo-class': 3.0.0(postcss@8.4.31) + '@csstools/postcss-stepped-value-functions': 3.0.2(postcss@8.4.31) + '@csstools/postcss-text-decoration-shorthand': 3.0.3(postcss@8.4.31) + '@csstools/postcss-trigonometric-functions': 3.0.2(postcss@8.4.31) + '@csstools/postcss-unset-value': 3.0.0(postcss@8.4.31) + autoprefixer: 10.4.16(postcss@8.4.31) + browserslist: 4.22.2 + css-blank-pseudo: 6.0.0(postcss@8.4.31) + css-has-pseudo: 6.0.0(postcss@8.4.31) + css-prefers-color-scheme: 9.0.0(postcss@8.4.31) + cssdb: 7.9.1 + postcss: 8.4.31 + postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.31) + postcss-clamp: 4.1.0(postcss@8.4.31) + postcss-color-functional-notation: 6.0.2(postcss@8.4.31) + postcss-color-hex-alpha: 9.0.2(postcss@8.4.31) + postcss-color-rebeccapurple: 9.0.1(postcss@8.4.31) + postcss-custom-media: 10.0.2(postcss@8.4.31) + postcss-custom-properties: 13.3.2(postcss@8.4.31) + postcss-custom-selectors: 7.1.6(postcss@8.4.31) + postcss-dir-pseudo-class: 8.0.0(postcss@8.4.31) + postcss-double-position-gradients: 5.0.2(postcss@8.4.31) + postcss-focus-visible: 9.0.0(postcss@8.4.31) + postcss-focus-within: 8.0.0(postcss@8.4.31) + postcss-font-variant: 5.0.0(postcss@8.4.31) + postcss-gap-properties: 5.0.0(postcss@8.4.31) + postcss-image-set-function: 6.0.1(postcss@8.4.31) + postcss-lab-function: 6.0.7(postcss@8.4.31) + postcss-logical: 7.0.0(postcss@8.4.31) + postcss-nesting: 12.0.1(postcss@8.4.31) + postcss-opacity-percentage: 2.0.0(postcss@8.4.31) + postcss-overflow-shorthand: 5.0.0(postcss@8.4.31) + postcss-page-break: 3.0.4(postcss@8.4.31) + postcss-place: 9.0.0(postcss@8.4.31) + postcss-pseudo-class-any-link: 9.0.0(postcss@8.4.31) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.31) + postcss-selector-not: 7.0.1(postcss@8.4.31) + postcss-value-parser: 4.2.0 + dev: false + + /postcss-pseudo-class-any-link@9.0.0(postcss@8.4.31): + resolution: {integrity: sha512-QNCYIL98VKFKY6HGDEJpF6+K/sg9bxcUYnOmNHJxZS5wsFDFaVoPeG68WAuhsqwbIBSo/b9fjEnTwY2mTSD+uA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false + + /postcss-reduce-initial@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.22.2 caniuse-api: 3.0.0 - has: 1.0.3 - postcss: 7.0.39 - dev: true + postcss: 8.4.31 + dev: false - /postcss-reduce-transforms@4.0.2: - resolution: {integrity: sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==} - engines: {node: '>=6.9.0'} + /postcss-reduce-transforms@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - cssnano-util-get-match: 4.0.0 - has: 1.0.3 - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.31): + resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} + peerDependencies: + postcss: ^8.0.3 + dependencies: + postcss: 8.4.31 + dev: false /postcss-resolve-nested-selector@0.1.1: resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} @@ -16435,14 +17055,15 @@ packages: postcss: 8.4.31 dev: true - /postcss-selector-parser@3.1.2: - resolution: {integrity: sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==} - engines: {node: '>=8'} + /postcss-selector-not@7.0.1(postcss@8.4.31): + resolution: {integrity: sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - dot-prop: 5.3.0 - indexes-of: 1.0.1 - uniq: 1.0.1 - dev: true + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false /postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} @@ -16450,7 +17071,13 @@ packages: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: true + + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 /postcss-sorting@8.0.2(postcss@8.4.31): resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} @@ -16460,31 +17087,29 @@ packages: postcss: 8.4.31 dev: true - /postcss-svgo@4.0.3: - resolution: {integrity: sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==} - engines: {node: '>=6.9.0'} + /postcss-svgo@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.4.31 dependencies: - postcss: 7.0.39 - postcss-value-parser: 3.3.1 - svgo: 1.3.2 - dev: true + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + svgo: 3.2.0 + dev: false - /postcss-unique-selectors@4.0.1: - resolution: {integrity: sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==} - engines: {node: '>=6.9.0'} + /postcss-unique-selectors@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - alphanum-sort: 1.0.2 - postcss: 7.0.39 - uniqs: 2.0.0 - dev: true - - /postcss-value-parser@3.3.1: - resolution: {integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==} - dev: true + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true /postcss@7.0.39: resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} @@ -16501,7 +17126,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /posthog-js-lite@2.5.0: resolution: {integrity: sha512-Urvlp0Vu9h3td0BVFWt0QXFJDoOZcaAD83XM9d91NKMKTVPZtfU0ysoxstIf5mw/ce9ZfuMgpWPaagrZI4rmSg==} @@ -16868,11 +17492,6 @@ packages: resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} dev: true - /q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - dev: true - /qs@6.10.4: resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} engines: {node: '>=0.6'} @@ -16903,7 +17522,6 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true /quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} @@ -17777,6 +18395,12 @@ packages: dependencies: loose-envify: 1.4.0 + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: false + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -18066,11 +18690,6 @@ packages: global-modules: 0.2.3 dev: true - /resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - dev: true - /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -18096,9 +18715,10 @@ packages: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: - is-core-module: 2.11.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} @@ -18128,20 +18748,11 @@ packages: /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true /rfdc@1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} dev: true - /rgb-regex@1.0.1: - resolution: {integrity: sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==} - dev: true - - /rgba-regex@1.0.0: - resolution: {integrity: sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==} - dev: true - /rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} hasBin: true @@ -18210,7 +18821,6 @@ packages: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - dev: true /rw@1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} @@ -18304,6 +18914,9 @@ packages: /sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + requiresBuild: true + dev: false + optional: true /saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} @@ -18490,12 +19103,6 @@ packages: engines: {node: '>=14'} dev: true - /simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - dependencies: - is-arrayish: 0.3.2 - dev: true - /simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} @@ -18667,11 +19274,6 @@ packages: resolution: {integrity: sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==} dev: true - /stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - dev: true - /stack-utils@2.0.5: resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} engines: {node: '>=10'} @@ -18953,14 +19555,16 @@ packages: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} dev: true - /stylehacks@4.0.3: - resolution: {integrity: sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==} - engines: {node: '>=6.9.0'} + /stylehacks@6.0.2(postcss@8.4.31): + resolution: {integrity: sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - browserslist: 4.21.10 - postcss: 7.0.39 - postcss-selector-parser: 3.1.2 - dev: true + browserslist: 4.22.2 + postcss: 8.4.31 + postcss-selector-parser: 6.0.15 + dev: false /stylelint-config-recess-order@4.3.0(stylelint@15.11.0): resolution: {integrity: sha512-EWVtxZ8oq4/meTrRNUDrS5TqMz6TX72JjKDwVQq0JJDXE+P/o7UuFw3wWV/0O9yvJfh/da6nJY71ZUn/wSfB4g==} @@ -19039,7 +19643,7 @@ packages: known-css-properties: 0.29.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.1 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 stylelint: 15.11.0(typescript@4.9.5) dev: true @@ -19107,6 +19711,20 @@ packages: ts-interface-checker: 0.1.13 dev: true + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.5 + ts-interface-checker: 0.1.13 + dev: false + /supercluster@8.0.1: resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} dependencies: @@ -19154,26 +19772,19 @@ packages: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} dev: true - /svgo@1.3.2: - resolution: {integrity: sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==} - engines: {node: '>=4.0.0'} - deprecated: This SVGO version is no longer supported. Upgrade to v2.x.x. + /svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} hasBin: true dependencies: - chalk: 2.4.2 - coa: 2.0.2 - css-select: 2.1.0 - css-select-base-adapter: 0.1.1 - css-tree: 1.0.0-alpha.37 - csso: 4.2.0 - js-yaml: 3.14.1 - mkdirp: 0.5.6 - object.values: 1.1.6 - sax: 1.2.4 - stable: 0.1.8 - unquote: 1.1.1 - util.promisify: 1.0.1 - dev: true + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.0 + dev: false /swc-loader@0.2.3(@swc/core@1.3.93)(webpack@5.88.2): resolution: {integrity: sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A==} @@ -19216,6 +19827,37 @@ packages: strip-ansi: 6.0.1 dev: true + /tailwindcss@3.4.0(ts-node@10.9.1): + resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-import: 15.1.0(postcss@8.4.31) + postcss-js: 4.0.1(postcss@8.4.31) + postcss-load-config: 4.0.2(postcss@8.4.31)(ts-node@10.9.1) + postcss-nested: 6.0.1(postcss@8.4.31) + postcss-selector-parser: 6.0.13 + resolve: 1.22.8 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + dev: false + /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -19337,13 +19979,11 @@ packages: engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 - dev: true /thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 - dev: true /throttle-debounce@3.0.1: resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} @@ -19369,10 +20009,6 @@ packages: resolution: {integrity: sha512-W3AmPTJWZkRwu+iSNxPIsLZ2ByADsOLbbLxe46UJyWj3mlYLlwucKiq+/dPm0l9wTzqoF3/2PH0AGFCebjq23A==} dev: true - /timsort@0.3.0: - resolution: {integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==} - dev: true - /tiny-invariant@1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} dev: true @@ -19497,7 +20133,6 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true /ts-json-schema-generator@1.4.1: resolution: {integrity: sha512-wnhPMtskk9KvsTuU8AYx0TNdm1YrLVUEontT22+jL12JIPqPXdaoxPgsYBhlqDXsR9R9Nm2bJgH5r4IrTMbTSg==} @@ -19543,7 +20178,6 @@ packages: typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: true /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} @@ -19697,7 +20331,6 @@ packages: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /typescript@5.3.2: resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} @@ -19785,14 +20418,6 @@ packages: set-value: 2.0.1 dev: false - /uniq@1.0.1: - resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} - dev: true - - /uniqs@2.0.0: - resolution: {integrity: sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==} - dev: true - /unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -19848,10 +20473,6 @@ packages: webpack-virtual-modules: 0.5.0 dev: true - /unquote@1.1.1: - resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==} - dev: true - /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} @@ -19876,7 +20497,6 @@ packages: browserslist: 4.22.2 escalade: 3.1.1 picocolors: 1.0.0 - dev: true /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -20009,16 +20629,6 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true - - /util.promisify@1.0.1: - resolution: {integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==} - dependencies: - define-properties: 1.2.1 - es-abstract: 1.22.3 - has-symbols: 1.0.3 - object.getownpropertydescriptors: 2.1.4 - dev: true /util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} @@ -20050,7 +20660,6 @@ packages: /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true /v8-to-istanbul@9.0.1: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} @@ -20072,10 +20681,6 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - /vendors@1.0.4: - resolution: {integrity: sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==} - dev: true - /verror@1.10.0: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} @@ -20461,7 +21066,6 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true /write-file-atomic@2.4.3: resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} @@ -20561,6 +21165,11 @@ packages: engines: {node: '>= 6'} dev: true + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: false + /yargs-parser@13.1.2: resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} dependencies: @@ -20654,7 +21263,6 @@ packages: /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - dev: true /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} diff --git a/postcss.config.js b/postcss.config.js index f666c74afaa..b9c7be827e6 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,10 +1,13 @@ -/* eslint-env node */ - -const plugins = [require('autoprefixer')] // postCSS modules here -if (process.env.NODE_ENV === 'production') { - plugins.push(require('cssnano')) +/** @type {import('postcss-load-config').Config} */ +const config = { + // This file is only for Webpack, which is still in use by Storybook + // Sync the plugins list with utils.mjs + plugins: [ + require('tailwindcss'), + require('autoprefixer'), + require('postcss-preset-env')({ stage: 0 }), + require('cssnano')({ preset: 'default' }), + ], } -module.exports = { - plugins, -} +module.exports = config diff --git a/production.Dockerfile b/production.Dockerfile index 586f213e772..0582057641b 100644 --- a/production.Dockerfile +++ b/production.Dockerfile @@ -34,7 +34,7 @@ RUN corepack enable && pnpm --version && \ COPY frontend/ frontend/ COPY ee/frontend/ ee/frontend/ COPY ./bin/ ./bin/ -COPY babel.config.js tsconfig.json webpack.config.js ./ +COPY babel.config.js tsconfig.json webpack.config.js tailwind.config.js postcss.config.js ./ RUN pnpm build diff --git a/tailwind.config.js b/tailwind.config.js index 661c4211f77..989ed20d8ee 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,236 +1,87 @@ -// NOTE: We do not actually use Tailwind but having this file allows -// Tailwind-supporting IDEs to autocomplete classnames, most of which we follow by convention - -// NOTE: Currently this has to be manually synced wit ./frontend/styles/vars.scss -module.exports = { - content: ['./frontend/**/*.{js,jsx,ts,tsx}'], +/** @type {import('tailwindcss').Config} */ +const config = { + content: ['./frontend/src/**/*.{ts,tsx}', './ee/frontend/**/*.{ts,tsx}', './frontend/src/index.html'], theme: { colors: { - 'primary-highlight': 'rgba(#1d4aff, 0.1)', - 'primary-light': '#345cff', - primary: '#1d4aff', - 'primary-dark': '#1330a6', - 'danger-highlight': 'rgba(#db3707, 0.1)', - 'danger-lighter': '#ffa599', - 'danger-light': '#df4b20', - danger: '#db3707', - 'danger-dark': '#992705', - 'warning-highlight': 'rgba(#f7a501, 0.1)', - 'warning-light': '#f8b633', - warning: '#f7a501', - 'warning-dark': '#a06b01', - 'success-highlight': 'rgba(#388600, 0.1)', - 'success-light': '#5f9d32', - success: '#388600', - 'success-dark': '#245700', - 'primary-alt-highlight': 'rgba(#35416b, 0.1)', - 'primary-alt': '#35416b', - 'primary-alt-dark': '#222a46', - default: '#2d2d2d', - 'default-dark': '#050505', - muted: '#5f5f5f', - 'muted-dark': '#403939', - 'muted-alt': '#747ea1', - 'muted-alt-dark': '#515871', - mark: 'hsl(42deg 93% 86% / 80%)', - white: '#fff', - 'bg-light': '#fff', - side: '#fafaf9', - mid: '#f2f2f2', - border: 'rgba(0, 0, 0, 0.15)', - 'border-light': 'rgba(0, 0, 0, 0.08)', - 'border-bold': 'rgba(0, 0, 0, 0.24)', - 'border-active': 'rgba(0, 0, 0, 0.36)', - transparent: 'transparent', - - 'brand-blue': '#1d4aff', - 'brand-red': '#f54e00', - 'brand-yellow': '#f9bd2b', - 'brand-key': '#000', + // TODO: Move all colors over to Tailwind + // Currently color utility classes are still generated with SCSS in colors.scss due to relying on our color + // CSS vars in lots of stylesheets + }, + fontFamily: { + sans: [ + '-apple-system', + 'BlinkMacSystemFont', + 'Inter', + 'Segoe UI', + 'Roboto', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'sans-serif', + 'Apple Color Emoji', + 'Segoe UI Emoji', + 'Segoe UI Symbol', + ], + title: [ + 'MatterSQ', + '-apple-system', + 'BlinkMacSystemFont', + 'Inter', + 'Segoe UI', + 'Roboto', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'sans-serif', + 'Apple Color Emoji', + 'Segoe UI Emoji', + 'Segoe UI Symbol', + ], + mono: ['ui-monospace', 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'monospace'], }, extend: { + fontSize: { + xxs: ['0.625rem', '0.75rem'], // 10px (12px of line height) + }, screens: { + // Sync with vars.scss sm: '576px', md: '768px', lg: '992px', xl: '1200px', - xxl: '1600px', + '2xl': '1600px', + }, + spacing: { + // Some additional larger widths for compatibility with our pre-Tailwind system + // Don't add new ones here, in new code just use the `w-[32rem]` style for arbitrary values + 18: '4.5rem', + 30: '7.5rem', + 50: '12.5rem', + 60: '15rem', + 80: '20rem', + 100: '25rem', + 120: '30rem', + 140: '35rem', + 160: '40rem', + 180: '45rem', + 192: '48rem', + 200: '50rem', + 248: '62rem', + 300: '75rem', + }, + maxWidth: { + '1/2': '50%' + }, + boxShadow: { + DEFAULT: 'var(--shadow-elevation)', + }, + flex: { + 2: '2 2 0%', + 3: '3 3 0%', }, }, }, - plugins: [], - // Comment in plugins that we have managed to replicate in our utilities.scss - corePlugins: [ - // 'accentColor', // The accent-color utilities like accent-green-700 - // 'accessibility', // The sr-only and not-sr-only utilities - 'alignContent', // The align-content utilities like content-end - 'alignItems', // The align-items utilities like items-center - // 'alignSelf', // The align-self utilities like self-end - // 'animation', // The animation utilities like animate-ping - // 'appearance', // The appearance utilities like appearance-none - 'aspectRatio', // The aspect-ratio utilities like aspect-square - // 'backdropBlur', // The backdrop-blur utilities like backdrop-blur-md - // 'backdropBrightness', // The backdrop-brightness utilities like backdrop-brightness-100 - // 'backdropContrast', // The backdrop-contrast utilities like backdrop-contrast-100 - // 'backdropFilter', // The backdrop-filter utilities like backdrop-filter - // 'backdropGrayscale', // The backdrop-grayscale utilities like backdrop-grayscale-0 - // 'backdropHueRotate', // The backdrop-hue-rotate utilities like backdrop-hue-rotate-30 - // 'backdropInvert', // The backdrop-invert utilities like backdrop-invert-0 - // 'backdropOpacity', // The backdrop-opacity utilities like backdrop-opacity-50 - // 'backdropSaturate', // The backdrop-saturate utilities like backdrop-saturate-100 - // 'backdropSepia', // The backdrop-sepia utilities like backdrop-sepia-0 - // 'backgroundAttachment', // The background-attachment utilities like bg-local - // 'backgroundBlendMode', // The background-blend-mode utilities like bg-blend-color-burn - // 'backgroundClip', // The background-clip utilities like bg-clip-padding - 'backgroundColor', // The background-color utilities like bg-green-700 - // 'backgroundImage', // The background-image utilities like bg-gradient-to-br - // 'backgroundOpacity', // The background-color opacity utilities like bg-opacity-25 - // 'backgroundOrigin', // The background-origin utilities like bg-origin-padding - // 'backgroundPosition', // The background-position utilities like bg-left-top - // 'backgroundRepeat', // The background-repeat utilities like bg-repeat-x - // 'backgroundSize', // The background-size utilities like bg-cover - // 'blur', // The blur utilities like blur-md - // 'borderCollapse', // The border-collapse utilities like border-collapse - 'borderColor', // The border-color utilities like border-t-green-700 - // 'borderOpacity', // The border-color opacity utilities like border-opacity-25 - 'borderRadius', // The border-radius utilities like rounded-l-lg - // 'borderSpacing', // The border-spacing utilities like border-spacing-x-28 - 'borderStyle', // The border-style utilities like border-dotted - 'borderWidth', // The border-width utilities like border-t-4 - // 'boxDecorationBreak', // The box-decoration-break utilities like decoration-clone - // 'boxShadow', // The box-shadow utilities like shadow-lg - // 'boxShadowColor', // The box-shadow-color utilities like shadow-green-700 - // 'boxSizing', // The box-sizing utilities like box-border - // 'breakAfter', // The break-after utilities like break-after-avoid-page - // 'breakBefore', // The break-before utilities like break-before-avoid-page - // 'breakInside', // The break-inside utilities like break-inside-avoid - // 'brightness', // The brightness utilities like brightness-100 - // 'caretColor', // The caret-color utilities like caret-green-700 - // 'clear', // The clear utilities like clear-right - // 'columns', // The columns utilities like columns-auto - // 'container', // The container component - // 'content', // The content utilities like content-none - // 'contrast', // The contrast utilities like contrast-100 - 'cursor', // The cursor utilities like cursor-grab - // 'display', // The display utilities like table-column-group - // 'divideColor', // The between elements border-color utilities like divide-slate-500 - // 'divideOpacity', // The divide-opacity utilities like divide-opacity-50 - // 'divideStyle', // The divide-style utilities like divide-dotted - // 'divideWidth', // The between elements border-width utilities like divide-x-2 - // 'dropShadow', // The drop-shadow utilities like drop-shadow-lg - // 'fill', // The fill utilities like fill-green-700 - // 'filter', // The filter utilities like filter - 'flex', // The flex utilities like flex-auto - // 'flexBasis', // The flex-basis utilities like basis-px - 'flexDirection', // The flex-direction utilities like flex-row-reverse - 'flexGrow', // The flex-grow utilities like flex-grow - 'flexShrink', // The flex-shrink utilities like flex-shrink - 'flexWrap', // The flex-wrap utilities like flex-wrap-reverse - 'float', // The float utilities like float-left - 'fontFamily', // The font-family utilities like font-serif - 'fontSize', // The font-size utilities like text-3xl - // 'fontSmoothing', // The font-smoothing utilities like antialiased - 'fontStyle', // The font-style utilities like italic - // 'fontVariantNumeric', // The font-variant-numeric utilities like oldstyle-nums - 'fontWeight', // The font-weight utilities like font-medium - 'gap', // The gap utilities like gap-x-28 - // 'gradientColorStops', // The gradient-color-stops utilities like via-green-700 - // 'grayscale', // The grayscale utilities like grayscale-0 - // 'gridAutoColumns', // The grid-auto-columns utilities like auto-cols-min - // 'gridAutoFlow', // The grid-auto-flow utilities like grid-flow-dense - // 'gridAutoRows', // The grid-auto-rows utilities like auto-rows-min - 'gridColumn', // The grid-column utilities like col-span-6 - 'gridColumnEnd', // The grid-column-end utilities like col-end-7 - 'gridColumnStart', // The grid-column-start utilities like col-start-7 - 'gridRow', // The grid-row utilities like row-span-3 - 'gridRowEnd', // The grid-row-end utilities like row-end-4 - 'gridRowStart', // The grid-row-start utilities like row-start-4 - 'gridTemplateColumns', // The grid-template-columns utilities like grid-cols-7 - // 'gridTemplateRows', // The grid-template-rows utilities like grid-rows-4 - 'height', // The height utilities like h-72 - // 'hueRotate', // The hue-rotate utilities like hue-rotate-30 - // 'inset', // The inset utilities like top-44 - // 'invert', // The invert utilities like invert-0 - // 'isolation', // The isolation utilities like isolate - 'justifyContent', // The justify-content utilities like justify-center - // 'justifyItems', // The justify-items utilities like justify-items-end - // 'justifySelf', // The justify-self utilities like justify-self-end - 'letterSpacing', // The letter-spacing utilities like tracking-normal - 'lineHeight', // The line-height utilities like leading-9 - // 'listStylePosition', // The list-style-position utilities like list-inside - 'listStyleType', // The list-style-type utilities like list-disc - 'margin', // The margin utilities like mt-28 - 'maxHeight', // The max-height utilities like max-h-36 - 'maxWidth', // The max-width utilities like max-w-6xl - 'minHeight', // The min-height utilities like min-h-screen - 'minWidth', // The min-width utilities like min-w-min - // 'mixBlendMode', // The mix-blend-mode utilities like mix-blend-hard-light - 'objectFit', // The object-fit utilities like object-fill - // 'objectPosition', // The object-position utilities like object-left-top - 'opacity', // The opacity utilities like opacity-50 - // 'order', // The order utilities like order-8 - // 'outlineColor', // The outline-color utilities like outline-green-700 - // 'outlineOffset', // The outline-offset utilities like outline-offset-2 - // 'outlineStyle', // The outline-style utilities like outline-dashed - // 'outlineWidth', // The outline-width utilities like outline-2 - 'overflow', // The overflow utilities like overflow-x-hidden - // 'overscrollBehavior', // The overscroll-behavior utilities like overscroll-y-contain - 'padding', // The padding utilities like pt-28 - // 'placeContent', // The place-content utilities like place-content-between - // 'placeItems', // The place-items utilities like place-items-end - // 'placeSelf', // The place-self utilities like place-self-end - // 'placeholderColor', // The placeholder color utilities like placeholder-red-600 - // 'placeholderOpacity', // The placeholder color opacity utilities like placeholder-opacity-25 - 'pointerEvents', // The pointer-events utilities like pointer-events-none - 'position', // The position utilities like absolute - // 'preflight', // Tailwind's base/reset styles - // 'resize', // The resize utilities like resize-y - // 'ringColor', // The ring-color utilities like ring-green-700 - // 'ringOffsetColor', // The ring-offset-color utilities like ring-offset-green-700 - // 'ringOffsetWidth', // The ring-offset-width utilities like ring-offset-2 - // 'ringOpacity', // The ring-opacity utilities like ring-opacity-50 - // 'ringWidth', // The ring-width utilities like ring-4 - 'rotate', // The rotate utilities like rotate-6 - // 'saturate', // The saturate utilities like saturate-100 - // 'scale', // The scale utilities like scale-x-95 - // 'scrollBehavior', // The scroll-behavior utilities like scroll-auto - // 'scrollMargin', // The scroll-margin utilities like scroll-mt-28 - // 'scrollPadding', // The scroll-padding utilities like scroll-pt-28 - // 'scrollSnapAlign', // The scroll-snap-align utilities like snap-end - // 'scrollSnapStop', // The scroll-snap-stop utilities like snap-normal - // 'scrollSnapType', // The scroll-snap-type utilities like snap-y - // 'sepia', // The sepia utilities like sepia-0 - // 'skew', // The skew utilities like skew-x-12 - // 'space', // The "space-between" utilities like space-x-4 - // 'stroke', // The stroke utilities like stroke-green-700 - // 'strokeWidth', // The stroke-width utilities like stroke-1 - // 'tableLayout', // The table-layout utilities like table-auto - 'textAlign', // The text-align utilities like text-right - 'textColor', // The text-color utilities like text-green-700 - 'textDecoration', // The text-decoration utilities like overline - 'textDecorationColor', // The text-decoration-color utilities like decoration-green-700 - // 'textDecorationStyle', // The text-decoration-style utilities like decoration-dotted - // 'textDecorationThickness', // The text-decoration-thickness utilities like decoration-4 - // 'textIndent', // The text-indent utilities like indent-28 - // 'textOpacity', // The text-opacity utilities like text-opacity-50 - 'textOverflow', // The text-overflow utilities like overflow-ellipsis - // 'textTransform', // The text-transform utilities like lowercase - // 'textUnderlineOffset', // The text-underline-offset utilities like underline-offset-2 - // 'touchAction', // The touch-action utilities like touch-pan-right - // 'transform', // The transform utility (for enabling transform features) - // 'transformOrigin', // The transform-origin utilities like origin-bottom-right - // 'transitionDelay', // The transition-delay utilities like delay-200 - // 'transitionDuration', // The transition-duration utilities like duration-200 - // 'transitionProperty', // The transition-property utilities like transition-colors - // 'transitionTimingFunction', // The transition-timing-function utilities like ease-in - // 'translate', // The translate utilities like translate-x-full - 'userSelect', // The user-select utilities like select-text - // 'verticalAlign', // The vertical-align utilities like align-bottom - // 'visibility', // The visibility utilities like visible - 'whitespace', // The whitespace utilities like whitespace-pre - 'width', // The width utilities like w-1.5 - // 'willChange', // The will-change utilities like will-change-scroll - // 'wordBreak', // The word-break utilities like break-words - 'zIndex', // The z-index utilities like z-30 - ], + plugins: [require('@tailwindcss/container-queries')], } + +module.exports = config