From 06fede36cd3ccd4b138bc00f7c99f285a5762d00 Mon Sep 17 00:00:00 2001 From: Dima Vyshniakov Date: Wed, 25 Sep 2024 21:44:52 +0200 Subject: [PATCH 1/2] feat(component): add Video player component fix #480 --- README.md | 2 +- package.json | 2 +- pnpm-lock.yaml | 862 ++++++++++---------- src/internal/Icons/IconDownloadVideo.tsx | 13 + src/internal/Icons/IconFullscreen.tsx | 13 + src/internal/Icons/IconPause.tsx | 13 + src/internal/Icons/IconPictureInPicture.tsx | 13 + src/internal/Icons/IconPlay.tsx | 13 + src/internal/Icons/IconSpeed.tsx | 13 + src/internal/Icons/IconVideo.tsx | 13 + src/internal/Icons/IconVolume.tsx | 13 + src/internal/Icons/IconVolumeOff.tsx | 13 + src/internal/Icons/index.ts | 9 + src/lib/InputRange/InputRange.module.css | 2 + src/lib/InputRange/InputRange.stories.tsx | 1 + src/lib/InputRange/InputRange.tsx | 13 +- src/lib/Video/Video.mdx | 24 + src/lib/Video/Video.module.css | 444 ++++++++++ src/lib/Video/Video.stories.tsx | 117 +++ src/lib/Video/Video.tsx | 364 +++++++++ src/lib/Video/index.ts | 1 + src/lib/Video/poster.jpg | Bin 0 -> 410911 bytes src/lib/Video/useFullscreen.ts | 23 + src/lib/Video/useLoadingState.ts | 34 + src/lib/Video/usePlay.ts | 46 ++ src/lib/Video/useSound.ts | 33 + src/lib/Video/useTime.ts | 36 + 27 files changed, 1713 insertions(+), 417 deletions(-) create mode 100644 src/internal/Icons/IconDownloadVideo.tsx create mode 100644 src/internal/Icons/IconFullscreen.tsx create mode 100644 src/internal/Icons/IconPause.tsx create mode 100644 src/internal/Icons/IconPictureInPicture.tsx create mode 100644 src/internal/Icons/IconPlay.tsx create mode 100644 src/internal/Icons/IconSpeed.tsx create mode 100644 src/internal/Icons/IconVideo.tsx create mode 100644 src/internal/Icons/IconVolume.tsx create mode 100644 src/internal/Icons/IconVolumeOff.tsx create mode 100644 src/lib/Video/Video.mdx create mode 100644 src/lib/Video/Video.module.css create mode 100644 src/lib/Video/Video.stories.tsx create mode 100644 src/lib/Video/Video.tsx create mode 100644 src/lib/Video/index.ts create mode 100644 src/lib/Video/poster.jpg create mode 100644 src/lib/Video/useFullscreen.ts create mode 100644 src/lib/Video/useLoadingState.ts create mode 100644 src/lib/Video/usePlay.ts create mode 100644 src/lib/Video/useSound.ts create mode 100644 src/lib/Video/useTime.ts diff --git a/README.md b/README.md index 833a52cd..47e1fa16 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ # Koval components library -[![NPM library Create React App template logo](./design/logo-repo.png)](#) +[![NPM library Create React App template logo](./design/logo-repo-social.png)](#) Koval UI is a React component library built for modern browsers. Each component tries to utilize built-in browser APIs to full extent. diff --git a/package.json b/package.json index df848e56..49607eea 100644 --- a/package.json +++ b/package.json @@ -143,7 +143,7 @@ "lint-staged": "15.2.10", "npm-run-all2": "6.2.3", "postcss": "8.4.47", - "postcss-preset-env": "10.0.6", + "postcss-preset-env": "9.6.0", "prettier": "3.3.3", "react": "18.3.1", "react-dom": "18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0aa207b0..928407eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -220,8 +220,8 @@ importers: specifier: 8.4.47 version: 8.4.47 postcss-preset-env: - specifier: 10.0.6 - version: 10.0.6(postcss@8.4.47) + specifier: 9.6.0 + version: 9.6.0(postcss@8.4.47) prettier: specifier: 3.3.3 version: 3.3.3 @@ -1222,30 +1222,36 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@csstools/cascade-layer-name-parser@2.0.1': - resolution: {integrity: sha512-G9ZYN5+yr/E6xYSiy1BwOEFP5p88ZtWo8sL4NztKBkRRAwRkzVGa70M+D+fYHugMID5jkLeNt5X9jYd5EaVuyg==} - engines: {node: '>=18'} + '@csstools/cascade-layer-name-parser@1.0.13': + resolution: {integrity: sha512-MX0yLTwtZzr82sQ0zOjqimpZbzjMaK/h2pmlrLK7DCzlmiZLYFpoO94WmN1akRVo6ll/TdpHb53vihHLUMyvng==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.1 - '@csstools/css-tokenizer': ^3.0.1 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 - '@csstools/color-helpers@5.0.1': - resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} - engines: {node: '>=18'} + '@csstools/color-helpers@4.2.1': + resolution: {integrity: sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==} + engines: {node: ^14 || ^16 || >=18} - '@csstools/css-calc@2.0.1': - resolution: {integrity: sha512-e59V+sNp6e5m+9WnTUydA1DQO70WuKUdseflRpWmXxocF/h5wWGIxUjxfvLtajcmwstH0vm6l0reKMzcyI757Q==} - engines: {node: '>=18'} + '@csstools/css-calc@1.2.4': + resolution: {integrity: sha512-tfOuvUQeo7Hz+FcuOd3LfXVp+342pnWUJ7D2y8NUpu1Ww6xnTbHLpz018/y6rtbHifJ3iIEf9ttxXd8KG7nL0Q==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.1 - '@csstools/css-tokenizer': ^3.0.1 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 - '@csstools/css-color-parser@3.0.2': - resolution: {integrity: sha512-mNg7A6HnNjlm0we/pDS9dUafOuBxcanN0TBhEGeIk6zZincuk0+mAbnBqfVs29NlvWHZ8diwTG6g5FeU8246sA==} - engines: {node: '>=18'} + '@csstools/css-color-parser@2.0.5': + resolution: {integrity: sha512-lRZSmtl+DSjok3u9hTWpmkxFZnz7stkbZxzKc08aDUsdrWwhSgWo8yq9rq9DaFUtbAyAq2xnH92fj01S+pwIww==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.1 - '@csstools/css-tokenizer': ^3.0.1 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 + + '@csstools/css-parser-algorithms@2.7.1': + resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-tokenizer': ^2.4.1 '@csstools/css-parser-algorithms@3.0.1': resolution: {integrity: sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg==} @@ -1253,10 +1259,21 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^3.0.1 + '@csstools/css-tokenizer@2.4.1': + resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==} + engines: {node: ^14 || ^16 || >=18} + '@csstools/css-tokenizer@3.0.1': resolution: {integrity: sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw==} engines: {node: '>=18'} + '@csstools/media-query-list-parser@2.1.13': + resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 + '@csstools/media-query-list-parser@3.0.1': resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} engines: {node: '>=18'} @@ -1264,191 +1281,197 @@ packages: '@csstools/css-parser-algorithms': ^3.0.1 '@csstools/css-tokenizer': ^3.0.1 - '@csstools/postcss-cascade-layers@5.0.0': - resolution: {integrity: sha512-h+VunB3KXaoWTWEPBcdVk8Kz1eZ/CtDD+HXgKw5JLdbsViLEQdKUtFYH73VIQigdodng8s5DCrrwNQY7pnuWBA==} - engines: {node: '>=18'} + '@csstools/postcss-cascade-layers@4.0.6': + resolution: {integrity: sha512-Xt00qGAQyqAODFiFEJNkTpSUz5VfYqnDLECdlA/Vv17nl/OIV5QfTRHGAXrBGG5YcJyHpJ+GF9gF/RZvOQz4oA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@4.0.2': - resolution: {integrity: sha512-q/W3RXh66SM7WqxW3/KU6koL8nOgqyB/wrcU3+ThXnNtXY2+k8UgdE301ISJpMt6PDyYgC7eMaIBo535RvFIgw==} - engines: {node: '>=18'} + '@csstools/postcss-color-function@3.0.19': + resolution: {integrity: sha512-d1OHEXyYGe21G3q88LezWWx31ImEDdmINNDy0LyLNN9ChgN2bPxoubUPiHf9KmwypBMaHmNcMuA/WZOKdZk/Lg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@3.0.2': - resolution: {integrity: sha512-zG9PHNzZVCRk6eprm+T/ybrnuiwLdO+RR7+GCtNut+NZJGtPJj6bfPOEX23aOlMslLcRAlN6QOpxH3tovn+WpA==} - engines: {node: '>=18'} + '@csstools/postcss-color-mix-function@2.0.19': + resolution: {integrity: sha512-mLvQlMX+keRYr16AuvuV8WYKUwF+D0DiCqlBdvhQ0KYEtcQl9/is9Ssg7RcIys8x0jIn2h1zstS4izckdZj9wg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-content-alt-text@2.0.1': - resolution: {integrity: sha512-TWjjewVZqdkjavsi8a2THuXgkhUum1k/m4QJpZpzOv72q6WnaoQZGSj5t5uCs7ymJr0H3qj6JcXMwMApSWUOGQ==} - engines: {node: '>=18'} + '@csstools/postcss-content-alt-text@1.0.0': + resolution: {integrity: sha512-SkHdj7EMM/57GVvSxSELpUg7zb5eAndBeuvGwFzYtU06/QXJ/h9fuK7wO5suteJzGhm3GDF/EWPCdWV2h1IGHQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@2.0.1': - resolution: {integrity: sha512-A/MG8es3ylFzZ30oYIQUyJcMOfTfCs0dqqBMzeuzaPRlx4q/72WG+BbKe/pL9BUNIWsM0Q8jn3e3la8enjHJJA==} - engines: {node: '>=18'} + '@csstools/postcss-exponential-functions@1.0.9': + resolution: {integrity: sha512-x1Avr15mMeuX7Z5RJUl7DmjhUtg+Amn5DZRD0fQ2TlTFTcJS8U1oxXQ9e5mA62S2RJgUU6db20CRoJyDvae2EQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-font-format-keywords@4.0.0': - resolution: {integrity: sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==} - engines: {node: '>=18'} + '@csstools/postcss-font-format-keywords@3.0.2': + resolution: {integrity: sha512-E0xz2sjm4AMCkXLCFvI/lyl4XO6aN1NCSMMVEOngFDJ+k2rDwfr6NDjWljk1li42jiLNChVX+YFnmfGCigZKXw==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@2.0.2': - resolution: {integrity: sha512-/1ur3ca9RWg/KnbLlxaDswyjLSGoaHNDruAzrVhkn5axgd7LOH6JHCBRhrKDafdMw9bf4MQrYFoaLfHAPekLFg==} - engines: {node: '>=18'} + '@csstools/postcss-gamut-mapping@1.0.11': + resolution: {integrity: sha512-KrHGsUPXRYxboXmJ9wiU/RzDM7y/5uIefLWKFSc36Pok7fxiPyvkSHO51kh+RLZS1W5hbqw9qaa6+tKpTSxa5g==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@5.0.2': - resolution: {integrity: sha512-qRpvA4sduAfiV9yZG4OM7q/h2Qhr3lg+GrHe9NZwuzWnfSDLGh+Dh4Ea6fQ+1++jdKXW/Cb4/vHRp0ssQYra4w==} - engines: {node: '>=18'} + '@csstools/postcss-gradients-interpolation-method@4.0.20': + resolution: {integrity: sha512-ZFl2JBHano6R20KB5ZrB8KdPM2pVK0u+/3cGQ2T8VubJq982I2LSOvQ4/VtxkAXjkPkk1rXt4AD1ni7UjTZ1Og==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@4.0.2': - resolution: {integrity: sha512-RUBVCyJE1hTsf9vGp3zrALeMollkAlHRFKm+T36y67nLfOOf+6GNQsdTGFAyLrY65skcm8ddC26Jp1n9ZIauEA==} - engines: {node: '>=18'} + '@csstools/postcss-hwb-function@3.0.18': + resolution: {integrity: sha512-3ifnLltR5C7zrJ+g18caxkvSRnu9jBBXCYgnBznRjxm6gQJGnnCO9H6toHfywNdNr/qkiVf2dymERPQLDnjLRQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-ic-unit@4.0.0': - resolution: {integrity: sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==} - engines: {node: '>=18'} + '@csstools/postcss-ic-unit@3.0.7': + resolution: {integrity: sha512-YoaNHH2wNZD+c+rHV02l4xQuDpfR8MaL7hD45iJyr+USwvr0LOheeytJ6rq8FN6hXBmEeoJBeXXgGmM8fkhH4g==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-initial@2.0.0': - resolution: {integrity: sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==} - engines: {node: '>=18'} + '@csstools/postcss-initial@1.0.1': + resolution: {integrity: sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-is-pseudo-class@5.0.0': - resolution: {integrity: sha512-E/CjrT03BL06WmrjupnrT0VUBTvxJdoW1hRVeXFa9qatWtvcLLw0j8hP372G4A9PpSGEMXi3/AoHzPf7DNryCQ==} - engines: {node: '>=18'} + '@csstools/postcss-is-pseudo-class@4.0.8': + resolution: {integrity: sha512-0aj591yGlq5Qac+plaWCbn5cpjs5Sh0daovYUKJUOMjIp70prGH/XPLp7QjxtbFXz3CTvb0H9a35dpEuIuUi3Q==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-light-dark-function@2.0.4': - resolution: {integrity: sha512-yHUt5DZ61Irvp72notmAl3Zt4Me50EWToWNocazyIFTVYFwwo/EucmV3hWi9zJehu3rOSvMclL7DzvRDfbak/A==} - engines: {node: '>=18'} + '@csstools/postcss-light-dark-function@1.0.8': + resolution: {integrity: sha512-x0UtpCyVnERsplUeoaY6nEtp1HxTf4lJjoK/ULEm40DraqFfUdUSt76yoOyX5rGY6eeOUOkurHyYlFHVKv/pew==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-float-and-clear@3.0.0': - resolution: {integrity: sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==} - engines: {node: '>=18'} + '@csstools/postcss-logical-float-and-clear@2.0.1': + resolution: {integrity: sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-overflow@2.0.0': - resolution: {integrity: sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==} - engines: {node: '>=18'} + '@csstools/postcss-logical-overflow@1.0.1': + resolution: {integrity: sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-overscroll-behavior@2.0.0': - resolution: {integrity: sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==} - engines: {node: '>=18'} + '@csstools/postcss-logical-overscroll-behavior@1.0.1': + resolution: {integrity: sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-resize@3.0.0': - resolution: {integrity: sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==} - engines: {node: '>=18'} + '@csstools/postcss-logical-resize@2.0.1': + resolution: {integrity: sha512-W5Gtwz7oIuFcKa5SmBjQ2uxr8ZoL7M2bkoIf0T1WeNqljMkBrfw1DDA8/J83k57NQ1kcweJEjkJ04pUkmyee3A==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-viewport-units@3.0.1': - resolution: {integrity: sha512-JsfaoTiBqIuRE+CYL4ZpYKOqJ965GyiMH4b8UrY0Z7i5GfMiHZrK7xtTB29piuyKQzrW+Z8w3PAExhwND9cuAQ==} - engines: {node: '>=18'} + '@csstools/postcss-logical-viewport-units@2.0.11': + resolution: {integrity: sha512-ElITMOGcjQtvouxjd90WmJRIw1J7KMP+M+O87HaVtlgOOlDt1uEPeTeii8qKGe2AiedEp0XOGIo9lidbiU2Ogg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@2.0.1': - resolution: {integrity: sha512-EMa3IgUip+F/MwH4r2KfIA9ym9hQkT2PpR9MOukdomfGGCFuw9V3n/iIOBKziN1qfeddsYoOvtYOKQcHU2yIjg==} - engines: {node: '>=18'} + '@csstools/postcss-media-minmax@1.1.8': + resolution: {integrity: sha512-KYQCal2i7XPNtHAUxCECdrC7tuxIWQCW+s8eMYs5r5PaAiVTeKwlrkRS096PFgojdNCmHeG0Cb7njtuNswNf+w==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.1': - resolution: {integrity: sha512-JTzMQz//INahTALkvXnC5lC2fJKzwb5PY443T2zaM9hAzM7nzHMLIlEfFgdtBahVIBtBSalMefdxNr99LGW1lQ==} - engines: {node: '>=18'} + '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11': + resolution: {integrity: sha512-YD6jrib20GRGQcnOu49VJjoAnQ/4249liuz7vTpy/JfgqQ1Dlc5eD4HPUMNLOw9CWey9E6Etxwf/xc/ZF8fECA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-nested-calc@4.0.0': - resolution: {integrity: sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==} - engines: {node: '>=18'} + '@csstools/postcss-nested-calc@3.0.2': + resolution: {integrity: sha512-ySUmPyawiHSmBW/VI44+IObcKH0v88LqFe0d09Sb3w4B1qjkaROc6d5IA3ll9kjD46IIX/dbO5bwFN/swyoyZA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-normalize-display-values@4.0.0': - resolution: {integrity: sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==} - engines: {node: '>=18'} + '@csstools/postcss-normalize-display-values@3.0.2': + resolution: {integrity: sha512-fCapyyT/dUdyPtrelQSIV+d5HqtTgnNP/BEG9IuhgXHt93Wc4CfC1bQ55GzKAjWrZbgakMQ7MLfCXEf3rlZJOw==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@4.0.2': - resolution: {integrity: sha512-2iSK/T77PHMeorakBAk/WLxSodfIJ/lmi6nxEkuruXfhGH7fByZim4Fw6ZJf4B73SVieRSH2ep8zvYkA2ZfRtA==} - engines: {node: '>=18'} + '@csstools/postcss-oklab-function@3.0.19': + resolution: {integrity: sha512-e3JxXmxjU3jpU7TzZrsNqSX4OHByRC3XjItV3Ieo/JEQmLg5rdOL4lkv/1vp27gXemzfNt44F42k/pn0FpE21Q==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-progressive-custom-properties@4.0.0': - resolution: {integrity: sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==} - engines: {node: '>=18'} + '@csstools/postcss-progressive-custom-properties@3.3.0': + resolution: {integrity: sha512-W2oV01phnILaRGYPmGFlL2MT/OgYjQDrL9sFlbdikMFi6oQkFki9B86XqEWR7HCsTZFVq7dbzr/o71B75TKkGg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@3.0.2': - resolution: {integrity: sha512-aBpuUdpJBswNGfw6lOkhown2cZ0YXrMjASye56nkoRpgRe9yDF4BM1fvEuakrCDiaeoUzVaI4SF6+344BflXfQ==} - engines: {node: '>=18'} + '@csstools/postcss-relative-color-syntax@2.0.19': + resolution: {integrity: sha512-MxUMSNvio1WwuS6WRLlQuv6nNPXwIWUFzBBAvL/tBdWfiKjiJnAa6eSSN5gtaacSqUkQ/Ce5Z1OzLRfeaWhADA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-scope-pseudo-class@4.0.0': - resolution: {integrity: sha512-+ZUOBtVMDcmHZcZqsP/jcNRriEILfWQflTI3tCTA+/RheXAg57VkFGyPDAilpQSqlCpxWLWG8VUFKFtZJPwuOg==} - engines: {node: '>=18'} + '@csstools/postcss-scope-pseudo-class@3.0.1': + resolution: {integrity: sha512-3ZFonK2gfgqg29gUJ2w7xVw2wFJ1eNWVDONjbzGkm73gJHVCYK5fnCqlLr+N+KbEfv2XbWAO0AaOJCFB6Fer6A==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@4.0.1': - resolution: {integrity: sha512-dk3KqVcIEYzy9Mvx8amoBbk123BWgd5DfjXDiPrEqxGma37PG7m/MoMmHQhuVHIjvPDHoJwyIZi2yy7j0RA5fw==} - engines: {node: '>=18'} + '@csstools/postcss-stepped-value-functions@3.0.10': + resolution: {integrity: sha512-MZwo0D0TYrQhT5FQzMqfy/nGZ28D1iFtpN7Su1ck5BPHS95+/Y5O9S4kEvo76f2YOsqwYcT8ZGehSI1TnzuX2g==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-text-decoration-shorthand@4.0.1': - resolution: {integrity: sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==} - engines: {node: '>=18'} + '@csstools/postcss-text-decoration-shorthand@3.0.7': + resolution: {integrity: sha512-+cptcsM5r45jntU6VjotnkC9GteFR7BQBfZ5oW7inLCxj7AfLGAzMbZ60hKTP13AULVZBdxky0P8um0IBfLHVA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@4.0.1': - resolution: {integrity: sha512-QHOYuN3bzS/rcpAygFhJxJUtD8GuJEWF6f9Zm518Tq/cSMlcTgU+v0geyi5EqbmYxKMig2oKCKUSGqOj9gehkg==} - engines: {node: '>=18'} + '@csstools/postcss-trigonometric-functions@3.0.10': + resolution: {integrity: sha512-G9G8moTc2wiad61nY5HfvxLiM/myX0aYK4s1x8MQlPH29WDPxHQM7ghGgvv2qf2xH+rrXhztOmjGHJj4jsEqXw==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-unset-value@4.0.0': - resolution: {integrity: sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==} - engines: {node: '>=18'} + '@csstools/postcss-unset-value@3.0.1': + resolution: {integrity: sha512-dbDnZ2ja2U8mbPP0Hvmt2RMEGBiF1H7oY6HYSpjteXJGihYwgxgTr6KRbbJ/V6c+4wd51M+9980qG4gKVn5ttg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/selector-resolve-nested@2.0.0': - resolution: {integrity: sha512-oklSrRvOxNeeOW1yARd4WNCs/D09cQjunGZUgSq6vM8GpzFswN+8rBZyJA29YFZhOTQ6GFzxgLDNtVbt9wPZMA==} - engines: {node: '>=18'} + '@csstools/selector-resolve-nested@1.1.0': + resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: - postcss-selector-parser: ^6.1.0 + postcss-selector-parser: ^6.0.13 + + '@csstools/selector-specificity@3.1.1': + resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 '@csstools/selector-specificity@4.0.0': resolution: {integrity: sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==} @@ -1456,9 +1479,9 @@ packages: peerDependencies: postcss-selector-parser: ^6.1.0 - '@csstools/utilities@2.0.0': - resolution: {integrity: sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==} - engines: {node: '>=18'} + '@csstools/utilities@1.0.0': + resolution: {integrity: sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -3585,9 +3608,9 @@ packages: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} - css-blank-pseudo@7.0.0: - resolution: {integrity: sha512-v9xXYGdm6LIn4iHEfu3egk/PM1g/yJr8uwTIj6E44kurv5dE/4y3QW7WdVmZ0PVnqfTuK+C0ClZcEEiaKWBL9Q==} - engines: {node: '>=18'} + css-blank-pseudo@6.0.2: + resolution: {integrity: sha512-J/6m+lsqpKPqWHOifAFtKFeGLOzw3jR92rxQcwRUfA/eTuZzKfKlxOmYDx2+tqOPQAueNvBiY8WhAeHu5qNmTg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -3595,15 +3618,15 @@ packages: resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==} engines: {node: '>=12 || >=16'} - css-has-pseudo@7.0.0: - resolution: {integrity: sha512-vO6k9bBt4/eEZ2PeHmS2VXjJga5SBy6O1ESyaOkse5/lvp6piFqg8Sh5KTU7X33M7Uh/oqo+M3EeMktQrZoTCQ==} - engines: {node: '>=18'} + css-has-pseudo@6.0.5: + resolution: {integrity: sha512-ZTv6RlvJJZKp32jPYnAJVhowDCrRrHUTAxsYSuUPBEDJjzws6neMnzkRblxtgmv1RgcV5dhH2gn7E3wA9Wt6lw==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - css-prefers-color-scheme@10.0.0: - resolution: {integrity: sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==} - engines: {node: '>=18'} + css-prefers-color-scheme@9.0.1: + resolution: {integrity: sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -5974,9 +5997,9 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-attribute-case-insensitive@7.0.0: - resolution: {integrity: sha512-ETMUHIw67Kyv9Q81nden/NuJbRh+4/S963giXpfSLd5eaKK8kd1UdAHMVRV/NG/w/N6Cq8B0qZIZbZZWU/67+A==} - engines: {node: '>=18'} + postcss-attribute-case-insensitive@6.0.3: + resolution: {integrity: sha512-KHkmCILThWBRtg+Jn1owTnHPnFit4OkqS+eKiGEOPIGke54DCeYGJ6r0Fx/HjfE9M9kznApCLcU0DvnPchazMQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -5986,63 +6009,63 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@7.0.2: - resolution: {integrity: sha512-c2WkR0MS73s+P5SgY1KBaSEE61Rj+miW095rkWDnMQxbTCQkp6y/jft8U0QMxEsI4k1Pd4PdV+TP9/1zIDR6XQ==} - engines: {node: '>=18'} + postcss-color-functional-notation@6.0.14: + resolution: {integrity: sha512-dNUX+UH4dAozZ8uMHZ3CtCNYw8fyFAmqqdcyxMr7PEdM9jLXV19YscoYO0F25KqZYhmtWKQ+4tKrIZQrwzwg7A==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-color-hex-alpha@10.0.0: - resolution: {integrity: sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==} - engines: {node: '>=18'} + postcss-color-hex-alpha@9.0.4: + resolution: {integrity: sha512-XQZm4q4fNFqVCYMGPiBjcqDhuG7Ey2xrl99AnDJMyr5eDASsAGalndVgHZF8i97VFNy1GQeZc4q2ydagGmhelQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-color-rebeccapurple@10.0.0: - resolution: {integrity: sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==} - engines: {node: '>=18'} + postcss-color-rebeccapurple@9.0.3: + resolution: {integrity: sha512-ruBqzEFDYHrcVq3FnW3XHgwRqVMrtEPLBtD7K2YmsLKVc2jbkxzzNEctJKsPCpDZ+LeMHLKRDoSShVefGc+CkQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-custom-media@11.0.2: - resolution: {integrity: sha512-IDtxB1VgPayRLjNBMjuf827sn1j2m9EGnhIxpx2coVerbWJF+twt590+PKvdDc4K8QNFqFJh+W/SOiHpasVXsg==} - engines: {node: '>=18'} + postcss-custom-media@10.0.8: + resolution: {integrity: sha512-V1KgPcmvlGdxTel4/CyQtBJEFhMVpEmRGFrnVtgfGIHj5PJX9vO36eFBxKBeJn+aCDTed70cc+98Mz3J/uVdGQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-custom-properties@14.0.1: - resolution: {integrity: sha512-SB4GjuZjIq5GQFNbxFrirQPbkdbJooyNy8bh+fcJ8ZG0oasJTflTTtR4geb56h+FBVDIb9Hx4v/NiG2caOj8nQ==} - engines: {node: '>=18'} + postcss-custom-properties@13.3.12: + resolution: {integrity: sha512-oPn/OVqONB2ZLNqN185LDyaVByELAA/u3l2CS2TS16x2j2XsmV4kd8U49+TMxmUsEU9d8fB/I10E6U7kB0L1BA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-custom-selectors@8.0.1: - resolution: {integrity: sha512-2McIpyhAeKhUzVqrP4ZyMBpK5FuD+Y9tpQwhcof49652s7gez8057cSaOg/epYcKlztSYxb0GHfi7W5h3JoGUg==} - engines: {node: '>=18'} + postcss-custom-selectors@7.1.12: + resolution: {integrity: sha512-ctIoprBMJwByYMGjXG0F7IT2iMF2hnamQ+aWZETyBM0aAlyaYdVZTeUkk8RB+9h9wP+NdN3f01lfvKl2ZSqC0g==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-dir-pseudo-class@9.0.0: - resolution: {integrity: sha512-T59BG9lURiXmhcJMyKbyjNAK3KCyEQYEhaz9GAETHXfIy9XbGQeyz+H0zIwRJlrP4KKRPJolNYe3QjQPemMjBA==} - engines: {node: '>=18'} + postcss-dir-pseudo-class@8.0.1: + resolution: {integrity: sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-double-position-gradients@6.0.0: - resolution: {integrity: sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==} - engines: {node: '>=18'} + postcss-double-position-gradients@5.0.7: + resolution: {integrity: sha512-1xEhjV9u1s4l3iP5lRt1zvMjI/ya8492o9l/ivcxHhkO3nOz16moC4JpMxDUGrOs4R3hX+KWT7gKoV842cwRgg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-focus-visible@10.0.0: - resolution: {integrity: sha512-GJjzvTj7JY+zN7wVBQ4osdKX53QLUdr6r2rSEkBUqrEMDKu3fHMHKOY9rirdirbHCx3IETnK25EtpPARR2KWNw==} - engines: {node: '>=18'} + postcss-focus-visible@9.0.1: + resolution: {integrity: sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-focus-within@9.0.0: - resolution: {integrity: sha512-QwflAWUToNZvQLGbc4qJhrQO8yZ5617L6hSNzNWDoqRX4FoIh9fbJbEjy0nvFPciaaOoCaeqcxBwYPbFU0HvBw==} - engines: {node: '>=18'} + postcss-focus-within@8.0.1: + resolution: {integrity: sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6051,45 +6074,45 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-gap-properties@6.0.0: - resolution: {integrity: sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==} - engines: {node: '>=18'} + postcss-gap-properties@5.0.1: + resolution: {integrity: sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-image-set-function@7.0.0: - resolution: {integrity: sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==} - engines: {node: '>=18'} + postcss-image-set-function@6.0.3: + resolution: {integrity: sha512-i2bXrBYzfbRzFnm+pVuxVePSTCRiNmlfssGI4H0tJQvDue+yywXwUxe68VyzXs7cGtMaH6MCLY6IbCShrSroCw==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-lab-function@7.0.2: - resolution: {integrity: sha512-h4ARGLIBtC1PmCHsLgTWWj8j1i1CXoaht4A5RlITDX2z9AeFBak0YlY6sdF4oJGljrep+Dg2SSccIj4QnFbRDg==} - engines: {node: '>=18'} + postcss-lab-function@6.0.19: + resolution: {integrity: sha512-vwln/mgvFrotJuGV8GFhpAOu9iGf3pvTBr6dLPDmUcqVD5OsQpEFyQMAFTxSxWXGEzBj6ld4pZ/9GDfEpXvo0g==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-logical@8.0.0: - resolution: {integrity: sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==} - engines: {node: '>=18'} + postcss-logical@7.0.1: + resolution: {integrity: sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-nesting@13.0.0: - resolution: {integrity: sha512-TCGQOizyqvEkdeTPM+t6NYwJ3EJszYE/8t8ILxw/YoeUvz2rz7aM8XTAmBWh9/DJjfaaabL88fWrsVHSPF2zgA==} - engines: {node: '>=18'} + postcss-nesting@12.1.5: + resolution: {integrity: sha512-N1NgI1PDCiAGWPTYrwqm8wpjv0bgDmkYHH72pNsqTCv9CObxjxftdYu6AKtGN+pnJa7FQjMm3v4sp8QJbFsYdQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-opacity-percentage@3.0.0: - resolution: {integrity: sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==} - engines: {node: '>=18'} + postcss-opacity-percentage@2.0.0: + resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: - postcss: ^8.4 + postcss: ^8.2 - postcss-overflow-shorthand@6.0.0: - resolution: {integrity: sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==} - engines: {node: '>=18'} + postcss-overflow-shorthand@5.0.1: + resolution: {integrity: sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6098,21 +6121,21 @@ packages: peerDependencies: postcss: ^8 - postcss-place@10.0.0: - resolution: {integrity: sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==} - engines: {node: '>=18'} + postcss-place@9.0.1: + resolution: {integrity: sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-preset-env@10.0.6: - resolution: {integrity: sha512-qixfM2wbvKJhUjJELLB8lV2UCsyrMdSXqiXHiNKMgAbNturstc80j/8MsthJeOpxYEekrCrFzcaoOJm8JRSdBg==} - engines: {node: '>=18'} + postcss-preset-env@9.6.0: + resolution: {integrity: sha512-Lxfk4RYjUdwPCYkc321QMdgtdCP34AeI94z+/8kVmqnTIlD4bMRQeGcMZgwz8BxHrzQiFXYIR5d7k/9JMs2MEA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-pseudo-class-any-link@10.0.0: - resolution: {integrity: sha512-bde8VE08Gq3ekKDq2BQ0ESOjNX54lrFDK3U9zABPINaqHblbZL/4Wfo5Y2vk6U64yVd/sjDwTzuiisFBpGNNIQ==} - engines: {node: '>=18'} + postcss-pseudo-class-any-link@9.0.2: + resolution: {integrity: sha512-HFSsxIqQ9nA27ahyfH37cRWGk3SYyQLpk0LiWw/UGMV4VKT5YG2ONee4Pz/oFesnK0dn2AjcyequDbIjKJgB0g==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6130,9 +6153,9 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-selector-not@8.0.0: - resolution: {integrity: sha512-g/juh7A83GWc3+kWL8BiS3YUIJb3XNqIVKz1kGvgN3OhoGCsPncy1qo/+q61tjy5r87OxBhSY1+hcH3yOhEW+g==} - engines: {node: '>=18'} + postcss-selector-not@7.0.2: + resolution: {integrity: sha512-/SSxf/90Obye49VZIfc0ls4H0P6i6V1iHv0pzZH8SdgvZOPFkF37ef1r5cyWcMflJSFJ5bfuoluTnFnBBFiuSA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -8679,233 +8702,248 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@csstools/cascade-layer-name-parser@2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': + '@csstools/cascade-layer-name-parser@1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 - '@csstools/color-helpers@5.0.1': {} + '@csstools/color-helpers@4.2.1': {} - '@csstools/css-calc@2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': + '@csstools/css-calc@1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 - '@csstools/css-color-parser@3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': + '@csstools/css-color-parser@2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/color-helpers': 5.0.1 - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 + '@csstools/color-helpers': 4.2.1 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + + '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)': + dependencies: + '@csstools/css-tokenizer': 2.4.1 '@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1)': dependencies: '@csstools/css-tokenizer': 3.0.1 + '@csstools/css-tokenizer@2.4.1': {} + '@csstools/css-tokenizer@3.0.1': {} + '@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': + dependencies: + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': dependencies: '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-cascade-layers@5.0.0(postcss@8.4.47)': + '@csstools/postcss-cascade-layers@4.0.6(postcss@8.4.47)': dependencies: - '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) postcss: 8.4.47 postcss-selector-parser: 6.1.2 - '@csstools/postcss-color-function@4.0.2(postcss@8.4.47)': + '@csstools/postcss-color-function@3.0.19(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-color-mix-function@3.0.2(postcss@8.4.47)': + '@csstools/postcss-color-mix-function@2.0.19(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-content-alt-text@2.0.1(postcss@8.4.47)': + '@csstools/postcss-content-alt-text@1.0.0(postcss@8.4.47)': dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-exponential-functions@2.0.1(postcss@8.4.47)': + '@csstools/postcss-exponential-functions@1.0.9(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.47 - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.4.47)': + '@csstools/postcss-font-format-keywords@3.0.2(postcss@8.4.47)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.2(postcss@8.4.47)': + '@csstools/postcss-gamut-mapping@1.0.11(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.47 - '@csstools/postcss-gradients-interpolation-method@5.0.2(postcss@8.4.47)': + '@csstools/postcss-gradients-interpolation-method@4.0.20(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-hwb-function@4.0.2(postcss@8.4.47)': + '@csstools/postcss-hwb-function@3.0.18(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-ic-unit@4.0.0(postcss@8.4.47)': + '@csstools/postcss-ic-unit@3.0.7(postcss@8.4.47)': dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@2.0.0(postcss@8.4.47)': + '@csstools/postcss-initial@1.0.1(postcss@8.4.47)': dependencies: postcss: 8.4.47 - '@csstools/postcss-is-pseudo-class@5.0.0(postcss@8.4.47)': + '@csstools/postcss-is-pseudo-class@4.0.8(postcss@8.4.47)': dependencies: - '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) postcss: 8.4.47 postcss-selector-parser: 6.1.2 - '@csstools/postcss-light-dark-function@2.0.4(postcss@8.4.47)': + '@csstools/postcss-light-dark-function@1.0.8(postcss@8.4.47)': dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.4.47)': + '@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.4.47)': dependencies: postcss: 8.4.47 - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.4.47)': + '@csstools/postcss-logical-overflow@1.0.1(postcss@8.4.47)': dependencies: postcss: 8.4.47 - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.4.47)': + '@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.4.47)': dependencies: postcss: 8.4.47 - '@csstools/postcss-logical-resize@3.0.0(postcss@8.4.47)': + '@csstools/postcss-logical-resize@2.0.1(postcss@8.4.47)': dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.1(postcss@8.4.47)': + '@csstools/postcss-logical-viewport-units@2.0.11(postcss@8.4.47)': dependencies: - '@csstools/css-tokenizer': 3.0.1 - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-media-minmax@2.0.1(postcss@8.4.47)': + '@csstools/postcss-media-minmax@1.1.8(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.4.47 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.1(postcss@8.4.47)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11(postcss@8.4.47)': dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.4.47 - '@csstools/postcss-nested-calc@4.0.0(postcss@8.4.47)': + '@csstools/postcss-nested-calc@3.0.2(postcss@8.4.47)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.4.47)': + '@csstools/postcss-normalize-display-values@3.0.2(postcss@8.4.47)': dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.2(postcss@8.4.47)': + '@csstools/postcss-oklab-function@3.0.19(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.4.47)': + '@csstools/postcss-progressive-custom-properties@3.3.0(postcss@8.4.47)': dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-relative-color-syntax@3.0.2(postcss@8.4.47)': + '@csstools/postcss-relative-color-syntax@2.0.19(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-scope-pseudo-class@4.0.0(postcss@8.4.47)': + '@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.4.47)': dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 - '@csstools/postcss-stepped-value-functions@4.0.1(postcss@8.4.47)': + '@csstools/postcss-stepped-value-functions@3.0.10(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.47 - '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.4.47)': + '@csstools/postcss-text-decoration-shorthand@3.0.7(postcss@8.4.47)': dependencies: - '@csstools/color-helpers': 5.0.1 + '@csstools/color-helpers': 4.2.1 postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.1(postcss@8.4.47)': + '@csstools/postcss-trigonometric-functions@3.0.10(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.47 - '@csstools/postcss-unset-value@4.0.0(postcss@8.4.47)': + '@csstools/postcss-unset-value@3.0.1(postcss@8.4.47)': dependencies: postcss: 8.4.47 - '@csstools/selector-resolve-nested@2.0.0(postcss-selector-parser@6.1.2)': + '@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.1.2)': + dependencies: + postcss-selector-parser: 6.1.2 + + '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.2)': dependencies: postcss-selector-parser: 6.1.2 @@ -8913,7 +8951,7 @@ snapshots: dependencies: postcss-selector-parser: 6.1.2 - '@csstools/utilities@2.0.0(postcss@8.4.47)': + '@csstools/utilities@1.0.0(postcss@8.4.47)': dependencies: postcss: 8.4.47 @@ -11374,21 +11412,21 @@ snapshots: dependencies: type-fest: 1.4.0 - css-blank-pseudo@7.0.0(postcss@8.4.47): + css-blank-pseudo@6.0.2(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 css-functions-list@3.2.2: {} - css-has-pseudo@7.0.0(postcss@8.4.47): + css-has-pseudo@6.0.5(postcss@8.4.47): dependencies: - '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) postcss: 8.4.47 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - css-prefers-color-scheme@10.0.0(postcss@8.4.47): + css-prefers-color-scheme@9.0.1(postcss@8.4.47): dependencies: postcss: 8.4.47 @@ -14025,7 +14063,7 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-attribute-case-insensitive@7.0.0(postcss@8.4.47): + postcss-attribute-case-insensitive@6.0.3(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 @@ -14035,70 +14073,70 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.2(postcss@8.4.47): + postcss-color-functional-notation@6.0.14(postcss@8.4.47): dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - postcss-color-hex-alpha@10.0.0(postcss@8.4.47): + postcss-color-hex-alpha@9.0.4(postcss@8.4.47): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.4.47): + postcss-color-rebeccapurple@9.0.3(postcss@8.4.47): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.2(postcss@8.4.47): + postcss-custom-media@10.0.8(postcss@8.4.47): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.4.47 - postcss-custom-properties@14.0.1(postcss@8.4.47): + postcss-custom-properties@13.3.12(postcss@8.4.47): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.1(postcss@8.4.47): + postcss-custom-selectors@7.1.12(postcss@8.4.47): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 + '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.47 postcss-selector-parser: 6.1.2 - postcss-dir-pseudo-class@9.0.0(postcss@8.4.47): + postcss-dir-pseudo-class@8.0.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 - postcss-double-position-gradients@6.0.0(postcss@8.4.47): + postcss-double-position-gradients@5.0.7(postcss@8.4.47): dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-focus-visible@10.0.0(postcss@8.4.47): + postcss-focus-visible@9.0.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 - postcss-focus-within@9.0.0(postcss@8.4.47): + postcss-focus-within@8.0.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 @@ -14107,42 +14145,42 @@ snapshots: dependencies: postcss: 8.4.47 - postcss-gap-properties@6.0.0(postcss@8.4.47): + postcss-gap-properties@5.0.1(postcss@8.4.47): dependencies: postcss: 8.4.47 - postcss-image-set-function@7.0.0(postcss@8.4.47): + postcss-image-set-function@6.0.3(postcss@8.4.47): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-lab-function@7.0.2(postcss@8.4.47): + postcss-lab-function@6.0.19(postcss@8.4.47): dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/utilities': 1.0.0(postcss@8.4.47) postcss: 8.4.47 - postcss-logical@8.0.0(postcss@8.4.47): + postcss-logical@7.0.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-nesting@13.0.0(postcss@8.4.47): + postcss-nesting@12.1.5(postcss@8.4.47): dependencies: - '@csstools/selector-resolve-nested': 2.0.0(postcss-selector-parser@6.1.2) - '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + '@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.1.2) + '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) postcss: 8.4.47 postcss-selector-parser: 6.1.2 - postcss-opacity-percentage@3.0.0(postcss@8.4.47): + postcss-opacity-percentage@2.0.0(postcss@8.4.47): dependencies: postcss: 8.4.47 - postcss-overflow-shorthand@6.0.0(postcss@8.4.47): + postcss-overflow-shorthand@5.0.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 @@ -14151,77 +14189,77 @@ snapshots: dependencies: postcss: 8.4.47 - postcss-place@10.0.0(postcss@8.4.47): + postcss-place@9.0.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-preset-env@10.0.6(postcss@8.4.47): - dependencies: - '@csstools/postcss-cascade-layers': 5.0.0(postcss@8.4.47) - '@csstools/postcss-color-function': 4.0.2(postcss@8.4.47) - '@csstools/postcss-color-mix-function': 3.0.2(postcss@8.4.47) - '@csstools/postcss-content-alt-text': 2.0.1(postcss@8.4.47) - '@csstools/postcss-exponential-functions': 2.0.1(postcss@8.4.47) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.4.47) - '@csstools/postcss-gamut-mapping': 2.0.2(postcss@8.4.47) - '@csstools/postcss-gradients-interpolation-method': 5.0.2(postcss@8.4.47) - '@csstools/postcss-hwb-function': 4.0.2(postcss@8.4.47) - '@csstools/postcss-ic-unit': 4.0.0(postcss@8.4.47) - '@csstools/postcss-initial': 2.0.0(postcss@8.4.47) - '@csstools/postcss-is-pseudo-class': 5.0.0(postcss@8.4.47) - '@csstools/postcss-light-dark-function': 2.0.4(postcss@8.4.47) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.4.47) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.4.47) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.4.47) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.4.47) - '@csstools/postcss-logical-viewport-units': 3.0.1(postcss@8.4.47) - '@csstools/postcss-media-minmax': 2.0.1(postcss@8.4.47) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.1(postcss@8.4.47) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.4.47) - '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.4.47) - '@csstools/postcss-oklab-function': 4.0.2(postcss@8.4.47) - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/postcss-relative-color-syntax': 3.0.2(postcss@8.4.47) - '@csstools/postcss-scope-pseudo-class': 4.0.0(postcss@8.4.47) - '@csstools/postcss-stepped-value-functions': 4.0.1(postcss@8.4.47) - '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.4.47) - '@csstools/postcss-trigonometric-functions': 4.0.1(postcss@8.4.47) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.47) + postcss-preset-env@9.6.0(postcss@8.4.47): + dependencies: + '@csstools/postcss-cascade-layers': 4.0.6(postcss@8.4.47) + '@csstools/postcss-color-function': 3.0.19(postcss@8.4.47) + '@csstools/postcss-color-mix-function': 2.0.19(postcss@8.4.47) + '@csstools/postcss-content-alt-text': 1.0.0(postcss@8.4.47) + '@csstools/postcss-exponential-functions': 1.0.9(postcss@8.4.47) + '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.47) + '@csstools/postcss-gamut-mapping': 1.0.11(postcss@8.4.47) + '@csstools/postcss-gradients-interpolation-method': 4.0.20(postcss@8.4.47) + '@csstools/postcss-hwb-function': 3.0.18(postcss@8.4.47) + '@csstools/postcss-ic-unit': 3.0.7(postcss@8.4.47) + '@csstools/postcss-initial': 1.0.1(postcss@8.4.47) + '@csstools/postcss-is-pseudo-class': 4.0.8(postcss@8.4.47) + '@csstools/postcss-light-dark-function': 1.0.8(postcss@8.4.47) + '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.47) + '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.47) + '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.47) + '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.47) + '@csstools/postcss-logical-viewport-units': 2.0.11(postcss@8.4.47) + '@csstools/postcss-media-minmax': 1.1.8(postcss@8.4.47) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.11(postcss@8.4.47) + '@csstools/postcss-nested-calc': 3.0.2(postcss@8.4.47) + '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.47) + '@csstools/postcss-oklab-function': 3.0.19(postcss@8.4.47) + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.47) + '@csstools/postcss-relative-color-syntax': 2.0.19(postcss@8.4.47) + '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.47) + '@csstools/postcss-stepped-value-functions': 3.0.10(postcss@8.4.47) + '@csstools/postcss-text-decoration-shorthand': 3.0.7(postcss@8.4.47) + '@csstools/postcss-trigonometric-functions': 3.0.10(postcss@8.4.47) + '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.47) autoprefixer: 10.4.19(postcss@8.4.47) browserslist: 4.23.1 - css-blank-pseudo: 7.0.0(postcss@8.4.47) - css-has-pseudo: 7.0.0(postcss@8.4.47) - css-prefers-color-scheme: 10.0.0(postcss@8.4.47) + css-blank-pseudo: 6.0.2(postcss@8.4.47) + css-has-pseudo: 6.0.5(postcss@8.4.47) + css-prefers-color-scheme: 9.0.1(postcss@8.4.47) cssdb: 8.1.1 postcss: 8.4.47 - postcss-attribute-case-insensitive: 7.0.0(postcss@8.4.47) + postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.47) postcss-clamp: 4.1.0(postcss@8.4.47) - postcss-color-functional-notation: 7.0.2(postcss@8.4.47) - postcss-color-hex-alpha: 10.0.0(postcss@8.4.47) - postcss-color-rebeccapurple: 10.0.0(postcss@8.4.47) - postcss-custom-media: 11.0.2(postcss@8.4.47) - postcss-custom-properties: 14.0.1(postcss@8.4.47) - postcss-custom-selectors: 8.0.1(postcss@8.4.47) - postcss-dir-pseudo-class: 9.0.0(postcss@8.4.47) - postcss-double-position-gradients: 6.0.0(postcss@8.4.47) - postcss-focus-visible: 10.0.0(postcss@8.4.47) - postcss-focus-within: 9.0.0(postcss@8.4.47) + postcss-color-functional-notation: 6.0.14(postcss@8.4.47) + postcss-color-hex-alpha: 9.0.4(postcss@8.4.47) + postcss-color-rebeccapurple: 9.0.3(postcss@8.4.47) + postcss-custom-media: 10.0.8(postcss@8.4.47) + postcss-custom-properties: 13.3.12(postcss@8.4.47) + postcss-custom-selectors: 7.1.12(postcss@8.4.47) + postcss-dir-pseudo-class: 8.0.1(postcss@8.4.47) + postcss-double-position-gradients: 5.0.7(postcss@8.4.47) + postcss-focus-visible: 9.0.1(postcss@8.4.47) + postcss-focus-within: 8.0.1(postcss@8.4.47) postcss-font-variant: 5.0.0(postcss@8.4.47) - postcss-gap-properties: 6.0.0(postcss@8.4.47) - postcss-image-set-function: 7.0.0(postcss@8.4.47) - postcss-lab-function: 7.0.2(postcss@8.4.47) - postcss-logical: 8.0.0(postcss@8.4.47) - postcss-nesting: 13.0.0(postcss@8.4.47) - postcss-opacity-percentage: 3.0.0(postcss@8.4.47) - postcss-overflow-shorthand: 6.0.0(postcss@8.4.47) + postcss-gap-properties: 5.0.1(postcss@8.4.47) + postcss-image-set-function: 6.0.3(postcss@8.4.47) + postcss-lab-function: 6.0.19(postcss@8.4.47) + postcss-logical: 7.0.1(postcss@8.4.47) + postcss-nesting: 12.1.5(postcss@8.4.47) + postcss-opacity-percentage: 2.0.0(postcss@8.4.47) + postcss-overflow-shorthand: 5.0.1(postcss@8.4.47) postcss-page-break: 3.0.4(postcss@8.4.47) - postcss-place: 10.0.0(postcss@8.4.47) - postcss-pseudo-class-any-link: 10.0.0(postcss@8.4.47) + postcss-place: 9.0.1(postcss@8.4.47) + postcss-pseudo-class-any-link: 9.0.2(postcss@8.4.47) postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.47) - postcss-selector-not: 8.0.0(postcss@8.4.47) + postcss-selector-not: 7.0.2(postcss@8.4.47) - postcss-pseudo-class-any-link@10.0.0(postcss@8.4.47): + postcss-pseudo-class-any-link@9.0.2(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 @@ -14236,7 +14274,7 @@ snapshots: dependencies: postcss: 8.4.47 - postcss-selector-not@8.0.0(postcss@8.4.47): + postcss-selector-not@7.0.2(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 diff --git a/src/internal/Icons/IconDownloadVideo.tsx b/src/internal/Icons/IconDownloadVideo.tsx new file mode 100644 index 00000000..a2239674 --- /dev/null +++ b/src/internal/Icons/IconDownloadVideo.tsx @@ -0,0 +1,13 @@ +import type {FC, SVGProps} from 'react'; +import Icon from '@phosphor-icons/core/assets/fill/box-arrow-down-fill.svg?react'; +import classNames from 'classnames'; + +import classes from './Icon.module.css'; + +type Props = SVGProps & { + className?: string; +}; + +export const IconDownloadVideo: FC = ({className, ...restProps}) => { + return ; +}; diff --git a/src/internal/Icons/IconFullscreen.tsx b/src/internal/Icons/IconFullscreen.tsx new file mode 100644 index 00000000..33e6ece6 --- /dev/null +++ b/src/internal/Icons/IconFullscreen.tsx @@ -0,0 +1,13 @@ +import type {FC, SVGProps} from 'react'; +import Icon from '@phosphor-icons/core/assets/fill/frame-corners-fill.svg?react'; +import classNames from 'classnames'; + +import classes from './Icon.module.css'; + +type Props = SVGProps & { + className?: string; +}; + +export const IconFullscreen: FC = ({className, ...restProps}) => { + return ; +}; diff --git a/src/internal/Icons/IconPause.tsx b/src/internal/Icons/IconPause.tsx new file mode 100644 index 00000000..eea2895f --- /dev/null +++ b/src/internal/Icons/IconPause.tsx @@ -0,0 +1,13 @@ +import type {FC, SVGProps} from 'react'; +import Icon from '@phosphor-icons/core/assets/fill/pause-fill.svg?react'; +import classNames from 'classnames'; + +import classes from './Icon.module.css'; + +type Props = SVGProps & { + className?: string; +}; + +export const IconPause: FC = ({className, ...restProps}) => { + return ; +}; diff --git a/src/internal/Icons/IconPictureInPicture.tsx b/src/internal/Icons/IconPictureInPicture.tsx new file mode 100644 index 00000000..9188113c --- /dev/null +++ b/src/internal/Icons/IconPictureInPicture.tsx @@ -0,0 +1,13 @@ +import type {FC, SVGProps} from 'react'; +import Icon from '@phosphor-icons/core/assets/fill/picture-in-picture-fill.svg?react'; +import classNames from 'classnames'; + +import classes from './Icon.module.css'; + +type Props = SVGProps & { + className?: string; +}; + +export const IconPictureInPicture: FC = ({className, ...restProps}) => { + return ; +}; diff --git a/src/internal/Icons/IconPlay.tsx b/src/internal/Icons/IconPlay.tsx new file mode 100644 index 00000000..a3f995ca --- /dev/null +++ b/src/internal/Icons/IconPlay.tsx @@ -0,0 +1,13 @@ +import type {FC, SVGProps} from 'react'; +import Icon from '@phosphor-icons/core/assets/fill/play-fill.svg?react'; +import classNames from 'classnames'; + +import classes from './Icon.module.css'; + +type Props = SVGProps & { + className?: string; +}; + +export const IconPlay: FC = ({className, ...restProps}) => { + return ; +}; diff --git a/src/internal/Icons/IconSpeed.tsx b/src/internal/Icons/IconSpeed.tsx new file mode 100644 index 00000000..db93ccdd --- /dev/null +++ b/src/internal/Icons/IconSpeed.tsx @@ -0,0 +1,13 @@ +import type {FC, SVGProps} from 'react'; +import Icon from '@phosphor-icons/core/assets/fill/gauge-fill.svg?react'; +import classNames from 'classnames'; + +import classes from './Icon.module.css'; + +type Props = SVGProps & { + className?: string; +}; + +export const IconSpeed: FC = ({className, ...restProps}) => { + return ; +}; diff --git a/src/internal/Icons/IconVideo.tsx b/src/internal/Icons/IconVideo.tsx new file mode 100644 index 00000000..9bd3b693 --- /dev/null +++ b/src/internal/Icons/IconVideo.tsx @@ -0,0 +1,13 @@ +import type {FC, SVGProps} from 'react'; +import Icon from '@phosphor-icons/core/assets/fill/film-slate-fill.svg?react'; +import classNames from 'classnames'; + +import classes from './Icon.module.css'; + +type Props = SVGProps & { + className?: string; +}; + +export const IconVideo: FC = ({className, ...restProps}) => { + return ; +}; diff --git a/src/internal/Icons/IconVolume.tsx b/src/internal/Icons/IconVolume.tsx new file mode 100644 index 00000000..fe8a9072 --- /dev/null +++ b/src/internal/Icons/IconVolume.tsx @@ -0,0 +1,13 @@ +import type {FC, SVGProps} from 'react'; +import Icon from '@phosphor-icons/core/assets/fill/speaker-high-fill.svg?react'; +import classNames from 'classnames'; + +import classes from './Icon.module.css'; + +type Props = SVGProps & { + className?: string; +}; + +export const IconVolume: FC = ({className, ...restProps}) => { + return ; +}; diff --git a/src/internal/Icons/IconVolumeOff.tsx b/src/internal/Icons/IconVolumeOff.tsx new file mode 100644 index 00000000..85e22d4e --- /dev/null +++ b/src/internal/Icons/IconVolumeOff.tsx @@ -0,0 +1,13 @@ +import type {FC, SVGProps} from 'react'; +import Icon from '@phosphor-icons/core/assets/fill/speaker-slash-fill.svg?react'; +import classNames from 'classnames'; + +import classes from './Icon.module.css'; + +type Props = SVGProps & { + className?: string; +}; + +export const IconVolumeOff: FC = ({className, ...restProps}) => { + return ; +}; diff --git a/src/internal/Icons/index.ts b/src/internal/Icons/index.ts index 30d731c2..8aa0c6bc 100644 --- a/src/internal/Icons/index.ts +++ b/src/internal/Icons/index.ts @@ -45,3 +45,12 @@ export {IconErrorOutline} from './IconErrorOutline.tsx'; export {IconSortOff} from './IconSortOff.tsx'; export {IconColumns} from './IconColumns.tsx'; export {IconNumeric} from './IconNumeric.tsx'; +export {IconPlay} from './IconPlay.tsx'; +export {IconPause} from './IconPause.tsx'; +export {IconVolume} from './IconVolume.tsx'; +export {IconVolumeOff} from './IconVolumeOff.tsx'; +export {IconFullscreen} from './IconFullscreen.tsx'; +export {IconPictureInPicture} from './IconPictureInPicture.tsx'; +export {IconDownloadVideo} from './IconDownloadVideo.tsx'; +export {IconVideo} from './IconVideo.tsx'; +export {IconSpeed} from './IconSpeed.tsx'; diff --git a/src/lib/InputRange/InputRange.module.css b/src/lib/InputRange/InputRange.module.css index 2e17bb51..994d0828 100644 --- a/src/lib/InputRange/InputRange.module.css +++ b/src/lib/InputRange/InputRange.module.css @@ -55,7 +55,9 @@ background-color: var(--thumb-color); border: none; cursor: grab; + height: var(--slider-height); transition: background-color var(--kg-time-sm) ease-in-out; + width: var(--slider-width); } &:--hoverSelector { diff --git a/src/lib/InputRange/InputRange.stories.tsx b/src/lib/InputRange/InputRange.stories.tsx index 9682df74..68695d5d 100644 --- a/src/lib/InputRange/InputRange.stories.tsx +++ b/src/lib/InputRange/InputRange.stories.tsx @@ -27,6 +27,7 @@ const meta = { step: 1, scaleUnit: 'F', disabled: false, + displayScale: true, }, argTypes: { value: {control: 'text'}, diff --git a/src/lib/InputRange/InputRange.tsx b/src/lib/InputRange/InputRange.tsx index d48618fd..ab156f44 100644 --- a/src/lib/InputRange/InputRange.tsx +++ b/src/lib/InputRange/InputRange.tsx @@ -23,6 +23,10 @@ export type Props = DataAttributes & prefix?: FC<{className?: string} & SVGProps & unknown>; bars?: number; scaleUnit?: string; + /** + * Enable to display scale below input + */ + displayScale?: boolean; }; const createOptions = ({ @@ -72,6 +76,7 @@ export const InputRange = forwardRef( revalidateOnFormChange, validation, errorMessage, + displayScale, ...nativeProps }, ref @@ -143,9 +148,11 @@ export const InputRange = forwardRef( min={min} max={max} /> - - {createOptions({min: Number(min), max: Number(max), bars, scaleUnit})} - + {displayScale && ( + + {createOptions({min: Number(min), max: Number(max), bars, scaleUnit})} + + )} {/* TODO: add htmlFor when CSS vars hook supports it */} diff --git a/src/lib/Video/Video.mdx b/src/lib/Video/Video.mdx new file mode 100644 index 00000000..b08b7541 --- /dev/null +++ b/src/lib/Video/Video.mdx @@ -0,0 +1,24 @@ +import { Meta, ArgTypes, Story, Canvas, Source, Markdown, Primary } from "@storybook/blocks"; +import {Video} from './Video.tsx'; +import * as VideoStories from "./Video.stories.tsx"; + + + +# Video + +## Description + +`Video` component plays provided video file using Video Embed element. + +## Imports + +{` +\`\`\`ts +import {Video} from 'koval-ui'; +\`\`\` +`} + + + + + diff --git a/src/lib/Video/Video.module.css b/src/lib/Video/Video.module.css new file mode 100644 index 00000000..9fdb7b9b --- /dev/null +++ b/src/lib/Video/Video.module.css @@ -0,0 +1,444 @@ +@import url("@/internal/inputs/stateSelectorsInteractive.css"); +@import url("@/lib/Layout/customMedia.css"); + +.vars { + --width: 0px; + --height: 0px; +} + +.container { + --icon-size: calc(var(--kg-size-unit) * 3); + --font-size: var(--kg-font-size-small); + + @media (--viewport-sm) { + --icon-size: calc(var(--kg-size-unit) * 4); + --font-size: var(--kg-font-size-medium); + } + + aspect-ratio: calc(var(--width) / var(--height)); + height: auto; + max-width: 100%; + position: relative; + width: var(--width); + + &:hover { + & .overlay-title, + & .overlay-controls { + opacity: 1; + } + } +} + +.video { + display: block; + height: auto; + width: 100%; +} + +@keyframes loading { + to { + background-position-x: -20%; + } +} + +.overlay-button { + --button-size: calc(var(--kg-size-unit) * 10); + + height: var(--button-size); + left: 50%; + position: absolute; + top: 50%; + transform: translate(-50%, -50%); + width: var(--button-size); + + & button { + align-items: center; + background-color: var(--kg-color-re); + border-radius: calc(var(--button-size) / 2); + cursor: pointer; + display: flex; + height: var(--button-size); + justify-content: center; + width: var(--button-size); + + &:hover { + background-color: var(--kg-color-do); + } + + &.loading { + --loading-color: color-mix( + in srgb, + var(--kg-background-300) 66%, + var(--kg-background-100) + ); + + animation: var(--kg-time-xl) loading ease-in-out infinite; + background: linear-gradient( + 90deg, + rgb(222 222 222 / 0%) 40%, + rgb(222 222 222 / 50%) 50%, + rgb(222 222 222 / 0%) 60% + ) + var(--loading-color); + background-color: var(--loading-color); + background-position-x: 180%; + background-size: 200% 100%; + cursor: progress; + } + + &:active { + & .icon { + transform: translate(2px, 2px); + } + } + } + + & .icon { + height: calc(var(--kg-size-unit) * 6); + width: calc(var(--kg-size-unit) * 6); + } +} + +.overlay-title { + align-items: center; + backdrop-filter: blur(6px); + background-color: color-mix(in srgb, var(--kg-color-re) 33%, transparent); + color: var(--kg-background-000); + display: flex; + font-size: var(--font-size); + gap: var(--kg-size-unit); + left: 0; + opacity: 0; + padding: calc(var(--kg-size-unit) * 2); + position: absolute; + right: 0; + text-shadow: var(--kg-text-shadow); + top: 0; + transition: opacity var(--kg-time-sm) ease-out; + + & .icon { + flex-shrink: 0; + } + + & .title { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + & .button { + margin-left: auto; + } +} + +.overlay-controls { + backdrop-filter: blur(6px); + background-color: color-mix(in srgb, var(--kg-color-re) 33%, transparent); + bottom: 0; + display: flex; + flex-direction: column; + gap: var(--kg-size-unit); + left: 0; + opacity: 0; + padding: var(--kg-size-unit) calc(var(--kg-size-unit) * 2); + position: absolute; + right: 0; + transition: opacity var(--kg-time-sm) ease-out; + + @media (--viewport-sm) { + padding: var(--kg-size-unit) calc(var(--kg-size-unit) * 2) calc(var(--kg-size-unit) * 2); + } +} + +.buttons-container { + align-items: center; + display: flex; + + & .left { + align-items: center; + display: flex; + gap: calc(var(--kg-size-unit) * 2); + } + + & .right { + align-items: center; + display: flex; + gap: calc(var(--kg-size-unit) * 3); + margin-left: auto; + } +} + +.speed { + --range-height: calc(var(--kg-size-unit) * 16); + + align-items: center; + display: flex; + gap: var(--kg-size-unit); + height: var(--icon-size); + position: relative; + + & .range-container { + backdrop-filter: blur(6px); + background-color: color-mix(in srgb, var(--kg-color-re) 66%, transparent); + border-radius: var(--kg-border-radius-300); + bottom: calc(var(--icon-size) + var(--kg-size-unit)); + height: calc(var(--range-height) + calc(var(--kg-size-unit) * 4)); + left: 50%; + padding: calc(var(--kg-size-unit) * 2) calc(var(--kg-size-unit) * 1) + calc(var(--kg-size-unit) * 2) calc(var(--kg-size-unit) * 3); + position: absolute; + right: 0; + transform: translate(-50%, 0); + width: calc(var(--kg-size-unit) * 9); + + @supports (-moz-appearance: none) { + padding-left: calc(var(--kg-size-unit) * 1.5); + } + } + + & .range { + --track-height: var(--range-height); + --slider-height: calc(var(--kg-size-unit) * 2); + --slider-width: var(--slider-height); + + direction: rtl; + height: var(--range-height); + writing-mode: vertical-lr; + + &::-webkit-slider-runnable-track { + width: 2px; + } + + &::-webkit-slider-thumb { + margin-left: -5px; + margin-top: 0; + } + + &::-moz-range-track { + width: 2px; + } + } + + & .scale { + color: var(--kg-background-000); + cursor: default; + display: flex; + flex-direction: column-reverse; + font-family: var(--kg-font-family); + font-size: var(--kg-font-size-extra-small); + font-weight: var(--kg-font-weight-bold); + height: var(--range-height); + justify-content: space-between; + position: absolute; + right: calc(var(--kg-size-unit) * 1.5); + text-shadow: var(--kg-text-shadow); + top: calc(var(--kg-size-unit) * 2); + user-select: none; + } +} + +.time-stamp { + align-items: center; + color: var(--kg-background-000); + display: flex; + gap: calc(var(--kg-size-unit) / 2); + text-shadow: var(--kg-text-shadow); + + & .time { + font-size: var(--font-size); + font-variant-numeric: tabular-nums; + } + + & .spacer { + font-size: var(--kg-font-size-large); + } +} + +.volume { + align-items: center; + display: flex; + gap: var(--kg-size-unit); + + & .range { + /* Don't display volume control on mobile devices (aka small screens). Device settings should be used instead */ + display: none; + width: calc(var(--kg-size-unit) * 16); + + @media (--viewport-sm) { + display: block; + } + } +} + +.icon { + color: var(--kg-background-000); + filter: drop-shadow(var(--kg-text-shadow)); + height: var(--icon-size); + width: var(--icon-size); +} + +.button-big { + cursor: pointer; + + &:active { + & .icon { + transform: translate(1px, 1px); + } + } + + @media (--viewport-sm) { + background: var(--kg-color-re); + border-radius: calc(var(--kg-size-unit) * 4); + padding: calc(var(--kg-size-unit) * 1.5); + + &:hover { + background-color: var(--kg-color-do); + } + } +} + +.button { + cursor: pointer; + + &:active { + & .icon { + transform: translate(1px, 1px); + } + } + + &:hover { + & .icon { + color: var(--kg-color-mi); + } + } +} + +.timeline-container { + & .range { + --thumb-color: var(--kg-color-do); + --track-height: calc(var(--kg-size-unit) / 2); + + width: 100%; + } +} + +.range { + --track-height: calc(var(--kg-size-unit) / 3); + --slider-height: calc(var(--kg-size-unit) * 2); + --slider-width: var(--slider-height); + --track-color: var(--kg-background-000); + --track-color-active: var(--kg-color-mi); + --thumb-color: var(--kg-color-do); + --thumb-color-active: var(--kg-color-do); + + filter: drop-shadow(var(--kg-text-shadow)); + + &::-moz-range-track { + background: var(--track-color); + height: var(--track-height); + transition: background-color var(--kg-time-sm) ease-in-out; + } + + &::-webkit-slider-runnable-track { + appearance: none; + background: var(--track-color); + height: var(--track-height); + transition: background-color var(--kg-time-sm) ease-in-out; + } + + &::-webkit-slider-thumb { + appearance: none; + background-color: var(--thumb-color); + border: none; + border-radius: 50%; + cursor: grab; + height: var(--slider-height); + margin-top: calc(var(--track-height) / 2 - var(--slider-height) / 2); + transition: background-color var(--kg-time-sm) ease-in-out; + width: var(--slider-width); + } + + &::-moz-range-thumb { + background-color: var(--thumb-color); + border: none; + cursor: grab; + height: var(--slider-height); + transition: background-color var(--kg-time-sm) ease-in-out; + width: var(--slider-width); + } + + &:--hoverSelector { + &::-moz-range-track { + background: var(--track-color-active); + } + + &::-webkit-slider-runnable-track { + background: var(--track-color-active); + } + } + + &:--disabledSelector { + &::-moz-range-thumb { + background-color: var(--kg-background-100); + cursor: not-allowed; + } + + &::-webkit-slider-thumb { + background-color: var(--kg-background-100); + cursor: not-allowed; + } + + &::-moz-range-track { + background: var(--kg-background-100); + } + + &::-webkit-slider-runnable-track { + background: var(--kg-background-100); + } + } + + &:active:not(:--disabledSelector) { + &::-moz-range-thumb { + cursor: grabbing; + } + + &::-webkit-slider-thumb { + cursor: grabbing; + } + } + + &:active:not(:--disabledSelector), + &:--focusSelector { + &::-moz-range-thumb { + background-color: var(--thumb-color-active); + } + + &::-webkit-slider-thumb { + background-color: var(--thumb-color-active); + } + + &::-moz-range-track { + background: var(--track-color-active); + } + + &::-webkit-slider-runnable-track { + background: var(--track-color-active); + } + } + + &:--invalidSelector:focus { + &::-moz-range-track { + background: var(--kg-color-error); + } + + &::-webkit-slider-runnable-track { + background: var(--kg-color-error); + } + } +} + +.menu-reference { + align-items: center; + align-self: center; + display: flex; +} diff --git a/src/lib/Video/Video.stories.tsx b/src/lib/Video/Video.stories.tsx new file mode 100644 index 00000000..ccb9ac51 --- /dev/null +++ b/src/lib/Video/Video.stories.tsx @@ -0,0 +1,117 @@ +import type {Meta, StoryObj} from '@storybook/react'; +import {fn} from '@storybook/test'; + +import {Video} from './Video.tsx'; +import poster from './poster.jpg'; + +const meta = { + title: 'Components/Video', + component: Video, + parameters: { + layout: 'fullscreen', + }, + args: { + width: 720, + height: 405, + title: 'Big Buck Bunny', + poster: poster, + loop: false, + muted: false, + autoPlay: false, + enablePictureInPicture: true, + enableFullscreen: true, + showControls: true, + showTitle: true, + preload: 'auto', + onCanPlay: fn(), + onReady: fn(), + onError: fn(), + onPlay: fn(), + onPause: fn(), + }, + argTypes: { + width: { + control: 'number', + }, + src: { + table: { + disable: true, + }, + }, + sources: { + table: { + disable: true, + }, + }, + className: { + table: { + disable: true, + }, + }, + id: { + table: { + disable: true, + }, + }, + role: { + table: { + disable: true, + }, + }, + onCanPlay: { + table: { + disable: true, + }, + }, + onReady: { + table: { + disable: true, + }, + }, + onError: { + table: { + disable: true, + }, + }, + onPlay: { + table: { + disable: true, + }, + }, + onPause: { + table: { + disable: true, + }, + }, + }, +} as Meta; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + name: 'Single source example', + render: args => { + return