diff --git a/.github/workflows/test.yml-template b/.github/workflows/test.yml-template new file mode 100644 index 0000000000..8b5743ecb4 --- /dev/null +++ b/.github/workflows/test.yml-template @@ -0,0 +1,29 @@ +name: Test + +on: + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [20.x] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm test + - name: Upload HTML report(backstop data) + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: report + path: backstop_data diff --git a/main.css b/main.css new file mode 100644 index 0000000000..d9228fc058 --- /dev/null +++ b/main.css @@ -0,0 +1,1073 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + vertical-align: baseline; +} + +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} + +body { + line-height: 1; +} + +ol, +ul { + list-style: none; +} + +blockquote, +q { + quotes: none; +} + +blockquote::before, +blockquote::after, +q::before, +q::after { + content: ""; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +textarea:focus, input:focus { + outline: none; +} + +.header { + display: grid; + grid-template-columns: 130px 130px; + column-gap: 20px; + padding: 0 20px; + box-sizing: border-box; + background-repeat: no-repeat; + background-size: cover; + background-position: center; + justify-content: center; + height: 100vh; + background-image: url("../images/photos/header.jpg"); +} +@media (min-width: 744px) { + .header { + grid-template-columns: repeat(6, 80px); + column-gap: 24px; + padding: 0 72px; + } +} +@media (min-width: 1260px) { + .header { + grid-template-columns: repeat(12, 63px); + padding: 0 120px; + } +} +.header__title { + font-family: Inter, sans-serif; + font-size: 32px; + font-style: italic; + font-weight: 800; + line-height: 32px; + letter-spacing: -1.5px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + align-self: end; + grid-column: 1/3; + padding-bottom: 40px; +} +.header__title::before { + background-repeat: no-repeat; + background-size: cover; + background-position: center; + content: ""; + width: 48px; + height: 58px; + background-image: url("../images/sound_waves.svg"); + display: block; + margin-bottom: 16px; +} +@media (min-width: 744px) { + .header__title { + grid-column: 1/5; + font-size: 40px; + line-height: 40px; + padding-bottom: 64px; + } + .header__title::before { + width: 63px; + height: 76px; + margin-bottom: 40px; + } +} +@media (min-width: 1260px) { + .header__title { + grid-column: 1/6; + font-size: 48px; + line-height: 48px; + } + .header::before { + margin-bottom: 32px; + } +} + +.navigation { + grid-column: span 2; + display: flex; + justify-content: space-between; + align-items: flex-start; +} +.navigation__logo { + height: 16px; + margin-top: 28px; +} +.navigation__icons { + display: flex; + justify-content: space-between; + align-items: center; + height: 24px; + width: 72px; + margin-top: 24px; +} +@media (min-width: 744px) { + .navigation { + grid-column: span 6; + } + .navigation__logo { + height: 24px; + margin-top: 36px; + } + .navigation__icons { + height: 32px; + width: 96px; + margin-top: 32px; + } +} +@media (min-width: 1260px) { + .navigation { + grid-column: span 12; + } +} + +.main__first-title { + font-family: Inter, sans-serif; + font-size: 32px; + font-weight: 700; + line-height: 32px; + letter-spacing: -1.5px; + text-align: center; + text-underline-position: from-font; + text-decoration-skip-ink: none; + grid-column: span 2; + margin-top: 64px; +} +@media (min-width: 744px) { + .main__first-title { + font-size: 40px; + line-height: 40px; + } +} +@media (min-width: 1260px) { + .main__first-title { + font-size: 48px; + line-height: 48px; + } +} +@media (min-width: 744px) { + .main__first-title { + grid-column: span 6; + margin-top: 120px; + } +} +@media (min-width: 1260px) { + .main__first-title { + grid-column: span 12; + } +} +.main__second-title { + font-family: Inter, sans-serif; + font-size: 32px; + font-weight: 700; + line-height: 32px; + letter-spacing: -1.5px; + text-align: center; + text-underline-position: from-font; + text-decoration-skip-ink: none; + grid-column: span 2; + margin-top: 96px; + margin-bottom: 48px; +} +@media (min-width: 744px) { + .main__second-title { + font-size: 40px; + line-height: 40px; + } +} +@media (min-width: 1260px) { + .main__second-title { + font-size: 48px; + line-height: 48px; + } +} +@media (min-width: 744px) { + .main__second-title { + grid-column: span 6; + margin-bottom: 64px; + } +} +@media (min-width: 1260px) { + .main__second-title { + grid-column: span 12; + margin-top: 120px; + } +} +.main__third-title { + font-family: Inter, sans-serif; + font-size: 32px; + font-weight: 700; + line-height: 32px; + letter-spacing: -1.5px; + text-align: center; + text-underline-position: from-font; + text-decoration-skip-ink: none; + grid-column: span 2; + margin-top: 96px; + margin-bottom: 16px; + text-align: left; +} +@media (min-width: 744px) { + .main__third-title { + font-size: 40px; + line-height: 40px; + } +} +@media (min-width: 1260px) { + .main__third-title { + font-size: 48px; + line-height: 48px; + } +} +@media (min-width: 744px) { + .main__third-title { + grid-column: span 3; + margin-top: 120px; + } +} +@media (min-width: 1260px) { + .main__third-title { + grid-column: span 5; + } +} +.main__forth-title { + font-family: Inter, sans-serif; + font-size: 32px; + font-weight: 700; + line-height: 32px; + letter-spacing: -1.5px; + text-align: center; + text-underline-position: from-font; + text-decoration-skip-ink: none; + grid-column: span 2; + margin-top: 96px; + margin-bottom: 32px; +} +@media (min-width: 744px) { + .main__forth-title { + font-size: 40px; + line-height: 40px; + } +} +@media (min-width: 1260px) { + .main__forth-title { + font-size: 48px; + line-height: 48px; + } +} +@media (min-width: 744px) { + .main__forth-title { + grid-column: span 6; + margin-top: 120px; + } +} +@media (min-width: 1260px) { + .main__forth-title { + grid-column: span 12; + } +} +.main__product-card { + margin-top: 48px; +} +@media (min-width: 744px) { + .main__product-card { + margin-top: 64px; + } +} +@media (min-width: 1260px) { + .main__product-card { + margin-top: 0; + } +} + +.product-card { + grid-column: span 2; +} +.product-card__image { + width: 280px; + height: 280px; +} +.product-card__paragraph { + font-family: Inter, sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 22.4px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; +} +.product-card__paragraph:nth-of-type(1) { + margin-top: 32px; +} +.product-card__paragraph:nth-of-type(2) { + margin-top: 8px; +} +.product-card__paragraph:nth-of-type(3) { + margin-top: 12px; +} +.product-card__paragraph--bold { + font-weight: 700; +} +@media (min-width: 744px) { + .product-card { + grid-column: 2/-4; + } + .product-card__image { + width: 392px; + height: 392px; + } +} +@media (min-width: 1260px) { + .product-card { + grid-column: span 4; + margin-top: 64px; + } + .product-card__image { + width: 324px; + height: 324px; + } + .product-card:hover { + transform: scale(1.1); + transition-duration: 0.5s; + } +} + +.category { + grid-column: span 2; + display: grid; + grid-template-columns: 130px 130px; + column-gap: 20px; + padding: 0 20px; + box-sizing: border-box; + padding: 0; +} +@media (min-width: 744px) { + .category { + grid-template-columns: repeat(6, 80px); + column-gap: 24px; + padding: 0 72px; + } +} +@media (min-width: 1260px) { + .category { + grid-template-columns: repeat(12, 63px); + padding: 0 120px; + } +} +@media (min-width: 744px) { + .category { + grid-column: span 6; + padding: 0; + } +} +@media (min-width: 1260px) { + .category { + grid-column: span 12; + padding: 0; + } +} +.category__image { + height: 130px; + grid-column: span 1; + box-sizing: border-box; + background-size: cover; + width: 100%; +} +@media (min-width: 744px) { + .category__image { + height: 184px; + } +} +@media (min-width: 1260px) { + .category__image { + height: 324px; + } +} +@media (min-width: 744px) { + .category__image--big { + grid-column: span 4; + } +} +@media (min-width: 1260px) { + .category__image--big { + grid-column: span 8; + } + .category__image--big:hover { + transform: scale(1.05); + transition-duration: 0.5s; + } +} +@media (min-width: 744px) { + .category__image--small { + grid-column: span 2; + } +} +@media (min-width: 1260px) { + .category__image--small { + grid-column: span 4; + } + .category__image--small:hover { + transform: scale(1.1, 1.05); + transition-duration: 0.5s; + } +} +.category__image--1 { + background-image: url("../images/photos/image-1.jpg"); +} +.category__image--2 { + background-image: url("../images/photos/image-2.jpg"); +} +.category__image--3 { + background-image: url("../images/photos/image-3.jpg"); +} +.category__image--4 { + background-image: url("../images/photos/image-4.jpg"); +} +.category__image--5 { + background-image: url("../images/photos/image-5.jpg"); +} +.category__image--6 { + background-image: url("../images/photos/image-6.jpg"); +} +.category__name { + grid-column: span 2; + font-family: Inter, sans-serif; + font-size: 16px; + font-weight: 700; + line-height: 22.4px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + margin-top: 16px; + margin-bottom: 40px; +} +@media (min-width: 744px) { + .category__name { + grid-column: span 6; + margin-bottom: 64px; + } +} +@media (min-width: 1260px) { + .category__name { + grid-column: span 12; + } +} + +.button { + grid-column: span 2; + width: 100%; + border-radius: 40px; + background-color: #292929; + border: 3px transparent solid; + box-sizing: border-box; + font-family: Inter, sans-serif; + font-size: 16px; + font-weight: 700; + line-height: 46px; + text-align: center; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-decoration: none; + color: #fff; + transition-duration: 0.5s; +} +@media (min-width: 744px) { + .button { + grid-column: 2/-2; + } +} +@media (min-width: 1260px) { + .button { + grid-column: 5/-5; + } + .button--form { + grid-column: 1/6; + } +} +.button:hover { + border: 3px #292929 solid; + background-color: #fff; + color: #292929; +} +.button:active { + background-color: #111; + color: #fff; +} + +.ad { + grid-column: span 2; +} +@media (min-width: 744px) { + .ad { + grid-column: span 3; + margin-top: 120px; + } +} +@media (min-width: 1260px) { + .ad { + grid-column: span 5; + } +} +.ad__benefit { + font-family: Inter, sans-serif; + font-size: 16px; + font-weight: 700; + line-height: 22.4px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + margin-top: 16px; +} +@media (min-width: 744px) { + .ad__benefit:first-of-type { + margin-top: 0; + } +} +.ad__description { + font-family: Inter, sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 27px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + margin-top: 40px; +} + +.form { + grid-column: span 2; + box-sizing: border-box; +} +@media (min-width: 744px) { + .form { + grid-column: span 3; + margin-bottom: 120px; + } +} +@media (min-width: 1260px) { + .form { + grid-column: span 6; + margin-bottom: 118px; + } +} +.form__item { + margin-top: 16px; +} +.form__input { + height: 48px; + background-color: #F8F8FA; + border-radius: 40px; + border: 0; + width: 100%; + box-sizing: border-box; + padding: 14px 16px; +} +.form__input:hover { + border: 1px solid; + padding: 13px 15px; + border-color: #D5D7DE; +} +.form__input:focus { + border: 1px solid; + padding: 13px 15px; + border-color: #292929; +} +.form__textarea { + background-color: #F8F8FA; + border-radius: 16px; + border: 0; + height: 148px; + width: 100%; + box-sizing: border-box; + padding: 14px 16px; + margin-bottom: 32px; +} +.form__textarea:hover { + border: 1px solid; + padding: 13px 15px; + border-color: #D5D7DE; +} +.form__textarea:focus { + border: 1px solid; + padding: 13px 15px; + border-color: #292929; +} +.form__label { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; +} + +.section { + display: grid; + grid-template-columns: 130px 130px; + column-gap: 20px; + padding: 0 20px; + box-sizing: border-box; + justify-self: center; +} +@media (min-width: 744px) { + .section { + grid-template-columns: repeat(6, 80px); + column-gap: 24px; + padding: 0 72px; + } +} +@media (min-width: 1260px) { + .section { + grid-template-columns: repeat(12, 63px); + padding: 0 120px; + } +} + +.address { + margin-top: 48px; + margin-bottom: 96px; + grid-column: span 2; +} +@media (min-width: 744px) { + .address { + grid-column: span 3; + margin-top: 0; + } +} +@media (min-width: 1260px) { + .address { + grid-column: span 6; + } +} +.address__item { + height: 50px; + display: flex; + flex-direction: column; + justify-content: space-between; + box-sizing: border-box; + margin-bottom: 24px; +} +.address__label { + margin-top: 24px; + box-sizing: border-box; + font-family: Inter, sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 19.6px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + color: #9FADC2; +} +@media (min-width: 744px) { + .address__label { + margin-top: 16px; + } +} +.address__content { + margin-top: 8px; + font-family: Inter, sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 22.4px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-decoration: none; + color: #3E3E3E; +} + +.footer { + background-repeat: no-repeat; + background-size: cover; + background-position: center; + height: 200px; + background-image: url("../images/photos/footer.jpg"); + box-sizing: border-box; +} +@media (min-width: 744px) { + .footer { + height: 400px; + } +} +@media (min-width: 1260px) { + .footer { + height: 460px; + } +} + +.menu { + position: fixed; + top: 0; + left: 0; + right: 0; + transform: translateX(-100%); + transition: transform 0.4s ease-in-out; + display: grid; + grid-template-columns: 130px 130px; + column-gap: 20px; + padding: 0 20px; + box-sizing: border-box; + justify-content: center; + min-height: 100vh; + align-content: start; + box-sizing: border-box; + overflow-y: auto; + background-color: #E8EFF9; +} +@media (min-width: 744px) { + .menu { + grid-template-columns: repeat(6, 80px); + column-gap: 24px; + padding: 0 72px; + } +} +@media (min-width: 1260px) { + .menu { + grid-template-columns: repeat(12, 63px); + padding: 0 120px; + } +} +.menu:target { + transform: translateX(0); +} +.menu__navigation { + grid-column: span 2; + padding-top: 28px; + display: flex; + justify-content: space-between; + align-items: center; +} +.menu__navigation--logo { + height: 16px; +} +.menu__navigation--exit { + height: 16px; + width: 16px; + filter: brightness(0%); +} +@media (min-width: 744px) { + .menu__navigation { + grid-column: span 6; + height: 96px; + padding-top: 36px; + align-items: flex-start; + } + .menu__navigation--logo { + height: 24px; + } + .menu__navigation--exit { + height: 21px; + width: 21px; + } +} +@media (min-width: 1260px) { + .menu__navigation { + grid-column: span 12; + } +} + +.page__body--with-menu { + overflow: hidden; +} + +.page-navigation { + grid-column: span 2; +} +.page-navigation__link { + font-family: Inter, sans-serif; + font-size: 22px; + font-weight: 700; + line-height: 22px; + letter-spacing: 2px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-decoration: none; + color: #292929; +} +.page-navigation__phone { + grid-column: span 2; + height: 67px; + margin-top: 40px; + margin-bottom: 119px; + display: flex; + flex-direction: column; + justify-content: space-between; +} +.page-navigation__phone--number { + font-family: Inter, sans-serif; + font-size: 16px; + font-weight: 700; + line-height: 27px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + color: #292929; +} +.page-navigation__phone--call { + font-family: Inter, sans-serif; + font-size: 12px; + font-weight: 700; + line-height: 16px; + letter-spacing: 2px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-decoration: none; + color: #292929; +} +.page-navigation__phone--call::after { + content: ""; + display: block; + height: 2px; + width: 119px; + background-color: #292929; + margin-top: 8px; +} +.page-navigation > ul > li { + margin-top: 32px; +} +@media (min-width: 744px) { + .page-navigation { + grid-column: 1/4; + } + .page-navigation__phone { + grid-column: 1/4; + } +} + +.burger::before { + content: ""; + background-size: cover; + height: 12px; + width: 18px; + filter: brightness(0%); + display: inline-block; + background-image: url("../images/menu.svg"); +} +.burger::after { + content: ""; + background-size: cover; + height: 12px; + width: 18px; + filter: brightness(0%); + display: none; + background-image: url("../images/menu_hover.svg"); +} +@media (min-width: 744px) { + .burger::before { + height: 16px; + width: 24px; + } + .burger::after { + height: 16px; + width: 24px; + } +} +.burger:hover::before { + display: none; +} +.burger:hover::after { + display: inline-block; +} +.burger__label { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; +} + +.phone { + display: flex; + align-items: center; + position: relative; +} +.phone__image { + width: 18px; + height: 18px; + filter: brightness(0%); +} +.phone__label { + display: inline-block; + color: #292929; +} +@media (max-width: 1259px) { + .phone__label { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; + } +} +@media (min-width: 744px) { + .phone__image { + width: 24px; + height: 24px; + } +} +@media (min-width: 1260px) { + .phone__label { + font-family: Inter, sans-serif; + font-size: 12px; + font-weight: 700; + line-height: 16px; + letter-spacing: 2px; + text-align: right; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-wrap: nowrap; + right: 30px; + position: absolute; + } +} +.phone:not(:hover) .phone__label { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; +} + +html { + scroll-behavior: smooth; +} + +/*# sourceMappingURL=main.css.map */ diff --git a/main.css.map b/main.css.map new file mode 100644 index 0000000000..8ff29cf24a --- /dev/null +++ b/main.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["src/styles/utils/_reset.scss","src/styles/blocks/header.scss","src/styles/utils/_mixins.scss","src/styles/utils/_vars.scss","src/styles/blocks/navigation.scss","src/styles/blocks/main.scss","src/styles/blocks/product-card.scss","src/styles/blocks/category.scss","src/styles/blocks/button.scss","src/styles/blocks/ad.scss","src/styles/blocks/form.scss","src/styles/blocks/section.scss","src/styles/blocks/address.scss","src/styles/blocks/footer.scss","src/styles/blocks/menu.scss","src/styles/blocks/page-navigation.scss","src/styles/blocks/burger.scss","src/styles/blocks/phone.scss","src/styles/main.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAiFE;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;ACtIF;ECgCE;EACA;EACA;EACA;EACA;EA4BA;EACA;EACA;ED9DA;EAEA;EACA;;ACRA;EDCF;ICuCI;IACA;IACA;;;AApCF;EDLF;IC6CI;IACA;;;ADpCF;EACE,aETU;EFUV,WETe;EFUf;EACA;EACA,aEZe;EFaf;EACA;EACA;EACA;EAEA;EACA;EACA;;AAEA;ECuCF;EACA;EACA;EDtCI;EACA;EACA;EACA;EACA;EAEA;;ACnCJ;EDwCE;IACE;IAEA,WEtCa;IFuCb,aEvCa;IFyCb;;EAEA;IACE;IACA;IACA;;;AC7CN;EDmDE;IACE;IAEA,WEtDc;IFuDd,aEvDc;;EF0DhB;IACE;;;;AGhEN;EACE;EAEA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EF0DA;EACA;EACA;EEzDE;EACA;EAEA;;AFnBF;EECF;IAsBI;;EAEA;IACE,QDhBK;ICiBL;;EAGF;IACE;IACA;IACA;;;AF3BJ;EELF;IAqCI;;;;ACnCF;EHSA,aCTY;EDUZ,WCTiB;EDUjB;EACA,aCXiB;EDYjB;EACA;EACA;EACA;EGbE;EACA;;AHPF;EGGA;IHmBE,WCjBe;IDkBf,aClBe;;;ADCjB;EGHA;IHwBE,WCrBgB;IDsBhB,aCtBgB;;;ADNlB;EGGA;IAOI;IACA;;;AHLJ;EGHA;IAYI;;;AAIJ;EHPA,aCTY;EDUZ,WCTiB;EDUjB;EACA,aCXiB;EDYjB;EACA;EACA;EACA;EGGE;EACA;EACA;;AHxBF;EGmBA;IHGE,WCjBe;IDkBf,aClBe;;;ADCjB;EGaA;IHQE,WCrBgB;IDsBhB,aCtBgB;;;ADNlB;EGmBA;IASI;IACA;;;AHvBJ;EGaA;IAcI;IACA;;;AAIJ;EH1BA,aCTY;EDUZ,WCTiB;EDUjB;EACA,aCXiB;EDYjB;EACA;EACA;EACA;EGsBE;EACA;EACA;EACA;;AH5CF;EGsCA;IHhBE,WCjBe;IDkBf,aClBe;;;ADCjB;EGgCA;IHXE,WCrBgB;IDsBhB,aCtBgB;;;ADNlB;EGsCA;IASI;IACA;;;AH1CJ;EGgCA;IAcI;;;AAIJ;EH5CA,aCTY;EDUZ,WCTiB;EDUjB;EACA,aCXiB;EDYjB;EACA;EACA;EACA;EGwCE;EACA;EACA;;AH7DF;EGwDA;IHlCE,WCjBe;IDkBf,aClBe;;;ADCjB;EGkDA;IH7BE,WCrBgB;IDsBhB,aCtBgB;;;ADNlB;EGwDA;IAQI;IACA;;;AH3DJ;EGkDA;IAaI;;;AAIJ;EACE;;AH1EF;EGyEA;IAII;;;AHvEJ;EGmEA;IAQI;;;;AChFN;EACE;;AAEA;EACE,OHWc;EGVd,QHUc;;AGPhB;EACE,aHPU;EGQV;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAIJ;EACE;;AJhCF;EICF;IAmCI;;EAEA;IACE,OHtBY;IGuBZ,QHvBY;;;ADXhB;EILF;IA4CI;IACA;;EAEA;IACE,OH/Ba;IGgCb,QHhCa;;EGmCf;IACE;IACA;;;;ACtDN;EACE;EL+BA;EACA;EACA;EACA;EACA;EK/BA;;ALNA;EKCF;ILuCI;IACA;IACA;;;AApCF;EKLF;IL6CI;IACA;;;AA/CF;EKCF;IAQI;IACA;;;ALJF;EKLF;IAaI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ALvBF;EKkBA;IAQI;;;ALpBJ;EKYA;IAYI;;;AL9BJ;EKiCE;IAEI;;;AL7BN;EK2BE;IAMI;;EAEA;IACE;IACA;;;AL3CR;EKgDE;IAEI;;;AL5CN;EK0CE;IAMI;;EAEA;IACE;IACA;;;AAKN;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAIJ;EACE;EAEA,aJxFU;EIyFV;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;ALpGF;EKwFA;IAeI;IACA;;;ALlGJ;EKkFA;IAoBI;;;;AC3GN;EACE;EACA;EAEA;EACA,kBLJM;EKKN;EACA;EAEA,aLPY;EKQZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OLnBM;EKqBN;;ANpBA;EMCF;IAsBI;;;ANjBF;EMLF;IA0BI;;EAEA;IACE;;;AAIJ;EACE;EACA,kBLrCI;EKsCJ,OLnCI;;AKsCN;EACE;EACA,OL3CI;;;AMAR;EACE;;APAA;EODF;IAII;IACA;;;APEF;EOPF;IASI;;;AAGF;EACE,aNTU;EMUV;EACA;EACA;EACA;EACA;EACA;EAEA;;APpBF;EOuBM;IACA;;;AAMN;EACE,aN5BU;EM6BV;EACA;EACA;EACA;EACA;EACA;EAEA;;;ACtCJ;EACE;EACA;;ARHA;EQCF;IAKI;IACA;;;ARDF;EQLF;IAUI;IACA;;;AAGF;EACE;;AAGF;EACE;EACA,kBPrBG;EOsBH;EACA;EACA;EAEA;EACA;;AAEA;ERgDF;EACA;EQ9CI,cP/BO;;AOkCT;ER0CF;EACA;EQxCI,cPpCE;;AOwCN;EACE,kBP3CG;EO4CH;EACA;EAEA;EACA;EAEA;EACA;EAEA;;AAEA;ERsBF;EACA;EQpBI,cPzDO;;AO4DT;ERgBF;EACA;EQdI,cP9DE;;AOkEN;ERcA;EACA;EACA;EACA;EACA;EACA;EACA;;;ASvFF;ETgCE;EACA;EACA;EACA;EACA;ESjCA;;ATJA;ESCF;ITuCI;IACA;IACA;;;AApCF;ESLF;IT6CI;IACA;;;;AU9CJ;EACE;EACA;EACA;;AVJA;EUCF;IAMI;IACA;;;AVFF;EULF;IAWI;;;AAGF;EACE;EAEA;EACA;EACA;EACA;EAEA;;AAIF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AVtCF;EU2BA;IAcI;;;AAIJ;EACE;EAEA,aT7CU;ES8CV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACzDJ;EXkEE;EACA;EACA;EWjEA;EACA;EACA;;AXJA;EWDF;IAQI;;;AXDF;EWPF;IAYI;;;;ACVJ;EACE;EACA;EACA;EACA;EACA;EACA;EZ0BA;EACA;EACA;EACA;EACA;EY1BA;EACA;EACA;EACA;EACA;EAEA;;AZjBA;EYCF;IZuCI;IACA;IACA;;;AApCF;EYLF;IZ6CI;IACA;;;AY5BF;EACE;;AAGF;EACE;EACA;EZ8CF;EACA;EACA;;AY5CE;EACE,QXrBO;;AWwBT;EACE,QXvBQ;EWwBR,OXxBQ;EWyBR,QXrBO;;ADfX;EYyCE;IACE;IACA;IACA;IACA;;EAEA;IACE,QXtCG;;EWyCL;IACE,QXxCI;IWyCJ,OXzCI;;;ADNV;EYqDE;IACE;;;;AAKN;EACE;;;ACjEF;EACE;;AAEA;EACE,aZFU;EYGV,WZCa;EYAb,aZCe;EYAf,aZDa;EYEb;EACA;EACA;EACA;EACA;EAEA,OZbI;;AYgBN;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;;AAEA;EACE,aZ3BQ;EY4BR;EACA,aZxBa;EYyBb;EACA;EACA;EACA;EACA,OZnCE;;AYuCJ;EACE,aZvCQ;EYwCR;EACA,aZpCa;EYqCb;EACA;EACA;EACA;EACA;EACA;EACA,OZjDE;;AYmDF;EACE;EACA;EACA;EACA;EACA,kBZxDA;EYyDA;;AAKN;EACE;;AbjEF;EaCF;IAoEI;;EAEA;IACE;;;;ACtEJ;EdkDA;EACA;EACA;EACA;EACA,QCzCW;EaVT;EACA;;AAGF;Ed2CA;EACA;EACA;EACA;EACA,QCzCW;EaHT;EACA;;AdbF;EciBE;Id2CF;IACA;;EcxCE;IduCF;IACA;;;AclCE;EACE;;AAGF;EACE;;AAIJ;Ed8CA;EACA;EACA;EACA;EACA;EACA;EACA;;;AezFF;EACE;EACA;EACA;;AAEA;EACE,OdQU;EcPV,QdOU;EcNV,QdQS;;AcLX;EACE;EACA,OdVI;;AcYJ;EAJF;IfwEA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAxFA;EeoBE;IACE,OdPM;IcQN,QdRM;;;ADRV;EeqBE;IACE,adzBQ;Ic0BR;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;;;AAIJ;EfuCA;EACA;EACA;EACA;EACA;EACA;EACA;;;AgBxEF;EACE","file":"main.css"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 24b04a579b..409823590c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,14 +13,16 @@ "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^1.8.6", + "@mate-academy/scripts": "^1.9.12", "@mate-academy/stylelint-config": "latest", - "@parcel/transformer-sass": "^2.12.0", + "@parcel/transformer-sass": "^2.13.2", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "parcel": "^2.13.2", "prettier": "^3.3.2", "stylelint": "^16.7.0", - "stylelint-scss": "^6.4.1" + "stylelint-scss": "^6.4.1", + "svgo": "^3.3.2" } }, "node_modules/@ampproject/remapping": { @@ -1222,10 +1224,11 @@ "dev": true }, "node_modules/@mate-academy/scripts": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-1.8.6.tgz", - "integrity": "sha512-b4om/whj4G9emyi84ORE3FRZzCRwRIesr8tJHXa8EvJdOaAPDpzcJ8A0sFfMsWH9NUOVmOwkBtOXDu5eZZ00Ig==", + "version": "1.9.12", + "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-1.9.12.tgz", + "integrity": "sha512-/OcmxMa34lYLFlGx7Ig926W1U1qjrnXbjFJ2TzUcDaLmED+A5se652NcWwGOidXRuMAOYLPU2jNYBEkKyXrFJA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/rest": "^17.11.2", "@types/get-port": "^4.2.0", @@ -2238,319 +2241,1262 @@ "@octokit/openapi-types": "^22.2.0" } }, - "node_modules/@parcel/cache": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.12.0.tgz", - "integrity": "sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==", + "node_modules/@parcel/bundler-default": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.13.2.tgz", + "integrity": "sha512-WY0LB1B7H6zIGXBtwssZRmzk788GzHoOGvMSIqgE/mZ0+jPF5V54zkjbhPBXj1fvoKOGlFy8Bm/gd/GnlQDdIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/graph": "3.3.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/codeframe": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.13.2.tgz", + "integrity": "sha512-qFMiS14orb6QSQj5/J/QN+gJElUfedVAKBTNkp9QB4i8ObdLHDqHRUzFb55ZQJI3G4vsxOOWAOUXGirtLwrxGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/codeframe/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@parcel/compressor-raw": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.13.2.tgz", + "integrity": "sha512-HX51w7WlgQY2f30p3Le1B5nFsUrtEA1phvWEwQDm1gEC6OPmDrxNsFLWx18JdGlKWTaPYbAGXRMSOjUWU41N9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/config-default": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.13.2.tgz", + "integrity": "sha512-oTf69/Ikxb7b8uqdu4SasRnIn7e68dCSNW2PhXuBkHq2GgzTSnpSqCwur70wQwrHKHdNt9RtIjLQgC6oOs5aJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/bundler-default": "2.13.2", + "@parcel/compressor-raw": "2.13.2", + "@parcel/namer-default": "2.13.2", + "@parcel/optimizer-css": "2.13.2", + "@parcel/optimizer-htmlnano": "2.13.2", + "@parcel/optimizer-image": "2.13.2", + "@parcel/optimizer-svgo": "2.13.2", + "@parcel/optimizer-swc": "2.13.2", + "@parcel/packager-css": "2.13.2", + "@parcel/packager-html": "2.13.2", + "@parcel/packager-js": "2.13.2", + "@parcel/packager-raw": "2.13.2", + "@parcel/packager-svg": "2.13.2", + "@parcel/packager-wasm": "2.13.2", + "@parcel/reporter-dev-server": "2.13.2", + "@parcel/resolver-default": "2.13.2", + "@parcel/runtime-browser-hmr": "2.13.2", + "@parcel/runtime-js": "2.13.2", + "@parcel/runtime-react-refresh": "2.13.2", + "@parcel/runtime-service-worker": "2.13.2", + "@parcel/transformer-babel": "2.13.2", + "@parcel/transformer-css": "2.13.2", + "@parcel/transformer-html": "2.13.2", + "@parcel/transformer-image": "2.13.2", + "@parcel/transformer-js": "2.13.2", + "@parcel/transformer-json": "2.13.2", + "@parcel/transformer-postcss": "2.13.2", + "@parcel/transformer-posthtml": "2.13.2", + "@parcel/transformer-raw": "2.13.2", + "@parcel/transformer-react-refresh-wrap": "2.13.2", + "@parcel/transformer-svg": "2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" + } + }, + "node_modules/@parcel/core": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.13.2.tgz", + "integrity": "sha512-1zC5Au4z9or5XyP6ipfvJqHktuB0jD7WuxMcV1CWAZGARHKylLe+0ccl+Wx7HN5O+xAvfCDtTlKrATY8qyrIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/cache": "2.13.2", + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2", + "@parcel/feature-flags": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/graph": "3.3.2", + "@parcel/logger": "2.13.2", + "@parcel/package-manager": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/profiler": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", + "base-x": "^3.0.8", + "browserslist": "^4.6.6", + "clone": "^2.1.1", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", + "json5": "^2.2.0", + "msgpackr": "^1.9.9", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/core/node_modules/@parcel/cache": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.13.2.tgz", + "integrity": "sha512-Y0nWlCMWDSp1lxiPI5zCWTGD0InnVZ+IfqeyLWmROAqValYyd0QZCvnSljKJ144jWTr0jXxDveir+DVF8sAYaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/utils": "2.13.2", + "lmdb": "2.8.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" + } + }, + "node_modules/@parcel/core/node_modules/@parcel/fs": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.13.2.tgz", + "integrity": "sha512-bdeIMuAXhMnROvqV55JWRUmjD438/T7h3r3NsFnkq+Mp4z2nuAn0STxbqDNxIgTMJHNunSDzncqRNMT7xJCe8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/feature-flags": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/watcher": "^2.0.7", + "@parcel/workers": "2.13.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" + } + }, + "node_modules/@parcel/core/node_modules/@parcel/node-resolver-core": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.4.2.tgz", + "integrity": "sha512-SwnKLcZRG1VdB5JeM/Ax5VMWWh2QfXufmMQCKKx0/Kk41nUpie+aIZKj3LH6Z/fJsnKig/vXpeWoxGhmG523qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/core/node_modules/@parcel/package-manager": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.13.2.tgz", + "integrity": "sha512-6HjfbdJUjHyNKzYB7GSYnOCtLwqCGW7yT95GlnnTKyFffvXYsqvBSyepMuPRlbX0mFUm4S9l2DH3OVZrk108AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/node-resolver-core": "3.4.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", + "@swc/core": "^1.7.26", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" + } + }, + "node_modules/@parcel/core/node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/@parcel/diagnostic": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.13.2.tgz", + "integrity": "sha512-6Au0JEJ5SY2gYrY0/m0i0sTuqTvK0k2E9azhBJR+zzCREbUxLiDdLZ+vXAfLW7t/kPAcWtdNU0Bj7pnZcMiMXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/events": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.13.2.tgz", + "integrity": "sha512-BVB9hW1RGh/tMaDHfpa+uIgz5PMULorCnjmWr/KvrlhdUSUQoaPYfRcTDYrKhoKuNIKsWSnTGvXrxE53L5qo0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/feature-flags": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.13.2.tgz", + "integrity": "sha512-cCwDAKD4Er24EkuQ+loVZXSURpM0gAGRsLJVoBtFiCSbB3nmIJJ6FLRwSBI/5OsOUExiUXDvSpfUCA5ldGTzbw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/graph": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.3.2.tgz", + "integrity": "sha512-aAysQLRr8SOonSHWqdKHMJzfcrDFXKK8IYZEurlOzosiSgZXrAK7q8b8JcaJ4r84/jlvQYNYneNZeFQxKjHXkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/feature-flags": "2.13.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/logger": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.13.2.tgz", + "integrity": "sha512-SFVABAMqaT9jIDn4maPgaQQauPDz8fpoKUGEuLF44Q0aQFbBUy7vX7KYs/EvYSWZo4VyJcUDHvIInBlepA0/ZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/markdown-ansi": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.13.2.tgz", + "integrity": "sha512-MIEoetfT/snk1GqWzBI3AhifV257i2xke9dvyQl14PPiMl+TlVhwnbQyA09WJBvDor+MuxZypHL7xoFdW8ff3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/markdown-ansi/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@parcel/namer-default": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.13.2.tgz", + "integrity": "sha512-wHaaJZcZEZUaCylC88PqjN4BybJhnkpP5RYg1xGWBTzdxhZthxvDbeOI+0YZ4jZXrLyVNjPyPRwyx0ETlq8MKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-css": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.13.2.tgz", + "integrity": "sha512-V9JszWd1Lk3b/9hpfRp6U8lfOIaFPyevGFNTrT+CFMviuipCMWrkUgBa7wtFvqN1i8IJ5NV5FhIlc12qfBBBgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.2", + "browserslist": "^4.6.6", + "lightningcss": "^1.22.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-htmlnano": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.13.2.tgz", + "integrity": "sha512-/ikDOZrnO4tdt99h34OyqnNIhugdeqWgnpfqEQ6Xi7odIn8OIGfwAHBXoyKRyUU8YUTqLhzOhckbSMwFTPRmXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "htmlnano": "^2.0.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-image": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.13.2.tgz", + "integrity": "sha512-1BsQOPoSB0TBJJ40TiN+VS3YK2V4EMDtaOML1Bet2oTLMlL77vJG/xT5QHzhExYK+ZyFh2R0gq7deEKXNScBzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" + } + }, + "node_modules/@parcel/optimizer-svgo": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.13.2.tgz", + "integrity": "sha512-QbuQzGfk5b/p9Yzc8PaSyjwalZbu/5afrKaLYKkiyG+kAVVOGMsxA2WPqPdb8x551AgdQL4OVODS9dE3zdDQOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-swc": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.13.2.tgz", + "integrity": "sha512-tyxXn36UAxZkAh+/cjvWwLCBkY+DL7+4G9NHWl5KeFqErc4diBox81Aiu8hnswNzFIg4ljn6f0rNpnWM3yfoMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.2", + "@swc/core": "^1.7.26", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-css": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.13.2.tgz", + "integrity": "sha512-agao71rIHU1lR776IMwxKvknl1/Yglhkr2qSY0JQC10PRQXHs7nj0GXd69p568W42A3/rkMWrXjWkGzhbAcPRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.2", + "lightningcss": "^1.22.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-html": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.13.2.tgz", + "integrity": "sha512-RHoYR4sp5VZATQbKE2Rn7DrJKK7HnvUTKB0WPFSppWJbJrqrZgvVCqnBMI2FPkbCoznGdt20rQ1R6vs591fuxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-js": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.13.2.tgz", + "integrity": "sha512-/dx19/vTCb4JIx/556hz6KEmwanasUNLAFsZ1PAm5AYDcoxJtHiNITRilA6JTlO+mdsERxOI5eE7tHCTou1ErQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "globals": "^13.2.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-js/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@parcel/packager-js/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@parcel/packager-raw": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.13.2.tgz", + "integrity": "sha512-P+BnMZ3WS4F+Kpd+iv6PCfgyCftPGf8iGSQOCPkWb5fjuNjfvIzsq4WAW41FPbu788JwChev1O4zREYzlQjG2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-svg": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.13.2.tgz", + "integrity": "sha512-K99yyQ1IsbQlGWYOLaxv/GGeWXDq0snbgGrCJvXFS8APZZ2CrXRm2634XLFkY3XA1cKqP47wz+KbibMT/+uaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "posthtml": "^0.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-wasm": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.13.2.tgz", + "integrity": "sha512-XqFQQcQRgZLPHgLWsQmWHr47ebsu9F7hmpHS+hFNHda4zj7WDtw7r7n6/d8CEXzdI3agpxR3XKVZzx7nB6sQig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2" + }, + "engines": { + "node": ">=16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/plugin": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.13.2.tgz", + "integrity": "sha512-Q+RIENS1B185yLPhrGdzBK1oJrZmh/RXrYMnzJs78Tog8SpihjeNBNR6z4PT85o2F+Gy2y1S9A26fpiGq161qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/types": "2.13.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/profiler": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.13.2.tgz", + "integrity": "sha512-fur6Oq2HkX6AiM8rtqmDvldH5JWz0sqXA1ylz8cE3XOiDZIuvCulZmQ+hH+4odaNH6QocI1MwfV+GDh3HlQoCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2", + "@parcel/types-internal": "2.13.2", + "chrome-trace-event": "^1.0.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-cli": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.13.2.tgz", + "integrity": "sha512-dIx4d/B+P+7n+lPCnjorM3ygHf3E/P3os3g6BjUe7gOlq/acTwtM0TNXNdRLcsw3K+RzA2VkHLnvdgjIJ18F5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "chalk": "^4.1.2", + "term-size": "^2.2.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@parcel/reporter-dev-server": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.13.2.tgz", + "integrity": "sha512-alWCPZiXEy5a1/mVnxQTJwJhWrnjaR+JOHQSu69eBGuWHqhXt2SCyKpczT08nm37GIxkhsiIaVR8sP4lVriApw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-tracer": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.13.2.tgz", + "integrity": "sha512-QdnyUHrYcb5iIMqqp6nmR0xi63sPLTALsRYMoLpQPXP/SrO4JQIqGeBSdHi+59esDnlbWDtN2RpBJ3cXlOsjsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "chrome-trace-event": "^1.0.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/resolver-default": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.13.2.tgz", + "integrity": "sha512-8bMK04AxUmLF0+rsEl9u2LiboAsTjAemer9N/qMnWfsbxvEDunfTR39fwEEXpGAQV2sFb0ZPYtTxOc8bk5ygcQ==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/fs": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/utils": "2.12.0", - "lmdb": "2.8.5" + "@parcel/node-resolver-core": "3.4.2", + "@parcel/plugin": "2.13.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.12.0" } }, - "node_modules/@parcel/codeframe": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.12.0.tgz", - "integrity": "sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==", + "node_modules/@parcel/resolver-default/node_modules/@parcel/fs": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.13.2.tgz", + "integrity": "sha512-bdeIMuAXhMnROvqV55JWRUmjD438/T7h3r3NsFnkq+Mp4z2nuAn0STxbqDNxIgTMJHNunSDzncqRNMT7xJCe8A==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.1.0" + "@parcel/feature-flags": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/watcher": "^2.0.7", + "@parcel/workers": "2.13.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" } }, - "node_modules/@parcel/core": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.12.0.tgz", - "integrity": "sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==", + "node_modules/@parcel/resolver-default/node_modules/@parcel/node-resolver-core": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.4.2.tgz", + "integrity": "sha512-SwnKLcZRG1VdB5JeM/Ax5VMWWh2QfXufmMQCKKx0/Kk41nUpie+aIZKj3LH6Z/fJsnKig/vXpeWoxGhmG523qg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/graph": "3.2.0", - "@parcel/logger": "2.12.0", - "@parcel/package-manager": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/profiler": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", - "abortcontroller-polyfill": "^1.1.9", - "base-x": "^3.0.8", - "browserslist": "^4.6.6", - "clone": "^2.1.1", - "dotenv": "^7.0.0", - "dotenv-expand": "^5.1.0", - "json5": "^2.2.0", - "msgpackr": "^1.9.9", + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/core/node_modules/dotenv": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", - "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "node_modules/@parcel/runtime-browser-hmr": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.13.2.tgz", + "integrity": "sha512-ByF8Ww1g6XbtwqBxNZrUz/j9EG0O7sqefkW7E2IWhlxFiNJakIrgaN5VKCBRRWaDvyAz0Kn6Md9e6GLmioRXkA==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2" + }, "engines": { - "node": ">=6" + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/diagnostic": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.12.0.tgz", - "integrity": "sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==", + "node_modules/@parcel/runtime-js": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.13.2.tgz", + "integrity": "sha512-DxRFW30RWM8noK1+yrqa+GYblMJabx6cg5Q7BI1SmTvVflomYVy2KEBVA161VZoxjHS6o0lToziAeVcUJT5GUQ==", "dev": true, + "license": "MIT", "dependencies": { - "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/events": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.12.0.tgz", - "integrity": "sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==", + "node_modules/@parcel/runtime-react-refresh": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.13.2.tgz", + "integrity": "sha512-anLQUANkU++brMa7PWBmvbGDgaNMA9BP7vg/g22KI7w6nh9D3f4JBi/Vo4N66zHATpex41gAjGmFXcBtotc5bQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "react-error-overlay": "6.0.9", + "react-refresh": ">=0.9 <=0.14" + }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/fs": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.12.0.tgz", - "integrity": "sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==", + "node_modules/@parcel/runtime-service-worker": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.13.2.tgz", + "integrity": "sha512-EWn3eM5d81uL9+hXqAnuXo/6yq/7p1VEOKn83FEsbO4TAb6Pd25bJ0mPnWpewPcJBQUoPX3Wjx7VzVit7eeuYw==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/rust": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/watcher": "^2.0.7", - "@parcel/workers": "2.12.0" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.13.2.tgz", + "integrity": "sha512-XFIewSwxkrDYOnnSP/XZ1LDLdXTs7L9CjQUWtl46Vir5Pq/rinemwLJeKGIwKLHy7fhUZQjYxquH6fBL+AY8DA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" }, - "peerDependencies": { - "@parcel/core": "^2.12.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/graph": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.2.0.tgz", - "integrity": "sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==", + "node_modules/@parcel/source-map": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", + "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", "dev": true, - "peer": true, "dependencies": { - "nullthrows": "^1.1.1" + "detect-libc": "^1.0.3" }, "engines": { - "node": ">= 12.0.0" + "node": "^12.18.3 || >=14" + } + }, + "node_modules/@parcel/transformer-babel": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.13.2.tgz", + "integrity": "sha512-2cHXLQ2+jeae+mImoaKTtkKhCKATaPY2+Pao0g3zh1xwhNu/08xj7upnbD548UEyEChUWn6IjWljDsx4y8Oa3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.2", + "browserslist": "^4.6.6", + "json5": "^2.2.0", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/logger": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.12.0.tgz", - "integrity": "sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==", + "node_modules/@parcel/transformer-css": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.13.2.tgz", + "integrity": "sha512-QR9I4wYc+Tw7eET5ak3BvXLdsmDJGzq+Gd4KaULa0sNKioDUXCi79E5rGICW8E+BbHGKar7boNzk7HrNZX7PLg==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0" + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.2", + "browserslist": "^4.6.6", + "lightningcss": "^1.22.1", + "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/markdown-ansi": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz", - "integrity": "sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==", + "node_modules/@parcel/transformer-html": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.13.2.tgz", + "integrity": "sha512-LlQHODz/R832ZuRkCGlOQe+TF1BR9nriUcVSc2Z7q5xQ/HblNPrVvvLDBcXG7xRToawS1y6jXG0Tihv47AykfQ==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.1.0" + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.12.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2", + "srcset": "4" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/node-resolver-core": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz", - "integrity": "sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==", + "node_modules/@parcel/transformer-html/node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@parcel/transformer-image": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.13.2.tgz", + "integrity": "sha512-sHk9UmJIPEGil+8ulK+Mi4BArbSuMPTXrY1z3EP4pKGHPCMABNKIRiricngvxCW1eVZrxSokeHQe2jYWJ4tAtA==", "dev": true, + "license": "MIT", "dependencies": { - "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" + } + }, + "node_modules/@parcel/transformer-js": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.13.2.tgz", + "integrity": "sha512-mn5DL+59x0FHeHKWOstZuKcz4rcVnZUAkXMPtERgXa0ggjJ1CgVOc26VD68sszC/aiF6yathz/LJtJpyluniLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", + "@swc/helpers": "^0.5.0", + "browserslist": "^4.6.6", "nullthrows": "^1.1.1", + "regenerator-runtime": "^0.14.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" } }, - "node_modules/@parcel/package-manager": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.12.0.tgz", - "integrity": "sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==", + "node_modules/@parcel/transformer-json": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.13.2.tgz", + "integrity": "sha512-AiLyWPnHaNvO9sGykYF15S3jzyQY0vSw3xQPj/xhDRv7IXQyt3y1zTtJmQsp/ri9vIzf2CruD42UXiaSPpbA8A==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/node-resolver-core": "3.3.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", - "@swc/core": "^1.3.36", - "semver": "^7.5.2" + "@parcel/plugin": "2.13.2", + "json5": "^2.2.0" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.12.0" } }, - "node_modules/@parcel/plugin": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.12.0.tgz", - "integrity": "sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==", + "node_modules/@parcel/transformer-postcss": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.13.2.tgz", + "integrity": "sha512-srcKQcTaaCGutcvpWeTue4/bScPJK3nXyql2QVNneufqxTQsOZcZg8lFaMc3ma6WjQn/m2emQC26eivr3MOhDg==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/types": "2.12.0" + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", + "clone": "^2.1.1", + "nullthrows": "^1.1.1", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/profiler": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.12.0.tgz", - "integrity": "sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==", + "node_modules/@parcel/transformer-posthtml": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.13.2.tgz", + "integrity": "sha512-pNvxKp7GWLKSbyV2xRaGWZNV/ut8uetMfbwpcGxboxgq5TV9dqnHxRGzsTvZTo7yHqQ3N6hycoGh+w8L/8sg8Q==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0", - "chrome-trace-event": "^1.0.2" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.12.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/rust": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.12.0.tgz", - "integrity": "sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==", + "node_modules/@parcel/transformer-raw": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.13.2.tgz", + "integrity": "sha512-KsTasFp+jwkGjBLrHO6oiqIIwOeiyNPx5NawmIzXUuGvQv6UhTSayk3NnFxteOVXzy5C9GfrQ5W+IBrHe6JWaw==", "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.13.2" + }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/source-map": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", - "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", + "node_modules/@parcel/transformer-react-refresh-wrap": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.13.2.tgz", + "integrity": "sha512-2UuuzHzpUx8Z0muoM3cETa7PDRJIG9a5nxPaTBZttT5ucprskITakky5pzsd4gabmNzWfZ5raRG5ixV3zOSL5A==", "dev": true, + "license": "MIT", "dependencies": { - "detect-libc": "^1.0.3" + "@parcel/plugin": "2.13.2", + "@parcel/utils": "2.13.2", + "react-refresh": ">=0.9 <=0.14" }, "engines": { - "node": "^12.18.3 || >=14" + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/@parcel/transformer-sass": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.12.0.tgz", - "integrity": "sha512-xLLoSLPST+2AHJwFRLl4foArDjjy6P1RChP3TxMU2MVS1sbKGJnfFhFpHAacH8ASjuGtu5rbpfpHRZePlvoZxw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.13.2.tgz", + "integrity": "sha512-FemdyKa6wvkitG2DQgkDI6NkyJCsQ2My/z3idcFAyf8kb3KBIJ+a0ZK4QALvLnJiC9ugeIKsZk5uFjoJAHX1XQ==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", "sass": "^1.38.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-svg": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.13.2.tgz", + "integrity": "sha512-ANwWE4/n4rXrlbmY3iT18ndlxlLP1ubapR1wYL9bpp2cKA8ny2tCe5wlzLxBAfwcZx8cd15N/5v/ZwS6xt6BXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/rust": "2.13.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.12.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2558,43 +3504,70 @@ } }, "node_modules/@parcel/types": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.12.0.tgz", - "integrity": "sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.13.2.tgz", + "integrity": "sha512-6ixqjk2pjKELn4sQ/jdvpbCVTeH6xXQTdotkN8Wzk68F2K2MtSPIRAEocumlexScfffbRQplr2MdIf1JJWLogA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/types-internal": "2.13.2", + "@parcel/workers": "2.13.2" + } + }, + "node_modules/@parcel/types-internal": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.13.2.tgz", + "integrity": "sha512-j0zb3WNM8O/+d8CArll7/4w4AyBED3Jbo32/unz89EPVN0VklmgBrRCAI5QXDKuJAGdAZSL5/a8bNYbwl7/Wxw==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/cache": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/package-manager": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/feature-flags": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/workers": "2.12.0", "utility-types": "^3.10.0" } }, "node_modules/@parcel/utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.12.0.tgz", - "integrity": "sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.13.2.tgz", + "integrity": "sha512-BkFtRo5xenmonwnBy+X4sVbHIRrx+ZHMPpS/6hFqyTvoUUFq2yTFQnfRGVVOOvscVUxpGom+kewnrTG3HHbZoA==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/codeframe": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/markdown-ansi": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/codeframe": "2.13.2", + "@parcel/diagnostic": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/markdown-ansi": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "chalk": "^4.1.0", + "chalk": "^4.1.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/@parcel/watcher": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", @@ -2869,27 +3842,28 @@ } }, "node_modules/@parcel/workers": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.12.0.tgz", - "integrity": "sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.13.2.tgz", + "integrity": "sha512-P78BpH0yTT9KK09wgK4eabtlb5OlcWAmZebOToN5UYuwWEylKt0gWZx1+d+LPQupvK84/iZ+AutDScsATjgUMw==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/profiler": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/profiler": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@sinclair/typebox": { @@ -2943,14 +3917,15 @@ "dev": true }, "node_modules/@swc/core": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.0.tgz", - "integrity": "sha512-d4vMzH6ICllDwlPuhset2h8gu/USHdbyfJim+2hQEdxC0UONtfpmu38XBgNqRjStrji1Q5M10jfeUZL3cu1i8g==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.0.tgz", + "integrity": "sha512-+CuuTCmQFfzaNGg1JmcZvdUVITQXJk9sMnl1C2TiDLzOSVOJRwVD4dNo5dljX/qxpMAN+2BIYlwjlSkoGi6grg==", "dev": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.9" + "@swc/types": "^0.1.17" }, "engines": { "node": ">=10" @@ -2960,16 +3935,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.0", - "@swc/core-darwin-x64": "1.7.0", - "@swc/core-linux-arm-gnueabihf": "1.7.0", - "@swc/core-linux-arm64-gnu": "1.7.0", - "@swc/core-linux-arm64-musl": "1.7.0", - "@swc/core-linux-x64-gnu": "1.7.0", - "@swc/core-linux-x64-musl": "1.7.0", - "@swc/core-win32-arm64-msvc": "1.7.0", - "@swc/core-win32-ia32-msvc": "1.7.0", - "@swc/core-win32-x64-msvc": "1.7.0" + "@swc/core-darwin-arm64": "1.10.0", + "@swc/core-darwin-x64": "1.10.0", + "@swc/core-linux-arm-gnueabihf": "1.10.0", + "@swc/core-linux-arm64-gnu": "1.10.0", + "@swc/core-linux-arm64-musl": "1.10.0", + "@swc/core-linux-x64-gnu": "1.10.0", + "@swc/core-linux-x64-musl": "1.10.0", + "@swc/core-win32-arm64-msvc": "1.10.0", + "@swc/core-win32-ia32-msvc": "1.10.0", + "@swc/core-win32-x64-msvc": "1.10.0" }, "peerDependencies": { "@swc/helpers": "*" @@ -2981,13 +3956,14 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.0.tgz", - "integrity": "sha512-2ylhM7f0HwUwLrFYZAe/dse8PCbPsYcJS3Dt7Q8NT3PUn7vy6QOMxNcOPPuDrnmaXqQQO3oxdmRapguTxaat9g==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.0.tgz", + "integrity": "sha512-wCeUpanqZyzvgqWRtXIyhcFK3CqukAlYyP+fJpY2gWc/+ekdrenNIfZMwY7tyTFDkXDYEKzvn3BN/zDYNJFowQ==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" @@ -2997,13 +3973,14 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.0.tgz", - "integrity": "sha512-SgVnN4gT1Rb9YfTkp4FCUITqSs7Yj0uB2SUciu5CV3HuGvS5YXCUzh+KrwpLFtx8NIgivISKcNnb41mJi98X8Q==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.0.tgz", + "integrity": "sha512-0CZPzqTynUBO+SHEl/qKsFSahp2Jv/P2ZRjFG0gwZY5qIcr1+B/v+o74/GyNMBGz9rft+F2WpU31gz2sJwyF4A==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" @@ -3013,13 +3990,14 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.0.tgz", - "integrity": "sha512-+Z9Dayart1iKJQEJJ9N/KS4z5EdXJE3WPFikY0jonKTo4Dd8RuyVz5yLvqcIMeVdz/SwximATaL6iJXw7hZS9A==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.0.tgz", + "integrity": "sha512-oq+DdMu5uJOFPtRkeiITc4kxmd+QSmK+v+OBzlhdGkSgoH3yRWZP+H2ao0cBXo93ZgCr2LfjiER0CqSKhjGuNA==", "cpu": [ "arm" ], "dev": true, + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -3029,13 +4007,14 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.0.tgz", - "integrity": "sha512-UnLrCiZ1EI4shznJn0xP6DLgsXUSwtfsdgHhGYCrvbgVBBve3S9iFgVFEB3SPl7Q/TdowNbrN4zHU0oChfiNfw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.0.tgz", + "integrity": "sha512-Y6+PC8knchEViRxiCUj3j8wsGXaIhuvU+WqrFqV834eiItEMEI9+Vh3FovqJMBE3L7d4E4ZQtgImHCXjrHfxbw==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -3045,13 +4024,14 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.0.tgz", - "integrity": "sha512-H724UANA+ptsfwKRr9mnaDa9cb5fw0oFysiGKTgb3DMYcgk3Od0jMTnXVPFSVpo7FlmyxeC9K8ueUPBOoOK6XA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.0.tgz", + "integrity": "sha512-EbrX9A5U4cECCQQfky7945AW9GYnTXtCUXElWTkTYmmyQK87yCyFfY8hmZ9qMFIwxPOH6I3I2JwMhzdi8Qoz7g==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -3061,13 +4041,14 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.0.tgz", - "integrity": "sha512-SY3HA0K0Dpqt1HIfMLGpwL4hd4UaL2xHP5oZXPlRQPhUDZrbb4PbI3ZJnh66c63eL4ZR8EJ+HRFI0Alx5p69Zw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.0.tgz", + "integrity": "sha512-TaxpO6snTjjfLXFYh5EjZ78se69j2gDcqEM8yB9gguPYwkCHi2Ylfmh7iVaNADnDJFtjoAQp0L41bTV/Pfq9Cg==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -3077,13 +4058,14 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.0.tgz", - "integrity": "sha512-cEJ2ebtV1v/5Ilb55E05J6F5SrHKQWzUttIhR5Mkayyo+yvPslcpByuFC3D+J7X1ebziTOBpWuMpUdjLfh3SMQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.0.tgz", + "integrity": "sha512-IEGvDd6aEEKEyZFZ8oCKuik05G5BS7qwG5hO5PEMzdGeh8JyFZXxsfFXbfeAqjue4UaUUrhnoX+Ze3M2jBVMHw==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -3093,13 +4075,14 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.0.tgz", - "integrity": "sha512-ecQOOmzEssz+m0pR4xDYCGuvn3E/l0nQ3tk5jp1NA1lsAy4bMV0YbYCHjptYvWL/UjhIerIp3IlCJ8x5DodSog==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.0.tgz", + "integrity": "sha512-UkQ952GSpY+Z6XONj9GSW8xGSkF53jrCsuLj0nrcuw7Dvr1a816U/9WYZmmcYS8tnG2vHylhpm6csQkyS8lpCw==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" @@ -3109,13 +4092,14 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.0.tgz", - "integrity": "sha512-gz81seZkRn3zMnVOc7L5k6F4vQC82gIxmHiL+GedK+A37XI/X26AASU3zxvORnqQbwQYXQ+AEVckxBmFlz3v2g==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.0.tgz", + "integrity": "sha512-a2QpIZmTiT885u/mUInpeN2W9ClCnqrV2LnMqJR1/Fgx1Afw/hAtiDZPtQ0SqS8yDJ2VR5gfNZo3gpxWMrqdVA==", "cpu": [ "ia32" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" @@ -3125,13 +4109,14 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.0.tgz", - "integrity": "sha512-b5Fd1xEOw9uqBpj2lqsaR4Iq9UhiL84hNDcEsi6DQA7Y1l85waQAslTbS0E4/pJ1PISAs0jW0zIGLco1eaWBOg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.0.tgz", + "integrity": "sha512-tZcCmMwf483nwsEBfUk5w9e046kMa1iSik4bP9Kwi2FGtOfHuDfIcwW4jek3hdcgF5SaBW1ktnK/lgQLDi5AtA==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" @@ -3144,13 +4129,25 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } }, "node_modules/@swc/types": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.9.tgz", - "integrity": "sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==", + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", + "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3" } @@ -3164,6 +4161,16 @@ "node": ">= 10" } }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -3344,13 +4351,6 @@ "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", - "dev": true, - "peer": true - }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -3652,7 +4652,6 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", "dev": true, - "peer": true, "dependencies": { "safe-buffer": "^5.0.1" } @@ -3707,6 +4706,13 @@ "readable-stream": "^3.4.0" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -4018,7 +5024,6 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, - "peer": true, "engines": { "node": ">=0.8" } @@ -4174,31 +5179,156 @@ "node": ">=12 || >=16" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.1.tgz", + "integrity": "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/css-tree": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", "dev": true, - "bin": { - "cssesc": "bin/cssesc" + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=4" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -4500,11 +5630,33 @@ } }, "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", "dev": true, - "peer": true + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand/node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } }, "node_modules/electron-to-chromium": { "version": "1.4.832", @@ -5144,6 +6296,101 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/htmlnano": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.1.tgz", + "integrity": "sha512-kAERyg/LuNZYmdqgCdYvugyLWNFAm8MWXpQMz1pLpetmCbFwoMxvkSoaAMlFrOC4OKTWI4KlZGT/RsNxg4ghOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^9.0.0", + "posthtml": "^0.16.5", + "timsort": "^0.3.0" + }, + "peerDependencies": { + "cssnano": "^7.0.0", + "postcss": "^8.3.11", + "purgecss": "^6.0.0", + "relateurl": "^0.2.7", + "srcset": "5.0.1", + "svgo": "^3.0.2", + "terser": "^5.10.0", + "uncss": "^0.17.3" + }, + "peerDependenciesMeta": { + "cssnano": { + "optional": true + }, + "postcss": { + "optional": true + }, + "purgecss": { + "optional": true + }, + "relateurl": { + "optional": true + }, + "srcset": { + "optional": true + }, + "svgo": { + "optional": true + }, + "terser": { + "optional": true + }, + "uncss": { + "optional": true + } + } + }, + "node_modules/htmlnano/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/htmlnano/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/htmlnano/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/htmlparser2": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", @@ -5463,6 +6710,13 @@ "node": ">=8" } }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true, + "license": "ISC" + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -6361,31 +7615,270 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", + "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", + "dev": true + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.28.2.tgz", + "integrity": "sha512-ePLRrbt3fgjXI5VFZOLbvkLD5ZRuxGKm+wJ3ujCqBtL3NanDHPo/5zicR5uEKAPiIjBYF99BM4K4okvMznjkVA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.28.2", + "lightningcss-darwin-x64": "1.28.2", + "lightningcss-freebsd-x64": "1.28.2", + "lightningcss-linux-arm-gnueabihf": "1.28.2", + "lightningcss-linux-arm64-gnu": "1.28.2", + "lightningcss-linux-arm64-musl": "1.28.2", + "lightningcss-linux-x64-gnu": "1.28.2", + "lightningcss-linux-x64-musl": "1.28.2", + "lightningcss-win32-arm64-msvc": "1.28.2", + "lightningcss-win32-x64-msvc": "1.28.2" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.28.2.tgz", + "integrity": "sha512-/8cPSqZiusHSS+WQz0W4NuaqFjquys1x+NsdN/XOHb+idGHJSoJ7SoQTVl3DZuAgtPZwFZgRfb/vd1oi8uX6+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.28.2.tgz", + "integrity": "sha512-R7sFrXlgKjvoEG8umpVt/yutjxOL0z8KWf0bfPT3cYMOW4470xu5qSHpFdIOpRWwl3FKNMUdbKtMUjYt0h2j4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.28.2.tgz", + "integrity": "sha512-l2qrCT+x7crAY+lMIxtgvV10R8VurzHAoUZJaVFSlHrN8kRLTvEg9ObojIDIexqWJQvJcVVV3vfzsEynpiuvgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.28.2.tgz", + "integrity": "sha512-DKMzpICBEKnL53X14rF7hFDu8KKALUJtcKdFUCW5YOlGSiwRSgVoRjM97wUm/E0NMPkzrTi/rxfvt7ruNK8meg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.28.2.tgz", + "integrity": "sha512-nhfjYkfymWZSxdtTNMWyhFk2ImUm0X7NAgJWFwnsYPOfmtWQEapzG/DXZTfEfMjSzERNUNJoQjPAbdqgB+sjiw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.28.2.tgz", + "integrity": "sha512-1SPG1ZTNnphWvAv8RVOymlZ8BDtAg69Hbo7n4QxARvkFVCJAt0cgjAw1Fox0WEhf4PwnyoOBaVH0Z5YNgzt4dA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.28.2.tgz", + "integrity": "sha512-ZhQy0FcO//INWUdo/iEdbefntTdpPVQ0XJwwtdbBuMQe+uxqZoytm9M+iqR9O5noWFaxK+nbS2iR/I80Q2Ofpg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.28.2.tgz", + "integrity": "sha512-alb/j1NMrgQmSFyzTbN1/pvMPM+gdDw7YBuQ5VSgcFDypN3Ah0BzC2dTZbzwzaMdUVDszX6zH5MzjfVN1oGuww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.28.2.tgz", + "integrity": "sha512-WnwcjcBeAt0jGdjlgbT9ANf30pF0C/QMb1XnLnH272DQU8QXh+kmpi24R55wmWBwaTtNAETZ+m35ohyeMiNt+g==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/known-css-properties": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", - "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", - "dev": true - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.28.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.28.2.tgz", + "integrity": "sha512-3piBifyT3avz22o6mDKywQC/OisH2yDK+caHWkiMsF82i3m5wDBadyCjlCQ5VNgzYkxrWZgiaxHDdd5uxsi0/A==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/lines-and-columns": { @@ -6935,6 +8428,19 @@ "node": ">=8" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", @@ -7098,6 +8604,153 @@ "node": ">=6" } }, + "node_modules/parcel": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.13.2.tgz", + "integrity": "sha512-ROp1Lf6cihWYzdkieXH+KWVkjlqiUMqW18MBMNZQ3sQitnXWGozTgSYIfpUFLQqaHLgBfm5inOwdqmbzExdpYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/config-default": "2.13.2", + "@parcel/core": "2.13.2", + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2", + "@parcel/feature-flags": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/package-manager": "2.13.2", + "@parcel/reporter-cli": "2.13.2", + "@parcel/reporter-dev-server": "2.13.2", + "@parcel/reporter-tracer": "2.13.2", + "@parcel/utils": "2.13.2", + "chalk": "^4.1.2", + "commander": "^12.1.0", + "get-port": "^4.2.0" + }, + "bin": { + "parcel": "lib/bin.js" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/parcel/node_modules/@parcel/fs": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.13.2.tgz", + "integrity": "sha512-bdeIMuAXhMnROvqV55JWRUmjD438/T7h3r3NsFnkq+Mp4z2nuAn0STxbqDNxIgTMJHNunSDzncqRNMT7xJCe8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/feature-flags": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/watcher": "^2.0.7", + "@parcel/workers": "2.13.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" + } + }, + "node_modules/parcel/node_modules/@parcel/node-resolver-core": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.4.2.tgz", + "integrity": "sha512-SwnKLcZRG1VdB5JeM/Ax5VMWWh2QfXufmMQCKKx0/Kk41nUpie+aIZKj3LH6Z/fJsnKig/vXpeWoxGhmG523qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/parcel/node_modules/@parcel/package-manager": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.13.2.tgz", + "integrity": "sha512-6HjfbdJUjHyNKzYB7GSYnOCtLwqCGW7yT95GlnnTKyFffvXYsqvBSyepMuPRlbX0mFUm4S9l2DH3OVZrk108AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/node-resolver-core": "3.4.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", + "@swc/core": "^1.7.26", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.2" + } + }, + "node_modules/parcel/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/parcel/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/parcel/node_modules/get-port": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", + "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7335,6 +8988,138 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "node_modules/posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.12.1.tgz", + "integrity": "sha512-rYFmsDLfYm+4Ts2Oh4DCDSZPtdC1BLnRXAobypVzX9alj28KGl65dIFtgDY9zB57D0TC4Qxqrawuq/2et1P0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^9.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/posthtml-parser/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml/node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/prettier": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", @@ -7465,12 +9250,29 @@ "node": ">=8" } }, + "node_modules/react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", + "dev": true, + "license": "MIT" + }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -7596,6 +9398,13 @@ "node": ">=6" } }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7977,6 +9786,21 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "node_modules/srcset": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-5.0.1.tgz", + "integrity": "sha512-/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -8343,6 +10167,32 @@ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -8380,6 +10230,19 @@ "node": ">=8.0.0" } }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -8400,6 +10263,13 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", + "dev": true, + "license": "MIT" + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -8494,10 +10364,11 @@ } }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" }, "node_modules/type-detect": { "version": "4.0.8", diff --git a/package.json b/package.json index 09a836f3e9..94222ee2c1 100644 --- a/package.json +++ b/package.json @@ -13,24 +13,26 @@ "deploy": "mate-scripts deploy", "update": "mate-scripts update", "postinstall": "npm run update", - "test": "npm run lint && npm run test:only" + "test": "npm run lint && npm run test:only", + "sass": "sass ./src/styles/main.scss ./main.css --watch" }, "keywords": [], "author": "Mate Academy", "license": "GPL-3.0", - "dependencies": {}, "devDependencies": { "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^1.8.6", + "@mate-academy/scripts": "^1.9.12", "@mate-academy/stylelint-config": "latest", - "@parcel/transformer-sass": "^2.12.0", + "@parcel/transformer-sass": "^2.13.2", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "parcel": "^2.13.2", "prettier": "^3.3.2", "stylelint": "^16.7.0", - "stylelint-scss": "^6.4.1" + "stylelint-scss": "^6.4.1", + "svgo": "^3.3.2" }, "browserslist": [ "last 2 versions" diff --git a/src/images/brand.png b/src/images/brand.png new file mode 100644 index 0000000000..8c7024041b Binary files /dev/null and b/src/images/brand.png differ diff --git a/src/images/crown.svg b/src/images/crown.svg deleted file mode 100644 index 962d90e9ca..0000000000 --- a/src/images/crown.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/favicon.ico b/src/images/favicon.ico new file mode 100644 index 0000000000..669b123dc1 Binary files /dev/null and b/src/images/favicon.ico differ diff --git a/src/images/favicon.png b/src/images/favicon.png deleted file mode 100644 index 0e04c361e1..0000000000 Binary files a/src/images/favicon.png and /dev/null differ diff --git a/src/images/logo.png b/src/images/logo.png deleted file mode 100644 index 9b6a4dd7d4..0000000000 Binary files a/src/images/logo.png and /dev/null differ diff --git a/src/images/photos/1.jpg b/src/images/photos/1.jpg deleted file mode 100644 index f796f55605..0000000000 Binary files a/src/images/photos/1.jpg and /dev/null differ diff --git a/src/images/photos/2.jpg b/src/images/photos/2.jpg deleted file mode 100644 index d9053b6a20..0000000000 Binary files a/src/images/photos/2.jpg and /dev/null differ diff --git a/src/images/photos/3.jpg b/src/images/photos/3.jpg deleted file mode 100644 index 5e40be94d2..0000000000 Binary files a/src/images/photos/3.jpg and /dev/null differ diff --git a/src/images/photos/4.jpg b/src/images/photos/4.jpg deleted file mode 100644 index de64313343..0000000000 Binary files a/src/images/photos/4.jpg and /dev/null differ diff --git a/src/images/photos/5.jpg b/src/images/photos/5.jpg deleted file mode 100644 index aad06bff54..0000000000 Binary files a/src/images/photos/5.jpg and /dev/null differ diff --git a/src/images/photos/6.jpg b/src/images/photos/6.jpg deleted file mode 100644 index 104ff18faa..0000000000 Binary files a/src/images/photos/6.jpg and /dev/null differ diff --git a/src/images/photos/footer.jpg b/src/images/photos/footer.jpg new file mode 100644 index 0000000000..1ad7c47f42 Binary files /dev/null and b/src/images/photos/footer.jpg differ diff --git a/src/images/photos/header.jpg b/src/images/photos/header.jpg new file mode 100644 index 0000000000..bc6f7e7d71 Binary files /dev/null and b/src/images/photos/header.jpg differ diff --git a/src/images/photos/image-1.jpg b/src/images/photos/image-1.jpg new file mode 100644 index 0000000000..300ae83300 Binary files /dev/null and b/src/images/photos/image-1.jpg differ diff --git a/src/images/photos/image-2.jpg b/src/images/photos/image-2.jpg new file mode 100644 index 0000000000..06521b017d Binary files /dev/null and b/src/images/photos/image-2.jpg differ diff --git a/src/images/photos/image-3.jpg b/src/images/photos/image-3.jpg new file mode 100644 index 0000000000..023d500685 Binary files /dev/null and b/src/images/photos/image-3.jpg differ diff --git a/src/images/photos/image-4.jpg b/src/images/photos/image-4.jpg new file mode 100644 index 0000000000..f88bff2140 Binary files /dev/null and b/src/images/photos/image-4.jpg differ diff --git a/src/images/photos/image-5.jpg b/src/images/photos/image-5.jpg new file mode 100644 index 0000000000..526bd05c49 Binary files /dev/null and b/src/images/photos/image-5.jpg differ diff --git a/src/images/photos/image-6.jpg b/src/images/photos/image-6.jpg new file mode 100644 index 0000000000..9874f0f989 Binary files /dev/null and b/src/images/photos/image-6.jpg differ diff --git a/src/images/photos/product_1.jpg b/src/images/photos/product_1.jpg new file mode 100644 index 0000000000..cd5b7adb93 Binary files /dev/null and b/src/images/photos/product_1.jpg differ diff --git a/src/images/photos/product_2.jpg b/src/images/photos/product_2.jpg new file mode 100644 index 0000000000..54767e1903 Binary files /dev/null and b/src/images/photos/product_2.jpg differ diff --git a/src/images/photos/product_3.jpg b/src/images/photos/product_3.jpg new file mode 100644 index 0000000000..79c0b57863 Binary files /dev/null and b/src/images/photos/product_3.jpg differ diff --git a/src/images/sound_waves.svg b/src/images/sound_waves.svg new file mode 100644 index 0000000000..cb64c6b3d1 --- /dev/null +++ b/src/images/sound_waves.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/index.html b/src/index.html index f63807ad65..20c3883eee 100644 --- a/src/index.html +++ b/src/index.html @@ -7,16 +7,272 @@ content="width=device-width, initial-scale=1.0" /> Miami + + + + + + -

Miami

+
+ + +

The world shades. Your music shines.

+
+ + + +
+
+ +
+
+ Smart speaker +

+ Bose portable Smart speaker +

+

Smart home

+

+ $ 399.00 +

+
+
+ Flex Bluetooth +

+ SoundLink Flex Bluetooth speaker +

+

Portable bluetooth

+

+ $ 149.00 +

+
+
+ Color Bluetooth +

+ SoundLink Color Bluetooth speaker II +

+

Portable bluetooth

+

+ $ 129.00 +

+
+
+
+ +
+

+ Browse Bose
products by category +

+
+
+
+
+
+

Headphones & earbuds

+
+
+
+
+
+
+

Speakers

+
+
+
+
+
+
+

Audio sunglasses

+
+ View all +
+ +
+

+ Why buy direct
+ from Bose +

+
+
    +
  • Free 2-day shipping and returns
  • +
  • 90-day risk-free trial
  • +
  • World class customer service
  • +
  • My Bose account management
  • +
+ +

+ A great product is more than what’s in the box. + It’s a promise of premium performance, world-class + support, and everything you expect from a trusted + brand. It’s just one of many reasons why you’ll + shop with confidence on Bose.com. +

+
+
+ +
+

Contact us

+
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ + + + + + +
+
+ + +
diff --git a/src/scripts/main.js b/src/scripts/main.js index ad9a93a7c1..6c8736cae8 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1 +1,18 @@ 'use strict'; + +window.addEventListener('hashchange', () => { + if (window.location.hash === '#menu') { + document.body.classList.add('page__body--with-menu'); + } else { + document.body.classList.remove('page__body--with-menu'); + } +}); + +const form = document.querySelector("form"); + +form.addEventListener("submit", function (event) { + event.preventDefault(); // Zablokuj domyślne zachowanie formularza + const submitButton = document.getElementById("submit-btn"); + submitButton.disabled = true; // Wyłącz przycisk + console.log("Formularz został wysłany, przycisk wyłączony."); +}); diff --git a/src/styles/_fonts.scss b/src/styles/_fonts.scss deleted file mode 100644 index 45cdd54008..0000000000 --- a/src/styles/_fonts.scss +++ /dev/null @@ -1,6 +0,0 @@ -@font-face { - font-family: Roboto, Arial, Helvetica, sans-serif; - src: url('../fonts/Roboto-Regular-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} diff --git a/src/styles/_typography.scss b/src/styles/_typography.scss deleted file mode 100644 index 1837eb46e2..0000000000 --- a/src/styles/_typography.scss +++ /dev/null @@ -1,3 +0,0 @@ -h1 { - @extend %h1; -} diff --git a/src/styles/_utils.scss b/src/styles/_utils.scss index 3280c3fe10..98d7e79eba 100644 --- a/src/styles/_utils.scss +++ b/src/styles/_utils.scss @@ -1,3 +1,3 @@ @import 'utils/vars'; @import 'utils/mixins'; -@import 'utils/extends'; +@import 'utils/reset'; diff --git a/src/styles/blocks/ad.scss b/src/styles/blocks/ad.scss new file mode 100644 index 0000000000..9f5bce7e4e --- /dev/null +++ b/src/styles/blocks/ad.scss @@ -0,0 +1,43 @@ +.ad { + grid-column: span 2; + + @include for-tablet { + grid-column: span 3; + margin-top: 120px; + } + + @include for-desktop { + grid-column: span 5; + } + + &__benefit { + font-family: $font-family; + font-size: 16px; + font-weight: 700; + line-height: 22.4px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + + margin-top: 16px; + + @include for-tablet { + &:first-of-type { + margin-top: 0; + } + } + + } + + &__description{ + font-family: $font-family; + font-size: 16px; + font-weight: 400; + line-height: 27px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + + margin-top: 40px; + } +} diff --git a/src/styles/blocks/address.scss b/src/styles/blocks/address.scss new file mode 100644 index 0000000000..8ca7de5b23 --- /dev/null +++ b/src/styles/blocks/address.scss @@ -0,0 +1,64 @@ +@import '../utils/mixins'; + +.address { + margin-top: 48px; + margin-bottom: 96px; + grid-column: span 2; + + @include for-tablet { + grid-column: span 3; + margin-top: 0; + } + + @include for-desktop { + grid-column: span 6; + } + + &__item { + height: 50px; + + display: flex; + flex-direction: column; + justify-content: space-between; + box-sizing: border-box; + + margin-bottom: 24px; + } + + + &__label { + margin-top: 24px; + box-sizing: border-box; + + font-family: Inter, sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 19.6px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + color: #9FADC2; + + @include for-tablet { + margin-top: 16px; + } + } + + &__content { + margin-top: 8px; + + font-family: $font-family; + font-size: 16px; + font-weight: 400; + line-height: 22.4px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-decoration: none; + color: #3E3E3E; + + &:hover { + color: $gray-hover; + } + } +} diff --git a/src/styles/blocks/burger.scss b/src/styles/blocks/burger.scss new file mode 100644 index 0000000000..93b3e57278 --- /dev/null +++ b/src/styles/blocks/burger.scss @@ -0,0 +1,41 @@ +@use '../utils/mixins' as *; + +.burger { + &::before { + @include burger; + + display: inline-block; + background-image: url('../images/menu.svg'); + } + + &::after { + @include burger; + + display: none; + background-image: url('../images/menu_hover.svg'); + } + + @include for-tablet { + &::before { + @include bigger-burger; + } + + &::after { + @include bigger-burger; + } + } + + &:hover { + &::before { + display: none; + } + + &::after { + display: inline-block; + } + } + + &__label { + @include visually-hidden; + } +} diff --git a/src/styles/blocks/button.scss b/src/styles/blocks/button.scss new file mode 100644 index 0000000000..9e358fc485 --- /dev/null +++ b/src/styles/blocks/button.scss @@ -0,0 +1,45 @@ +@import '../utils/mixins'; + +.button { + width: 85vw; + margin: 0 auto; + grid-column: span 2; + + border-radius: 40px; + background-color: $black; + border: $border-thick transparent solid; + box-sizing: border-box; + + font-family: $font-family; + font-size: 16px; + font-weight: 700; + line-height: 46px; + text-align: center; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-decoration: none; + color: $white; + + transition-duration: 0.5s; + + &:hover { + border: $border-thick $black solid; + background-color: $white; + color: $black; + } + + &:active { + background-color: #111; + color: $white; + } + + @include for-tablet { + width: 50vw; + margin: 0 auto; + + &--form { + width: 35vw; + } + } + +} diff --git a/src/styles/blocks/category.scss b/src/styles/blocks/category.scss new file mode 100644 index 0000000000..30923fc5de --- /dev/null +++ b/src/styles/blocks/category.scss @@ -0,0 +1,105 @@ +@import '../utils/mixins'; + +.category { + display: flex; + flex-direction: column; + + padding: 0; + + &__images { + display: flex; + justify-content: space-around; + gap: 20px; + margin: 0 20px; + + @include for-tablet { + gap: 24px; + margin: 0 72px; + } + + @include for-desktop { + margin: 0 124px; + } + } + + &__image { + height: 130px; + width: 45vw; + box-sizing: border-box; + background-size: cover; + background-position: center; + + @include for-tablet { + height: 184px; + + + &--big { + width: 60vw; + &:hover { + transform: scale(1.05); + transition-duration: 0.5s; + } + } + + &--small { + width: 30vw; + &:hover { + transform: scale(1.1, 1.05); + transition-duration: 0.5s; + } + } + + @include for-desktop { + height: 324px; + } + } + + &--1 { + background-image: url('../images/photos/image-1.jpg'); + } + + &--2 { + background-image: url('../images/photos/image-2.jpg'); + } + + &--3 { + background-image: url('../images/photos/image-3.jpg'); + } + + &--4 { + background-image: url('../images/photos/image-4.jpg'); + } + + &--5 { + background-image: url('../images/photos/image-5.jpg'); + } + + &--6 { + background-image: url('../images/photos/image-6.jpg'); + } + } + + &__name { + font-family: $font-family; + font-size: 16px; + font-weight: 700; + line-height: 22.4px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + + margin: 16px 20px 40px; + + + @include for-tablet { + font-size: 24px; + line-height: 33.6px; + + margin: 16px 72px 64px; + } + + @include for-desktop { + margin: 16px 120px 64px; + } + } +} diff --git a/src/styles/blocks/footer.scss b/src/styles/blocks/footer.scss new file mode 100644 index 0000000000..4839209d41 --- /dev/null +++ b/src/styles/blocks/footer.scss @@ -0,0 +1,15 @@ +.footer { + @include background-image; + + height: 200px; + background-image: url('../images/photos/footer.jpg'); + box-sizing: border-box; + + @include for-tablet { + height: 400px; + } + + @include for-desktop { + height: 460px; + } +} diff --git a/src/styles/blocks/form.scss b/src/styles/blocks/form.scss new file mode 100644 index 0000000000..f246bfc40c --- /dev/null +++ b/src/styles/blocks/form.scss @@ -0,0 +1,88 @@ +@import '../utils/mixins'; + +.form { + grid-column: span 2; + box-sizing: border-box; + + @include for-tablet { + grid-column: span 3; + margin-bottom: 120px; + } + + @include for-desktop { + grid-column: span 6; + margin-bottom: 118px; + } + + &__item { + margin-top: 16px; + } + + &__input { + height: 48px; + background-color: $gray; + border-radius: 40px; + border: 0; + width: 100%; + + color:#7E7E83; + + box-sizing: border-box; + padding: 14px 16px; + + &:hover { + @include placeholder; + + border-color: $gray-hover; + } + + &:hover::placeholder { + color: $black; + } + + &:focus { + @include placeholder; + + color: $black; + border-color: $black; + } + } + + &__textarea { + background-color: $gray; + border-radius: 16px; + border: 0; + + height: 148px; + width: 100%; + + color:#7E7E83; + resize: none; + + box-sizing: border-box; + padding: 14px 16px; + + margin-bottom: 32px; + + &:hover { + @include placeholder; + + border-color: $gray-hover; + } + + &:hover::placeholder { + color: $black; + } + + &:focus { + @include placeholder; + + color: $black; + border-color: $black; + } + } + + &__label { + @include visually-hidden; + } +} diff --git a/src/styles/blocks/header.scss b/src/styles/blocks/header.scss new file mode 100644 index 0000000000..2e7573e546 --- /dev/null +++ b/src/styles/blocks/header.scss @@ -0,0 +1,65 @@ +@import '../utils/mixins'; + +.header { + @include background-image; + + display: flex; + flex-direction: column; + justify-content: space-between; + + height: 100vh; + background-image: url('../images/photos/header.jpg'); + + &__title { + font-family: $font-family; + font-size: $font-size-mobile; + font-style: italic; + font-weight: 800; + line-height: $font-size-mobile; + letter-spacing: -1.5px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + + padding-bottom: 40px; + margin: 0 20px; + + &::before { + @include background-image; + + content: ''; + width: 48px; + height: 58px; + background-image: url('../images/sound_waves.svg'); + display: block; + + margin-bottom: 16px; + } + } + + @include for-tablet { + &__title { + font-size: $font-size-tablet; + line-height: $font-size-tablet; + + padding-bottom: 64px; + + &::before { + width: 63px; + height: 76px; + margin-bottom: 40px; + } + } + } + + @include for-desktop { + &__title { + font-size: $font-size-desktop; + line-height: $font-size-desktop; + } + + &::before { + margin-bottom: 32px; + } + } +} diff --git a/src/styles/blocks/main.scss b/src/styles/blocks/main.scss new file mode 100644 index 0000000000..bbc766ea4e --- /dev/null +++ b/src/styles/blocks/main.scss @@ -0,0 +1,74 @@ +@import '../utils/mixins'; + +.main { + + &__first-title { + @include title-font; + + grid-column: span 2; + margin-top: 64px; + + @include for-tablet { + grid-column: span 6; + margin-top: 120px; + } + + @include for-desktop { + grid-column: span 12; + } + } + + &__second-title { + @include title-font; + + grid-column: span 2; + margin-top: 96px; + margin-bottom: 48px; + + + @include for-tablet { + grid-column: span 6; + margin-bottom: 64px; + } + + @include for-desktop { + grid-column: span 12; + margin-top: 120px; + } + } + + &__third-title { + @include title-font; + + grid-column: span 2; + margin-top: 96px; + margin-bottom: 16px; + text-align: left; + + @include for-tablet { + grid-column: span 3; + margin-top: 120px; + } + + @include for-desktop { + grid-column: span 5; + } + } + + &__forth-title { + @include title-font; + + grid-column: span 2; + margin-top: 96px; + margin-bottom: 32px; + + @include for-tablet { + grid-column: span 6; + margin-top: 120px; + } + + @include for-desktop { + grid-column: span 12; + } + } +} diff --git a/src/styles/blocks/menu.scss b/src/styles/blocks/menu.scss new file mode 100644 index 0000000000..bef8a955e0 --- /dev/null +++ b/src/styles/blocks/menu.scss @@ -0,0 +1,63 @@ +@import '../utils/mixins'; + +.menu { + position: fixed; + top: 0; + left: 0; + right: 0; + transform: translateX(-100%); + transition: transform 0.4s ease-in-out; + + display: flex; + flex-direction: column; + justify-content: flex-start; + + min-height: 100vh; + box-sizing: border-box; + overflow-y: auto; + + background-color: #E8EFF9; + + padding: 0 20px; + + &:target { + transform: translateX(0); + } + + &__navigation { + padding-top: 28px; + + @include icons-positioning; + + &--logo { + height: $logo-small; + } + + &--exit { + height: $cross-small; + width: $cross-small; + filter: $brightness; + } + } + + @include for-tablet { + &__navigation { + height: 96px; + padding-top: 36px; + align-items: flex-start; + + &--logo { + height: $logo-big; + } + + &--exit { + height: $cross-big; + width: $cross-big; + } + } + } +} + +.page__body--with-menu { + overflow: hidden; +} diff --git a/src/styles/blocks/navigation.scss b/src/styles/blocks/navigation.scss new file mode 100644 index 0000000000..b8e5b1bac4 --- /dev/null +++ b/src/styles/blocks/navigation.scss @@ -0,0 +1,36 @@ +@import '../utils/mixins'; + +.navigation { + display: flex; + justify-content: space-between; + align-items: flex-start; + + margin: 0 20px; + + &__logo { + height: $logo-small; + margin-top: 28px; + } + + &__icons { + @include icons-positioning; + + height: 24px; + width: 72px; + + margin-top: 24px; + } + + @include for-tablet { + &__logo { + height: $logo-big; + margin-top: 36px; + } + + &__icons { + height: 32px; + width: 96px; + margin-top: 32px; + } + } +} diff --git a/src/styles/blocks/page-navigation.scss b/src/styles/blocks/page-navigation.scss new file mode 100644 index 0000000000..43b13e37a2 --- /dev/null +++ b/src/styles/blocks/page-navigation.scss @@ -0,0 +1,77 @@ +@import '../utils/mixins'; + +.page-navigation { + grid-column: span 2; + + &__link { + font-family: $font-family; + font-size: $font-size-menu; + font-weight: $font-weight-menu; + line-height: $font-size-menu; + letter-spacing: 2px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-decoration: none; + + color: $black; + } + + &__phone { + grid-column: span 2; + height: 67px; + + margin-top: 40px; + margin-bottom: 119px; + + display: flex; + flex-direction: column; + justify-content: space-between; + + &--number { + font-family: $font-family; + font-size: 16px; + font-weight: $font-weight-menu; + line-height: 27px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + color: $black; + + } + + &--call { + font-family: $font-family; + font-size: 12px; + font-weight: $font-weight-menu; + line-height: 16px; + letter-spacing: 2px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-decoration: none; + color: $black; + + &::after { + content: ""; + display: block; + height: 2px; + width: 119px; + background-color: $black; + margin-top: 8px; + } + } + } + + &>ul>li{ + margin-top: 32px; + } + + @include for-tablet { + grid-column: 1 / 4; + + &__phone { + grid-column: 1 / 4; + } + } +} diff --git a/src/styles/blocks/phone.scss b/src/styles/blocks/phone.scss new file mode 100644 index 0000000000..cb1124f41a --- /dev/null +++ b/src/styles/blocks/phone.scss @@ -0,0 +1,48 @@ +.phone { + display: flex; + align-items: center; + position: relative; + + &__image { + width: $phone-small; + height: $phone-small; + filter: $brightness; + } + + &__label { + display: inline-block; + color: $black; + + @media (max-width: 1259px) { + @include visually-hidden; + } + } + + @include for-tablet { + &__image { + width: $phone-big; + height: $phone-big; + } + } + + @include for-desktop { + &__label { + font-family: $font-family; + font-size: 12px; + font-weight: 700; + line-height: 16px; + letter-spacing: 2px; + text-align: right; + text-underline-position: from-font; + text-decoration-skip-ink: none; + text-wrap: nowrap; + right: 30px; + + position: absolute; + } + } + + &:not(:hover) .phone__label { + @include visually-hidden; + } +} diff --git a/src/styles/blocks/product-card.scss b/src/styles/blocks/product-card.scss new file mode 100644 index 0000000000..f6a1523556 --- /dev/null +++ b/src/styles/blocks/product-card.scss @@ -0,0 +1,53 @@ +@import '../utils/mixins'; + +.product-card { + &__image { + width: $prod-img-mobile; + height: $prod-img-mobile; + } + + &__paragraph { + font-family: $font-family; + font-size: 16px; + font-weight: 400; + line-height: 22.4px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + + &:nth-of-type(1) { + margin-top: 32px; + } + + &:nth-of-type(2) { + margin-top: 8px; + } + + &:nth-of-type(3) { + margin-top: 12px; + } + } + + &__paragraph--bold { + font-weight: 700; + } + + @include for-tablet { + &__image { + width: $prod-img-tablet; + height: $prod-img-tablet; + } + } + + @include for-desktop { + &__image { + width: $prod-img-desktop; + height: $prod-img-desktop; + } + + &:hover { + transform: scale(1.1); + transition-duration: 0.5s; + } + } +} diff --git a/src/styles/blocks/section.scss b/src/styles/blocks/section.scss new file mode 100644 index 0000000000..6bd7e5694f --- /dev/null +++ b/src/styles/blocks/section.scss @@ -0,0 +1,35 @@ +@import '../utils/mixins'; + +.section { + @include grid; + + justify-self: center; +} + +.recommend { + display: flex; + flex-direction: column; + + &__product-cards { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + + margin-top: 20px; + + @include for-tablet { + margin-top: 30px; + justify-content: space-evenly; + } + + @include for-desktop { + margin-top: 45px; + } + } +} + +.browse-by { + display: flex; + flex-direction: column; +} + diff --git a/src/styles/main.scss b/src/styles/main.scss index fb9195d128..593a79be72 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -1,7 +1,20 @@ @import 'utils'; -@import 'fonts'; -@import 'typography'; +@import '../styles/blocks/header'; +@import '../styles/blocks/navigation'; +@import '../styles/blocks/main'; +@import '../styles/blocks/product-card'; +@import '../styles/blocks/category'; +@import '../styles/blocks/button'; +@import '../styles/blocks/ad'; +@import '../styles/blocks/form'; +@import '../styles/blocks/section'; +@import '../styles/blocks/address'; +@import '../styles/blocks/footer'; +@import '../styles/blocks/menu'; +@import '../styles/blocks/page-navigation'; +@import '../styles/blocks/burger'; +@import '../styles/blocks/phone'; -body { - background: $c-gray; +html { + scroll-behavior: smooth; } diff --git a/src/styles/utils/_extends.scss b/src/styles/utils/_extends.scss deleted file mode 100644 index d7201e7b3e..0000000000 --- a/src/styles/utils/_extends.scss +++ /dev/null @@ -1,4 +0,0 @@ -%h1 { - font-family: Roboto, sans-serif; - font-weight: 400; -} diff --git a/src/styles/utils/_mixins.scss b/src/styles/utils/_mixins.scss index 80c79780dc..1ee1d7729e 100644 --- a/src/styles/utils/_mixins.scss +++ b/src/styles/utils/_mixins.scss @@ -1,6 +1,91 @@ -@mixin hover($_property, $_toValue) { - transition: #{$_property} 0.3s; - &:hover { - #{$_property}: $_toValue; +@mixin for-tablet() { + @media (min-width: 744px) { + @content } } + +@mixin for-desktop() { + @media (min-width: 1260px) { + @content + } +} + +@mixin title-font() { + font-family: $font-family; + font-size: $font-size-mobile; + font-weight: 700; + line-height: $font-size-mobile; + letter-spacing: -1.5px; + text-align: center; + text-underline-position: from-font; + text-decoration-skip-ink: none; + + @include for-tablet { + font-size: $font-size-tablet; + line-height: $font-size-tablet; + } + + @include for-desktop { + font-size: $font-size-desktop; + line-height: $font-size-desktop; + } +} + +@mixin grid() { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 20px; + padding: 0 20px; + box-sizing: border-box; + + @include for-tablet { + grid-template-columns: repeat(6, 1fr); + column-gap: 24px; + padding: 0 72px; + } + + @include for-desktop { + grid-template-columns: repeat(12, 1fr); + padding: 0 120px; + } +} + +@mixin burger { + content: ''; + background-size: cover; + height: 12px; + width: 18px; + filter: $brightness; +} + +@mixin bigger-burger { + height: 16px; + width: 24px; +} + +@mixin background-image { + background-repeat: no-repeat; + background-size: cover; + background-position: center; +} + +@mixin icons-positioning { + display: flex; + justify-content: space-between; + align-items: center; +} + +@mixin placeholder { + border: 1px solid; + padding: 13px 15px; +} + +@mixin visually-hidden() { + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; +} diff --git a/src/styles/utils/_reset.scss b/src/styles/utils/_reset.scss new file mode 100644 index 0000000000..2298d64449 --- /dev/null +++ b/src/styles/utils/_reset.scss @@ -0,0 +1,138 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + vertical-align: baseline; +} + +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} + +body { + line-height: 1; +} + +ol, +ul { + list-style: none; +} + +blockquote, +q { + quotes: none; +} + +blockquote::before, +blockquote::after, +q::before, +q::after { + content: ''; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +textarea:focus, input:focus{ + outline: none; +} diff --git a/src/styles/utils/_vars.scss b/src/styles/utils/_vars.scss index aeb006ffbb..996bd40c80 100644 --- a/src/styles/utils/_vars.scss +++ b/src/styles/utils/_vars.scss @@ -1 +1,21 @@ -$c-gray: #eee; +$white: #fff; +$gray: #F8F8FA; +$gray-hover: #D5D7DE; +$black: #292929; +$font-family: Inter, sans-serif; +$font-size-mobile: 32px; +$font-size-tablet: 40px; +$font-size-desktop: 48px; +$font-size-menu: 22px; +$font-weight-menu: 700; +$logo-small: 16px; +$logo-big: 24px; +$cross-small: 16px; +$cross-big: 21px; +$phone-small: 18px; +$phone-big: 24px; +$brightness: brightness(0%); +$prod-img-mobile: 280px; +$prod-img-tablet: 392px; +$prod-img-desktop: 324px; +$border-thick: 3px;