diff --git a/Dockerfile b/Dockerfile index 3d1e5435db..4e25bed7c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,6 @@ FROM base as development ENV NODE_ENV development COPY package.json package-lock.json ./ RUN npm install -RUN npm rebuild node-sass COPY .babelrc index.js nodemon.json ./ COPY ./webpack ./webpack COPY client ./client @@ -27,6 +26,5 @@ FROM base as production ENV NODE_ENV=production COPY package.json package-lock.json index.js ./ RUN npm install --production -RUN npm rebuild node-sass COPY --from=build $APP_HOME/dist ./dist CMD ["npm", "run", "start:prod"] diff --git a/client/styles/abstracts/_placeholders.scss b/client/styles/abstracts/_placeholders.scss index a6016e122a..65e115a38a 100644 --- a/client/styles/abstracts/_placeholders.scss +++ b/client/styles/abstracts/_placeholders.scss @@ -1,8 +1,10 @@ +@use "sass:math"; + %toolbar-button { @include themify() { display: inline-block; - height: #{44 / $base-font-size}rem; - width: #{44 / $base-font-size}rem; + height: #{math.div(44, $base-font-size)}rem; + width: #{math.div(44, $base-font-size)}rem; text-align: center; border-radius: 100%; cursor: pointer; @@ -81,7 +83,7 @@ cursor: pointer; border: 2px solid getThemifyVariable('button-border-color'); border-radius: 2px; - padding: #{10 / $base-font-size}rem #{30 / $base-font-size}rem; + padding: #{math.div(10, $base-font-size)}rem #{math.div(30, $base-font-size)}rem; & g, & path { fill: getThemifyVariable('button-color'); opacity: 1; @@ -111,8 +113,8 @@ color: getThemifyVariable('primary-text-color'); background-color: getThemifyVariable('preferences-button-background-color'); padding: 0; - margin-bottom: #{28 / $base-font-size}rem; - line-height: #{50 / $base-font-size}rem; + margin-bottom: #{math.div(28, $base-font-size)}rem; + line-height: #{math.div(50, $base-font-size)}rem; & g, & path { fill: getThemifyVariable('modal-button-color'); } @@ -138,12 +140,12 @@ color: getThemifyVariable('heavy-text-color'); } } - font-size: #{12 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; cursor: pointer; text-align: left; padding: 0; - margin-bottom: #{5 / $base-font-size}rem; - padding-right: #{5 / $base-font-size}rem; + margin-bottom: #{math.div(5, $base-font-size)}rem; + padding-right: #{math.div(5, $base-font-size)}rem; border: 0; list-style-type: none; } @@ -194,19 +196,19 @@ color: getThemifyVariable('primary-text-color'); } text-align: left; - width: #{180 / $base-font-size}rem; + width: #{math.div(180, $base-font-size)}rem; display: flex; position: absolute; flex-direction: column; top: 95%; height: auto; z-index: 9999; - border-radius: #{6 / $base-font-size}rem; + border-radius: #{math.div(6, $base-font-size)}rem; & li:first-child { - border-radius: #{5 / $base-font-size}rem #{5 / $base-font-size}rem 0 0; + border-radius: #{math.div(5, $base-font-size)}rem #{math.div(5, $base-font-size)}rem 0 0; } & li:last-child { - border-radius: 0 0 #{5 / $base-font-size}rem #{5 / $base-font-size}rem; + border-radius: 0 0 #{math.div(5, $base-font-size)}rem #{math.div(5, $base-font-size)}rem; } & li { & button, @@ -216,9 +218,9 @@ } width: 100%; text-align: left; - padding: #{8 / $base-font-size}rem #{16 / $base-font-size}rem; + padding: #{math.div(8, $base-font-size)}rem #{math.div(16, $base-font-size)}rem; } - height: #{35 / $base-font-size}rem; + height: #{math.div(35, $base-font-size)}rem; cursor: pointer; display: flex; align-items: center; diff --git a/client/styles/base/_base.scss b/client/styles/base/_base.scss index 1d4a99f60e..3e283d7ab9 100644 --- a/client/styles/base/_base.scss +++ b/client/styles/base/_base.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + * { box-sizing: border-box; } @@ -65,10 +67,10 @@ button { input, textarea { - padding: #{5 / $base-font-size}rem; + padding: #{math.div(5, $base-font-size)}rem; border: 1px solid; border-radius: 2px; - padding: #{10 / $base-font-size}rem; + padding: #{math.div(10, $base-font-size)}rem; @include themify() { color: getThemifyVariable("input-text-color"); background-color: getThemifyVariable("input-background-color"); @@ -105,23 +107,23 @@ button { } h1 { - font-size: #{21 / $base-font-size}em; + font-size: #{math.div(21, $base-font-size)}em; } h2 { - font-size: #{21 / $base-font-size}em; + font-size: #{math.div(21, $base-font-size)}em; } h3 { font-weight: normal; - font-size: #{16 / $base-font-size}rem; + font-size: #{math.div(16, $base-font-size)}rem; } h4 { font-weight: normal; } h6 { font-weight: normal; - font-size: #{12 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; } thead { text-align: left; diff --git a/client/styles/components/_about.scss b/client/styles/components/_about.scss index 161ecb1bf8..c21939e6fe 100644 --- a/client/styles/components/_about.scss +++ b/client/styles/components/_about.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .about__logo { @include themify() { & path { @@ -11,11 +13,11 @@ flex-direction: row; justify-content: space-between; flex-wrap: wrap; - padding-top: #{17 / $base-font-size}rem; - padding-right: #{78 / $base-font-size}rem; - padding-bottom: #{20 / $base-font-size}rem; - padding-left: #{20 / $base-font-size}rem; - width: #{720 / $base-font-size}rem; + padding-top: #{math.div(17, $base-font-size)}rem; + padding-right: #{math.div(78, $base-font-size)}rem; + padding-bottom: #{math.div(20, $base-font-size)}rem; + padding-left: #{math.div(20, $base-font-size)}rem; + width: #{math.div(720, $base-font-size)}rem; } .about__content-column { @@ -36,18 +38,18 @@ .about__footer { flex-direction: column; - padding-left: #{20 / $base-font-size}rem; - padding-right: #{20 / $base-font-size}rem; + padding-left: #{math.div(20, $base-font-size)}rem; + padding-right: #{math.div(20, $base-font-size)}rem; } } .about__content-column-title { - font-size: #{21 / $base-font-size}rem; - padding-left: #{17 / $base-font-size}rem; + font-size: #{math.div(21, $base-font-size)}rem; + padding-left: #{math.div(17, $base-font-size)}rem; } .about__content-column-asterisk { - padding-right: #{5 / $base-font-size}rem; + padding-right: #{math.div(5, $base-font-size)}rem; @include themify() { & path { fill: getThemifyVariable('logo-color'); @@ -58,20 +60,20 @@ .about__content-column-list { @include themify() { - padding-top: #{10 / $base-font-size}rem; - font-size: #{16 / $base-font-size}rem; + padding-top: #{math.div(10, $base-font-size)}rem; + font-size: #{math.div(16, $base-font-size)}rem; } } .about__version-info { @include themify() { - padding-top: #{8 / $base-font-size}rem; - font-size: #{16 / $base-font-size}rem; + padding-top: #{math.div(8, $base-font-size)}rem; + font-size: #{math.div(16, $base-font-size)}rem; span { color: getThemifyVariable('logo-color'); } &:first-child { - padding-top: #{30 /$base-font-size}rem; + padding-top: #{math.div(30, $base-font-size)}rem; } } // span { @@ -84,13 +86,13 @@ .about__footer { display: flex; justify-content: space-between; - padding-top: #{18 / $base-font-size}rem; - padding-right: #{20 / $base-font-size}rem; - padding-bottom: #{21 / $base-font-size}rem; - padding-left: #{20 / $base-font-size}rem; + padding-top: #{math.div(18, $base-font-size)}rem; + padding-right: #{math.div(20, $base-font-size)}rem; + padding-bottom: #{math.div(21, $base-font-size)}rem; + padding-left: #{math.div(20, $base-font-size)}rem; width: 100%; } .about__footer-list { - padding-top: #{12 / $base-font-size}rem; + padding-top: #{math.div(12, $base-font-size)}rem; } diff --git a/client/styles/components/_account.scss b/client/styles/components/_account.scss index 4229511123..469be83497 100644 --- a/client/styles/components/_account.scss +++ b/client/styles/components/_account.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .account-settings__container { @include themify() { color: getThemifyVariable('primary-text-color'); @@ -13,18 +15,18 @@ } .account-settings { - max-width: #{700 / $base-font-size}rem; + max-width: #{math.div(700, $base-font-size)}rem; align-self: center; - padding: 0 #{10 / $base-font-size}rem; + padding: 0 #{math.div(10, $base-font-size)}rem; margin: 0 auto; } .account__tabs { - padding-top: #{20 / $base-font-size}rem; + padding-top: #{math.div(20, $base-font-size)}rem; } .account__social-text { - padding-bottom: #{15 / $base-font-size}rem; + padding-bottom: #{math.div(15, $base-font-size)}rem; } @@ -33,7 +35,7 @@ @media (max-width: 770px) { flex-direction: column; align-items: center; - gap: #{15 / $base-font-size}rem; + gap: #{math.div(15, $base-font-size)}rem; button, a { width: 100% !important; @@ -43,5 +45,5 @@ } .account__social-stack > * { - margin-right: #{15 / $base-font-size}rem; + margin-right: #{math.div(15, $base-font-size)}rem; } diff --git a/client/styles/components/_api-key.scss b/client/styles/components/_api-key.scss index f3565d506e..7e4e2af471 100644 --- a/client/styles/components/_api-key.scss +++ b/client/styles/components/_api-key.scss @@ -1,14 +1,16 @@ +@use "sass:math"; + .api-key-form__summary { - padding-top: #{25 / $base-font-size}rem; + padding-top: #{math.div(25, $base-font-size)}rem; } .api-key-form__section { - padding-bottom: #{15 / $base-font-size}rem; + padding-bottom: #{math.div(15, $base-font-size)}rem; } .api-key-form__title { - padding: #{15 / $base-font-size}rem 0; - font-size: #{21 / $base-font-size}rem; + padding: #{math.div(15, $base-font-size)}rem 0; + font-size: #{math.div(21, $base-font-size)}rem; font-weight: bold; } @@ -27,11 +29,11 @@ } th { - padding: #{5 / $base-font-size}rem; + padding: #{math.div(5, $base-font-size)}rem; } td { - padding: #{15 / $base-font-size}rem #{5 / $base-font-size}rem; + padding: #{math.div(15, $base-font-size)}rem #{math.div(5, $base-font-size)}rem; } tbody tr:nth-child(odd) { @@ -46,8 +48,8 @@ } .api-key-list__delete-button { - width:#{20 / $base-font-size}rem; - height:#{20 / $base-font-size}rem; + width:#{math.div(20, $base-font-size)}rem; + height:#{math.div(20, $base-font-size)}rem; text-align: center; @@ -76,11 +78,11 @@ } .api-key-form__new-token__title { - margin-bottom: #{10 / $base-font-size}rem; - font-size: #{18 / $base-font-size}rem; + margin-bottom: #{math.div(10, $base-font-size)}rem; + font-size: #{math.div(18, $base-font-size)}rem; font-weight: bold; } .api-key-form__new-token__info { - padding: #{10 / $base-font-size}rem 0; + padding: #{math.div(10, $base-font-size)}rem 0; } diff --git a/client/styles/components/_asset-list.scss b/client/styles/components/_asset-list.scss index 7d8f6065e8..f359c1ae3b 100644 --- a/client/styles/components/_asset-list.scss +++ b/client/styles/components/_asset-list.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .asset-table-container { overflow-y: auto; max-width: 100%; @@ -11,13 +13,13 @@ border-spacing: 0; position: relative; & .asset-table__dropdown-column { - width: #{60 / $base-font-size}rem; + width: #{math.div(60, $base-font-size)}rem; position: relative; } } .asset-table thead th { - height: #{32 / $base-font-size}rem; + height: #{math.div(32, $base-font-size)}rem; position: sticky; top: 0; @include themify() { @@ -26,13 +28,13 @@ } .asset-table thead th:nth-child(1){ - padding-left: #{12 / $base-font-size}rem; + padding-left: #{math.div(12, $base-font-size)}rem; } .asset-table__row { - margin: #{10 / $base-font-size}rem; - height: #{72 / $base-font-size}rem; - font-size: #{16 / $base-font-size}rem; + margin: #{math.div(10, $base-font-size)}rem; + height: #{math.div(72, $base-font-size)}rem; + font-size: #{math.div(16, $base-font-size)}rem; } .asset-table__row:nth-child(odd) { @@ -42,7 +44,7 @@ } .asset-table__row > th:nth-child(1) { - padding-left: #{12 / $base-font-size}rem; + padding-left: #{math.div(12, $base-font-size)}rem; } .asset-table__row a { @@ -52,7 +54,7 @@ } .asset-table thead { - font-size: #{12 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; @include themify() { color: getThemifyVariable('inactive-text-color') } @@ -64,12 +66,12 @@ .asset-table__empty { text-align: center; - font-size: #{16 / $base-font-size}rem; - padding: #{42 / $base-font-size}rem 0; + font-size: #{math.div(16, $base-font-size)}rem; + padding: #{math.div(42, $base-font-size)}rem 0; } .asset-table__total { - padding: 0 #{20 / $base-font-size}rem; + padding: 0 #{math.div(20, $base-font-size)}rem; position: sticky; top: 0; @include themify() { diff --git a/client/styles/components/_asset-size.scss b/client/styles/components/_asset-size.scss index 2c4b062895..d664415c37 100644 --- a/client/styles/components/_asset-size.scss +++ b/client/styles/components/_asset-size.scss @@ -1,8 +1,10 @@ +@use "sass:math"; + .asset-size { position: relative; flex: 1; - margin-bottom: #{18 / $base-font-size}rem; - font-size: #{14 / $base-font-size}rem; + margin-bottom: #{math.div(18, $base-font-size)}rem; + font-size: #{math.div(14, $base-font-size)}rem; } .asset-size-bar { @@ -12,7 +14,7 @@ width: 200px; height: 20px; - border-radius: #{3 / $base-font-size}rem; + border-radius: #{math.div(3, $base-font-size)}rem; border: 1px solid transparent; overflow: hidden; @@ -37,12 +39,12 @@ .asset-current { position: absolute; - top: #{28 / $base-font-size}rem; + top: #{math.div(28, $base-font-size)}rem; left: 0; } .asset-max { position: absolute; top: 0; - left: #{210 / $base-font-size}rem; + left: #{math.div(210, $base-font-size)}rem; } diff --git a/client/styles/components/_collection-create.scss b/client/styles/components/_collection-create.scss index 63cd4546b1..093b96b84f 100644 --- a/client/styles/components/_collection-create.scss +++ b/client/styles/components/_collection-create.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .collection-create { - padding: #{24 / $base-font-size}rem; + padding: #{math.div(24, $base-font-size)}rem; } diff --git a/client/styles/components/_collection.scss b/client/styles/components/_collection.scss index a616154ba5..c5a977e430 100644 --- a/client/styles/components/_collection.scss +++ b/client/styles/components/_collection.scss @@ -1,5 +1,7 @@ +@use "sass:math"; + .collection-container { - padding: #{24 / $base-font-size}rem #{66 / $base-font-size}rem; + padding: #{math.div(24, $base-font-size)}rem #{math.div(66, $base-font-size)}rem; position: relative; flex: 1; overflow: hidden; @@ -18,10 +20,10 @@ } .collection-metadata { - max-width: #{1012 / $base-font-size}rem; + max-width: #{math.div(1012, $base-font-size)}rem; width: 100%; margin: 0 auto; - margin-bottom: #{24 / $base-font-size}rem; + margin-bottom: #{math.div(24, $base-font-size)}rem; } .collection-metadata__columns { @@ -45,7 +47,7 @@ } .collection-metadata__column--right > * { - margin-left: #{10 / $base-font-size}rem; + margin-left: #{math.div(10, $base-font-size)}rem; } .collection-metadata__name { @@ -53,7 +55,7 @@ } .collection-metadata__name .editable-input__label { - padding: 0.83333rem #{7 / $base-font-size}rem; + padding: 0.83333rem #{math.div(7, $base-font-size)}rem; } .collection-metadata__name, @@ -63,18 +65,18 @@ } .collection-metadata__user { - padding-top: #{8 / $base-font-size}rem; + padding-top: #{math.div(8, $base-font-size)}rem; font-size: 14px; } .collection-metadata--is-owner .collection-metadata__user { - padding-left: #{8 / $base-font-size}rem; + padding-left: #{math.div(8, $base-font-size)}rem; } .collection-metadata__description { - padding-top: #{8 / $base-font-size}rem; + padding-top: #{math.div(8, $base-font-size)}rem; text-align: left; - font-size: #{14 / $base-font-size}rem; + font-size: #{math.div(14, $base-font-size)}rem; } .collection-metadata__description .editable-input__label { @@ -102,8 +104,8 @@ .collection__share-dropdown { @extend %dropdown-open-right; - padding: #{20 / $base-font-size}rem; - width: #{350 / $base-font-size}rem; + padding: #{math.div(20, $base-font-size)}rem; + width: #{math.div(350, $base-font-size)}rem; } .collection-content { @@ -111,7 +113,7 @@ flex-direction: column; flex: 1; overflow: hidden; - max-width: #{1012 / $base-font-size}rem; + max-width: #{math.div(1012, $base-font-size)}rem; margin: 0 auto; width: 100%; @@ -136,18 +138,18 @@ .collection-empty-message { text-align: center; - font-size: #{16 / $base-font-size}rem; + font-size: #{math.div(16, $base-font-size)}rem; } .collection-row__action-column { - width: #{60 / $base-font-size}rem; + width: #{math.div(60, $base-font-size)}rem; position: relative; } .collection-row__remove-button { display: inline-block; - width:#{35 / $base-font-size}rem; - height:#{35 / $base-font-size}rem; + width:#{math.div(35, $base-font-size)}rem; + height:#{math.div(35, $base-font-size)}rem; @include icon(); @include themify() { // icon graphic @@ -161,8 +163,8 @@ } & svg { - width:#{35 / $base-font-size}rem; - height:#{35 / $base-font-size}rem; + width:#{math.div(35, $base-font-size)}rem; + height:#{math.div(35, $base-font-size)}rem; } &:hover, diff --git a/client/styles/components/_console-input.scss b/client/styles/components/_console-input.scss index 84db1f3387..9efe857216 100644 --- a/client/styles/components/_console-input.scss +++ b/client/styles/components/_console-input.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .console__input { width: 100%; display: flex; @@ -23,17 +25,17 @@ display: flex; align-items: center; justify-content: center; - margin-left: #{10 / $base-font-size}rem; + margin-left: #{math.div(10, $base-font-size)}rem; } .console__editor { - margin-left: #{15 / $base-font-size}rem; + margin-left: #{math.div(15, $base-font-size)}rem; flex: 1; & .CodeMirror { height: auto; } & .CodeMirror-lines { - padding-top: #{2 / $base-font-size}rem; + padding-top: #{math.div(2, $base-font-size)}rem; } } diff --git a/client/styles/components/_console.scss b/client/styles/components/_console.scss index d8882df67a..f37eb50d5f 100644 --- a/client/styles/components/_console.scss +++ b/client/styles/components/_console.scss @@ -1,20 +1,22 @@ +@use "sass:math"; + .preview-console { @include themify() { background: getThemifyVariable('console-background-color'); border-color: getThemifyVariable('ide-border-color'); } - border-left: #{1 / $base-font-size}rem solid; - border-right: #{1 / $base-font-size}rem solid; + border-left: math.div(1, $base-font-size)rem solid; + border-right: math.div(1, $base-font-size)rem solid; width: 100%; height: 100%; z-index: 1000; display: flex; flex-direction: column; - & > { - position:relative; - text-align:left; - } + & > * { + position: relative; + text-align: left; + } } .preview-console__header { @@ -22,15 +24,15 @@ background-color: getThemifyVariable('console-header-background-color'); color: getThemifyVariable('console-header-color'); } - min-height: #{30 / $base-font-size}rem; - padding: #{5 / $base-font-size}rem; + min-height: #{math.div(30, $base-font-size)}rem; + padding: #{math.div(5, $base-font-size)}rem; display: flex; justify-content: space-between; align-items: center; } .preview-console__header-title { - font-size: #{12 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; font-weight: normal; } @@ -47,7 +49,7 @@ } .preview-console__collapse { - padding-top: #{3 / $base-font-size}rem; + padding-top: #{math.div(3, $base-font-size)}rem; @include icon(); @include themify() { & g, @@ -62,7 +64,7 @@ } .preview-console__expand { - padding-top: #{3 / $base-font-size}rem; + padding-top: #{math.div(3, $base-font-size)}rem; @include icon(); @include themify() { & g, @@ -92,7 +94,7 @@ } background: transparent; border: none; - padding-right: #{10 / $base-font-size}rem; + padding-right: #{math.div(10, $base-font-size)}rem; .preview-console--collapsed & { display: none; } @@ -101,5 +103,5 @@ .preview-console__body { display: flex; flex-direction: column; - height: calc(100% - #{30 / $base-font-size}rem); + height: calc(100% - #{math.div(30, $base-font-size)}rem); } diff --git a/client/styles/components/_copyable-input.scss b/client/styles/components/_copyable-input.scss index 6ca78acbca..4db7690f9b 100644 --- a/client/styles/components/_copyable-input.scss +++ b/client/styles/components/_copyable-input.scss @@ -1,10 +1,12 @@ +@use "sass:math"; + .copyable-input__value-container { position: relative; } .copyable-input__value { width: 100%; - font-size: #{16 / $base-font-size}rem; + font-size: #{math.div(16, $base-font-size)}rem; .copyable-input--with-preview & { border-radius: 2px 0 0 2px; } @@ -12,8 +14,8 @@ .copyable-input__label { width: 100%; - font-size: #{12 / $base-font-size}rem; - padding-bottom: #{5 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; + padding-bottom: #{math.div(5, $base-font-size)}rem; @include themify() { color: getThemifyVariable('inactive-text-color'); } @@ -25,7 +27,7 @@ } .copyable-input { - padding-bottom: #{30 / $base-font-size}rem; + padding-bottom: #{math.div(30, $base-font-size)}rem; display: flex; } @@ -39,7 +41,7 @@ color: getThemifyVariable('button-hover-color'); } font-family: Montserrat, sans-serif; - font-size: #{12 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; } .tooltipped-n::before, @@ -56,10 +58,10 @@ @include themify() { align-self: flex-end; border-radius: 0 2px 2px 0; - padding: #{2 / $base-font-size}rem 0; + padding: #{math.div(2, $base-font-size)}rem 0; } & svg { - height: #{30 / $base-font-size}rem; - width: #{30 / $base-font-size}rem; + height: #{math.div(30, $base-font-size)}rem; + width: #{math.div(30, $base-font-size)}rem; } } diff --git a/client/styles/components/_dashboard-header.scss b/client/styles/components/_dashboard-header.scss index ddab33cea5..5d19b64cf0 100644 --- a/client/styles/components/_dashboard-header.scss +++ b/client/styles/components/_dashboard-header.scss @@ -1,5 +1,7 @@ +@use "sass:math"; + .dashboard-header { - padding: #{24 / $base-font-size}rem #{66 / $base-font-size}rem; + padding: #{math.div(24, $base-font-size)}rem #{math.div(66, $base-font-size)}rem; position: relative; flex: 1; overflow: hidden; @@ -12,16 +14,16 @@ .dashboard-header__nav { display: flex; flex-direction: column; - padding: #{10 / $base-font-size}rem #{16 / $base-font-size}rem; - gap: #{10 / $base-font-size}rem; + padding: #{math.div(10, $base-font-size)}rem #{math.div(16, $base-font-size)}rem; + gap: #{math.div(10, $base-font-size)}rem; .dashboard-header__tabs { border-bottom: none; - padding-top: #{12 / $base-font-size}rem; + padding-top: #{math.div(12, $base-font-size)}rem; } .dashboard-header__tab__title { font-weight: bold; - font-size: #{15 / $base-font-size}rem; + font-size: #{math.div(15, $base-font-size)}rem; @include themify() { color: getThemifyVariable("inactive-text-color"); @@ -59,7 +61,7 @@ } .dashboard-header__header { - max-width: #{1012 / $base-font-size}rem; + max-width: #{math.div(1012, $base-font-size)}rem; margin: 0 auto; width: 100%; } @@ -73,7 +75,7 @@ .dashboard-header__tabs { display: flex; - padding-top: #{24 / $base-font-size}rem; + padding-top: #{math.div(24, $base-font-size)}rem; width: 100%; @include themify() { @@ -85,12 +87,12 @@ @include themify() { color: getThemifyVariable("inactive-text-color"); padding: 0; - margin-right: #{26 / $base-font-size}rem; + margin-right: #{math.div(26, $base-font-size)}rem; @media (max-width: 770px) { - margin-right: #{20 / $base-font-size}rem; + margin-right: #{math.div(20, $base-font-size)}rem; } } - font-size: #{12 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; } .dashboard-header__tab--selected { @@ -104,8 +106,8 @@ .dashboard-header__tab__title { margin: 0; display: inline-block; - padding: 0 #{5 / $base-font-size}rem #{5 / $base-font-size}rem; - border-bottom: #{4 / $base-font-size}rem solid transparent; + padding: 0 #{math.div(5, $base-font-size)}rem #{math.div(5, $base-font-size)}rem; + border-bottom: #{math.div(4, $base-font-size)}rem solid transparent; @include themify() { &:hover, @@ -121,10 +123,10 @@ .dashboard-header__actions { display: flex; align-items: center; - padding: #{24 / $base-font-size}rem 0; + padding: #{math.div(24, $base-font-size)}rem 0; justify-content: space-between; } .dashboard-header__actions > *:not(:first-child) { - margin-left: #{15 / $base-font-size}rem; + margin-left: #{math.div(15, $base-font-size)}rem; } diff --git a/client/styles/components/_editable-input.scss b/client/styles/components/_editable-input.scss index 07e157b613..2c6589d385 100644 --- a/client/styles/components/_editable-input.scss +++ b/client/styles/components/_editable-input.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .editable-input { height: 70%; display: flex; @@ -21,7 +23,7 @@ button.editable-input__label { } } cursor: pointer; - line-height: #{18 / $base-font-size}rem; + line-height: #{math.div(18, $base-font-size)}rem; font-size: unset; font-weight: unset; diff --git a/client/styles/components/_editor.scss b/client/styles/components/_editor.scss index 111970e16a..a54766478b 100644 --- a/client/styles/components/_editor.scss +++ b/client/styles/components/_editor.scss @@ -1,26 +1,28 @@ +@use "sass:math"; + .CodeMirror { font-family: Inconsolata, monospace; height: 100%; } .CodeMirror-linenumbers { - padding-right: #{10 / $base-font-size}rem; + padding-right: #{math.div(10, $base-font-size)}rem; } .CodeMirror-linenumber { - width: #{32 / $base-font-size}rem; - left: #{-3 / $base-font-size}rem !important; + width: #{math.div(32, $base-font-size)}rem; + left: #{math.div(-3, $base-font-size)}rem !important; @include themify() { color: getThemifyVariable("inactive-text-color"); } } .CodeMirror-lines { - padding-top: #{25 / $base-font-size}rem; + padding-top: #{math.div(25, $base-font-size)}rem; } pre.CodeMirror-line { - padding-left: #{5 / $base-font-size}rem; + padding-left: #{math.div(5, $base-font-size)}rem; } .CodeMirror-gutter-wrapper { @@ -33,7 +35,7 @@ pre.CodeMirror-line { .CodeMirror-lint-marker-error, .CodeMirror-lint-marker-multiple { background-image: none; - width: #{49 / $base-font-size}rem; + width: #{math.div(49, $base-font-size)}rem; position: absolute; height: 100%; right: 100%; @@ -55,7 +57,7 @@ pre.CodeMirror-line { .CodeMirror-gutter-elt:not(.CodeMirror-linenumber) { opacity: 0.2; - width: #{49 / $base-font-size}rem !important; + width: #{math.div(49, $base-font-size)}rem !important; height: 100%; left: 49px !important; // background-color: rgb(255, 95, 82); @@ -78,7 +80,7 @@ pre.CodeMirror-line { border-color: getThemifyVariable("ide-border-color"); } // left: 0 !important; - width: #{48 / $base-font-size}rem; + width: #{math.div(48, $base-font-size)}rem; } /* @@ -89,8 +91,8 @@ pre.CodeMirror-line { position: fixed; top: 0; left: 50%; - margin-left: -#{552/2 / $base-font-size}rem; - + margin-left: math.div(552 * 0.5, $base-font-size); + @media (max-width: 770px) { left: 0; right: 0; @@ -103,7 +105,7 @@ pre.CodeMirror-line { width: 580px; font-family: Montserrat, sans-serif; - padding: #{8 / $base-font-size}rem #{10 / $base-font-size}rem #{5 / $base-font-size}rem #{9 / $base-font-size}rem; + padding: #{math.div(8, $base-font-size)}rem #{math.div(10, $base-font-size)}rem #{math.div(5, $base-font-size)}rem #{math.div(9, $base-font-size)}rem; border-radius: 2px; @@ -121,7 +123,7 @@ pre.CodeMirror-line { } .Toggle-replace-btn-div { - height: #{40 / $base-font-size}rem; + height: #{math.div(40, $base-font-size)}rem; padding: 0; } @@ -131,9 +133,9 @@ pre.CodeMirror-line { } .CodeMirror-search-results { - margin: 0 #{20 / $base-font-size}rem; - width: #{75 / $base-font-size}rem; - font-size: #{12 / $base-font-size}rem; + margin: 0 #{math.div(20, $base-font-size)}rem; + width: #{math.div(75, $base-font-size)}rem; + font-size: #{math.div(12, $base-font-size)}rem; } .CodeMirror-find-controls { @@ -156,33 +158,33 @@ pre.CodeMirror-line { } .CodeMirror-replace-controls { display: flex; - margin-left: #{10 / $base-font-size}rem; + margin-left: #{math.div(10, $base-font-size)}rem; } .CodeMirror-replace-options { - width: #{552 / $base-font-size}rem; - height: #{65 / $base-font-size}rem; + width: #{math.div(552, $base-font-size)}rem; + height: #{math.div(65, $base-font-size)}rem; display: flex; justify-content: center; align-items: center; } .CodeMirror-replace-options button { - width: #{200 / $base-font-size}rem; + width: #{math.div(200, $base-font-size)}rem; } .CodeMirror-search-title { display: block; - margin-bottom: #{12 / $base-font-size}rem; + margin-bottom: #{math.div(12, $base-font-size)}rem; - font-size: #{21 / $base-font-size}rem; + font-size: #{math.div(21, $base-font-size)}rem; font-weight: bold; } .CodeMirror-search-field { display: block; width: 100%; - max-width: #{166 / $base-font-size}rem; - margin-bottom: #{4 / $base-font-size}rem; + max-width: #{math.div(166, $base-font-size)}rem; + margin-bottom: #{math.div(4, $base-font-size)}rem; @include themify() { color: getThemifyVariable("input-text-color"); background-color: getThemifyVariable("input-secondary-background-color"); @@ -200,7 +202,7 @@ pre.CodeMirror-line { .CodeMirror-search-count { display: block; - height: #{20 / $base-font-size}rem; + height: #{math.div(20, $base-font-size)}rem; text-align: right; } @@ -213,7 +215,7 @@ pre.CodeMirror-line { display: flex; justify-content: flex-end; align-items: center; - margin-left: #{10 / $base-font-size}rem; + margin-left: #{math.div(10, $base-font-size)}rem; @media (max-width: 579px) { display: none; @@ -225,17 +227,17 @@ pre.CodeMirror-line { .CodeMirror-word-button { @include themify() { // @extend %button; - padding: #{2 / $base-font-size}rem #{7 / $base-font-size}rem; + padding: #{math.div(2, $base-font-size)}rem #{math.div(7, $base-font-size)}rem; border: 2px solid transparent; &:hover { border-color: getThemifyVariable("button-border-color"); } } - width: #{35 / $base-font-size}rem; - height: #{35 / $base-font-size}rem; + width: #{math.div(35, $base-font-size)}rem; + height: #{math.div(35, $base-font-size)}rem; & + & { - margin-left: #{3 / $base-font-size}rem; + margin-left: #{math.div(3, $base-font-size)}rem; } word-break: keep-all; @@ -266,13 +268,13 @@ pre.CodeMirror-line { } .CodeMirror-search-button { - margin-right: #{10 / $base-font-size}rem; + margin-right: #{math.div(10, $base-font-size)}rem; } .CodeMirror-search-match { background: gold; - border-top: #{1 / $base-font-size}rem solid orange; - border-bottom: #{1 / $base-font-size}rem solid orange; + border-top: #{math.div(1, $base-font-size)}rem solid orange; + border-bottom: #{math.div(1, $base-font-size)}rem solid orange; box-sizing: border-box; opacity: 0.5; } @@ -354,7 +356,7 @@ pre.CodeMirror-line { vertical-align: middle; height: 0.85em; line-height: 0.7; - padding: 0 #{5 / $base-font-size}rem; + padding: 0 #{math.div(5, $base-font-size)}rem; font-family: serif; } @@ -369,7 +371,7 @@ pre.CodeMirror-line { } .editor-holder { - height: calc(100% - #{29 / $base-font-size}rem); + height: calc(100% - #{math.div(29, $base-font-size)}rem); width: 100%; position: absolute; @include themify() { @@ -381,23 +383,23 @@ pre.CodeMirror-line { } .editor__header { - height: #{29 / $base-font-size}rem; + height: #{math.div(29, $base-font-size)}rem; } .editor__file-name { @include themify() { color: getThemifyVariable("primary-text-color"); } - height: #{29 / $base-font-size}rem; - padding-top: #{7 / $base-font-size}rem; - padding-left: #{56 / $base-font-size}rem; - font-size: #{12 / $base-font-size}rem; + height: #{math.div(29, $base-font-size)}rem; + padding-top: #{math.div(7, $base-font-size)}rem; + padding-left: #{math.div(56, $base-font-size)}rem; + font-size: #{math.div(12, $base-font-size)}rem; display: flex; justify-content: space-between; } .editor__unsaved-changes { - margin-left: #{2 / $base-font-size}rem; + margin-left: #{math.div(2, $base-font-size)}rem; } /** Inline abbreviation preview */ @@ -413,8 +415,8 @@ pre.CodeMirror-line { } & .CodeMirror { height: auto; - max-width: #{400 / $base-font-size}rem; - max-height: #{300 / $base-font-size}rem; + max-width: #{math.div(400, $base-font-size)}rem; + max-height: #{math.div(300, $base-font-size)}rem; border: none; } } diff --git a/client/styles/components/_error-modal.scss b/client/styles/components/_error-modal.scss index aac87d1b12..c834b68c2a 100644 --- a/client/styles/components/_error-modal.scss +++ b/client/styles/components/_error-modal.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .error-modal { @extend %modal; display: flex; @@ -8,7 +10,7 @@ .error-modal__header { display: flex; justify-content: space-between; - padding: #{20 / $base-font-size}rem; + padding: #{math.div(20, $base-font-size)}rem; } .error-modal__exit-button { @@ -16,11 +18,11 @@ } .error-modal__content { - padding: #{20 / $base-font-size}rem; - padding-top: #{40 / $base-font-size}rem; - padding-bottom: #{60 / $base-font-size}rem; - max-width: #{500 / $base-font-size}rem; + padding: #{math.div(20, $base-font-size)}rem; + padding-top: #{math.div(40, $base-font-size)}rem; + padding-bottom: #{math.div(60, $base-font-size)}rem; + max-width: #{math.div(500, $base-font-size)}rem; & p { - font-size: #{16 / $base-font-size}rem; + font-size: #{math.div(16, $base-font-size)}rem; } } diff --git a/client/styles/components/_feedback.scss b/client/styles/components/_feedback.scss index 8fad23ab38..47039b1dba 100644 --- a/client/styles/components/_feedback.scss +++ b/client/styles/components/_feedback.scss @@ -1,30 +1,32 @@ +@use "sass:math"; + .feedback__content { display: flex; - width: #{650 / $base-font-size}rem; - padding-top: #{17 / $base-font-size}rem; - padding-right: #{20 / $base-font-size}rem; - padding-bottom: #{20 / $base-font-size}rem; - padding-left: #{20 / $base-font-size}rem; + width: #{math.div(650, $base-font-size)}rem; + padding-top: #{math.div(17, $base-font-size)}rem; + padding-right: #{math.div(20, $base-font-size)}rem; + padding-bottom: #{math.div(20, $base-font-size)}rem; + padding-left: #{math.div(20, $base-font-size)}rem; } .feedback__content-pane { flex: 1; & + & { - margin-left: #{20 / $base-font-size}rem; + margin-left: #{math.div(20, $base-font-size)}rem; } } .feedback__content-pane-header { - margin-bottom: #{20 / $base-font-size}rem; + margin-bottom: #{math.div(20, $base-font-size)}rem; } .feedback__content-pane-copy { - margin-bottom: #{20 / $base-font-size}rem; + margin-bottom: #{math.div(20, $base-font-size)}rem; } .feedback__github-logo svg { - width: #{12 / $base-font-size}rem; - height: #{12 / $base-font-size}rem; + width: #{math.div(12, $base-font-size)}rem; + height: #{math.div(12, $base-font-size)}rem; @include themify() { fill: getThemifyVariable('inactive-text-color'); } diff --git a/client/styles/components/_form-container.scss b/client/styles/components/_form-container.scss index 8dce64ed88..0c48b7070b 100644 --- a/client/styles/components/_form-container.scss +++ b/client/styles/components/_form-container.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .form-container { text-align: center; display: flex; @@ -22,7 +24,7 @@ .form-container__header { width: 100%; - padding: #{15 / $base-font-size}rem #{34 / $base-font-size}rem; + padding: #{math.div(15, $base-font-size)}rem #{math.div(34, $base-font-size)}rem; display: flex; justify-content: space-between; } @@ -59,7 +61,7 @@ } .form-container__divider { - padding: #{20 / $base-font-size}rem 0; + padding: #{math.div(20, $base-font-size)}rem 0; @media (max-width: 770px) { text-align: center; @@ -75,7 +77,7 @@ } .form-container__stack > * + * { - margin-top: #{10 / $base-font-size}rem; + margin-top: #{math.div(10, $base-font-size)}rem; } .form__navigation-options a { font-weight: bold; diff --git a/client/styles/components/_forms.scss b/client/styles/components/_forms.scss index d71796e5da..6daa1fa67a 100644 --- a/client/styles/components/_forms.scss +++ b/client/styles/components/_forms.scss @@ -1,8 +1,10 @@ +@use "sass:math"; + .form-error { display: block; - padding-top: #{4 / $base-font-size}rem; - width: #{300 / $base-font-size}rem; - font-size: #{12 / $base-font-size}rem; + padding-top: #{math.div(4, $base-font-size)}rem; + width: #{math.div(300, $base-font-size)}rem; + font-size: #{math.div(12, $base-font-size)}rem; text-align: left; @include themify() { color: getThemifyVariable("error-color"); @@ -10,7 +12,7 @@ } .form > * + * { - margin-top: #{12 / $base-font-size}rem; + margin-top: #{math.div(12, $base-font-size)}rem; } .form--inline { @@ -19,32 +21,32 @@ } .form__cancel-button { - margin-top: #{10 / $base-font-size}rem; - font-size: #{12 / $base-font-size}rem; + margin-top: #{math.div(10, $base-font-size)}rem; + font-size: #{math.div(12, $base-font-size)}rem; } .form__navigation-options { - margin-top: #{16 / $base-font-size}rem; - font-size: #{12 / $base-font-size}rem; + margin-top: #{math.div(16, $base-font-size)}rem; + font-size: #{math.div(12, $base-font-size)}rem; @include themify() { color: getThemifyVariable("form-navigation-options-color"); } @media (max-width: 550px) { text-align: center; - margin: #{12 / $base-font-size}rem; + margin: #{math.div(12, $base-font-size)}rem; } } .form__legend { - font-size: #{21 / $base-font-size}rem; + font-size: #{math.div(21, $base-font-size)}rem; font-weight: bold; } .form__label { - font-size: #{12 / $base-font-size}rem; - margin-top: #{25 / $base-font-size}rem; - margin-bottom: #{7 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; + margin-top: #{math.div(25, $base-font-size)}rem; + margin-bottom: #{math.div(7, $base-font-size)}rem; display: block; @include themify() { color: getThemifyVariable("form-secondary-title-color"); @@ -56,10 +58,10 @@ } .form__input { - min-width: #{355 / $base-font-size}rem; + min-width: #{math.div(355, $base-font-size)}rem; width: 100%; - height: #{40 / $base-font-size}rem; - font-size: #{16 / $base-font-size}rem; + height: #{math.div(40, $base-font-size)}rem; + font-size: #{math.div(16, $base-font-size)}rem; @include themify() { color: getThemifyVariable("form-input-text-color"); background-color: getThemifyVariable("input-background-color"); @@ -83,7 +85,7 @@ .form__context { text-align: left; - margin-top: #{15 / $base-font-size}rem; + margin-top: #{math.div(15, $base-font-size)}rem; } .form__status { diff --git a/client/styles/components/_hints.scss b/client/styles/components/_hints.scss index 4503a44f24..6c01abb721 100644 --- a/client/styles/components/_hints.scss +++ b/client/styles/components/_hints.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .CodeMirror-hints { position: absolute; z-index: 10; @@ -7,8 +9,8 @@ margin: 0; padding: 0; - box-shadow: 0 0 #{18 / $base-font-size}rem 0 rgba(0, 0, 0, 0.16); - border: #{1 / $base-font-size}rem solid #A6A6A6; + box-shadow: 0 0 #{math.div(18, $base-font-size)}rem 0 rgba(0, 0, 0, 0.16); + border: #{math.div(1, $base-font-size)}rem solid #A6A6A6; font-size: 100%; font-family: Inconsolata, monospace; @@ -24,7 +26,7 @@ .CodeMirror-hint { color: getThemifyVariable('hint-text-color'); - border-bottom: #{1 / $base-font-size}rem solid getThemifyVariable('hint-item-border-bottom-color'); + border-bottom: #{math.div(1, $base-font-size)}rem solid getThemifyVariable('hint-item-border-bottom-color'); } .hint-name { @@ -45,7 +47,7 @@ .hint-type { color: getThemifyVariable('hint-type-text-color'); - margin-right: #{10 / $base-font-size}rem; + margin-right: #{math.div(10, $base-font-size)}rem; } a { @@ -57,8 +59,8 @@ } &.focused-hint-link { - outline: #{3 / $base-font-size}rem solid getThemifyVariable('hint-arrow-focus-outline-color'); - outline-offset: #{-3 / $base-font-size}rem; + outline: #{math.div(3, $base-font-size)}rem solid getThemifyVariable('hint-arrow-focus-outline-color'); + outline-offset: #{math.div(-3, $base-font-size)}rem; } } @@ -158,7 +160,7 @@ top: 0; right: 0; height: 100%; - width: calc(2rem - #{1 / $base-font-size}rem); + width: calc(2rem - #{math.div(1, $base-font-size)}rem); margin: 0; padding-top: 0.4rem; font-size: 1.2rem; diff --git a/client/styles/components/_keyboard-shortcuts.scss b/client/styles/components/_keyboard-shortcuts.scss index 1b621d7b94..4d54a096be 100644 --- a/client/styles/components/_keyboard-shortcuts.scss +++ b/client/styles/components/_keyboard-shortcuts.scss @@ -1,8 +1,10 @@ +@use "sass:math"; + .keyboard-shortcuts { - padding: #{20 / $base-font-size}rem; - margin-right: #{20 / $base-font-size}rem; - padding-bottom: #{40 / $base-font-size}rem; - width: #{450 / $base-font-size}rem; + padding: #{math.div(20, $base-font-size)}rem; + margin-right: #{math.div(20, $base-font-size)}rem; + padding-bottom: #{math.div(40, $base-font-size)}rem; + width: #{math.div(450, $base-font-size)}rem; overflow-y: auto; } @@ -14,7 +16,7 @@ .keyboard-shortcut-item { display: flex; & + & { - margin-top: #{10 / $base-font-size}rem; + margin-top: #{math.div(10, $base-font-size)}rem; } align-items: baseline; } @@ -22,8 +24,8 @@ .keyboard-shortcut__command { font-weight: bold; text-align: right; - margin-right: #{10 / $base-font-size}rem; - padding: #{3 / $base-font-size}rem; + margin-right: #{math.div(10, $base-font-size)}rem; + padding: #{math.div(3, $base-font-size)}rem; @include themify { border: 1px solid getThemifyVariable("button-border-color"); border-radius: 3px; @@ -31,20 +33,20 @@ } .keyboard-shortcuts__title { - padding-bottom: #{10 / $base-font-size}rem; + padding-bottom: #{math.div(10, $base-font-size)}rem; } .keyboard-shortcuts__description { - padding-bottom: #{10 / $base-font-size}rem; + padding-bottom: #{math.div(10, $base-font-size)}rem; } .keyboard-shortcuts__list:not(:last-of-type) { - padding-bottom: #{10 / $base-font-size}rem; + padding-bottom: #{math.div(10, $base-font-size)}rem; } .keyboard-shortcuts__title:not(:first-of-type) { @include themify() { border-top: 1px dashed getThemifyVariable("button-border-color"); - padding-top: #{10 / $base-font-size}rem; + padding-top: #{math.div(10, $base-font-size)}rem; } } diff --git a/client/styles/components/_loader.scss b/client/styles/components/_loader.scss index 31af13942d..b49160ec63 100644 --- a/client/styles/components/_loader.scss +++ b/client/styles/components/_loader.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .loader-container { width: 100%; height: 100%; @@ -11,8 +13,8 @@ .loader { - width: #{80 / $base-font-size }rem; - height: #{80 / $base-font-size}rem; + width: #{math.div(80, $base-font-size) }rem; + height: #{math.div(80, $base-font-size)}rem; position: relative; } diff --git a/client/styles/components/_modal.scss b/client/styles/components/_modal.scss index e447f6c319..9942b9887e 100644 --- a/client/styles/components/_modal.scss +++ b/client/styles/components/_modal.scss @@ -1,6 +1,8 @@ +@use "sass:math"; + .modal { position: absolute; - top: #{60 / $base-font-size}rem; + top: #{math.div(60, $base-font-size)}rem; right: 50%; transform: translate(50%, 0); z-index: 100; @@ -9,12 +11,11 @@ .modal-content { @extend %modal; - min-height: #{150 / $base-font-size}rem; - padding: #{20 / $base-font-size}rem; - + min-height: #{math.div(150, $base-font-size)}rem; + padding: #{math.div(20, $base-font-size)}rem; + @media (min-width: 770px) { - width: #{500 / $base-font-size}rem; - + width: #{math.div(500, $base-font-size)}rem; } .modal--reduced & { @@ -24,7 +25,7 @@ .modal-content-folder { @extend .modal-content; - height: #{150 / $base-font-size}rem; + height: #{math.div(150, $base-font-size)}rem; } .modal__exit-button { @@ -34,7 +35,7 @@ .modal__header { display: flex; justify-content: space-between; - margin-bottom: #{20 / $base-font-size}rem; + margin-bottom: #{math.div(20, $base-font-size)}rem; } .new-folder-form__input-wrapper, .new-file-form__input-wrapper { @@ -46,11 +47,11 @@ } .new-file-form__name-input, .new-folder-form__name-input { - margin-right: #{10 / $base-font-size}rem; + margin-right: #{math.div(10, $base-font-size)}rem; flex: 1; } .modal__divider { text-align: center; - margin: #{20 / $base-font-size}rem 0; + margin: #{math.div(20, $base-font-size)}rem 0; } diff --git a/client/styles/components/_nav.scss b/client/styles/components/_nav.scss index 69f267955e..84d5ae0999 100644 --- a/client/styles/components/_nav.scss +++ b/client/styles/components/_nav.scss @@ -1,5 +1,7 @@ +@use "sass:math"; + .nav { - height: #{42 / $base-font-size}rem; + height: #{math.div(42, $base-font-size)}rem; display: flex; flex-direction: row; justify-content: space-between; @@ -44,12 +46,12 @@ height: 100%; & button { - padding: #{12 / $base-font-size}rem #{10 / $base-font-size}rem; + padding: #{math.div(12, $base-font-size)}rem #{math.div(10, $base-font-size)}rem; } } .nav__item--no-icon { - padding-left: #{15 / $base-font-size}rem; + padding-left: #{math.div(15, $base-font-size)}rem; } .nav__item-header-triangle polygon, @@ -92,7 +94,7 @@ } .nav__item-header-triangle { - margin-left: #{5 / $base-font-size}rem; + margin-left: #{math.div(5, $base-font-size)}rem; } .nav__dropdown { @@ -102,7 +104,7 @@ } .nav__item-header-triangle { - margin-left: #{5 / $base-font-size}rem; + margin-left: #{math.div(5, $base-font-size)}rem; } .nav__dropdown { @@ -114,17 +116,17 @@ } .nav__items-right { - padding-right: #{20 / $base-font-size}rem; + padding-right: #{math.div(20, $base-font-size)}rem; & .nav__dropdown { - width: #{125 / $base-font-size}rem; + width: #{math.div(125, $base-font-size)}rem; } } .nav__item-spacer { @include themify() { color: map-get($theme-map, 'inactive-text-color'); - margin-left: #{8 / $base-font-size}rem; + margin-left: #{math.div(8, $base-font-size)}rem; } } @@ -135,7 +137,7 @@ } .nav__auth-button { - padding: #{10 / $base-font-size}rem; + padding: #{math.div(10, $base-font-size)}rem; } // .nav__dropdown button { @@ -155,8 +157,8 @@ .nav__item-logo { position: relative; - height: #{42 / $base-font-size}rem; - width: #{56 / $base-font-size}rem; + height: #{math.div(42, $base-font-size)}rem; + width: #{math.div(56, $base-font-size)}rem; & span { position: absolute; @@ -183,7 +185,7 @@ .nav__keyboard-shortcut { - font-size: #{12 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; font-family: Inconsololata, monospace; @include themify() { @@ -204,7 +206,7 @@ fill: getThemifyVariable('inactive-text-color'); } } - margin-right: #{5 / $base-font-size}rem; + margin-right: #{math.div(5, $base-font-size)}rem; } .nav__back-link { diff --git a/client/styles/components/_new-password.scss b/client/styles/components/_new-password.scss index fcd3a83931..735e0ff76d 100644 --- a/client/styles/components/_new-password.scss +++ b/client/styles/components/_new-password.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .new-password-form { .new-password--invalid & { display: none; @@ -8,8 +10,8 @@ display: none; .new-password--invalid & { display: block; - margin-top: #{40 / $base-font-size}rem; - margin-bottom: #{80 / $base-font-size}rem; + margin-top: #{math.div(40, $base-font-size)}rem; + margin-bottom: #{math.div(80, $base-font-size)}rem; @include themify() { color: getThemifyVariable('form-navigation-options-color'); } diff --git a/client/styles/components/_overlay.scss b/client/styles/components/_overlay.scss index 089fa4d824..8c6c2da757 100644 --- a/client/styles/components/_overlay.scss +++ b/client/styles/components/_overlay.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .overlay { position: fixed; top: 0; @@ -25,7 +27,7 @@ max-height: 80%; max-width: 80%; position: relative; - padding-bottom: #{25 / $base-font-size}rem; + padding-bottom: #{math.div(25, $base-font-size)}rem; @media (max-width: 650px) { max-width: 100%; @@ -38,7 +40,7 @@ .overlay__header { display: flex; justify-content: space-between; - padding: #{20 / $base-font-size}rem; + padding: #{math.div(20, $base-font-size)}rem; } .overlay__actions { @@ -46,12 +48,12 @@ } .overlay__title { - font-size: #{21 / $base-font-size}rem; + font-size: #{math.div(21, $base-font-size)}rem; } .overlay__close-button { @include icon(); - padding: #{3 / $base-font-size}rem 0 #{3 / $base-font-size}rem #{10 / $base-font-size}rem; + padding: #{math.div(3, $base-font-size)}rem 0 #{math.div(3, $base-font-size)}rem #{math.div(10, $base-font-size)}rem; } /* Fixed height overlay */ diff --git a/client/styles/components/_p5-contrast-codemirror-theme.scss b/client/styles/components/_p5-contrast-codemirror-theme.scss index b5ae00d991..6aae60e051 100644 --- a/client/styles/components/_p5-contrast-codemirror-theme.scss +++ b/client/styles/components/_p5-contrast-codemirror-theme.scss @@ -10,6 +10,8 @@ //light gray: #f4f4f4 //dark gray: #b5b5b5 +@use "sass:math"; + $p5-contrast-black: #1C1C1C; $p5-contrast-gray: #A0A0A0; $p5-contrast-white: #FDFDFD; @@ -143,5 +145,5 @@ $p5-contrast-activeline: #999999; .cm-s-p5-contrast .cm-searching.CodeMirror-selectedtext { // background-color: $medium-dark; - outline: #{1 / $base-font-size}rem solid $p5-contrast-white; + outline: #{math.div(1, $base-font-size)}rem solid $p5-contrast-white; } diff --git a/client/styles/components/_preferences.scss b/client/styles/components/_preferences.scss index 808e4128cb..e0c868041a 100644 --- a/client/styles/components/_preferences.scss +++ b/client/styles/components/_preferences.scss @@ -1,15 +1,16 @@ +@use "sass:math"; + .preferences { width: 100%; - width: #{640 / $base-font-size}rem; + width: #{math.div(640, $base-font-size)}rem; max-width: 100%; max-height: 100%; z-index: 9999; - padding: 0 #{20 / $base-font-size}rem #{2 / $base-font-size}rem #{20 / - $base-font-size}rem; + padding: 0 #{math.div(20, $base-font-size)}rem #{math.div(2, $base-font-size)}rem #{math.div(20, $base-font-size)}rem; display: flex; flex-direction: column; outline: none; - height: calc(80vh - #{65 / $base-font-size}rem); + height: calc(80vh - #{math.div(65, $base-font-size)}rem); & .react-tabs { max-height: 100%; display: flex; @@ -18,10 +19,9 @@ & .react-tabs__tab-panel { overflow-y: auto; } - + @media (min-width: 770px) { - max-height: #{460 / $base-font-size}rem; - + max-height: #{math.div(460, $base-font-size)}rem; } } @@ -29,13 +29,13 @@ .preference__plus-button { @include themify() { @extend %preferences-button; - width: #{32 / $base-font-size}rem; - height: #{32 / $base-font-size}rem; - margin-left: #{6 / $base-font-size}rem; - margin-right: #{10 / $base-font-size}rem; - line-height: #{40 / $base-font-size}rem; + width: #{math.div(32, $base-font-size)}rem; + height: #{math.div(32, $base-font-size)}rem; + margin-left: #{math.div(6, $base-font-size)}rem; + margin-right: #{math.div(10, $base-font-size)}rem; + line-height: #{math.div(40, $base-font-size)}rem; & svg { - width: #{10 / $base-font-size}rem; + width: #{math.div(10, $base-font-size)}rem; } } } @@ -43,7 +43,7 @@ .preference { display: flex; flex-wrap: wrap; - padding-bottom: #{12 / $base-font-size}rem; + padding-bottom: #{math.div(12, $base-font-size)}rem; & + & { @include themify() { border-top: 1px dashed getThemifyVariable("button-border-color"); @@ -53,9 +53,9 @@ .preference__title { width: 100%; - font-size: #{16 / $base-font-size}rem; - margin-top: #{13 / $base-font-size}rem; - margin-bottom: #{7 / $base-font-size}rem; + font-size: #{math.div(16, $base-font-size)}rem; + margin-top: #{math.div(13, $base-font-size)}rem; + margin-bottom: #{math.div(7, $base-font-size)}rem; } .preference__subtitle { @@ -63,13 +63,13 @@ color: getThemifyVariable("inactive-text-color"); } width: 100%; - margin-bottom: #{10 / $base-font-size}rem; + margin-bottom: #{math.div(10, $base-font-size)}rem; margin-top: 0; } .preference__value { @include themify() { - border: #{1 / $base-font-size}rem solid + border: #{math.div(1, $base-font-size)}rem solid getThemifyVariable("button-border-color"); // background-color: getThemifyVariable("button-background-color"); color: getThemifyVariable("input-text-color"); @@ -78,11 +78,11 @@ text-align: center; border-radius: 0%; outline: none; - width: #{44 / $base-font-size}rem; - height: #{40 / $base-font-size}rem; - margin: 0 #{20 / $base-font-size}rem; + width: #{math.div(44, $base-font-size)}rem; + height: #{math.div(40, $base-font-size)}rem; + margin: 0 #{math.div(20, $base-font-size)}rem; padding: 0; - font-size: #{16 / $base-font-size}rem; + font-size: #{math.div(16, $base-font-size)}rem; font-family: Inconsolata; } @@ -93,14 +93,14 @@ color: getThemifyVariable("heavy-text-color"); } } - margin: #{-15 / $base-font-size}rem 0 0 #{-5 / $base-font-size}rem; - font-size: #{9 / $base-font-size}rem; - width: #{44 / $base-font-size}rem; + margin: #{math.div(-15, $base-font-size)}rem 0 0 #{math.div(-5, $base-font-size)}rem; + font-size: #{math.div(9, $base-font-size)}rem; + width: #{math.div(44, $base-font-size)}rem; } .react-tabs__tab--selected { @include themify() { - border-bottom: #{4 / $base-font-size}rem solid + border-bottom: #{math.div(4, $base-font-size)}rem solid getThemifyVariable("button-background-hover-color"); } } @@ -116,13 +116,13 @@ color: black; display: flex; align-items: center; - border-bottom: #{4 / $base-font-size}rem solid transparent; + border-bottom: #{math.div(4, $base-font-size)}rem solid transparent; & + & { - margin-left: #{45 / $base-font-size}rem; + margin-left: #{math.div(45, $base-font-size)}rem; } &:hover { @include themify() { - border-bottom: #{4 / $base-font-size}rem solid + border-bottom: #{math.div(4, $base-font-size)}rem solid getThemifyVariable("button-background-hover-color"); } } @@ -141,7 +141,7 @@ input[type="number"]::-webkit-outer-spin-button { .preference__option { @include themify() { @extend %preference-option; - margin-right: #{25 / $base-font-size}rem; + margin-right: #{math.div(25, $base-font-size)}rem; } display: flex; flex-wrap: wrap; @@ -159,7 +159,7 @@ input[type="number"]::-webkit-outer-spin-button { color: getThemifyVariable("button-background-hover-color"); } } - margin-left: #{30 / $base-font-size}rem; + margin-left: #{math.div(30, $base-font-size)}rem; } .preference__options { @@ -180,6 +180,6 @@ input[type="number"]::-webkit-outer-spin-button { } .preference__option.preference__canvas:not(:last-child) { - padding-right: #{14 / $base-font-size}rem; + padding-right: #{math.div(14, $base-font-size)}rem; } diff --git a/client/styles/components/_preview-frame.scss b/client/styles/components/_preview-frame.scss index 9de4ec7d8c..f56a0d9d27 100644 --- a/client/styles/components/_preview-frame.scss +++ b/client/styles/components/_preview-frame.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .preview-frame-holder { display: flex; flex-direction: column; @@ -13,17 +15,17 @@ } .preview-frame__header { - height: #{29 / $base-font-size}rem; + height: #{math.div(29, $base-font-size)}rem; } .preview-frame__title { @include themify() { color: getThemifyVariable('secondary-text-color'); } - height: #{29 / $base-font-size}rem; - padding-top: #{7 / $base-font-size}rem; - padding-left: #{5 / $base-font-size}rem; - font-size: #{12 / $base-font-size}rem; + height: #{math.div(29, $base-font-size)}rem; + padding-top: #{math.div(7, $base-font-size)}rem; + padding-left: #{math.div(5, $base-font-size)}rem; + font-size: #{math.div(12, $base-font-size)}rem; font-weight: normal; } diff --git a/client/styles/components/_preview-nav.scss b/client/styles/components/_preview-nav.scss index 47b39437f4..82cb626cc5 100644 --- a/client/styles/components/_preview-nav.scss +++ b/client/styles/components/_preview-nav.scss @@ -1,7 +1,9 @@ +@use "sass:math"; + .preview-nav__editor-svg { & svg { - width: #{22 / $base-font-size}rem; - height: #{22 / $base-font-size}rem; + width: #{math.div(22, $base-font-size)}rem; + height: #{math.div(22, $base-font-size)}rem; @include themify() { fill: getThemifyVariable('button-nav-inactive-color'); } @@ -15,6 +17,6 @@ .preview-nav { .nav__item { - margin-left: #{5 / $base-font-size}rem; + margin-left: #{math.div(5, $base-font-size)}rem; } } diff --git a/client/styles/components/_quick-add.scss b/client/styles/components/_quick-add.scss index 70a097fa1e..1a47b992c5 100644 --- a/client/styles/components/_quick-add.scss +++ b/client/styles/components/_quick-add.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .quick-add { width: auto; overflow-y: auto; @@ -10,8 +12,8 @@ .quick-add__item { display: flex; align-items: center; - height: #{64 / $base-font-size}rem; - padding-right: #{24 / $base-font-size}rem; + height: #{math.div(64, $base-font-size)}rem; + padding-right: #{math.div(24, $base-font-size)}rem; button, a { @include themify() { @@ -37,9 +39,9 @@ .quick-add__icon { display: inline-block; - margin-right:#{15 / $base-font-size}rem; - width:#{35 / $base-font-size}rem; - height:#{35 / $base-font-size}rem; + margin-right:#{math.div(15, $base-font-size)}rem; + width:#{math.div(35, $base-font-size)}rem; + height:#{math.div(35, $base-font-size)}rem; @include icon(); @include themify() { // icon graphic @@ -53,8 +55,8 @@ } & svg { - width:#{35 / $base-font-size}rem; - height:#{35 / $base-font-size}rem; + width:#{math.div(35, $base-font-size)}rem; + height:#{math.div(35, $base-font-size)}rem; } } } diff --git a/client/styles/components/_reset-password.scss b/client/styles/components/_reset-password.scss index 47109a3af9..de0af012f2 100644 --- a/client/styles/components/_reset-password.scss +++ b/client/styles/components/_reset-password.scss @@ -1,14 +1,16 @@ +@use "sass:math"; + .reset-password__submitted { - width: #{360 / $base-font-size}rem; + width: #{math.div(360, $base-font-size)}rem; display: none; text-align: left; - font-size: #{12 / $base-font-size}rem; - margin-top: #{10 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; + margin-top: #{math.div(10, $base-font-size)}rem; @include themify() { color: getThemifyVariable('form-navigation-options-color'); } - padding-right: #{30 / $base-font-size}rem; - padding-left: #{39 / $base-font-size}rem; + padding-right: #{math.div(30, $base-font-size)}rem; + padding-left: #{math.div(39, $base-font-size)}rem; .reset-password--submitted & { display: block; } diff --git a/client/styles/components/_searchbar.scss b/client/styles/components/_searchbar.scss index 962542d559..78e065ab41 100644 --- a/client/styles/components/_searchbar.scss +++ b/client/styles/components/_searchbar.scss @@ -1,14 +1,16 @@ +@use "sass:math"; + .searchbar { position: relative; display: flex; } .searchbar__input { - width: #{240 / $base-font-size}rem; - height: #{36 / $base-font-size}rem; + width: #{math.div(240, $base-font-size)}rem; + height: #{math.div(36, $base-font-size)}rem; border: solid 0.5px; - padding-left: #{36 / $base-font-size}rem; - padding-right: #{38 / $base-font-size}rem; + padding-left: #{math.div(36, $base-font-size)}rem; + padding-right: #{math.div(38, $base-font-size)}rem; @include themify() { border-color: getThemifyVariable('input-border-color'); background-color: getThemifyVariable('input-background-color'); @@ -17,8 +19,8 @@ div.searchbar__button { background-color: unset; - width: #{31 / $base-font-size}rem; - height: #{36 / $base-font-size}rem; + width: #{math.div(31, $base-font-size)}rem; + height: #{math.div(36, $base-font-size)}rem; position: absolute; display: flex; justify-content: center; @@ -34,10 +36,10 @@ div.searchbar__button { .searchbar__icon { display: inline-block; & svg { - width: #{22 / $base-font-size}rem; - height: #{27 / $base-font-size}rem; + width: #{math.div(22, $base-font-size)}rem; + height: #{math.div(27, $base-font-size)}rem; transform: scaleX(-1); - padding-top: #{3 / $base-font-size}rem; + padding-top: #{math.div(3, $base-font-size)}rem; } & path { @include themify() { @@ -48,13 +50,13 @@ div.searchbar__button { .searchbar__clear-button { font-weight: bold; - font-size: #{10 / $base-font-size}rem; + font-size: #{math.div(10, $base-font-size)}rem; text-align: center; border-radius: 2px; align-self: center; position: absolute; - padding: #{3 / $base-font-size}rem #{4 / $base-font-size}rem; - right: #{7 / $base-font-size}rem; + padding: #{math.div(3, $base-font-size)}rem #{math.div(4, $base-font-size)}rem; + right: #{math.div(7, $base-font-size)}rem; @include themify() { color: getThemifyVariable('primary-text-color'); background-color: getThemifyVariable('search-clear-background-color'); diff --git a/client/styles/components/_share.scss b/client/styles/components/_share.scss index 8004ac5b60..074fa22f2c 100644 --- a/client/styles/components/_share.scss +++ b/client/styles/components/_share.scss @@ -1,13 +1,15 @@ +@use "sass:math"; + .share-modal { - padding: #{20 / $base-font-size}rem; + padding: #{math.div(20, $base-font-size)}rem; padding-top: 0; - width: #{500 / $base-font-size}rem; + width: #{math.div(500, $base-font-size)}rem; max-width: 100%; } .share-modal__project-name { - padding-bottom: #{30 / $base-font-size}rem; - font-size: #{16 / $base-font-size}rem; + padding-bottom: #{math.div(30, $base-font-size)}rem; + font-size: #{math.div(16, $base-font-size)}rem; } .share-modal__header { @@ -19,5 +21,5 @@ width: 100%; display: flex; flex-wrap: wrap; - padding: #{10 / $base-font-size}rem 0; + padding: #{math.div(10, $base-font-size)}rem 0; } \ No newline at end of file diff --git a/client/styles/components/_sidebar.scss b/client/styles/components/_sidebar.scss index 1e398fe875..1f1d5972e6 100644 --- a/client/styles/components/_sidebar.scss +++ b/client/styles/components/_sidebar.scss @@ -1,19 +1,21 @@ +@use "sass:math"; + .sidebar { display: flex; flex-flow: column; } .sidebar__header { - padding: #{8 / $base-font-size}rem #{12 / $base-font-size}rem; + padding: #{math.div(8, $base-font-size)}rem #{math.div(12, $base-font-size)}rem; display: flex; justify-content: space-between; align-items: center; - min-height: #{29 / $base-font-size}rem; + min-height: #{math.div(29, $base-font-size)}rem; position: relative; } .sidebar__title { - font-size: #{16 / $base-font-size}rem; + font-size: #{math.div(16, $base-font-size)}rem; font-weight: 500; display: inline-block; .sidebar--contracted & { @@ -24,13 +26,13 @@ } .sidebar__add { - padding: #{2 / $base-font-size}rem; + padding: #{math.div(2, $base-font-size)}rem; display: flex; align-items: center; justify-content: center; & svg { - width: #{18 / $base-font-size}rem; - height: #{18 / $base-font-size}rem; + width: #{math.div(18, $base-font-size)}rem; + height: #{math.div(18, $base-font-size)}rem; } @include themify() { background-color: getThemifyVariable('ide-border-color'); @@ -54,7 +56,7 @@ .sidebar__root-item { position: relative; overflow-y: auto; - padding-top: #{6 / $base-font-size}rem; + padding-top: #{math.div(6, $base-font-size)}rem; flex: 1 1 auto; @media (min-width: 770px) { @include themify() { @@ -69,11 +71,11 @@ .file-item__children { display: flex; flex-direction: column; - gap: #{4 / $base-font-size}rem; + gap: #{math.div(4, $base-font-size)}rem; } .sidebar__file-item { - font-size: #{12 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; cursor: pointer; position: relative; @include themify() { @@ -90,7 +92,7 @@ display: flex; align-items: center; > button { - padding-left: #{1 / $base-font-size}rem; + padding-left: #{math.div(1, $base-font-size)}rem; } } @@ -100,15 +102,15 @@ .file-item__spacer { flex-shrink: 0; .sidebar__file-item & { - width: #{19 / $base-font-size}rem; + width: #{math.div(19, $base-font-size)}rem; .sidebar__file-item & { - width: #{39 / $base-font-size}rem; + width: #{math.div(39, $base-font-size)}rem; .sidebar__file-item & { - width: #{59 / $base-font-size}rem; + width: #{math.div(59, $base-font-size)}rem; .sidebar__file-item & { - width: #{79 / $base-font-size}rem; + width: #{math.div(79, $base-font-size)}rem; .sidebar__file-item & { - width: #{99 / $base-font-size}rem; + width: #{math.div(99, $base-font-size)}rem; } } } @@ -133,7 +135,7 @@ overflow-x: hidden; white-space: nowrap; text-overflow: ellipsis; - min-width: #{7 / $base-font-size}rem; + min-width: #{math.div(7, $base-font-size)}rem; white-space: pre; } @@ -141,16 +143,16 @@ display: flex; width: 100%; overflow: hidden; - min-width: #{50 / $base-font-size}rem; + min-width: #{math.div(50, $base-font-size)}rem; white-space: nowrap; text-align: left; } .sidebar__file-item-name { - padding: #{4 / $base-font-size}rem 0; - padding-right: #{25 / $base-font-size}rem; + padding: #{math.div(4, $base-font-size)}rem 0; + padding-right: #{math.div(25, $base-font-size)}rem; font-family: Inconsolata, monospace; - font-size: #{15 / $base-font-size}rem; + font-size: #{math.div(15, $base-font-size)}rem; overflow: hidden; .sidebar__file-item--editing & { display: none; @@ -170,11 +172,11 @@ } .sidebar__file-item-show-options { - width: #{20 / $base-font-size}rem; - height: #{20 / $base-font-size}rem; + width: #{math.div(20, $base-font-size)}rem; + height: #{math.div(20, $base-font-size)}rem; @include icon(); @include themify() { - margin-right: #{5 / $base-font-size}rem; + margin-right: #{math.div(5, $base-font-size)}rem; } display: none; position: absolute; @@ -192,7 +194,7 @@ } } & svg { - width: #{10 / $base-font-size}rem; + width: #{math.div(10, $base-font-size)}rem; } .sidebar__file-item--open > .file-item__content & { display: inline-block; @@ -203,7 +205,7 @@ @extend %dropdown-open-right; display: none; width: 100%; - max-width: #{180 / $base-font-size}rem; + max-width: #{math.div(180, $base-font-size)}rem; .sidebar__file-item--open > .file-item__content & { display: flex; } @@ -213,9 +215,9 @@ display: none; padding: 0; border: 0; - width: calc(100% - #{63 / $base-font-size}rem); + width: calc(100% - #{math.div(63, $base-font-size)}rem); font-family: Inconsolata, monospace; - font-size: #{14 / $base-font-size}rem; + font-size: #{math.div(14, $base-font-size)}rem; .sidebar__file-item--editing & { display: inline-block; } @@ -225,10 +227,10 @@ .sidebar__contract { @include icon(); position: absolute; - top: #{2 / $base-font-size}rem; - left: #{0 / $base-font-size}rem; - height: #{25 / $base-font-size}rem; - width: #{49 / $base-font-size}rem; + top: #{math.div(2, $base-font-size)}rem; + left: #{math.div(0, $base-font-size)}rem; + height: #{math.div(25, $base-font-size)}rem; + width: #{math.div(49, $base-font-size)}rem; border-radius: 2px; display: flex; justify-content: center; @@ -276,20 +278,20 @@ } .sidebar__folder-icon { - padding: #{4 / $base-font-size}rem 0; - margin-right: #{5 / $base-font-size}rem; + padding: #{math.div(4, $base-font-size)}rem 0; + margin-right: #{math.div(5, $base-font-size)}rem; & path { @include themify() { fill: map-get($theme-map, 'primary-text-color'); } } & svg { - width: #{10 / $base-font-size}rem; + width: #{math.div(10, $base-font-size)}rem; } } .sidebar__file-item-icon { - margin-right: #{5 / $base-font-size}rem; + margin-right: #{math.div(5, $base-font-size)}rem; display: flex; align-items: center; & path { @@ -325,7 +327,7 @@ @extend %dropdown-open-right; display: none; width: 100%; - max-width: #{180 / $base-font-size}rem; + max-width: #{math.div(180, $base-font-size)}rem; .sidebar--project-options & { display: flex; } diff --git a/client/styles/components/_sketch-list.scss b/client/styles/components/_sketch-list.scss index c577552aea..a8edbe5188 100644 --- a/client/styles/components/_sketch-list.scss +++ b/client/styles/components/_sketch-list.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + .sketches-table-container { overflow-y: auto; max-width: 100%; @@ -11,7 +13,7 @@ .sketches-table { display: flex; flex-direction: column; - padding: #{16 / $base-font-size}rem; + padding: #{math.div(16, $base-font-size)}rem; height: 100%; overflow-y: auto; @@ -22,16 +24,16 @@ tbody { display: flex; flex-direction: column; - gap: #{12 / $base-font-size}rem; + gap: #{math.div(12, $base-font-size)}rem; .sketches-table__row { margin: 0; position: relative; display: flex; flex-wrap: wrap; - padding: #{15 / $base-font-size}rem; + padding: #{math.div(15, $base-font-size)}rem; height: fit-content; - gap: #{8 / $base-font-size}rem; + gap: #{math.div(8, $base-font-size)}rem; @include themify() { border: 1px solid getThemifyVariable("modal-border-color"); @@ -42,13 +44,13 @@ padding-left: 0; width: 100%; font-weight: bold; - margin-bottom: #{6 / $base-font-size}rem; + margin-bottom: #{math.div(6, $base-font-size)}rem; } > td { padding-left: 0; width: 30%; - font-size: #{14 / $base-font-size}rem; + font-size: #{math.div(14, $base-font-size)}rem; @include themify() { color: getThemifyVariable("modal-border-color"); @@ -58,9 +60,9 @@ .sketch-list__dropdown-column { position: absolute; top: 0; - right: #{4 / $base-font-size}rem; + right: #{math.div(4, $base-font-size)}rem; width: auto; - margin: #{8 / $base-font-size}rem; + margin: #{math.div(8, $base-font-size)}rem; } } } @@ -74,13 +76,13 @@ max-height: 100%; border-spacing: 0; & .sketch-list__dropdown-column { - width: #{60 / $base-font-size}rem; + width: #{math.div(60, $base-font-size)}rem; position: relative; } } .sketches-table thead th { - height: #{32 / $base-font-size}rem; + height: #{math.div(32, $base-font-size)}rem; position: sticky; top: 0; z-index: 1; @@ -92,10 +94,10 @@ .sketch-list__sort-button { display: flex; align-items: center; - height: #{35 / $base-font-size}rem; + height: #{math.div(35, $base-font-size)}rem; & .isvg { - margin-left: #{8 / $base-font-size}rem; + margin-left: #{math.div(8, $base-font-size)}rem; } & svg { @@ -107,7 +109,7 @@ .sketches-table__header { border-bottom: 2px dashed transparent; - padding: #{3 / $base-font-size}rem 0; + padding: #{math.div(3, $base-font-size)}rem 0; @include themify() { color: getThemifyVariable("inactive-text-color"); } @@ -120,13 +122,13 @@ } .sketches-table thead th:nth-child(1) { - padding-left: #{12 / $base-font-size}rem; + padding-left: #{math.div(12, $base-font-size)}rem; } .sketches-table__row { - margin: #{10 / $base-font-size}rem; - height: #{72 / $base-font-size}rem; - font-size: #{16 / $base-font-size}rem; + margin: #{math.div(10, $base-font-size)}rem; + height: #{math.div(72, $base-font-size)}rem; + font-size: #{math.div(16, $base-font-size)}rem; } .sketches-table__row:nth-child(odd) { @@ -136,11 +138,11 @@ } .sketches-table__row > th:nth-child(1) { - padding-left: #{12 / $base-font-size}rem; + padding-left: #{math.div(12, $base-font-size)}rem; } .sketches-table__row > td { - padding-left: #{8 / $base-font-size}rem; + padding-left: #{math.div(8, $base-font-size)}rem; } .sketches-table__row a { @@ -154,7 +156,7 @@ } .sketches-table thead { - font-size: #{12 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; @include themify() { color: getThemifyVariable("inactive-text-color"); } @@ -170,11 +172,11 @@ } .sketches-table__icon-cell { - width: #{35 / $base-font-size}rem; + width: #{math.div(35, $base-font-size)}rem; } .sketches-table__empty { text-align: center; - font-size: #{16 / $base-font-size}rem; - padding: #{42 / $base-font-size}rem 0; + font-size: #{math.div(16, $base-font-size)}rem; + padding: #{math.div(42, $base-font-size)}rem 0; } diff --git a/client/styles/components/_tabs.scss b/client/styles/components/_tabs.scss index 444b7186c0..7f2d953237 100644 --- a/client/styles/components/_tabs.scss +++ b/client/styles/components/_tabs.scss @@ -1,7 +1,9 @@ +@use "sass:math"; + .tabs__titles { display: flex; flex-wrap: wrap; - padding-bottom: #{0.1 / $base-font-size}rem; + padding-bottom: #{math.div(0.1, $base-font-size)}rem; @include themify() { border-bottom: 1px solid getThemifyVariable('button-border-color'); } @@ -19,16 +21,16 @@ cursor: pointer; } } - font-size: #{12 / $base-font-size}rem; - height: #{20 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; + height: #{math.div(20, $base-font-size)}rem; width: 100%; margin: 0; - padding: 0 #{5 /$base-font-size}rem; + padding: 0 #{math.div(5, $base-font-size)}rem; } .react-tabs__tab--selected { @include themify() { - border-bottom: #{4 / $base-font-size}rem solid getThemifyVariable('button-background-hover-color'); + border-bottom: #{math.div(4, $base-font-size)}rem solid getThemifyVariable('button-background-hover-color'); } } @@ -43,9 +45,9 @@ color: black; display: flex; align-items: center; - border-bottom: #{4 / $base-font-size}rem solid transparent; + border-bottom: #{math.div(4, $base-font-size)}rem solid transparent; & + & { - margin-left: #{45 / $base-font-size}rem; + margin-left: #{math.div(45, $base-font-size)}rem; } } @@ -61,9 +63,9 @@ cursor: pointer; } } - font-size: #{12 / $base-font-size}rem; - height: #{20 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; + height: #{math.div(20, $base-font-size)}rem; width: 100%; margin: 0; - padding: 0 #{5 /$base-font-size}rem; + padding: 0 #{math.div(5, $base-font-size)}rem; } diff --git a/client/styles/components/_timer.scss b/client/styles/components/_timer.scss index 1c377e121d..c258bf5bf0 100644 --- a/client/styles/components/_timer.scss +++ b/client/styles/components/_timer.scss @@ -1,9 +1,11 @@ +@use "sass:math"; + .timer__saved-time { @include themify() { color: getThemifyVariable('inactive-text-color'); } - font-size: #{12 / $base-font-size}rem; - padding-right: #{30 / $base-font-size}rem; + font-size: #{math.div(12, $base-font-size)}rem; + padding-right: #{math.div(30, $base-font-size)}rem; &.timer__saved-time--notOwner { display: none; } diff --git a/client/styles/components/_toast.scss b/client/styles/components/_toast.scss index 2b3c0db50f..c52793c5cb 100644 --- a/client/styles/components/_toast.scss +++ b/client/styles/components/_toast.scss @@ -1,13 +1,15 @@ +@use "sass:math"; + .toast { background-color: $toast-background-color; color: $toast-text-color; - padding: #{10 / $base-font-size}rem; + padding: #{math.div(10, $base-font-size)}rem; position: fixed; top: 0; left: 50%; transform: translate(-50%, 0); - min-width: #{375 / $base-font-size}rem; //500px - font-size: #{20 / $base-font-size}rem; + min-width: #{math.div(375, $base-font-size)}rem; //500px + font-size: #{math.div(20, $base-font-size)}rem; display: flex; z-index: 9999; align-items: center; @@ -19,6 +21,6 @@ @include themify() { @extend %icon-toast; } - padding-top: #{10 / $base-font-size}rem; - margin-left: #{40 / $base-font-size}rem; + padding-top: #{math.div(10, $base-font-size)}rem; + margin-left: #{math.div(40, $base-font-size)}rem; } \ No newline at end of file diff --git a/client/styles/components/_toolbar.scss b/client/styles/components/_toolbar.scss index 797fe7e46e..00f2be6ec3 100644 --- a/client/styles/components/_toolbar.scss +++ b/client/styles/components/_toolbar.scss @@ -1,10 +1,12 @@ +@use "sass:math"; + .toolbar__play-button { @include themify() { @extend %toolbar-button; display: flex; justify-content: center; align-items: center; - padding: 0 0 0 #{3 / $base-font-size}rem; + padding: 0 0 0 #{math.div(3, $base-font-size)}rem; &--selected { @extend %toolbar-button--selected; } @@ -21,14 +23,14 @@ } } } - margin-right: #{15 / $base-font-size}rem; + margin-right: #{math.div(15, $base-font-size)}rem; span { - padding-left: #{4 / $base-font-size}rem; + padding-left: #{math.div(4, $base-font-size)}rem; display: flex; align-items: center; justify-content: center; - width: #{20 / $base-font-size}rem; - height: #{20 / $base-font-size}rem; + width: #{math.div(20, $base-font-size)}rem; + height: #{math.div(20, $base-font-size)}rem; } } @@ -42,7 +44,7 @@ display: flex; justify-content: center; align-items: center; - margin-right: #{15 / $base-font-size}rem; + margin-right: #{math.div(15, $base-font-size)}rem; padding: 0; &--selected { @extend %toolbar-button--selected; @@ -52,8 +54,8 @@ display: flex; align-items: center; justify-content: center; - width: #{20 / $base-font-size}rem; - height: #{20 / $base-font-size}rem; + width: #{math.div(20, $base-font-size)}rem; + height: #{math.div(20, $base-font-size)}rem; } } @@ -70,17 +72,17 @@ } margin-left: auto; & span { - padding-left: #{1 / $base-font-size}rem; + padding-left: #{math.div(1, $base-font-size)}rem; display: flex; align-items: center; justify-content: center; - width: #{20 / $base-font-size}rem; - height: #{20 / $base-font-size}rem; + width: #{math.div(20, $base-font-size)}rem; + height: #{math.div(20, $base-font-size)}rem; } } .toolbar__logo { - margin-right: #{30 / $base-font-size}rem; + margin-right: #{math.div(30, $base-font-size)}rem; @include themify() { & g, & path { fill: getThemifyVariable('logo-color'); @@ -89,7 +91,7 @@ } .toolbar { - padding: #{10 / $base-font-size}rem #{20 / $base-font-size}rem; + padding: #{math.div(10, $base-font-size)}rem #{math.div(20, $base-font-size)}rem; display: flex; align-items: center; @include themify() { @@ -98,8 +100,8 @@ } .toolbar__project-name-container { - margin-left: #{10 / $base-font-size}rem; - padding-left: #{10 / $base-font-size}rem; + margin-left: #{math.div(10, $base-font-size)}rem; + padding-left: #{math.div(10, $base-font-size)}rem; display: flex; align-items: center; } @@ -118,7 +120,7 @@ } .toolbar__project-owner { - margin-left: #{5 / $base-font-size}rem; + margin-left: #{math.div(5, $base-font-size)}rem; @include themify() { color: getThemifyVariable('secondary-text-color'); } @@ -132,8 +134,8 @@ color: getThemifyVariable('logo-color'); } } - margin-left: #{5 / $base-font-size}rem; - font-size: #{12 / $base-font-size}rem; + margin-left: #{math.div(5, $base-font-size)}rem; + font-size: #{math.div(12, $base-font-size)}rem; } .toolbar__autorefresh { diff --git a/client/styles/layout/_dashboard.scss b/client/styles/layout/_dashboard.scss index 6a5a374fe2..fea65f2809 100644 --- a/client/styles/layout/_dashboard.scss +++ b/client/styles/layout/_dashboard.scss @@ -1,9 +1,11 @@ +@use "sass:math"; + .dashboard-content { display: flex; flex-direction: column; flex: 1; overflow: hidden; - max-width: #{1012 / $base-font-size}rem; + max-width: #{math.div(1012, $base-font-size)}rem; margin: 0 auto; width: 100%; diff --git a/client/styles/main.scss b/client/styles/main.scss index 9018fe6273..dbef1e9920 100644 --- a/client/styles/main.scss +++ b/client/styles/main.scss @@ -6,11 +6,11 @@ @import 'base/reset'; @import 'base/base'; -@import 'node_modules/codemirror/lib/codemirror'; -@import 'node_modules/codemirror/addon/lint/lint'; -@import 'node_modules/codemirror-colorpicker/addon/codemirror-colorpicker'; -@import 'node_modules/dropzone/dist/dropzone'; -@import 'node_modules/primer-tooltips/build/build'; +@import '../../node_modules/codemirror/lib/codemirror'; +@import '../../node_modules/codemirror/addon/lint/lint'; +@import '../../node_modules/codemirror-colorpicker/addon/codemirror-colorpicker'; +@import '../../node_modules/dropzone/dist/dropzone'; +@import '../../node_modules/primer-tooltips/build/build'; @import 'components/p5-light-codemirror-theme'; @import 'components/p5-dark-codemirror-theme'; diff --git a/package-lock.json b/package-lock.json index e1d3c83769..713d7086f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -170,7 +170,6 @@ "lint-staged": "^10.5.4", "mini-css-extract-plugin": "^1.6.2", "msw": "^0.35.0", - "node-sass": "^7.0.1", "nodemon": "^2.0.22", "os-browserify": "^0.3.0", "postcss": "^8.4.12", @@ -180,6 +179,7 @@ "react-test-renderer": "^16.14.0", "redux-mock-store": "^1.5.4", "rimraf": "^2.7.1", + "sass": "^1.66.1", "sass-loader": "^12.6.0", "storybook": "^7.0.27", "storybook-addon-theme-playground": "^2.2.0", @@ -3677,7 +3677,9 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@gatsbyjs/webpack-hot-middleware": { "version": "2.25.3", @@ -5659,6 +5661,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -5669,6 +5673,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -5681,6 +5687,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -5695,13 +5703,17 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@npmcli/move-file": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -5715,6 +5727,8 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "optional": true, + "peer": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -5727,6 +5741,8 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -15789,7 +15805,9 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/mongodb": { "version": "3.6.20", @@ -16476,6 +16494,8 @@ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -16950,6 +16970,8 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -16959,6 +16981,8 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "safer-buffer": "~2.1.0" } @@ -16980,6 +17004,8 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.8" } @@ -17027,6 +17053,8 @@ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "*" } @@ -17196,6 +17224,8 @@ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "*" } @@ -17204,7 +17234,9 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/axe-core": { "version": "4.3.1", @@ -17941,6 +17973,8 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "tweetnacl": "^0.14.3" } @@ -18428,6 +18462,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -18489,7 +18525,9 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/chalk": { "version": "2.4.2", @@ -21040,6 +21078,8 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "assert-plus": "^1.0.0" }, @@ -21147,6 +21187,8 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -21156,6 +21198,8 @@ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -21169,6 +21213,8 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -21375,6 +21421,8 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.6" } @@ -21656,6 +21704,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -21748,6 +21798,7 @@ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "dev": true, "optional": true, + "peer": true, "dependencies": { "iconv-lite": "~0.4.13" } @@ -21818,6 +21869,8 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -21838,7 +21891,9 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/error-ex": { "version": "1.3.2", @@ -23795,7 +23850,9 @@ "dev": true, "engines": [ "node >=0.6.0" - ] + ], + "optional": true, + "peer": true }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -24314,6 +24371,8 @@ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "*" } @@ -24483,6 +24542,8 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -24630,6 +24691,8 @@ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "globule": "^1.0.0" }, @@ -24707,6 +24770,8 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -24728,6 +24793,8 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "assert-plus": "^1.0.0" } @@ -24850,6 +24917,8 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "~7.1.1", "lodash": "~4.17.10", @@ -24950,6 +25019,8 @@ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4" } @@ -24960,6 +25031,8 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "deprecated": "this library is no longer supported", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -24973,6 +25046,8 @@ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -25479,7 +25554,9 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/http-errors": { "version": "2.0.0", @@ -25523,6 +25600,8 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -25559,6 +25638,8 @@ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "^2.0.0" } @@ -25822,6 +25903,12 @@ "url": "https://opencollective.com/immer" } }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -25947,7 +26034,9 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/inflight": { "version": "1.0.6", @@ -26008,7 +26097,9 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/ipaddr.js": { "version": "1.9.1", @@ -26245,7 +26336,9 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/is-nan": { "version": "1.3.2", @@ -26523,7 +26616,9 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -31413,7 +31508,9 @@ "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/js-beautify": { "version": "1.14.8", @@ -31521,7 +31618,9 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/jscodeshift": { "version": "0.14.0", @@ -31945,7 +32044,9 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -31962,7 +32063,9 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/json5": { "version": "2.2.3", @@ -32001,6 +32104,8 @@ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -32843,6 +32948,8 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -32870,6 +32977,8 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -32899,6 +33008,8 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } @@ -32908,6 +33019,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -32920,6 +33033,8 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "optional": true, + "peer": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -32932,6 +33047,8 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -32947,6 +33064,8 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.1" }, @@ -32958,7 +33077,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/makeerror": { "version": "1.0.12", @@ -32974,6 +33095,8 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" }, @@ -33108,6 +33231,8 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -33134,6 +33259,8 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -33146,6 +33273,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -33158,6 +33287,8 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -33173,6 +33304,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -33188,6 +33321,8 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -33199,13 +33334,17 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/meow/node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } @@ -33382,6 +33521,8 @@ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -33396,6 +33537,8 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -33405,6 +33548,8 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -33426,6 +33571,8 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -33438,6 +33585,8 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.0", "minipass-sized": "^1.0.3", @@ -33455,6 +33604,8 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -33467,6 +33618,8 @@ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -33479,6 +33632,8 @@ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -34441,7 +34596,9 @@ "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/nanoid": { "version": "3.3.6", @@ -34596,6 +34753,8 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", @@ -34620,6 +34779,8 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -34633,6 +34794,8 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", @@ -34652,6 +34815,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -34664,6 +34829,8 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "abbrev": "1" }, @@ -34679,6 +34846,8 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", @@ -34694,6 +34863,8 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -34708,6 +34879,8 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -34723,6 +34896,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -34738,6 +34913,8 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -34752,7 +34929,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/node-int64": { "version": "0.4.0", @@ -34777,6 +34956,8 @@ "integrity": "sha512-uMy+Xt29NlqKCFdFRZyXKOTqGt+QaKHexv9STj2WeLottnlqZEEWx6Bj0MXNthmFRRdM/YwyNo/8Tr46TOM0jQ==", "dev": true, "hasInstallScript": true, + "optional": true, + "peer": true, "dependencies": { "async-foreach": "^0.1.3", "chalk": "^4.1.2", @@ -34806,6 +34987,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -34821,6 +35004,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -34837,6 +35022,8 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -34848,13 +35035,17 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/node-sass/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -34869,6 +35060,8 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -34878,6 +35071,8 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -34887,6 +35082,8 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -34899,6 +35096,8 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -34908,6 +35107,8 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -34920,6 +35121,8 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -35140,6 +35343,8 @@ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "*" } @@ -35981,7 +36186,9 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/picocolors": { "version": "1.0.0", @@ -37689,13 +37896,17 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -37962,6 +38173,8 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -39151,6 +39364,8 @@ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, + "optional": true, + "peer": true, "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -39182,6 +39397,8 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.6" } @@ -39191,6 +39408,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -39205,6 +39424,8 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, + "optional": true, + "peer": true, "bin": { "uuid": "bin/uuid" } @@ -39329,6 +39550,8 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 4" } @@ -39438,11 +39661,30 @@ "node": ">=6" } }, + "node_modules/sass": { + "version": "1.66.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", + "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/sass-graph": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.0.tgz", "integrity": "sha512-WSO/MfXqKH7/TS8RdkCX3lVkPFQzCgbqdGsmSKq6tlPU+GpGEsa/5aW18JqItnqh+lPtcjifqdZ/VmiILkKckQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.0.0", "lodash": "^4.17.11", @@ -39461,6 +39703,8 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } @@ -39470,6 +39714,8 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -39569,6 +39815,8 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.3.0.tgz", "integrity": "sha512-14Zl9GcbBvOT9057ZKjpz5yPOyUWG2ojd9D5io28wHRYsOrs7U95Q+KNL87+32p8rc+LvDpbu/i9ZYjM9Q+FsQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "js-base64": "^2.4.3", "source-map": "^0.7.1" @@ -39579,6 +39827,8 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 8" } @@ -40012,6 +40262,8 @@ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -40022,6 +40274,8 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ip": "^1.1.5", "smart-buffer": "^4.2.0" @@ -40036,6 +40290,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -40154,6 +40410,8 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -40233,6 +40491,8 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "readable-stream": "^2.0.1" } @@ -41327,6 +41587,8 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -41345,6 +41607,8 @@ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.1.2" } @@ -41394,6 +41658,8 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, + "optional": true, + "peer": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -41405,7 +41671,9 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/type-check": { "version": "0.3.2", @@ -41597,6 +41865,8 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "unique-slug": "^2.0.0" } @@ -41606,6 +41876,8 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "imurmurhash": "^0.1.4" } @@ -41970,6 +42242,8 @@ "engines": [ "node >=0.6.0" ], + "optional": true, + "peer": true, "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -42863,6 +43137,8 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -45356,7 +45632,9 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@gatsbyjs/webpack-hot-middleware": { "version": "2.25.3", @@ -46924,6 +47202,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -46934,6 +47214,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "requires": { "yallist": "^4.0.0" } @@ -46943,6 +47225,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -46951,7 +47235,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -46960,6 +47246,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, + "optional": true, + "peer": true, "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -46969,13 +47257,17 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "optional": true, + "peer": true, "requires": { "glob": "^7.1.3" } @@ -54202,7 +54494,9 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@types/mongodb": { "version": "3.6.20", @@ -54794,6 +55088,8 @@ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", "dev": true, + "optional": true, + "peer": true, "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -55142,13 +55438,17 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, + "optional": true, + "peer": true, "requires": { "safer-buffer": "~2.1.0" } @@ -55169,7 +55469,9 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "ast-types": { "version": "0.16.1", @@ -55209,7 +55511,9 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "async-limiter": { "version": "1.0.1", @@ -55338,13 +55642,17 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "aws4": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "axe-core": { "version": "4.3.1", @@ -55916,6 +56224,8 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, + "optional": true, + "peer": true, "requires": { "tweetnacl": "^0.14.3" } @@ -56284,6 +56594,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, + "optional": true, + "peer": true, "requires": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -56322,7 +56634,9 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "chalk": { "version": "2.4.2", @@ -58125,6 +58439,8 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, + "optional": true, + "peer": true, "requires": { "assert-plus": "^1.0.0" } @@ -58202,13 +58518,17 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "decamelize-keys": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, + "optional": true, + "peer": true, "requires": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -58218,7 +58538,9 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -58378,7 +58700,9 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "dequal": { "version": "2.0.3", @@ -58623,6 +58947,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, + "optional": true, + "peer": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -58690,6 +59016,7 @@ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "dev": true, "optional": true, + "peer": true, "requires": { "iconv-lite": "~0.4.13" } @@ -58749,7 +59076,9 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "envinfo": { "version": "7.8.1", @@ -58761,7 +59090,9 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "error-ex": { "version": "1.3.2", @@ -60216,7 +60547,9 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "fast-deep-equal": { "version": "3.1.3", @@ -60617,7 +60950,9 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "fork-ts-checker-webpack-plugin": { "version": "7.3.0", @@ -60736,6 +61071,8 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -60851,6 +61188,8 @@ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, + "optional": true, + "peer": true, "requires": { "globule": "^1.0.0" } @@ -60903,7 +61242,9 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "get-stream": { "version": "6.0.1", @@ -60916,6 +61257,8 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, + "optional": true, + "peer": true, "requires": { "assert-plus": "^1.0.0" } @@ -61021,6 +61364,8 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", "dev": true, + "optional": true, + "peer": true, "requires": { "glob": "~7.1.1", "lodash": "~4.17.10", @@ -61099,13 +61444,17 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "har-validator": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, + "optional": true, + "peer": true, "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -61115,7 +61464,9 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "has": { "version": "1.0.3", @@ -61491,7 +61842,9 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "http-errors": { "version": "2.0.0", @@ -61528,6 +61881,8 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, + "optional": true, + "peer": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -61554,6 +61909,8 @@ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, + "optional": true, + "peer": true, "requires": { "ms": "^2.0.0" } @@ -61740,6 +62097,12 @@ "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" }, + "immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -61833,7 +62196,9 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "inflight": { "version": "1.0.6", @@ -61888,7 +62253,9 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "ipaddr.js": { "version": "1.9.1", @@ -62046,7 +62413,9 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "is-nan": { "version": "1.3.2", @@ -62239,7 +62608,9 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "istanbul-lib-coverage": { "version": "3.2.0", @@ -66055,7 +66426,9 @@ "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "js-beautify": { "version": "1.14.8", @@ -66136,7 +66509,9 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "jscodeshift": { "version": "0.14.0", @@ -66459,7 +66834,9 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "json-schema-traverse": { "version": "0.4.1", @@ -66476,7 +66853,9 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "json5": { "version": "2.2.3", @@ -66506,6 +66885,8 @@ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, + "optional": true, + "peer": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -67158,6 +67539,8 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, + "optional": true, + "peer": true, "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -67182,6 +67565,8 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -67207,13 +67592,17 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "requires": { "yallist": "^4.0.0" } @@ -67222,13 +67611,17 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "optional": true, + "peer": true, "requires": { "glob": "^7.1.3" } @@ -67238,6 +67631,8 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.1.1" } @@ -67246,7 +67641,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -67263,7 +67660,9 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "map-or-similar": { "version": "1.5.0", @@ -67366,6 +67765,8 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -67386,6 +67787,8 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -67395,6 +67798,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "requires": { "yallist": "^4.0.0" } @@ -67404,6 +67809,8 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "optional": true, + "peer": true, "requires": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -67416,6 +67823,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -67424,19 +67833,25 @@ "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -67558,6 +67973,8 @@ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "optional": true, + "peer": true, "requires": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -67568,13 +67985,17 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -67600,6 +68021,8 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.0.0" } @@ -67609,6 +68032,8 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, + "optional": true, + "peer": true, "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -67621,6 +68046,8 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.0.0" } @@ -67630,6 +68057,8 @@ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.0.0" } @@ -67639,6 +68068,8 @@ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "optional": true, + "peer": true, "requires": { "minipass": "^3.0.0" } @@ -68437,7 +68868,9 @@ "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "nanoid": { "version": "3.3.6", @@ -68567,6 +69000,8 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, + "optional": true, + "peer": true, "requires": { "env-paths": "^2.2.0", "glob": "^7.1.4", @@ -68585,6 +69020,8 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", "dev": true, + "optional": true, + "peer": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -68595,6 +69032,8 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, + "optional": true, + "peer": true, "requires": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", @@ -68611,6 +69050,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "requires": { "yallist": "^4.0.0" } @@ -68620,6 +69061,8 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "abbrev": "1" } @@ -68629,6 +69072,8 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, + "optional": true, + "peer": true, "requires": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", @@ -68641,6 +69086,8 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, + "optional": true, + "peer": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -68652,6 +69099,8 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "optional": true, + "peer": true, "requires": { "glob": "^7.1.3" } @@ -68661,6 +69110,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, + "optional": true, + "peer": true, "requires": { "lru-cache": "^6.0.0" } @@ -68670,6 +69121,8 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "optional": true, + "peer": true, "requires": { "isexe": "^2.0.0" } @@ -68678,7 +69131,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -68704,6 +69159,8 @@ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-7.0.1.tgz", "integrity": "sha512-uMy+Xt29NlqKCFdFRZyXKOTqGt+QaKHexv9STj2WeLottnlqZEEWx6Bj0MXNthmFRRdM/YwyNo/8Tr46TOM0jQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "async-foreach": "^0.1.3", "chalk": "^4.1.2", @@ -68727,6 +69184,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, + "peer": true, "requires": { "color-convert": "^2.0.1" } @@ -68736,6 +69195,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "optional": true, + "peer": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -68746,6 +69207,8 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "color-name": "~1.1.4" } @@ -68754,13 +69217,17 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "optional": true, + "peer": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -68771,19 +69238,25 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "optional": true, + "peer": true, "requires": { "shebang-regex": "^3.0.0" } @@ -68792,13 +69265,17 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "optional": true, + "peer": true, "requires": { "has-flag": "^4.0.0" } @@ -68808,6 +69285,8 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "optional": true, + "peer": true, "requires": { "isexe": "^2.0.0" } @@ -68983,7 +69462,9 @@ "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "object-assign": { "version": "4.1.1", @@ -69614,7 +70095,9 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "picocolors": { "version": "1.0.0", @@ -70883,13 +71366,17 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "optional": true, + "peer": true, "requires": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -71093,7 +71580,9 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "ramda": { "version": "0.29.0", @@ -72023,6 +72512,8 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, + "optional": true, + "peer": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -72050,13 +72541,17 @@ "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, + "optional": true, + "peer": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -72066,7 +72561,9 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -72161,7 +72658,9 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "reusify": { "version": "1.0.4", @@ -72240,11 +72739,24 @@ "sparse-bitfield": "^3.0.3" } }, + "sass": { + "version": "1.66.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", + "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, "sass-graph": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.0.tgz", "integrity": "sha512-WSO/MfXqKH7/TS8RdkCX3lVkPFQzCgbqdGsmSKq6tlPU+GpGEsa/5aW18JqItnqh+lPtcjifqdZ/VmiILkKckQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "glob": "^7.0.0", "lodash": "^4.17.11", @@ -72256,13 +72768,17 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "yargs": { "version": "17.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", "dev": true, + "optional": true, + "peer": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -72323,6 +72839,8 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.3.0.tgz", "integrity": "sha512-14Zl9GcbBvOT9057ZKjpz5yPOyUWG2ojd9D5io28wHRYsOrs7U95Q+KNL87+32p8rc+LvDpbu/i9ZYjM9Q+FsQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "js-base64": "^2.4.3", "source-map": "^0.7.1" @@ -72332,7 +72850,9 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -72695,13 +73215,17 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "socks": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", "dev": true, + "optional": true, + "peer": true, "requires": { "ip": "^1.1.5", "smart-buffer": "^4.2.0" @@ -72712,6 +73236,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -72813,6 +73339,8 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, + "optional": true, + "peer": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -72880,6 +73408,8 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, + "optional": true, + "peer": true, "requires": { "readable-stream": "^2.0.1" } @@ -73735,7 +74265,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "trough": { "version": "1.0.5", @@ -73747,6 +74279,8 @@ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "dev": true, + "optional": true, + "peer": true, "requires": { "glob": "^7.1.2" } @@ -73787,6 +74321,8 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, + "optional": true, + "peer": true, "requires": { "safe-buffer": "^5.0.1" } @@ -73795,7 +74331,9 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "type-check": { "version": "0.3.2", @@ -73935,6 +74473,8 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "unique-slug": "^2.0.0" } @@ -73944,6 +74484,8 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, + "optional": true, + "peer": true, "requires": { "imurmurhash": "^0.1.4" } @@ -74207,6 +74749,8 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, + "optional": true, + "peer": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -74879,7 +75423,9 @@ "version": "21.0.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "yauzl": { "version": "2.10.0", diff --git a/package.json b/package.json index cf5909f185..718e55cecf 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "update-syntax-highlighting": "node ./server/scripts/update-syntax-highlighting.js", "update-p5-hinter": "node ./server/scripts/update-p5-hinter.js", "heroku-postbuild": "touch .env; npm run build", - "storybook:build:css": "node-sass client/styles/main.scss client/styles/storybook.css", + "storybook:build:css": "sass client/styles/main.scss client/styles/storybook.css", "storybook": "npm run storybook:build:css && storybook dev -p 6006", "build-storybook": "storybook build" }, @@ -129,7 +129,6 @@ "lint-staged": "^10.5.4", "mini-css-extract-plugin": "^1.6.2", "msw": "^0.35.0", - "node-sass": "^7.0.1", "nodemon": "^2.0.22", "os-browserify": "^0.3.0", "postcss": "^8.4.12", @@ -139,6 +138,7 @@ "react-test-renderer": "^16.14.0", "redux-mock-store": "^1.5.4", "rimraf": "^2.7.1", + "sass": "^1.66.1", "sass-loader": "^12.6.0", "storybook": "^7.0.27", "storybook-addon-theme-playground": "^2.2.0",