diff --git a/.github/workflows/dev.yaml b/.github/workflows/dev.yaml index 075a34597..a8dcad97a 100644 --- a/.github/workflows/dev.yaml +++ b/.github/workflows/dev.yaml @@ -12,17 +12,13 @@ jobs: environment: name: dev/${{ github.event.pull_request.number }} - url: https://ui-kit-open-source.dev.amity.co/${{ github.event.pull_request.number }} + url: https://ui-kit.dev.amity.co/${{ github.event.pull_request.number }} env: + NPM_FONT_AWESOME_TOKEN: ${{ secrets.NPM_FONT_AWESOME_TOKEN }} STORYBOOK_API_REGION: ${{ secrets.STORYBOOK_API_REGION }} STORYBOOK_API_KEY: ${{ secrets.STORYBOOK_API_KEY }} - STORYBOOK_USER1: ${{ secrets.STORYBOOK_USER1 }} - STORYBOOK_USER2: ${{ secrets.STORYBOOK_USER2 }} - STORYBOOK_USER3: ${{ secrets.STORYBOOK_USER3 }} - STORYBOOK_USER4: ${{ secrets.STORYBOOK_USER4 }} - STORYBOOK_USER5: ${{ secrets.STORYBOOK_USER5 }} - STORYBOOK_USER6: ${{ secrets.STORYBOOK_USER6 }} + STORYBOOK_USERS: ${{ secrets.STORYBOOK_USERS }} steps: - name: git checkout @@ -86,6 +82,6 @@ jobs: env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_S3_BUCKET: ui-kit-open-source.dev.amity.co + AWS_S3_BUCKET: ui-kit.dev.amity.co SOURCE_DIR: ./storybook-build DEST_DIR: ${{ github.event.pull_request.number }} diff --git a/.github/workflows/staging.yaml b/.github/workflows/staging.yaml index ac17c7fd1..3d15d4011 100644 --- a/.github/workflows/staging.yaml +++ b/.github/workflows/staging.yaml @@ -11,17 +11,13 @@ jobs: environment: name: staging - url: https://ui-kit-open-source.staging.amity.co/ + url: https://ui-kit.staging.amity.co/ env: + NPM_FONT_AWESOME_TOKEN: ${{ secrets.NPM_FONT_AWESOME_TOKEN }} STORYBOOK_API_REGION: ${{ secrets.STORYBOOK_API_REGION }} STORYBOOK_API_KEY: ${{ secrets.STORYBOOK_API_KEY }} - STORYBOOK_USER1: ${{ secrets.STORYBOOK_USER1 }} - STORYBOOK_USER2: ${{ secrets.STORYBOOK_USER2 }} - STORYBOOK_USER3: ${{ secrets.STORYBOOK_USER3 }} - STORYBOOK_USER4: ${{ secrets.STORYBOOK_USER4 }} - STORYBOOK_USER5: ${{ secrets.STORYBOOK_USER5 }} - STORYBOOK_USER6: ${{ secrets.STORYBOOK_USER6 }} + STORYBOOK_USERS: ${{ secrets.STORYBOOK_USERS }} steps: - name: git checkout @@ -50,6 +46,9 @@ jobs: restore-keys: | ${{ runner.os }}-pnpm-store- + - name: Install dependencies + run: pnpm install + - name: build storybook run: pnpm run storybook:build @@ -60,6 +59,6 @@ jobs: env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_S3_BUCKET: ui-kit-open-source.staging.amity.co + AWS_S3_BUCKET: ui-kit.staging.amity.co SOURCE_DIR: ./storybook-build DEST_DIR: '' diff --git a/.npmrc b/.npmrc index e69de29bb..bd3327ab5 100644 --- a/.npmrc +++ b/.npmrc @@ -0,0 +1 @@ +//registry.npmjs.org/:_authToken=${NPM_TOKEN} \ No newline at end of file diff --git a/.storybook/decorators/FluidControl.tsx b/.storybook/decorators/FluidControl.tsx index 0dcdcf87c..263b0a973 100644 --- a/.storybook/decorators/FluidControl.tsx +++ b/.storybook/decorators/FluidControl.tsx @@ -23,9 +23,8 @@ const FullScreen = (props) => ( position: 'absolute', left: 0, top: 0, - width: '100vw', - height: '100vh', - overflow: 'auto', + width: '100dvw', + height: '100dvh', }} {...props} /> diff --git a/.storybook/decorators/UiKitDecorator.tsx b/.storybook/decorators/UiKitDecorator.tsx index 5043a0d3f..b030a36da 100644 --- a/.storybook/decorators/UiKitDecorator.tsx +++ b/.storybook/decorators/UiKitDecorator.tsx @@ -3,6 +3,8 @@ import UiKitProvider from '../../src/core/providers/UiKitProvider'; import { Preview } from '@storybook/react'; import amityConfig from '../../amity-uikit.config.json'; +const users = import.meta.env.STORYBOOK_USERS.split(','); + const GLOBAL_NAME = 'user'; const global = { [GLOBAL_NAME]: { @@ -13,30 +15,9 @@ const global = { icon: 'user', items: [ { value: 'Web-Test,Web-test', title: 'Web-Test' }, - { - value: import.meta.env.STORYBOOK_USER1, - title: import.meta.env.STORYBOOK_USER1?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER2, - title: import.meta.env.STORYBOOK_USER2?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER3, - title: import.meta.env.STORYBOOK_USER3?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER4, - title: import.meta.env.STORYBOOK_USER4?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER5, - title: import.meta.env.STORYBOOK_USER5?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER6, - title: import.meta.env.STORYBOOK_USER6?.split(',')[1], - }, + ...users.map((user) => { + return { value: `${user},${user}`, title: user }; + }), ], }, }, diff --git a/.storybook/decorators/UiKitV4Decorator.tsx b/.storybook/decorators/UiKitV4Decorator.tsx index afb8dde46..0bc9887e5 100644 --- a/.storybook/decorators/UiKitV4Decorator.tsx +++ b/.storybook/decorators/UiKitV4Decorator.tsx @@ -4,6 +4,8 @@ import { Preview } from '@storybook/react'; import amityConfig from '../../amity-uikit.config.json'; import { Config } from '../../src/v4/core/providers/CustomizationProvider'; +const users = import.meta.env.STORYBOOK_USERS.split(','); + const GLOBAL_NAME = 'user'; const global = { [GLOBAL_NAME]: { @@ -14,30 +16,9 @@ const global = { icon: 'user', items: [ { value: 'Web-Test,Web-test', title: 'Web-Test' }, - { - value: import.meta.env.STORYBOOK_USER1, - title: import.meta.env.STORYBOOK_USER1?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER2, - title: import.meta.env.STORYBOOK_USER2?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER3, - title: import.meta.env.STORYBOOK_USER3?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER4, - title: import.meta.env.STORYBOOK_USER4?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER5, - title: import.meta.env.STORYBOOK_USER5?.split(',')[1], - }, - { - value: import.meta.env.STORYBOOK_USER6, - title: import.meta.env.STORYBOOK_USER6?.split(',')[1], - }, + ...users.map((user) => { + return { value: `${user},${user}`, title: user }; + }), ], }, }, diff --git a/CHANGELOG.md b/CHANGELOG.md index 4589fa1de..ecfce4ecf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## 4.0.0-beta.9 (2024-07-12) + +### Bug Fixes + +- remove unused file ([6ac29fc](https://github.com/AmityCo/Amity-Social-Cloud-UIKit-Web-OpenSource/commit/6ac29fcf22a99029ed59bbde11b8967054c6fb78)) + ## 4.0.0-beta.8 (2024-06-24) ## 4.0.0-beta.7 (2024-06-18) diff --git a/amity-uikit.config.json b/amity-uikit.config.json index 3b0980017..8ea623778 100644 --- a/amity-uikit.config.json +++ b/amity-uikit.config.json @@ -177,28 +177,46 @@ "live_chat/*/*": { "theme": { "light": { - "primary_color": "#1054DE", - "secondary_color": "#ebecef", + "primary_color": "#1054de", + "base_inverse_color": "#fff", "base_color": "#ebecef", "base_shade1_color": "#a5a9b5", "base_shade2_color": "#6e7487", "base_shade3_color": "#40434e", "base_shade4_color": "#292b32", - "alert_color": "#FA4D30", + "secondary_color": "#292b32", + "secondary_shade1_color": "#a5a9b5", + "secondary_shade2_color": "#898e9e", + "secondary_shade3_color": "#a5a9b5", + "secondary_shade4_color": "#40434e", + "secondary_shade5_color": "#292b32", + "alert_color": "#fa4d30", + "highlight_color": "#1054de", + "message_bubble_primary_color": "#1054de", + "message_bubble_secondary_color": "#292b32", "background_color": "#191919", - "base_inverse_color": "#FFFFFF" + "background_shade1_color": "#40434e" }, "dark": { - "primary_color": "#1054DE", - "secondary_color": "#ebecef", + "primary_color": "#1054de", + "base_inverse_color": "#fff", "base_color": "#ebecef", "base_shade1_color": "#a5a9b5", "base_shade2_color": "#6e7487", "base_shade3_color": "#40434e", "base_shade4_color": "#292b32", - "alert_color": "#FA4D30", + "secondary_color": "#292b32", + "secondary_shade1_color": "#a5a9b5", + "secondary_shade2_color": "#898e9e", + "secondary_shade3_color": "#a5a9b5", + "secondary_shade4_color": "#40434e", + "secondary_shade5_color": "#292b32", + "alert_color": "#fa4d30", + "highlight_color": "#1054de", + "message_bubble_primary_color": "#1054de", + "message_bubble_secondary_color": "#292b32", "background_color": "#191919", - "base_inverse_color": "#FFFFFF" + "background_shade1_color": "#40434e" } } }, diff --git a/package.json b/package.json index 8435f7968..63f3bf2ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@amityco/ui-kit-open-source", - "version": "4.0.0-beta.8", + "version": "4.0.0-beta.9", "engines": { "node": ">=20", "pnpm": "9" @@ -61,6 +61,7 @@ "@types/lodash": "^4.14.202", "@types/prop-types": "^15.7.11", "@types/react": "^17.0.74", + "@types/react-dom": "^18.3.0", "@types/react-helmet": "^6.1.11", "@types/react-infinite-scroller": "^1.2.5", "@types/react-mentions": "^4.1.13", @@ -106,14 +107,17 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@hookform/error-message": "^2.0.1", "@hookform/resolvers": "^3.3.4", + "@lexical/link": "^0.16.1", + "@lexical/react": "^0.16.1", "@radix-ui/react-tabs": "^1.0.4", "@tanstack/react-query": "^5.28.14", "clsx": "^2.1.0", + "colorthief": "^2.4.0", "dayjs": "^1.11.11", - "extract-colors": "^4.0.2", "filesize": "^9.0.11", "framer-motion": "^11.1.7", "hls.js": "^1.4.14", + "lexical": "^0.16.1", "linkify-react": "^4.1.3", "linkifyjs": "^4.1.3", "lodash": "^4.17.21", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1bf77335..18c90b136 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,40 +16,49 @@ importers: version: 5.15.4 '@fortawesome/react-fontawesome': specifier: ^0.2.0 - version: 0.2.2(@fortawesome/fontawesome-svg-core@1.3.0)(react@18.3.1) + version: 0.2.0(@fortawesome/fontawesome-svg-core@1.3.0)(react@18.2.0) '@hookform/error-message': specifier: ^2.0.1 - version: 2.0.1(react-dom@18.3.1(react@18.3.1))(react-hook-form@7.52.0(react@18.3.1))(react@18.3.1) + version: 2.0.1(react-dom@18.2.0(react@18.2.0))(react-hook-form@7.51.3(react@18.2.0))(react@18.2.0) '@hookform/resolvers': specifier: ^3.3.4 - version: 3.6.0(react-hook-form@7.52.0(react@18.3.1)) + version: 3.3.4(react-hook-form@7.51.3(react@18.2.0)) + '@lexical/link': + specifier: ^0.16.1 + version: 0.16.1 + '@lexical/react': + specifier: ^0.16.1 + version: 0.16.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(yjs@13.6.18) '@radix-ui/react-tabs': specifier: ^1.0.4 - version: 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@tanstack/react-query': specifier: ^5.28.14 - version: 5.45.1(react@18.3.1) + version: 5.31.0(react@18.2.0) clsx: specifier: ^2.1.0 - version: 2.1.1 + version: 2.1.0 + colorthief: + specifier: ^2.4.0 + version: 2.4.0 dayjs: specifier: ^1.11.11 version: 1.11.11 - extract-colors: - specifier: ^4.0.2 - version: 4.0.6 filesize: specifier: ^9.0.11 version: 9.0.11 framer-motion: specifier: ^11.1.7 - version: 11.2.11(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.1.7(@emotion/is-prop-valid@1.2.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) hls.js: specifier: ^1.4.14 - version: 1.5.11 + version: 1.5.8 + lexical: + specifier: ^0.16.1 + version: 0.16.1 linkify-react: specifier: ^4.1.3 - version: 4.1.3(linkifyjs@4.1.3)(react@18.3.1) + version: 4.1.3(linkifyjs@4.1.3)(react@18.2.0) linkifyjs: specifier: ^4.1.3 version: 4.1.3 @@ -67,113 +76,116 @@ importers: version: 4.3.1 react-aria: specifier: ^3.33.1 - version: 3.33.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.33.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-aria-components: specifier: ^1.2.1 - version: 1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-hook-form: specifier: ^7.49.2 - version: 7.52.0(react@18.3.1) + version: 7.51.3(react@18.2.0) react-infinite-scroll-component: specifier: ^6.1.0 - version: 6.1.0(react@18.3.1) + version: 6.1.0(react@18.2.0) react-insta-stories: specifier: ^2.6.2 - version: 2.7.0(react@18.3.1) + version: 2.6.2(react@18.2.0) react-intl: specifier: ^6.5.5 - version: 6.6.8(react@18.3.1)(typescript@4.9.5) + version: 6.6.5(react@18.2.0)(typescript@4.9.5) react-loading-skeleton: specifier: ^3.3.1 - version: 3.4.0(react@18.3.1) + version: 3.4.0(react@18.2.0) react-mentions: specifier: ^4.4.10 - version: 4.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.4.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-modal-sheet: specifier: ^2.2.0 - version: 2.2.1(framer-motion@11.2.11(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 2.2.0(framer-motion@11.1.7(@emotion/is-prop-valid@1.2.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) react-sizeme: specifier: ^3.0.2 version: 3.0.2 react-textarea-autosize: specifier: ^8.5.3 - version: 8.5.3(@types/react@17.0.80)(react@18.3.1) + version: 8.5.3(@types/react@17.0.80)(react@18.2.0) react-timeago: specifier: ^7.2.0 - version: 7.2.0(react@18.3.1) + version: 7.2.0(react@18.2.0) react-tiny-popover: specifier: ^7.2.4 - version: 7.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.2.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-truncate-markup: specifier: ^5.1.2 - version: 5.1.2(react@18.3.1) + version: 5.1.2(react@18.2.0) react-use: specifier: ^17.4.2 - version: 17.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 17.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) stylis: specifier: ^4.3.1 - version: 4.3.2 + version: 4.3.1 uuid: specifier: ^8.3.2 version: 8.3.2 vaul: specifier: ^0.9.1 - version: 0.9.1(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 0.9.1(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) zod: specifier: ^3.22.4 - version: 3.23.8 + version: 3.23.0 devDependencies: '@amityco/ts-sdk': specifier: ^6.27.0 - version: 6.27.0 + version: 6.29.0 '@storybook/addon-a11y': specifier: ^7.6.7 - version: 7.6.20 + version: 7.6.17 '@storybook/addon-actions': specifier: ^7.6.7 - version: 7.6.20 + version: 7.6.17 '@storybook/addon-backgrounds': specifier: ^7.6.7 - version: 7.6.20 + version: 7.6.17 '@storybook/addon-controls': specifier: ^7.6.7 - version: 7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-essentials': specifier: ^7.6.7 - version: 7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-toolbars': specifier: ^7.6.7 - version: 7.6.20 + version: 7.6.17 '@storybook/addon-viewport': specifier: ^7.6.7 - version: 7.6.20 + version: 7.6.17 '@storybook/client-api': specifier: ^7.6.7 version: 7.6.17 '@storybook/preview-api': specifier: ^7.6.7 - version: 7.6.20 + version: 7.6.17 '@storybook/react': specifier: ^7.6.7 - version: 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@4.9.5) + version: 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@4.9.5) '@storybook/react-vite': specifier: ^7.6.7 - version: 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.18.0)(typescript@4.9.5)(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1)) + version: 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(rollup@4.16.1)(typescript@4.9.5)(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4)) '@storybook/theming': specifier: ^7.6.7 - version: 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/jest': specifier: ^29.5.11 version: 29.5.12 '@types/lodash': specifier: ^4.14.202 - version: 4.17.5 + version: 4.17.0 '@types/prop-types': specifier: ^15.7.11 version: 15.7.12 '@types/react': specifier: ^17.0.74 version: 17.0.80 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.0 '@types/react-helmet': specifier: ^6.1.11 version: 6.1.11 @@ -200,13 +212,13 @@ importers: version: 6.21.0(eslint@8.57.0)(typescript@4.9.5) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.1(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1)) + version: 4.2.1(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) browserslist: specifier: ^4.23.0 - version: 4.23.1 + version: 4.23.0 esbuild-plugin-replace: specifier: ^1.4.0 version: 1.4.0 @@ -224,13 +236,13 @@ importers: version: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-jest: specifier: ^27.6.1 - version: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(jest@29.7.0(@types/node@20.14.8))(typescript@4.9.5) + version: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(jest@29.7.0(@types/node@20.12.7))(typescript@4.9.5) husky: specifier: ^8.0.3 version: 8.0.3 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.14.8) + version: 29.7.0(@types/node@20.12.7) lint-staged: specifier: ^13.3.0 version: 13.3.0 @@ -242,37 +254,37 @@ importers: version: 2.4.0 react: specifier: ^18.2.0 - version: 18.3.1 + version: 18.2.0 react-dom: specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + version: 18.2.0(react@18.2.0) react-router-dom: specifier: ^6.21.1 - version: 6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.22.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) standard-version: specifier: ^9.5.0 version: 9.5.0 storybook: specifier: ^7.6.7 - version: 7.6.20 + version: 7.6.17 styled-components: specifier: ^6.1.6 - version: 6.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.1.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) stylelint: specifier: ^16.6.1 - version: 16.6.1(typescript@4.9.5) + version: 16.7.0(typescript@4.9.5) stylelint-config-standard: specifier: ^36.0.0 - version: 36.0.1(stylelint@16.6.1(typescript@4.9.5)) + version: 36.0.1(stylelint@16.7.0(typescript@4.9.5)) stylelint-no-unsupported-browser-features: specifier: ^8.0.1 - version: 8.0.1(stylelint@16.6.1(typescript@4.9.5)) + version: 8.0.1(stylelint@16.7.0(typescript@4.9.5)) svg-url-loader: specifier: ^7.1.1 - version: 7.1.1(webpack@5.92.1(esbuild@0.19.12)) + version: 7.1.1(webpack@5.91.0(esbuild@0.19.12)) ts-jest: specifier: ^29.1.1 - version: 29.1.5(@babel/core@7.24.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.7))(esbuild@0.19.12)(jest@29.7.0(@types/node@20.14.8))(typescript@4.9.5) + version: 29.1.2(@babel/core@7.24.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.4))(esbuild@0.19.12)(jest@29.7.0(@types/node@20.12.7))(typescript@4.9.5) tsup: specifier: ^7.3.0 version: 7.3.0(postcss@8.4.38)(typescript@4.9.5) @@ -284,18 +296,22 @@ importers: version: 5.1.0(typescript@4.9.5) vite: specifier: ^4.5.1 - version: 4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1) + version: 4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4) vite-tsconfig-paths: specifier: ^4.2.3 - version: 4.3.2(typescript@4.9.5)(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1)) + version: 4.3.2(typescript@4.9.5)(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4)) packages: + '@aashutoshrathi/word-wrap@1.2.6': + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + '@adobe/css-tools@4.3.3': resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} - '@amityco/ts-sdk@6.27.0': - resolution: {integrity: sha512-6I55XYqhet6MDlB/qw9YunFO1BD2TwZSr2BBZ3+dWsBjBVp8BTDr7rPy74gpoVmPWRVbD4XTRM1c8dPeWeLEPQ==} + '@amityco/ts-sdk@6.29.0': + resolution: {integrity: sha512-ecfdGamMGyAM5Snrf7/kSeXVAmQ+48wqsA76DHOo7pcXrtHaycfG3eDOR1DBgvCkfUJKaCSYe8RWFz8ibD4/DA==} engines: {node: '>=12', npm: '>=6'} '@ampproject/remapping@2.3.0': @@ -306,158 +322,158 @@ packages: resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==} hasBin: true - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + '@babel/code-frame@7.24.2': + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.7': - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} + '@babel/compat-data@7.24.4': + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.7': - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} + '@babel/core@7.24.4': + resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.7': - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + '@babel/generator@7.24.4': + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + '@babel/helper-annotate-as-pure@7.22.5': + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': - resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.7': - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + '@babel/helper-compilation-targets@7.23.6': + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.24.7': - resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} + '@babel/helper-create-class-features-plugin@7.24.4': + resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.24.7': - resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==} + '@babel/helper-create-regexp-features-plugin@7.22.15': + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.2': - resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + '@babel/helper-define-polyfill-provider@0.6.1': + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + '@babel/helper-environment-visitor@7.22.20': + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + '@babel/helper-function-name@7.23.0': + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.24.7': - resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} + '@babel/helper-member-expression-to-functions@7.23.0': + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + '@babel/helper-module-imports@7.24.3': + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.7': - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + '@babel/helper-module-transforms@7.23.3': + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.24.7': - resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + '@babel/helper-optimise-call-expression@7.22.5': + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.7': - resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} + '@babel/helper-plugin-utils@7.24.0': + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.24.7': - resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} + '@babel/helper-remap-async-to-generator@7.22.20': + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.24.7': - resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} + '@babel/helper-replace-supers@7.24.1': + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-simple-access@7.22.5': + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + '@babel/helper-split-export-declaration@7.22.6': + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-validator-identifier@7.22.20': + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.7': - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + '@babel/helper-validator-option@7.23.5': + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.24.7': - resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} + '@babel/helper-wrap-function@7.22.20': + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.7': - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + '@babel/helpers@7.24.4': + resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/highlight@7.24.2': + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + '@babel/parser@7.24.4': + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7': - resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4': + resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7': - resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': - resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7': - resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -499,20 +515,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.7': - resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} + '@babel/plugin-syntax-flow@7.24.1': + resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.24.7': - resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} + '@babel/plugin-syntax-import-assertions@7.24.1': + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.24.7': - resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} + '@babel/plugin-syntax-import-attributes@7.24.1': + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -527,8 +543,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + '@babel/plugin-syntax-jsx@7.24.1': + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -575,8 +591,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.24.7': - resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + '@babel/plugin-syntax-typescript@7.24.1': + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -587,326 +603,326 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.24.7': - resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + '@babel/plugin-transform-arrow-functions@7.24.1': + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.24.7': - resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} + '@babel/plugin-transform-async-generator-functions@7.24.3': + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.24.7': - resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} + '@babel/plugin-transform-async-to-generator@7.24.1': + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.24.7': - resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + '@babel/plugin-transform-block-scoped-functions@7.24.1': + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.24.7': - resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} + '@babel/plugin-transform-block-scoping@7.24.4': + resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.24.7': - resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} + '@babel/plugin-transform-class-properties@7.24.1': + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.24.7': - resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} + '@babel/plugin-transform-class-static-block@7.24.4': + resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.24.7': - resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==} + '@babel/plugin-transform-classes@7.24.1': + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.24.7': - resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + '@babel/plugin-transform-computed-properties@7.24.1': + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.7': - resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==} + '@babel/plugin-transform-destructuring@7.24.1': + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.24.7': - resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} + '@babel/plugin-transform-dotall-regex@7.24.1': + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.24.7': - resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} + '@babel/plugin-transform-duplicate-keys@7.24.1': + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dynamic-import@7.24.7': - resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} + '@babel/plugin-transform-dynamic-import@7.24.1': + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.24.7': - resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} + '@babel/plugin-transform-exponentiation-operator@7.24.1': + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.24.7': - resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} + '@babel/plugin-transform-export-namespace-from@7.24.1': + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.24.7': - resolution: {integrity: sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==} + '@babel/plugin-transform-flow-strip-types@7.24.1': + resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.24.7': - resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} + '@babel/plugin-transform-for-of@7.24.1': + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.24.7': - resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} + '@babel/plugin-transform-function-name@7.24.1': + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.24.7': - resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} + '@babel/plugin-transform-json-strings@7.24.1': + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.24.7': - resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} + '@babel/plugin-transform-literals@7.24.1': + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.24.7': - resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} + '@babel/plugin-transform-logical-assignment-operators@7.24.1': + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.24.7': - resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + '@babel/plugin-transform-member-expression-literals@7.24.1': + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.24.7': - resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} + '@babel/plugin-transform-modules-amd@7.24.1': + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.7': - resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==} + '@babel/plugin-transform-modules-commonjs@7.24.1': + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.24.7': - resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} + '@babel/plugin-transform-modules-systemjs@7.24.1': + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.24.7': - resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} + '@babel/plugin-transform-modules-umd@7.24.1': + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': - resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.24.7': - resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} + '@babel/plugin-transform-new-target@7.24.1': + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': - resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.24.7': - resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} + '@babel/plugin-transform-numeric-separator@7.24.1': + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.24.7': - resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} + '@babel/plugin-transform-object-rest-spread@7.24.1': + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.24.7': - resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + '@babel/plugin-transform-object-super@7.24.1': + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.24.7': - resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} + '@babel/plugin-transform-optional-catch-binding@7.24.1': + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.24.7': - resolution: {integrity: sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==} + '@babel/plugin-transform-optional-chaining@7.24.1': + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.7': - resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + '@babel/plugin-transform-parameters@7.24.1': + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.24.7': - resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} + '@babel/plugin-transform-private-methods@7.24.1': + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.24.7': - resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} + '@babel/plugin-transform-private-property-in-object@7.24.1': + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.24.7': - resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + '@babel/plugin-transform-property-literals@7.24.1': + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.7': - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + '@babel/plugin-transform-react-jsx-self@7.24.1': + resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.7': - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + '@babel/plugin-transform-react-jsx-source@7.24.1': + resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.24.7': - resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} + '@babel/plugin-transform-regenerator@7.24.1': + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-reserved-words@7.24.7': - resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} + '@babel/plugin-transform-reserved-words@7.24.1': + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.24.7': - resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + '@babel/plugin-transform-shorthand-properties@7.24.1': + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.24.7': - resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} + '@babel/plugin-transform-spread@7.24.1': + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.24.7': - resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} + '@babel/plugin-transform-sticky-regex@7.24.1': + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.24.7': - resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} + '@babel/plugin-transform-template-literals@7.24.1': + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.24.7': - resolution: {integrity: sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==} + '@babel/plugin-transform-typeof-symbol@7.24.1': + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.24.7': - resolution: {integrity: sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==} + '@babel/plugin-transform-typescript@7.24.4': + resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.24.7': - resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} + '@babel/plugin-transform-unicode-escapes@7.24.1': + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.24.7': - resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} + '@babel/plugin-transform-unicode-property-regex@7.24.1': + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.24.7': - resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} + '@babel/plugin-transform-unicode-regex@7.24.1': + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.24.7': - resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} + '@babel/plugin-transform-unicode-sets-regex@7.24.1': + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.24.7': - resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==} + '@babel/preset-env@7.24.4': + resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-flow@7.24.7': - resolution: {integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==} + '@babel/preset-flow@7.24.1': + resolution: {integrity: sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -916,14 +932,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-typescript@7.24.7': - resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} + '@babel/preset-typescript@7.24.1': + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/register@7.24.6': - resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==} + '@babel/register@7.23.7': + resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -931,23 +947,23 @@ packages: '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - '@babel/runtime@7.24.7': - resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + '@babel/runtime@7.24.4': + resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} '@babel/runtime@7.4.5': resolution: {integrity: sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==} - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + '@babel/template@7.24.0': + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.7': - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + '@babel/traverse@7.24.1': + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + '@babel/types@7.24.0': + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} '@base2/pretty-print-object@1.0.1': @@ -960,22 +976,22 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@csstools/css-parser-algorithms@2.6.3': - resolution: {integrity: sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==} + '@csstools/css-parser-algorithms@2.7.1': + resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.3.1 + '@csstools/css-tokenizer': ^2.4.1 - '@csstools/css-tokenizer@2.3.1': - resolution: {integrity: sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==} + '@csstools/css-tokenizer@2.4.1': + resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==} engines: {node: ^14 || ^16 || >=18} - '@csstools/media-query-list-parser@2.1.11': - resolution: {integrity: sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==} + '@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.6.3 - '@csstools/css-tokenizer': ^2.3.1 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 '@csstools/selector-specificity@3.1.1': resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} @@ -990,14 +1006,14 @@ packages: '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} - '@emotion/is-prop-valid@1.2.2': - resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} + '@emotion/is-prop-valid@1.2.1': + resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} '@emotion/memoize@0.8.1': resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - '@emotion/unitless@0.8.1': - resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + '@emotion/unitless@0.8.0': + resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} '@emotion/use-insertion-effect-with-fallbacks@1.0.1': resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} @@ -1280,8 +1296,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.1': - resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': @@ -1295,44 +1311,44 @@ packages: '@fal-works/esbuild-plugin-global-externals@2.1.2': resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} - '@floating-ui/core@1.6.2': - resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==} + '@floating-ui/core@1.6.0': + resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} - '@floating-ui/dom@1.6.5': - resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==} + '@floating-ui/dom@1.6.3': + resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} - '@floating-ui/react-dom@2.1.0': - resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} + '@floating-ui/react-dom@2.0.8': + resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.2': - resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} + '@floating-ui/utils@0.2.1': + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} - '@formatjs/ecma402-abstract@2.0.0': - resolution: {integrity: sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==} + '@formatjs/ecma402-abstract@1.18.2': + resolution: {integrity: sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==} '@formatjs/fast-memoize@2.2.0': resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} - '@formatjs/icu-messageformat-parser@2.7.8': - resolution: {integrity: sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==} + '@formatjs/icu-messageformat-parser@2.7.6': + resolution: {integrity: sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==} - '@formatjs/icu-skeleton-parser@1.8.2': - resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==} + '@formatjs/icu-skeleton-parser@1.8.0': + resolution: {integrity: sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==} - '@formatjs/intl-displaynames@6.6.8': - resolution: {integrity: sha512-Lgx6n5KxN16B3Pb05z3NLEBQkGoXnGjkTBNCZI+Cn17YjHJ3fhCeEJJUqRlIZmJdmaXQhjcQVDp6WIiNeRYT5g==} + '@formatjs/intl-displaynames@6.6.6': + resolution: {integrity: sha512-Dg5URSjx0uzF8VZXtHb6KYZ6LFEEhCbAbKoYChYHEOnMFTw/ZU3jIo/NrujzQD2EfKPgQzIq73LOUvW6Z/LpFA==} - '@formatjs/intl-listformat@7.5.7': - resolution: {integrity: sha512-MG2TSChQJQT9f7Rlv+eXwUFiG24mKSzmF144PLb8m8OixyXqn4+YWU+5wZracZGCgVTVmx8viCf7IH3QXoiB2g==} + '@formatjs/intl-listformat@7.5.5': + resolution: {integrity: sha512-XoI52qrU6aBGJC9KJddqnacuBbPlb/bXFN+lIFVFhQ1RnFHpzuFrlFdjD9am2O7ZSYsyqzYRpkVcXeT1GHkwDQ==} '@formatjs/intl-localematcher@0.5.4': resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==} - '@formatjs/intl@2.10.4': - resolution: {integrity: sha512-56483O+HVcL0c7VucAS2tyH020mt9XTozZO67cwtGg0a7KWDukS/FzW3OnvaHmTHDuYsoPIzO+ZHVfU6fT/bJw==} + '@formatjs/intl@2.10.1': + resolution: {integrity: sha512-dsLG15U7xDi8yzKf4hcAWSsCaez3XrjTO2oaRHPyHtXLm1aEzYbDw6bClo/HMHu+iwS5GbDqT3DV+hYP2ylScg==} peerDependencies: typescript: ^4.7 || 5 peerDependenciesMeta: @@ -1357,8 +1373,8 @@ packages: resolution: {integrity: sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==} engines: {node: '>=6'} - '@fortawesome/react-fontawesome@0.2.2': - resolution: {integrity: sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==} + '@fortawesome/react-fontawesome@0.2.0': + resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} peerDependencies: '@fortawesome/fontawesome-svg-core': ~1 || ~6 react: '>=16.3' @@ -1370,15 +1386,14 @@ packages: react-dom: '>=16.8.0' react-hook-form: ^7.0.0 - '@hookform/resolvers@3.6.0': - resolution: {integrity: sha512-UBcpyOX3+RR+dNnqBd0lchXpoL8p4xC21XP8H6Meb8uve5Br1GCnmg0PcBoKKqPKgGu9GHQ/oygcmPrQhetwqw==} + '@hookform/resolvers@3.3.4': + resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==} peerDependencies: react-hook-form: ^7.0.0 '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -1386,7 +1401,6 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead '@hutson/parse-repository-url@3.0.2': resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} @@ -1515,6 +1529,80 @@ packages: '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} + '@lexical/clipboard@0.16.1': + resolution: {integrity: sha512-0dWs/SwKS5KPpuf6fUVVt9vSCl6HAqcDGhSITw/okv0rrIlXTUT6WhVsMJtXfFxTyVvwMeOecJHvQH3i/jRQtA==} + + '@lexical/code@0.16.1': + resolution: {integrity: sha512-pOC28rRZ2XkmI2nIJm50DbKaCJtk5D0o7r6nORYp4i0z+lxt5Sf2m82DL9ksUHJRqKy87pwJDpoWvJ2SAI0ohw==} + + '@lexical/devtools-core@0.16.1': + resolution: {integrity: sha512-8CvGERGL7ySDVGLU+YPeq+JupIXsOFlXa3EuJ88koLKqXxYenwMleZgGqayFp6lCP78xqPKnATVeoOZUt/NabQ==} + peerDependencies: + react: '>=17.x' + react-dom: '>=17.x' + + '@lexical/dragon@0.16.1': + resolution: {integrity: sha512-Rvd60GIYN5kpjjBumS34EnNbBaNsoseI0AlzOdtIV302jiHPCLH0noe9kxzu9nZy+MZmjZy8Dx2zTbQT2mueRw==} + + '@lexical/hashtag@0.16.1': + resolution: {integrity: sha512-G+YOxStAKs3q1utqm9KR4D4lCkwIH52Rctm4RgaVTI+4lvTaybeDRGFV75P/pI/qlF7/FvAYHTYEzCjtC3GNMQ==} + + '@lexical/history@0.16.1': + resolution: {integrity: sha512-WQhScx0TJeKSQAnEkRpIaWdUXqirrNrom2MxbBUc/32zEUMm9FzV7nRGknvUabEFUo7vZq6xTZpOExQJqHInQA==} + + '@lexical/html@0.16.1': + resolution: {integrity: sha512-vbtAdCvQ3PaAqa5mFmtmrvbiAvjCu1iXBAJ0bsHqFXCF2Sba5LwHVe8dUAOTpfEZEMbiHfjul6b5fj4vNPGF2A==} + + '@lexical/link@0.16.1': + resolution: {integrity: sha512-zG36gEnEqbIe6tK/MhXi7wn/XMY/zdivnPcOY5WyC3derkEezeLSSIFsC1u5UNeK5pbpNMSy4LDpLhi1Ww4Y5w==} + + '@lexical/list@0.16.1': + resolution: {integrity: sha512-i9YhLAh5N6YO9dP+R1SIL9WEdCKeTiQQYVUzj84vDvX5DIBxMPUjTmMn3LXu9T+QO3h1s2L/vJusZASrl45eAw==} + + '@lexical/mark@0.16.1': + resolution: {integrity: sha512-CZRGMLcxn5D+jzf1XnH+Z+uUugmpg1mBwTbGybCPm8UWpBrKDHkrscfMgWz62iRWz0cdVjM5+0zWpNElxFTRjQ==} + + '@lexical/markdown@0.16.1': + resolution: {integrity: sha512-0sBLttMvfQO/hVaIqpHdvDowpgV2CoRuWo2CNwvRLZPPWvPVjL4Nkb73wmi8zAZsAOTbX2aw+g4m/+k5oJqNig==} + + '@lexical/offset@0.16.1': + resolution: {integrity: sha512-/i2J04lQmFeydUZIF8tKXLQTXiJDTQ6GRnkfv1OpxU4amc0rwGa7+qAz/PuF1n58rP6InpLmSHxgY5JztXa2jw==} + + '@lexical/overflow@0.16.1': + resolution: {integrity: sha512-xh5YpoxwA7K4wgMQF/Sjl8sdjaxqesLCtH5ZrcMsaPlmucDIEEs+i8xxk+kDUTEY7y+3FvRxs4lGNgX8RVWkvQ==} + + '@lexical/plain-text@0.16.1': + resolution: {integrity: sha512-GjY4ylrBZIaAVIF8IFnmW0XGyHAuRmWA6gKB8iTTlsjgFrCHFIYC74EeJSp309O0Hflg9rRBnKoX1TYruFHVwA==} + + '@lexical/react@0.16.1': + resolution: {integrity: sha512-SsGgLt9iKfrrMRy9lFb6ROVPUYOgv6b+mCn9Al+TLqs/gBReDBi3msA7m526nrtBUKYUnjHdQ1QXIJzuKgOxcg==} + peerDependencies: + react: '>=17.x' + react-dom: '>=17.x' + + '@lexical/rich-text@0.16.1': + resolution: {integrity: sha512-4uEVXJur7tdSbqbmsToCW4YVm0AMh4y9LK077Yq2O9hSuA5dqpI8UbTDnxZN2D7RfahNvwlqp8eZKFB1yeiJGQ==} + + '@lexical/selection@0.16.1': + resolution: {integrity: sha512-+nK3RvXtyQvQDq7AZ46JpphmM33pwuulwiRfeXR5T9iFQTtgWOEjsAi/KKX7vGm70BxACfiSxy5QCOgBWFwVJg==} + + '@lexical/table@0.16.1': + resolution: {integrity: sha512-GWb0/MM1sVXpi1p2HWWOBldZXASMQ4c6WRNYnRmq7J/aB5N66HqQgJGKp3m66Kz4k1JjhmZfPs7F018qIBhnFQ==} + + '@lexical/text@0.16.1': + resolution: {integrity: sha512-Os/nKQegORTrKKN6vL3/FMVszyzyqaotlisPynvTaHTUC+yY4uyjM2hlF93i5a2ixxyiPLF9bDroxUP96TMPXg==} + + '@lexical/utils@0.16.1': + resolution: {integrity: sha512-BVyJxDQi/rIxFTDjf2zE7rMDKSuEaeJ4dybHRa/hRERt85gavGByQawSLeQlTjLaYLVsy+x7wCcqh2fNhlLf0g==} + + '@lexical/yjs@0.16.1': + resolution: {integrity: sha512-QHw1bmzB/IypIV1tRWMH4hhwE1xX7wV+HxbzBS8oJAkoU5AYXM/kyp/sQicgqiwVfpai1Px7zatOoUDFgbyzHQ==} + peerDependencies: + yjs: '>=13.5.22' + + '@lokesh.dhakar/quantize@1.3.0': + resolution: {integrity: sha512-4KBSyaMj65d8A+2vnzLxtHFu4OmBU4IKO0yLxZ171Itdf9jGV4w+WbG7VsKts2jUdRkFSzsZqpZOz6hTB3qGAw==} + '@mdx-js/react@2.3.0': resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} peerDependencies: @@ -1820,6 +1908,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-roving-focus@1.0.4': + resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-roving-focus@1.1.0': resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} peerDependencies: @@ -1846,13 +1947,13 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.0': - resolution: {integrity: sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==} + '@radix-ui/react-separator@1.0.3': + resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 peerDependenciesMeta: '@types/react': optional: true @@ -1890,39 +1991,39 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle-group@1.1.0': - resolution: {integrity: sha512-PpTJV68dZU2oqqgq75Uzto5o/XfOVgkrJ9rulVmfTKxWp3HfUjHE6CP/WLRR4AzPX9HWxw7vFow2me85Yu+Naw==} + '@radix-ui/react-toggle-group@1.0.4': + resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-toggle@1.1.0': - resolution: {integrity: sha512-gwoxaKZ0oJ4vIgzsfESBuSgJNdc0rv12VhHgcqN0TEJmmZixXG/2XpsLK8kzNWYcnaoRIEEQc0bEi3dIvdUpjw==} + '@radix-ui/react-toggle@1.0.3': + resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-toolbar@1.1.0': - resolution: {integrity: sha512-ZUKknxhMTL/4hPh+4DuaTot9aO7UD6Kupj4gqXCsBTayX1pD1L+0C2/2VZKXb4tIifQklZ3pf2hG9T+ns+FclQ==} + '@radix-ui/react-toolbar@1.0.4': + resolution: {integrity: sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 peerDependenciesMeta: '@types/react': optional: true @@ -2212,6 +2313,12 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + '@react-aria/ssr@3.9.2': + resolution: {integrity: sha512-0gKkgDYdnq1w+ey8KzG9l+H5Z821qh9vVjztk55rUg71vTk/Eaebeir+WtzcLLwTjw3m/asIjx8Y59y1lJZhBw==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + '@react-aria/ssr@3.9.4': resolution: {integrity: sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ==} engines: {node: '>= 12'} @@ -2410,6 +2517,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + '@react-stately/utils@3.9.1': + resolution: {integrity: sha512-yzw75GE0iUWiyps02BOAPTrybcsMIxEJlzXqtvllAb01O9uX5n0i3X+u2eCpj2UoDF4zS08Ps0jPgWxg8xEYtA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + '@react-stately/virtualizer@3.7.1': resolution: {integrity: sha512-voHgE6EQ+oZaLv6u2umKxakvIKNkCQuUihqKACTjdslp7SJh4Mvs3oLBI0hf0JOh+rCcFIKDvQtFwy1fXFRYBA==} peerDependencies: @@ -2515,6 +2627,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + '@react-types/shared@3.22.1': + resolution: {integrity: sha512-PCpa+Vo6BKnRMuOEzy5zAZ3/H5tnQg1e80khMhK2xys0j6ZqzkgQC+fHMNZ7VDFNLqqNMj/o0eVeSBDh2POjkw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + '@react-types/shared@3.23.1': resolution: {integrity: sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw==} peerDependencies: @@ -2550,8 +2667,8 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - '@remix-run/router@1.16.1': - resolution: {integrity: sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==} + '@remix-run/router@1.15.3': + resolution: {integrity: sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==} engines: {node: '>=14.0.0'} '@rollup/pluginutils@5.1.0': @@ -2563,83 +2680,83 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + '@rollup/rollup-android-arm-eabi@4.16.1': + resolution: {integrity: sha512-92/y0TqNLRYOTXpm6Z7mnpvKAG9P7qmK7yJeRJSdzElNCUnsgbpAsGqerUboYRIQKzgfq4pWu9xVkgpWLfmNsw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + '@rollup/rollup-android-arm64@4.16.1': + resolution: {integrity: sha512-ttWB6ZCfRLuDIUiE0yiu5gcqOsYjA5F7kEV1ggHMj20FwLZ8A1FMeahZJFl/pnOmcnD2QL0z4AcDuo27utGU8A==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + '@rollup/rollup-darwin-arm64@4.16.1': + resolution: {integrity: sha512-QLDvPLetbqjHojTGFw9+nuSP3YY/iz2k1cep6crYlr97sS+ZJ0W43b8Z0zC00+lnFZj6JSNxiA4DjboNQMuh1A==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + '@rollup/rollup-darwin-x64@4.16.1': + resolution: {integrity: sha512-TAUK/D8khRrRIa1KwRzo8JNKk3tcqaeXWdtsiLgA8zmACWwlWLjPCJ4DULGHQrMkeBjp1Cd3Yuwx04lZgFx5Vg==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + '@rollup/rollup-linux-arm-gnueabihf@4.16.1': + resolution: {integrity: sha512-KO+WGZjrh6zyFTD1alIFkfdtxf8B4BC+hqd3kBZHscPLvE5FR/6QKsyuCT0JlERxxYBSUKNUQ/UHyX5uwO1x2A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + '@rollup/rollup-linux-arm-musleabihf@4.16.1': + resolution: {integrity: sha512-NqxbllzIB1WoAo4ThUXVtd21iiM5IHMTTXmXySKBLVcZvkU0HIZmatlP7hLzb5yQubcmdIeWmncd2NdsjocEiw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + '@rollup/rollup-linux-arm64-gnu@4.16.1': + resolution: {integrity: sha512-snma5NvV8y7IECQ5rq0sr0f3UUu+92NVmG/913JXJMcXo84h9ak9TA5UI9Cl2XRM9j3m37QwDBtEYnJzRkSmxA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + '@rollup/rollup-linux-arm64-musl@4.16.1': + resolution: {integrity: sha512-KOvqGprlD84ueivhCi2flvcUwDRD20mAsE3vxQNVEI2Di9tnPGAfEu6UcrSPZbM+jG2w1oSr43hrPo0RNg6GGg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.16.1': + resolution: {integrity: sha512-/gsNwtiGLqYwN4vP+EIdUC6Q6LTlpupWqokqIndvZcjn9ig/5P01WyaYCU2wvfL/2Z82jp5kX8c1mDBOvCP3zg==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + '@rollup/rollup-linux-riscv64-gnu@4.16.1': + resolution: {integrity: sha512-uU8zuGkQfGqfD9w6VRJZI4IuG4JIfNxxJgEmLMAmPVHREKGsxFVfgHy5c6CexQF2vOfgjB33OsET3Vdn2lln9A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + '@rollup/rollup-linux-s390x-gnu@4.16.1': + resolution: {integrity: sha512-lsjLtDgtcGFEuBP6yrXwkRN5/wKlvUZtfbKZZu0yaoNpiBL4epgnO21osAALIspVRnl4qZgyLFd8xjCYYWgwfw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + '@rollup/rollup-linux-x64-gnu@4.16.1': + resolution: {integrity: sha512-N2ZizKhUryqqrMfdCnjhJhZRgv61C6gK+hwVtCIKC8ts8J+go+vqENnGexwg21nHIOvLN5mBM8a7DI2vlyIOPg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + '@rollup/rollup-linux-x64-musl@4.16.1': + resolution: {integrity: sha512-5ICeMxqg66FrOA2AbnBQ2TJVxfvZsKLxmof0ibvPLaYtbsJqnTUtJOofgWb46Gjd4uZcA4rdsp4JCxegzQPqCg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + '@rollup/rollup-win32-arm64-msvc@4.16.1': + resolution: {integrity: sha512-1vIP6Ce02L+qWD7uZYRiFiuAJo3m9kARatWmFSnss0gZnVj2Id7OPUU9gm49JPGasgcR3xMqiH3fqBJ8t00yVg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + '@rollup/rollup-win32-ia32-msvc@4.16.1': + resolution: {integrity: sha512-Y3M92DcVsT6LoP+wrKpoUWPaazaP1fzbNkp0a0ZSj5Y//+pQVfVe/tQdsYQQy7dwXR30ZfALUIc9PCh9Izir6w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + '@rollup/rollup-win32-x64-msvc@4.16.1': + resolution: {integrity: sha512-x0fvpHMuF7fK5r8oZxSi8VYXkrVmRgubXpO/wcf15Lk3xZ4Jvvh5oG+u7Su1776A7XzVKZhD2eRc4t7H50gL3w==} cpu: [x64] os: [win32] @@ -2652,56 +2769,56 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@storybook/addon-a11y@7.6.20': - resolution: {integrity: sha512-t19O2KW+8NF8mdxAZdubpe0s/3x7z5cl4LdyiNQgYxcUGjhjAUD+C3UvEUsRxG71ZAID/VC8SX+G2HX5TENGHA==} + '@storybook/addon-a11y@7.6.17': + resolution: {integrity: sha512-UYHJAKQpJMCu4X4O/325UqozYrkhPn2VyQdwPgC+uiOKZvrtni4uRbpOspeyjC0wXH1tDbY8WZvxwvwQryYkpA==} - '@storybook/addon-actions@7.6.20': - resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} + '@storybook/addon-actions@7.6.17': + resolution: {integrity: sha512-TBphs4v6LRfyTpFo/WINF0TkMaE3rrNog7wW5mbz6n0j8o53kDN4o9ZEcygSL5zQX43CAaghQTeDCss7ueG7ZQ==} - '@storybook/addon-backgrounds@7.6.20': - resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} + '@storybook/addon-backgrounds@7.6.17': + resolution: {integrity: sha512-7dize7x8+37PH77kmt69b0xSaeDqOcZ4fpzW6+hk53hIaCVU26eGs4+j+743Xva31eOgZWNLupUhOpUDc6SqZw==} - '@storybook/addon-controls@7.6.20': - resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} + '@storybook/addon-controls@7.6.17': + resolution: {integrity: sha512-zR0aLaUF7FtV/nMRyfniFbCls/e0DAAoXACuOAUAwNAv0lbIS8AyZZiHSmKucCvziUQ6WceeCC7+du3C+9y0rQ==} - '@storybook/addon-docs@7.6.20': - resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} + '@storybook/addon-docs@7.6.17': + resolution: {integrity: sha512-FKa4Mdy7nhgvEVZJHpMkHriDzpVHbohn87zv9NCL+Ctjs1iAmzGwxEm0culszyDS1HN2ToVoY0h8CSi2RSSZqA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-essentials@7.6.20': - resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} + '@storybook/addon-essentials@7.6.17': + resolution: {integrity: sha512-qlSpamxuYfT2taF953nC9QijGF2pSbg1ewMNpdwLTj16PTZvR/d8NCDMTJujI1bDwM2m18u8Yc43ibh5LEmxCw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-highlight@7.6.20': - resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} + '@storybook/addon-highlight@7.6.17': + resolution: {integrity: sha512-R1yBPUUqGn+60aJakn8q+5Zt34E/gU3n3VmgPdryP0LJUdZ5q1/RZShoVDV+yYQ40htMH6oaCv3OyyPzFAGJ6A==} - '@storybook/addon-measure@7.6.20': - resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} + '@storybook/addon-measure@7.6.17': + resolution: {integrity: sha512-O5vnHZNkduvZ95jf1UssbOl6ivIxzl5tv+4EpScPYId7w700bxWsJH+QX7ip6KlrCf2o3iUhmPe8bm05ghG2KA==} - '@storybook/addon-outline@7.6.20': - resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} + '@storybook/addon-outline@7.6.17': + resolution: {integrity: sha512-9o9JXDsYjNaDgz/cY5+jv694+aik/1aiRGGvsCv68e1p/ob0glkGKav4lnJe2VJqD+gCmaARoD8GOJlhoQl8JQ==} - '@storybook/addon-toolbars@7.6.20': - resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} + '@storybook/addon-toolbars@7.6.17': + resolution: {integrity: sha512-UMrchbUHiyWrh6WuGnpy34Jqzkx/63B+MSgb3CW7YsQaXz64kE0Rol0TNSznnB+mYXplcqH+ndI4r4kFsmgwDg==} - '@storybook/addon-viewport@7.6.20': - resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} + '@storybook/addon-viewport@7.6.17': + resolution: {integrity: sha512-sA0QCcf4QAMixWvn8uvRYPfkKCSl6JajJaAspoPqXSxHEpK7uwOlpg3kqFU5XJJPXD0X957M+ONgNvBzYqSpEw==} - '@storybook/blocks@7.6.20': - resolution: {integrity: sha512-xADKGEOJWkG0UD5jbY4mBXRlmj2C+CIupDL0/hpzvLvwobxBMFPKZIkcZIMvGvVnI/Ui+tJxQxLSuJ5QsPthUw==} + '@storybook/blocks@7.6.17': + resolution: {integrity: sha512-PsNVoe0bX1mMn4Kk3nbKZ0ItDZZ0YJnYAFJ6toAbsyBAbgzg1sce88sQinzvbn58/RT9MPKeWMPB45ZS7ggiNg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/builder-manager@7.6.20': - resolution: {integrity: sha512-e2GzpjLaw6CM/XSmc4qJRzBF8GOoOyotyu3JrSPTYOt4RD8kjUsK4QlismQM1DQRu8i39aIexxmRbiJyD74xzQ==} + '@storybook/builder-manager@7.6.17': + resolution: {integrity: sha512-Sj8hcDYiPCCMfeLzus37czl0zdrAxAz4IyYam2jBjVymrIrcDAFyL1OCZvnq33ft179QYQWhUs9qwzVmlR/ZWg==} - '@storybook/builder-vite@7.6.20': - resolution: {integrity: sha512-q3vf8heE7EaVYTWlm768ewaJ9lh6v/KfoPPeHxXxzSstg4ByP9kg4E1mrfAo/l6broE9E9zo3/Q4gsM/G/rw8Q==} + '@storybook/builder-vite@7.6.17': + resolution: {integrity: sha512-2Q32qalI401EsKKr9Hkk8TAOcHEerqwsjCpQgTNJnCu6GgCVKoVUcb99oRbR9Vyg0xh+jb19XiWqqQujFtLYlQ==} peerDependencies: '@preact/preset-vite': '*' typescript: '>= 4.3.x' @@ -2718,11 +2835,8 @@ packages: '@storybook/channels@7.6.17': resolution: {integrity: sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA==} - '@storybook/channels@7.6.20': - resolution: {integrity: sha512-4hkgPSH6bJclB2OvLnkZOGZW1WptJs09mhQ6j6qLjgBZzL/ZdD6priWSd7iXrmPiN5TzUobkG4P4Dp7FjkiO7A==} - - '@storybook/cli@7.6.20': - resolution: {integrity: sha512-ZlP+BJyqg7HlnXf7ypjG2CKMI/KVOn03jFIiClItE/jQfgR6kRFgtjRU7uajh427HHfjv9DRiur8nBzuO7vapA==} + '@storybook/cli@7.6.17': + resolution: {integrity: sha512-1sCo+nCqyR+nKfTcEidVu8XzNoECC7Y1l+uW38/r7s2f/TdDorXaIGAVrpjbSaXSoQpx5DxYJVaKCcQuOgqwcA==} hasBin: true '@storybook/client-api@7.6.17': @@ -2731,91 +2845,82 @@ packages: '@storybook/client-logger@7.6.17': resolution: {integrity: sha512-6WBYqixAXNAXlSaBWwgljWpAu10tPRBJrcFvx2gPUne58EeMM20Gi/iHYBz2kMCY+JLAgeIH7ZxInqwO8vDwiQ==} - '@storybook/client-logger@7.6.20': - resolution: {integrity: sha512-NwG0VIJQCmKrSaN5GBDFyQgTAHLNishUPLW1NrzqTDNAhfZUoef64rPQlinbopa0H4OXmlB+QxbQIb3ubeXmSQ==} - - '@storybook/codemod@7.6.20': - resolution: {integrity: sha512-8vmSsksO4XukNw0TmqylPmk7PxnfNfE21YsxFa7mnEBmEKQcZCQsNil4ZgWfG0IzdhTfhglAN4r++Ew0WE+PYA==} + '@storybook/codemod@7.6.17': + resolution: {integrity: sha512-JuTmf2u3C4fCnjO7o3dqRgrq3ozNYfWlrRP8xuIdvT7niMap7a396hJtSKqS10FxCgKFcMAOsRgrCalH1dWxUg==} - '@storybook/components@7.6.20': - resolution: {integrity: sha512-0d8u4m558R+W5V+rseF/+e9JnMciADLXTpsILrG+TBhwECk0MctIWW18bkqkujdCm8kDZr5U2iM/5kS1Noy7Ug==} + '@storybook/components@7.6.17': + resolution: {integrity: sha512-lbh7GynMidA+CZcJnstVku6Nhs+YkqjYaZ+mKPugvlVhGVWv0DaaeQFVuZ8cJtUGJ/5FFU4Y+n+gylYUHkGBMA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/core-client@7.6.20': - resolution: {integrity: sha512-upQuQQinLmlOPKcT8yqXNtwIucZ4E4qegYZXH5HXRWoLAL6GQtW7sUVSIuFogdki8OXRncr/dz8OA+5yQyYS4w==} + '@storybook/core-client@7.6.17': + resolution: {integrity: sha512-LuDbADK+DPNAOOCXOlvY09hdGVueXlDetsdOJ/DgYnSa9QSWv9Uv+F8QcEgR3QckZJbPlztKJIVLgP2n/Xkijw==} - '@storybook/core-common@7.6.20': - resolution: {integrity: sha512-8H1zPWPjcmeD4HbDm4FDD0WLsfAKGVr566IZ4hG+h3iWVW57II9JW9MLBtiR2LPSd8u7o0kw64lwRGmtCO1qAw==} + '@storybook/core-common@7.6.17': + resolution: {integrity: sha512-me2TP3Q9/qzqCLoDHUSsUF+VS1MHxfHbTVF6vAz0D/COTxzsxLpu9TxTbzJoBCxse6XRb6wWI1RgF1mIcjic7g==} '@storybook/core-events@7.6.17': resolution: {integrity: sha512-AriWMCm/k1cxlv10f+jZ1wavThTRpLaN3kY019kHWbYT9XgaSuLU67G7GPr3cGnJ6HuA6uhbzu8qtqVCd6OfXA==} - '@storybook/core-events@7.6.20': - resolution: {integrity: sha512-tlVDuVbDiNkvPDFAu+0ou3xBBYbx9zUURQz4G9fAq0ScgBOs/bpzcRrFb4mLpemUViBAd47tfZKdH4MAX45KVQ==} + '@storybook/core-server@7.6.17': + resolution: {integrity: sha512-KWGhTTaL1Q14FolcoKKZgytlPJUbH6sbJ1Ptj/84EYWFewcnEgVs0Zlnh1VStRZg+Rd1WC1V4yVd/bbDzxrvQA==} - '@storybook/core-server@7.6.20': - resolution: {integrity: sha512-qC5BdbqqwMLTdCwMKZ1Hbc3+3AaxHYWLiJaXL9e8s8nJw89xV8c8l30QpbJOGvcDmsgY6UTtXYaJ96OsTr7MrA==} + '@storybook/csf-plugin@7.6.17': + resolution: {integrity: sha512-xTHv9BUh3bkDVCvcbmdfVF0/e96BdrEgqPJ3G3RmKbSzWLOkQ2U9yiPfHzT0KJWPhVwj12fjfZp0zunu+pcS6Q==} - '@storybook/csf-plugin@7.6.20': - resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} + '@storybook/csf-tools@7.6.17': + resolution: {integrity: sha512-dAQtam0EBPeTJYcQPLxXgz4L9JFqD+HWbLFG9CmNIhMMjticrB0mpk1EFIS6vPXk/VsVWpBgMLD7dZlD6YMKcQ==} - '@storybook/csf-tools@7.6.20': - resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} - - '@storybook/csf@0.1.8': - resolution: {integrity: sha512-Ntab9o7LjBCbFIao5l42itFiaSh/Qu+l16l/r/9qmV9LnYZkO+JQ7tzhdlwpgJfhs+B5xeejpdAtftDRyXNajw==} + '@storybook/csf@0.1.4': + resolution: {integrity: sha512-B9UI/lsQMjF+oEfZCI6YXNoeuBcGZoOP5x8yKbe2tIEmsMjSztFKkpPzi5nLCnBk/MBtl6QJeI3ksJnbsWPkOw==} '@storybook/docs-mdx@0.1.0': resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==} - '@storybook/docs-tools@7.6.20': - resolution: {integrity: sha512-Bw2CcCKQ5xGLQgtexQsI1EGT6y5epoFzOINi0FSTGJ9Wm738nRp5LH3dLk1GZLlywIXcYwOEThb2pM+pZeRQxQ==} + '@storybook/docs-tools@7.6.17': + resolution: {integrity: sha512-bYrLoj06adqklyLkEwD32C0Ww6t+9ZVvrJHiVT42bIhTRpFiFPAetl1a9KPHtFLnfduh4n2IxIr1jv32ThPDTA==} '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - '@storybook/manager-api@7.6.20': - resolution: {integrity: sha512-gOB3m8hO3gBs9cBoN57T7jU0wNKDh+hi06gLcyd2awARQlAlywnLnr3s1WH5knih6Aq+OpvGBRVKkGLOkaouCQ==} + '@storybook/manager-api@7.6.17': + resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} - '@storybook/manager@7.6.20': - resolution: {integrity: sha512-0Cf6WN0t7yEG2DR29tN5j+i7H/TH5EfPppg9h9/KiQSoFHk+6KLoy2p5do94acFU+Ro4+zzxvdCGbcYGKuArpg==} + '@storybook/manager@7.6.17': + resolution: {integrity: sha512-A1LDDIqMpwRzq/dqkbbiza0QI04o4ZHCl2a3UMDZUV/+QLc2nsr2DAaLk4CVL4/cIc5zGqmIcaOTvprx2YKVBw==} '@storybook/mdx2-csf@1.1.0': resolution: {integrity: sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==} - '@storybook/node-logger@7.6.20': - resolution: {integrity: sha512-l2i4qF1bscJkOplNffcRTsgQWYR7J51ewmizj5YrTM8BK6rslWT1RntgVJWB1RgPqvx6VsCz1gyP3yW1oKxvYw==} + '@storybook/node-logger@7.6.17': + resolution: {integrity: sha512-w59MQuXhhUNrUVmVkXhMwIg2nvFWjdDczLTwYLorhfsE36CWeUOY5QCZWQy0Qf/h+jz8Uo7Evy64qn18v9C4wA==} - '@storybook/postinstall@7.6.20': - resolution: {integrity: sha512-AN4WPeNma2xC2/K/wP3I/GMbBUyeSGD3+86ZFFJFO1QmE/Zea6E+1aVlTd1iKHQUcNkZ9bZTrqkhPGVYx10pIw==} + '@storybook/postinstall@7.6.17': + resolution: {integrity: sha512-WaWqB8o9vUc9aaVls+povQSVirf1Xd1LZcVhUKfAocAF3mzYUsnJsVqvnbjRj/F96UFVihOyDt9Zjl/9OvrCvQ==} '@storybook/preview-api@7.6.17': resolution: {integrity: sha512-wLfDdI9RWo1f2zzFe54yRhg+2YWyxLZvqdZnSQ45mTs4/7xXV5Wfbv3QNTtcdw8tT3U5KRTrN1mTfTCiRJc0Kw==} - '@storybook/preview-api@7.6.20': - resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} - - '@storybook/preview@7.6.20': - resolution: {integrity: sha512-cxYlZ5uKbCYMHoFpgleZqqGWEnqHrk5m5fT8bYSsDsdQ+X5wPcwI/V+v8dxYAdQcMphZVIlTjo6Dno9WG8qmVA==} + '@storybook/preview@7.6.17': + resolution: {integrity: sha512-LvkMYK/y6alGjwRVNDIKL1lFlbyZ0H0c8iAbcQkiMoaFiujMQyVswMDKlWcj42Upfr/B1igydiruomc+eUt0mw==} - '@storybook/react-dom-shim@7.6.20': - resolution: {integrity: sha512-SRvPDr9VWcS24ByQOVmbfZ655y5LvjXRlsF1I6Pr9YZybLfYbu3L5IicfEHT4A8lMdghzgbPFVQaJez46DTrkg==} + '@storybook/react-dom-shim@7.6.17': + resolution: {integrity: sha512-32Sa/G+WnvaPiQ1Wvjjw5UM9rr2c4GDohwCcWVv3/LJuiFPqNS6zglAtmnsrlIBnUwRBMLMh/ekCTdqMiUmfDw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/react-vite@7.6.20': - resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} + '@storybook/react-vite@7.6.17': + resolution: {integrity: sha512-4dIm3CuRl44X1TLzN3WoZh/bChzJF7Ud28li9atj9C8db0bb/y0zl8cahrsRFoR7/LyfqdOVLqaztrnA5SsWfg==} engines: {node: '>=16'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - '@storybook/react@7.6.20': - resolution: {integrity: sha512-i5tKNgUbTNwlqBWGwPveDhh9ktlS0wGtd97A1ZgKZc3vckLizunlAFc7PRC1O/CMq5PTyxbuUb4RvRD2jWKwDA==} + '@storybook/react@7.6.17': + resolution: {integrity: sha512-lVqzQSU03rRJWYW+gK2gq6mSo3/qtnVICY8B8oP7gc36jVu4ksDIu45bTfukM618ODkUZy0vZe6T4engK3azjA==} engines: {node: '>=16.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2825,14 +2930,14 @@ packages: typescript: optional: true - '@storybook/router@7.6.20': - resolution: {integrity: sha512-mCzsWe6GrH47Xb1++foL98Zdek7uM5GhaSlrI7blWVohGa0qIUYbfJngqR4ZsrXmJeeEvqowobh+jlxg3IJh+w==} + '@storybook/router@7.6.17': + resolution: {integrity: sha512-GnyC0j6Wi5hT4qRhSyT8NPtJfGmf82uZw97LQRWeyYu5gWEshUdM7aj40XlNiScd5cZDp0owO1idduVF2k2l2A==} - '@storybook/telemetry@7.6.20': - resolution: {integrity: sha512-dmAOCWmOscYN6aMbhCMmszQjoycg7tUPRVy2kTaWg6qX10wtMrvEtBV29W4eMvqdsoRj5kcvoNbzRdYcWBUOHQ==} + '@storybook/telemetry@7.6.17': + resolution: {integrity: sha512-WOcOAmmengYnGInH98Px44F47DSpLyk20BM+Z/IIQDzfttGOLlxNqBBG1XTEhNRn+AYuk4aZ2JEed2lCjVIxcA==} - '@storybook/theming@7.6.20': - resolution: {integrity: sha512-iT1pXHkSkd35JsCte6Qbanmprx5flkqtSHC6Gi6Umqoxlg9IjiLPmpHbaIXzoC06DSW93hPj5Zbi1lPlTvRC7Q==} + '@storybook/theming@7.6.17': + resolution: {integrity: sha512-ZbaBt3KAbmBtfjNqgMY7wPMBshhSJlhodyMNQypv+95xLD/R+Az6aBYbpVAOygLaUQaQk4ar7H/Ww6lFIoiFbA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2840,20 +2945,20 @@ packages: '@storybook/types@7.6.17': resolution: {integrity: sha512-GRY0xEJQ0PrL7DY2qCNUdIfUOE0Gsue6N+GBJw9ku1IUDFLJRDOF+4Dx2BvYcVCPI5XPqdWKlEyZdMdKjiQN7Q==} - '@storybook/types@7.6.20': - resolution: {integrity: sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==} - '@swc/helpers@0.4.14': resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} - '@swc/helpers@0.5.11': - resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} + '@swc/helpers@0.4.36': + resolution: {integrity: sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==} + + '@swc/helpers@0.5.10': + resolution: {integrity: sha512-CU+RF9FySljn7HVSkkjiB84hWkvTaI3rtLvF433+jRSBL2hMu3zX5bGhHS8C80SM++h4xy8hBSnUHFQHmRXSBw==} - '@tanstack/query-core@5.45.0': - resolution: {integrity: sha512-RVfIZQmFUTdjhSAAblvueimfngYyfN6HlwaJUPK71PKd7yi43Vs1S/rdimmZedPWX/WGppcq/U1HOj7O7FwYxw==} + '@tanstack/query-core@5.31.0': + resolution: {integrity: sha512-r1V6RXB1LUGoEp7HGHVK4Tl59kOvAfwI9/kNNwPsb6cR5oHgfn1683sQnoH/3xEDUKOen3fEO90EnGE+OjRw5A==} - '@tanstack/react-query@5.45.1': - resolution: {integrity: sha512-mYYfJujKg2kxmkRRjA6nn4YKG3ITsKuH22f1kteJ5IuVQqgKUgbaSQfYwVP0gBS05mhwxO03HVpD0t7BMN7WOA==} + '@tanstack/react-query@5.31.0': + resolution: {integrity: sha512-/GUUDFA8yNIYZaSyImkecVfN9mAVw1Y+9LpHkOQ1DdWaKnbLtwfjelh6OF+6EtwQCycH50EjTL68UK3YTMxwvg==} peerDependencies: react: ^18.0.0 @@ -2866,8 +2971,8 @@ packages: '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/babel__traverse@7.20.5': + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} '@types/body-parser@1.19.5': resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} @@ -2890,8 +2995,8 @@ packages: '@types/ejs@3.1.5': resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==} - '@types/emscripten@1.39.13': - resolution: {integrity: sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==} + '@types/emscripten@1.39.10': + resolution: {integrity: sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==} '@types/escodegen@0.0.6': resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} @@ -2908,8 +3013,8 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/express-serve-static-core@4.19.5': - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + '@types/express-serve-static-core@4.19.0': + resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -2950,8 +3055,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/lodash@4.17.5': - resolution: {integrity: sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==} + '@types/lodash@4.17.0': + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} @@ -2974,11 +3079,11 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - '@types/node@18.19.39': - resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==} + '@types/node@18.19.31': + resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} - '@types/node@20.14.8': - resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==} + '@types/node@20.12.7': + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3001,6 +3106,9 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + '@types/react-helmet@6.1.11': resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} @@ -3037,8 +3145,8 @@ packages: '@types/styled-components@5.1.34': resolution: {integrity: sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA==} - '@types/stylis@4.2.5': - resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} + '@types/stylis@4.2.0': + resolution: {integrity: sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==} '@types/unist@2.0.10': resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} @@ -3146,8 +3254,8 @@ packages: peerDependencies: vite: ^4.1.0-beta.0 - '@vitejs/plugin-react@4.3.1': - resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} + '@vitejs/plugin-react@4.2.1': + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 @@ -3228,8 +3336,8 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + acorn-import-assertions@1.9.0: + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: acorn: ^8 @@ -3247,8 +3355,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true @@ -3386,6 +3494,13 @@ packages: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} engines: {node: '>=8'} + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + assert@2.1.0: resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} @@ -3417,12 +3532,18 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.9.1: - resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} + aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + + aws4@1.13.0: + resolution: {integrity: sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==} + + axe-core@4.9.0: + resolution: {integrity: sha512-H5orY+M2Fr56DWmMFpMrq5Ge93qjNdPVqzBv5gWK3aD1OvjBEJlEzxf09z93dGVQeI0LiW+aCMIx1QtShC/zUw==} engines: {node: '>=4'} - axios@1.7.2: - resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} babel-core@7.0.0-bridge.0: resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} @@ -3443,8 +3564,8 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - babel-plugin-polyfill-corejs2@0.4.11: - resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + babel-plugin-polyfill-corejs2@0.4.10: + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -3453,8 +3574,8 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.2: - resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + babel-plugin-polyfill-regenerator@0.6.1: + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -3488,6 +3609,9 @@ packages: batch-processor@1.0.0: resolution: {integrity: sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==} + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + better-assert@1.0.2: resolution: {integrity: sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ==} @@ -3526,6 +3650,10 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -3536,8 +3664,8 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -3557,8 +3685,8 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - bundle-require@4.2.1: - resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==} + bundle-require@4.0.3: + resolution: {integrity: sha512-2iscZ3fcthP2vka4Y7j277YJevwmsby/FpFDwjgw34Nl7dtCpt7zz/4TexmHMzY6KZEih7En9ImlbbgUNNQGtA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' @@ -3601,8 +3729,11 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001636: - resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==} + caniuse-lite@1.0.30001612: + resolution: {integrity: sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==} + + caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -3631,8 +3762,8 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} engines: {node: '>=6.0'} ci-info@3.9.0: @@ -3642,8 +3773,8 @@ packages: citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - cjs-module-lexer@1.3.1: - resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} + cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -3661,8 +3792,8 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} - cli-table3@0.6.5: - resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + cli-table3@0.6.4: + resolution: {integrity: sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==} engines: {node: 10.* || >= 12.*} cli-truncate@3.1.0: @@ -3691,8 +3822,8 @@ packages: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} engines: {node: '>=6'} - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} engines: {node: '>=6'} co@4.6.0: @@ -3721,6 +3852,9 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colorthief@2.4.0: + resolution: {integrity: sha512-0U48RGNRo5fVO+yusBwgp+d3augWSorXabnqXUu9SabEhCpCgZJEUjUTTI41OOBBYuMMxawa3177POT6qLfLeQ==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -3881,8 +4015,11 @@ packages: copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - core-js-compat@3.37.1: - resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + core-js-compat@3.37.0: + resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==} + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -3939,13 +4076,26 @@ packages: engines: {node: '>=4'} hasBin: true + csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + cwise-compiler@1.1.3: + resolution: {integrity: sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ==} + dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} + dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + + data-uri-to-buffer@0.0.3: + resolution: {integrity: sha512-Cp+jOa8QJef5nXS5hU7M1DWzXPEIoVR3kbV0dQuVGwROZg8bGf1DcCnkmajBTnvghTtSNMUdRrPjgaT6ZQucbw==} + data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} @@ -4086,9 +4236,8 @@ packages: resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} engines: {node: '>=12'} - detect-port@1.6.1: - resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} - engines: {node: '>= 4.0.0'} + detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} hasBin: true diff-sequences@29.6.3: @@ -4137,6 +4286,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -4145,8 +4297,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.4.810: - resolution: {integrity: sha512-Kaxhu4T7SJGpRQx99tq216gCq2nMxJo+uuT6uzz9l8TVN2stL7M06MIIXAtr9jsrLs2Glflgf2vMQRepxawOdQ==} + electron-to-chromium@1.4.745: + resolution: {integrity: sha512-tRbzkaRI5gbUn5DEvF0dV4TQbMZ5CLkWeTAXmpC9IrYT+GE+x76i9p+o3RJ5l9XmdQlI1pPhVtE9uNcJJ0G0EA==} element-resize-detector@1.2.4: resolution: {integrity: sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==} @@ -4178,16 +4330,16 @@ packages: engine.io-parser@2.1.3: resolution: {integrity: sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==} - enhanced-resolve@5.17.0: - resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + envinfo@7.12.0: + resolution: {integrity: sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==} engines: {node: '>=4'} hasBin: true @@ -4216,8 +4368,8 @@ packages: es-module-lexer@0.9.3: resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} - es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} @@ -4426,13 +4578,14 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extract-colors@4.0.6: - resolution: {integrity: sha512-U+pYyQKXCSHOmtZPIEJBGLJjLDiqS+oOub2ILA3a7UGt9+IvZvwAN3hOPFjUgT+gX/apSBwP5vBgnKMlV0fy8Q==} - extract-zip@1.7.0: resolution: {integrity: sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==} hasBin: true + extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -4499,6 +4652,10 @@ packages: resolution: {integrity: sha512-gTAiTtI0STpKa5xesyTA9hA3LX4ga8sm2nWRcffEa1L/5vQwb4mj2MdzMkoHoGv4QzfDshQZuYscQSf8c4TKOA==} engines: {node: '>= 0.4.0'} + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -4542,8 +4699,8 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - flow-parser@0.238.0: - resolution: {integrity: sha512-VE7XSv1epljsIN2YeBnxCmGJihpNIAnLLu/pPOdA+Gkso7qDltJwUi6vfHjgxdBbjSdAuPGnhuOHJUQG+yYwIg==} + flow-parser@0.234.0: + resolution: {integrity: sha512-J1Wn32xDF1l8FqwshoQnTwC9K3aJ83MFuXUx9AcBQr8ttbI/rkjEgAqnjxaIJuZ6RGMfccN5ZxDJSOMM64qy9Q==} engines: {node: '>=0.4.0'} follow-redirects@1.15.6: @@ -4558,10 +4715,17 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} + forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + + form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -4573,8 +4737,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@11.2.11: - resolution: {integrity: sha512-n+ozoEzgJu/2h9NoQMokF+CwNqIRVyuRC4RwMPwklfrrTjbVV32k9uBIgqYAwn7Jfpt5LuDVCtT57MWz1FbaLw==} + framer-motion@11.1.7: + resolution: {integrity: sha512-cW11Pu53eDAXUEhv5hEiWuIXWhfkbV32PlgVISn7jRdcAiVrJ1S03YQQ0/DzoswGYYwKi4qYmHHjCzAH52eSdQ==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 @@ -4648,6 +4812,9 @@ packages: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} + get-pixels@3.3.3: + resolution: {integrity: sha512-5kyGBn90i9tSMUVHTqkgCHsoWoR+/lGbl4yC83Gefyr0HLIhgSWEx/2F/3YgsZ7UpYNuM6pDhDK7zebrUJ5nXg==} + get-pkg-repo@4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} @@ -4669,8 +4836,11 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + + getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} giget@1.2.3: resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} @@ -4713,14 +4883,13 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} + glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported global-modules@2.0.0: resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} @@ -4738,8 +4907,8 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} globby@11.1.0: @@ -4770,6 +4939,15 @@ packages: engines: {node: '>=0.4.7'} hasBin: true + har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + + har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} @@ -4813,8 +4991,8 @@ packages: help-me@3.0.0: resolution: {integrity: sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ==} - hls.js@1.5.11: - resolution: {integrity: sha512-q3We1izi2+qkOO+TvZdHv+dx6aFzdtk3xc1/Qesrvto4thLTT/x/1FK85c5h1qZE4MmMBNgKg+MIW8nxQfxwBw==} + hls.js@1.5.8: + resolution: {integrity: sha512-hJYMPfLhWO7/7+n4f9pn6bOheCGx0WgvVz7k3ouq3Pp1bja48NN+HeCQu3XCGYzqWQF/wo7Sk6dJAyWVJD8ECA==} hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} @@ -4837,6 +5015,10 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + https-proxy-agent@4.0.0: resolution: {integrity: sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==} engines: {node: '>= 6.0.0'} @@ -4861,8 +5043,8 @@ packages: engines: {node: '>=14'} hasBin: true - hyphenate-style-name@1.1.0: - resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} + hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -4890,8 +5072,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - immutable@4.3.6: - resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} + immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -4915,7 +5097,6 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -4930,12 +5111,18 @@ packages: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} - intl-messageformat@10.5.14: - resolution: {integrity: sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==} + intl-messageformat@10.5.11: + resolution: {integrity: sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==} invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + iota-array@1.0.0: + resolution: {integrity: sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==} + + ip@2.0.1: + resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -4966,6 +5153,9 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -5093,6 +5283,9 @@ packages: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -5126,6 +5319,12 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} + isomorphic.js@0.2.5: + resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} + + isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -5150,12 +5349,12 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - jackspeak@3.4.0: - resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} - jake@10.9.1: - resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} + jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} engines: {node: '>=10'} hasBin: true @@ -5296,6 +5495,9 @@ packages: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} + jpeg-js@0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + js-base64@3.7.7: resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} @@ -5316,6 +5518,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + jscodeshift@0.15.2: resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==} hasBin: true @@ -5349,6 +5554,9 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -5371,6 +5579,10 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} + jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -5382,8 +5594,8 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - known-css-properties@0.31.0: - resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} + known-css-properties@0.34.0: + resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} lazy-universal-dotenv@4.0.0: resolution: {integrity: sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==} @@ -5409,12 +5621,20 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lexical@0.16.1: + resolution: {integrity: sha512-+R05d3+N945OY8pTUjTqQrWoApjC+ctzvjnmNETtx9WmVAaiW0tQVG+AYLt5pDGY8dQXtd4RPorvnxBTECt9SA==} + + lib0@0.2.94: + resolution: {integrity: sha512-hZ3p54jL4Wpu7IOg26uC7dnEWiMyNlUrb9KoG7+xYs45WkQwpVvKFndVq2+pqLYKe1u8Fp3+zAfZHVvTK34PvQ==} + engines: {node: '>=16'} + hasBin: true + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} line-height@0.3.1: @@ -5515,8 +5735,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} lru-cache@5.1.1: @@ -5690,8 +5910,8 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} minizlib@2.1.2: @@ -5759,6 +5979,12 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + ndarray-pack@1.2.1: + resolution: {integrity: sha512-51cECUJMT0rUZNQa09EoKsnFeDL4x2dHRT0VR5U2H5ZgEcm95ZDWcMA5JShroXjHOejmAD/fg8+H+OvUnVXz2g==} + + ndarray@1.0.19: + resolution: {integrity: sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==} + needle@3.3.1: resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} engines: {node: '>= 4.4.x'} @@ -5771,6 +5997,10 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + node-bitmap@0.0.1: + resolution: {integrity: sha512-Jx5lPaaLdIaOsj2mVLWMWulXF6GQVdyLvNSxmiYCvZ8Ma2hfKX0POoR2kgKOqz+oFsRreq0yYZjQ2wjE9VNzCA==} + engines: {node: '>=v0.6.5'} + node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} @@ -5824,6 +6054,9 @@ packages: engines: {node: ^14.16.0 || >=16.10.0} hasBin: true + oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5865,6 +6098,9 @@ packages: ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + omggif@1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -5888,8 +6124,8 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} ora@5.4.1: @@ -5936,9 +6172,6 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -5946,6 +6179,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-data-uri@0.2.0: + resolution: {integrity: sha512-uOtts8NqDcaCt1rIsO3VFDRsAfgE4c6osG4d9z3l4dCBlxYFzni6Di/oNU270SDrjkfZuUvLZx1rxMyqh46Y9w==} + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -5991,9 +6227,9 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -6015,6 +6251,12 @@ packages: pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} @@ -6055,6 +6297,10 @@ packages: resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} engines: {node: '>=10'} + pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + polished@4.3.1: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} @@ -6114,17 +6360,29 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + + postcss-selector-parser@6.1.1: + resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} engines: {node: '>=4'} postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.4.38: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -6147,6 +6405,10 @@ packages: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} engines: {node: '>= 0.8'} + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -6175,6 +6437,9 @@ packages: prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + pump@2.0.1: resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} @@ -6198,15 +6463,19 @@ packages: q@1.5.1: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - deprecated: |- - You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. - - (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} + qs@6.12.1: + resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + engines: {node: '>=0.6'} + + qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -6255,10 +6524,10 @@ packages: resolution: {integrity: sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ==} engines: {node: '>=16.14.0'} - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: - react: ^18.3.1 + react: ^18.2.0 react-element-to-jsx-string@15.0.0: resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} @@ -6266,24 +6535,30 @@ packages: react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-hook-form@7.52.0: - resolution: {integrity: sha512-mJX506Xc6mirzLsmXUJyqlAI3Kj9Ph2RhplYhUVffeOQSnubK2uVqBFOBJmvKikvbFV91pxVXmDiR+QMF19x6A==} + react-error-boundary@3.1.4: + resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} + engines: {node: '>=10', npm: '>=6'} + peerDependencies: + react: '>=16.13.1' + + react-hook-form@7.51.3: + resolution: {integrity: sha512-cvJ/wbHdhYx8aviSWh28w9ImjmVsb5Y05n1+FW786vEZQJV5STNM0pW6ujS+oiBecb0ARBxJFyAnXj9+GHXACQ==} engines: {node: '>=12.22.0'} peerDependencies: - react: ^16.8.0 || ^17 || ^18 || ^19 + react: ^16.8.0 || ^17 || ^18 react-infinite-scroll-component@6.1.0: resolution: {integrity: sha512-SQu5nCqy8DxQWpnUVLx7V7b7LcA37aM7tvoWjTLZp1dk6EJibM5/4EJKzOnl07/BsM1Y40sKLuqjCwwH/xV0TQ==} peerDependencies: react: '>=16.0.0' - react-insta-stories@2.7.0: - resolution: {integrity: sha512-pCPHzC323b9Ttvr8ByLrX/iH/ft/L3ThWGDJPKdvHnaWdR5dhFkonrQ0/KNiEIH5t539dNyFPevLJUOobkD2WQ==} + react-insta-stories@2.6.2: + resolution: {integrity: sha512-eM1YHr92bV7WK5h9sECjyYnqZtPxnzJrZFr9IaoDcaZaAEOHVRav+pST513DIG8Hk8QjSTHtdvHHZ0Ka5HwH8w==} peerDependencies: react: '>=16.8.2' - react-intl@6.6.8: - resolution: {integrity: sha512-M0pkhzcgV31h++2901BiRXWl69hp2zPyLxRrSwRjd1ErXbNoubz/f4M6DrRTd4OiSUrT4ajRQzrmtS5plG4FtA==} + react-intl@6.6.5: + resolution: {integrity: sha512-OErDPbGqus0QKVj77MGCC9Plbnys3CDQrq6Lw41c60pmeTdn41AhoS1SIzXG6SUlyF7qNN2AVqfrrIvHUgSyLQ==} peerDependencies: react: ^16.6.0 || 17 || 18 typescript: ^4.7 || 5 @@ -6297,6 +6572,9 @@ packages: react-is@18.1.0: resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} + react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + react-loading-skeleton@3.4.0: resolution: {integrity: sha512-1oJEBc9+wn7BbkQQk7YodlYEIjgeR+GrRjD+QXkVjwZN7LGIcAFHrx4NhT7UHGBxNY1+zax3c+Fo6XQM4R7CgA==} peerDependencies: @@ -6308,8 +6586,8 @@ packages: react: '>=16.8.3' react-dom: '>=16.8.3' - react-modal-sheet@2.2.1: - resolution: {integrity: sha512-bVdxbKVhTbsgn+5g3/X9RjhFhKkPGLMCfLR2O22FHk62G28kFIFn4yKqhXBbXR8qPcjBcaUxadrn7cR+LVI8Vw==} + react-modal-sheet@2.2.0: + resolution: {integrity: sha512-OAIWuVWxMx3zQqrMLbYWnczadplg0WLd+AaBWmN5+ysNF5/pneqjkOV3AWaIZOCIF4TcrejiCsTduutbzCRP2Q==} engines: {node: '>=16'} peerDependencies: framer-motion: '>=6' @@ -6319,8 +6597,8 @@ packages: resolution: {integrity: sha512-5ypj/hV58P+6VREdjkW0EudSibsH3WdqDERoHKnD9syFWjF+NfRWWrJb2sa3LIwI5zpzMvUiabs+DX40WHpEMw==} engines: {node: '>=10.0.0', npm: '>=6.0.0'} - react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} react-remove-scroll-bar@2.3.6: @@ -6353,15 +6631,15 @@ packages: '@types/react': optional: true - react-router-dom@6.23.1: - resolution: {integrity: sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==} + react-router-dom@6.22.3: + resolution: {integrity: sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router@6.23.1: - resolution: {integrity: sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==} + react-router@6.22.3: + resolution: {integrity: sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' @@ -6418,8 +6696,8 @@ packages: react: '*' react-dom: '*' - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} read-pkg-up@3.0.0: @@ -6455,8 +6733,8 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} + recast@0.23.6: + resolution: {integrity: sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==} engines: {node: '>= 4'} redent@3.0.0: @@ -6500,6 +6778,11 @@ packages: remark-slug@6.1.0: resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} + request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6549,22 +6832,19 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rollup@3.29.4: @@ -6572,8 +6852,8 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + rollup@4.16.1: + resolution: {integrity: sha512-5CaD3MPDlPKfhqzRvWXK96G6ELJfPZNb3LHiZxTHgDdC6jvwfGz2E8nY+9g1ONk4ttHsK1WaFP19Js4PSr1E3g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -6600,19 +6880,16 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.77.6: - resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==} + sass@1.75.0: + resolution: {integrity: sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==} engines: {node: '>=14.0.0'} hasBin: true sax@1.3.0: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} @@ -6630,8 +6907,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true @@ -6750,8 +7027,8 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} split2@0.2.1: resolution: {integrity: sha512-D/oTExYAkC9nWleOCTOyNmAuzfAT/6rHGBA9LIK7FVnGo13CSvrKCUzKenwH6U1s2znY9MqH6v0UQTEDa3vJmg==} @@ -6765,6 +7042,11 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + stack-generator@2.0.10: resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} @@ -6793,8 +7075,8 @@ packages: store2@2.14.3: resolution: {integrity: sha512-4QcZ+yx7nzEFiV4BMLnr/pRa5HYzNITX2ri0Zh6sT9EyQHbBHacC6YigllUPU9X3D0f/22QCgfokpKs52YRrUg==} - storybook@7.6.20: - resolution: {integrity: sha512-Wt04pPTO71pwmRmsgkyZhNo4Bvdb/1pBAMsIFb9nQLykEdzzpXjvingxFFvdOG4nIowzwgxD+CLlyRqVJqnATw==} + storybook@7.6.17: + resolution: {integrity: sha512-8+EIo91bwmeFWPg1eysrxXlhIYv3OsXrznTr4+4Eq0NikqAoq6oBhtlN5K2RGS2lBVF537eN+9jTCNbR+WrzDA==} hasBin: true stream-shift@1.0.3: @@ -6876,8 +7158,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - styled-components@6.1.11: - resolution: {integrity: sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==} + styled-components@6.1.8: + resolution: {integrity: sha512-PQ6Dn+QxlWyEGCKDS71NGsXoVLKfE1c3vApkvDYS5KAK+V8fNWGhbSUEo9Gg2iaID2tjLXegEW3bZDUGpofRWw==} engines: {node: '>= 16'} peerDependencies: react: '>= 16.8.0' @@ -6901,13 +7183,13 @@ packages: peerDependencies: stylelint: ^16.0.2 - stylelint@16.6.1: - resolution: {integrity: sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==} + stylelint@16.7.0: + resolution: {integrity: sha512-Q1ATiXlz+wYr37a7TGsfvqYn2nSR3T/isw3IWlZQzFzCNoACHuGBb6xBplZXz56/uDRJHIygxjh7jbV/8isewA==} engines: {node: '>=18.12.0'} hasBin: true - stylis@4.3.2: - resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} + stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} stylus@0.62.0: resolution: {integrity: sha512-v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==} @@ -7005,8 +7287,8 @@ packages: uglify-js: optional: true - terser@5.31.1: - resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==} + terser@5.30.4: + resolution: {integrity: sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==} engines: {node: '>=10'} hasBin: true @@ -7065,8 +7347,8 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - tocbot@4.28.2: - resolution: {integrity: sha512-/MaSa9xI6mIo84IxqqliSCtPlH0oy7sLcY9s26qPMyH/2CxtZ2vNAXYlIdEQ7kjAkCQnc0rbLygf//F5c663oQ==} + tocbot@4.27.0: + resolution: {integrity: sha512-x3ZPNFPVOYCAyW4CEW8KszGfqB3/fnY1QX1tfUHH1fj1r6I8v0g5w0flNsWf7htZKtzqtdiPqu//II3ngL/WwA==} toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} @@ -7075,6 +7357,10 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -7105,13 +7391,12 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-jest@29.1.5: - resolution: {integrity: sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==} - engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + ts-jest@29.1.2: + resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} + engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/transform': ^29.0.0 '@jest/types': ^29.0.0 babel-jest: ^29.0.0 esbuild: '*' @@ -7120,8 +7405,6 @@ packages: peerDependenciesMeta: '@babel/core': optional: true - '@jest/transform': - optional: true '@jest/types': optional: true babel-jest: @@ -7129,8 +7412,8 @@ packages: esbuild: optional: true - tsconfck@3.1.0: - resolution: {integrity: sha512-CMjc5zMnyAjcS9sPLytrbFmj89st2g+JYtY/c02ug4Q+CZaAtCgbyviI0n1YvjZE/pzoc6FbNsINS13DOL1B9w==} + tsconfck@3.0.3: + resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -7149,12 +7432,12 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - tsup@7.3.0: resolution: {integrity: sha512-Ja1eaSRrE+QarmATlNO5fse2aOACYMBX+IZRKy1T+gpyH+jXgRrl5l4nHIQJQ1DoDgEjHDTw8cpE085UdBZuWQ==} engines: {node: '>=18'} @@ -7178,6 +7461,12 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -7254,8 +7543,8 @@ packages: ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - uglify-js@3.18.0: - resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} + uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} hasBin: true @@ -7281,6 +7570,9 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + uniq@1.0.1: + resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} + unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -7310,8 +7602,8 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + update-browserslist-db@1.0.13: + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -7383,6 +7675,11 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -7408,6 +7705,10 @@ packages: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + vite-tsconfig-paths@4.3.2: resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: @@ -7464,11 +7765,11 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + webpack-virtual-modules@0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} - webpack@5.92.1: - resolution: {integrity: sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==} + webpack@5.91.0: + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -7499,10 +7800,6 @@ packages: engines: {node: '>= 8'} hasBin: true - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -7539,8 +7836,8 @@ packages: utf-8-validate: optional: true - ws@6.2.3: - resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} + ws@6.2.2: + resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -7550,8 +7847,8 @@ packages: utf-8-validate: optional: true - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7562,8 +7859,8 @@ packages: utf-8-validate: optional: true - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7600,8 +7897,8 @@ packages: resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} engines: {node: '>= 14'} hasBin: true @@ -7627,23 +7924,29 @@ packages: yeast@0.1.2: resolution: {integrity: sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==} + yjs@13.6.18: + resolution: {integrity: sha512-GBTjO4QCmv2HFKFkYIJl7U77hIB1o22vSCSQD1Ge8ZxWbIbn8AltI4gyXbtL+g5/GJep67HCMq3Y5AmNwDSyEg==} + engines: {node: '>=16.0.0', npm: '>=8.0.0'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.23.0: + resolution: {integrity: sha512-OFLT+LTocvabn6q76BTwVB0hExEBS0IduTr3cqZyMqEDbOnYmcU+y0tUAYbND4uwclpBGi4I4UUBGzylWpjLGA==} snapshots: + '@aashutoshrathi/word-wrap@1.2.6': {} + '@adobe/css-tools@4.3.3': {} - '@amityco/ts-sdk@6.27.0': + '@amityco/ts-sdk@6.29.0': dependencies: agentkeepalive: 4.5.0 - axios: 1.7.2(debug@4.3.5) - debug: 4.3.5 - hls.js: 1.5.11 + axios: 1.6.8(debug@4.3.4) + debug: 4.3.4 + hls.js: 1.5.8 js-base64: 3.7.7 mitt: 3.0.1 mqtt: 4.3.8 @@ -7664,849 +7967,786 @@ snapshots: dependencies: default-browser-id: 3.0.0 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.24.2': dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 - '@babel/compat-data@7.24.7': {} + '@babel/compat-data@7.24.4': {} - '@babel/core@7.24.7': + '@babel/core@7.24.4': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.24.7': + '@babel/generator@7.24.4': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.24.7': + '@babel/helper-annotate-as-pure@7.22.5': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.0 - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.24.0 - '@babel/helper-compilation-targets@7.24.7': + '@babel/helper-compilation-targets@7.23.6': dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.1 + '@babel/compat-data': 7.24.4 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.7 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.7)': + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.7)': + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - debug: 4.3.5 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.7 + '@babel/helper-environment-visitor@7.22.20': {} - '@babel/helper-function-name@7.24.7': + '@babel/helper-function-name@7.23.0': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 - '@babel/helper-hoist-variables@7.24.7': + '@babel/helper-hoist-variables@7.22.5': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.0 - '@babel/helper-member-expression-to-functions@7.24.7': + '@babel/helper-member-expression-to-functions@7.23.0': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.24.0 - '@babel/helper-module-imports@7.24.7': + '@babel/helper-module-imports@7.24.3': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.24.0 - '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 - '@babel/helper-optimise-call-expression@7.24.7': + '@babel/helper-optimise-call-expression@7.22.5': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.0 - '@babel/helper-plugin-utils@7.24.7': {} + '@babel/helper-plugin-utils@7.24.0': {} - '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.7)': + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-wrap-function': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)': + '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.7 - '@babel/helper-optimise-call-expression': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-simple-access@7.24.7': + '@babel/helper-simple-access@7.22.5': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.24.0 - '@babel/helper-split-export-declaration@7.24.7': + '@babel/helper-split-export-declaration@7.22.6': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.0 - '@babel/helper-string-parser@7.24.7': {} + '@babel/helper-string-parser@7.24.1': {} - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.22.20': {} - '@babel/helper-validator-option@7.24.7': {} + '@babel/helper-validator-option@7.23.5': {} - '@babel/helper-wrap-function@7.24.7': + '@babel/helper-wrap-function@7.22.20': dependencies: - '@babel/helper-function-name': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 - '@babel/helpers@7.24.7': + '@babel/helpers@7.24.4': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color - '@babel/highlight@7.24.7': + '@babel/highlight@7.24.2': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.0.0 - '@babel/parser@7.24.7': + '@babel/parser@7.24.4': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.0 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.4 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/template': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/template': 7.24.0 - '@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 - '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-identifier': 7.22.20 - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + + '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + + '@babel/preset-env@7.24.4(@babel/core@7.24.4)': + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.4) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.4) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.4) + core-js-compat: 3.37.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7)': + '@babel/preset-flow@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/types': 7.24.0 + esutils: 2.0.3 - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7)': + '@babel/preset-typescript@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7)': + '@babel/register@7.23.7(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.24.4 + clone-deep: 4.0.1 + find-cache-dir: 2.1.0 + make-dir: 2.1.0 + pirates: 4.0.6 + source-map-support: 0.5.21 - '@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.7)': + '@babel/regjsgen@0.8.0': {} + + '@babel/runtime@7.24.4': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + regenerator-runtime: 0.14.1 - '@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/preset-env@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/compat-data': 7.24.7 - '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.7) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-typeof-symbol': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.7) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.7) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7) - core-js-compat: 3.37.1 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-flow@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.24.7) - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/types': 7.24.7 - esutils: 2.0.3 - - '@babel/preset-typescript@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color - - '@babel/register@7.24.6(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - - '@babel/regjsgen@0.8.0': {} - - '@babel/runtime@7.24.7': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/runtime@7.4.5': + '@babel/runtime@7.4.5': dependencies: regenerator-runtime: 0.13.11 - '@babel/template@7.24.7': + '@babel/template@7.24.0': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 - '@babel/traverse@7.24.7': + '@babel/traverse@7.24.1': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - debug: 4.3.5 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.7': + '@babel/types@7.24.0': dependencies: - '@babel/helper-string-parser': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 '@base2/pretty-print-object@1.0.1': {} @@ -8516,36 +8756,36 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1)': + '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-tokenizer': 2.3.1 + '@csstools/css-tokenizer': 2.4.1 - '@csstools/css-tokenizer@2.3.1': {} + '@csstools/css-tokenizer@2.4.1': {} - '@csstools/media-query-list-parser@2.1.11(@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1))(@csstools/css-tokenizer@2.3.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.6.3(@csstools/css-tokenizer@2.3.1) - '@csstools/css-tokenizer': 2.3.1 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 - '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.0)': + '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.1)': dependencies: - postcss-selector-parser: 6.1.0 + postcss-selector-parser: 6.1.1 '@discoveryjs/json-ext@0.5.7': {} '@dual-bundle/import-meta-resolve@4.1.0': {} - '@emotion/is-prop-valid@1.2.2': + '@emotion/is-prop-valid@1.2.1': dependencies: '@emotion/memoize': 0.8.1 '@emotion/memoize@0.8.1': {} - '@emotion/unitless@0.8.1': {} + '@emotion/unitless@0.8.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.1)': + '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0)': dependencies: - react: 18.3.1 + react: 18.2.0 '@esbuild/aix-ppc64@0.19.12': optional: true @@ -8687,12 +8927,12 @@ snapshots: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.1': {} + '@eslint-community/regexpp@4.10.0': {} '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.4 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -8707,68 +8947,68 @@ snapshots: '@fal-works/esbuild-plugin-global-externals@2.1.2': {} - '@floating-ui/core@1.6.2': + '@floating-ui/core@1.6.0': dependencies: - '@floating-ui/utils': 0.2.2 + '@floating-ui/utils': 0.2.1 - '@floating-ui/dom@1.6.5': + '@floating-ui/dom@1.6.3': dependencies: - '@floating-ui/core': 1.6.2 - '@floating-ui/utils': 0.2.2 + '@floating-ui/core': 1.6.0 + '@floating-ui/utils': 0.2.1 - '@floating-ui/react-dom@2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/react-dom@2.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@floating-ui/dom': 1.6.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@floating-ui/dom': 1.6.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@floating-ui/utils@0.2.2': {} + '@floating-ui/utils@0.2.1': {} - '@formatjs/ecma402-abstract@2.0.0': + '@formatjs/ecma402-abstract@1.18.2': dependencies: '@formatjs/intl-localematcher': 0.5.4 - tslib: 2.6.3 + tslib: 2.6.2 '@formatjs/fast-memoize@2.2.0': dependencies: - tslib: 2.6.3 + tslib: 2.6.2 - '@formatjs/icu-messageformat-parser@2.7.8': + '@formatjs/icu-messageformat-parser@2.7.6': dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/icu-skeleton-parser': 1.8.2 - tslib: 2.6.3 + '@formatjs/ecma402-abstract': 1.18.2 + '@formatjs/icu-skeleton-parser': 1.8.0 + tslib: 2.6.2 - '@formatjs/icu-skeleton-parser@1.8.2': + '@formatjs/icu-skeleton-parser@1.8.0': dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - tslib: 2.6.3 + '@formatjs/ecma402-abstract': 1.18.2 + tslib: 2.6.2 - '@formatjs/intl-displaynames@6.6.8': + '@formatjs/intl-displaynames@6.6.6': dependencies: - '@formatjs/ecma402-abstract': 2.0.0 + '@formatjs/ecma402-abstract': 1.18.2 '@formatjs/intl-localematcher': 0.5.4 - tslib: 2.6.3 + tslib: 2.6.2 - '@formatjs/intl-listformat@7.5.7': + '@formatjs/intl-listformat@7.5.5': dependencies: - '@formatjs/ecma402-abstract': 2.0.0 + '@formatjs/ecma402-abstract': 1.18.2 '@formatjs/intl-localematcher': 0.5.4 - tslib: 2.6.3 + tslib: 2.6.2 '@formatjs/intl-localematcher@0.5.4': dependencies: - tslib: 2.6.3 + tslib: 2.6.2 - '@formatjs/intl@2.10.4(typescript@4.9.5)': + '@formatjs/intl@2.10.1(typescript@4.9.5)': dependencies: - '@formatjs/ecma402-abstract': 2.0.0 + '@formatjs/ecma402-abstract': 1.18.2 '@formatjs/fast-memoize': 2.2.0 - '@formatjs/icu-messageformat-parser': 2.7.8 - '@formatjs/intl-displaynames': 6.6.8 - '@formatjs/intl-listformat': 7.5.7 - intl-messageformat: 10.5.14 - tslib: 2.6.3 + '@formatjs/icu-messageformat-parser': 2.7.6 + '@formatjs/intl-displaynames': 6.6.6 + '@formatjs/intl-listformat': 7.5.5 + intl-messageformat: 10.5.11 + tslib: 2.6.2 optionalDependencies: typescript: 4.9.5 @@ -8784,26 +9024,26 @@ snapshots: dependencies: '@fortawesome/fontawesome-common-types': 0.2.36 - '@fortawesome/react-fontawesome@0.2.2(@fortawesome/fontawesome-svg-core@1.3.0)(react@18.3.1)': + '@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@1.3.0)(react@18.2.0)': dependencies: '@fortawesome/fontawesome-svg-core': 1.3.0 prop-types: 15.8.1 - react: 18.3.1 + react: 18.2.0 - '@hookform/error-message@2.0.1(react-dom@18.3.1(react@18.3.1))(react-hook-form@7.52.0(react@18.3.1))(react@18.3.1)': + '@hookform/error-message@2.0.1(react-dom@18.2.0(react@18.2.0))(react-hook-form@7.51.3(react@18.2.0))(react@18.2.0)': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-hook-form: 7.52.0(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-hook-form: 7.51.3(react@18.2.0) - '@hookform/resolvers@3.6.0(react-hook-form@7.52.0(react@18.3.1))': + '@hookform/resolvers@3.3.4(react-hook-form@7.51.3(react@18.2.0))': dependencies: - react-hook-form: 7.52.0(react@18.3.1) + react-hook-form: 7.51.3(react@18.2.0) '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -8816,20 +9056,20 @@ snapshots: '@internationalized/date@3.5.4': dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 '@internationalized/message@3.1.4': dependencies: - '@swc/helpers': 0.5.11 - intl-messageformat: 10.5.14 + '@swc/helpers': 0.5.10 + intl-messageformat: 10.5.11 '@internationalized/number@3.5.3': dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 '@internationalized/string@3.2.3': dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 '@isaacs/cliui@8.0.2': dependencies: @@ -8853,7 +9093,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -8866,14 +9106,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.14.8) + jest-config: 29.7.0(@types/node@20.12.7) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -8885,7 +9125,7 @@ snapshots: jest-util: 29.7.0 jest-validate: 29.7.0 jest-watcher: 29.7.0 - micromatch: 4.0.7 + micromatch: 4.0.5 pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 @@ -8898,7 +9138,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -8916,7 +9156,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.14.8 + '@types/node': 20.12.7 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -8938,7 +9178,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.14.8 + '@types/node': 20.12.7 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -8985,7 +9225,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.4 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -8996,7 +9236,7 @@ snapshots: jest-haste-map: 29.7.0 jest-regex-util: 29.6.3 jest-util: 29.7.0 - micromatch: 4.0.7 + micromatch: 4.0.5 pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 @@ -9008,17 +9248,17 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.8 + '@types/node': 20.12.7 '@types/yargs': 17.0.32 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@4.9.5)(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@4.9.5)(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@4.9.5) - vite: 4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1) + vite: 4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4) optionalDependencies: typescript: 4.9.5 @@ -9046,11 +9286,158 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@mdx-js/react@2.3.0(react@18.3.1)': + '@lexical/clipboard@0.16.1': + dependencies: + '@lexical/html': 0.16.1 + '@lexical/list': 0.16.1 + '@lexical/selection': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/code@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + prismjs: 1.29.0 + + '@lexical/devtools-core@0.16.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@lexical/html': 0.16.1 + '@lexical/link': 0.16.1 + '@lexical/mark': 0.16.1 + '@lexical/table': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@lexical/dragon@0.16.1': + dependencies: + lexical: 0.16.1 + + '@lexical/hashtag@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/history@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/html@0.16.1': + dependencies: + '@lexical/selection': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/link@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/list@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/mark@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/markdown@0.16.1': + dependencies: + '@lexical/code': 0.16.1 + '@lexical/link': 0.16.1 + '@lexical/list': 0.16.1 + '@lexical/rich-text': 0.16.1 + '@lexical/text': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/offset@0.16.1': + dependencies: + lexical: 0.16.1 + + '@lexical/overflow@0.16.1': + dependencies: + lexical: 0.16.1 + + '@lexical/plain-text@0.16.1': + dependencies: + '@lexical/clipboard': 0.16.1 + '@lexical/selection': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/react@0.16.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(yjs@13.6.18)': + dependencies: + '@lexical/clipboard': 0.16.1 + '@lexical/code': 0.16.1 + '@lexical/devtools-core': 0.16.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@lexical/dragon': 0.16.1 + '@lexical/hashtag': 0.16.1 + '@lexical/history': 0.16.1 + '@lexical/link': 0.16.1 + '@lexical/list': 0.16.1 + '@lexical/mark': 0.16.1 + '@lexical/markdown': 0.16.1 + '@lexical/overflow': 0.16.1 + '@lexical/plain-text': 0.16.1 + '@lexical/rich-text': 0.16.1 + '@lexical/selection': 0.16.1 + '@lexical/table': 0.16.1 + '@lexical/text': 0.16.1 + '@lexical/utils': 0.16.1 + '@lexical/yjs': 0.16.1(yjs@13.6.18) + lexical: 0.16.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-error-boundary: 3.1.4(react@18.2.0) + transitivePeerDependencies: + - yjs + + '@lexical/rich-text@0.16.1': + dependencies: + '@lexical/clipboard': 0.16.1 + '@lexical/selection': 0.16.1 + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/selection@0.16.1': + dependencies: + lexical: 0.16.1 + + '@lexical/table@0.16.1': + dependencies: + '@lexical/utils': 0.16.1 + lexical: 0.16.1 + + '@lexical/text@0.16.1': + dependencies: + lexical: 0.16.1 + + '@lexical/utils@0.16.1': + dependencies: + '@lexical/list': 0.16.1 + '@lexical/selection': 0.16.1 + '@lexical/table': 0.16.1 + lexical: 0.16.1 + + '@lexical/yjs@0.16.1(yjs@13.6.18)': + dependencies: + '@lexical/offset': 0.16.1 + lexical: 0.16.1 + yjs: 13.6.18 + + '@lokesh.dhakar/quantize@1.3.0': {} + + '@mdx-js/react@2.3.0(react@18.2.0)': dependencies: '@types/mdx': 2.0.13 '@types/react': 17.0.80 - react: 18.3.1 + react: 18.2.0 '@ndelangen/get-tarball@3.0.9': dependencies: @@ -9075,1428 +9462,1486 @@ snapshots: '@radix-ui/number@1.0.1': dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.24.4 '@radix-ui/primitive@1.0.1': dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.24.4 '@radix-ui/primitive@1.1.0': {} - '@radix-ui/react-arrow@1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-primitive': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-collection@1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-collection@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-compose-refs@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - react: 18.3.1 + '@babel/runtime': 7.24.4 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-compose-refs@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - react: 18.3.1 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-context@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - react: 18.3.1 + '@babel/runtime': 7.24.4 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-context@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-context@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - react: 18.3.1 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-dialog@1.1.1(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.1.1(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-portal': 1.1.1(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@17.0.80)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@17.0.80)(react@18.2.0) aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.7(@types/react@17.0.80)(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.7(@types/react@17.0.80)(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-direction@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-direction@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - react: 18.3.1 + '@babel/runtime': 7.24.4 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-direction@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - react: 18.3.1 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-dismissable-layer@1.0.4(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-dismissable-layer@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-guards@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - react: 18.3.1 + '@babel/runtime': 7.24.4 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-focus-guards@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - react: 18.3.1 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-focus-scope@1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-scope@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-id@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-id@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-id@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-popper@1.1.2(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.24.7 - '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(@types/react@17.0.80)(react@18.3.1) + '@radix-ui/react-popper@1.1.2(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@17.0.80)(react@18.2.0) '@radix-ui/rect': 1.0.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-portal@1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-primitive': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.1.1(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/react-slot': 1.0.2(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-slot': 1.0.2(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-roving-focus@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-direction': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-id': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-select@1.2.2(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.24.4 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(@types/react@17.0.80)(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@17.0.80)(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-separator@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-slot@1.0.2(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-slot@1.0.2(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-slot@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-slot@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-tabs@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tabs@1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-presence': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-direction': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-id': 1.1.0(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-toggle-group@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-context': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-toggle@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-toolbar@1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-context': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@17.0.80)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-context': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@17.0.80)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - react: 18.3.1 + '@babel/runtime': 7.24.4 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - react: 18.3.1 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - react: 18.3.1 + '@babel/runtime': 7.24.4 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@17.0.80)(react@18.2.0)': dependencies: - react: 18.3.1 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-previous@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-previous@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - react: 18.3.1 + '@babel/runtime': 7.24.4 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-rect@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-rect@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.24.4 '@radix-ui/rect': 1.0.1 - react: 18.3.1 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-use-size@1.0.1(@types/react@17.0.80)(react@18.3.1)': + '@radix-ui/react-use-size@1.0.1(@types/react@17.0.80)(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.80)(react@18.3.1) - react: 18.3.1 + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@17.0.80)(react@18.2.0) + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - '@radix-ui/react-visually-hidden@1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.24.7 - '@radix-ui/react-primitive': 1.0.3(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 + '@types/react-dom': 18.3.0 '@radix-ui/rect@1.0.1': dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.24.4 - '@react-aria/breadcrumbs@3.5.13(react@18.3.1)': + '@react-aria/breadcrumbs@3.5.13(react@18.2.0)': dependencies: - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/link': 3.7.1(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/breadcrumbs': 3.7.5(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/link': 3.7.1(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/breadcrumbs': 3.7.5(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-aria/button@3.9.5(react@18.3.1)': + '@react-aria/button@3.9.5(react@18.2.0)': dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/toggle': 3.7.4(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/toggle': 3.7.4(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-aria/calendar@3.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/calendar@3.5.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@internationalized/date': 3.5.4 - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) '@react-aria/live-announcer': 3.3.4 - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/calendar': 3.5.1(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/calendar': 3.4.6(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/checkbox@3.14.3(react@18.3.1)': - dependencies: - '@react-aria/form': 3.0.5(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/toggle': 3.10.4(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/checkbox': 3.6.5(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/toggle': 3.7.4(react@18.3.1) - '@react-types/checkbox': 3.8.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/color@3.0.0-beta.33(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/numberfield': 3.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/slider': 3.7.8(react@18.3.1) - '@react-aria/spinbutton': 3.6.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/textfield': 3.14.5(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-aria/visually-hidden': 3.8.12(react@18.3.1) - '@react-stately/color': 3.6.1(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-types/color': 3.0.0-beta.25(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/combobox@3.9.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/listbox': 3.12.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/calendar': 3.5.1(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/calendar': 3.4.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/checkbox@3.14.3(react@18.2.0)': + dependencies: + '@react-aria/form': 3.0.5(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/toggle': 3.10.4(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/checkbox': 3.6.5(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/toggle': 3.7.4(react@18.2.0) + '@react-types/checkbox': 3.8.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/color@3.0.0-beta.33(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/numberfield': 3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/slider': 3.7.8(react@18.2.0) + '@react-aria/spinbutton': 3.6.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.14.5(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-aria/visually-hidden': 3.8.12(react@18.2.0) + '@react-stately/color': 3.6.1(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-types/color': 3.0.0-beta.25(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/combobox@3.9.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/listbox': 3.12.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-aria/live-announcer': 3.3.4 - '@react-aria/menu': 3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/overlays': 3.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/textfield': 3.14.5(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/combobox': 3.8.4(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/combobox': 3.11.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/datepicker@3.10.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/menu': 3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/overlays': 3.22.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.14.5(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/combobox': 3.8.4(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/combobox': 3.11.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/datepicker@3.10.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@internationalized/date': 3.5.4 '@internationalized/number': 3.5.3 '@internationalized/string': 3.2.3 - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/form': 3.0.5(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/spinbutton': 3.6.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/datepicker': 3.9.4(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/calendar': 3.4.6(react@18.3.1) - '@react-types/datepicker': 3.7.4(react@18.3.1) - '@react-types/dialog': 3.5.10(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/dialog@3.5.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/overlays': 3.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/dialog': 3.5.10(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/dnd@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/form': 3.0.5(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/spinbutton': 3.6.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/datepicker': 3.9.4(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/calendar': 3.4.6(react@18.2.0) + '@react-types/datepicker': 3.7.4(react@18.2.0) + '@react-types/dialog': 3.5.10(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/dialog@3.5.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/overlays': 3.22.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/dialog': 3.5.10(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/dnd@3.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@internationalized/string': 3.2.3 - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) '@react-aria/live-announcer': 3.3.4 - '@react-aria/overlays': 3.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/dnd': 3.3.1(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/focus@3.17.1(react@18.3.1)': - dependencies: - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - clsx: 2.1.1 - react: 18.3.1 - - '@react-aria/form@3.0.5(react@18.3.1)': - dependencies: - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/grid@3.9.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) + '@react-aria/overlays': 3.22.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/dnd': 3.3.1(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/focus@3.17.1(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + clsx: 2.1.0 + react: 18.2.0 + + '@react-aria/form@3.0.5(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/grid@3.9.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) '@react-aria/live-announcer': 3.3.4 - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/grid': 3.8.7(react@18.3.1) - '@react-stately/selection': 3.15.1(react@18.3.1) - '@react-stately/virtualizer': 3.7.1(react@18.3.1) - '@react-types/checkbox': 3.8.1(react@18.3.1) - '@react-types/grid': 3.2.6(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/gridlist@3.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/grid': 3.9.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/list': 3.10.5(react@18.3.1) - '@react-stately/tree': 3.8.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/i18n@3.11.1(react@18.3.1)': + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/grid': 3.8.7(react@18.2.0) + '@react-stately/selection': 3.15.1(react@18.2.0) + '@react-stately/virtualizer': 3.7.1(react@18.2.0) + '@react-types/checkbox': 3.8.1(react@18.2.0) + '@react-types/grid': 3.2.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/gridlist@3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/grid': 3.9.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/list': 3.10.5(react@18.2.0) + '@react-stately/tree': 3.8.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/i18n@3.11.1(react@18.2.0)': dependencies: '@internationalized/date': 3.5.4 '@internationalized/message': 3.1.4 '@internationalized/number': 3.5.3 '@internationalized/string': 3.2.3 - '@react-aria/ssr': 3.9.4(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/interactions@3.21.3(react@18.3.1)': - dependencies: - '@react-aria/ssr': 3.9.4(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/label@3.7.8(react@18.3.1)': - dependencies: - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/link@3.7.1(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/link': 3.5.5(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/listbox@3.12.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/list': 3.10.5(react@18.3.1) - '@react-types/listbox': 3.4.9(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@react-aria/ssr': 3.9.4(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/interactions@3.21.3(react@18.2.0)': + dependencies: + '@react-aria/ssr': 3.9.4(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/label@3.7.8(react@18.2.0)': + dependencies: + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/link@3.7.1(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/link': 3.5.5(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/listbox@3.12.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/list': 3.10.5(react@18.2.0) + '@react-types/listbox': 3.4.9(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) '@react-aria/live-announcer@3.3.4': dependencies: - '@swc/helpers': 0.5.11 - - '@react-aria/menu@3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/overlays': 3.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/menu': 3.7.1(react@18.3.1) - '@react-stately/tree': 3.8.1(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/menu': 3.9.9(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/meter@3.4.13(react@18.3.1)': - dependencies: - '@react-aria/progress': 3.4.13(react@18.3.1) - '@react-types/meter': 3.4.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/numberfield@3.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/spinbutton': 3.6.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/textfield': 3.14.5(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/numberfield': 3.9.3(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/numberfield': 3.8.3(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/overlays@3.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/ssr': 3.9.4(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-aria/visually-hidden': 3.8.12(react@18.3.1) - '@react-stately/overlays': 3.6.7(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/overlays': 3.8.7(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/progress@3.4.13(react@18.3.1)': - dependencies: - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/progress': 3.5.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/radio@3.10.4(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/form': 3.0.5(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/radio': 3.10.4(react@18.3.1) - '@react-types/radio': 3.8.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/searchfield@3.7.5(react@18.3.1)': - dependencies: - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/textfield': 3.14.5(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/searchfield': 3.5.3(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/searchfield': 3.5.5(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/select@3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/form': 3.0.5(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/listbox': 3.12.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/menu': 3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-aria/visually-hidden': 3.8.12(react@18.3.1) - '@react-stately/select': 3.6.4(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/select': 3.9.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/selection@3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/selection': 3.15.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/separator@3.3.13(react@18.3.1)': - dependencies: - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/slider@3.7.8(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/slider': 3.5.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/slider': 3.7.3(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/spinbutton@3.6.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/i18n': 3.11.1(react@18.3.1) + '@swc/helpers': 0.5.10 + + '@react-aria/menu@3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/overlays': 3.22.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/menu': 3.7.1(react@18.2.0) + '@react-stately/tree': 3.8.1(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/menu': 3.9.9(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/meter@3.4.13(react@18.2.0)': + dependencies: + '@react-aria/progress': 3.4.13(react@18.2.0) + '@react-types/meter': 3.4.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/numberfield@3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/spinbutton': 3.6.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.14.5(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/numberfield': 3.9.3(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/numberfield': 3.8.3(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/overlays@3.22.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/ssr': 3.9.4(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-aria/visually-hidden': 3.8.12(react@18.2.0) + '@react-stately/overlays': 3.6.7(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/overlays': 3.8.7(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/progress@3.4.13(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/progress': 3.5.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/radio@3.10.4(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/form': 3.0.5(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/radio': 3.10.4(react@18.2.0) + '@react-types/radio': 3.8.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/searchfield@3.7.5(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/textfield': 3.14.5(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/searchfield': 3.5.3(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/searchfield': 3.5.5(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/select@3.14.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/form': 3.0.5(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/listbox': 3.12.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/menu': 3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-aria/visually-hidden': 3.8.12(react@18.2.0) + '@react-stately/select': 3.6.4(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/select': 3.9.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/selection@3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/selection': 3.15.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/separator@3.3.13(react@18.2.0)': + dependencies: + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/slider@3.7.8(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/slider': 3.5.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/slider': 3.7.3(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/spinbutton@3.6.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/i18n': 3.11.1(react@18.2.0) '@react-aria/live-announcer': 3.3.4 - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@react-aria/ssr@3.9.4(react@18.3.1)': + '@react-aria/ssr@3.9.2(react@18.2.0)': dependencies: - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-aria/switch@3.6.4(react@18.3.1)': + '@react-aria/ssr@3.9.4(react@18.2.0)': dependencies: - '@react-aria/toggle': 3.10.4(react@18.3.1) - '@react-stately/toggle': 3.7.4(react@18.3.1) - '@react-types/switch': 3.5.3(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-aria/table@3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/switch@3.6.4(react@18.2.0)': dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/grid': 3.9.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) + '@react-aria/toggle': 3.10.4(react@18.2.0) + '@react-stately/toggle': 3.7.4(react@18.2.0) + '@react-types/switch': 3.5.3(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/table@3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/grid': 3.9.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) '@react-aria/live-announcer': 3.3.4 - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-aria/visually-hidden': 3.8.12(react@18.3.1) - '@react-stately/collections': 3.10.7(react@18.3.1) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-aria/visually-hidden': 3.8.12(react@18.2.0) + '@react-stately/collections': 3.10.7(react@18.2.0) '@react-stately/flags': 3.0.3 - '@react-stately/table': 3.11.8(react@18.3.1) - '@react-stately/virtualizer': 3.7.1(react@18.3.1) - '@react-types/checkbox': 3.8.1(react@18.3.1) - '@react-types/grid': 3.2.6(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/table': 3.9.5(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/tabs@3.9.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/tabs': 3.6.6(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/tabs': 3.3.7(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/tag@3.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/gridlist': 3.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/list': 3.10.5(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/textfield@3.14.5(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/form': 3.0.5(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/textfield': 3.9.3(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/toggle@3.10.4(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/toggle': 3.7.4(react@18.3.1) - '@react-types/checkbox': 3.8.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/toolbar@3.0.0-beta.5(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/tooltip@3.7.4(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/tooltip': 3.4.9(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/tooltip': 3.4.9(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-aria/tree@3.0.0-alpha.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/gridlist': 3.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/tree': 3.8.1(react@18.3.1) - '@react-types/button': 3.9.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@react-aria/utils@3.17.0(react@18.3.1)': - dependencies: - '@react-aria/ssr': 3.9.4(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.4.14 + '@react-stately/table': 3.11.8(react@18.2.0) + '@react-stately/virtualizer': 3.7.1(react@18.2.0) + '@react-types/checkbox': 3.8.1(react@18.2.0) + '@react-types/grid': 3.2.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/table': 3.9.5(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/tabs@3.9.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/tabs': 3.6.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/tabs': 3.3.7(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/tag@3.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/gridlist': 3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/list': 3.10.5(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/textfield@3.14.5(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/form': 3.0.5(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/textfield': 3.9.3(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/toggle@3.10.4(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/toggle': 3.7.4(react@18.2.0) + '@react-types/checkbox': 3.8.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/toolbar@3.0.0-beta.5(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/tooltip@3.7.4(react@18.2.0)': + dependencies: + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/tooltip': 3.4.9(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/tooltip': 3.4.9(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-aria/tree@3.0.0-alpha.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@react-aria/gridlist': 3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/tree': 3.8.1(react@18.2.0) + '@react-types/button': 3.9.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@react-aria/utils@3.17.0(react@18.2.0)': + dependencies: + '@react-aria/ssr': 3.9.2(react@18.2.0) + '@react-stately/utils': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.1(react@18.2.0) + '@swc/helpers': 0.4.36 clsx: 1.2.1 - react: 18.3.1 + react: 18.2.0 - '@react-aria/utils@3.24.1(react@18.3.1)': + '@react-aria/utils@3.24.1(react@18.2.0)': dependencies: - '@react-aria/ssr': 3.9.4(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - clsx: 2.1.1 - react: 18.3.1 + '@react-aria/ssr': 3.9.4(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + clsx: 2.1.0 + react: 18.2.0 - '@react-aria/visually-hidden@3.8.12(react@18.3.1)': + '@react-aria/visually-hidden@3.8.12(react@18.2.0)': dependencies: - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/calendar@3.5.1(react@18.3.1)': + '@react-stately/calendar@3.5.1(react@18.2.0)': dependencies: '@internationalized/date': 3.5.4 - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/calendar': 3.4.6(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/calendar': 3.4.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/checkbox@3.6.5(react@18.3.1)': + '@react-stately/checkbox@3.6.5(react@18.2.0)': dependencies: - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/checkbox': 3.8.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/checkbox': 3.8.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/collections@3.10.7(react@18.3.1)': + '@react-stately/collections@3.10.7(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/color@3.6.1(react@18.3.1)': + '@react-stately/color@3.6.1(react@18.2.0)': dependencies: '@internationalized/number': 3.5.3 '@internationalized/string': 3.2.3 - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/numberfield': 3.9.3(react@18.3.1) - '@react-stately/slider': 3.5.4(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/color': 3.0.0-beta.25(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-stately/combobox@3.8.4(react@18.3.1)': - dependencies: - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/list': 3.10.5(react@18.3.1) - '@react-stately/overlays': 3.6.7(react@18.3.1) - '@react-stately/select': 3.6.4(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/combobox': 3.11.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-stately/data@3.11.4(react@18.3.1)': - dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 - - '@react-stately/datepicker@3.9.4(react@18.3.1)': + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/numberfield': 3.9.3(react@18.2.0) + '@react-stately/slider': 3.5.4(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/color': 3.0.0-beta.25(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-stately/combobox@3.8.4(react@18.2.0)': + dependencies: + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/list': 3.10.5(react@18.2.0) + '@react-stately/overlays': 3.6.7(react@18.2.0) + '@react-stately/select': 3.6.4(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/combobox': 3.11.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-stately/data@3.11.4(react@18.2.0)': + dependencies: + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-stately/datepicker@3.9.4(react@18.2.0)': dependencies: '@internationalized/date': 3.5.4 '@internationalized/string': 3.2.3 - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/overlays': 3.6.7(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/datepicker': 3.7.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/overlays': 3.6.7(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/datepicker': 3.7.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/dnd@3.3.1(react@18.3.1)': + '@react-stately/dnd@3.3.1(react@18.2.0)': dependencies: - '@react-stately/selection': 3.15.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/selection': 3.15.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 '@react-stately/flags@3.0.3': dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.10 - '@react-stately/form@3.0.3(react@18.3.1)': + '@react-stately/form@3.0.3(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/grid@3.8.7(react@18.3.1)': + '@react-stately/grid@3.8.7(react@18.2.0)': dependencies: - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/selection': 3.15.1(react@18.3.1) - '@react-types/grid': 3.2.6(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/selection': 3.15.1(react@18.2.0) + '@react-types/grid': 3.2.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/list@3.10.5(react@18.3.1)': + '@react-stately/list@3.10.5(react@18.2.0)': dependencies: - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/selection': 3.15.1(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/selection': 3.15.1(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/menu@3.7.1(react@18.3.1)': + '@react-stately/menu@3.7.1(react@18.2.0)': dependencies: - '@react-stately/overlays': 3.6.7(react@18.3.1) - '@react-types/menu': 3.9.9(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/overlays': 3.6.7(react@18.2.0) + '@react-types/menu': 3.9.9(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/numberfield@3.9.3(react@18.3.1)': + '@react-stately/numberfield@3.9.3(react@18.2.0)': dependencies: '@internationalized/number': 3.5.3 - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/numberfield': 3.8.3(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/numberfield': 3.8.3(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/overlays@3.6.7(react@18.3.1)': + '@react-stately/overlays@3.6.7(react@18.2.0)': dependencies: - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/overlays': 3.8.7(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/overlays': 3.8.7(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/radio@3.10.4(react@18.3.1)': + '@react-stately/radio@3.10.4(react@18.2.0)': dependencies: - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/radio': 3.8.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/radio': 3.8.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/searchfield@3.5.3(react@18.3.1)': + '@react-stately/searchfield@3.5.3(react@18.2.0)': dependencies: - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/searchfield': 3.5.5(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/searchfield': 3.5.5(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/select@3.6.4(react@18.3.1)': + '@react-stately/select@3.6.4(react@18.2.0)': dependencies: - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/list': 3.10.5(react@18.3.1) - '@react-stately/overlays': 3.6.7(react@18.3.1) - '@react-types/select': 3.9.4(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/list': 3.10.5(react@18.2.0) + '@react-stately/overlays': 3.6.7(react@18.2.0) + '@react-types/select': 3.9.4(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/selection@3.15.1(react@18.3.1)': + '@react-stately/selection@3.15.1(react@18.2.0)': dependencies: - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/slider@3.5.4(react@18.3.1)': + '@react-stately/slider@3.5.4(react@18.2.0)': dependencies: - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/slider': 3.7.3(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/slider': 3.7.3(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/table@3.11.8(react@18.3.1)': + '@react-stately/table@3.11.8(react@18.2.0)': dependencies: - '@react-stately/collections': 3.10.7(react@18.3.1) + '@react-stately/collections': 3.10.7(react@18.2.0) '@react-stately/flags': 3.0.3 - '@react-stately/grid': 3.8.7(react@18.3.1) - '@react-stately/selection': 3.15.1(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/grid': 3.2.6(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/table': 3.9.5(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/grid': 3.8.7(react@18.2.0) + '@react-stately/selection': 3.15.1(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/grid': 3.2.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/table': 3.9.5(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 + + '@react-stately/tabs@3.6.6(react@18.2.0)': + dependencies: + '@react-stately/list': 3.10.5(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/tabs': 3.3.7(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/tabs@3.6.6(react@18.3.1)': + '@react-stately/toggle@3.7.4(react@18.2.0)': dependencies: - '@react-stately/list': 3.10.5(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/tabs': 3.3.7(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/checkbox': 3.8.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/toggle@3.7.4(react@18.3.1)': + '@react-stately/tooltip@3.4.9(react@18.2.0)': dependencies: - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/checkbox': 3.8.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/overlays': 3.6.7(react@18.2.0) + '@react-types/tooltip': 3.4.9(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/tooltip@3.4.9(react@18.3.1)': + '@react-stately/tree@3.8.1(react@18.2.0)': dependencies: - '@react-stately/overlays': 3.6.7(react@18.3.1) - '@react-types/tooltip': 3.4.9(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/selection': 3.15.1(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/tree@3.8.1(react@18.3.1)': + '@react-stately/utils@3.10.1(react@18.2.0)': dependencies: - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/selection': 3.15.1(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/utils@3.10.1(react@18.3.1)': + '@react-stately/utils@3.9.1(react@18.2.0)': dependencies: - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-stately/virtualizer@3.7.1(react@18.3.1)': + '@react-stately/virtualizer@3.7.1(react@18.2.0)': dependencies: - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@swc/helpers': 0.5.11 - react: 18.3.1 + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@swc/helpers': 0.5.10 + react: 18.2.0 - '@react-types/breadcrumbs@3.7.5(react@18.3.1)': + '@react-types/breadcrumbs@3.7.5(react@18.2.0)': dependencies: - '@react-types/link': 3.5.5(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/link': 3.5.5(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/button@3.9.4(react@18.3.1)': + '@react-types/button@3.9.4(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/calendar@3.4.6(react@18.3.1)': + '@react-types/calendar@3.4.6(react@18.2.0)': dependencies: '@internationalized/date': 3.5.4 - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/checkbox@3.8.1(react@18.3.1)': + '@react-types/checkbox@3.8.1(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/color@3.0.0-beta.25(react@18.3.1)': + '@react-types/color@3.0.0-beta.25(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/slider': 3.7.3(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/slider': 3.7.3(react@18.2.0) + react: 18.2.0 - '@react-types/combobox@3.11.1(react@18.3.1)': + '@react-types/combobox@3.11.1(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/datepicker@3.7.4(react@18.3.1)': + '@react-types/datepicker@3.7.4(react@18.2.0)': dependencies: '@internationalized/date': 3.5.4 - '@react-types/calendar': 3.4.6(react@18.3.1) - '@react-types/overlays': 3.8.7(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/calendar': 3.4.6(react@18.2.0) + '@react-types/overlays': 3.8.7(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 + + '@react-types/dialog@3.5.10(react@18.2.0)': + dependencies: + '@react-types/overlays': 3.8.7(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/dialog@3.5.10(react@18.3.1)': + '@react-types/form@3.7.4(react@18.2.0)': dependencies: - '@react-types/overlays': 3.8.7(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/form@3.7.4(react@18.3.1)': + '@react-types/grid@3.2.6(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/grid@3.2.6(react@18.3.1)': + '@react-types/link@3.5.5(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/link@3.5.5(react@18.3.1)': + '@react-types/listbox@3.4.9(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/listbox@3.4.9(react@18.3.1)': + '@react-types/menu@3.9.9(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/overlays': 3.8.7(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/menu@3.9.9(react@18.3.1)': + '@react-types/meter@3.4.1(react@18.2.0)': dependencies: - '@react-types/overlays': 3.8.7(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/progress': 3.5.4(react@18.2.0) + react: 18.2.0 - '@react-types/meter@3.4.1(react@18.3.1)': + '@react-types/numberfield@3.8.3(react@18.2.0)': dependencies: - '@react-types/progress': 3.5.4(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/numberfield@3.8.3(react@18.3.1)': + '@react-types/overlays@3.8.7(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/overlays@3.8.7(react@18.3.1)': + '@react-types/progress@3.5.4(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/progress@3.5.4(react@18.3.1)': + '@react-types/radio@3.8.1(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/radio@3.8.1(react@18.3.1)': + '@react-types/searchfield@3.5.5(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/textfield': 3.9.3(react@18.2.0) + react: 18.2.0 - '@react-types/searchfield@3.5.5(react@18.3.1)': + '@react-types/select@3.9.4(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/textfield': 3.9.3(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/select@3.9.4(react@18.3.1)': + '@react-types/shared@3.22.1(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + react: 18.2.0 - '@react-types/shared@3.23.1(react@18.3.1)': + '@react-types/shared@3.23.1(react@18.2.0)': dependencies: - react: 18.3.1 + react: 18.2.0 - '@react-types/slider@3.7.3(react@18.3.1)': + '@react-types/slider@3.7.3(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/switch@3.5.3(react@18.3.1)': + '@react-types/switch@3.5.3(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/table@3.9.5(react@18.3.1)': + '@react-types/table@3.9.5(react@18.2.0)': dependencies: - '@react-types/grid': 3.2.6(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/grid': 3.2.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/tabs@3.3.7(react@18.3.1)': + '@react-types/tabs@3.3.7(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/textfield@3.9.3(react@18.3.1)': + '@react-types/textfield@3.9.3(react@18.2.0)': dependencies: - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@react-types/tooltip@3.4.9(react@18.3.1)': + '@react-types/tooltip@3.4.9(react@18.2.0)': dependencies: - '@react-types/overlays': 3.8.7(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 + '@react-types/overlays': 3.8.7(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 - '@remix-run/router@1.16.1': {} + '@remix-run/router@1.15.3': {} - '@rollup/pluginutils@5.1.0(rollup@4.18.0)': + '@rollup/pluginutils@5.1.0(rollup@4.16.1)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.18.0 + rollup: 4.16.1 - '@rollup/rollup-android-arm-eabi@4.18.0': + '@rollup/rollup-android-arm-eabi@4.16.1': optional: true - '@rollup/rollup-android-arm64@4.18.0': + '@rollup/rollup-android-arm64@4.16.1': optional: true - '@rollup/rollup-darwin-arm64@4.18.0': + '@rollup/rollup-darwin-arm64@4.16.1': optional: true - '@rollup/rollup-darwin-x64@4.18.0': + '@rollup/rollup-darwin-x64@4.16.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + '@rollup/rollup-linux-arm-gnueabihf@4.16.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.0': + '@rollup/rollup-linux-arm-musleabihf@4.16.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.0': + '@rollup/rollup-linux-arm64-gnu@4.16.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.18.0': + '@rollup/rollup-linux-arm64-musl@4.16.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.16.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.0': + '@rollup/rollup-linux-riscv64-gnu@4.16.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.0': + '@rollup/rollup-linux-s390x-gnu@4.16.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.18.0': + '@rollup/rollup-linux-x64-gnu@4.16.1': optional: true - '@rollup/rollup-linux-x64-musl@4.18.0': + '@rollup/rollup-linux-x64-musl@4.16.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.0': + '@rollup/rollup-win32-arm64-msvc@4.16.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.0': + '@rollup/rollup-win32-ia32-msvc@4.16.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.18.0': + '@rollup/rollup-win32-x64-msvc@4.16.1': optional: true '@sinclair/typebox@0.27.8': {} @@ -10509,29 +10954,29 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@storybook/addon-a11y@7.6.20': + '@storybook/addon-a11y@7.6.17': dependencies: - '@storybook/addon-highlight': 7.6.20 - axe-core: 4.9.1 + '@storybook/addon-highlight': 7.6.17 + axe-core: 4.9.0 - '@storybook/addon-actions@7.6.20': + '@storybook/addon-actions@7.6.17': dependencies: - '@storybook/core-events': 7.6.20 + '@storybook/core-events': 7.6.17 '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 uuid: 9.0.1 - '@storybook/addon-backgrounds@7.6.20': + '@storybook/addon-backgrounds@7.6.17': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@storybook/blocks': 7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -10542,26 +10987,26 @@ snapshots: - react-dom - supports-color - '@storybook/addon-docs@7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@jest/transform': 29.7.0 - '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/csf-plugin': 7.6.20 - '@storybook/csf-tools': 7.6.20 + '@mdx-js/react': 2.3.0(react@18.2.0) + '@storybook/blocks': 7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/client-logger': 7.6.17 + '@storybook/components': 7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/csf-plugin': 7.6.17 + '@storybook/csf-tools': 7.6.17 '@storybook/global': 5.0.0 '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.6.20 - '@storybook/postinstall': 7.6.20 - '@storybook/preview-api': 7.6.20 - '@storybook/react-dom-shim': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 + '@storybook/node-logger': 7.6.17 + '@storybook/postinstall': 7.6.17 + '@storybook/preview-api': 7.6.17 + '@storybook/react-dom-shim': 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/theming': 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/types': 7.6.17 fs-extra: 11.2.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) remark-external-links: 8.0.0 remark-slug: 6.1.0 ts-dedent: 2.2.0 @@ -10571,23 +11016,23 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@storybook/addon-actions': 7.6.20 - '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-highlight': 7.6.20 - '@storybook/addon-measure': 7.6.20 - '@storybook/addon-outline': 7.6.20 - '@storybook/addon-toolbars': 7.6.20 - '@storybook/addon-viewport': 7.6.20 - '@storybook/core-common': 7.6.20 - '@storybook/manager-api': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/node-logger': 7.6.20 - '@storybook/preview-api': 7.6.20 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@storybook/addon-essentials@7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@storybook/addon-actions': 7.6.17 + '@storybook/addon-backgrounds': 7.6.17 + '@storybook/addon-controls': 7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/addon-docs': 7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/addon-highlight': 7.6.17 + '@storybook/addon-measure': 7.6.17 + '@storybook/addon-outline': 7.6.17 + '@storybook/addon-toolbars': 7.6.17 + '@storybook/addon-viewport': 7.6.17 + '@storybook/core-common': 7.6.17 + '@storybook/manager-api': 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/node-logger': 7.6.17 + '@storybook/preview-api': 7.6.17 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -10595,51 +11040,51 @@ snapshots: - encoding - supports-color - '@storybook/addon-highlight@7.6.20': + '@storybook/addon-highlight@7.6.17': dependencies: '@storybook/global': 5.0.0 - '@storybook/addon-measure@7.6.20': + '@storybook/addon-measure@7.6.17': dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 - '@storybook/addon-outline@7.6.20': + '@storybook/addon-outline@7.6.17': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 - '@storybook/addon-toolbars@7.6.20': {} + '@storybook/addon-toolbars@7.6.17': {} - '@storybook/addon-viewport@7.6.20': + '@storybook/addon-viewport@7.6.17': dependencies: memoizerific: 1.11.3 - '@storybook/blocks@7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.8 - '@storybook/docs-tools': 7.6.20 + '@storybook/channels': 7.6.17 + '@storybook/client-logger': 7.6.17 + '@storybook/components': 7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/core-events': 7.6.17 + '@storybook/csf': 0.1.4 + '@storybook/docs-tools': 7.6.17 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/preview-api': 7.6.20 - '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 - '@types/lodash': 4.17.5 + '@storybook/manager-api': 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/preview-api': 7.6.17 + '@storybook/theming': 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/types': 7.6.17 + '@types/lodash': 4.17.0 color-convert: 2.0.1 dequal: 2.0.3 lodash: 4.17.21 - markdown-to-jsx: 7.4.7(react@18.3.1) + markdown-to-jsx: 7.4.7(react@18.2.0) memoizerific: 1.11.3 polished: 4.3.1 - react: 18.3.1 - react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-colorful: 5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) telejson: 7.2.0 - tocbot: 4.28.2 + tocbot: 4.27.0 ts-dedent: 2.2.0 util-deprecate: 1.0.2 transitivePeerDependencies: @@ -10648,12 +11093,12 @@ snapshots: - encoding - supports-color - '@storybook/builder-manager@7.6.20': + '@storybook/builder-manager@7.6.17': dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@storybook/core-common': 7.6.20 - '@storybook/manager': 7.6.20 - '@storybook/node-logger': 7.6.20 + '@storybook/core-common': 7.6.17 + '@storybook/manager': 7.6.17 + '@storybook/node-logger': 7.6.17 '@types/ejs': 3.1.5 '@types/find-cache-dir': 3.2.1 '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.18.20) @@ -10670,16 +11115,16 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(typescript@4.9.5)(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1))': + '@storybook/builder-vite@7.6.17(typescript@4.9.5)(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4))': dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/core-common': 7.6.20 - '@storybook/csf-plugin': 7.6.20 - '@storybook/node-logger': 7.6.20 - '@storybook/preview': 7.6.20 - '@storybook/preview-api': 7.6.20 - '@storybook/types': 7.6.20 + '@storybook/channels': 7.6.17 + '@storybook/client-logger': 7.6.17 + '@storybook/core-common': 7.6.17 + '@storybook/csf-plugin': 7.6.17 + '@storybook/node-logger': 7.6.17 + '@storybook/preview': 7.6.17 + '@storybook/preview-api': 7.6.17 + '@storybook/types': 7.6.17 '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 0.9.3 @@ -10688,7 +11133,7 @@ snapshots: fs-extra: 11.2.0 magic-string: 0.30.10 rollup: 3.29.4 - vite: 4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1) + vite: 4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: @@ -10700,33 +11145,24 @@ snapshots: '@storybook/client-logger': 7.6.17 '@storybook/core-events': 7.6.17 '@storybook/global': 5.0.0 - qs: 6.11.0 - telejson: 7.2.0 - tiny-invariant: 1.3.3 - - '@storybook/channels@7.6.20': - dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/global': 5.0.0 - qs: 6.11.0 + qs: 6.12.1 telejson: 7.2.0 tiny-invariant: 1.3.3 - '@storybook/cli@7.6.20': + '@storybook/cli@7.6.17': dependencies: - '@babel/core': 7.24.7 - '@babel/preset-env': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 + '@babel/core': 7.24.4 + '@babel/preset-env': 7.24.4(@babel/core@7.24.4) + '@babel/types': 7.24.0 '@ndelangen/get-tarball': 3.0.9 - '@storybook/codemod': 7.6.20 - '@storybook/core-common': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/core-server': 7.6.20 - '@storybook/csf-tools': 7.6.20 - '@storybook/node-logger': 7.6.20 - '@storybook/telemetry': 7.6.20 - '@storybook/types': 7.6.20 + '@storybook/codemod': 7.6.17 + '@storybook/core-common': 7.6.17 + '@storybook/core-events': 7.6.17 + '@storybook/core-server': 7.6.17 + '@storybook/csf-tools': 7.6.17 + '@storybook/node-logger': 7.6.17 + '@storybook/telemetry': 7.6.17 + '@storybook/types': 7.6.17 '@types/semver': 7.5.8 '@yarnpkg/fslib': 2.10.3 '@yarnpkg/libzip': 2.3.0 @@ -10734,7 +11170,7 @@ snapshots: commander: 6.2.1 cross-spawn: 7.0.3 detect-indent: 6.1.0 - envinfo: 7.13.0 + envinfo: 7.12.0 execa: 5.1.1 express: 4.19.2 find-up: 5.0.0 @@ -10743,14 +11179,14 @@ snapshots: get-port: 5.1.1 giget: 1.2.3 globby: 11.1.0 - jscodeshift: 0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)) + jscodeshift: 0.15.2(@babel/preset-env@7.24.4(@babel/core@7.24.4)) leven: 3.1.0 ora: 5.4.1 prettier: 2.8.8 prompts: 2.4.2 puppeteer-core: 2.1.1 read-pkg-up: 7.0.1 - semver: 7.6.2 + semver: 7.6.0 strip-json-comments: 3.1.1 tempy: 1.0.1 ts-dedent: 2.2.0 @@ -10770,59 +11206,55 @@ snapshots: dependencies: '@storybook/global': 5.0.0 - '@storybook/client-logger@7.6.20': - dependencies: - '@storybook/global': 5.0.0 - - '@storybook/codemod@7.6.20': + '@storybook/codemod@7.6.17': dependencies: - '@babel/core': 7.24.7 - '@babel/preset-env': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 - '@storybook/csf': 0.1.8 - '@storybook/csf-tools': 7.6.20 - '@storybook/node-logger': 7.6.20 - '@storybook/types': 7.6.20 + '@babel/core': 7.24.4 + '@babel/preset-env': 7.24.4(@babel/core@7.24.4) + '@babel/types': 7.24.0 + '@storybook/csf': 0.1.4 + '@storybook/csf-tools': 7.6.17 + '@storybook/node-logger': 7.6.17 + '@storybook/types': 7.6.17 '@types/cross-spawn': 6.0.6 cross-spawn: 7.0.3 globby: 11.1.0 - jscodeshift: 0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)) + jscodeshift: 0.15.2(@babel/preset-env@7.24.4(@babel/core@7.24.4)) lodash: 4.17.21 prettier: 2.8.8 - recast: 0.23.9 + recast: 0.23.6 transitivePeerDependencies: - supports-color - '@storybook/components@7.6.20(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/components@7.6.17(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.0(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/client-logger': 7.6.20 - '@storybook/csf': 0.1.8 + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/client-logger': 7.6.17 + '@storybook/csf': 0.1.4 '@storybook/global': 5.0.0 - '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 + '@storybook/theming': 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/types': 7.6.17 memoizerific: 1.11.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - use-resize-observer: 9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-resize-observer: 9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) util-deprecate: 1.0.2 transitivePeerDependencies: - '@types/react' - '@types/react-dom' - '@storybook/core-client@7.6.20': + '@storybook/core-client@7.6.17': dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/preview-api': 7.6.20 + '@storybook/client-logger': 7.6.17 + '@storybook/preview-api': 7.6.17 - '@storybook/core-common@7.6.20': + '@storybook/core-common@7.6.17': dependencies: - '@storybook/core-events': 7.6.20 - '@storybook/node-logger': 7.6.20 - '@storybook/types': 7.6.20 + '@storybook/core-events': 7.6.17 + '@storybook/node-logger': 7.6.17 + '@storybook/types': 7.6.17 '@types/find-cache-dir': 3.2.1 - '@types/node': 18.19.39 + '@types/node': 18.19.31 '@types/node-fetch': 2.6.11 '@types/pretty-hrtime': 1.0.3 chalk: 4.1.2 @@ -10832,7 +11264,7 @@ snapshots: find-cache-dir: 3.3.2 find-up: 5.0.0 fs-extra: 11.2.0 - glob: 10.4.2 + glob: 10.3.12 handlebars: 4.7.8 lazy-universal-dotenv: 4.0.0 node-fetch: 2.7.0 @@ -10849,90 +11281,87 @@ snapshots: dependencies: ts-dedent: 2.2.0 - '@storybook/core-events@7.6.20': - dependencies: - ts-dedent: 2.2.0 - - '@storybook/core-server@7.6.20': + '@storybook/core-server@7.6.17': dependencies: '@aw-web-design/x-default-browser': 1.4.126 '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-manager': 7.6.20 - '@storybook/channels': 7.6.20 - '@storybook/core-common': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.8 - '@storybook/csf-tools': 7.6.20 + '@storybook/builder-manager': 7.6.17 + '@storybook/channels': 7.6.17 + '@storybook/core-common': 7.6.17 + '@storybook/core-events': 7.6.17 + '@storybook/csf': 0.1.4 + '@storybook/csf-tools': 7.6.17 '@storybook/docs-mdx': 0.1.0 '@storybook/global': 5.0.0 - '@storybook/manager': 7.6.20 - '@storybook/node-logger': 7.6.20 - '@storybook/preview-api': 7.6.20 - '@storybook/telemetry': 7.6.20 - '@storybook/types': 7.6.20 + '@storybook/manager': 7.6.17 + '@storybook/node-logger': 7.6.17 + '@storybook/preview-api': 7.6.17 + '@storybook/telemetry': 7.6.17 + '@storybook/types': 7.6.17 '@types/detect-port': 1.3.5 - '@types/node': 18.19.39 + '@types/node': 18.19.31 '@types/pretty-hrtime': 1.0.3 '@types/semver': 7.5.8 better-opn: 3.0.2 chalk: 4.1.2 - cli-table3: 0.6.5 + cli-table3: 0.6.4 compression: 1.7.4 - detect-port: 1.6.1 + detect-port: 1.5.1 express: 4.19.2 fs-extra: 11.2.0 globby: 11.1.0 + ip: 2.0.1 lodash: 4.17.21 open: 8.4.2 pretty-hrtime: 1.0.3 prompts: 2.4.2 read-pkg-up: 7.0.1 - semver: 7.6.2 + semver: 7.6.0 telejson: 7.2.0 tiny-invariant: 1.3.3 ts-dedent: 2.2.0 util: 0.12.5 util-deprecate: 1.0.2 watchpack: 2.4.1 - ws: 8.17.1 + ws: 8.16.0 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate - '@storybook/csf-plugin@7.6.20': + '@storybook/csf-plugin@7.6.17': dependencies: - '@storybook/csf-tools': 7.6.20 + '@storybook/csf-tools': 7.6.17 unplugin: 1.10.1 transitivePeerDependencies: - supports-color - '@storybook/csf-tools@7.6.20': + '@storybook/csf-tools@7.6.17': dependencies: - '@babel/generator': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - '@storybook/csf': 0.1.8 - '@storybook/types': 7.6.20 + '@babel/generator': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + '@storybook/csf': 0.1.4 + '@storybook/types': 7.6.17 fs-extra: 11.2.0 - recast: 0.23.9 + recast: 0.23.6 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - '@storybook/csf@0.1.8': + '@storybook/csf@0.1.4': dependencies: type-fest: 2.19.0 '@storybook/docs-mdx@0.1.0': {} - '@storybook/docs-tools@7.6.20': + '@storybook/docs-tools@7.6.17': dependencies: - '@storybook/core-common': 7.6.20 - '@storybook/preview-api': 7.6.20 - '@storybook/types': 7.6.20 + '@storybook/core-common': 7.6.17 + '@storybook/preview-api': 7.6.17 + '@storybook/types': 7.6.17 '@types/doctrine': 0.0.3 assert: 2.1.0 doctrine: 3.0.0 @@ -10943,16 +11372,16 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/manager-api@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/manager-api@7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.8 + '@storybook/channels': 7.6.17 + '@storybook/client-logger': 7.6.17 + '@storybook/core-events': 7.6.17 + '@storybook/csf': 0.1.4 '@storybook/global': 5.0.0 - '@storybook/router': 7.6.20 - '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 + '@storybook/router': 7.6.17 + '@storybook/theming': 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/types': 7.6.17 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 @@ -10963,67 +11392,50 @@ snapshots: - react - react-dom - '@storybook/manager@7.6.20': {} + '@storybook/manager@7.6.17': {} '@storybook/mdx2-csf@1.1.0': {} - '@storybook/node-logger@7.6.20': {} + '@storybook/node-logger@7.6.17': {} - '@storybook/postinstall@7.6.20': {} + '@storybook/postinstall@7.6.17': {} '@storybook/preview-api@7.6.17': dependencies: '@storybook/channels': 7.6.17 '@storybook/client-logger': 7.6.17 '@storybook/core-events': 7.6.17 - '@storybook/csf': 0.1.8 + '@storybook/csf': 0.1.4 '@storybook/global': 5.0.0 '@storybook/types': 7.6.17 '@types/qs': 6.9.15 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 - qs: 6.11.0 - synchronous-promise: 2.0.17 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - - '@storybook/preview-api@7.6.20': - dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.8 - '@storybook/global': 5.0.0 - '@storybook/types': 7.6.20 - '@types/qs': 6.9.15 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - qs: 6.11.0 + qs: 6.12.1 synchronous-promise: 2.0.17 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - '@storybook/preview@7.6.20': {} + '@storybook/preview@7.6.17': {} - '@storybook/react-dom-shim@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/react-dom-shim@7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@storybook/react-vite@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.18.0)(typescript@4.9.5)(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1))': + '@storybook/react-vite@7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(rollup@4.16.1)(typescript@4.9.5)(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@4.9.5)(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1)) - '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@storybook/builder-vite': 7.6.20(typescript@4.9.5)(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1)) - '@storybook/react': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@4.9.5) - '@vitejs/plugin-react': 3.1.0(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@4.9.5)(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4)) + '@rollup/pluginutils': 5.1.0(rollup@4.16.1) + '@storybook/builder-vite': 7.6.17(typescript@4.9.5)(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4)) + '@storybook/react': 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@4.9.5) + '@vitejs/plugin-react': 3.1.0(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4)) magic-string: 0.30.10 - react: 18.3.1 + react: 18.2.0 react-docgen: 7.0.3 - react-dom: 18.3.1(react@18.3.1) - vite: 4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1) + react-dom: 18.2.0(react@18.2.0) + vite: 4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -11032,18 +11444,18 @@ snapshots: - typescript - vite-plugin-glimmerx - '@storybook/react@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@4.9.5)': + '@storybook/react@7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@4.9.5)': dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/core-client': 7.6.20 - '@storybook/docs-tools': 7.6.20 + '@storybook/client-logger': 7.6.17 + '@storybook/core-client': 7.6.17 + '@storybook/docs-tools': 7.6.17 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.6.20 - '@storybook/react-dom-shim': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 + '@storybook/preview-api': 7.6.17 + '@storybook/react-dom-shim': 7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/types': 7.6.17 '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 - '@types/node': 18.19.39 + '@types/node': 18.19.31 acorn: 7.4.1 acorn-jsx: 5.3.2(acorn@7.4.1) acorn-walk: 7.2.0 @@ -11051,9 +11463,9 @@ snapshots: html-tags: 3.3.1 lodash: 4.17.21 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-element-to-jsx-string: 15.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) ts-dedent: 2.2.0 type-fest: 2.19.0 util-deprecate: 1.0.2 @@ -11063,17 +11475,17 @@ snapshots: - encoding - supports-color - '@storybook/router@7.6.20': + '@storybook/router@7.6.17': dependencies: - '@storybook/client-logger': 7.6.20 + '@storybook/client-logger': 7.6.17 memoizerific: 1.11.3 - qs: 6.11.0 + qs: 6.12.1 - '@storybook/telemetry@7.6.20': + '@storybook/telemetry@7.6.17': dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/core-common': 7.6.20 - '@storybook/csf-tools': 7.6.20 + '@storybook/client-logger': 7.6.17 + '@storybook/core-common': 7.6.17 + '@storybook/csf-tools': 7.6.17 chalk: 4.1.2 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 @@ -11083,14 +11495,14 @@ snapshots: - encoding - supports-color - '@storybook/theming@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/theming@7.6.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) - '@storybook/client-logger': 7.6.20 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@storybook/client-logger': 7.6.17 '@storybook/global': 5.0.0 memoizerific: 1.11.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) '@storybook/types@7.6.17': dependencies: @@ -11099,61 +11511,59 @@ snapshots: '@types/express': 4.17.21 file-system-cache: 2.3.0 - '@storybook/types@7.6.20': + '@swc/helpers@0.4.14': dependencies: - '@storybook/channels': 7.6.20 - '@types/babel__core': 7.20.5 - '@types/express': 4.17.21 - file-system-cache: 2.3.0 + tslib: 2.6.2 - '@swc/helpers@0.4.14': + '@swc/helpers@0.4.36': dependencies: - tslib: 2.6.3 + legacy-swc-helpers: '@swc/helpers@0.4.14' + tslib: 2.6.2 - '@swc/helpers@0.5.11': + '@swc/helpers@0.5.10': dependencies: - tslib: 2.6.3 + tslib: 2.6.2 - '@tanstack/query-core@5.45.0': {} + '@tanstack/query-core@5.31.0': {} - '@tanstack/react-query@5.45.1(react@18.3.1)': + '@tanstack/react-query@5.31.0(react@18.2.0)': dependencies: - '@tanstack/query-core': 5.45.0 - react: 18.3.1 + '@tanstack/query-core': 5.31.0 + react: 18.2.0 '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.20.5 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 - '@types/babel__traverse@7.20.6': + '@types/babel__traverse@7.20.5': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.0 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.14.8 + '@types/node': 20.12.7 '@types/connect@3.4.38': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.12.7 '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.12.7 '@types/detect-port@1.3.5': {} @@ -11163,7 +11573,7 @@ snapshots: '@types/ejs@3.1.5': {} - '@types/emscripten@1.39.13': {} + '@types/emscripten@1.39.10': {} '@types/escodegen@0.0.6': {} @@ -11181,9 +11591,9 @@ snapshots: '@types/estree@1.0.5': {} - '@types/express-serve-static-core@4.19.5': + '@types/express-serve-static-core@4.19.0': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.12.7 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11191,7 +11601,7 @@ snapshots: '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.5 + '@types/express-serve-static-core': 4.19.0 '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 @@ -11200,11 +11610,11 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.14.8 + '@types/node': 20.12.7 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.12.7 '@types/hoist-non-react-statics@3.3.5': dependencies: @@ -11234,7 +11644,7 @@ snapshots: '@types/json5@0.0.29': {} - '@types/lodash@4.17.5': {} + '@types/lodash@4.17.0': {} '@types/mdx@2.0.13': {} @@ -11250,14 +11660,14 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.31 form-data: 4.0.0 - '@types/node@18.19.39': + '@types/node@18.19.31': dependencies: undici-types: 5.26.5 - '@types/node@20.14.8': + '@types/node@20.12.7': dependencies: undici-types: 5.26.5 @@ -11279,6 +11689,10 @@ snapshots: '@types/range-parser@1.2.7': {} + '@types/react-dom@18.3.0': + dependencies: + '@types/react': 17.0.80 + '@types/react-helmet@6.1.11': dependencies: '@types/react': 17.0.80 @@ -11310,12 +11724,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.14.8 + '@types/node': 20.12.7 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.14.8 + '@types/node': 20.12.7 '@types/send': 0.17.4 '@types/stack-utils@2.0.3': {} @@ -11326,7 +11740,7 @@ snapshots: '@types/react': 17.0.80 csstype: 3.1.3 - '@types/stylis@4.2.5': {} + '@types/stylis@4.2.0': {} '@types/unist@2.0.10': {} @@ -11340,18 +11754,18 @@ snapshots: '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(typescript@4.9.5)': dependencies: - '@eslint-community/regexpp': 4.10.1 + '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@4.9.5) '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@4.9.5) '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@4.9.5) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.5 + debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.2 + semver: 7.6.0 ts-api-utils: 1.3.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 @@ -11364,7 +11778,7 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@4.9.5) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.5 + debug: 4.3.4 eslint: 8.57.0 optionalDependencies: typescript: 4.9.5 @@ -11385,7 +11799,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 6.21.0(typescript@4.9.5) '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@4.9.5) - debug: 4.3.5 + debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@4.9.5) optionalDependencies: @@ -11401,10 +11815,10 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.2 + semver: 7.6.0 tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 @@ -11415,11 +11829,11 @@ snapshots: dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.5 + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.2 + semver: 7.6.0 ts-api-utils: 1.3.0(typescript@4.9.5) optionalDependencies: typescript: 4.9.5 @@ -11436,7 +11850,7 @@ snapshots: '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) eslint: 8.57.0 eslint-scope: 5.1.1 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -11450,7 +11864,7 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@4.9.5) eslint: 8.57.0 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -11467,25 +11881,25 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@3.1.0(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1))': + '@vitejs/plugin-react@3.1.0(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4))': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) magic-string: 0.27.0 - react-refresh: 0.14.2 - vite: 4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1) + react-refresh: 0.14.0 + vite: 4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.1(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1))': + '@vitejs/plugin-react@4.2.1(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4))': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1) + react-refresh: 0.14.0 + vite: 4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4) transitivePeerDependencies: - supports-color @@ -11574,7 +11988,7 @@ snapshots: '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.18.20)': dependencies: esbuild: 0.18.20 - tslib: 2.6.3 + tslib: 2.6.2 '@yarnpkg/fslib@2.10.3': dependencies: @@ -11583,7 +11997,7 @@ snapshots: '@yarnpkg/libzip@2.3.0': dependencies: - '@types/emscripten': 1.39.13 + '@types/emscripten': 1.39.10 tslib: 1.14.1 JSONStream@1.3.5: @@ -11596,23 +12010,23 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.12.0): + acorn-import-assertions@1.9.0(acorn@8.11.3): dependencies: - acorn: 8.12.0 + acorn: 8.11.3 acorn-jsx@5.3.2(acorn@7.4.1): dependencies: acorn: 7.4.1 - acorn-jsx@5.3.2(acorn@8.12.0): + acorn-jsx@5.3.2(acorn@8.11.3): dependencies: - acorn: 8.12.0 + acorn: 8.11.3 acorn-walk@7.2.0: {} acorn@7.4.1: {} - acorn@8.12.0: {} + acorn@8.11.3: {} add-stream@1.0.0: {} @@ -11690,7 +12104,7 @@ snapshots: aria-hidden@1.2.4: dependencies: - tslib: 2.6.3 + tslib: 2.6.2 array-buffer-byte-length@1.0.1: dependencies: @@ -11754,6 +12168,12 @@ snapshots: arrify@2.0.1: {} + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + assert-plus@1.0.0: {} + assert@2.1.0: dependencies: call-bind: 1.0.7 @@ -11764,7 +12184,7 @@ snapshots: ast-types@0.16.1: dependencies: - tslib: 2.6.3 + tslib: 2.6.2 astral-regex@2.0.0: {} @@ -11776,11 +12196,11 @@ snapshots: autoprefixer@10.4.19(postcss@8.4.38): dependencies: - browserslist: 4.23.1 - caniuse-lite: 1.0.30001636 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001612 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 + picocolors: 1.0.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 @@ -11788,27 +12208,31 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axe-core@4.9.1: {} + aws-sign2@0.7.0: {} + + aws4@1.13.0: {} + + axe-core@4.9.0: {} - axios@1.7.2(debug@4.3.5): + axios@1.6.8(debug@4.3.4): dependencies: - follow-redirects: 1.15.6(debug@4.3.5) + follow-redirects: 1.15.6(debug@4.3.4) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - babel-core@7.0.0-bridge.0(@babel/core@7.24.7): + babel-core@7.0.0-bridge.0(@babel/core@7.24.4): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.4 - babel-jest@29.7.0(@babel/core@7.24.7): + babel-jest@29.7.0(@babel/core@7.24.4): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.4 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.24.7) + babel-preset-jest: 29.6.3(@babel/core@7.24.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -11817,7 +12241,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -11827,56 +12251,56 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.20.5 - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.7): + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.4): dependencies: - '@babel/compat-data': 7.24.7 - '@babel/core': 7.24.7 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7): + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.4): dependencies: - '@babel/core': 7.24.7 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) - core-js-compat: 3.37.1 + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) + core-js-compat: 3.37.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.7): + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.4): dependencies: - '@babel/core': 7.24.7 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7) + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) transitivePeerDependencies: - supports-color - babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.7): - dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7) - - babel-preset-jest@29.6.3(@babel/core@7.24.7): - dependencies: - '@babel/core': 7.24.7 + babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.4): + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + + babel-preset-jest@29.6.3(@babel/core@7.24.4): + dependencies: + '@babel/core': 7.24.4 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) backo2@1.0.2: {} @@ -11890,6 +12314,10 @@ snapshots: batch-processor@1.0.0: {} + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + better-assert@1.0.2: dependencies: callsite: 1.0.0 @@ -11942,6 +12370,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -11952,12 +12384,12 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.23.1: + browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001636 - electron-to-chromium: 1.4.810 + caniuse-lite: 1.0.30001612 + electron-to-chromium: 1.4.745 node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.1) + update-browserslist-db: 1.0.13(browserslist@4.23.0) bs-logger@0.2.6: dependencies: @@ -11976,7 +12408,7 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bundle-require@4.2.1(esbuild@0.19.12): + bundle-require@4.0.3(esbuild@0.19.12): dependencies: esbuild: 0.19.12 load-tsconfig: 0.2.5 @@ -12011,7 +12443,9 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001636: {} + caniuse-lite@1.0.30001612: {} + + caseless@0.12.0: {} chalk@2.4.2: dependencies: @@ -12031,7 +12465,7 @@ snapshots: chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.3 + braces: 3.0.2 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -12044,7 +12478,7 @@ snapshots: chownr@2.0.0: {} - chrome-trace-event@1.0.4: {} + chrome-trace-event@1.0.3: {} ci-info@3.9.0: {} @@ -12052,7 +12486,7 @@ snapshots: dependencies: consola: 3.2.3 - cjs-module-lexer@1.3.1: {} + cjs-module-lexer@1.2.3: {} clean-stack@2.2.0: {} @@ -12066,7 +12500,7 @@ snapshots: cli-spinners@2.9.2: {} - cli-table3@0.6.5: + cli-table3@0.6.4: dependencies: string-width: 4.2.3 optionalDependencies: @@ -12101,7 +12535,7 @@ snapshots: clsx@1.2.1: {} - clsx@2.1.1: {} + clsx@2.1.0: {} co@4.6.0: {} @@ -12123,6 +12557,11 @@ snapshots: colorette@2.0.20: {} + colorthief@2.4.0: + dependencies: + '@lokesh.dhakar/quantize': 1.3.0 + get-pixels: 3.3.3 + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -12323,9 +12762,11 @@ snapshots: dependencies: toggle-selection: 1.0.6 - core-js-compat@3.37.1: + core-js-compat@3.37.0: dependencies: - browserslist: 4.23.1 + browserslist: 4.23.0 + + core-util-is@1.0.2: {} core-util-is@1.0.3: {} @@ -12338,13 +12779,13 @@ snapshots: optionalDependencies: typescript: 4.9.5 - create-jest@29.7.0(@types/node@20.14.8): + create-jest@29.7.0(@types/node@20.12.7): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.14.8) + jest-config: 29.7.0(@types/node@20.12.7) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -12367,7 +12808,7 @@ snapshots: css-in-js-utils@3.1.0: dependencies: - hyphenate-style-name: 1.1.0 + hyphenate-style-name: 1.0.4 css-to-react-native@3.2.0: dependencies: @@ -12392,10 +12833,22 @@ snapshots: cssesc@3.0.0: {} + csstype@3.1.2: {} + csstype@3.1.3: {} + cwise-compiler@1.1.3: + dependencies: + uniq: 1.0.1 + dargs@7.0.0: {} + dashdash@1.14.1: + dependencies: + assert-plus: 1.0.0 + + data-uri-to-buffer@0.0.3: {} + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 @@ -12505,10 +12958,10 @@ snapshots: dependencies: execa: 5.1.1 - detect-port@1.6.1: + detect-port@1.5.1: dependencies: address: 1.2.2 - debug: 4.3.5 + debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -12528,8 +12981,8 @@ snapshots: doiuse@6.0.2: dependencies: - browserslist: 4.23.1 - caniuse-lite: 1.0.30001636 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001612 css-tokenize: 1.0.1 duplexify: 4.1.3 ldjson-stream: 1.2.1 @@ -12567,13 +13020,18 @@ snapshots: eastasianwidth@0.2.0: {} + ecc-jsbn@0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + ee-first@1.1.1: {} ejs@3.1.10: dependencies: - jake: 10.9.1 + jake: 10.8.7 - electron-to-chromium@1.4.810: {} + electron-to-chromium@1.4.745: {} element-resize-detector@1.2.4: dependencies: @@ -12619,14 +13077,14 @@ snapshots: blob: 0.0.5 has-binary2: 1.0.3 - enhanced-resolve@5.17.0: + enhanced-resolve@5.16.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 env-paths@2.2.1: {} - envinfo@7.13.0: {} + envinfo@7.12.0: {} errno@0.1.8: dependencies: @@ -12658,7 +13116,7 @@ snapshots: function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.4 + globalthis: 1.0.3 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 @@ -12698,7 +13156,7 @@ snapshots: es-module-lexer@0.9.3: {} - es-module-lexer@1.5.3: {} + es-module-lexer@1.5.0: {} es-object-atoms@1.0.0: dependencies: @@ -12728,7 +13186,7 @@ snapshots: esbuild-register@3.5.0(esbuild@0.18.20): dependencies: - debug: 4.3.5 + debug: 4.3.4 esbuild: 0.18.20 transitivePeerDependencies: - supports-color @@ -12816,13 +13274,13 @@ snapshots: eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: - debug: 4.3.5 - enhanced-resolve: 5.17.0 + debug: 4.3.4 + enhanced-resolve: 5.16.0 eslint: 8.57.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) fast-glob: 3.3.2 - get-tsconfig: 4.7.5 + get-tsconfig: 4.7.3 is-core-module: 2.13.1 is-glob: 4.0.3 transitivePeerDependencies: @@ -12869,13 +13327,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(jest@29.7.0(@types/node@20.14.8))(typescript@4.9.5): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(jest@29.7.0(@types/node@20.12.7))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@4.9.5) eslint: 8.57.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@4.9.5))(eslint@8.57.0)(typescript@4.9.5) - jest: 29.7.0(@types/node@20.14.8) + jest: 29.7.0(@types/node@20.12.7) transitivePeerDependencies: - supports-color - typescript @@ -12895,7 +13353,7 @@ snapshots: eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.1 + '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 @@ -12905,7 +13363,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -12929,7 +13387,7 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.4 + optionator: 0.9.3 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: @@ -12937,8 +13395,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -13049,8 +13507,6 @@ snapshots: extend@3.0.2: {} - extract-colors@4.0.6: {} - extract-zip@1.7.0: dependencies: concat-stream: 1.6.2 @@ -13060,6 +13516,8 @@ snapshots: transitivePeerDependencies: - supports-color + extsprintf@1.3.0: {} + fast-deep-equal@3.1.3: {} fast-glob@3.3.2: @@ -13068,7 +13526,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.5 fast-json-stable-stringify@2.1.0: {} @@ -13108,11 +13566,11 @@ snapshots: dependencies: flat-cache: 5.0.0 - file-loader@6.2.0(webpack@5.92.1(esbuild@0.19.12)): + file-loader@6.2.0(webpack@5.91.0(esbuild@0.19.12)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.92.1(esbuild@0.19.12) + webpack: 5.91.0(esbuild@0.19.12) file-system-cache@2.3.0: dependencies: @@ -13125,6 +13583,10 @@ snapshots: filesize@9.0.11: {} + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -13184,21 +13646,29 @@ snapshots: flatted@3.3.1: {} - flow-parser@0.238.0: {} + flow-parser@0.234.0: {} - follow-redirects@1.15.6(debug@4.3.5): + follow-redirects@1.15.6(debug@4.3.4): optionalDependencies: - debug: 4.3.5 + debug: 4.3.4 for-each@0.3.3: dependencies: is-callable: 1.2.7 - foreground-child@3.2.1: + foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 + forever-agent@0.6.1: {} + + form-data@2.3.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + form-data@4.0.0: dependencies: asynckit: 0.4.0 @@ -13209,13 +13679,13 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@11.2.11(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.1.7(@emotion/is-prop-valid@1.2.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - tslib: 2.6.3 + tslib: 2.6.2 optionalDependencies: - '@emotion/is-prop-valid': 1.2.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@emotion/is-prop-valid': 1.2.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) fresh@0.5.2: {} @@ -13271,6 +13741,20 @@ snapshots: get-package-type@0.1.0: {} + get-pixels@3.3.3: + dependencies: + data-uri-to-buffer: 0.0.3 + jpeg-js: 0.4.4 + mime-types: 2.1.35 + ndarray: 1.0.19 + ndarray-pack: 1.2.1 + node-bitmap: 0.0.1 + omggif: 1.0.10 + parse-data-uri: 0.2.0 + pngjs: 3.4.0 + request: 2.88.2 + through: 2.3.8 + get-pkg-repo@4.2.1: dependencies: '@hutson/parse-repository-url': 3.0.2 @@ -13290,10 +13774,14 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.7.5: + get-tsconfig@4.7.3: dependencies: resolve-pkg-maps: 1.0.0 + getpass@0.1.7: + dependencies: + assert-plus: 1.0.0 + giget@1.2.3: dependencies: citty: 0.1.6 @@ -13344,14 +13832,13 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.4.2: + glob@10.3.12: dependencies: - foreground-child: 3.2.1 - jackspeak: 3.4.0 + foreground-child: 3.1.1 + jackspeak: 2.3.6 minimatch: 9.0.4 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 1.11.1 + minipass: 7.0.4 + path-scurry: 1.10.2 glob@7.2.3: dependencies: @@ -13378,10 +13865,9 @@ snapshots: dependencies: type-fest: 0.20.2 - globalthis@1.0.4: + globalthis@1.0.3: dependencies: define-properties: 1.2.1 - gopd: 1.0.1 globby@11.1.0: dependencies: @@ -13420,7 +13906,14 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.18.0 + uglify-js: 3.17.4 + + har-schema@2.0.0: {} + + har-validator@5.1.5: + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 hard-rejection@2.1.0: {} @@ -13457,7 +13950,7 @@ snapshots: glob: 7.2.3 readable-stream: 3.6.2 - hls.js@1.5.11: {} + hls.js@1.5.8: {} hoist-non-react-statics@3.3.2: dependencies: @@ -13481,10 +13974,16 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + http-signature@1.2.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.18.0 + https-proxy-agent@4.0.0: dependencies: agent-base: 5.1.1 - debug: 4.3.5 + debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -13500,7 +13999,7 @@ snapshots: husky@8.0.3: {} - hyphenate-style-name@1.1.0: {} + hyphenate-style-name@1.0.4: {} iconv-lite@0.4.24: dependencies: @@ -13522,7 +14021,7 @@ snapshots: image-size@0.5.5: optional: true - immutable@4.3.6: {} + immutable@4.3.5: {} import-fresh@3.3.0: dependencies: @@ -13560,17 +14059,21 @@ snapshots: hasown: 2.0.2 side-channel: 1.0.6 - intl-messageformat@10.5.14: + intl-messageformat@10.5.11: dependencies: - '@formatjs/ecma402-abstract': 2.0.0 + '@formatjs/ecma402-abstract': 1.18.2 '@formatjs/fast-memoize': 2.2.0 - '@formatjs/icu-messageformat-parser': 2.7.8 - tslib: 2.6.3 + '@formatjs/icu-messageformat-parser': 2.7.6 + tslib: 2.6.2 invariant@2.2.4: dependencies: loose-envify: 1.4.0 + iota-array@1.0.0: {} + + ip@2.0.1: {} + ipaddr.js@1.9.1: {} is-absolute-url@3.0.3: {} @@ -13600,6 +14103,8 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-buffer@1.1.6: {} + is-callable@1.2.7: {} is-core-module@2.13.1: @@ -13694,6 +14199,8 @@ snapshots: dependencies: which-typed-array: 1.1.15 + is-typedarray@1.0.0: {} + is-unicode-supported@0.1.0: {} is-weakref@1.0.2: @@ -13718,12 +14225,16 @@ snapshots: isobject@3.0.1: {} + isomorphic.js@0.2.5: {} + + isstream@0.1.2: {} + istanbul-lib-coverage@3.2.2: {} istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -13732,11 +14243,11 @@ snapshots: istanbul-lib-instrument@6.0.2: dependencies: - '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - supports-color @@ -13748,7 +14259,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.5 + debug: 4.3.4 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -13759,13 +14270,13 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jackspeak@3.4.0: + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.9.1: + jake@10.8.7: dependencies: async: 3.2.5 chalk: 4.1.2 @@ -13784,7 +14295,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -13804,16 +14315,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.14.8): + jest-cli@29.7.0(@types/node@20.12.7): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.14.8) + create-jest: 29.7.0(@types/node@20.12.7) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.14.8) + jest-config: 29.7.0(@types/node@20.12.7) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -13823,12 +14334,12 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.14.8): + jest-config@29.7.0(@types/node@20.12.7): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.7) + babel-jest: 29.7.0(@babel/core@7.24.4) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -13842,13 +14353,13 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.7 + micromatch: 4.0.5 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.14.8 + '@types/node': 20.12.7 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -13877,7 +14388,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -13887,14 +14398,14 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.14.8 + '@types/node': 20.12.7 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 29.6.3 jest-util: 29.7.0 jest-worker: 29.7.0 - micromatch: 4.0.7 + micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 @@ -13913,12 +14424,12 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.24.2 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.7 + micromatch: 4.0.5 pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 @@ -13926,7 +14437,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -13961,7 +14472,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -13989,9 +14500,9 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 chalk: 4.1.2 - cjs-module-lexer: 1.3.1 + cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -14009,15 +14520,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/types': 7.24.0 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -14028,14 +14539,14 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - supports-color jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -14054,7 +14565,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.12.7 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -14063,23 +14574,23 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.14.8 + '@types/node': 20.12.7 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 20.14.8 + '@types/node': 20.12.7 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.14.8): + jest@29.7.0(@types/node@20.12.7): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.14.8) + jest-cli: 29.7.0(@types/node@20.12.7) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -14088,6 +14599,8 @@ snapshots: joycon@3.1.1: {} + jpeg-js@0.4.4: {} + js-base64@3.7.7: {} js-cookie@2.2.1: {} @@ -14105,30 +14618,32 @@ snapshots: dependencies: argparse: 2.0.1 - jscodeshift@0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)): - dependencies: - '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7) - '@babel/preset-flow': 7.24.7(@babel/core@7.24.7) - '@babel/preset-typescript': 7.24.7(@babel/core@7.24.7) - '@babel/register': 7.24.6(@babel/core@7.24.7) - babel-core: 7.0.0-bridge.0(@babel/core@7.24.7) + jsbn@0.1.1: {} + + jscodeshift@0.15.2(@babel/preset-env@7.24.4(@babel/core@7.24.4)): + dependencies: + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4) + '@babel/preset-flow': 7.24.1(@babel/core@7.24.4) + '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/register': 7.23.7(@babel/core@7.24.4) + babel-core: 7.0.0-bridge.0(@babel/core@7.24.4) chalk: 4.1.2 - flow-parser: 0.238.0 + flow-parser: 0.234.0 graceful-fs: 4.2.11 - micromatch: 4.0.7 + micromatch: 4.0.5 neo-async: 2.6.2 node-dir: 0.1.17 - recast: 0.23.9 + recast: 0.23.6 temp: 0.8.4 write-file-atomic: 2.4.3 optionalDependencies: - '@babel/preset-env': 7.24.7(@babel/core@7.24.7) + '@babel/preset-env': 7.24.4(@babel/core@7.24.4) transitivePeerDependencies: - supports-color @@ -14146,6 +14661,8 @@ snapshots: json-schema-traverse@1.0.0: {} + json-schema@0.4.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} json-stringify-safe@5.0.1: {} @@ -14164,6 +14681,13 @@ snapshots: jsonparse@1.3.1: {} + jsprim@1.4.2: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -14172,7 +14696,7 @@ snapshots: kleur@3.0.3: {} - known-css-properties@0.31.0: {} + known-css-properties@0.34.0: {} lazy-universal-dotenv@4.0.0: dependencies: @@ -14189,7 +14713,7 @@ snapshots: dependencies: copy-anything: 2.0.6 parse-node-version: 1.0.1 - tslib: 2.6.3 + tslib: 2.6.2 optionalDependencies: errno: 0.1.8 graceful-fs: 4.2.11 @@ -14208,9 +14732,15 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lexical@0.16.1: {} + + lib0@0.2.94: + dependencies: + isomorphic.js: 0.2.5 + lilconfig@2.1.0: {} - lilconfig@3.1.2: {} + lilconfig@3.1.1: {} line-height@0.3.1: dependencies: @@ -14218,10 +14748,10 @@ snapshots: lines-and-columns@1.2.4: {} - linkify-react@4.1.3(linkifyjs@4.1.3)(react@18.3.1): + linkify-react@4.1.3(linkifyjs@4.1.3)(react@18.2.0): dependencies: linkifyjs: 4.1.3 - react: 18.3.1 + react: 18.2.0 linkifyjs@4.1.3: {} @@ -14247,7 +14777,7 @@ snapshots: colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 5.0.1 - rfdc: 1.4.1 + rfdc: 1.3.1 wrap-ansi: 8.1.0 load-json-file@4.0.0: @@ -14318,7 +14848,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - lru-cache@10.2.2: {} + lru-cache@10.2.0: {} lru-cache@5.1.1: dependencies: @@ -14351,7 +14881,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.2 + semver: 7.6.0 make-error@1.3.6: {} @@ -14365,9 +14895,9 @@ snapshots: map-or-similar@1.5.0: {} - markdown-to-jsx@7.4.7(react@18.3.1): + markdown-to-jsx@7.4.7(react@18.2.0): dependencies: - react: 18.3.1 + react: 18.2.0 mathml-tag-names@2.1.3: {} @@ -14415,7 +14945,7 @@ snapshots: micromatch@4.0.5: dependencies: - braces: 3.0.3 + braces: 3.0.2 picomatch: 2.3.1 micromatch@4.0.7: @@ -14473,7 +15003,7 @@ snapshots: minipass@5.0.0: {} - minipass@7.1.2: {} + minipass@7.0.4: {} minizlib@2.1.2: dependencies: @@ -14497,7 +15027,7 @@ snapshots: mqtt-packet@6.10.0: dependencies: bl: 4.1.0 - debug: 4.3.5 + debug: 4.3.4 process-nextick-args: 2.0.1 transitivePeerDependencies: - supports-color @@ -14506,7 +15036,7 @@ snapshots: dependencies: commist: 1.1.0 concat-stream: 2.0.0 - debug: 4.3.5 + debug: 4.3.4 duplexify: 4.1.3 help-me: 3.0.0 inherits: 2.0.4 @@ -14517,9 +15047,9 @@ snapshots: pump: 3.0.0 readable-stream: 3.6.2 reinterval: 1.1.0 - rfdc: 1.4.1 + rfdc: 1.3.1 split2: 3.2.2 - ws: 7.5.10 + ws: 7.5.9 xtend: 4.0.2 transitivePeerDependencies: - bufferutil @@ -14546,33 +15076,45 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nano-css@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + nano-css@5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@jridgewell/sourcemap-codec': 1.4.15 css-tree: 1.1.3 csstype: 3.1.3 fastest-stable-stringify: 2.0.2 inline-style-prefixer: 7.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 - stylis: 4.3.2 + stylis: 4.3.1 nanoid@3.3.7: {} natural-compare@1.4.0: {} + ndarray-pack@1.2.1: + dependencies: + cwise-compiler: 1.1.3 + ndarray: 1.0.19 + + ndarray@1.0.19: + dependencies: + iota-array: 1.0.0 + is-buffer: 1.1.6 + needle@3.3.1: dependencies: iconv-lite: 0.6.3 - sax: 1.4.1 + sax: 1.3.0 optional: true negotiator@0.6.3: {} neo-async@2.6.2: {} + node-bitmap@0.0.1: {} + node-dir@0.1.17: dependencies: minimatch: 3.1.2 @@ -14598,7 +15140,7 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} @@ -14615,7 +15157,7 @@ snapshots: number-allocator@1.0.14: dependencies: - debug: 4.3.5 + debug: 4.3.4 js-sdsl: 4.3.0 transitivePeerDependencies: - supports-color @@ -14628,6 +15170,8 @@ snapshots: pathe: 1.1.2 ufo: 1.5.3 + oauth-sign@0.9.0: {} + object-assign@4.1.1: {} object-component@0.0.3: {} @@ -14671,6 +15215,8 @@ snapshots: ohash@1.1.3: {} + omggif@1.0.10: {} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -14695,14 +15241,14 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - optionator@0.9.4: + optionator@0.9.3: dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.5 ora@5.4.1: dependencies: @@ -14752,14 +15298,16 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.0: {} - pako@0.2.9: {} parent-module@1.0.1: dependencies: callsites: 3.1.0 + parse-data-uri@0.2.0: + dependencies: + data-uri-to-buffer: 0.0.3 + parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -14767,7 +15315,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -14796,10 +15344,10 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.11.1: + path-scurry@1.10.2: dependencies: - lru-cache: 10.2.2 - minipass: 7.1.2 + lru-cache: 10.2.0 + minipass: 7.0.4 path-to-regexp@0.1.7: {} @@ -14819,6 +15367,10 @@ snapshots: pend@1.2.0: {} + performance-now@2.1.0: {} + + picocolors@1.0.0: {} + picocolors@1.0.1: {} picomatch@2.3.1: {} @@ -14845,9 +15397,11 @@ snapshots: dependencies: find-up: 5.0.0 + pngjs@3.4.0: {} + polished@4.3.1: dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.24.4 possible-typed-array-names@1.0.0: {} @@ -14860,8 +15414,8 @@ snapshots: postcss-load-config@4.0.2(postcss@8.4.38): dependencies: - lilconfig: 3.1.2 - yaml: 2.4.5 + lilconfig: 3.1.1 + yaml: 2.4.1 optionalDependencies: postcss: 8.4.38 @@ -14873,28 +15427,45 @@ snapshots: dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 - postcss-selector-parser: 6.1.0 + postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 postcss-modules-scope@3.2.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.0 + postcss-selector-parser: 6.0.16 postcss-resolve-nested-selector@0.1.1: {} - postcss-safe-parser@7.0.0(postcss@8.4.38): + postcss-safe-parser@7.0.0(postcss@8.4.39): dependencies: - postcss: 8.4.38 + postcss: 8.4.39 + + postcss-selector-parser@6.0.16: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 - postcss-selector-parser@6.1.0: + postcss-selector-parser@6.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} + postcss@8.4.31: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 + postcss@8.4.38: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 + + postcss@8.4.39: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 @@ -14910,10 +15481,12 @@ snapshots: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 18.1.0 + react-is: 18.2.0 pretty-hrtime@1.0.3: {} + prismjs@1.29.0: {} + process-nextick-args@2.0.1: {} process@0.11.10: {} @@ -14941,6 +15514,8 @@ snapshots: prr@1.0.1: optional: true + psl@1.9.0: {} + pump@2.0.1: dependencies: end-of-stream: 1.4.4 @@ -14962,7 +15537,7 @@ snapshots: puppeteer-core@2.1.1: dependencies: '@types/mime-types': 2.1.4 - debug: 4.3.5 + debug: 4.3.4 extract-zip: 1.7.0 https-proxy-agent: 4.0.0 mime: 2.6.0 @@ -14970,7 +15545,7 @@ snapshots: progress: 2.0.3 proxy-from-env: 1.1.0 rimraf: 2.7.1 - ws: 6.2.3 + ws: 6.2.2 transitivePeerDependencies: - bufferutil - supports-color @@ -14984,6 +15559,12 @@ snapshots: dependencies: side-channel: 1.0.6 + qs@6.12.1: + dependencies: + side-channel: 1.0.6 + + qs@6.5.3: {} + queue-microtask@1.2.3: {} quick-lru@4.0.1: {} @@ -15003,80 +15584,80 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - react-aria-components@1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-aria-components@1.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@internationalized/date': 3.5.4 '@internationalized/string': 3.2.3 - '@react-aria/color': 3.0.0-beta.33(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/menu': 3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/toolbar': 3.0.0-beta.5(react@18.3.1) - '@react-aria/tree': 3.0.0-alpha.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-stately/color': 3.6.1(react@18.3.1) - '@react-stately/menu': 3.7.1(react@18.3.1) - '@react-stately/table': 3.11.8(react@18.3.1) - '@react-stately/utils': 3.10.1(react@18.3.1) - '@react-types/color': 3.0.0-beta.25(react@18.3.1) - '@react-types/form': 3.7.4(react@18.3.1) - '@react-types/grid': 3.2.6(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - '@react-types/table': 3.9.5(react@18.3.1) - '@swc/helpers': 0.5.11 + '@react-aria/color': 3.0.0-beta.33(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/menu': 3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/toolbar': 3.0.0-beta.5(react@18.2.0) + '@react-aria/tree': 3.0.0-alpha.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-stately/color': 3.6.1(react@18.2.0) + '@react-stately/menu': 3.7.1(react@18.2.0) + '@react-stately/table': 3.11.8(react@18.2.0) + '@react-stately/utils': 3.10.1(react@18.2.0) + '@react-types/color': 3.0.0-beta.25(react@18.2.0) + '@react-types/form': 3.7.4(react@18.2.0) + '@react-types/grid': 3.2.6(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + '@react-types/table': 3.9.5(react@18.2.0) + '@swc/helpers': 0.5.10 client-only: 0.0.1 - react: 18.3.1 - react-aria: 3.33.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) - react-stately: 3.31.1(react@18.3.1) - use-sync-external-store: 1.2.2(react@18.3.1) + react: 18.2.0 + react-aria: 3.33.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + react-stately: 3.31.1(react@18.2.0) + use-sync-external-store: 1.2.2(react@18.2.0) - react-aria@3.33.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-aria@3.33.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@internationalized/string': 3.2.3 - '@react-aria/breadcrumbs': 3.5.13(react@18.3.1) - '@react-aria/button': 3.9.5(react@18.3.1) - '@react-aria/calendar': 3.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/checkbox': 3.14.3(react@18.3.1) - '@react-aria/combobox': 3.9.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/datepicker': 3.10.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/dialog': 3.5.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/dnd': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/focus': 3.17.1(react@18.3.1) - '@react-aria/gridlist': 3.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/i18n': 3.11.1(react@18.3.1) - '@react-aria/interactions': 3.21.3(react@18.3.1) - '@react-aria/label': 3.7.8(react@18.3.1) - '@react-aria/link': 3.7.1(react@18.3.1) - '@react-aria/listbox': 3.12.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/menu': 3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/meter': 3.4.13(react@18.3.1) - '@react-aria/numberfield': 3.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/overlays': 3.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/progress': 3.4.13(react@18.3.1) - '@react-aria/radio': 3.10.4(react@18.3.1) - '@react-aria/searchfield': 3.7.5(react@18.3.1) - '@react-aria/select': 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/separator': 3.3.13(react@18.3.1) - '@react-aria/slider': 3.7.8(react@18.3.1) - '@react-aria/ssr': 3.9.4(react@18.3.1) - '@react-aria/switch': 3.6.4(react@18.3.1) - '@react-aria/table': 3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/tabs': 3.9.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/tag': 3.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/textfield': 3.14.5(react@18.3.1) - '@react-aria/tooltip': 3.7.4(react@18.3.1) - '@react-aria/utils': 3.24.1(react@18.3.1) - '@react-aria/visually-hidden': 3.8.12(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react-colorful@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@react-aria/breadcrumbs': 3.5.13(react@18.2.0) + '@react-aria/button': 3.9.5(react@18.2.0) + '@react-aria/calendar': 3.5.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/checkbox': 3.14.3(react@18.2.0) + '@react-aria/combobox': 3.9.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/datepicker': 3.10.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/dialog': 3.5.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/dnd': 3.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/focus': 3.17.1(react@18.2.0) + '@react-aria/gridlist': 3.8.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/i18n': 3.11.1(react@18.2.0) + '@react-aria/interactions': 3.21.3(react@18.2.0) + '@react-aria/label': 3.7.8(react@18.2.0) + '@react-aria/link': 3.7.1(react@18.2.0) + '@react-aria/listbox': 3.12.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/menu': 3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/meter': 3.4.13(react@18.2.0) + '@react-aria/numberfield': 3.11.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/overlays': 3.22.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/progress': 3.4.13(react@18.2.0) + '@react-aria/radio': 3.10.4(react@18.2.0) + '@react-aria/searchfield': 3.7.5(react@18.2.0) + '@react-aria/select': 3.14.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/selection': 3.18.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/separator': 3.3.13(react@18.2.0) + '@react-aria/slider': 3.7.8(react@18.2.0) + '@react-aria/ssr': 3.9.4(react@18.2.0) + '@react-aria/switch': 3.6.4(react@18.2.0) + '@react-aria/table': 3.14.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/tabs': 3.9.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/tag': 3.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-aria/textfield': 3.14.5(react@18.2.0) + '@react-aria/tooltip': 3.7.4(react@18.2.0) + '@react-aria/utils': 3.24.1(react@18.2.0) + '@react-aria/visually-hidden': 3.8.12(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + react-colorful@5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) react-docgen-typescript@2.2.2(typescript@4.9.5): dependencies: @@ -15084,11 +15665,11 @@ snapshots: react-docgen@7.0.3: dependencies: - '@babel/core': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/core': 7.24.4 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.20.5 '@types/doctrine': 0.0.9 '@types/resolve': 1.20.6 doctrine: 3.0.0 @@ -15097,46 +15678,51 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@18.3.1(react@18.3.1): + react-dom@18.2.0(react@18.2.0): dependencies: loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + react: 18.2.0 + scheduler: 0.23.0 - react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-element-to-jsx-string@15.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@base2/pretty-print-object': 1.0.1 is-plain-object: 5.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) react-is: 18.1.0 - react-hook-form@7.52.0(react@18.3.1): + react-error-boundary@3.1.4(react@18.2.0): + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + + react-hook-form@7.51.3(react@18.2.0): dependencies: - react: 18.3.1 + react: 18.2.0 - react-infinite-scroll-component@6.1.0(react@18.3.1): + react-infinite-scroll-component@6.1.0(react@18.2.0): dependencies: - react: 18.3.1 + react: 18.2.0 throttle-debounce: 2.3.0 - react-insta-stories@2.7.0(react@18.3.1): + react-insta-stories@2.6.2(react@18.2.0): dependencies: - react: 18.3.1 + react: 18.2.0 - react-intl@6.6.8(react@18.3.1)(typescript@4.9.5): + react-intl@6.6.5(react@18.2.0)(typescript@4.9.5): dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/icu-messageformat-parser': 2.7.8 - '@formatjs/intl': 2.10.4(typescript@4.9.5) - '@formatjs/intl-displaynames': 6.6.8 - '@formatjs/intl-listformat': 7.5.7 + '@formatjs/ecma402-abstract': 1.18.2 + '@formatjs/icu-messageformat-parser': 2.7.6 + '@formatjs/intl': 2.10.1(typescript@4.9.5) + '@formatjs/intl-displaynames': 6.6.6 + '@formatjs/intl-listformat': 7.5.5 '@types/hoist-non-react-statics': 3.3.5 '@types/react': 17.0.80 hoist-non-react-statics: 3.3.2 - intl-messageformat: 10.5.14 - react: 18.3.1 - tslib: 2.6.3 + intl-messageformat: 10.5.11 + react: 18.2.0 + tslib: 2.6.2 optionalDependencies: typescript: 4.9.5 @@ -15144,70 +15730,72 @@ snapshots: react-is@18.1.0: {} - react-loading-skeleton@3.4.0(react@18.3.1): + react-is@18.2.0: {} + + react-loading-skeleton@3.4.0(react@18.2.0): dependencies: - react: 18.3.1 + react: 18.2.0 - react-mentions@4.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-mentions@4.4.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.4.5 invariant: 2.2.4 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - substyle: 9.4.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + substyle: 9.4.1(react@18.2.0) - react-modal-sheet@2.2.1(framer-motion@11.2.11(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + react-modal-sheet@2.2.0(framer-motion@11.1.7(@emotion/is-prop-valid@1.2.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0): dependencies: - '@react-aria/utils': 3.17.0(react@18.3.1) - framer-motion: 11.2.11(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 + '@react-aria/utils': 3.17.0(react@18.2.0) + framer-motion: 11.1.7(@emotion/is-prop-valid@1.2.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 react-native-uuid@2.0.2: {} - react-refresh@0.14.2: {} + react-refresh@0.14.0: {} - react-remove-scroll-bar@2.3.6(@types/react@17.0.80)(react@18.3.1): + react-remove-scroll-bar@2.3.6(@types/react@17.0.80)(react@18.2.0): dependencies: - react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@17.0.80)(react@18.3.1) - tslib: 2.6.3 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@17.0.80)(react@18.2.0) + tslib: 2.6.2 optionalDependencies: '@types/react': 17.0.80 - react-remove-scroll@2.5.5(@types/react@17.0.80)(react@18.3.1): + react-remove-scroll@2.5.5(@types/react@17.0.80)(react@18.2.0): dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@17.0.80)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@17.0.80)(react@18.3.1) - tslib: 2.6.3 - use-callback-ref: 1.3.2(@types/react@17.0.80)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@17.0.80)(react@18.3.1) + react: 18.2.0 + react-remove-scroll-bar: 2.3.6(@types/react@17.0.80)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@17.0.80)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.2(@types/react@17.0.80)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@17.0.80)(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 - react-remove-scroll@2.5.7(@types/react@17.0.80)(react@18.3.1): + react-remove-scroll@2.5.7(@types/react@17.0.80)(react@18.2.0): dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@17.0.80)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@17.0.80)(react@18.3.1) - tslib: 2.6.3 - use-callback-ref: 1.3.2(@types/react@17.0.80)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@17.0.80)(react@18.3.1) + react: 18.2.0 + react-remove-scroll-bar: 2.3.6(@types/react@17.0.80)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@17.0.80)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.2(@types/react@17.0.80)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@17.0.80)(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 - react-router-dom@6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-router-dom@6.22.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@remix-run/router': 1.16.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.23.1(react@18.3.1) + '@remix-run/router': 1.15.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.22.3(react@18.2.0) - react-router@6.23.1(react@18.3.1): + react-router@6.22.3(react@18.2.0): dependencies: - '@remix-run/router': 1.16.1 - react: 18.3.1 + '@remix-run/router': 1.15.3 + react: 18.2.0 react-sizeme@3.0.2: dependencies: @@ -15216,74 +15804,74 @@ snapshots: shallowequal: 1.1.0 throttle-debounce: 3.0.1 - react-stately@3.31.1(react@18.3.1): - dependencies: - '@react-stately/calendar': 3.5.1(react@18.3.1) - '@react-stately/checkbox': 3.6.5(react@18.3.1) - '@react-stately/collections': 3.10.7(react@18.3.1) - '@react-stately/combobox': 3.8.4(react@18.3.1) - '@react-stately/data': 3.11.4(react@18.3.1) - '@react-stately/datepicker': 3.9.4(react@18.3.1) - '@react-stately/dnd': 3.3.1(react@18.3.1) - '@react-stately/form': 3.0.3(react@18.3.1) - '@react-stately/list': 3.10.5(react@18.3.1) - '@react-stately/menu': 3.7.1(react@18.3.1) - '@react-stately/numberfield': 3.9.3(react@18.3.1) - '@react-stately/overlays': 3.6.7(react@18.3.1) - '@react-stately/radio': 3.10.4(react@18.3.1) - '@react-stately/searchfield': 3.5.3(react@18.3.1) - '@react-stately/select': 3.6.4(react@18.3.1) - '@react-stately/selection': 3.15.1(react@18.3.1) - '@react-stately/slider': 3.5.4(react@18.3.1) - '@react-stately/table': 3.11.8(react@18.3.1) - '@react-stately/tabs': 3.6.6(react@18.3.1) - '@react-stately/toggle': 3.7.4(react@18.3.1) - '@react-stately/tooltip': 3.4.9(react@18.3.1) - '@react-stately/tree': 3.8.1(react@18.3.1) - '@react-types/shared': 3.23.1(react@18.3.1) - react: 18.3.1 - - react-style-singleton@2.2.1(@types/react@17.0.80)(react@18.3.1): + react-stately@3.31.1(react@18.2.0): + dependencies: + '@react-stately/calendar': 3.5.1(react@18.2.0) + '@react-stately/checkbox': 3.6.5(react@18.2.0) + '@react-stately/collections': 3.10.7(react@18.2.0) + '@react-stately/combobox': 3.8.4(react@18.2.0) + '@react-stately/data': 3.11.4(react@18.2.0) + '@react-stately/datepicker': 3.9.4(react@18.2.0) + '@react-stately/dnd': 3.3.1(react@18.2.0) + '@react-stately/form': 3.0.3(react@18.2.0) + '@react-stately/list': 3.10.5(react@18.2.0) + '@react-stately/menu': 3.7.1(react@18.2.0) + '@react-stately/numberfield': 3.9.3(react@18.2.0) + '@react-stately/overlays': 3.6.7(react@18.2.0) + '@react-stately/radio': 3.10.4(react@18.2.0) + '@react-stately/searchfield': 3.5.3(react@18.2.0) + '@react-stately/select': 3.6.4(react@18.2.0) + '@react-stately/selection': 3.15.1(react@18.2.0) + '@react-stately/slider': 3.5.4(react@18.2.0) + '@react-stately/table': 3.11.8(react@18.2.0) + '@react-stately/tabs': 3.6.6(react@18.2.0) + '@react-stately/toggle': 3.7.4(react@18.2.0) + '@react-stately/tooltip': 3.4.9(react@18.2.0) + '@react-stately/tree': 3.8.1(react@18.2.0) + '@react-types/shared': 3.23.1(react@18.2.0) + react: 18.2.0 + + react-style-singleton@2.2.1(@types/react@17.0.80)(react@18.2.0): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 - react: 18.3.1 - tslib: 2.6.3 + react: 18.2.0 + tslib: 2.6.2 optionalDependencies: '@types/react': 17.0.80 - react-textarea-autosize@8.5.3(@types/react@17.0.80)(react@18.3.1): + react-textarea-autosize@8.5.3(@types/react@17.0.80)(react@18.2.0): dependencies: - '@babel/runtime': 7.24.7 - react: 18.3.1 - use-composed-ref: 1.3.0(react@18.3.1) - use-latest: 1.2.1(@types/react@17.0.80)(react@18.3.1) + '@babel/runtime': 7.24.4 + react: 18.2.0 + use-composed-ref: 1.3.0(react@18.2.0) + use-latest: 1.2.1(@types/react@17.0.80)(react@18.2.0) transitivePeerDependencies: - '@types/react' - react-timeago@7.2.0(react@18.3.1): + react-timeago@7.2.0(react@18.2.0): dependencies: - react: 18.3.1 + react: 18.2.0 - react-tiny-popover@7.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-tiny-popover@7.2.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - react-truncate-markup@5.1.2(react@18.3.1): + react-truncate-markup@5.1.2(react@18.2.0): dependencies: line-height: 0.3.1 memoize-one: 5.2.1 prop-types: 15.8.1 - react: 18.3.1 + react: 18.2.0 resize-observer-polyfill: 1.5.1 - react-universal-interface@0.6.2(react@18.3.1)(tslib@2.6.3): + react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): dependencies: - react: 18.3.1 - tslib: 2.6.3 + react: 18.2.0 + tslib: 2.6.2 - react-use@17.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-use@17.5.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@types/js-cookie': 2.2.7 '@xobotyi/scrollbar-width': 1.9.5 @@ -15291,18 +15879,18 @@ snapshots: fast-deep-equal: 3.1.3 fast-shallow-equal: 1.0.0 js-cookie: 2.2.1 - nano-css: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-universal-interface: 0.6.2(react@18.3.1)(tslib@2.6.3) + nano-css: 5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-universal-interface: 0.6.2(react@18.2.0)(tslib@2.6.2) resize-observer-polyfill: 1.5.1 screenfull: 5.2.0 set-harmonic-interval: 1.0.1 throttle-debounce: 3.0.1 ts-easing: 0.2.0 - tslib: 2.6.3 + tslib: 2.6.2 - react@18.3.1: + react@18.2.0: dependencies: loose-envify: 1.4.0 @@ -15364,13 +15952,13 @@ snapshots: dependencies: picomatch: 2.3.1 - recast@0.23.9: + recast@0.23.6: dependencies: ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.6.3 + tslib: 2.6.2 redent@3.0.0: dependencies: @@ -15389,7 +15977,7 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.24.4 regexp.prototype.flags@1.5.2: dependencies: @@ -15427,6 +16015,29 @@ snapshots: mdast-util-to-string: 1.1.0 unist-util-visit: 2.0.3 + request@2.88.2: + dependencies: + aws-sign2: 0.7.0 + aws4: 1.13.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -15465,7 +16076,7 @@ snapshots: reusify@1.0.4: {} - rfdc@1.4.1: {} + rfdc@1.3.1: {} rimraf@2.6.3: dependencies: @@ -15483,31 +16094,31 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.18.0: + rollup@4.16.1: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 + '@rollup/rollup-android-arm-eabi': 4.16.1 + '@rollup/rollup-android-arm64': 4.16.1 + '@rollup/rollup-darwin-arm64': 4.16.1 + '@rollup/rollup-darwin-x64': 4.16.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.16.1 + '@rollup/rollup-linux-arm-musleabihf': 4.16.1 + '@rollup/rollup-linux-arm64-gnu': 4.16.1 + '@rollup/rollup-linux-arm64-musl': 4.16.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.16.1 + '@rollup/rollup-linux-riscv64-gnu': 4.16.1 + '@rollup/rollup-linux-s390x-gnu': 4.16.1 + '@rollup/rollup-linux-x64-gnu': 4.16.1 + '@rollup/rollup-linux-x64-musl': 4.16.1 + '@rollup/rollup-win32-arm64-msvc': 4.16.1 + '@rollup/rollup-win32-ia32-msvc': 4.16.1 + '@rollup/rollup-win32-x64-msvc': 4.16.1 fsevents: 2.3.3 rtl-css-js@1.16.1: dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.24.4 run-parallel@1.2.0: dependencies: @@ -15532,18 +16143,15 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.77.6: + sass@1.75.0: dependencies: chokidar: 3.6.0 - immutable: 4.3.6 + immutable: 4.3.5 source-map-js: 1.2.0 sax@1.3.0: {} - sax@1.4.1: - optional: true - - scheduler@0.23.2: + scheduler@0.23.0: dependencies: loose-envify: 1.4.0 @@ -15559,7 +16167,9 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} + semver@7.6.0: + dependencies: + lru-cache: 6.0.0 send@0.18.0: dependencies: @@ -15708,16 +16318,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.17 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.17 - spdx-license-ids@3.0.18: {} + spdx-license-ids@3.0.17: {} split2@0.2.1: dependencies: @@ -15733,6 +16343,18 @@ snapshots: sprintf-js@1.0.3: {} + sshpk@1.18.0: + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + stack-generator@2.0.10: dependencies: stackframe: 1.3.4 @@ -15767,7 +16389,7 @@ snapshots: figures: 3.2.0 find-up: 5.0.0 git-semver-tags: 4.1.1 - semver: 7.6.2 + semver: 7.6.0 stringify-package: 1.0.1 yargs: 16.2.0 @@ -15775,9 +16397,9 @@ snapshots: store2@2.14.3: {} - storybook@7.6.20: + storybook@7.6.17: dependencies: - '@storybook/cli': 7.6.20 + '@storybook/cli': 7.6.17 transitivePeerDependencies: - bufferutil - encoding @@ -15862,41 +16484,41 @@ snapshots: strip-json-comments@3.1.1: {} - styled-components@6.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + styled-components@6.1.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@emotion/is-prop-valid': 1.2.2 - '@emotion/unitless': 0.8.1 - '@types/stylis': 4.2.5 + '@emotion/is-prop-valid': 1.2.1 + '@emotion/unitless': 0.8.0 + '@types/stylis': 4.2.0 css-to-react-native: 3.2.0 - csstype: 3.1.3 - postcss: 8.4.38 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + csstype: 3.1.2 + postcss: 8.4.31 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) shallowequal: 1.1.0 - stylis: 4.3.2 - tslib: 2.6.2 + stylis: 4.3.1 + tslib: 2.5.0 - stylelint-config-recommended@14.0.1(stylelint@16.6.1(typescript@4.9.5)): + stylelint-config-recommended@14.0.1(stylelint@16.7.0(typescript@4.9.5)): dependencies: - stylelint: 16.6.1(typescript@4.9.5) + stylelint: 16.7.0(typescript@4.9.5) - stylelint-config-standard@36.0.1(stylelint@16.6.1(typescript@4.9.5)): + stylelint-config-standard@36.0.1(stylelint@16.7.0(typescript@4.9.5)): dependencies: - stylelint: 16.6.1(typescript@4.9.5) - stylelint-config-recommended: 14.0.1(stylelint@16.6.1(typescript@4.9.5)) + stylelint: 16.7.0(typescript@4.9.5) + stylelint-config-recommended: 14.0.1(stylelint@16.7.0(typescript@4.9.5)) - stylelint-no-unsupported-browser-features@8.0.1(stylelint@16.6.1(typescript@4.9.5)): + stylelint-no-unsupported-browser-features@8.0.1(stylelint@16.7.0(typescript@4.9.5)): dependencies: doiuse: 6.0.2 postcss: 8.4.38 - stylelint: 16.6.1(typescript@4.9.5) + stylelint: 16.7.0(typescript@4.9.5) - stylelint@16.6.1(typescript@4.9.5): + stylelint@16.7.0(typescript@4.9.5): dependencies: - '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) - '@csstools/css-tokenizer': 2.3.1 - '@csstools/media-query-list-parser': 2.1.11(@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1))(@csstools/css-tokenizer@2.3.1) - '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.0) + '@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) + '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.1) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 @@ -15914,16 +16536,16 @@ snapshots: ignore: 5.3.1 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.31.0 + known-css-properties: 0.34.0 mathml-tag-names: 2.1.3 meow: 13.2.0 micromatch: 4.0.7 normalize-path: 3.0.0 picocolors: 1.0.1 - postcss: 8.4.38 + postcss: 8.4.39 postcss-resolve-nested-selector: 0.1.1 - postcss-safe-parser: 7.0.0(postcss@8.4.38) - postcss-selector-parser: 6.1.0 + postcss-safe-parser: 7.0.0(postcss@8.4.39) + postcss-selector-parser: 6.1.1 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -15936,29 +16558,29 @@ snapshots: - supports-color - typescript - stylis@4.3.2: {} + stylis@4.3.1: {} stylus@0.62.0: dependencies: '@adobe/css-tools': 4.3.3 - debug: 4.3.5 + debug: 4.3.4 glob: 7.2.3 sax: 1.3.0 source-map: 0.7.4 transitivePeerDependencies: - supports-color - substyle@9.4.1(react@18.3.1): + substyle@9.4.1(react@18.2.0): dependencies: '@babel/runtime': 7.4.5 invariant: 2.2.4 - react: 18.3.1 + react: 18.2.0 sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.4.2 + glob: 10.3.12 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -15985,11 +16607,11 @@ snapshots: svg-tags@1.0.0: {} - svg-url-loader@7.1.1(webpack@5.92.1(esbuild@0.19.12)): + svg-url-loader@7.1.1(webpack@5.91.0(esbuild@0.19.12)): dependencies: - file-loader: 6.2.0(webpack@5.92.1(esbuild@0.19.12)) + file-loader: 6.2.0(webpack@5.91.0(esbuild@0.19.12)) loader-utils: 2.0.4 - webpack: 5.92.1(esbuild@0.19.12) + webpack: 5.91.0(esbuild@0.19.12) synchronous-promise@2.0.17: {} @@ -16045,21 +16667,21 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser-webpack-plugin@5.3.10(esbuild@0.19.12)(webpack@5.92.1(esbuild@0.19.12)): + terser-webpack-plugin@5.3.10(esbuild@0.19.12)(webpack@5.91.0(esbuild@0.19.12)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.1 - webpack: 5.92.1(esbuild@0.19.12) + terser: 5.30.4 + webpack: 5.91.0(esbuild@0.19.12) optionalDependencies: esbuild: 0.19.12 - terser@5.31.1: + terser@5.30.4: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.0 + acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 @@ -16113,12 +16735,17 @@ snapshots: dependencies: is-number: 7.0.0 - tocbot@4.28.2: {} + tocbot@4.27.0: {} toggle-selection@1.0.6: {} toidentifier@1.0.1: {} + tough-cookie@2.5.0: + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + tr46@0.0.3: {} tr46@1.0.1: @@ -16139,26 +16766,25 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.1.5(@babel/core@7.24.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.7))(esbuild@0.19.12)(jest@29.7.0(@types/node@20.14.8))(typescript@4.9.5): + ts-jest@29.1.2(@babel/core@7.24.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.4))(esbuild@0.19.12)(jest@29.7.0(@types/node@20.12.7))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.14.8) + jest: 29.7.0(@types/node@20.12.7) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.6.2 + semver: 7.6.0 typescript: 4.9.5 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.24.7 - '@jest/transform': 29.7.0 + '@babel/core': 7.24.4 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.7) + babel-jest: 29.7.0(@babel/core@7.24.4) esbuild: 0.19.12 - tsconfck@3.1.0(typescript@4.9.5): + tsconfck@3.0.3(typescript@4.9.5): optionalDependencies: typescript: 4.9.5 @@ -16177,23 +16803,23 @@ snapshots: tslib@1.14.1: {} - tslib@2.6.2: {} + tslib@2.5.0: {} - tslib@2.6.3: {} + tslib@2.6.2: {} tsup@7.3.0(postcss@8.4.38)(typescript@4.9.5): dependencies: - bundle-require: 4.2.1(esbuild@0.19.12) + bundle-require: 4.0.3(esbuild@0.19.12) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.3.5 + debug: 4.3.4 esbuild: 0.19.12 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 postcss-load-config: 4.0.2(postcss@8.4.38) resolve-from: 5.0.0 - rollup: 4.18.0 + rollup: 4.16.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 @@ -16209,6 +16835,12 @@ snapshots: tslib: 1.14.1 typescript: 4.9.5 + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + tweetnacl@0.14.5: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -16284,7 +16916,7 @@ snapshots: postcss-modules-local-by-default: 4.0.5(postcss@8.4.38) postcss-modules-scope: 3.2.0(postcss@8.4.38) reserved-words: 0.1.2 - sass: 1.77.6 + sass: 1.75.0 source-map-js: 1.2.0 stylus: 0.62.0 tsconfig-paths: 4.2.0 @@ -16297,7 +16929,7 @@ snapshots: ufo@1.5.3: {} - uglify-js@3.18.0: + uglify-js@3.17.4: optional: true unbox-primitive@1.0.2: @@ -16320,6 +16952,8 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + uniq@1.0.1: {} + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 @@ -16343,64 +16977,64 @@ snapshots: unplugin@1.10.1: dependencies: - acorn: 8.12.0 + acorn: 8.11.3 chokidar: 3.6.0 webpack-sources: 3.2.3 - webpack-virtual-modules: 0.6.2 + webpack-virtual-modules: 0.6.1 untildify@4.0.0: {} - update-browserslist-db@1.0.16(browserslist@4.23.1): + update-browserslist-db@1.0.13(browserslist@4.23.0): dependencies: - browserslist: 4.23.1 + browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.0.0 uri-js@4.4.1: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.2(@types/react@17.0.80)(react@18.3.1): + use-callback-ref@1.3.2(@types/react@17.0.80)(react@18.2.0): dependencies: - react: 18.3.1 - tslib: 2.6.3 + react: 18.2.0 + tslib: 2.6.2 optionalDependencies: '@types/react': 17.0.80 - use-composed-ref@1.3.0(react@18.3.1): + use-composed-ref@1.3.0(react@18.2.0): dependencies: - react: 18.3.1 + react: 18.2.0 - use-isomorphic-layout-effect@1.1.2(@types/react@17.0.80)(react@18.3.1): + use-isomorphic-layout-effect@1.1.2(@types/react@17.0.80)(react@18.2.0): dependencies: - react: 18.3.1 + react: 18.2.0 optionalDependencies: '@types/react': 17.0.80 - use-latest@1.2.1(@types/react@17.0.80)(react@18.3.1): + use-latest@1.2.1(@types/react@17.0.80)(react@18.2.0): dependencies: - react: 18.3.1 - use-isomorphic-layout-effect: 1.1.2(@types/react@17.0.80)(react@18.3.1) + react: 18.2.0 + use-isomorphic-layout-effect: 1.1.2(@types/react@17.0.80)(react@18.2.0) optionalDependencies: '@types/react': 17.0.80 - use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + use-resize-observer@9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@juggle/resize-observer': 3.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - use-sidecar@1.1.2(@types/react@17.0.80)(react@18.3.1): + use-sidecar@1.1.2(@types/react@17.0.80)(react@18.2.0): dependencies: detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.6.3 + react: 18.2.0 + tslib: 2.6.2 optionalDependencies: '@types/react': 17.0.80 - use-sync-external-store@1.2.2(react@18.3.1): + use-sync-external-store@1.2.2(react@18.2.0): dependencies: - react: 18.3.1 + react: 18.2.0 util-deprecate@1.0.2: {} @@ -16414,6 +17048,8 @@ snapshots: utils-merge@1.0.1: {} + uuid@3.4.0: {} + uuid@8.3.2: {} uuid@9.0.1: {} @@ -16431,38 +17067,44 @@ snapshots: vary@1.1.2: {} - vaul@0.9.1(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + vaul@0.9.1(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@radix-ui/react-dialog': 1.1.1(@types/react@17.0.80)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-dialog': 1.1.1(@types/react-dom@18.3.0)(@types/react@17.0.80)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - vite-tsconfig-paths@4.3.2(typescript@4.9.5)(vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1)): + verror@1.10.0: dependencies: - debug: 4.3.5 + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + + vite-tsconfig-paths@4.3.2(typescript@4.9.5)(vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4)): + dependencies: + debug: 4.3.4 globrex: 0.1.2 - tsconfck: 3.1.0(typescript@4.9.5) + tsconfck: 3.0.3(typescript@4.9.5) optionalDependencies: - vite: 4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1) + vite: 4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4) transitivePeerDependencies: - supports-color - typescript - vite@4.5.3(@types/node@20.14.8)(less@4.2.0)(sass@1.77.6)(stylus@0.62.0)(terser@5.31.1): + vite@4.5.3(@types/node@20.12.7)(less@4.2.0)(sass@1.75.0)(stylus@0.62.0)(terser@5.30.4): dependencies: esbuild: 0.18.20 postcss: 8.4.38 rollup: 3.29.4 optionalDependencies: - '@types/node': 20.14.8 + '@types/node': 20.12.7 fsevents: 2.3.3 less: 4.2.0 - sass: 1.77.6 + sass: 1.75.0 stylus: 0.62.0 - terser: 5.31.1 + terser: 5.30.4 walker@1.0.8: dependencies: @@ -16483,21 +17125,21 @@ snapshots: webpack-sources@3.2.3: {} - webpack-virtual-modules@0.6.2: {} + webpack-virtual-modules@0.6.1: {} - webpack@5.92.1(esbuild@0.19.12): + webpack@5.91.0(esbuild@0.19.12): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.0 - acorn-import-attributes: 1.9.5(acorn@8.12.0) - browserslist: 4.23.1 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.0 - es-module-lexer: 1.5.3 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.23.0 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.16.0 + es-module-lexer: 1.5.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -16508,7 +17150,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.92.1(esbuild@0.19.12)) + terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.91.0(esbuild@0.19.12)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -16551,8 +17193,6 @@ snapshots: dependencies: isexe: 2.0.0 - word-wrap@1.2.5: {} - wordwrap@1.0.0: {} wrap-ansi@7.0.0: @@ -16589,13 +17229,13 @@ snapshots: dependencies: async-limiter: 1.0.1 - ws@6.2.3: + ws@6.2.2: dependencies: async-limiter: 1.0.1 - ws@7.5.10: {} + ws@7.5.9: {} - ws@8.17.1: {} + ws@8.16.0: {} xmlhttprequest-ssl@1.6.3: {} @@ -16611,7 +17251,7 @@ snapshots: yaml@2.3.1: {} - yaml@2.4.5: {} + yaml@2.4.1: {} yargs-parser@20.2.9: {} @@ -16644,6 +17284,10 @@ snapshots: yeast@0.1.2: {} + yjs@13.6.18: + dependencies: + lib0: 0.2.94 + yocto-queue@0.1.0: {} - zod@3.23.8: {} + zod@3.23.0: {} diff --git a/src/core/providers/UiKitProvider/index.tsx b/src/core/providers/UiKitProvider/index.tsx index d46058fba..7b050bdfd 100644 --- a/src/core/providers/UiKitProvider/index.tsx +++ b/src/core/providers/UiKitProvider/index.tsx @@ -65,6 +65,7 @@ const UiKitProvider = ({ apiKey, apiRegion, apiEndpoint, + authToken, userId, displayName, customComponents = {}, @@ -162,7 +163,11 @@ const UiKitProvider = ({ - + RGBColor | null; + + getPalette: ( + img: HTMLImageElement | null, + colorCount: number = 10, + quality: number = 10, + ) => RGBColor[] | null; + } +} diff --git a/src/icons/Play.tsx b/src/icons/Play.tsx index bd71bb88b..c2480ff91 100644 --- a/src/icons/Play.tsx +++ b/src/icons/Play.tsx @@ -10,7 +10,10 @@ function Icon(props: React.SVGProps) { viewBox="0 0 25 24" {...props} > - + ); } diff --git a/src/index.ts b/src/index.ts index 1d3bbd08a..52b9c8e54 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -export { default as AmityUiKitProvider } from '~/v4/core/providers/AmityUIKitProvider'; +export { default as AmityUiKitProvider } from '~/core/providers/UiKitProvider'; export { default as AmityUiKitFeed } from '~/social/components/Feed'; export { default as AmityUiKitSocial } from '~/social/pages/Application'; export { default as AmityUiKitChat } from '~/chat/pages/Application'; @@ -18,53 +18,36 @@ export { default as AmityPostEngagementBar } from '~/social/components/Engagemen export { default as AmityExpandableText } from '~/social/components/Comment/CommentText'; export { useSDK as useAmitySDK } from '~/core/hooks/useSDK'; -// v4 -export { default as AmityUIKitManager } from '~/v4/core/AmityUIKitManager'; -export { AmityDraftStoryPage, ViewStoryPage as AmityViewStoryPage } from '~/v4/social/pages'; +export { AmityUIKitManager } from '~/v4/core/AmityUIKitManager'; export { CommentTray as AmityCommentTrayComponent, StoryTab as AmityStoryTabComponent, } from '~/v4/social/components'; -// Chat v4 -export { - AmityLiveChatHeader, - AmityLiveChatMessageList, - AmityLiveChatMessageReceiverView, - AmityLiveChatMessageSenderView, - AmityLiveChatMessageComposeBar, -} from '~/v4/chat/components'; - -export { MessageReactionPreview as AmityLiveChatMessageReactionPreview } from '~/v4/chat/components/MessageReactionPreview'; -export { MessageReactionPicker as AmityLiveChatMessageReactionPicker } from '~/v4/chat/components/MessageReactionPicker'; -export { MessageQuickReaction as AmityLiveChatMessageQuickReaction } from '~/v4/chat/components/MessageQuickReaction'; export { ReactionList as AmityReactionList } from '~/v4/social/components/ReactionList'; -import type { AmityMessageActionType } from '~/v4/chat/components'; import type { ReactionListProps } from '~/v4/social/components/ReactionList'; - -export type { AmityMessageActionType }; export type { ReactionListProps as AmityReactionListProps }; -export { AmityLiveChatPage } from '~/v4/chat/pages'; +export { LiveChat as AmityLiveChatPage } from '~/v4/chat/pages/LiveChat'; // v4 internal use only (Amity Console) -export { StoryPreview as AmityStoryPreview } from './v4/social/internal-components/StoryPreview'; +export { + StoryPreview as AmityStoryPreview, + StoryPreviewThumbnail as AmityStoryPreviewThumbnail, +} from './v4/social/internal-components/StoryPreview'; -// import AmityComment from './components/Comment'; -// import AmityCommentComposeBar from './components/CommentComposeBar'; -// import AmityCommentLikeButton from './components/CommentLikeButton'; -// import AmityCommunity from './components/Community'; -// import AmityCommunityItem from './components/CommunityItem'; -// import AmityEmptyFeed from './components/EmptyFeed'; -// import AmityFiles from './components/Files'; -// import AmityImageGallery from './components/ImageGallery'; -// import AmityImages from './components/Images'; -// import AmityMessage from './components/Message'; -// import AmityMessageComposeBar from './components/MessageComposeBar'; -// import AmityMessageList from './components/MessageList'; -// import AmityPost from './components/Post'; -// import AmityPostCreator from './components/PostCreator'; -// import AmityPostLikeButton from './components/PostLikeButton'; -// import AmityRecentChat from './components/RecentChat'; -// import AmitySideMenu from './components/SideMenu'; +// v4 Social +export { + SocialHomePage as AmitySocialHomePage, + AmityDraftStoryPage, + ViewStoryPage as AmityViewStoryPage, + StoryTargetSelectionPage as AmityStoryTargetSelectionPage, + PostDetailPage as AmityPostDetailPage, + SocialGlobalSearchPage as AmitySocialGlobalSearchPage, + MyCommunitiesSearchPage as AmityMyCommunitiesSearchPage, + SelectPostTargetPage as AmityPostTargetSelectionPage, + PostComposerPage as AmityPostComposerPage, +} from '~/v4/social/pages'; + +export { HomePageTab as AmitySocialHomePageTab } from '~/v4/social/pages/SocialHomePage'; diff --git a/src/mock/useOneComment.ts b/src/mock/useOneComment.ts index 75a1e674f..e1d4b760a 100644 --- a/src/mock/useOneComment.ts +++ b/src/mock/useOneComment.ts @@ -24,12 +24,13 @@ const useOneComment = (): [Amity.Comment | null, boolean] => { }); return () => disposeFn(); } else { - await CommentRepository.createComment({ + const { data: commentCreatedData } = await CommentRepository.createComment({ referenceType: 'post', referenceId: post.postId, data: { text: 'Comment created for story' }, }); setIsLoading(false); + setComment(commentCreatedData); } } run(); diff --git a/src/social/components/CommentList/index.tsx b/src/social/components/CommentList/index.tsx index d84ba07e1..058eacc6d 100644 --- a/src/social/components/CommentList/index.tsx +++ b/src/social/components/CommentList/index.tsx @@ -52,7 +52,7 @@ const InnerCommentList = ({ }, [comments, hasMore, loadMore, isCallAgain]); const loadMoreText = isReplyComment - ? formatMessage({ id: 'collapsible.viewMoreReplies' }, { count: comments.length }) + ? formatMessage({ id: 'collapsible.viewMoreReplies' }) : formatMessage({ id: 'collapsible.viewMoreComments' }); const prependIcon = isReplyComment ? ( diff --git a/src/social/components/SocialSearch/styles.tsx b/src/social/components/SocialSearch/styles.tsx index 4cbadf1a1..78c5c7586 100644 --- a/src/social/components/SocialSearch/styles.tsx +++ b/src/social/components/SocialSearch/styles.tsx @@ -19,7 +19,6 @@ export const SocialSearchContainer = styled.div<{ sticky?: boolean }>` ${({ sticky }) => sticky && css` - z-index: 500; position: sticky; top: 0; box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.1); diff --git a/src/social/components/StoryTab/StoryTab.tsx b/src/social/components/StoryTab/StoryTab.tsx index c928efe51..de1d6a1bc 100644 --- a/src/social/components/StoryTab/StoryTab.tsx +++ b/src/social/components/StoryTab/StoryTab.tsx @@ -1,34 +1,29 @@ import React from 'react'; import { useNavigation } from '~/social/providers/NavigationProvider'; + import { StoryTabCommunityFeed } from '~/v4/social/components/StoryTab/StoryTabCommunity'; import { StoryTabGlobalFeed } from '~/v4/social/components/StoryTab/StoryTabGlobalFeed'; import { useStoryContext } from '~/v4/social/providers/StoryProvider'; -type StoryTabType = 'communityFeed' | 'globalFeed'; - -type StoryTabProps = { - type: T; - communityId?: T extends 'communityFeed' ? string : never; -}; +type StoryTabProps = { type: 'communityFeed'; communityId: string } | { type: 'globalFeed' }; -export const StoryTab = ({ type, communityId }: StoryTabProps) => { +export const StoryTab: React.FC = (props) => { const componentId = 'story_tab_component'; const { onClickStory, goToDraftStoryPage } = useNavigation(); - const { setFile } = useStoryContext(); const renderStoryTab = () => { - switch (type) { + switch (props.type) { case 'communityFeed': return ( { setFile(file); if (file) { goToDraftStoryPage( - communityId || '', + props.communityId, 'community', file.type.includes('image') ? { type: 'image', url: URL.createObjectURL(file) } @@ -37,7 +32,7 @@ export const StoryTab = ({ type, communityId }: StoryTab ); } }} - onStoryClick={() => onClickStory(communityId || '', 'communityFeed')} + onStoryClick={() => onClickStory(props.communityId, 'communityFeed')} /> ); case 'globalFeed': @@ -53,8 +48,6 @@ export const StoryTab = ({ type, communityId }: StoryTab }} /> ); - default: - return null; } }; diff --git a/src/social/components/StoryTab/styles.tsx b/src/social/components/StoryTab/styles.tsx deleted file mode 100644 index a7e0ba276..000000000 --- a/src/social/components/StoryTab/styles.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import styled from 'styled-components'; -import Avatar from '~/core/components/Avatar'; -import { AddIcon, ErrorIcon } from '~/icons'; - -export const ErrorButton = styled(ErrorIcon)` - position: absolute; - bottom: 0; - right: 0; - cursor: pointer; - z-index: 2; -`; - -export const AddStoryButton = styled(AddIcon)` - position: absolute; - bottom: 0; - right: 0; - cursor: pointer; - z-index: 2; -`; - -export const StoryWrapper = styled.div` - width: 3rem; - height: 3rem; - position: relative; - cursor: pointer; -`; - -export const StoryTabContainer = styled.div` - position: relative; - width: 3rem; - display: flex; - gap: 0.13rem; - flex-direction: column; - text-align: center; - padding: 1rem 0.75rem; - align-items: center; -`; - -export const StoryAvatar = styled(Avatar)` - width: 2.5rem; - height: 2.5rem; - position: absolute; - top: 0.25rem; - left: 0.25rem; - z-index: 1; - cursor: pointer; -`; - -export const StoryTitle = styled.div` - ${({ theme }) => theme.typography.caption}; - color: ${({ theme }) => theme.palette.base.main}; - cursor: pointer; -`; - -export const AddButton = styled(AddIcon)` - position: absolute; - bottom: 0; - right: 0; - cursor: pointer; - z-index: 2; -`; diff --git a/src/social/components/StoryViewer/Renderers/AutoPlayContent.tsx b/src/social/components/StoryViewer/Renderers/AutoPlayContent.tsx deleted file mode 100644 index 20d5f6c82..000000000 --- a/src/social/components/StoryViewer/Renderers/AutoPlayContent.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import * as React from 'react'; -import { Renderer, Tester } from 'react-insta-stories/dist/interfaces'; - -export const renderer: Renderer = (props) => { - React.useEffect(() => { - props.action('play'); - }, [props.story]); - const Content = props.story.originalContent; - return ; -}; - -export const tester: Tester = (story) => { - return { - condition: !!story.content, - priority: 2, - }; -}; - -export default { - renderer, - tester, -}; diff --git a/src/social/components/StoryViewer/Renderers/Default.tsx b/src/social/components/StoryViewer/Renderers/Default.tsx deleted file mode 100644 index 0f6cc5462..000000000 --- a/src/social/components/StoryViewer/Renderers/Default.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import * as React from 'react'; -import { Renderer, Tester } from 'react-insta-stories/dist/interfaces'; - -export const renderer: Renderer = ({ story, action }) => { - React.useEffect(() => { - action('play'); - }, [story]); - - return ( -
-

This story could not be loaded.

-
- ); -}; - -const styles = { - storyContent: { - width: '100%', - maxHeight: '100%', - margin: 'auto', - }, - text: { - textAlign: 'center' as const, - color: 'white', - width: '90%', - margin: 'auto', - }, -}; - -export const tester: Tester = () => { - return { - condition: true, - priority: 1, - }; -}; - -export default { - renderer, - tester, -}; diff --git a/src/social/components/StoryViewer/Renderers/Wrappers/Footer/styles.tsx b/src/social/components/StoryViewer/Renderers/Wrappers/Footer/styles.tsx deleted file mode 100644 index dbcf55951..000000000 --- a/src/social/components/StoryViewer/Renderers/Wrappers/Footer/styles.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import styled from 'styled-components'; -import { EyeIcon } from '~/icons'; - -export const ViewCountIcon = styled(EyeIcon)` - color: #a5a9b5; -`; - -export const StoryContainer = styled.div` - position: relative; - display: flex; - flex-direction: column; - align-items: center; -`; - -export const ViewStoryInfoContainer = styled.div` - display: flex; - flex-direction: column; - justify-content: start; - width: 100%; -`; - -export const StoryTabBarContainer = styled.div` - display: flex; - flex-direction: column; - align-items: center; - padding: 0.5rem; - height: 5rem; -`; - -export const ViewStoryUploadingWrapper = styled.div` - display: flex; - align-items: center; - justify-content: flex-start; - gap: 0.5rem; -`; - -export const ViewStoryCompostBarContainer = styled.div` - position: absolute; - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - height: 3.5rem; - padding: 0.75rem; - background-color: #000; - bottom: 0; - color: #ffffff; -`; - -export const ViewStoryFailedCompostBarContainer = styled.div` - position: absolute; - bottom: 0; - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; - height: 3.5rem; - padding: 0.75rem; - background-color: ${({ theme }) => theme.palette.alert.main}; - color: #ffffff; - z-index: 0; -`; - -export const ViewStoryFailedCompostBarWrapper = styled.div` - display: flex; - align-items: center; - justify-content: flex-start; - gap: 0.5rem; - width: 100%; -`; - -export const ViewStoryCompostBarViewIconContainer = styled.div` - ${({ theme }) => theme.typography.bodyBold}; - color: #fff; - display: flex; - align-items: center; - justify-content: space-between; - gap: 0.25rem; -`; - -export const ViewStoryCompostBarEngagementContainer = styled.div` - ${({ theme }) => theme.typography.bodyBold}; - display: flex; - align-items: center; - justify-content: space-between; - gap: 0.75rem; -`; - -export const ViewStoryCompostBarEngagementIconContainer = styled.div` - ${({ theme }) => theme.typography.bodyBold}; - color: #fff; - display: flex; - align-items: center; - justify-content: space-between; - gap: 0.25rem; - border-radius: 1.5rem; - padding: 0.5rem 0.625rem; - background-color: #292b32; -`; - -export const ViewStoryContainer = styled.div` - position: relative; - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - background-color: black; -`; diff --git a/src/social/components/StoryViewer/Renderers/index.tsx b/src/social/components/StoryViewer/Renderers/index.tsx deleted file mode 100644 index 9d188b8dd..000000000 --- a/src/social/components/StoryViewer/Renderers/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import image from './Image'; -import video from './Video'; -import defaultRenderer from './Default'; -import autoplayContent from './AutoPlayContent'; - -export const renderers = [image, video, autoplayContent, defaultRenderer]; diff --git a/src/social/components/StoryViewer/Renderers/styles.tsx b/src/social/components/StoryViewer/Renderers/styles.tsx deleted file mode 100644 index ce96a2377..000000000 --- a/src/social/components/StoryViewer/Renderers/styles.tsx +++ /dev/null @@ -1,240 +0,0 @@ -import styled from 'styled-components'; - -import { - PauseIcon, - PlayIcon, - AddIcon, - Close, - DotsIcon, - VerifiedIcon, - MuteCircle, - UnmuteCircle, -} from '~/icons'; - -export const IconButton = styled.button` - position: absolute; - width: 2rem; - height: 2rem; - background-color: rgba(0, 0, 0, 0.5); - border-radius: 50%; - border: none; - top: 6rem; - left: 1.25rem; - z-index: 10; - cursor: pointer; -`; - -export const RendererContainer = styled.div` - position: relative; - width: 100%; - height: 100%; -`; - -export const StoryVideo = styled.video` - width: 100%; - height: 100%; - object-fit: contain; -`; - -export const MuteCircleIcon = styled(MuteCircle)` - width: 100%; - height: 100%; -`; - -export const UnmuteCircleIcon = styled(UnmuteCircle)` - width: 100%; - height: 100%; -`; - -export const LoadingOverlay = styled.div<{ - width: number | string | undefined; - height: number | string | undefined; -}>` - width: ${({ width }) => width}; - height: ${({ height }) => height}; - position: absolute; - left: 0; - top: 0; - background: rgba(0, 0, 0, 0.9); - z-index: 9; - display: flex; - justify-content: center; - align-items: center; - color: #ccc; -`; - -export const StoryImage = styled.img<{ customStyles?: string }>` - width: auto; - max-width: 100%; - max-height: 100%; - margin: auto; - ${(props) => props.customStyles}; -`; - -export const PlayStoryButton = styled(PlayIcon)` - color: #ffffff; - cursor: pointer; -`; - -export const PauseStoryButton = styled(PauseIcon)` - color: #ffffff; - cursor: pointer; -`; - -export const CloseButton = styled(Close)` - width: 1.5rem; - height: 1.5rem; - fill: #ffffff; - cursor: pointer; -`; - -export const VerifiedBadge = styled(VerifiedIcon)` - color: #ffffff; -`; - -export const DotsButton = styled(DotsIcon)` - width: 1.5rem; - height: 1.5rem; - cursor: pointer; - color: #ffffff; -`; - -export const ViewStoryInfoContainer = styled.div` - display: flex; - flex-direction: column; - justify-content: start; - width: 100%; -`; - -export const ViewStoryCompostBarContainer = styled.div` - width: 100%; - display: flex; - position: absolute; - justify-content: space-between; - align-items: center; - height: 3.5rem; - padding: 0.75rem; - background-color: #000; - bottom: 0; -`; - -export const ViewStoryCompostBarViewIconContainer = styled.div` - display: flex; - align-items: center; - justify-content: space-between; - color: #fff; - gap: 0.25rem; -`; - -export const ViewStoryCompostBarEngagementContainer = styled.div` - display: flex; - align-items: center; - justify-content: space-between; - color: #fff; - gap: 0.75rem; -`; - -export const ViewStoryCompostBarEngagementIconContainer = styled.div` - display: flex; - align-items: center; - justify-content: space-between; - color: #fff; - gap: 0.25rem; - border-radius: 50%; - padding: 0.5rem 0.625rem; - background-color: #292b32; -`; - -export const StoryContent = styled.div` - flex: 1; -`; - -export const Header = styled.div` - height: 5rem; - padding: 0.75rem 1rem 0.625rem 1rem; -`; - -export const ViewStoryContainer = styled.div` - position: relative; - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - background-color: black; -`; - -export const ViewStoryHeaderContainer = styled.div` - z-index: 9999; - position: absolute; - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - flex-direction: column; - padding: 1.5rem 1rem 0.625rem 1rem; - gap: 0.5rem; -`; - -export const AvatarContainer = styled.div` - position: relative; - width: 2.5rem; - height: 2.5rem; - border-radius: 50%; - flex-shrink: 0; -`; - -export const AddStoryButton = styled(AddIcon)` - position: absolute; - bottom: 0; - right: 0; - - &:hover { - cursor: pointer; - } -`; - -export const ViewStoryHeaderListActionsContainer = styled.div` - display: flex; - gap: 1.25rem; - justify-content: flex-end; - align-items: center; -`; - -export const ViewStoryHeadingInfoContainer = styled.div` - display: flex; - justify-content: space-between; - width: 100%; - gap: 0.75rem; - align-items: center; -`; - -export const ViewStoryHeading = styled.div` - cursor: pointer; - display: flex; - gap: 0.25rem; - color: #fff; - font-size: 0.938rem; - font-style: normal; - font-weight: 600; - line-height: 1.25rem; - letter-spacing: -0.24px; - margin-right: 0.25rem; - align-items: center; -`; - -export const ViewStoryHeadingTitle = styled.div` - width: auto; - max-width: 11.688rem; -`; - -export const ViewStorySubHeading = styled.span` - display: inline-flex; - gap: 0.25rem; - margin-bottom: 0.25rem; - color: #fff; - font-size: 0.813rem; - font-style: normal; - font-weight: 400; - line-height: 1.25rem; - letter-spacing: -0.1px; -`; diff --git a/src/social/components/StoryViewer/Renderers/types.ts b/src/social/components/StoryViewer/Renderers/types.ts deleted file mode 100644 index cb5efb5b2..000000000 --- a/src/social/components/StoryViewer/Renderers/types.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Action, Story } from 'react-insta-stories/dist/interfaces'; - -export type CustomRenderer = React.FC<{ - story: Amity.Story & - Story & { - actions: Array<{ - name: string; - action: () => void; - icon: JSX.Element; - }>; - }; - action: Action; - config: { - width?: number | string; - height?: number | string; - loader?: JSX.Element; - header?: () => JSX.Element; - storyStyles?: object; - }; - messageHandler: ( - type: string, - data: any, - ) => { - ack: 'OK' | 'ERROR'; - }; -}>; diff --git a/src/social/components/StoryViewer/index.tsx b/src/social/components/StoryViewer/index.tsx deleted file mode 100644 index 2020f19ac..000000000 --- a/src/social/components/StoryViewer/index.tsx +++ /dev/null @@ -1,289 +0,0 @@ -import React, { useEffect, useState } from 'react'; - -import { - StoryArrowLeftButton, - StoryArrowRightButton, - StoryWrapper, - ViewStoryContainer, - ViewStoryContent, - ViewStoryOverlay, -} from '~/social/components/StoryViewer/styles'; - -import Stories from 'react-insta-stories'; - -import { StoryRepository } from '@amityco/ts-sdk'; -import { extractColors } from 'extract-colors'; -import { FinalColor } from 'extract-colors/lib/types/Color'; -import useImage from '~/core/hooks/useImage'; -import { useNavigation } from '~/social/providers/NavigationProvider'; - -import { useIntl } from 'react-intl'; -import { notification } from '~/core/components/Notification'; -import { backgroundImage as communityBackgroundImage } from '~/icons/Community'; -import { useMedia } from 'react-use'; -import { renderers } from '~/social/components/StoryViewer/Renderers'; -import StoryDraft from '~/social/components/StoryDraft'; -import useStories from '~/social/hooks/useStories'; -import useSDK from '~/core/hooks/useSDK'; -import useUser from '~/core/hooks/useUser'; -import { confirm } from '~/core/components/Confirm'; -import { isAdmin, isModerator } from '~/helpers/permissions'; -import { Permissions } from '~/social/constants'; -import { isNonNullable } from '~/helpers/utils'; -import { TrashIcon } from '~/icons'; - -interface StoryViewerProps { - targetId: string; - duration?: number; - onClose: () => void; -} - -const StoryViewer = ({ targetId, duration = 5000, onClose }: StoryViewerProps) => { - const { stories } = useStories({ - targetId, - targetType: 'community', - options: { - orderBy: 'asc', - sortBy: 'createdAt', - }, - }); - - const { currentUserId, client } = useSDK(); - const user = useUser(currentUserId); - - const { onClickCommunity } = useNavigation(); - const { formatMessage } = useIntl(); - const isMobile = useMedia('(max-width: 768px)'); - - const [isDraft, setIsDraft] = useState(false); - const [currentIndex, setCurrentIndex] = useState(0); - const [file, setFile] = useState(null); - const [colors, setColors] = useState([]); - - const haveStoryPermission = - client?.hasPermission(Permissions.ManageStoryPermission).community(targetId) || - isAdmin(user?.roles) || - isModerator(user?.roles); - - const confirmDeleteStory = (storyId: string) => { - const isLastStory = currentIndex === 0; - confirm({ - title: formatMessage({ id: 'storyViewer.action.confirmModal.title' }), - content: formatMessage({ id: 'storyViewer.action.confirmModal.content' }), - okText: formatMessage({ id: 'delete' }), - onOk: async () => { - previousStory(); - if (isLastStory) { - onClose(); - } - await StoryRepository.softDeleteStory(storyId); - notification.success({ - content: formatMessage({ id: 'storyViewer.notification.deleted' }), - }); - }, - }); - }; - - const onChange = (file: File) => { - setFile(file); - setIsDraft(true); - }; - - const handleAddIconClick = (e: React.MouseEvent) => { - e.stopPropagation(); - - if (onChange) { - const input = document.createElement('input'); - input.type = 'file'; - input.accept = 'image/*,video/*'; - - input.addEventListener('change', (event) => { - const selectedFile = (event.target as HTMLInputElement).files?.[0]; - onChange(selectedFile as File); - }); - - input.click(); - } - }; - - const deleteStory = async (storyId: string) => { - confirmDeleteStory(storyId); - }; - - const onCreateStory = async ( - file: File, - imageMode: 'fit' | 'fill', - metadata?: Amity.Metadata, - items?: Amity.StoryItem[], - ) => { - setIsDraft(false); - onClose(); - const formData = new FormData(); - formData.append('files', file); - if (file?.type.includes('image')) { - const { data: imageData } = await StoryRepository.createImageStory( - 'community', - targetId, - formData, - metadata, - imageMode, - items, - ); - if (imageData) { - notification.success({ - content: formatMessage({ id: 'storyViewer.notification.success' }), - }); - } - } else { - const { data: videoData } = await StoryRepository.createVideoStory( - 'community', - targetId, - formData, - metadata, - items, - ); - if (videoData) { - notification.success({ - content: formatMessage({ id: 'storyViewer.notification.success' }), - }); - } - } - }; - - const discardStory = () => { - setFile(null); - setIsDraft(false); - }; - - const formattedStories = stories?.map((story) => { - const isImage = story?.dataType === 'image'; - const url = isImage ? story?.imageData?.fileUrl : story?.videoData?.videoUrl?.['720p']; - - return { - ...story, - url, - type: isImage ? 'image' : 'video', - actions: [ - haveStoryPermission - ? { - name: 'delete', - action: () => deleteStory(story?.storyId as string), - icon: , - } - : null, - ].filter(isNonNullable), - handleAddIconClick: (e: React.MouseEvent) => handleAddIconClick, - onChange, - onCreateStory, - discardStory, - }; - }); - - const avatarUrl = useImage({ - fileId: stories[currentIndex]?.community?.avatarFileId, - imageSize: 'small', - }); - - const nextStory = () => { - if (currentIndex === stories.length - 1) { - onClose(); - return; - } - setCurrentIndex(currentIndex + 1); - }; - - const previousStory = () => { - if (currentIndex === 0) return; - setCurrentIndex(currentIndex - 1); - }; - - const targetRootId = 'stories-viewer'; - - const storyStyles = { - width: '100%', - height: '100%', - objectFit: - stories[currentIndex]?.dataType === 'image' && - stories[currentIndex]?.data?.imageDisplayMode === 'fill' - ? 'cover' - : 'contain', - background: `linear-gradient( - 180deg, - ${colors?.length > 0 ? colors[0].hex : '#000'} 0%, - ${colors?.length > 0 ? colors[colors?.length - 1].hex : '#000'} 100% - )`, - }; - - const increaseIndex = () => { - setCurrentIndex(currentIndex + 1); - }; - - useEffect(() => { - if (stories[stories.length - 1]?.syncState === 'syncing') { - setCurrentIndex(stories.length - 1); - } - if (stories[currentIndex]) { - stories[currentIndex]?.analytics.markAsSeen(); - } - }, [currentIndex, stories]); - - useEffect(() => { - const extractColorsFromImage = async (url: string) => { - const colorsFromImage = await extractColors(url, { - crossOrigin: 'anonymous', - }); - - setColors(colorsFromImage); - }; - - if (file?.type.includes('image') || stories[currentIndex]?.dataType === 'image') { - extractColorsFromImage((stories[currentIndex]?.imageData?.fileUrl as string) ?? file); - } else { - setColors([]); - } - }, [stories, file, currentIndex]); - - if (isDraft) { - return ( - - ); - } - - return ( - - {!isMobile && } - - - - {formattedStories?.length > 0 ? ( - // NOTE: Do not use isPaused prop, it will cause the first video story skipped - stories[currentIndex]?.analytics.markAsSeen()} - onStoryEnd={increaseIndex} - onNext={nextStory} - onPrevious={previousStory} - onAllStoriesEnd={onClose} - /> - ) : null} - - - {!isMobile && } - - ); -}; - -export default StoryViewer; diff --git a/src/social/hooks/useStories.ts b/src/social/hooks/useStories.ts deleted file mode 100644 index c441fa403..000000000 --- a/src/social/hooks/useStories.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { StoryRepository } from '@amityco/ts-sdk'; -import React, { useCallback, useEffect, useRef, useState } from 'react'; -import { isNonNullable } from '~/helpers/utils'; -import useCommunityStoriesSubscription from './useCommunityStoriesSubscription'; - -type UseStories = { - stories: (Amity.Story | undefined)[]; - hasMore: boolean; - loadMore: () => void; -}; - -const useStories = (params: Amity.GetStoriesByTargetParam): UseStories => { - const disposeFnRef = useRef<(() => void) | null>(null); - const [stories, setStories] = useState([]); - const [isLoading, setIsLoading] = useState(false); - const [error, setError] = useState(null); - const [hasMore, setHasMore] = useState(false); - const loadMoreFnRef = useRef<(() => void) | undefined | null>(null); - const [loadMoreHasBeenCalled, setLoadMoreHasBeenCalled] = useState(false); - - const loadMore = useCallback(() => { - if (loadMoreFnRef.current) { - setLoadMoreHasBeenCalled(true); - loadMoreFnRef.current?.(); - } - }, [loadMoreFnRef, loadMoreHasBeenCalled, isLoading, setIsLoading]); - - useEffect(() => { - async function run() { - if (disposeFnRef.current) { - disposeFnRef.current(); - } - - disposeFnRef.current = StoryRepository.getActiveStoriesByTarget( - { - targetId: params.targetId, - targetType: params.targetType, - options: params.options, - }, - async ({ data, hasNextPage, onNextPage }) => { - if (data) { - if (params.options?.orderBy === 'asc' && params.options?.sortBy === 'createdAt') { - const sortedData = data.filter(isNonNullable).sort((a, b) => { - // Place stories with syncing state at the end - if (a.syncState === 'syncing' && b.syncState !== 'syncing') { - return 1; - } else if (a.syncState !== 'syncing' && b.syncState === 'syncing') { - return -1; - } else { - // For other cases, maintain the original order - return 0; - } - }); - setStories(sortedData); - } else { - setStories(data.filter(isNonNullable)); - } - } - - hasNextPage && setHasMore(hasNextPage); - loadMoreFnRef.current = onNextPage; - }, - ); - } - - run(); - - return () => { - if (disposeFnRef.current) { - disposeFnRef.current(); - } - }; - }, [params.targetId]); - - useCommunityStoriesSubscription({ - targetId: params.targetId, - targetType: params.targetType as Amity.StoryTargetType, // TO FIX: type issue - }); - - return { - stories, - hasMore, - loadMore, - }; -}; - -export default useStories; diff --git a/src/social/pages/Application/index.tsx b/src/social/pages/Application/index.tsx index 699e7b8f8..3eb8f88b9 100644 --- a/src/social/pages/Application/index.tsx +++ b/src/social/pages/Application/index.tsx @@ -100,7 +100,6 @@ const Community = () => { mediaType={page.mediaType} targetId={page.targetId} targetType={page.targetType} - storyType={page.storyType} /> )} diff --git a/src/social/pages/CommunityFeed/index.tsx b/src/social/pages/CommunityFeed/index.tsx index b0ca3f9bf..f2eb42bbe 100644 --- a/src/social/pages/CommunityFeed/index.tsx +++ b/src/social/pages/CommunityFeed/index.tsx @@ -19,20 +19,17 @@ import useCommunitySubscription from '~/social/hooks/useCommunitySubscription'; import usePostsCollection from '~/social/hooks/collections/usePostsCollection'; -import useFile from '~/core/hooks/useFile'; - import { CommunitySideMenuOverlay, HeadTitle, MobileContainer, StyledCommunitySideMenu, } from '../NewsFeed/styles'; -import useStories from '~/social/hooks/useStories'; import { BarsIcon } from '~/icons'; -import { useStoryContext } from '~/v4/social/providers/StoryProvider'; import { useNavigation } from '~/social/providers/NavigationProvider'; +import { useGetActiveStoriesByTarget } from '~/v4/social/hooks/useGetActiveStories'; interface CommunityFeedProps { communityId: string; @@ -43,7 +40,7 @@ interface CommunityFeedProps { const CommunityFeed = ({ communityId, isNewCommunity, isOpen, toggleOpen }: CommunityFeedProps) => { const { goToDraftStoryPage } = useNavigation(); - const { stories } = useStories({ + const { stories } = useGetActiveStoriesByTarget({ targetId: communityId, targetType: 'community', options: { diff --git a/src/social/pages/DraftPage.tsx b/src/social/pages/DraftPage.tsx index 6fc187717..f83ad69d5 100644 --- a/src/social/pages/DraftPage.tsx +++ b/src/social/pages/DraftPage.tsx @@ -7,13 +7,13 @@ import { PageTypes } from '~/social/constants'; import { useNavigation } from '~/social/providers/NavigationProvider'; export const AmityDraftStoryPage = (props: AmityDraftStoryPageProps) => { - const { onChangePage, onClickCommunity } = useNavigation(); + const { page, onChangePage, onClickCommunity } = useNavigation(); return ( { - if (props.storyType === 'communityFeed') { + if (page.type === PageTypes.DraftPage && page.storyType === 'communityFeed') { onClickCommunity(props.targetId); } else { onChangePage(PageTypes.NewsFeed); @@ -21,7 +21,6 @@ export const AmityDraftStoryPage = (props: AmityDraftStoryPageProps) => { }} goToCommunityPage={(communityId) => onClickCommunity(communityId)} goToGlobalFeedPage={() => onChangePage(PageTypes.NewsFeed)} - storyType={props.storyType} /> ); }; diff --git a/src/social/providers/PostRendererProvider.tsx b/src/social/providers/PostRendererProvider.tsx index 9c5b8b979..623d84781 100644 --- a/src/social/providers/PostRendererProvider.tsx +++ b/src/social/providers/PostRendererProvider.tsx @@ -37,7 +37,6 @@ const defaultPostRenderer: PostRendererConfigType = { [PostContentType.POLL]: (props: PostRendererProps) => , [PostContentType.TEXT]: (props: PostRendererProps) => , [PostContentType.VIDEO]: (props: PostRendererProps) => , - [PostContentType.CUSTOM]: (props: PostRendererProps) => , }; const PostRendererContext = createContext(defaultPostRenderer); diff --git a/src/utils.ts b/src/utils.ts index f334aebde..5b97409f0 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -112,3 +112,36 @@ export const getMarkedMessageTopic = ({ return `${getNetworkId(user)}/marker/channel/${channelId}/message/${subChannelId}`; }; + +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + +const SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:']); + +export function sanitizeUrl(url: string): string { + try { + const parsedUrl = new URL(url); + // eslint-disable-next-line no-script-url + if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) { + return 'about:blank'; + } + } catch { + return url; + } + return url; +} + +// Source: https://stackoverflow.com/a/8234912/2013580 +const urlRegExp = new RegExp( + /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)/, +); +export function validateUrl(url: string): boolean { + // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://. + // Maybe show a dialog where they user can type the URL before inserting it. + return url === 'https://' || urlRegExp.test(url); +} diff --git a/src/v4/chat/components/AmityLiveChatMessageComposeBar/index.tsx b/src/v4/chat/components/AmityLiveChatMessageComposeBar/index.tsx deleted file mode 100644 index cb118f8a9..000000000 --- a/src/v4/chat/components/AmityLiveChatMessageComposeBar/index.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import { MessageRepository } from '@amityco/ts-sdk'; -import React, { RefObject, useEffect, useRef, useState } from 'react'; -import ArrowTop from '~/v4/icons/ArrowTop'; -import HomeIndicator from '../HomeIndicator'; -import styles from './styles.module.css'; -import InputText from '~/v4/core/components/InputText'; -import useMention from '~/v4/chat/hooks/useMention'; -import { useIntl } from 'react-intl'; -import useChannelPermission from '~/v4/chat/hooks/useChannelPermission'; -import { useCustomization } from '~/v4/core/providers/CustomizationProvider'; -import { useConfirmContext } from '~/v4/core/providers/ConfirmProvider'; -import { useLiveChatNotifications } from '~/v4/chat/providers/LiveChatNotificationProvider'; -import { useAmityComponent } from '~/v4/core/hooks/uikit'; - -const COMPOSEBAR_MAX_CHARACTER_LIMIT = 200; - -type ComposeActionTypes = { - replyMessage?: Amity.Message; - mentionMessage?: Amity.Message; - clearReplyMessage?: () => void; - clearMention?: () => void; -}; - -interface AmityLiveChatMessageComposeBarProps { - channel: Amity.Channel; - composeAction: ComposeActionTypes; - suggestionRef?: RefObject; - disabled?: boolean; - pageId?: string; -} - -type ComposeBarMention = { - id: string; - display: string; - childIndex: number; - index: number; - plainTextIndex: number; -}; - -export const AmityLiveChatMessageComposeBar = ({ - pageId = '*', - channel, - suggestionRef, - composeAction: { replyMessage, mentionMessage, clearReplyMessage, clearMention }, - disabled, -}: AmityLiveChatMessageComposeBarProps) => { - const [mentionList, setMentionList] = useState<{ - [key: ComposeBarMention['id']]: ComposeBarMention; - }>({}); - - const componentId = 'message_composer'; - const { themeStyles, config } = useAmityComponent({ pageId, componentId }); - - const { confirm } = useConfirmContext(); - const notification = useLiveChatNotifications(); - - const commentInputRef = useRef(null); - - const { queryMentionees, mentionees, onChange, markup, metadata, text } = useMention({ - targetId: channel.channelId, - targetType: 'channel', - }); - - const { isModerator } = useChannelPermission(channel.channelId); - - const { formatMessage } = useIntl(); - - const sendMessage = async () => { - if (!channel) return; - if (text?.trim().length === 0) return; - - if (text.trim().length > (config?.message_limit || COMPOSEBAR_MAX_CHARACTER_LIMIT)) { - confirm({ - title: formatMessage({ id: 'livechat.error.tooLongMessage.title' }), - content: formatMessage({ id: 'livechat.error.tooLongMessage.description' }), - okText: formatMessage({ id: 'general.action.ok' }), - }); - return; - } - - try { - await MessageRepository.createMessage({ - tags: [], - subChannelId: channel.channelId, - data: { text: text.trim() }, - dataType: 'text', - mentionees, - metadata, - parentId: replyMessage?.messageId || undefined, - }); - - onChange({ text: '', plainText: '', mentions: [] }); - } catch (error) { - const errorMessage = (error as Error).message; - let notificationMessage = formatMessage({ id: 'livechat.error.sendingMessage.error' }); - - if (errorMessage === 'Amity SDK (400308): Text contain blocked word') { - notificationMessage = formatMessage({ id: 'livechat.error.sendingMessage.blockedWord' }); - } else if ( - errorMessage === 'Amity SDK (400309): Data contain link that is not in whitelist' - ) { - notificationMessage = formatMessage({ id: 'livechat.error.sendingMessage.notAllowLink' }); - } else if (errorMessage === 'Amity SDK (400302): User is muted') { - notificationMessage = formatMessage({ id: 'livechat.member.muted.error' }); - } - - notification.error({ - content: notificationMessage, - }); - - return; - } - - setMentionList({}); - clearReplyMessage && clearReplyMessage(); - }; - - useEffect(() => { - commentInputRef.current?.focus(); - }, []); - - return ( -
-
-
- queryMentionees(query)} - onChange={(e) => { - onChange({ - text: e.text, - plainText: e.plainText, - mentions: e.mentions, - }); - }} - value={markup} - queryMentionees={queryMentionees} - mentionColor={styles.mentionText} - /> -
-
- sendMessage()} /> - {/* {message.length > 0 ? ( - - ) : ( - - )} */} -
-
- -
- ); -}; - -export default AmityLiveChatMessageComposeBar; diff --git a/src/v4/chat/components/AmityLiveChatMessageComposeBar/styles.module.css b/src/v4/chat/components/AmityLiveChatMessageComposeBar/styles.module.css deleted file mode 100644 index 61c896bb0..000000000 --- a/src/v4/chat/components/AmityLiveChatMessageComposeBar/styles.module.css +++ /dev/null @@ -1,75 +0,0 @@ -.sendButton { - border-radius: var(--asc-border-radius-xxl); - width: 1rem; - height: 1rem; - background-color: var(--asc-color-primary-default); - cursor: pointer; - padding: var(--asc-spacing-xxs2); - fill: white; -} - -.reactionButton { - width: 2rem; - height: 2rem; - cursor: pointer; -} - -.sendButtonContainer { - display: flex; - align-items: center; - gap: var(--asc-spacing-s2); - width: 2rem; - height: 2rem; -} - -.composeBarContainer { - min-height: 3.5rem; - z-index: 99; - background-color: inherit; -} - -.composeBar { - display: flex; - align-items: center; - gap: var(--asc-spacing-s2); - padding: var(--asc-spacing-s1) var(--asc-spacing-s2); - background-color: inherit; - box-shadow: 0 -1px 0 0 var(--asc-color-base-shade4); -} - -.textInputContainer { - display: flex; - width: calc(100% - 2.8rem); - - & > div { - width: 100%; - border-radius: var(--asc-border-radius-xxl); - background: var(--asc-color-secondary-shade4); - - textarea { - padding: 0.563rem 1rem; - background-color: transparent; - } - } -} - -.composeBarLoading { - width: 100%; - height: var(--asc-spacing-l1); - padding: var(--asc-spacing-s1) var(--asc-spacing-s2); - border-radius: var(--asc-border-radius-sm); - border: var(--asc-border-radius-none); - background-color: var(--asc-color-secondary-default); - color: var(--asc-color-base-inverse); - display: flex; - align-items: center; - - span { - padding-left: var(--asc-spacing-s1); - font-weight: var(--asc-text-font-weight-light); - } -} - -.mentionText { - color: var(--asc-color-primary-default); -} diff --git a/src/v4/chat/components/AmityLiveChatMessageReceiverView/messageReceiver.stories.tsx b/src/v4/chat/components/AmityLiveChatMessageReceiverView/messageReceiver.stories.tsx deleted file mode 100644 index cc6817283..000000000 --- a/src/v4/chat/components/AmityLiveChatMessageReceiverView/messageReceiver.stories.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React, { useState, useRef, useEffect } from 'react'; -import useChannelsCollection from '~/chat/hooks/collections/useChannelsCollection'; -import useMessagesCollection from '~/chat/hooks/collections/useMessagesCollection'; -import AmityLiveChatMessageReceiverView from '.'; - -export default { - title: 'V4/AmityMessageReceiverView', -}; - -const SampleMessageReceiverView = () => { - const ref = useRef(null); - const { channels, isLoading: isLoadingChannel } = useChannelsCollection({ - membership: 'all', - sortBy: 'lastActivity', - types: ['live'], - limit: 1, - }); - - const { messages, isLoading: isLoadingMessage } = useMessagesCollection({ - subChannelId: channels.length > 0 ? channels[0].defaultSubChannelId : '', - limit: 1, - }); - - if (isLoadingChannel) return
Loading...
; - if (channels.length === 0) return
No channels
; - if (isLoadingMessage) return
Loading...
; - if (messages.length === 0) return
No messages
; - - return ( -
- -
- ); -}; - -export const LiveChatStory = { - render: () => , - name: 'AmityLiveChatMessageReceiver', -}; diff --git a/src/v4/chat/components/AmityLiveChatHeader/styles.module.css b/src/v4/chat/components/ChatHeader/ChatHeader.module.css similarity index 90% rename from src/v4/chat/components/AmityLiveChatHeader/styles.module.css rename to src/v4/chat/components/ChatHeader/ChatHeader.module.css index 09580e17d..04f84bc4a 100644 --- a/src/v4/chat/components/AmityLiveChatHeader/styles.module.css +++ b/src/v4/chat/components/ChatHeader/ChatHeader.module.css @@ -22,3 +22,8 @@ margin-right: var(--asc-spacing-xxs2); fill: var(--asc-color-base-default); } + +.avatar { + width: 3rem; + height: 3rem; +} diff --git a/src/v4/chat/components/AmityLiveChatHeader/livechatHeader.stories.tsx b/src/v4/chat/components/ChatHeader/ChatHeader.stories.tsx similarity index 69% rename from src/v4/chat/components/AmityLiveChatHeader/livechatHeader.stories.tsx rename to src/v4/chat/components/ChatHeader/ChatHeader.stories.tsx index 317f5ac81..48e95a9fa 100644 --- a/src/v4/chat/components/AmityLiveChatHeader/livechatHeader.stories.tsx +++ b/src/v4/chat/components/ChatHeader/ChatHeader.stories.tsx @@ -1,12 +1,12 @@ import React from 'react'; import useChannelsCollection from '~/chat/hooks/collections/useChannelsCollection'; -import { AmityLiveChatHeader } from '.'; +import { ChatHeader } from './index'; export default { - title: 'V4/AmityLiveChatHeader', + title: 'V4/ChatHeader', }; -const SampleLiveChatHeader = () => { +const SampleChatHeader = () => { const { channels, hasMore, loadMore, isLoading } = useChannelsCollection({ membership: 'all', sortBy: 'lastActivity', @@ -19,12 +19,12 @@ const SampleLiveChatHeader = () => { return
No channels
; return (
- +
); }; -export const LiveChatHeader = { - render: () => , - name: 'AmityLiveChatHeader', +export const ChatHeaderStory = { + render: () => , + name: 'AmityChatHeader', }; diff --git a/src/v4/chat/components/AmityLiveChatHeader/index.tsx b/src/v4/chat/components/ChatHeader/ChatHeader.tsx similarity index 61% rename from src/v4/chat/components/AmityLiveChatHeader/index.tsx rename to src/v4/chat/components/ChatHeader/ChatHeader.tsx index 93e238217..dd4903b7f 100644 --- a/src/v4/chat/components/AmityLiveChatHeader/index.tsx +++ b/src/v4/chat/components/ChatHeader/ChatHeader.tsx @@ -1,36 +1,35 @@ import React from 'react'; import millify from 'millify'; -import { FormattedMessage, useIntl } from 'react-intl'; import Chat from '~/v4/icons/Chat'; import UserRegular from '~/v4/icons/UserRegular'; import useConnectionStates from '~/social/hooks/useConnectionStates'; import ConnectionSpinner from '~/v4/icons/ConnectionSpinner'; import { Typography } from '~/v4/core/components'; -import styles from './styles.module.css'; import useChatInfo from '~/v4/chat/hooks/useChatInfo'; -import { Avatar, AVATAR_SIZE } from '~/v4/core/components/Avatar/Avatar'; +import { Avatar } from '~/v4/core/components/Avatar/Avatar'; import { useAmityComponent } from '~/v4/core/hooks/uikit/index'; +import styles from './ChatHeader.module.css'; -interface AmityLiveChatHeaderProps { +interface ChatHeaderProps { channel: Amity.Channel | null; pageId?: string; componentId?: string; } -export const AmityLiveChatHeader = ({ channel, pageId = '*' }: AmityLiveChatHeaderProps) => { +export const ChatHeader = ({ channel, pageId = '*' }: ChatHeaderProps) => { const componentId = 'chat_header'; const { themeStyles } = useAmityComponent({ pageId, componentId }); - const { chatName, chatAvatar } = useChatInfo({ channel }); - const { formatMessage } = useIntl(); const isOnline = useConnectionStates(); return (
- } /> +
+ } /> +
- {chatName || formatMessage({ id: 'loading' })} + {chatName || 'Loading...'}
{isOnline ? ( @@ -38,18 +37,15 @@ export const AmityLiveChatHeader = ({ channel, pageId = '*' }: AmityLiveChatHead {millify(channel?.memberCount || 0)}{' '} - + {`${channel?.memberCount || 0} ${ + channel?.memberCount === 1 ? 'member' : 'members' + }`} ) : ( <> - - - + Waiting for connection... )}
@@ -57,5 +53,3 @@ export const AmityLiveChatHeader = ({ channel, pageId = '*' }: AmityLiveChatHead
); }; - -export default AmityLiveChatHeader; diff --git a/src/v4/chat/components/ChatHeader/index.tsx b/src/v4/chat/components/ChatHeader/index.tsx new file mode 100644 index 000000000..10ec11369 --- /dev/null +++ b/src/v4/chat/components/ChatHeader/index.tsx @@ -0,0 +1 @@ +export { ChatHeader } from './ChatHeader'; diff --git a/src/v4/chat/components/MessageComposer/MessageComposer.module.css b/src/v4/chat/components/MessageComposer/MessageComposer.module.css new file mode 100644 index 000000000..558f7f5bc --- /dev/null +++ b/src/v4/chat/components/MessageComposer/MessageComposer.module.css @@ -0,0 +1,187 @@ +.sendButton { + width: 100%; + height: 100%; + border-radius: var(--asc-border-radius-xxl); + background-color: var(--asc-color-primary-default); + cursor: pointer; + padding: var(--asc-spacing-xxs2); + fill: var(--asc-color-white); +} + +.reactionButton { + width: 2rem; + height: 2rem; + cursor: pointer; +} + +.sendButtonContainer { + display: flex; + align-items: center; + justify-content: center; + width: 2rem; + height: 2rem; +} + +.composeBarContainer { + height: 3.5rem; + width: 100%; + position: relative; + background-color: var(--asc-color-background-default); +} + +.optionContainer { + position: absolute; + top: 0; + left: 0; + width: 100%; + transform: translateY(-100%); +} + +.composeBar { + /* display: flex; + align-items: center; + gap: var(--asc-spacing-s2); + padding: var(--asc-spacing-s1) var(--asc-spacing-s2); + box-shadow: 0 -1px 0 0 var(--asc-color-base-shade4); */ + height: 3.5rem; + width: 100%; + padding: 0.5rem; + display: grid; + align-items: center; + grid-template-columns: minmax(0, 1fr) 2rem; + gap: var(--asc-spacing-s2); + box-sizing: border-box; + position: relative; +} + +.composeBarLoading { + width: 100%; + height: var(--asc-spacing-l1); + padding: var(--asc-spacing-s1) var(--asc-spacing-s2); + border-radius: var(--asc-border-radius-sm); + border: var(--asc-border-radius-none); + background-color: var(--asc-color-secondary-default); + color: var(--asc-color-base-inverse); + display: flex; + align-items: center; + + span { + padding-left: var(--asc-spacing-s1); + font-weight: var(--asc-text-font-weight-light); + } +} + +.mentionText { + color: var(--asc-color-primary-default); +} + +.editorPlaceholder { + color: #999; + overflow: hidden; + position: absolute; + top: 0.625rem; + left: 1.75rem; + background-color: transparent; + user-select: none; + pointer-events: none; +} + +.editorContainer { + height: 100%; + font-size: var(--asc-text-font-size-md); + color: var(--asc-color-base-default); + padding: 0 0 0 1rem; + position: relative; +} + +.editorRoot { + width: 100%; + background-color: var(--asc-color-secondary-shade4); + border-radius: 1.25rem; + min-height: 2.5rem; + padding: 0.625rem 0.75rem; + border: 0 solid var(--asc-color-background-default); + outline: 0; +} + +.editorParagraph { + margin: 0; + position: relative; +} + +.editorContainer:focus { + border: none; + outline: none; +} + +.editorContainer__mentionTextInput_item { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 12.5rem; + overflow-y: scroll; +} + +.editorContainer__mentionTextInput_item::-webkit-scrollbar { + display: none; +} + +.editorLink { + color: var(--asc-color-primary-shade1); + text-decoration: none; +} + +.editorLink:hover { + text-decoration: underline; +} + +.userMentionItem__item, +.allMentionItem__item { + width: 100%; + display: flex; + align-items: center; + padding: 0.5rem 1rem; + background-color: var(--asc-color-background-default); + color: var(--asc-color-base-default); +} + +.userMentionItem__item[data-is-selected='true'], +.allMentionItem__item[data-is-selected='true'] { + background-color: var(--asc-color-base-shade4); +} + +.userMentionItem__item:focus, +.allMentionItem__item:focus { + background-color: var(--asc-color-base-shade4); +} + +.userMentionItem__avatar { + width: 2.5rem; + height: 2.5rem; +} + +.allMentionItem__atSign { + width: 2rem; + height: 2rem; + background-color: var(--asc-color-primary-default); + color: var(--asc-color-white); + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + text-align: center; + line-height: 1.2rem; + font-size: 1rem; +} + +.userMentionItem__displayName, +.allMentionItem__displayName { + margin-left: 0.5rem; + font-size: 1rem; + display: block; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + color: var(--asc-color-base-default); +} diff --git a/src/v4/chat/components/AmityLiveChatMessageComposeBar/livechatMessageComposeBar.stories.tsx b/src/v4/chat/components/MessageComposer/MessageComposer.stories.tsx similarity index 64% rename from src/v4/chat/components/AmityLiveChatMessageComposeBar/livechatMessageComposeBar.stories.tsx rename to src/v4/chat/components/MessageComposer/MessageComposer.stories.tsx index 693604f08..4f1be2e74 100644 --- a/src/v4/chat/components/AmityLiveChatMessageComposeBar/livechatMessageComposeBar.stories.tsx +++ b/src/v4/chat/components/MessageComposer/MessageComposer.stories.tsx @@ -1,12 +1,12 @@ import React from 'react'; import useChannelsCollection from '~/chat/hooks/collections/useChannelsCollection'; -import { AmityLiveChatMessageComposeBar } from '.'; +import { MessageComposer } from './MessageComposer'; export default { - title: 'V4/AmityLiveChatMessageComposeBar', + title: 'V4/MessageComposer', }; -const SampleLiveChatHeader = () => { +const SampleMessageComposer = () => { const { channels, hasMore, loadMore, isLoading } = useChannelsCollection({ membership: 'all', sortBy: 'lastActivity', @@ -19,12 +19,12 @@ const SampleLiveChatHeader = () => { return
No channels
; return (
- +
); }; -export const LiveChatHeader = { - render: () => , - name: 'AmityLiveChatMessageComposeBar', +export const MessageComposerStory = { + render: () => , + name: 'MessageComposer', }; diff --git a/src/v4/chat/components/MessageComposer/MessageComposer.tsx b/src/v4/chat/components/MessageComposer/MessageComposer.tsx new file mode 100644 index 000000000..d3bd68539 --- /dev/null +++ b/src/v4/chat/components/MessageComposer/MessageComposer.tsx @@ -0,0 +1,329 @@ +import React, { RefObject, useCallback, useMemo, useRef, useState } from 'react'; +import ReactDOM from 'react-dom'; +import { MessageRepository } from '@amityco/ts-sdk'; +import ArrowTop from '~/v4/icons/ArrowTop'; +import { HomeIndicator } from '../../internal-components/HomeIndicator/index'; +import { useChannelPermission } from '~/v4/chat/hooks/useChannelPermission'; +import { useConfirmContext } from '~/v4/core/providers/ConfirmProvider'; +import { useLiveChatNotifications } from '~/v4/chat/providers/LiveChatNotificationProvider'; +import { useAmityComponent } from '~/v4/core/hooks/uikit'; + +import styles from './MessageComposer.module.css'; +import { useSearchChannelUser } from '../../hooks/collections/useSearchChannelUser'; +import { + $getRoot, + COMMAND_PRIORITY_HIGH, + COMMAND_PRIORITY_LOW, + Klass, + LexicalEditor, + LexicalNode, +} from 'lexical'; +import { AutoLinkNode, LinkNode } from '@lexical/link'; +import { + MentionPlugin, + MentionTypeaheadOption, +} from '~/v4/social/internal-components/Lexical/plugins/MentionPlugin'; +import { UserAvatar } from '~/v4/social/internal-components/UserAvatar/UserAvatar'; +import { useMutation } from '@tanstack/react-query'; +import { + editorStateToText, + getEditorConfig, + MentionData, +} from '~/v4/social/internal-components/Lexical/utils'; +import { + $createMentionNode, + MentionNode, +} from '~/v4/social/internal-components/Lexical/nodes/MentionNode'; +import { LexicalComposer } from '@lexical/react/LexicalComposer'; +import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin'; +import { ContentEditable } from '@lexical/react/LexicalContentEditable'; +import LexicalErrorBoundary from '@lexical/react/LexicalErrorBoundary'; +import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin'; +import { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin'; +import { LinkPlugin } from '~/v4/social/internal-components/Lexical/plugins/LinkPlugin'; +import { AutoLinkPlugin } from '~/v4/social/internal-components/Lexical/plugins/AutoLinkPlugin'; +import { EditorRefPlugin } from '@lexical/react/LexicalEditorRefPlugin'; +import { EnterKeyInterceptorPlugin } from '~/v4/social/internal-components/Lexical/plugins/EnterKeyInterceptorPlugin'; + +const COMPOSEBAR_MAX_CHARACTER_LIMIT = 200; + +type ComposeActionTypes = { + replyMessage?: Amity.Message; + mentionMessage?: Amity.Message; + clearReplyMessage?: () => void; + clearMention?: () => void; +}; + +interface MessageComposerProps { + channel: Amity.Channel; + composeAction: ComposeActionTypes; + suggestionRef?: RefObject; + disabled?: boolean; + pageId?: string; +} + +const useSuggestions = (channelId?: string | null) => { + const [queryString, setQueryString] = useState(null); + + const { isModerator } = useChannelPermission(channelId || undefined); + + const { channelMembers } = useSearchChannelUser({ + search: queryString, + channelId: channelId as string, + memberships: ['member'], + limit: 20, + }); + + const onQueryChange = (newQuery: string | null) => { + setQueryString(newQuery); + }; + + const suggestions = useMemo(() => { + const baseSuggestion = channelMembers.map(({ user, userId }) => ({ + userId: user?.userId || userId, + displayName: user?.displayName, + })); + + return isModerator && (queryString === '' || /^al*l*$/i.test(queryString || '')) + ? [{ userId: 'all', displayName: 'All' }, ...baseSuggestion] + : baseSuggestion; + }, [isModerator, channelMembers]); + + return { suggestions, queryString, onQueryChange }; +}; + +interface MentionItemProps { + isSelected: boolean; + onClick: () => void; + onMouseEnter: () => void; + option: MentionTypeaheadOption; +} + +function MentionItem({ option, isSelected, onClick, onMouseEnter }: MentionItemProps) { + return ( +
  • +
    + +
    +

    {option.data.displayName}

    +
  • + ); +} + +function AllMentionItem({ option, isSelected, onClick, onMouseEnter }: MentionItemProps) { + return ( +
  • +
    @
    +

    {option.data.displayName}

    +
  • + ); +} + +const nodes = [AutoLinkNode, LinkNode, MentionNode] as Array>; + +export const MessageComposer = ({ + pageId = '*', + channel, + composeAction: { replyMessage, mentionMessage, clearReplyMessage, clearMention }, +}: MessageComposerProps) => { + const componentId = 'message_composer'; + + const optionsRef = useRef(null); + const editorRef = useRef(null); + const { themeStyles, uiReference, config, accessibilityId } = useAmityComponent({ + pageId, + componentId, + }); + + const { confirm } = useConfirmContext(); + const notification = useLiveChatNotifications(); + + const { onQueryChange, suggestions } = useSuggestions(channel.channelId); + + const { mutateAsync } = useMutation({ + mutationFn: (params: Parameters[0]) => { + return MessageRepository.createMessage(params); + }, + onSuccess: () => { + editorRef.current?.update(() => { + const root = $getRoot(); + root.clear(); + }); + + clearReplyMessage && clearReplyMessage(); + }, + onError: (error) => { + const errorMessage = error.message; + let notificationMessage = "Your message wasn't sent. Please try again."; + + if (errorMessage === 'Amity SDK (400308): Text contain blocked word') { + notificationMessage = "Your message wasn't sent as it contains a blocked word."; + } else if ( + errorMessage === 'Amity SDK (400309): Data contain link that is not in whitelist' + ) { + notificationMessage = 'Your message wasn’t sent as it contained a link that’s not allowed.'; + } else if (errorMessage === 'Amity SDK (400302): User is muted') { + notificationMessage = 'User is muted'; + } + + notification.error({ + content: notificationMessage, + }); + }, + }); + + const sendMessage = () => { + if (!channel) return; + if (!editorRef.current) return; + + const { mentioned, mentionees, text } = editorStateToText(editorRef.current); + + if (text?.trim().length === 0) return; + + if (text.trim().length > (config?.message_limit || COMPOSEBAR_MAX_CHARACTER_LIMIT)) { + confirm({ + title: 'Unable to send message', + content: 'Your message is too long. Please shorten your message and try again.', + okText: 'Ok', + }); + return; + } + + mutateAsync({ + tags: [], + subChannelId: channel.channelId, + data: { text: text.trim() }, + dataType: 'text', + mentionees, + metadata: { mentioned }, + parentId: replyMessage?.messageId || undefined, + }); + }; + + const editorConfig = getEditorConfig({ + namespace: uiReference, + theme: { + root: styles.editorRoot, + placeholder: styles.editorPlaceholder, + paragraph: styles.editorParagraph, + link: styles.editorLink, + }, + nodes, + }); + + return ( +
    +
    +
    +
    + + } + placeholder={ + {config.placeholder_text} ?? null + } + ErrorBoundary={LexicalErrorBoundary} + /> + + + + + + + > + suggestions={suggestions} + getSuggestionId={(suggestion) => suggestion.userId} + onQueryChange={onQueryChange} + $createNode={(data) => + $createMentionNode({ + text: `@${data.displayName}` || '', + data, + }) + } + menuRenderFn={( + _, + { options, selectedIndex, setHighlightedIndex, selectOptionAndCleanUp }, + ) => { + if (!optionsRef.current || options.length === 0) { + return null; + } + return ReactDOM.createPortal( + <> + {options.map((option, i: number) => { + if (option.data.userId === 'all') { + return ( + { + setHighlightedIndex(i); + selectOptionAndCleanUp(option); + }} + onMouseEnter={() => { + setHighlightedIndex(i); + }} + key={option.key} + option={option} + /> + ); + } + + return ( + { + setHighlightedIndex(i); + selectOptionAndCleanUp(option); + }} + onMouseEnter={() => { + setHighlightedIndex(i); + }} + key={option.key} + option={option} + /> + ); + })} + , + optionsRef.current, + ); + }} + commandPriority={COMMAND_PRIORITY_HIGH} + /> + +
    +
    + sendMessage()} /> +
    +
    + +
    + ); +}; + +export default MessageComposer; diff --git a/src/v4/chat/components/MessageComposer/index.tsx b/src/v4/chat/components/MessageComposer/index.tsx new file mode 100644 index 000000000..9733e9caa --- /dev/null +++ b/src/v4/chat/components/MessageComposer/index.tsx @@ -0,0 +1 @@ +export { MessageComposer } from './MessageComposer'; diff --git a/src/v4/chat/components/MessageList/LiveChatLoadingIndicator.module.css b/src/v4/chat/components/MessageList/LiveChatLoadingIndicator.module.css new file mode 100644 index 000000000..198ee508d --- /dev/null +++ b/src/v4/chat/components/MessageList/LiveChatLoadingIndicator.module.css @@ -0,0 +1,13 @@ +.spinner { + animation: rotate 2s linear infinite; +} + +@keyframes rotate { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} diff --git a/src/v4/chat/components/LivechatLoadingIndicator/index.tsx b/src/v4/chat/components/MessageList/LiveChatLoadingIndicator.tsx similarity index 87% rename from src/v4/chat/components/LivechatLoadingIndicator/index.tsx rename to src/v4/chat/components/MessageList/LiveChatLoadingIndicator.tsx index c21b59a6a..8fbfed7d3 100644 --- a/src/v4/chat/components/LivechatLoadingIndicator/index.tsx +++ b/src/v4/chat/components/MessageList/LiveChatLoadingIndicator.tsx @@ -1,28 +1,20 @@ +import clsx from 'clsx'; import React from 'react'; -import styled, { keyframes } from 'styled-components'; +import styles from './LiveChatLoadingIndicator.module.css'; -const rotateAnimation = keyframes` - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -`; - -const StyledSpinner = styled.svg` - animation: ${rotateAnimation} 2s linear infinite; -`; - -const LivechatLoadingIndicator = (props: React.SVGProps) => { +export const LiveChatLoadingIndicator = ({ + className, + ...props +}: React.SVGProps) => { return ( - @@ -171,8 +163,6 @@ const LivechatLoadingIndicator = (props: React.SVGProps) => { y="47" id="rect3815" /> - + ); }; - -export default LivechatLoadingIndicator; diff --git a/src/v4/chat/components/AmityLiveChatMessageList/styles.module.css b/src/v4/chat/components/MessageList/MessageList.module.css similarity index 100% rename from src/v4/chat/components/AmityLiveChatMessageList/styles.module.css rename to src/v4/chat/components/MessageList/MessageList.module.css diff --git a/src/v4/chat/components/AmityLiveChatMessageList/livechatMessageList.stories.tsx b/src/v4/chat/components/MessageList/MessageList.stories.tsx similarity index 84% rename from src/v4/chat/components/AmityLiveChatMessageList/livechatMessageList.stories.tsx rename to src/v4/chat/components/MessageList/MessageList.stories.tsx index 40567970b..e554f68e4 100644 --- a/src/v4/chat/components/AmityLiveChatMessageList/livechatMessageList.stories.tsx +++ b/src/v4/chat/components/MessageList/MessageList.stories.tsx @@ -1,9 +1,9 @@ import React from 'react'; import useChannelsCollection from '~/chat/hooks/collections/useChannelsCollection'; -import { AmityLiveChatMessageList } from '.'; +import { MessageList } from './MessageList'; export default { - title: 'V4/AmityLiveChatMessageList', + title: 'V4/MessageList', }; const SampleLiveChatMessageList = () => { @@ -19,7 +19,7 @@ const SampleLiveChatMessageList = () => { return
    No channels
    ; return (
    - console.log('reply', message)} /> @@ -29,5 +29,5 @@ const SampleLiveChatMessageList = () => { export const LiveChatMessageList = { render: () => , - name: 'AmityLiveChatMessageList', + name: 'MessageList', }; diff --git a/src/v4/chat/components/AmityLiveChatMessageList/index.tsx b/src/v4/chat/components/MessageList/MessageList.tsx similarity index 75% rename from src/v4/chat/components/AmityLiveChatMessageList/index.tsx rename to src/v4/chat/components/MessageList/MessageList.tsx index 84e7a7e69..a25823c60 100644 --- a/src/v4/chat/components/AmityLiveChatMessageList/index.tsx +++ b/src/v4/chat/components/MessageList/MessageList.tsx @@ -1,13 +1,12 @@ -import React from 'react'; +import React, { useEffect, useRef, useState } from 'react'; import InfiniteScroll from 'react-infinite-scroll-component'; -import styles from './styles.module.css'; -import LivechatLoadingIndicator from '~/v4/chat/components/LivechatLoadingIndicator'; + +import { LiveChatLoadingIndicator } from './LiveChatLoadingIndicator'; import useSDK from '~/core/hooks/useSDK'; -import AmityLiveChatMessageSenderView from '../AmityLiveChatMessageSenderView'; -import AmityLiveChatMessageReceiverView from '../AmityLiveChatMessageReceiverView'; +import { SenderMessageBubble } from '~/v4/chat/elements/SenderMessageBubble'; +import { ReceiverMessageBubble } from '~/v4/chat/elements/ReceiverMessageBubble'; import { deleteMessage, flagMessage } from '~/v4/utils'; import useMessagesCollection from '~/chat/hooks/collections/useMessagesCollection'; -import { FormattedMessage, useIntl } from 'react-intl'; import { Typography } from '~/v4/core/components'; import Redo from '~/v4/icons/Redo'; import { unFlagMessage } from '~/v4/utils/unFlagMessage'; @@ -16,13 +15,15 @@ import { useLiveChatNotifications } from '~/v4/chat/providers/LiveChatNotificati import { useCopyMessage } from '~/v4/core/hooks'; import { useAmityComponent } from '~/v4/core/hooks/uikit'; +import styles from './MessageList.module.css'; + interface AmityLiveChatMessageListProps { pageId?: string; channel: Amity.Channel; replyMessage: (message: Amity.Message<'text'>) => void; } -export const AmityLiveChatMessageList = ({ +export const MessageList = ({ pageId = '*', channel, replyMessage, @@ -30,9 +31,8 @@ export const AmityLiveChatMessageList = ({ const componentId = 'message_list'; const sdk = useSDK(); - const containerRef = React.useRef(null); - const { formatMessage } = useIntl(); - const [height, setHeight] = React.useState(undefined); + const containerRef = useRef(null); + const [height, setHeight] = useState(undefined); const { confirm } = useConfirmContext(); const notification = useLiveChatNotifications(); const copyMessage = useCopyMessage(); @@ -56,21 +56,21 @@ export const AmityLiveChatMessageList = ({ const onDeleteMessage = (messageId: string) => { confirm({ - title: formatMessage({ id: 'livechat.modal.delete.message.title' }), - content: formatMessage({ id: 'livechat.modal.delete.message.content' }), - cancelText: formatMessage({ id: 'cancel' }), - okText: formatMessage({ id: 'delete' }), + title: 'Delete this message?', + content: 'This message will also be removed from your friend’s devices.', + cancelText: 'Cancel', + okText: 'Delete', onOk: () => deleteMessage(messageId, { onError: () => notification.error({ - content: formatMessage({ id: 'livechat.delete.message.error' }), + content: 'Unable to delete message. Please try again.', }), }), }); }; - React.useEffect(() => { + useEffect(() => { const updateHeight = () => { if (containerRef.current) { setHeight(containerRef.current.clientHeight); @@ -95,9 +95,7 @@ export const AmityLiveChatMessageList = ({
    - - - + Couldn't load chat
    ); } @@ -114,7 +112,7 @@ export const AmityLiveChatMessageList = ({ loader={ isLoading ? (
    - +
    ) : null } @@ -125,7 +123,7 @@ export const AmityLiveChatMessageList = ({ {messages.map((message, i) => { if (message.creatorId === sdk.currentUserId) return ( - replyMessage(message), @@ -155,11 +153,11 @@ export const AmityLiveChatMessageList = ({ message.messageId, () => notification.success({ - content: formatMessage({ id: 'livechat.report.message.success' }), + content: 'Message reported', }), () => notification.error({ - content: formatMessage({ id: 'livechat.report.message.error' }), + content: 'This message failed to be reported. Please try again.', }), ), onUnflag: () => @@ -167,11 +165,11 @@ export const AmityLiveChatMessageList = ({ message.messageId, () => notification.success({ - content: formatMessage({ id: 'livechat.unReport.message.success' }), + content: 'Message unreported', }), () => notification.error({ - content: formatMessage({ id: 'livechat.unReport.message.error' }), + content: 'This message failed to be unreported. Please try again.', }), ), }} @@ -187,5 +185,3 @@ export const AmityLiveChatMessageList = ({
    ); }; - -export default AmityLiveChatMessageList; diff --git a/src/v4/chat/components/MessageList/index.tsx b/src/v4/chat/components/MessageList/index.tsx new file mode 100644 index 000000000..751517368 --- /dev/null +++ b/src/v4/chat/components/MessageList/index.tsx @@ -0,0 +1 @@ +export { MessageList } from './MessageList'; diff --git a/src/v4/chat/components/MessageQuickReaction/MessageQuickReaction.module.css b/src/v4/chat/components/MessageQuickReaction/MessageQuickReaction.module.css new file mode 100644 index 000000000..b4d5a6f58 --- /dev/null +++ b/src/v4/chat/components/MessageQuickReaction/MessageQuickReaction.module.css @@ -0,0 +1,15 @@ +.quickReactionIcon { + width: 1.25rem; + height: 1.25rem; + color: var(--asc-color-base-shade2); +} + +.quickReactionIconContainer { + display: flex; +} + +.quickReactionIconContainer:hover { + cursor: pointer; + background-color: var(--asc-color-secondary-shade4); + border-radius: var(--asc-border-radius-sm); +} diff --git a/src/v4/chat/components/MessageQuickReaction/MessageQuickReaction.tsx b/src/v4/chat/components/MessageQuickReaction/MessageQuickReaction.tsx new file mode 100644 index 000000000..9d680d502 --- /dev/null +++ b/src/v4/chat/components/MessageQuickReaction/MessageQuickReaction.tsx @@ -0,0 +1,46 @@ +import React, { useCallback } from 'react'; +import { useAmityElement } from '~/v4/core/hooks/uikit'; +import { AmityReactionType, useCustomReaction } from '~/v4/core/providers/CustomReactionProvider'; +import { QuickReactionIcon } from '~/v4/icons/QuickReactionIcon'; +import { selectMessageReaction } from '~/v4/utils/selectMessageReaction'; +import styles from './MessageQuickReaction.module.css'; + +interface MessageQuickReactionProps { + pageId?: string; + componentId?: string; + message: Amity.Message; + onSelectReaction?: () => void; +} + +export const MessageQuickReaction = ({ + pageId = '*', + componentId = '*', + message, + onSelectReaction, +}: MessageQuickReactionProps) => { + const elementId = 'message_quick_reaction'; + + const { config } = useAmityElement({ pageId, componentId, elementId }); + const { config: reactionConfig } = useCustomReaction(); + + const onClickQuickReaction = useCallback(() => { + if ( + reactionConfig && + config.reaction && + reactionConfig.find((reaction) => reaction.name === config.reaction) + ) { + selectMessageReaction({ + reactionName: config.reaction as AmityReactionType['name'], + message, + }); + } + + onSelectReaction && onSelectReaction(); + }, [reactionConfig, config, message]); + + return ( +
    + +
    + ); +}; diff --git a/src/v4/chat/components/MessageQuickReaction/index.tsx b/src/v4/chat/components/MessageQuickReaction/index.tsx index 7ff9939e9..7cb1e7e3a 100644 --- a/src/v4/chat/components/MessageQuickReaction/index.tsx +++ b/src/v4/chat/components/MessageQuickReaction/index.tsx @@ -1,46 +1 @@ -import React, { useCallback } from 'react'; -import { useAmityElement } from '~/v4/core/hooks/uikit'; -import { AmityReactionType, useCustomReaction } from '~/v4/core/providers/CustomReactionProvider'; -import { QuickReactionIcon } from '~/v4/icons/QuickReactionIcon'; -import { selectMessageReaction } from '~/v4/utils/selectMessageReaction'; -import styles from './styles.module.css'; - -interface MessageQuickReactionProps { - pageId?: string; - componentId?: string; - message: Amity.Message; - onSelectReaction?: () => void; -} - -export const MessageQuickReaction = ({ - pageId = '*', - componentId = '*', - message, - onSelectReaction, -}: MessageQuickReactionProps) => { - const elementId = 'message_quick_reaction'; - - const { config } = useAmityElement({ pageId, componentId, elementId }); - const { config: reactionConfig } = useCustomReaction(); - - const onClickQuickReaction = useCallback(() => { - if ( - reactionConfig && - config.reaction && - reactionConfig.find((reaction) => reaction.name === config.reaction) - ) { - selectMessageReaction({ - reactionName: config.reaction as AmityReactionType['name'], - message, - }); - } - - onSelectReaction && onSelectReaction(); - }, [reactionConfig, config, message]); - - return ( -
    - -
    - ); -}; +export { MessageQuickReaction } from './MessageQuickReaction'; diff --git a/src/v4/chat/components/UserAvatar/index.tsx b/src/v4/chat/components/UserAvatar/index.tsx deleted file mode 100644 index becd694f4..000000000 --- a/src/v4/chat/components/UserAvatar/index.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import { FileRepository } from '@amityco/ts-sdk'; -import UiKitAvatar from '~/core/components/Avatar'; -import { SIZE_ALIAS } from '~/core/hocs/withSize'; - -export interface UserAvatarProps { - size?: typeof SIZE_ALIAS[keyof typeof SIZE_ALIAS] | null; - avatarUrl?: string | null; - avatarFileId?: string | null; - avatarFile?: File | null; - defaultImage?: string | null; - avatarCustomUrl?: string | null; -} - -const UserAvatar = ({ - size = SIZE_ALIAS.REGULAR, - avatarUrl, - avatarFileId, - avatarFile, - defaultImage, - avatarCustomUrl, -}: UserAvatarProps) => { - const [avatar, setAvatar] = useState(null); - const [backgroundImage, setBackgroundImage] = useState(null); - - useEffect(() => { - setAvatar(null); - setBackgroundImage(null); - const getAvatarProps = async () => { - if (avatarUrl) { - setAvatar(avatarUrl); - return; - } - if (avatarCustomUrl) { - setAvatar(avatarCustomUrl); - return; - } - if (avatarFile) { - const toBase64 = (file: File) => - new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.readAsDataURL(file); - reader.onload = () => resolve(reader.result as string); - reader.onerror = reject; - }); - - const fileBase64 = await toBase64(avatarFile); - setAvatar(fileBase64); - return; - } - if (avatarFileId) { - const avatarFileUrl = await FileRepository.fileUrlWithSize(avatarFileId, 'small'); - setAvatar(avatarFileUrl); - return; - } - - if (defaultImage) { - setBackgroundImage(defaultImage); - return; - } - }; - getAvatarProps(); - }, [avatarUrl, avatarFileId, avatarFile, avatarCustomUrl]); - - return ; -}; - -export default UserAvatar; diff --git a/src/v4/chat/components/index.ts b/src/v4/chat/components/index.ts deleted file mode 100644 index 9b139945e..000000000 --- a/src/v4/chat/components/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -export { AmityLiveChatHeader } from './AmityLiveChatHeader'; -export { AmityLiveChatMessageReceiverView } from './AmityLiveChatMessageReceiverView'; -export { AmityLiveChatMessageSenderView } from './AmityLiveChatMessageSenderView'; -export { AmityLiveChatMessageList } from './AmityLiveChatMessageList'; -export { AmityLiveChatMessageComposeBar } from './AmityLiveChatMessageComposeBar'; - -export { MessageReactionPicker } from './MessageReactionPicker'; -export { MessageQuickReaction } from './MessageQuickReaction'; -export { MessageReactionPreview } from './MessageReactionPreview'; - -import type { AmityMessageActionType } from './LiveChatMessageContent/MessageAction'; -export type { AmityMessageActionType }; diff --git a/src/v4/chat/components/AmityLiveChatMessageReceiverView/index.tsx b/src/v4/chat/elements/ReceiverMessageBubble/ReceiverMessageBubble.tsx similarity index 51% rename from src/v4/chat/components/AmityLiveChatMessageReceiverView/index.tsx rename to src/v4/chat/elements/ReceiverMessageBubble/ReceiverMessageBubble.tsx index 74859a42a..7deadc5ac 100644 --- a/src/v4/chat/components/AmityLiveChatMessageReceiverView/index.tsx +++ b/src/v4/chat/elements/ReceiverMessageBubble/ReceiverMessageBubble.tsx @@ -1,31 +1,33 @@ import React from 'react'; -import useUser from '~/core/hooks/useUser'; -import useImage from '~/core/hooks/useImage'; -import LiveChatMessageContent from '../LiveChatMessageContent'; -import { AmityMessageActionType } from '../LiveChatMessageContent/MessageAction'; +import LiveChatMessageContent from '~/v4/chat/internal-components/LiveChatMessageContent'; +import { MessageActionType } from '~/v4/chat/internal-components/LiveChatMessageContent/MessageAction'; +import { useUser } from '~/v4/core/hooks/objects/useUser'; +import { useImage } from '~/v4/core/hooks/useImage'; -interface AmityLiveChatMessageReceiverViewProps { +interface ReceiverMessageBubbleProps { pageId?: string; componentId?: string; message: Amity.Message; containerRef: React.RefObject; - action: AmityMessageActionType; + action: MessageActionType; } -export const AmityLiveChatMessageReceiverView = ({ +export const ReceiverMessageBubble = ({ pageId = '*', componentId = '*', message, containerRef, action, -}: AmityLiveChatMessageReceiverViewProps) => { - const user = useUser(message.creatorId); +}: ReceiverMessageBubbleProps) => { + const elementId = 'receiver_message_bubble'; + const { user } = useUser(message.creatorId); const avatarFileUrl = useImage({ fileId: user?.avatarFileId, imageSize: 'small' }); return ( } userDisplayName={user?.displayName} avatarUrl={avatarFileUrl} @@ -34,5 +36,3 @@ export const AmityLiveChatMessageReceiverView = ({ /> ); }; - -export default AmityLiveChatMessageReceiverView; diff --git a/src/v4/chat/elements/ReceiverMessageBubble/index.tsx b/src/v4/chat/elements/ReceiverMessageBubble/index.tsx new file mode 100644 index 000000000..340fcd8a2 --- /dev/null +++ b/src/v4/chat/elements/ReceiverMessageBubble/index.tsx @@ -0,0 +1 @@ +export { ReceiverMessageBubble } from './ReceiverMessageBubble'; diff --git a/src/v4/chat/components/AmityLiveChatMessageSenderView/messageSender.stories.tsx b/src/v4/chat/elements/SenderMessageBubble/SenderMessageBubble.stories.tsx similarity index 84% rename from src/v4/chat/components/AmityLiveChatMessageSenderView/messageSender.stories.tsx rename to src/v4/chat/elements/SenderMessageBubble/SenderMessageBubble.stories.tsx index 65e4cc4c2..c5b61f3e1 100644 --- a/src/v4/chat/components/AmityLiveChatMessageSenderView/messageSender.stories.tsx +++ b/src/v4/chat/elements/SenderMessageBubble/SenderMessageBubble.stories.tsx @@ -1,10 +1,10 @@ import React, { useRef } from 'react'; import useChannelsCollection from '~/chat/hooks/collections/useChannelsCollection'; import useMessagesCollection from '~/chat/hooks/collections/useMessagesCollection'; -import AmityLiveChatMessageSenderView from '.'; +import { SenderMessageBubble } from './SenderMessageBubble'; export default { - title: 'V4/AmityMessageSenderView', + title: 'V4/SenderMessageBubble', }; const SampleMessageSenderView = () => { @@ -28,12 +28,12 @@ const SampleMessageSenderView = () => { return (
    - +
    ); }; export const LiveChatStory = { render: () => , - name: 'AmityLiveChatMessageSender', + name: 'SenderMessageBubble', }; diff --git a/src/v4/chat/components/AmityLiveChatMessageSenderView/index.tsx b/src/v4/chat/elements/SenderMessageBubble/SenderMessageBubble.tsx similarity index 64% rename from src/v4/chat/components/AmityLiveChatMessageSenderView/index.tsx rename to src/v4/chat/elements/SenderMessageBubble/SenderMessageBubble.tsx index 1b5f8f870..4f478111b 100644 --- a/src/v4/chat/components/AmityLiveChatMessageSenderView/index.tsx +++ b/src/v4/chat/elements/SenderMessageBubble/SenderMessageBubble.tsx @@ -1,24 +1,25 @@ import React from 'react'; import useUser from '~/core/hooks/useUser'; import useImage from '~/core/hooks/useImage'; -import LiveChatMessageContent from '../LiveChatMessageContent'; -import { AmityMessageActionType } from '../LiveChatMessageContent/MessageAction'; +import LiveChatMessageContent from '~/v4/chat/internal-components/LiveChatMessageContent'; +import { MessageActionType } from '~/v4/chat/internal-components/LiveChatMessageContent/MessageAction'; -interface AmityLiveChatMessageSenderViewProps { +interface SenderMessageBubbleProps { pageId?: string; componentId?: string; message: Amity.Message; containerRef: React.RefObject; - action?: AmityMessageActionType; + action?: MessageActionType; } -export const AmityLiveChatMessageSenderView = ({ +export const SenderMessageBubble = ({ pageId = '*', componentId = '*', message, containerRef, action, -}: AmityLiveChatMessageSenderViewProps) => { +}: SenderMessageBubbleProps) => { + const elementId = 'sender_message_bubble'; const user = useUser(message.creatorId); const avatarFileUrl = useImage({ fileId: user?.avatarFileId, imageSize: 'small' }); @@ -31,8 +32,7 @@ export const AmityLiveChatMessageSenderView = ({ action={action} pageId={pageId} componentId={componentId} + elementId={elementId} /> ); }; - -export default AmityLiveChatMessageSenderView; diff --git a/src/v4/chat/elements/SenderMessageBubble/index.tsx b/src/v4/chat/elements/SenderMessageBubble/index.tsx new file mode 100644 index 000000000..18d737492 --- /dev/null +++ b/src/v4/chat/elements/SenderMessageBubble/index.tsx @@ -0,0 +1 @@ +export { SenderMessageBubble } from './SenderMessageBubble'; diff --git a/src/v4/chat/hooks/collections/useSearchChannelUser.ts b/src/v4/chat/hooks/collections/useSearchChannelUser.ts index ae4da933b..429bacb9c 100644 --- a/src/v4/chat/hooks/collections/useSearchChannelUser.ts +++ b/src/v4/chat/hooks/collections/useSearchChannelUser.ts @@ -1,15 +1,23 @@ -import useLiveCollection from '~/core/hooks/useLiveCollection'; +import useLiveCollection from '~/v4/core/hooks/useLiveCollection'; import { ChannelRepository } from '@amityco/ts-sdk'; -const useSearchChannelUser = ( - channelId: Amity.Channel['channelId'], - memberships: Amity.QueryChannelMembers['memberships'], - search?: string | null, -) => { +export const useSearchChannelUser = ({ + channelId, + memberships, + search, + limit = 20, + shouldCall = true, +}: { + channelId: Amity.Channel['channelId']; + memberships: Amity.QueryChannelMembers['memberships']; + limit?: number; + search?: string | null; + shouldCall?: boolean; +}) => { const { items, ...rest } = useLiveCollection({ fetcher: ChannelRepository.Membership.searchMembers, - params: { channelId, search: search || '', memberships }, - shouldCall: () => !!channelId, + params: { channelId, search: search || '', memberships, limit }, + shouldCall: !!channelId && shouldCall, }); return { @@ -17,5 +25,3 @@ const useSearchChannelUser = ( ...rest, }; }; - -export default useSearchChannelUser; diff --git a/src/v4/chat/hooks/useChannel.ts b/src/v4/chat/hooks/useChannel.ts index e90e36ade..44494ddcc 100644 --- a/src/v4/chat/hooks/useChannel.ts +++ b/src/v4/chat/hooks/useChannel.ts @@ -1,12 +1,12 @@ import { ChannelRepository } from '@amityco/ts-sdk'; -import useLiveObject from '~/core/hooks/useLiveObject'; +import useLiveObject from '~/v4/core/hooks/useLiveObject'; -const useChannel = (channelId?: string) => { - return useLiveObject({ +export const useChannel = ({ channelId }: { channelId?: string }) => { + const { item, ...rest } = useLiveObject({ fetcher: ChannelRepository.getChannel, params: channelId, - shouldCall: () => !!channelId, + shouldCall: !!channelId, }); -}; -export default useChannel; + return { channel: item, ...rest }; +}; diff --git a/src/v4/chat/hooks/useChannelPermission.ts b/src/v4/chat/hooks/useChannelPermission.ts index 1d42662c1..a1ae6bf54 100644 --- a/src/v4/chat/hooks/useChannelPermission.ts +++ b/src/v4/chat/hooks/useChannelPermission.ts @@ -1,20 +1,18 @@ -import { useEffect, useState } from 'react'; +import { useMemo } from 'react'; import useSDK from '~/core/hooks/useSDK'; -const useChannelPermission = (subChannelId: Amity.SubChannel['subChannelId']) => { +export const useChannelPermission = (subChannelId?: Amity.SubChannel['subChannelId']) => { const { client } = useSDK(); - const [isModerator, setIsModerator] = useState(false); - useEffect(() => { + const isModerator = useMemo(() => { + if (!subChannelId) return false; const currentUser = client?.hasPermission('MUTE_CHANNEL').currentUser() || false; const currentUserInChannel = client?.hasPermission('MUTE_CHANNEL').channel(subChannelId) || false; - setIsModerator(currentUser || currentUserInChannel); + return currentUser || currentUserInChannel; }, [subChannelId]); return { isModerator, }; }; - -export default useChannelPermission; diff --git a/src/v4/chat/hooks/useCommunity.ts b/src/v4/chat/hooks/useCommunity.ts index 5757ddd9e..cdac6c13f 100644 --- a/src/v4/chat/hooks/useCommunity.ts +++ b/src/v4/chat/hooks/useCommunity.ts @@ -1,15 +1,21 @@ import { CommunityRepository } from '@amityco/ts-sdk'; +import useLiveObject from '~/v4/core/hooks/useLiveObject'; -import useLiveObject from '~/core/hooks/useLiveObject'; - -// breaking changes - -const useCommunity = (communityId: string | null | undefined) => { - return useLiveObject({ +export const useCommunity = ({ + communityId, + shouldCall = true, +}: { + communityId: string | null | undefined; + shouldCall?: boolean; +}) => { + const { item, ...rest } = useLiveObject({ fetcher: CommunityRepository.getCommunity, params: communityId, - shouldCall: () => !!communityId, + shouldCall: !!communityId && shouldCall, }); -}; -export default useCommunity; + return { + community: item, + ...rest, + }; +}; diff --git a/src/v4/chat/hooks/useCurrentUserChannelMembership.ts b/src/v4/chat/hooks/useCurrentUserChannelMembership.ts index bb50901a4..8f0d4de95 100644 --- a/src/v4/chat/hooks/useCurrentUserChannelMembership.ts +++ b/src/v4/chat/hooks/useCurrentUserChannelMembership.ts @@ -1,13 +1,13 @@ import useSDK from '~/core/hooks/useSDK'; -import useSearchChannelUser from '~/v4/chat/hooks/collections/useSearchChannelUser'; +import { useSearchChannelUser } from '~/v4/chat/hooks/collections/useSearchChannelUser'; const useCurrentUserChannelMembership = (channelId: Amity.Channel['channelId']) => { const { currentUserId } = useSDK(); - const { channelMembers, isLoading } = useSearchChannelUser( + const { channelMembers, isLoading } = useSearchChannelUser({ channelId, - ['member', 'banned', 'muted'], - currentUserId, - ); + memberships: ['member', 'banned', 'muted'], + search: currentUserId, + }); if (isLoading) return null; diff --git a/src/v4/chat/hooks/useMention.ts b/src/v4/chat/hooks/useMention.ts index c721fbfdc..952686daa 100644 --- a/src/v4/chat/hooks/useMention.ts +++ b/src/v4/chat/hooks/useMention.ts @@ -1,7 +1,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import { ChannelRepository, CommunityRepository, UserRepository } from '@amityco/ts-sdk'; import { extractMetadata, formatMentionees, isNonNullable } from '~/v4/helpers/utils'; -import useCommunity from './useCommunity'; +import { useCommunity } from './useCommunity'; interface UseMentionProps { targetId?: string; @@ -22,7 +22,7 @@ export type QueryMentioneesFnType = (query?: string) => Promise< const useMention = ({ targetId, targetType, remoteText, remoteMarkup }: UseMentionProps) => { const isCommunityFeed = targetType === 'community'; const isChannel = targetType === 'channel'; - const community = useCommunity(targetId); + const { community } = useCommunity({ communityId: targetId }); const [text, setText] = useState(remoteText ?? ''); const [markup, setMarkup] = useState(remoteMarkup ?? remoteText); diff --git a/src/v4/chat/components/HomeIndicator/index.tsx b/src/v4/chat/internal-components/HomeIndicator/index.tsx similarity index 76% rename from src/v4/chat/components/HomeIndicator/index.tsx rename to src/v4/chat/internal-components/HomeIndicator/index.tsx index 3e848887e..9c139e84b 100644 --- a/src/v4/chat/components/HomeIndicator/index.tsx +++ b/src/v4/chat/internal-components/HomeIndicator/index.tsx @@ -1,12 +1,10 @@ import React from 'react'; import styles from './styles.module.css'; -const HomeIndecator = () => { +export const HomeIndicator = () => { return (
    ); }; - -export default HomeIndecator; diff --git a/src/v4/chat/components/HomeIndicator/styles.module.css b/src/v4/chat/internal-components/HomeIndicator/styles.module.css similarity index 100% rename from src/v4/chat/components/HomeIndicator/styles.module.css rename to src/v4/chat/internal-components/HomeIndicator/styles.module.css diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageAction/index.tsx b/src/v4/chat/internal-components/LiveChatMessageContent/MessageAction/index.tsx similarity index 77% rename from src/v4/chat/components/LiveChatMessageContent/MessageAction/index.tsx rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageAction/index.tsx index 38bfc9136..6f7d480e4 100644 --- a/src/v4/chat/components/LiveChatMessageContent/MessageAction/index.tsx +++ b/src/v4/chat/internal-components/LiveChatMessageContent/MessageAction/index.tsx @@ -1,7 +1,6 @@ -import React, { useRef } from 'react'; +import React, { useRef, useState } from 'react'; import styles from './styles.module.css'; import Kebub from '~/v4/icons/Kebub'; -import { useIntl } from 'react-intl'; import Popover from '~/v4/core/components/Popover'; import Reply from '~/v4/icons/Reply'; import Copy from '~/v4/icons/Copy'; @@ -9,7 +8,7 @@ import Bin from '~/v4/icons/Bin'; import Flag from '~/v4/icons/Flag'; import { Typography } from '~/v4/core/components'; -export type AmityMessageActionType = { +export type MessageActionType = { onCopy?: () => void; onFlag?: () => void; onUnflag?: () => void; @@ -22,19 +21,18 @@ interface MessageActionProps { isOwner: boolean; isModerator: boolean; isFlagged?: boolean; - action: AmityMessageActionType; + action: MessageActionType; containerRef: React.RefObject; } -const MessageAction = ({ +export const MessageAction = ({ isOwner, isModerator, isFlagged, action, containerRef, }: MessageActionProps) => { - const [isPopoverOpen, setIsPopoverOpen] = React.useState(false); - const { formatMessage } = useIntl(); + const [isPopoverOpen, setIsPopoverOpen] = useState(false); const clickMeButtonRef = useRef(null); const onCopyMessage = () => { @@ -74,17 +72,13 @@ const MessageAction = ({ <>
    - - {formatMessage({ id: 'livechat.messageBubble.reply.button' })} - + Reply
    - - {formatMessage({ id: 'livechat.messageBubble.copy.button' })} - + Copy
    @@ -110,15 +104,7 @@ const MessageAction = ({ onClick={isFlagged ? onUnFlagMessage : onFlagMessage} >
    - - {formatMessage({ - id: `${ - isFlagged - ? 'livechat.messageBubble.unReport.button' - : 'livechat.messageBubble.report.button' - }`, - })} - + {isFlagged ? 'Unreport' : 'Report'}
    @@ -126,9 +112,7 @@ const MessageAction = ({ {(isOwner || isModerator) && (
    - - {formatMessage({ id: 'livechat.messageBubble.delete.button' })} - + Delete
    @@ -150,5 +134,3 @@ const MessageAction = ({ ); }; - -export default MessageAction; diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageAction/styles.module.css b/src/v4/chat/internal-components/LiveChatMessageContent/MessageAction/styles.module.css similarity index 92% rename from src/v4/chat/components/LiveChatMessageContent/MessageAction/styles.module.css rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageAction/styles.module.css index 01331658a..54c62dda7 100644 --- a/src/v4/chat/components/LiveChatMessageContent/MessageAction/styles.module.css +++ b/src/v4/chat/internal-components/LiveChatMessageContent/MessageAction/styles.module.css @@ -39,7 +39,7 @@ } .messageDangerActionButtonText { - color: var(--asc-color-alert); + color: var(--asc-color-alert-default); } .copyIcon { @@ -53,7 +53,7 @@ .binIcon { width: 1.25rem; height: 1.25rem; - fill: var(--asc-color-alert); + fill: var(--asc-color-alert-default); } .mentionIcon { diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageBubble/index.tsx b/src/v4/chat/internal-components/LiveChatMessageContent/MessageBubble/index.tsx similarity index 93% rename from src/v4/chat/components/LiveChatMessageContent/MessageBubble/index.tsx rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageBubble/index.tsx index e117e257d..524e7758f 100644 --- a/src/v4/chat/components/LiveChatMessageContent/MessageBubble/index.tsx +++ b/src/v4/chat/internal-components/LiveChatMessageContent/MessageBubble/index.tsx @@ -2,7 +2,7 @@ import React from 'react'; import styles from './styles.module.css'; import useUser from '~/core/hooks/useUser'; import useMessage from '~/chat/hooks/useMessage'; -import MessageTextWithMention from '../MessageTextWithMention'; +import MessageTextWithMention from '../MessageTextWithMention/index'; import { Typography } from '~/v4/core/components'; import useSDK from '~/core/hooks/useSDK'; @@ -11,7 +11,7 @@ interface MessageBubbleProps { } const MessageBubble = ({ message }: MessageBubbleProps) => { - const userId = useSDK().currentUserId; + const { currentUserId: userId } = useSDK(); const isMentionToMe = message.metadata?.mentioned?.some( (mention: { index: number; userId: string; type: 'user' | 'channel'; length: number }) => mention.userId === userId || mention.type === 'channel', diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageBubble/styles.module.css b/src/v4/chat/internal-components/LiveChatMessageContent/MessageBubble/styles.module.css similarity index 100% rename from src/v4/chat/components/LiveChatMessageContent/MessageBubble/styles.module.css rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageBubble/styles.module.css diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageBubbleContainer/index.tsx b/src/v4/chat/internal-components/LiveChatMessageContent/MessageBubbleContainer/index.tsx similarity index 83% rename from src/v4/chat/components/LiveChatMessageContent/MessageBubbleContainer/index.tsx rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageBubbleContainer/index.tsx index 4031d2b1f..275396b1e 100644 --- a/src/v4/chat/components/LiveChatMessageContent/MessageBubbleContainer/index.tsx +++ b/src/v4/chat/internal-components/LiveChatMessageContent/MessageBubbleContainer/index.tsx @@ -2,7 +2,7 @@ import React from 'react'; import styles from './styles.module.css'; import User from '~/v4/icons/User'; import { Typography } from '~/v4/core/components'; -import { Avatar, AVATAR_SIZE } from '~/v4/core/components/Avatar'; +import { Avatar } from '~/v4/core/components/Avatar'; interface MessageBubbleContainerProps { avatarUrl?: string; @@ -17,8 +17,9 @@ const MessageBubbleContainer = ({ }: MessageBubbleContainerProps) => { return (
    - } /> - +
    + } /> +
    {/* TODO: release 1.1 hide moderator badge, will be implemented in release 1.2 */} diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageBubbleContainer/styles.module.css b/src/v4/chat/internal-components/LiveChatMessageContent/MessageBubbleContainer/styles.module.css similarity index 100% rename from src/v4/chat/components/LiveChatMessageContent/MessageBubbleContainer/styles.module.css rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageBubbleContainer/styles.module.css diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageReaction/index.tsx b/src/v4/chat/internal-components/LiveChatMessageContent/MessageReaction/index.tsx similarity index 100% rename from src/v4/chat/components/LiveChatMessageContent/MessageReaction/index.tsx rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageReaction/index.tsx diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageReaction/styles.module.css b/src/v4/chat/internal-components/LiveChatMessageContent/MessageReaction/styles.module.css similarity index 100% rename from src/v4/chat/components/LiveChatMessageContent/MessageReaction/styles.module.css rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageReaction/styles.module.css diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageTextWithMention/index.tsx b/src/v4/chat/internal-components/LiveChatMessageContent/MessageTextWithMention/index.tsx similarity index 100% rename from src/v4/chat/components/LiveChatMessageContent/MessageTextWithMention/index.tsx rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageTextWithMention/index.tsx diff --git a/src/v4/chat/components/LiveChatMessageContent/MessageTextWithMention/styles.module.css b/src/v4/chat/internal-components/LiveChatMessageContent/MessageTextWithMention/styles.module.css similarity index 100% rename from src/v4/chat/components/LiveChatMessageContent/MessageTextWithMention/styles.module.css rename to src/v4/chat/internal-components/LiveChatMessageContent/MessageTextWithMention/styles.module.css diff --git a/src/v4/chat/components/LiveChatMessageContent/index.tsx b/src/v4/chat/internal-components/LiveChatMessageContent/index.tsx similarity index 80% rename from src/v4/chat/components/LiveChatMessageContent/index.tsx rename to src/v4/chat/internal-components/LiveChatMessageContent/index.tsx index 01bed88fc..cb46e6f57 100644 --- a/src/v4/chat/components/LiveChatMessageContent/index.tsx +++ b/src/v4/chat/internal-components/LiveChatMessageContent/index.tsx @@ -1,39 +1,40 @@ import React, { useState } from 'react'; -import styles from './styles.module.css'; +import dayjs from 'dayjs'; import { Typography } from '~/v4/core/components'; -import MessageAction, { AmityMessageActionType } from './MessageAction'; -import MessageBubbleContainer from './MessageBubbleContainer'; -import { FormattedTime, useIntl } from 'react-intl'; +import { MessageAction, MessageActionType } from './MessageAction'; +import MessageBubbleContainer from './MessageBubbleContainer/index'; import Bin from '~/v4/icons/Bin'; import useSDK from '~/core/hooks/useSDK'; -import MessageBubble from './MessageBubble'; -import useChannelPermission from '~/v4/chat/hooks/useChannelPermission'; +import MessageBubble from './MessageBubble/index'; +import { useChannelPermission } from '~/v4/chat/hooks/useChannelPermission'; import Flag from '~/v4/icons/Flag'; -import { MessageReaction } from './MessageReaction'; +import { MessageReaction } from './MessageReaction/index'; import { MessageReactionPreview } from '~/v4/chat/components/MessageReactionPreview'; import Sheet from 'react-modal-sheet'; import { ReactionList } from '~/v4/social/components'; +import styles from './styles.module.css'; interface MessageItemProps { pageId?: string; componentId?: string; + elementId?: string; message: Amity.Message<'text'>; userDisplayName?: string; avatarUrl?: string; containerRef: React.RefObject; - action?: AmityMessageActionType; + action?: MessageActionType; } const LiveChatMessageContent = ({ pageId = '*', componentId = '*', + elementId = '*', message, avatarUrl, userDisplayName, containerRef, action, }: MessageItemProps) => { - const { formatMessage } = useIntl(); const sdk = useSDK(); const isOwner = message.creatorId === sdk.currentUserId; const { isModerator } = useChannelPermission(message.channelId); @@ -47,11 +48,7 @@ const LiveChatMessageContent = ({
    - - {formatMessage({ - id: 'livechat.deleted.message', - })} - + This message was deleted
    ) : ( @@ -79,9 +76,7 @@ const LiveChatMessageContent = ({ componentId={componentId} /> {message.flagCount > 0 && } -
    - -
    +
    {dayjs(message.createdAt).format('HH:mm A')}
    )}
    diff --git a/src/v4/chat/components/LiveChatMessageContent/styles.module.css b/src/v4/chat/internal-components/LiveChatMessageContent/styles.module.css similarity index 95% rename from src/v4/chat/components/LiveChatMessageContent/styles.module.css rename to src/v4/chat/internal-components/LiveChatMessageContent/styles.module.css index 0cf5143fd..1d97abb0a 100644 --- a/src/v4/chat/components/LiveChatMessageContent/styles.module.css +++ b/src/v4/chat/internal-components/LiveChatMessageContent/styles.module.css @@ -77,7 +77,7 @@ .reactionListContainer { height: 100% !important; - background-color: var(--asc-color-base-background) !important; + background-color: var(--asc-color-background-default) !important; } .reactionListBackdrop { diff --git a/src/v4/chat/components/LiveChatNotification/styles.module.css b/src/v4/chat/internal-components/LiveChatNotification/LiveChatNotification.module.css similarity index 96% rename from src/v4/chat/components/LiveChatNotification/styles.module.css rename to src/v4/chat/internal-components/LiveChatNotification/LiveChatNotification.module.css index 336baa6ab..55b3f4c6e 100644 --- a/src/v4/chat/components/LiveChatNotification/styles.module.css +++ b/src/v4/chat/internal-components/LiveChatNotification/LiveChatNotification.module.css @@ -1,5 +1,3 @@ -/* styles.module.css */ - .notifications { position: relative; bottom: var(--asc-spacing-m1); diff --git a/src/v4/chat/components/LiveChatNotification/index.tsx b/src/v4/chat/internal-components/LiveChatNotification/LiveChatNotification.tsx similarity index 82% rename from src/v4/chat/components/LiveChatNotification/index.tsx rename to src/v4/chat/internal-components/LiveChatNotification/LiveChatNotification.tsx index 5b33fde89..a9174bda4 100644 --- a/src/v4/chat/components/LiveChatNotification/index.tsx +++ b/src/v4/chat/internal-components/LiveChatNotification/LiveChatNotification.tsx @@ -1,16 +1,17 @@ import React, { ReactNode } from 'react'; import clsx from 'clsx'; -import styles from './styles.module.css'; import { Typography } from '~/v4/core/components/index'; import { useLiveChatNotificationData } from '~/v4/chat/providers/LiveChatNotificationProvider'; +import styles from './LiveChatNotification.module.css'; + interface NotificationProps { className?: string; content: ReactNode; icon?: ReactNode; } -const LiveChatNotification = ({ className, content, icon }: NotificationProps) => ( +export const LiveChatNotification = ({ className, content, icon }: NotificationProps) => (
    {icon} {content} @@ -28,5 +29,3 @@ export const LiveChatNotificationsContainer = () => {
    ); }; - -export default LiveChatNotification; diff --git a/src/v4/chat/internal-components/LiveChatNotification/index.tsx b/src/v4/chat/internal-components/LiveChatNotification/index.tsx new file mode 100644 index 000000000..95293f518 --- /dev/null +++ b/src/v4/chat/internal-components/LiveChatNotification/index.tsx @@ -0,0 +1 @@ +export { LiveChatNotification, LiveChatNotificationsContainer } from './LiveChatNotification'; diff --git a/src/v4/chat/pages/AmityLiveChatPage/styles.module.css b/src/v4/chat/pages/AmityLiveChatPage/styles.module.css deleted file mode 100644 index 0bb535a12..000000000 --- a/src/v4/chat/pages/AmityLiveChatPage/styles.module.css +++ /dev/null @@ -1,24 +0,0 @@ -.messageListSheet { - z-index: 1000 !important; - - @media (width >= 768px) { - width: 375px !important; - } - - .messageListSheetContainer { - height: 100% !important; - background-color: var(--asc-color-base-background) !important; - } -} - -.messageListHeaderWrap { - box-shadow: var(--asc-box-shadow-01); -} - -.amtiyLivechatPage { - display: flex; - flex-direction: column; - background-color: var(--asc-color-base-background); - height: 100%; - overflow-y: hidden; -} diff --git a/src/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatCustomState.tsx b/src/v4/chat/pages/LiveChat/ChatContainer/ChatCustomState.tsx similarity index 100% rename from src/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatCustomState.tsx rename to src/v4/chat/pages/LiveChat/ChatContainer/ChatCustomState.tsx diff --git a/src/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatLoadingState.tsx b/src/v4/chat/pages/LiveChat/ChatContainer/ChatLoadingState.tsx similarity index 76% rename from src/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatLoadingState.tsx rename to src/v4/chat/pages/LiveChat/ChatContainer/ChatLoadingState.tsx index 30ea7d9d8..dab804b78 100644 --- a/src/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatLoadingState.tsx +++ b/src/v4/chat/pages/LiveChat/ChatContainer/ChatLoadingState.tsx @@ -1,8 +1,7 @@ import React from 'react'; -import { FormattedMessage } from 'react-intl'; import { Typography } from '~/v4/core/components'; import Spinner from '~/social/components/Spinner'; -import HomeIndicator from '~/v4/chat/components/HomeIndicator'; +import { HomeIndicator } from '~/v4/chat/internal-components/HomeIndicator'; import styles from './styles.module.css'; const ChatLoadingState = ({ children }: { children?: React.ReactNode }) => { @@ -15,9 +14,7 @@ const ChatLoadingState = ({ children }: { children?: React.ReactNode }) => {
    - - - + Loading chat...
    diff --git a/src/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatReadyState.tsx b/src/v4/chat/pages/LiveChat/ChatContainer/ChatReadyState.tsx similarity index 69% rename from src/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatReadyState.tsx rename to src/v4/chat/pages/LiveChat/ChatContainer/ChatReadyState.tsx index 58c46e592..1fac0dcf6 100644 --- a/src/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatReadyState.tsx +++ b/src/v4/chat/pages/LiveChat/ChatContainer/ChatReadyState.tsx @@ -1,20 +1,19 @@ import React, { useEffect, useRef, useState } from 'react'; -import { AmityLiveChatMessageList } from '~/v4/chat/components/AmityLiveChatMessageList'; -import AmityLiveChatMessageComposeBar from '~/v4/chat/components/AmityLiveChatMessageComposeBar'; -import ReplyMessagePlaceholder from '~/v4/chat/pages/AmityLiveChatPage/ChatContainer/ReplyMessagePlaceholder'; +import { MessageList } from '~/v4/chat/components/MessageList'; +import { MessageComposer } from '~/v4/chat/components/MessageComposer'; +import { ReplyMessagePlaceholder } from '~/v4/chat/pages/LiveChat/ChatContainer/ReplyMessagePlaceholder'; import useConnectionStates from '~/social/hooks/useConnectionStates'; -import ChatLoadingState from '~/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatLoadingState'; -import ChatCustomState from '~/v4/chat/pages/AmityLiveChatPage/ChatContainer/ChatCustomState'; +import ChatLoadingState from '~/v4/chat/pages/LiveChat/ChatContainer/ChatLoadingState'; +import ChatCustomState from '~/v4/chat/pages/LiveChat/ChatContainer/ChatCustomState'; import styles from './styles.module.css'; -import { LiveChatNotificationsContainer } from '~/v4/chat/components/LiveChatNotification'; +import { LiveChatNotificationsContainer } from '~/v4/chat/internal-components/LiveChatNotification'; import MutedIcon from '~/v4/icons/Muted'; import { Typography } from '~/v4/core/components/Typography'; import mentionStyles from '~/v4/core/components/InputText/styles.module.css'; -import { FormattedMessage } from 'react-intl'; import CommentAltExclamation from '~/v4/icons/CommentAltExclamation'; -import useSearchChannelUser from '~/v4/chat/hooks/collections/useSearchChannelUser'; +import { useSearchChannelUser } from '~/v4/chat/hooks/collections/useSearchChannelUser'; import useSDK from '~/core/hooks/useSDK'; -import useChannelPermission from '~/v4/chat/hooks/useChannelPermission'; +import { useChannelPermission } from '~/v4/chat/hooks/useChannelPermission'; const ChatReadyState = ({ pageId = '*', channel }: { pageId?: string; channel: Amity.Channel }) => { const isOnline = useConnectionStates(); @@ -22,7 +21,10 @@ const ChatReadyState = ({ pageId = '*', channel }: { pageId?: string; channel: A const { isModerator } = useChannelPermission(channel.channelId); const currentUserId = useSDK().currentUserId; - const { channelMembers } = useSearchChannelUser(channel.channelId, ['member', 'banned', 'muted']); + const { channelMembers } = useSearchChannelUser({ + channelId: channel.channelId, + memberships: ['member', 'banned', 'muted'], + }); const currentUserMembership = channelMembers.find((member) => member.userId === currentUserId); const [replyMessage, setReplyMessage] = useState | undefined>(undefined); @@ -47,11 +49,9 @@ const ChatReadyState = ({ pageId = '*', channel }: { pageId?: string; channel: A
    - - - + You are banned from chat - + You won’t be able to participate in this chat until you’ve been unbanned.
    @@ -59,7 +59,7 @@ const ChatReadyState = ({ pageId = '*', channel }: { pageId?: string; channel: A return ( <> - + {isOnline && ( <> @@ -68,15 +68,13 @@ const ChatReadyState = ({ pageId = '*', channel }: { pageId?: string; channel: A
    - + This channel has been set to read-only by the channel moderator
    ) : currentUserMembership?.isMuted ? (
    - - - + You’ve been muted by the channel moderator
    ) : null} @@ -97,8 +95,8 @@ const ChatReadyState = ({ pageId = '*', channel }: { pageId?: string; channel: A
    - ; onDismiss: () => void; } -const ReplyMessagePlaceholder = ({ replyMessage, onDismiss }: ReplyMessagePlaceholderProps) => { +export const ReplyMessagePlaceholder = ({ + replyMessage, + onDismiss, +}: ReplyMessagePlaceholderProps) => { const profile = useUser(replyMessage.creatorId); if (!profile) return null; @@ -20,15 +21,10 @@ const ReplyMessagePlaceholder = ({ replyMessage, onDismiss }: ReplyMessagePlaceh return (
    - } /> + } />
    -
    - -
    +
    {`Replying to ${profile.displayName}`}
    {replyMessage.data?.text}
    @@ -37,5 +33,3 @@ const ReplyMessagePlaceholder = ({ replyMessage, onDismiss }: ReplyMessagePlaceh
    ); }; - -export default ReplyMessagePlaceholder; diff --git a/src/v4/chat/pages/AmityLiveChatPage/ChatContainer/index.tsx b/src/v4/chat/pages/LiveChat/ChatContainer/index.tsx similarity index 100% rename from src/v4/chat/pages/AmityLiveChatPage/ChatContainer/index.tsx rename to src/v4/chat/pages/LiveChat/ChatContainer/index.tsx diff --git a/src/v4/chat/pages/AmityLiveChatPage/ChatContainer/styles.module.css b/src/v4/chat/pages/LiveChat/ChatContainer/styles.module.css similarity index 91% rename from src/v4/chat/pages/AmityLiveChatPage/ChatContainer/styles.module.css rename to src/v4/chat/pages/LiveChat/ChatContainer/styles.module.css index ba002e639..d212f1b30 100644 --- a/src/v4/chat/pages/AmityLiveChatPage/ChatContainer/styles.module.css +++ b/src/v4/chat/pages/LiveChat/ChatContainer/styles.module.css @@ -1,7 +1,7 @@ .composeBarContainer { min-height: 3.5rem; z-index: 99; - background-color: inherit; + background-color: var(--asc-color-background-default); } .composeBar { @@ -16,11 +16,12 @@ .textInputContainer { display: flex; flex-grow: 1; + background: var(--asc-color-background-default); & > div { width: 100%; border-radius: var(--asc-border-radius-xxl); - border: 1px solid var(--asc-color-base-background); + border: 1px solid var(--asc-color-background-default); background: var(--asc-color-secondary-shade4); textarea { @@ -36,10 +37,7 @@ padding: var(--asc-spacing-s1) var(--asc-spacing-s2); border-radius: var(--asc-border-radius-sm); border: var(--asc-border-radius-none); - background-color: var( - --live-chat-asc-color-secondary-default, - var(--asc-color-secondary-default) - ); + background-color: var(--asc-color-secondary-default); color: var(--asc-color-base-inverse); display: flex; align-items: center; @@ -64,6 +62,8 @@ .replyAvatar { flex: 0 0 auto; + width: 2rem; + height: 2rem; } .replyProfile { diff --git a/src/v4/chat/pages/LiveChat/LiveChat.module.css b/src/v4/chat/pages/LiveChat/LiveChat.module.css new file mode 100644 index 000000000..3a770778a --- /dev/null +++ b/src/v4/chat/pages/LiveChat/LiveChat.module.css @@ -0,0 +1,11 @@ +.messageListHeaderWrap { + box-shadow: var(--asc-box-shadow-01); +} + +.liveChat { + display: flex; + flex-direction: column; + background-color: var(--asc-color-background-default); + height: 100%; + overflow-y: hidden; +} diff --git a/src/v4/chat/pages/AmityLiveChatPage/livechatPage.stories.tsx b/src/v4/chat/pages/LiveChat/LiveChat.stories.tsx similarity index 76% rename from src/v4/chat/pages/AmityLiveChatPage/livechatPage.stories.tsx rename to src/v4/chat/pages/LiveChat/LiveChat.stories.tsx index 7c63683bf..f4c4d4525 100644 --- a/src/v4/chat/pages/AmityLiveChatPage/livechatPage.stories.tsx +++ b/src/v4/chat/pages/LiveChat/LiveChat.stories.tsx @@ -2,17 +2,16 @@ import React, { useRef, useState } from 'react'; import useChannelsCollection from '~/chat/hooks/collections/useChannelsCollection'; import ChatItem from '~/chat/components/ChatItem'; import InfiniteScroll from 'react-infinite-scroll-component'; -import { AmityLiveChatPage } from '.'; -import styles from '~/v4/chat/pages/AmityLiveChatPage/styles.module.css'; import Sheet from 'react-modal-sheet'; +import { LiveChat } from './'; +import styles from './LiveChat.module.css'; export default { - title: 'V4/AmityLiveChatPage', + title: 'V4/LiveChat', }; const LiveChatList = () => { const [selectedChannel, setSelectedChannel] = useState(null); - const [open, setOpen] = useState(false); const { channels, hasMore, loadMore, isLoading } = useChannelsCollection({ membership: 'all', sortBy: 'lastActivity', @@ -20,7 +19,6 @@ const LiveChatList = () => { }); const onSelectedChannel = (channelId: string) => { - setOpen(true); setSelectedChannel(channelId); }; @@ -62,20 +60,16 @@ const LiveChatList = () => { ))} ) : null} - - setOpen(false)} className={styles.messageListSheet}> - - - - - - - + {selectedChannel && ( +
    + +
    + )}
    ); }; export const LiveChatStory = { render: () => , - name: 'AmityLiveChatPage', + name: 'LiveChat', }; diff --git a/src/v4/chat/pages/AmityLiveChatPage/index.tsx b/src/v4/chat/pages/LiveChat/LiveChat.tsx similarity index 51% rename from src/v4/chat/pages/AmityLiveChatPage/index.tsx rename to src/v4/chat/pages/LiveChat/LiveChat.tsx index 6aac7f660..e7808d27b 100644 --- a/src/v4/chat/pages/AmityLiveChatPage/index.tsx +++ b/src/v4/chat/pages/LiveChat/LiveChat.tsx @@ -1,31 +1,30 @@ import React, { useRef } from 'react'; -import useChannel from '~/v4/chat/hooks/useChannel'; -import AmityLiveChatHeader from '~/v4/chat/components/AmityLiveChatHeader'; -import ChatContainer from './ChatContainer'; -import styles from './styles.module.css'; +import { useChannel } from '~/v4/chat/hooks/useChannel'; +import { ChatHeader } from '~/v4/chat/components/ChatHeader/index'; +import ChatContainer from './ChatContainer/index'; import { LiveChatNotificationProvider } from '~/v4/chat/providers/LiveChatNotificationProvider'; import { useAmityPage } from '~/v4/core/hooks/uikit'; -interface AmityLiveChatPageProps { +import styles from './LiveChat.module.css'; + +interface LiveChatProps { channelId: Amity.Channel['channelId']; } -export const AmityLiveChatPage = ({ channelId }: AmityLiveChatPageProps) => { - const channel = useChannel(channelId); +export const LiveChat = ({ channelId }: LiveChatProps) => { + const { channel } = useChannel({ channelId }); const pageId = 'live_chat'; const { themeStyles } = useAmityPage({ pageId }); const ref = useRef(null); return ( -
    +
    - +
    ); }; - -export default AmityLiveChatPage; diff --git a/src/v4/chat/pages/LiveChat/index.tsx b/src/v4/chat/pages/LiveChat/index.tsx new file mode 100644 index 000000000..e6ab3c035 --- /dev/null +++ b/src/v4/chat/pages/LiveChat/index.tsx @@ -0,0 +1 @@ +export { LiveChat } from './LiveChat'; diff --git a/src/v4/chat/pages/index.ts b/src/v4/chat/pages/index.ts index 6efcdc960..f8c927461 100644 --- a/src/v4/chat/pages/index.ts +++ b/src/v4/chat/pages/index.ts @@ -1 +1 @@ -export { AmityLiveChatPage } from './AmityLiveChatPage'; +export { LiveChat as AmityLiveChatPage } from './LiveChat'; diff --git a/src/v4/core/AdEngine.ts b/src/v4/core/AdEngine.ts new file mode 100644 index 000000000..4b3c57a6f --- /dev/null +++ b/src/v4/core/AdEngine.ts @@ -0,0 +1,104 @@ +import { Client as ASCClient, AdRepository } from '@amityco/ts-sdk'; +import { TimeWindowTracker } from './TimeWindowTracker'; + +class SeenRecencyCache { + static #instance: SeenRecencyCache; + #persistentCacheKey = 'amity.seenRecencyCache'; + + constructor() {} + + public static get instance(): SeenRecencyCache { + if (!SeenRecencyCache.#instance) { + SeenRecencyCache.#instance = new SeenRecencyCache(); + } + return SeenRecencyCache.#instance; + } + + #getSeenRecencyCache() { + return JSON.parse(window.localStorage.getItem(this.#persistentCacheKey) || '{}'); + } + + getSeenRecencyByAdId(adId: string): number { + return this.#getSeenRecencyCache()[adId]; + } + + setSeenRecencyCache(adId: string, value: number) { + const seenRecencyCache = this.#getSeenRecencyCache(); + seenRecencyCache[adId] = value; + window.localStorage.setItem(this.#persistentCacheKey, JSON.stringify(seenRecencyCache)); + } +} + +export class AdEngine { + static #instance: AdEngine; + + private isLoading = true; + private ads: Amity.Ad[] = []; + private settings: Amity.AdsSettings | null = null; + + private subscribers: Array<(networkAds: Amity.NetworkAds | null) => void> = []; + + private constructor() { + ASCClient.onSessionStateChange(async (state: Amity.SessionStates) => { + if (state === 'established') { + const networkAds = await AdRepository.getNetworkAds(); + this.ads = networkAds.ads; + this.settings = networkAds.settings; + this.subscribers.forEach((subscriber) => subscriber(networkAds)); + this.isLoading = false; + } else if (state === 'terminated') { + this.ads = []; + this.settings = null; + this.subscribers.forEach((subscriber) => subscriber(null)); + } + }); + } + + public static get instance(): AdEngine { + if (!AdEngine.#instance) { + AdEngine.#instance = new AdEngine(); + } + return AdEngine.#instance; + } + + onNetworkAdsData(callback: (networkAds: Amity.NetworkAds | null) => void) { + if (!this.isLoading && this.ads.length > 0 && this.settings) { + callback({ ads: this.ads, settings: this.settings }); + } + this.subscribers.push(callback); + } + + #getAdFrequency(placement: Amity.AdPlacement) { + if (!this.settings) return null; + switch (placement) { + case 'feed': + return this.settings.frequency.feed; + case 'comment': + return this.settings.frequency.comment; + case 'story': + return this.settings.frequency.story; + default: + return null; + } + } + + getLastSeen(adId: string) { + return SeenRecencyCache.instance.getSeenRecencyByAdId(adId); + } + + markSeen(ad: Amity.Ad, placement: Amity.AdPlacement) { + SeenRecencyCache.instance.setSeenRecencyCache(ad.adId, Date.now()); + if (this.#getAdFrequency(placement)?.type === 'time-window') { + TimeWindowTracker.instance.markSeen(placement); + } + ad.analytics.markAsSeen(placement); + } + + markClicked(ad: Amity.Ad, placement: Amity.AdPlacement) { + ad.analytics.markLinkAsClicked(placement); + } + + getAdFrequencyByPlacement(placement: Amity.AdPlacement) { + return this.#getAdFrequency(placement); + } +} diff --git a/src/v4/core/AdSupplier.ts b/src/v4/core/AdSupplier.ts new file mode 100644 index 000000000..7a6e0a9c3 --- /dev/null +++ b/src/v4/core/AdSupplier.ts @@ -0,0 +1,105 @@ +import { AdEngine } from './AdEngine'; + +export class AdSupplier { + static #instance: AdSupplier; + + private constructor() {} + + public static get instance(): AdSupplier { + if (!AdSupplier.#instance) { + AdSupplier.#instance = new AdSupplier(); + } + return AdSupplier.#instance; + } + + recommendedAds({ + ads, + placement, + count, + communityId, + }: { + ads: Amity.Ad[]; + placement: Amity.AdPlacement; + count: number; + communityId?: string; + }) { + // calculate impression age + const impressionAges = this.#calculateImpressionAges(ads); + + // calculate score for all ads + const scores = new Map(); + ads.forEach((ad) => { + const relevancy = (ad.targets?.communityIds || []).includes(communityId || '') ? 1 : 0; + const impressionAge = impressionAges.get(ad.adId); + if (impressionAge == null) return; + const score = relevancy + Math.pow(Math.E, 2 * impressionAge); + scores.set(ad.adId, score); + }); + + return this.#selectAdsByWeightedRandomChoice({ ads, scores, count }); + } + + #calculateImpressionAges(ads: Amity.Ad[]) { + const recencySortedAds = ads.sort((ad1, ad2) => { + return AdEngine.instance.getLastSeen(ad2.adId) - AdEngine.instance.getLastSeen(ad1.adId); + }); + + const impressionAges = new Map(); + const minLastSeen = AdEngine.instance.getLastSeen( + recencySortedAds[recencySortedAds.length - 1].adId, + ); + const maxLastSeen = AdEngine.instance.getLastSeen(recencySortedAds[0].adId); + + if (maxLastSeen === minLastSeen) { + recencySortedAds.forEach((ad) => { + impressionAges.set(ad.adId, 1); + }); + } else { + recencySortedAds.forEach((ad, index) => { + const impressionAge = index / recencySortedAds.length; + impressionAges.set(ad.adId, impressionAge); + }); + } + return impressionAges; + } + + #weightedRandomChoice(weights: number[]) { + let cumulativeWeight = 0; + const randomValue = Math.random(); + + for (let i = 0; i < weights.length; i++) { + cumulativeWeight += weights[i]; + if (randomValue < cumulativeWeight) { + return i; + } + } + + return weights.length - 1; + } + + #selectAdsByWeightedRandomChoice({ + ads: inputAds, + scores, + count, + }: { + ads: Amity.Ad[]; + scores: Map; + count: number; + }) { + const ads = [...inputAds]; + const selectedAds = []; + + while (selectedAds.length < count && ads.length > 0) { + const totalScore = ads.reduce((acc, ad) => acc + (scores.get(ad.adId) || 0), 0); + const weights = ads.map((ad) => (scores.get(ad.adId) || 0) / totalScore); + + const likelihoods = weights.map((weight) => weight / weights.reduce((acc, w) => acc + w, 0)); + const selectedAdIndex = this.#weightedRandomChoice(likelihoods); + + selectedAds.push(ads[selectedAdIndex]); + ads.splice(selectedAdIndex, 1); + } + + return selectedAds; + } +} diff --git a/src/v4/core/AmityUIKitManager.ts b/src/v4/core/AmityUIKitManager.ts index b32fa6adc..760a506e8 100644 --- a/src/v4/core/AmityUIKitManager.ts +++ b/src/v4/core/AmityUIKitManager.ts @@ -14,7 +14,7 @@ interface SessionHandler { /** * Manages the Amity SDK client and authentication state. */ -class AmityUIKitManager { +export class AmityUIKitManager { private static instance: AmityUIKitManager | null = null; private client: Amity.Client | null = null; private isConnected: boolean = false; @@ -151,5 +151,3 @@ class AmityUIKitManager { return this.isConnected; } } - -export default AmityUIKitManager; diff --git a/src/v4/core/IconComponent.tsx b/src/v4/core/IconComponent.tsx index 1755baddb..cc32144e3 100644 --- a/src/v4/core/IconComponent.tsx +++ b/src/v4/core/IconComponent.tsx @@ -1,29 +1,19 @@ -import React from 'react'; -import { Button, PressEvent } from 'react-aria-components'; - export interface IconComponentProps { defaultIcon: () => JSX.Element; imgIcon: () => JSX.Element; - onPress?: (e: PressEvent) => void; defaultIconName?: string; configIconName?: string; - 'data-qa-anchor'?: string; - style?: React.CSSProperties; - className?: string; } export const IconComponent = ({ defaultIcon, imgIcon, - onPress, - style, defaultIconName, configIconName, - className, }: IconComponentProps) => { - return ( - - ); + if (defaultIconName === configIconName) { + return defaultIcon(); + } + + return imgIcon(); }; diff --git a/src/v4/core/TimeWindowTracker.ts b/src/v4/core/TimeWindowTracker.ts new file mode 100644 index 000000000..764f3a799 --- /dev/null +++ b/src/v4/core/TimeWindowTracker.ts @@ -0,0 +1,43 @@ +import dayjs from 'dayjs'; +import { AdEngine } from './AdEngine'; + +export class TimeWindowTracker { + #markedTimeWindow: Map; + static #instance: TimeWindowTracker; + + constructor() { + this.#markedTimeWindow = new Map(); + } + + public static get instance(): TimeWindowTracker { + if (!TimeWindowTracker.#instance) { + TimeWindowTracker.#instance = new TimeWindowTracker(); + } + return TimeWindowTracker.#instance; + } + + hasReachedLimit(placement: Amity.AdPlacement): boolean { + const currentWindowKey = this.#getCurrentWindowKey(placement); + return this.#markedTimeWindow.get(placement) === currentWindowKey; + } + + markSeen(placement: Amity.AdPlacement) { + this.#markedTimeWindow.set(placement, this.#getCurrentWindowKey(placement)); + } + + #getTimeWindowSettings(placement: Amity.AdPlacement): number { + const adFrequency = AdEngine.instance.getAdFrequencyByPlacement(placement); + + if (adFrequency == null || adFrequency.type !== 'time-window') { + return 0; + } + return adFrequency.value; + } + + #getCurrentWindowKey(placement: Amity.AdPlacement) { + const today = dayjs(); + const minuteSinceStartOfADay = today.startOf('day').diff(today, 'minute'); + const windowIndex = Math.ceil(minuteSinceStartOfADay / this.#getTimeWindowSettings(placement)); + return `${today.format('DD-MM-YYYY')}-${windowIndex}`; + } +} diff --git a/src/v4/core/components/Avatar/Avatar.module.css b/src/v4/core/components/Avatar/Avatar.module.css index c2e500469..f34cd59b2 100644 --- a/src/v4/core/components/Avatar/Avatar.module.css +++ b/src/v4/core/components/Avatar/Avatar.module.css @@ -1,100 +1,16 @@ .avatarContainer { - position: relative; - flex-shrink: 0; overflow: hidden; border-radius: 50%; - background-color: var(--asc-color-base-shade3); -} - -.avatarContainer.clickable:hover { - cursor: pointer; -} - -.avatarContainer.small { - width: 2rem; - height: 2rem; -} - -.avatarContainer.medium { - width: 3rem; - height: 3rem; -} - -.avatarContainer.large { - width: 4rem; - height: 4rem; -} - -.skeleton { width: 100%; height: 100%; - display: block; - border-radius: 50%; - background-color: var(--asc-color-base-shade4); -} - -.skeleton-small { - width: 2rem; - height: 2rem; } -.skeleton-medium { - width: 3rem; - height: 3rem; -} - -.skeleton-large { - width: 4rem; - height: 4rem; +.avatarContainer[data-clickable='true']:hover { + cursor: pointer; } -.avatarOverlay { - position: absolute; - z-index: 2; - opacity: 0.5; - background-color: #000; +.avatarImage { width: 100%; height: 100%; -} - -.avatarOverlay-small { - width: 2rem; - height: 2rem; -} - -.avatarOverlay-medium { - width: 3rem; - height: 3rem; -} - -.avatarOverlay-large { - width: 4rem; - height: 4rem; -} - -.img { - height: 100%; - width: 100%; object-fit: cover; - opacity: 0; - transition: opacity 0.3s; -} - -.img-small { - height: 2rem; - width: 2rem; -} - -.img-medium { - height: 3rem; - width: 3rem; -} - -.img-large { - height: 4rem; - width: 4rem; -} - -.avatarContainer.visible .img { - opacity: 1; } diff --git a/src/v4/core/components/Avatar/Avatar.tsx b/src/v4/core/components/Avatar/Avatar.tsx index 8a324f3dd..6c49890aa 100644 --- a/src/v4/core/components/Avatar/Avatar.tsx +++ b/src/v4/core/components/Avatar/Avatar.tsx @@ -1,75 +1,20 @@ -import React, { useState, useCallback } from 'react'; -import clsx from 'clsx'; +import React from 'react'; import styles from './Avatar.module.css'; -export const enum AVATAR_SIZE { - SMALL = 'small', - MEDIUM = 'medium', - LARGE = 'large', -} - export interface AvatarProps { - className?: string; - avatar?: string | null; - showOverlay?: boolean; + avatarUrl?: string | null; + defaultImage: React.ReactNode; onClick?: () => void; - loading?: boolean; - defaultImage?: React.ReactNode; - size?: AVATAR_SIZE; } -export const Avatar = ({ - className = '', - avatar = null, - showOverlay, - onClick, - loading, - size = AVATAR_SIZE.MEDIUM, - defaultImage, - ...props -}: AvatarProps) => { - const [visible, setVisible] = useState(false); - const onLoad = useCallback(() => setVisible(true), []); - const onError = useCallback(() => setVisible(false), []); - +export const Avatar = ({ avatarUrl, defaultImage, onClick }: AvatarProps) => { return ( -
    - {loading ? ( -
    - ) : avatar ? ( - showOverlay ? ( -
    - Avatar -
    - ) : ( - Avatar - ) +
    + {avatarUrl ? ( + // TODO: add handler if cannot fetch the url + Avatar ) : ( - defaultImage ?? null + defaultImage )}
    ); diff --git a/src/v4/core/components/Avatar/index.ts b/src/v4/core/components/Avatar/index.ts index 0fb0a0baa..d3fb6dfa7 100644 --- a/src/v4/core/components/Avatar/index.ts +++ b/src/v4/core/components/Avatar/index.ts @@ -1 +1 @@ -export { Avatar, AVATAR_SIZE } from './Avatar'; +export { Avatar } from './Avatar'; diff --git a/src/v4/core/components/BottomSheet/BottomSheet.module.css b/src/v4/core/components/BottomSheet/BottomSheet.module.css index 18f070685..91eb82254 100644 --- a/src/v4/core/components/BottomSheet/BottomSheet.module.css +++ b/src/v4/core/components/BottomSheet/BottomSheet.module.css @@ -5,11 +5,11 @@ which have higher specificity. */ .bottomSheet__container { - background-color: var(--asc-color-base-background) !important; + background-color: var(--asc-color-background-default) !important; } .bottomSheet__header { - background-color: var(--asc-color-base-background); + background-color: var(--asc-color-background-default); border-top-left-radius: var(--asc-border-radius-xl); border-top-right-radius: var(--asc-border-radius-xl); text-align: center; @@ -19,7 +19,7 @@ which have higher specificity. } .bottomSheet__content { - background-color: var(--asc-color-base-background); + background-color: var(--asc-color-background-default); padding: var(--asc-spacing-m1); } diff --git a/src/v4/core/components/BottomSheet/BottomSheet.tsx b/src/v4/core/components/BottomSheet/BottomSheet.tsx index 42e1b1316..c836e57db 100644 --- a/src/v4/core/components/BottomSheet/BottomSheet.tsx +++ b/src/v4/core/components/BottomSheet/BottomSheet.tsx @@ -14,6 +14,7 @@ interface BottomSheetProps { headerTitle?: string; cancelText?: string; okText?: string; + style?: React.CSSProperties; className?: string; } diff --git a/src/v4/core/components/ConfirmModal/index.tsx b/src/v4/core/components/ConfirmModal/index.tsx index b06aa3a73..0d39ae041 100644 --- a/src/v4/core/components/ConfirmModal/index.tsx +++ b/src/v4/core/components/ConfirmModal/index.tsx @@ -1,10 +1,12 @@ import React, { ReactNode } from 'react'; import Modal from '~/v4/core/components/Modal'; -import { Button } from '~/v4/core/components/Button'; +import { Button } from '~/v4/core/natives/Button'; import clsx from 'clsx'; -import styles from './styles.module.css'; import { ConfirmType, useConfirmContext } from '~/v4/core/providers/ConfirmProvider'; -import { useAmityElement } from '~/v4/core/hooks/uikit/index'; +import { useAmityElement } from '~/v4/core/hooks/uikit'; + +import styles from './styles.module.css'; +import { Typography } from '~/v4/core/components/Typography'; interface ConfirmProps extends ConfirmType { className?: string; @@ -27,6 +29,7 @@ const Confirm = ({ type = 'confirm', }: ConfirmProps) => { const { accessibilityId, themeStyles } = useAmityElement({ pageId, componentId, elementId }); + return ( {type === 'confirm' && ( )}
    } diff --git a/src/v4/core/components/ConfirmModal/styles.module.css b/src/v4/core/components/ConfirmModal/styles.module.css index da6c634b9..2ae88cc25 100644 --- a/src/v4/core/components/ConfirmModal/styles.module.css +++ b/src/v4/core/components/ConfirmModal/styles.module.css @@ -1,26 +1,39 @@ .modal { - max-width: 22.5rem !important; + max-width: 22.5rem; } .background { - background-color: var(--asc-color-base-background); + background-color: var(--asc-color-background-default); } .footer { display: flex; justify-content: flex-end; + gap: 0.5rem; } .okButton { - background: var(--asc-color-alert) !important; + color: var(--asc-color-primary-shade4); + display: flex; + padding: 0.625rem 1rem; + justify-content: center; + align-items: center; + border-radius: var(--asc-border-radius-sm); + background: var(--asc-color-alert-default); border: none; + cursor: pointer; } .cancelButton { - margin-right: var(--asc-spacing-s1); - background: transparent !important; color: var(--asc-color-secondary-default); - border: 1px solid var(--asc-color-secondary-default) !important; + display: flex; + padding: 0.625rem 1rem; + justify-content: center; + align-items: center; + border-radius: var(--asc-border-radius-sm); + border: 1px solid var(--asc-color-secondary-shade3); + background: var(--asc-color-white); + cursor: pointer; } .cancelButton:hover { diff --git a/src/v4/core/components/Drawer/Drawer.module.css b/src/v4/core/components/Drawer/Drawer.module.css index ad4a3fd73..ce963b8e1 100644 --- a/src/v4/core/components/Drawer/Drawer.module.css +++ b/src/v4/core/components/Drawer/Drawer.module.css @@ -1,6 +1,6 @@ .drawer__content { padding: 1rem; - background-color: var(--asc-color-base-background); + background-color: var(--asc-color-background-default); max-height: 50%; position: fixed; bottom: 0; @@ -18,7 +18,7 @@ } .drawer__innerContent { - background-color: var(--asc-color-base-background); + background-color: var(--asc-color-background-default); border-top-left-radius: 0.625rem; border-top-right-radius: 0.625rem; flex: 1; @@ -35,7 +35,7 @@ } .drawer__overlay { - background-color: color(from var(--asc-color-base-background) srgb r g b / 50%); + background-color: color(from var(--asc-color-background-default) srgb r g b / 50%); inset: 0; position: fixed; } diff --git a/src/v4/core/components/InputText/styles.module.css b/src/v4/core/components/InputText/styles.module.css index ba0a542d6..883ab69ec 100644 --- a/src/v4/core/components/InputText/styles.module.css +++ b/src/v4/core/components/InputText/styles.module.css @@ -9,7 +9,7 @@ transition: background 0.2s, border-color 0.2s; &.invalid { - border-color: var(--asc-color-alert); + border-color: var(--asc-color-alert-default); } &.disabled { @@ -61,6 +61,7 @@ .live-chat-mention-input { padding: var(--asc-spacing-s1); width: calc(100% - 1rem); + background-color: var(--asc-color-background-default); > div:first-child { > div:first-child { diff --git a/src/v4/core/components/LoadMoreWrapper/LoadMoreWrapper.module.css b/src/v4/core/components/LoadMoreWrapper/LoadMoreWrapper.module.css index 14fdd88c0..47aaf2013 100644 --- a/src/v4/core/components/LoadMoreWrapper/LoadMoreWrapper.module.css +++ b/src/v4/core/components/LoadMoreWrapper/LoadMoreWrapper.module.css @@ -1,7 +1,7 @@ .loadMoreButton { display: inline-flex; justify-items: center; - background: var(--asc-color-base-background); + background: var(--asc-color-background-default); color: var(--asc-color-base-shade2); border: 1px solid var(--asc-color-base-shade4); padding: 0.3125rem 0.75rem 0.3125rem 0.5rem; diff --git a/src/v4/core/components/Modal/index.tsx b/src/v4/core/components/Modal/index.tsx index 938359bc8..5bdc39f6c 100644 --- a/src/v4/core/components/Modal/index.tsx +++ b/src/v4/core/components/Modal/index.tsx @@ -40,17 +40,13 @@ const Modal = ({ return (
    - {(title || onCancel) && ( -
    - {title} - {onCancel && } -
    - )} + {onCancel && } + {title &&
    {title}
    }
    {children}
    {footer &&
    {footer}
    } diff --git a/src/v4/core/components/Modal/styles.module.css b/src/v4/core/components/Modal/styles.module.css index 12714ffd1..4dc218ae8 100644 --- a/src/v4/core/components/Modal/styles.module.css +++ b/src/v4/core/components/Modal/styles.module.css @@ -1,9 +1,12 @@ .closeIcon { - width: 1.125rem; - height: 1.125rem; + display: flex; + justify-content: flex-end; + width: 1.5rem; + height: 1.5rem; padding: 0 0.375rem; cursor: pointer; margin-left: auto; + color: var(--asc-color-base-shade3); &.svg-inline--fa { width: auto; @@ -21,7 +24,6 @@ } .overlay { - z-index: 9999; position: fixed; inset: 0; overflow-y: auto; @@ -38,9 +40,8 @@ border-radius: var(--asc-border-radius-lg); max-width: 32.5rem; min-width: 20rem; - - /* TOFIX --asc-color-base-background is not defined some how */ - background-color: var(--asc-color-white); + padding: 1.5rem; + background-color: var(--asc-color-background-default); } .modalWindow:focus { @@ -48,25 +49,41 @@ } .smallModalWindow { - width: 27.5rem !important; + width: 16.8rem; } -.header { - padding: var(--asc-spacing-m1) var(--asc-spacing-m1) 0 var(--asc-spacing-m1); +.title { display: flex; align-items: center; - color: var(--asc-color-base-inverse); - border-bottom: 1px solid var(--theme-palette-base-shade4); - font-size: var(--asc-text-font-size-lg) !important; - font-weight: var(--asc-text-font-weight-bold); + margin-top: 0.5rem; + color: var(--asc-color-base-default); + font-size: 1.25rem; + font-weight: 600; } .content { - color: var(--asc-color-base-default); - padding: var(--asc-spacing-m2) var(--asc-spacing-m1); + margin-top: 0.5rem; + line-height: 1.25rem; + font-size: 0.875rem; + color: var(--asc-color-base-shade1); } .footer { - padding: var(--asc-spacing-m2) var(--asc-spacing-s2); - padding-top: var(--asc-spacing-xxs2); + margin-top: 0.5rem; + padding-top: 1rem; +} + +@media (width <= 768px) { + .modalWindow { + max-width: 16.8rem; + } + + .title { + font-size: 1rem; + } + + .footer { + display: flex; + justify-content: center; + } } diff --git a/src/v4/core/components/Notification/index.tsx b/src/v4/core/components/Notification/index.tsx index b6913e9a9..d0a8b12d4 100644 --- a/src/v4/core/components/Notification/index.tsx +++ b/src/v4/core/components/Notification/index.tsx @@ -1,4 +1,4 @@ -import React, { ReactNode } from 'react'; +import React, { ReactNode, useState } from 'react'; import clsx from 'clsx'; import styles from './Notification.module.css'; import { useNotificationData } from '~/v4/core/providers/NotificationProvider'; @@ -7,13 +7,28 @@ interface NotificationProps { className?: string; content: ReactNode; icon?: ReactNode; + duration?: number; } -const Notification = ({ className, content, icon }: NotificationProps) => ( -
    -
    {icon}
    {content} -
    -); +export const Notification = ({ className, content, icon, duration }: NotificationProps) => { + const [isVisible, setIsVisible] = useState(true); + + if (duration) { + setTimeout(() => { + setIsVisible(false); + }, duration); + } + + if (!isVisible) return null; + + return ( + isVisible && ( +
    +
    {icon}
    {content} +
    + ) + ); +}; // rendered by provider, to allow spawning of notification from notification function below export const NotificationsContainer = () => { diff --git a/src/v4/core/components/SocialMentionItem/index.tsx b/src/v4/core/components/SocialMentionItem/index.tsx index dc818cbc9..76b8f9778 100644 --- a/src/v4/core/components/SocialMentionItem/index.tsx +++ b/src/v4/core/components/SocialMentionItem/index.tsx @@ -8,7 +8,7 @@ import styles from './styles.module.css'; import { MentionIcon } from '~/icons'; import { FormattedMessage } from 'react-intl'; import { Typography } from '../index'; -import { Avatar, AVATAR_SIZE } from '~/v4/core/components/Avatar'; +import { Avatar } from '~/v4/core/components/Avatar'; import User from '~/v4/icons/User'; interface SocialMentionItemProps { @@ -57,7 +57,9 @@ const UserMentionItem = ({ className={clsx(styles.mentionItem, user?.isGlobalBanned && 'isBanned')} onMouseEnter={(e) => onMouseEnter(e, user?.isGlobalBanned)} > - } /> +
    + } /> +
    {user?.displayName}
    diff --git a/src/v4/core/components/SocialMentionItem/styles.module.css b/src/v4/core/components/SocialMentionItem/styles.module.css index 2bd4cfc65..825a51a9e 100644 --- a/src/v4/core/components/SocialMentionItem/styles.module.css +++ b/src/v4/core/components/SocialMentionItem/styles.module.css @@ -12,7 +12,7 @@ } .mentionItem:hover { - background-color: var(--asc-color-base-background); + background-color: var(--asc-color-background-default); } .userDisplayName { @@ -31,8 +31,14 @@ .mentionAll { justify-content: space-between; + div { display: flex; align-items: center; } } + +.avatar { + width: 2rem; + height: 2rem; +} diff --git a/src/v4/core/components/Typography/Typography.tsx b/src/v4/core/components/Typography/Typography.tsx index 4c0d08c68..60e8e18f0 100644 --- a/src/v4/core/components/Typography/Typography.tsx +++ b/src/v4/core/components/Typography/Typography.tsx @@ -62,49 +62,49 @@ Typography.Subtitle = ({ children, className = '', style, ...rest }) => { Typography.Body = ({ children, className = '', style, ...rest }) => { return ( -

    {children} -

    + ); }; Typography.BodyBold = ({ children, className = '', style, ...rest }) => { return ( -

    {children} -

    + ); }; Typography.Caption = ({ children, className = '', style, ...rest }) => { return ( -

    {children} -

    + ); }; Typography.CaptionBold = ({ children, className = '', style, ...rest }) => { return ( -

    {children} -

    + ); }; diff --git a/src/v4/core/hooks/collections/useCommunity.ts b/src/v4/core/hooks/collections/useCommunity.ts index 7810c2c79..375df784a 100644 --- a/src/v4/core/hooks/collections/useCommunity.ts +++ b/src/v4/core/hooks/collections/useCommunity.ts @@ -3,15 +3,15 @@ import useLiveObject from '~/v4/core/hooks/useLiveObject'; const useCommunity = ({ communityId, - shouldCall = () => true, + shouldCall = true, }: { communityId: string | null | undefined; - shouldCall?: () => boolean; + shouldCall?: boolean; }) => { const { item, ...rest } = useLiveObject({ fetcher: CommunityRepository.getCommunity, params: communityId, - shouldCall: () => shouldCall() && !!communityId, + shouldCall: shouldCall && !!communityId, }); return { diff --git a/src/v4/core/hooks/collections/useFollowersCollection.ts b/src/v4/core/hooks/collections/useFollowersCollection.ts index b6e0999f4..c2c3668d1 100644 --- a/src/v4/core/hooks/collections/useFollowersCollection.ts +++ b/src/v4/core/hooks/collections/useFollowersCollection.ts @@ -16,7 +16,7 @@ export default function useFollowersCollection({ userId: userId as string, status: status ?? undefined, }, - shouldCall: () => !!userId, + shouldCall: !!userId, }); return { diff --git a/src/v4/core/hooks/collections/useFollowingsCollection.ts b/src/v4/core/hooks/collections/useFollowingsCollection.ts index 6c506670e..efcdb585e 100644 --- a/src/v4/core/hooks/collections/useFollowingsCollection.ts +++ b/src/v4/core/hooks/collections/useFollowingsCollection.ts @@ -16,7 +16,7 @@ export default function useFollowingsCollection({ userId: userId as string, status: status ?? undefined, }, - shouldCall: () => !!userId, + shouldCall: !!userId, }); return { diff --git a/src/v4/core/hooks/collections/useUsersCollection.ts b/src/v4/core/hooks/collections/useUsersCollection.ts index 139a8e2a8..9670340d9 100644 --- a/src/v4/core/hooks/collections/useUsersCollection.ts +++ b/src/v4/core/hooks/collections/useUsersCollection.ts @@ -3,11 +3,15 @@ import { useEffect, useRef, useState } from 'react'; import useLiveCollection from '~/v4/core/hooks/useLiveCollection'; -const MINIMUM_STRING_LENGTH_TO_TRIGGER_QUERY = 1; - -export const useUserQueryByDisplayName = ( - params: Parameters[0], -) => { +export const useUserQueryByDisplayName = ({ + displayName, + limit, + enabled = true, +}: { + displayName: string; + limit: number; + enabled?: boolean; +}) => { const [items, setItems] = useState([]); const [isLoading, setIsLoading] = useState(false); const [hasMore, setHasMore] = useState(false); @@ -28,19 +32,29 @@ export const useUserQueryByDisplayName = ( unSubRef.current = null; } - const unSubFn = UserRepository.searchUserByDisplayName(params, (response) => { - setHasMore(response.hasNextPage || false); - setIsLoading(response.loading); - loadMoreRef.current = response.onNextPage || null; - setItems(response.data); - }); + if (!enabled) { + return; + } + + const unSubFn = UserRepository.searchUserByDisplayName( + { + displayName, + limit, + }, + (response) => { + setHasMore(response.hasNextPage || false); + setIsLoading(response.loading); + loadMoreRef.current = response.onNextPage || null; + setItems(response.data); + }, + ); unSubRef.current = unSubFn; return () => { unSubRef.current?.(); unSubRef.current = null; }; - }, [params]); + }, [displayName, limit, enabled]); return { users: items, diff --git a/src/v4/core/hooks/objects/usePost.ts b/src/v4/core/hooks/objects/usePost.ts index 47190cb98..dcd859c02 100644 --- a/src/v4/core/hooks/objects/usePost.ts +++ b/src/v4/core/hooks/objects/usePost.ts @@ -6,7 +6,7 @@ const usePost = (postId?: string) => { const { item, ...rest } = useLiveObject({ fetcher: PostRepository.getPost, params: postId as string, - shouldCall: () => !!postId, + shouldCall: !!postId, }); return { diff --git a/src/v4/core/hooks/objects/useUser.ts b/src/v4/core/hooks/objects/useUser.ts index 398a41da7..204cb3b78 100644 --- a/src/v4/core/hooks/objects/useUser.ts +++ b/src/v4/core/hooks/objects/useUser.ts @@ -2,11 +2,11 @@ import { UserRepository } from '@amityco/ts-sdk'; import useLiveObject from '~/v4/core/hooks/useLiveObject'; -const useUser = (userId?: string | null) => { +export const useUser = (userId?: string | null) => { const { item, ...rest } = useLiveObject({ fetcher: UserRepository.getUser, params: userId, - shouldCall: () => !!userId, + shouldCall: !!userId, }); return { @@ -14,5 +14,3 @@ const useUser = (userId?: string | null) => { ...rest, }; }; - -export default useUser; diff --git a/src/v4/core/hooks/subscriptions/useCommentSubscription.ts b/src/v4/core/hooks/subscriptions/useCommentSubscription.ts index 2b19a9c1e..c80a29e72 100644 --- a/src/v4/core/hooks/subscriptions/useCommentSubscription.ts +++ b/src/v4/core/hooks/subscriptions/useCommentSubscription.ts @@ -3,18 +3,18 @@ import useSubscription from './useSubscription'; export default function useCommentSubscription({ commentId, - shouldSubscribe = () => true, + shouldSubscribe = true, callback, }: { commentId?: string | null; - shouldSubscribe?: () => boolean; + shouldSubscribe?: boolean; callback?: Amity.Listener; }) { return useSubscription({ fetcher: CommentRepository.getComment, params: commentId, callback, - shouldSubscribe: () => !!commentId && shouldSubscribe(), + shouldSubscribe: !!commentId && shouldSubscribe, getSubscribedTopic: ({ data: comment }) => getCommentTopic(comment), }); } diff --git a/src/v4/core/hooks/subscriptions/useCommunityReactionSubscription.ts b/src/v4/core/hooks/subscriptions/useCommunityReactionSubscription.ts index 2c27916bb..9ee00892f 100644 --- a/src/v4/core/hooks/subscriptions/useCommunityReactionSubscription.ts +++ b/src/v4/core/hooks/subscriptions/useCommunityReactionSubscription.ts @@ -3,11 +3,11 @@ import useCommunitySubscription from './useCommunitySubscription'; export default function useCommunityReactionSubscription({ communityId, - shouldSubscribe = () => true, + shouldSubscribe = true, callback, }: { communityId?: string | null; - shouldSubscribe?: () => boolean; + shouldSubscribe?: boolean; callback?: Amity.Listener; }) { return useCommunitySubscription({ diff --git a/src/v4/core/hooks/subscriptions/useCommunitySubscription.ts b/src/v4/core/hooks/subscriptions/useCommunitySubscription.ts index 6397daad6..f56e89c38 100644 --- a/src/v4/core/hooks/subscriptions/useCommunitySubscription.ts +++ b/src/v4/core/hooks/subscriptions/useCommunitySubscription.ts @@ -4,19 +4,19 @@ import useSubscription from './useSubscription'; export default function useCommunitySubscription({ communityId, level, - shouldSubscribe = () => true, + shouldSubscribe = true, callback, }: { communityId?: string | null; level: Parameters[1]; - shouldSubscribe?: () => boolean; + shouldSubscribe?: boolean; callback?: Amity.Listener; }) { return useSubscription({ fetcher: CommunityRepository.getCommunity, params: communityId, callback, - shouldSubscribe: () => !!communityId && shouldSubscribe(), + shouldSubscribe: !!communityId && shouldSubscribe, getSubscribedTopic: ({ data: community }) => getCommunityTopic(community, level), }); } diff --git a/src/v4/core/hooks/subscriptions/usePostSubscription.ts b/src/v4/core/hooks/subscriptions/usePostSubscription.ts index 212aa515a..0f79a4479 100644 --- a/src/v4/core/hooks/subscriptions/usePostSubscription.ts +++ b/src/v4/core/hooks/subscriptions/usePostSubscription.ts @@ -4,19 +4,19 @@ import useSubscription from './useSubscription'; export default function usePostSubscription({ postId, level, - shouldSubscribe = () => true, + shouldSubscribe = true, callback, }: { postId?: string | null; level: Parameters[1]; - shouldSubscribe?: () => boolean; + shouldSubscribe?: boolean; callback?: Amity.Listener; }) { return useSubscription({ fetcher: PostRepository.getPost, params: postId, callback, - shouldSubscribe: () => !!postId && shouldSubscribe(), + shouldSubscribe: !!postId && shouldSubscribe, getSubscribedTopic: ({ data: post }) => getPostTopic(post, level), }); } diff --git a/src/v4/core/hooks/subscriptions/useReactionSubscription.ts b/src/v4/core/hooks/subscriptions/useReactionSubscription.ts index 984ef4fc6..54b61f041 100644 --- a/src/v4/core/hooks/subscriptions/useReactionSubscription.ts +++ b/src/v4/core/hooks/subscriptions/useReactionSubscription.ts @@ -5,22 +5,22 @@ export default function useReactionSubscription({ targetId, targetType, callback, - shouldSubscribe = () => true, + shouldSubscribe = true, }: { targetId?: string | null; targetType: 'user' | 'community'; - shouldSubscribe?: () => boolean; + shouldSubscribe?: boolean; callback?: Amity.Listener; }) { const { unsubscribe: userUnsubscribe } = useUserReactionSubscription({ userId: targetId, - shouldSubscribe: () => shouldSubscribe() && targetType === 'user', + shouldSubscribe: shouldSubscribe && targetType === 'user', callback, }); const { unsubscribe: communityUnsubscribe } = useCommunityReactionSubscription({ communityId: targetId, - shouldSubscribe: () => shouldSubscribe() && targetType === 'community', + shouldSubscribe: shouldSubscribe && targetType === 'community', callback, }); diff --git a/src/v4/core/hooks/subscriptions/useSubscription.ts b/src/v4/core/hooks/subscriptions/useSubscription.ts index d3b5c515b..9694f4743 100644 --- a/src/v4/core/hooks/subscriptions/useSubscription.ts +++ b/src/v4/core/hooks/subscriptions/useSubscription.ts @@ -7,7 +7,7 @@ export default function useSubscription({ params, callback = () => {}, options, - shouldSubscribe = () => true, + shouldSubscribe = true, getSubscribedTopic, }: { fetcher: ( @@ -18,7 +18,7 @@ export default function useSubscription({ params: TParams | undefined | null; callback?: Amity.Listener; options?: Amity.LiveObjectOptions; - shouldSubscribe?: () => boolean; + shouldSubscribe?: boolean; getSubscribedTopic: (response: Amity.LiveObject) => string; }) { const { subscribe } = useSDKSubscribersConnector(); diff --git a/src/v4/core/hooks/subscriptions/useUserReactionSubscription.ts b/src/v4/core/hooks/subscriptions/useUserReactionSubscription.ts index 3911f269c..5c106fcf1 100644 --- a/src/v4/core/hooks/subscriptions/useUserReactionSubscription.ts +++ b/src/v4/core/hooks/subscriptions/useUserReactionSubscription.ts @@ -4,10 +4,10 @@ import useUserSubscription from './useUserSubscription'; export default function useUserReactionSubscription({ userId, callback, - shouldSubscribe, + shouldSubscribe = true, }: { userId?: string | null; - shouldSubscribe?: () => boolean; + shouldSubscribe?: boolean; callback?: Amity.Listener; }) { return useUserSubscription({ diff --git a/src/v4/core/hooks/subscriptions/useUserSubscription.ts b/src/v4/core/hooks/subscriptions/useUserSubscription.ts index 792f18805..14e9c83f5 100644 --- a/src/v4/core/hooks/subscriptions/useUserSubscription.ts +++ b/src/v4/core/hooks/subscriptions/useUserSubscription.ts @@ -4,19 +4,19 @@ import useSubscription from './useSubscription'; export default function useUserSubscription({ userId, level, - shouldSubscribe = () => true, + shouldSubscribe = true, callback, }: { userId?: string | null; level: Parameters[1]; - shouldSubscribe?: () => boolean; + shouldSubscribe?: boolean; callback?: Amity.Listener; }) { return useSubscription({ fetcher: UserRepository.getUser, params: userId, callback, - shouldSubscribe: () => !!userId && shouldSubscribe(), + shouldSubscribe: !!userId && shouldSubscribe, getSubscribedTopic: ({ data: user }) => getUserTopic(user, level), }); } diff --git a/src/v4/core/hooks/useImage.ts b/src/v4/core/hooks/useImage.ts index 18001a62b..f1f4577b5 100644 --- a/src/v4/core/hooks/useImage.ts +++ b/src/v4/core/hooks/useImage.ts @@ -7,7 +7,7 @@ interface UseImageProps { imageSize?: 'small' | 'medium' | 'large' | 'full'; } -const useImage = ({ fileId, imageSize = 'medium' }: UseImageProps) => { +export const useImage = ({ fileId, imageSize = 'medium' }: UseImageProps) => { const file = useFile(fileId); const [imageUrl, setImageUrl] = useState(undefined); @@ -27,5 +27,3 @@ const useImage = ({ fileId, imageSize = 'medium' }: UseImageProps) => { return imageUrl; }; - -export default useImage; diff --git a/src/v4/core/hooks/useLiveCollection.ts b/src/v4/core/hooks/useLiveCollection.ts index dcb5ae63a..586e25bcc 100644 --- a/src/v4/core/hooks/useLiveCollection.ts +++ b/src/v4/core/hooks/useLiveCollection.ts @@ -6,7 +6,7 @@ function useLiveCollection({ params, callback = () => {}, config, - shouldCall = () => true, + shouldCall = true, }: { fetcher: ( params: Amity.LiveCollectionParams, @@ -16,7 +16,7 @@ function useLiveCollection({ params: Amity.LiveCollectionParams; callback?: Amity.LiveCollectionCallback; config?: Amity.LiveCollectionConfig; - shouldCall?: () => boolean; + shouldCall?: boolean; }): { items: TCallback[]; isLoading: boolean; @@ -27,7 +27,7 @@ function useLiveCollection({ } { const { subscribe } = useSDKLiveCollectionConnector(); const [loadMoreHasBeenCalled, setLoadMoreHasBeenCalled] = useState(false); - const [isLoading, setIsLoading] = useState(shouldCall ? shouldCall() : true); + const [isLoading, setIsLoading] = useState(shouldCall ? shouldCall : true); const [items, setItems] = useState([]); const [error, setError] = useState(null); const [hasMore, setHasMore] = useState(false); @@ -42,7 +42,7 @@ function useLiveCollection({ const callbackFn = useCallback( (response) => { - if (!shouldCall()) return; + if (!shouldCall) return; if (response.data) setItems(response.data); setIsLoading(response.loading); setHasMore(response.hasNextPage); @@ -50,11 +50,11 @@ function useLiveCollection({ loadMoreFnRef.current = response.onNextPage; callback(response); }, - [shouldCall, setItems, setIsLoading, setHasMore, loadMoreFnRef, callback], + [shouldCall, loadMoreFnRef], ); useEffect(() => { - if (!shouldCall()) return; + if (!shouldCall) return; const { unsubscribe } = subscribe({ fetcher, params, diff --git a/src/v4/core/hooks/useLiveObject.ts b/src/v4/core/hooks/useLiveObject.ts index 78c145e31..7a1542e36 100644 --- a/src/v4/core/hooks/useLiveObject.ts +++ b/src/v4/core/hooks/useLiveObject.ts @@ -7,7 +7,7 @@ function useLiveObject({ params, callback = () => {}, options, - shouldCall = () => true, + shouldCall = true, getSubscribedTopic, }: { fetcher: ( @@ -18,7 +18,7 @@ function useLiveObject({ params: TParams | undefined | null; callback?: Amity.LiveObjectCallback; options?: Amity.LiveObjectOptions; - shouldCall?: () => boolean; + shouldCall?: boolean; getSubscribedTopic?: () => string; }) { const { subscribe } = useSDKLiveObjectConnector(); @@ -31,7 +31,7 @@ function useLiveObject({ const callbackFn: Amity.LiveObjectCallback = useCallback( (response) => { - if (shouldCall && !shouldCall()) return; + if (!shouldCall) return; if (params == null) return; setIsLoading(response.loading); if (response.data) setItem(response.data); @@ -54,7 +54,7 @@ function useLiveObject({ useEffect(() => { if (params == null) return; - if (shouldCall && !shouldCall()) return; + if (!shouldCall) return; const { unsubscribe } = subscribe({ fetcher, diff --git a/src/v4/core/hooks/usePaginator.ts b/src/v4/core/hooks/usePaginator.ts new file mode 100644 index 000000000..56765ed18 --- /dev/null +++ b/src/v4/core/hooks/usePaginator.ts @@ -0,0 +1,186 @@ +import { useMemo, useState } from 'react'; +import useLiveCollection from '~/v4/core/hooks/useLiveCollection'; +import { AdEngine } from '../AdEngine'; +import { useAdSettings, useRecommendAds } from '../providers/AdEngineProvider'; +import { isNonNullable } from '~/v4/helpers/utils'; + +const usePaginatorCore = ({ + placement, + pageSize, + communityId, + getItemId, +}: { + placement: Amity.AdPlacement; + pageSize: number; + communityId?: string; + getItemId: (item: T) => string; +}) => { + const adSettings = useAdSettings(); + + const [currentAdIndex, setCurrentAdIndex] = useState(0); + const [itemWithAds, setItemWithAds] = useState>([]); + const [currentIndex, setCurrentIndex] = useState(0); + + const frequency = AdEngine.instance.getAdFrequencyByPlacement(placement); + + const count = (() => { + if (frequency?.type === 'fixed') { + return pageSize / frequency.value; + } + return 1; + })(); + + const recommendedAds = useRecommendAds({ count, placement, communityId }); + + const reset = () => { + setCurrentAdIndex(0); + setItemWithAds([]); + setCurrentIndex(0); + }; + + const combineItemsWithAds = (newItems: T[]) => { + if (!adSettings?.enabled) { + return newItems; + } + if (frequency?.type === 'fixed') { + const newItemIds = new Set(newItems.map((item) => getItemId(item))); + + const prevItemWithAds = itemWithAds + .map((itemWithAd) => { + const itemId = getItemId(itemWithAd[0]); + + if (!newItemIds.has(itemId)) { + return null; + } + return itemWithAd; + }) + .filter(isNonNullable); + + const startItem = prevItemWithAds[0]; + + const topIndex = (() => { + if (startItem) { + const foundedIndex = newItems.findIndex( + (newItem) => getItemId(newItem) === getItemId(startItem[0]), + ); + if (foundedIndex === -1) { + return 0; + } + return foundedIndex; + } + return 0; + })(); + + const newestItems: Array<[T]> = (newItems || []).slice(0, topIndex).map((item) => [item]); + + const prevItems = [...newestItems, ...prevItemWithAds]; + + const filteredNewItems = newItems.slice(topIndex).filter((newItem) => { + const itemId = getItemId(newItem); + return !prevItems.some((prevItem) => getItemId(prevItem[0]) === itemId); + }); + + let runningAdIndex = currentAdIndex; + let runningIndex = currentIndex; + const suffixItems: Array<[T] | [T, Amity.Ad]> = filteredNewItems.map((newItem) => { + runningIndex = runningIndex + 1; + const shouldPlaceAd = runningIndex % frequency.value === 0; + + if (!shouldPlaceAd) return [newItem]; + + const ad = recommendedAds[runningAdIndex]; + runningAdIndex = runningAdIndex + 1 > recommendedAds.length - 1 ? 0 : runningAdIndex + 1; + return [newItem, ad]; + }); + + setCurrentAdIndex(runningAdIndex); + setCurrentIndex(runningIndex); + const newItemsWithAds = [...prevItems, ...suffixItems]; + setItemWithAds([...prevItems, ...suffixItems]); + if (newItemsWithAds.length === 0) { + setCurrentAdIndex(0); + setCurrentIndex(0); + } + return [...prevItems, ...suffixItems].flatMap((item) => item); + } else if (frequency?.type === 'time-window') { + if (newItems.length === 0) { + return newItems; + } + return [...newItems.slice(0, 1), recommendedAds[0], ...newItems.slice(1)].filter( + isNonNullable, + ); + } + return newItems; + }; + + return { combineItemsWithAds, reset }; +}; + +export const usePaginator = ({ + fetcher, + params, + callback = () => {}, + config, + shouldCall = true, + placement, + communityId, + pageSize, + getItemId, +}: { + fetcher: ( + params: Amity.LiveCollectionParams, + callback: Amity.LiveCollectionCallback, + config?: Amity.LiveCollectionConfig, + ) => Amity.Unsubscriber; + params: Amity.LiveCollectionParams; + callback?: Amity.LiveCollectionCallback; + config?: Amity.LiveCollectionConfig; + shouldCall?: boolean; + placement: Amity.AdPlacement; + communityId?: string; + pageSize: number; + getItemId: (item: TCallback) => string; +}): { + items: Array; + isLoading: boolean; + hasMore: boolean; + loadMore: () => void; + error: Error | null; + loadMoreHasBeenCalled: boolean; +} => { + const { combineItemsWithAds } = usePaginatorCore({ + placement, + pageSize, + communityId, + getItemId, + }); + + const { items, ...rest } = useLiveCollection({ + fetcher, + params, + config, + shouldCall, + }); + + const itemWithAds = useMemo(() => combineItemsWithAds(items).flatMap((item) => item), [items]); + + return { + ...rest, + items: itemWithAds, + }; +}; + +export const usePaginatorApi = (params: { + items: T[]; + placement: Amity.AdPlacement; + pageSize: number; + communityId?: string; + getItemId: (item: T) => string; +}) => { + const { items, ...rest } = params; + const { combineItemsWithAds, reset } = usePaginatorCore(rest); + + const itemWithAds = useMemo(() => combineItemsWithAds(items), [items]); + + return { itemWithAds, reset }; +}; diff --git a/src/v4/core/hooks/usePostFlaggedByMe.ts b/src/v4/core/hooks/usePostFlaggedByMe.ts index bb808c15b..41d95763d 100644 --- a/src/v4/core/hooks/usePostFlaggedByMe.ts +++ b/src/v4/core/hooks/usePostFlaggedByMe.ts @@ -1,6 +1,10 @@ import { PostRepository } from '@amityco/ts-sdk'; -import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; -import { useMemo } from 'react'; +import { + UseMutateAsyncFunction, + useMutation, + useQuery, + useQueryClient, +} from '@tanstack/react-query'; export const usePostFlaggedByMe = ({ post, @@ -16,7 +20,12 @@ export const usePostFlaggedByMe = ({ onReportError?: (error: Error) => void; onUnreportSuccess?: () => void; onUnreportError?: (error: Error) => void; -}) => { +}): { + isLoading: boolean; + isFlaggedByMe: boolean; + mutateReportPost: UseMutateAsyncFunction; + mutateUnReportPost: UseMutateAsyncFunction; +} => { const queryClient = useQueryClient(); const postId = post?.postId || undefined; @@ -92,7 +101,7 @@ export const usePostFlaggedByMe = ({ return { isLoading, - isFlaggedByMe: data, + isFlaggedByMe: data || false, mutateReportPost, mutateUnReportPost, }; diff --git a/src/v4/core/hooks/usePostPermissions.ts b/src/v4/core/hooks/usePostPermissions.ts index 3b7c4ce30..81b18e9f8 100644 --- a/src/v4/core/hooks/usePostPermissions.ts +++ b/src/v4/core/hooks/usePostPermissions.ts @@ -1,5 +1,6 @@ import { useMemo } from 'react'; import useSDK from '~/v4/core/hooks/useSDK'; +import useCommunityModeratorsCollection from '~/v4/social/hooks/collections/useCommunityModeratorsCollection'; export const usePostPermissions = ({ post, @@ -10,12 +11,22 @@ export const usePostPermissions = ({ }) => { const { currentUserId } = useSDK(); + const isCommunityPost = useMemo( + () => post.targetType === 'community' && post.targetId === community?.communityId, + [post.targetType, community?.communityId], + ); + + const { moderators } = useCommunityModeratorsCollection({ + communityId: community?.communityId, + shouldCall: isCommunityPost, + }); + const isCommunityModerator = useMemo(() => { - if (post && community) { - return post.targetType === 'community' && post.targetId === community.communityId; + if (isCommunityPost) { + return moderators.some((moderator) => moderator.userId === currentUserId); } return false; - }, []); + }, [moderators, isCommunityPost, currentUserId]); const isOwner = post.postedUserId === currentUserId; diff --git a/src/v4/core/hooks/usePostedUserInformation.ts b/src/v4/core/hooks/usePostedUserInformation.ts new file mode 100644 index 000000000..1aab50495 --- /dev/null +++ b/src/v4/core/hooks/usePostedUserInformation.ts @@ -0,0 +1,34 @@ +import { useMemo } from 'react'; +import useCommunityModeratorsCollection from '~/v4/social/hooks/collections/useCommunityModeratorsCollection'; + +export const usePostedUserInformation = ({ + post, + community, +}: { + post: Amity.Post; + community?: Amity.Community | null; +}) => { + const isCommunityPost = useMemo( + () => post.targetType === 'community' && post.targetId === community?.communityId, + [post.targetType, community?.communityId], + ); + + const { moderators } = useCommunityModeratorsCollection({ + communityId: community?.communityId, + shouldCall: isCommunityPost, + }); + + const isCommunityModerator = useMemo(() => { + if (isCommunityPost) { + return moderators.some((moderator) => moderator.userId === post?.postedUserId); + } + return false; + }, [moderators, isCommunityPost, post?.postedUserId]); + + const isOwner = post.postedUserId === post?.postedUserId; + + return { + isCommunityModerator, + isOwner, + }; +}; diff --git a/src/v4/core/natives/Button/Button.module.css b/src/v4/core/natives/Button/Button.module.css new file mode 100644 index 000000000..257690dee --- /dev/null +++ b/src/v4/core/natives/Button/Button.module.css @@ -0,0 +1,4 @@ +.button { + box-sizing: border-box; + all: unset; +} diff --git a/src/v4/core/natives/Button/Button.stories.tsx b/src/v4/core/natives/Button/Button.stories.tsx new file mode 100644 index 000000000..04324005c --- /dev/null +++ b/src/v4/core/natives/Button/Button.stories.tsx @@ -0,0 +1,15 @@ +import React from 'react'; + +import { Button } from './Button'; + +export default { + title: 'v4/natives/Button', +}; + +export const ButtonStory = { + render: () => { + return ; + }, + + name: 'Button', +}; diff --git a/src/v4/core/natives/Button/Button.tsx b/src/v4/core/natives/Button/Button.tsx new file mode 100644 index 000000000..06102fdbc --- /dev/null +++ b/src/v4/core/natives/Button/Button.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import clsx from 'clsx'; +import { Button as ReactAriaButton } from 'react-aria-components'; +import styles from './Button.module.css'; + +export type ButtonProps = React.ComponentProps; + +export const Button: React.FC = ({ className, ...props }) => { + return ; +}; diff --git a/src/v4/core/natives/Button/index.ts b/src/v4/core/natives/Button/index.ts new file mode 100644 index 000000000..0672e4f64 --- /dev/null +++ b/src/v4/core/natives/Button/index.ts @@ -0,0 +1,5 @@ +export { Button } from './Button'; + +import type { ButtonProps } from './Button'; + +export type { ButtonProps }; diff --git a/src/v4/core/providers/AdEngineProvider.tsx b/src/v4/core/providers/AdEngineProvider.tsx new file mode 100644 index 000000000..c30fd5f6b --- /dev/null +++ b/src/v4/core/providers/AdEngineProvider.tsx @@ -0,0 +1,164 @@ +import React, { useContext, useEffect, useState, createContext } from 'react'; +import { AdEngine } from '../AdEngine'; +import { AdSupplier } from '../AdSupplier'; +import { TimeWindowTracker } from '../TimeWindowTracker'; + +export const AdEngineContext = createContext<{ + ads: Amity.Ad[]; + settings: Amity.AdsSettings | null; + isLoading: boolean; + saveItemsPagination: (data: { + targetId?: string; + placement: string; + frequencyType: string; + adId: string; + referenceId: string; + }) => void; + getItemsPaginationCache: (data: { + targetId?: string; + frequencyType: string; + placement: string; + }) => { adId: string; referenceId: string }[] | undefined; +}>({ + isLoading: true, + ads: [], + settings: null, + saveItemsPagination: () => {}, + getItemsPaginationCache: () => undefined, +}); + +export const AdEngineProvider: React.FC = ({ children }) => { + const [networkAds, setNetworkAds] = useState(null); + const [isLoading, setIsLoading] = useState(true); + + const [itemsPaginationCache, setItemsPaginationCache] = useState( + new Map(), + ); + + const getCacheKey = ({ + targetId, + placement, + frequencyType, + }: { + targetId?: string; + placement: string; + frequencyType: string; + }) => { + if (targetId) { + return `${frequencyType}-${placement}-${frequencyType}`; + } else { + return `global-${placement}-${frequencyType}`; + } + }; + + const saveItemsPagination = ({ + targetId, + placement, + adId, + referenceId, + frequencyType, + }: { + targetId?: string; + placement: string; + adId: string; + referenceId: string; + frequencyType: string; + }) => { + setItemsPaginationCache((prev) => { + const cacheKey = getCacheKey({ targetId, placement, frequencyType }); + const prevValue = prev.get(cacheKey); + if (prevValue) { + prev.set(cacheKey, [...prevValue, { adId, referenceId }]); + } else { + prev.set(cacheKey, [{ adId, referenceId }]); + } + return new Map(prev); + }); + }; + + const getItemsPaginationCache = ({ + targetId, + placement, + frequencyType, + }: { + targetId?: string; + placement: string; + frequencyType: string; + }) => { + const cacheKey = getCacheKey({ targetId, placement, frequencyType }); + return itemsPaginationCache.get(cacheKey); + }; + + useEffect(() => { + async function init() { + AdEngine.instance.onNetworkAdsData((networkAds) => { + setNetworkAds(networkAds); + setIsLoading(false); + }); + } + init(); + }, []); + + return ( + + {children} + + ); +}; + +export const useAds = () => { + const adContext = useContext(AdEngineContext); + return adContext.ads; +}; + +export const useAdSettings = () => { + const adContext = useContext(AdEngineContext); + return adContext.settings; +}; + +export const useRecommendAds = ({ + count, + placement, + communityId, +}: { + count: number; + placement: Amity.AdPlacement; + communityId?: string; +}) => { + const adContext = useContext(AdEngineContext); + const ads = adContext.ads; + const [recommendedAds, setRecommendedAds] = useState([]); + const adSettings = useAdSettings(); + const adFrequency = AdEngine.instance.getAdFrequencyByPlacement(placement); + + useEffect(() => { + if (!adSettings?.enabled) { + return; + } + if ( + adFrequency?.type === 'time-window' && + TimeWindowTracker.instance.hasReachedLimit(placement) + ) { + return; + } + + setRecommendedAds( + AdSupplier.instance.recommendedAds({ + ads, + placement, + count, + communityId, + }), + ); + }, [ads, count, placement, communityId]); + + return recommendedAds; +}; diff --git a/src/v4/core/providers/AmityUIKitProvider.tsx b/src/v4/core/providers/AmityUIKitProvider.tsx index 4dc85f11a..883feb88d 100644 --- a/src/v4/core/providers/AmityUIKitProvider.tsx +++ b/src/v4/core/providers/AmityUIKitProvider.tsx @@ -27,14 +27,16 @@ import { defaultConfig, Config, CustomizationProvider } from './CustomizationPro import { ThemeProvider } from './ThemeProvider'; import { PageBehavior, PageBehaviorProvider } from './PageBehaviorProvider'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; -import { UIStyles } from '~/core/providers/UiKitProvider/styles'; -import AmityUIKitManager from '../AmityUIKitManager'; +import { AmityUIKitManager } from '../AmityUIKitManager'; import { ConfirmProvider } from '~/v4/core/providers/ConfirmProvider'; import { ConfirmProvider as LegacyConfirmProvider } from '~/core/providers/ConfirmProvider'; import { NotificationProvider } from '~/v4/core/providers/NotificationProvider'; import { DrawerProvider } from '~/v4/core/providers/DrawerProvider'; import { NotificationProvider as LegacyNotificationProvider } from '~/core/providers/NotificationProvider'; import { CustomReactionProvider } from './CustomReactionProvider'; +import { AdEngineProvider } from './AdEngineProvider'; +import { AdEngine } from '../AdEngine'; +import { GlobalFeedProvider } from '~/v4/social/providers/GlobalFeedProvider'; export type AmityUIKitConfig = Config; @@ -104,6 +106,8 @@ const AmityUIKitProvider: React.FC = ({ // Set up the AmityUIKitManager AmityUIKitManager.setup({ apiKey, apiRegion, apiEndpoint }); + AdEngine.instance; + // Register the device and get the client instance await AmityUIKitManager.registerDevice( userId, @@ -135,57 +139,59 @@ const AmityUIKitProvider: React.FC = ({ if (!client) return null; return ( - - - - - - +
    + + + + + - - - - - - - - - - - - - - {children} - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + {children} + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + +
    ); }; diff --git a/src/v4/core/providers/CustomizationProvider.tsx b/src/v4/core/providers/CustomizationProvider.tsx index 86a031777..9f11687c2 100644 --- a/src/v4/core/providers/CustomizationProvider.tsx +++ b/src/v4/core/providers/CustomizationProvider.tsx @@ -1,5 +1,34 @@ import React, { createContext, useContext, useState, useEffect } from 'react'; import { AmityReactionType } from './CustomReactionProvider'; +import { useTheme } from './ThemeProvider'; + +export const getCustomizationKeys = ({ + page, + component, + element, +}: { + page: string; + component: string; + element: string; +}) => { + if (element !== '*') { + return [ + `${page}/${component}/${element}`, + `*/${component}/${element}`, + `${page}/*/${element}`, + `*/*/${element}`, + `${page}/${component}/*`, + `*/${component}/*`, + `${page}/*/*`, + ]; + } else if (component !== '*') { + return [`${page}/${component}/*`, `${page}/*/*`, `*/${component}/*`]; + } else if (page !== '*') { + return [`${page}/*/*`]; + } + + return []; +}; export type GetConfigReturnValue = IconConfiguration & TextConfiguration & @@ -15,38 +44,34 @@ interface CustomizationContextValue { ) => IconConfiguration & TextConfiguration & ThemeConfiguration & CustomConfiguration; } +type ThemeValue = { + primary_color: string; + secondary_color: string; + secondary_shade1_color: string; + secondary_shade2_color: string; + secondary_shade3_color: string; + secondary_shade4_color: string; + base_color: string; + base_shade1_color: string; + base_shade2_color: string; + base_shade3_color: string; + base_shade4_color: string; + base_shade5_color: string; + alert_color: string; + background_color: string; + base_inverse_color: string; +}; + export type Theme = { - light: { - primary_color: string; - secondary_color: string; - base_color: string; - base_shade1_color: string; - base_shade2_color: string; - base_shade3_color: string; - base_shade4_color: string; - alert_color: string; - background_color: string; - base_inverse_color: string; - }; - dark: { - primary_color: string; - secondary_color: string; - base_color: string; - base_shade1_color: string; - base_shade2_color: string; - base_shade3_color: string; - base_shade4_color: string; - alert_color: string; - background_color: string; - base_inverse_color: string; - }; + light: ThemeValue; + dark: ThemeValue; }; type ThemeConfiguration = { preferred_theme?: 'light' | 'dark' | 'default'; theme?: { - light?: Partial>; - dark?: Partial>; + light?: Partial; + dark?: Partial; }; }; @@ -110,25 +135,35 @@ export const defaultConfig: DefaultConfig = { preferred_theme: 'default', theme: { light: { - primary_color: '#1054DE', - secondary_color: '#292B32', + primary_color: '#36486c', + secondary_color: '#292b32', + secondary_shade1_color: '#636878', + secondary_shade2_color: '#898e9e', + secondary_shade3_color: '#a5a9b5', + secondary_shade4_color: '#ebecef', base_color: '#292b32', base_shade1_color: '#636878', base_shade2_color: '#898e9e', base_shade3_color: '#a5a9b5', base_shade4_color: '#ebecef', + base_shade5_color: '#F9F9FA', alert_color: '#FA4D30', background_color: '#FFFFFF', base_inverse_color: '#000000', }, dark: { primary_color: '#1054DE', - secondary_color: '#292B32', + secondary_color: '#ebecef', + secondary_shade1_color: '#a5a9b5', + secondary_shade2_color: '#898e9e', + secondary_shade3_color: '#40434e', + secondary_shade4_color: '#292b32', base_color: '#ebecef', base_shade1_color: '#a5a9b5', base_shade2_color: '#6e7487', base_shade3_color: '#40434e', base_shade4_color: '#292b32', + base_shade5_color: '#f9f9fa', alert_color: '#FA4D30', background_color: '#191919', base_inverse_color: '#FFFFFF', @@ -213,10 +248,10 @@ export const defaultConfig: DefaultConfig = { '*/edit_comment_component/*': { theme: {}, }, - '*/edit_comment_component/cancel_button': { + '*/edit_comment_component/edit_cancel_button': { cancel_icon: '', - cancel_button_text: 'cancel', - background_color: '#1243EE', + cancel_button_text: 'Cancel', + background_color: '', }, '*/edit_comment_component/save_button': { save_icon: '', @@ -231,7 +266,7 @@ export const defaultConfig: DefaultConfig = { done_button_text: 'Done', background_color: '#1243EE', }, - '*/hyper_link_config_component/cancel_button': { + '*/hyper_link_config_component/edit_cancel_button': { cancel_icon: '', cancel_button_text: 'Cancel', }, @@ -334,7 +369,7 @@ export const defaultConfig: DefaultConfig = { image: 'platformValue', }, 'post_composer_page/*/community_display_name': {}, - 'post_composer_page/*/create_button': { + 'post_composer_page/*/create_new_post_button': { text: 'Post', }, 'post_composer_page/*/edit_post_button': { @@ -372,8 +407,8 @@ export const defaultConfig: DefaultConfig = { text: 'Video', image: 'platformValue', }, - 'create_post_page/detailed_media_attachment/file_button': { - textpost_composer_page: 'Attachment', + 'post_composer_page/detailed_media_attachment/file_button': { + text: 'Attachment', image: 'platformValue', }, 'social_home_page/*/*': {}, @@ -404,6 +439,12 @@ export const defaultConfig: DefaultConfig = { 'select_post_target_page/*/my_timeline_text': { text: 'My Timeline', }, + 'select_story_target_page/*/close_button': { + image: 'platformValue', + }, + 'select_story_target_page/*/title': { + text: 'Share to', + }, '*/*/community_official_badge': { image: 'platformValue', }, @@ -411,7 +452,9 @@ export const defaultConfig: DefaultConfig = { image: 'platformValue', }, 'social_global_search_page/*/*': {}, - 'social_global_search_page/top_search_bar/*': {}, + 'social_global_search_page/top_search_bar/*': { + text: 'Search community and user', + }, 'social_global_search_page/top_search_bar/search_icon': { icon: 'search', }, @@ -431,32 +474,29 @@ export const defaultConfig: DefaultConfig = { }, 'social_global_search_page/community_search_result/community_category_name': {}, 'social_global_search_page/community_search_result/community_members_count': {}, + 'my_communities_search_page/top_search_bar/*': { + text: 'Search my community', + }, + 'my_communities_search_page/*/community_avatar': {}, + 'my_communities_search_page/*/community_display_name': {}, + 'my_communities_search_page/*/community_private_badge': { + icon: 'lockIcon', + }, + 'my_communities_search_page/*/community_official_badge': { + icon: 'officialBadgeIcon', + }, + 'my_communities_search_page/*/community_category_name': {}, + 'my_communities_search_page/*/community_members_count': {}, + 'my_communities_search_page/top_search_bar/cancel_button': { + text: 'Cancel', + }, }, }; export const getDefaultConfig: CustomizationContextValue['getConfig'] = (path: string) => { const [page, component, element] = path.split('/'); - const customizationKeys = (() => { - if (element !== '*') { - return [ - `${page}/${component}/${element}`, - `${page}/*/${element}`, - `${page}/${component}/*`, - `${page}/*/*`, - `*/${component}/${element}`, - `*/*/${element}`, - `*/${component}/*`, - `*/*/*`, - ]; - } else if (component !== '*') { - return [`${page}/${component}/*`, `${page}/*/*`, `*/${component}/*`, `*/*/*`]; - } else if (page !== '*') { - return [`${page}/*/*`, `*/*/*`]; - } - - return []; - })(); + const customizationKeys = getCustomizationKeys({ page, component, element }); return new Proxy< IconConfiguration & TextConfiguration & { theme?: Partial } & CustomConfiguration @@ -480,6 +520,8 @@ export const CustomizationProvider: React.FC = ({ }) => { const [config, setConfig] = useState(null); + const currentTheme = useTheme(); + useEffect(() => { if (validateConfig(initialConfig)) { parseConfig(initialConfig); @@ -499,26 +541,7 @@ export const CustomizationProvider: React.FC = ({ const isExcluded = (path: string) => { const [page, component, element] = path.split('/'); - const customizationKeys = (() => { - if (element !== '*') { - return [ - `${page}/${component}/${element}`, - `${page}/*/${element}`, - `${page}/${component}/*`, - `${page}/*/*`, - `*/${component}/${element}`, - `*/*/${element}`, - `*/${component}/*`, - `*/*/*`, - ]; - } else if (component !== '*') { - return [`${page}/${component}/*`, `${page}/*/*`, `*/${component}/*`, `*/*/*`]; - } else if (page !== '*') { - return [`${page}/*/*`, `*/*/*`]; - } - - return []; - })(); + const customizationKeys = getCustomizationKeys({ page, component, element }); return ( config?.excludes?.some((excludedPath) => { @@ -530,26 +553,33 @@ export const CustomizationProvider: React.FC = ({ const getConfig: CustomizationContextValue['getConfig'] = (path: string) => { const [page, component, element] = path.split('/'); - const customizationKeys = (() => { - if (element !== '*') { - return [ - `${page}/${component}/${element}`, - `${page}/*/${element}`, - `${page}/${component}/*`, - `${page}/*/*`, - `*/${component}/${element}`, - `*/*/${element}`, - `*/${component}/*`, - `*/*/*`, - ]; - } else if (component !== '*') { - return [`${page}/${component}/*`, `${page}/*/*`, `*/${component}/*`, `*/*/*`]; - } else if (page !== '*') { - return [`${page}/*/*`, `*/*/*`]; - } - - return []; - })(); + const customizationKeys = getCustomizationKeys({ page, component, element }); + + const buildThemeProxyHandler = ( + themeName: 'light' | 'dark', + ): ProxyHandler< + IconConfiguration & TextConfiguration & { theme?: Partial } & CustomConfiguration + > => ({ + get(_, prop: keyof ThemeValue) { + for (const key of customizationKeys) { + if (config?.customizations?.[key]?.theme?.[themeName]?.[prop]) { + return config.customizations[key].theme?.[themeName]?.[prop]; + } + } + + if (config?.theme?.[themeName]?.[prop]) { + return config.theme[themeName]?.[prop]; + } + + for (const key of customizationKeys) { + if (defaultConfig.customizations?.[key]?.theme?.[themeName]?.[prop]) { + return defaultConfig.customizations[key].theme?.[themeName]?.[prop]; + } + } + + return defaultConfig.theme[themeName][prop]; + }, + }); return new Proxy< IconConfiguration & TextConfiguration & { theme?: Partial } & CustomConfiguration @@ -557,28 +587,28 @@ export const CustomizationProvider: React.FC = ({ {}, { get(target, prop: string) { + if (prop === 'theme') { + return { + light: new Proxy({}, buildThemeProxyHandler('light')), + dark: new Proxy({}, buildThemeProxyHandler('dark')), + }; + } + + if (prop === 'preferred_theme') { + return config?.preferred_theme ?? defaultConfig.preferred_theme; + } + for (const key of customizationKeys) { if (config?.customizations?.[key]?.[prop]) { return config.customizations[key][prop]; } } - if (prop === 'theme' && !!config?.theme) { - return config.theme; - } - for (const key of customizationKeys) { if (defaultConfig?.customizations?.[key]?.[prop]) { return defaultConfig.customizations[key][prop]; } } - - if (prop === 'theme') { - return defaultConfig.theme; - } - if (prop === 'preferred_theme') { - return defaultConfig.preferred_theme; - } }, }, ); diff --git a/src/v4/core/providers/NavigationProvider.tsx b/src/v4/core/providers/NavigationProvider.tsx index 883326abe..633d5cdc5 100644 --- a/src/v4/core/providers/NavigationProvider.tsx +++ b/src/v4/core/providers/NavigationProvider.tsx @@ -1,5 +1,6 @@ import React, { createContext, useCallback, useContext, useState, useMemo, ReactNode } from 'react'; import { AmityStoryMediaType } from '~/v4/social/pages/DraftsPage/DraftsPage'; +import { Mode } from '~/v4/social/pages/PostComposerPage/PostComposerPage'; export enum PageTypes { Explore = 'explore', @@ -17,6 +18,9 @@ export enum PageTypes { SocialGlobalSearchPage = 'SocialGlobalSearchPage', SelectPostTargetPage = 'SelectPostTargetPage', DraftPage = 'DraftPage', + PostComposerPage = 'PostComposerPage', + MyCommunitiesSearchPage = 'MyCommunitiesSearchPage', + StoryTargetSelectionPage = 'StoryTargetSelectionPage', } type Page = @@ -71,13 +75,30 @@ type Page = | { type: PageTypes.UserProfilePage; context: { userId: string; communityId?: string } } | { type: PageTypes.SocialHomePage; context: { communityId?: string } } | { type: PageTypes.SocialGlobalSearchPage; context: { tab?: string } } + | { type: PageTypes.MyCommunitiesSearchPage; context: { communityId?: string } } | { type: PageTypes.SelectPostTargetPage } | { type: PageTypes.DraftPage; - communityId?: string; - mediaType: AmityStoryMediaType; - targetId: string; - targetType: Amity.StoryTargetType; + context: { + communityId?: string; + mediaType: AmityStoryMediaType; + targetId: string; + targetType: Amity.StoryTargetType; + storyType: 'communityFeed' | 'globalFeed'; + }; + } + | { + type: PageTypes.PostComposerPage; + context: { + targetId: string | null; + targetType: 'community' | 'user'; + mode: Mode; + community?: Amity.Community; + post?: Amity.Post; + }; + } + | { + type: PageTypes.StoryTargetSelectionPage; }; type ContextValue = { @@ -95,7 +116,9 @@ type ContextValue = { goToPostDetailPage: (postId: string) => void; goToCommunityProfilePage: (communityId: string) => void; goToSocialGlobalSearchPage: (tab?: string) => void; + goToMyCommunitiesSearchPage: () => void; goToSelectPostTargetPage: () => void; + goToStoryTargetSelectionPage: () => void; goToDraftStoryPage: (context: { targetId: string; targetType: string; @@ -117,6 +140,20 @@ type ContextValue = { | null | undefined, ) => void; + goToPostComposerPage: ( + mode: Mode, + targetId: string | null, + targetType: 'community' | 'user', + community?: Amity.Community, + post?: Amity.Post, + ) => void; + goToStoryCreationPage: (context: { + targetId: string; + targetType: Amity.StoryTargetType; + mediaType: { type: 'image'; url: string } | { type: 'video'; url: string }; + storyType: 'communityFeed' | 'globalFeed'; + }) => void; + goToSocialHomePage: () => void; }; let defaultValue: ContextValue = { @@ -140,10 +177,22 @@ let defaultValue: ContextValue = { targetId: string; targetType: string; mediaType: AmityStoryMediaType; + storyType: 'communityFeed' | 'globalFeed'; }) => {}, goToCommunityProfilePage: (communityId: string) => {}, goToSocialGlobalSearchPage: (tab?: string) => {}, goToSelectPostTargetPage: () => {}, + goToStoryTargetSelectionPage: () => {}, + goToPostComposerPage: ( + mode: Mode, + targetId: string | null, + targetType: 'community' | 'user', + community?: Amity.Community, + post?: Amity.Post, + ) => {}, + goToStoryCreationPage: () => {}, + goToSocialHomePage: () => {}, + goToMyCommunitiesSearchPage: () => {}, setNavigationBlocker: () => {}, onBack: () => {}, }; @@ -174,8 +223,20 @@ if (process.env.NODE_ENV !== 'production') { goToSocialGlobalSearchPage: (tab) => console.log(`NavigationContext goToSocialGlobalSearchPage(${tab})`), goToSelectPostTargetPage: () => console.log('NavigationContext goToTargetPage()'), - goToDraftStoryPage: ({ targetId, targetType, mediaType }) => - console.log(`NavigationContext goToDraftStoryPage(${targetId}, ${targetType}, ${mediaType})`), + goToStoryTargetSelectionPage: () => + console.log('NavigationContext goToStoryTargetSelectionPage()'), + goToDraftStoryPage: ({ targetId, targetType, mediaType, storyType }) => + console.log( + `NavigationContext goToDraftStoryPage(${targetId}, ${targetType}, ${mediaType}), ${storyType})`, + ), + goToPostComposerPage: (mode, targetId, targetType, community, post) => + console.log( + `NavigationContext goToPostComposerPage(${mode} ${targetId}) ${targetType} ${community} ${post}`, + ), + goToStoryCreationPage: () => console.log('NavigationContext goToStoryCreationPage()'), + goToSocialHomePage: () => console.log('NavigationContext goToSocialHomePage()'), + goToMyCommunitiesSearchPage: () => + console.log('NavigationContext goToMyCommunitiesSearchPage()'), }; } @@ -205,6 +266,7 @@ interface NavigationProviderProps { targetId: string; targetType: string; mediaType: AmityStoryMediaType; + storyType: 'communityFeed' | 'globalFeed'; }) => void; onCommunityCreated?: (communityId: string) => void; onEditCommunity?: (communityId: string, options?: { tab?: string }) => void; @@ -452,22 +514,83 @@ export default function NavigationProvider({ pushPage(next); }, [onChangePage, pushPage]); + const goToStoryTargetSelectionPage = useCallback(() => { + const next = { + type: PageTypes.StoryTargetSelectionPage, + }; + + pushPage(next); + }, [onChangePage, pushPage]); + + const goToStoryCreationPage = useCallback( + ({ targetId, targetType, mediaType, storyType }) => { + const next = { + type: PageTypes.DraftPage, + context: { + targetId, + targetType, + mediaType, + storyType, + }, + }; + + pushPage(next); + }, + [onChangePage, pushPage], + ); + const goToDraftStoryPage = useCallback( - ({ targetId, targetType, mediaType }) => { + ({ targetId, targetType, mediaType, storyType }) => { const next = { type: PageTypes.DraftPage, - targetId, - targetType, - mediaType, + context: { + targetId, + targetType, + mediaType, + storyType, + }, }; - if (onChangePage) return onChangePage(next); + pushPage(next); + }, + [onChangePage, pushPage], + ); + + const goToSocialHomePage = useCallback(() => { + const next = { + type: PageTypes.SocialHomePage, + }; + + pushPage(next); + }, [onChangePage, pushPage]); + + const goToPostComposerPage = useCallback( + (mode, targetId, targetType, community, post) => { + const next = { + type: PageTypes.PostComposerPage, + context: { + mode, + targetId, + targetType, + community, + post, + }, + }; pushPage(next); }, [onChangePage, pushPage], ); + const goToMyCommunitiesSearchPage = useCallback(() => { + const next = { + type: PageTypes.MyCommunitiesSearchPage, + context: {}, + }; + + pushPage(next); + }, [onChangePage, pushPage]); + return ( diff --git a/src/v4/core/providers/PageBehaviorProvider.tsx b/src/v4/core/providers/PageBehaviorProvider.tsx index 68e4e96bd..f0fdf5184 100644 --- a/src/v4/core/providers/PageBehaviorProvider.tsx +++ b/src/v4/core/providers/PageBehaviorProvider.tsx @@ -1,36 +1,58 @@ import React, { useContext } from 'react'; import { PageTypes, useNavigation } from '~/v4/core/providers/NavigationProvider'; +import { Mode } from '~/v4/social/pages/PostComposerPage/PostComposerPage'; export interface PageBehavior { - AmityStoryViewPageBehavior: { - onCloseAction(): void; + AmityStoryViewPageBehavior?: { + onCloseAction?(): void; hyperLinkAction?(context: Record): void; }; - AmityDraftStoryPageBehavior: { - onCloseAction(): void; + AmityDraftStoryPageBehavior?: { + onCloseAction?(): void; }; - onClickHyperLink(): void; - AmitySocialHomePageBehavior: Record; - AmityGlobalFeedComponentBehavior: { - goToPostDetailPage: (context: { postId: string }) => void; - goToViewStoryPage: (context: { + onClickHyperLink?(): void; + AmitySocialHomePageBehavior?: Record; + AmityGlobalFeedComponentBehavior?: { + goToPostDetailPage?: (context: { postId: string }) => void; + goToViewStoryPage?: (context: { targetId: string; targetType: Amity.StoryTargetType; storyType: 'communityFeed' | 'globalFeed'; targetIds?: string[]; }) => void; }; - AmityPostDetailPageBehavior: Record; - AmityPostContentComponentBehavior: { - goToCommunityProfilePage: (context: { communityId: string }) => void; - goToUserProfilePage: (context: { userId: string }) => void; + AmityPostDetailPageBehavior?: Record; + AmityPostContentComponentBehavior?: { + goToCommunityProfilePage?: (context: { communityId: string }) => void; + goToUserProfilePage?: (context: { userId: string }) => void; }; - AmitySocialGlobalSearchPageBehavior: Record; - AmityCommunitySearchResultComponentBehavior: { - goToCommunityProfilePage: (context: { communityId: string }) => void; + AmitySocialGlobalSearchPageBehavior?: Record; + AmityCommunitySearchResultComponentBehavior?: { + goToCommunityProfilePage?: (context: { communityId: string }) => void; }; - AmityCreatePostMenuComponentBehavior: { - goToSelectPostTargetPage(): void; + AmityCreatePostMenuComponentBehavior?: { + goToSelectPostTargetPage?(): void; + goToStoryTargetSelectionPage?(): void; + }; + AmityPostTargetSelectionPage?: { + goToPostComposerPage?: (context: { + mode: Mode.CREATE | Mode.EDIT; + targetId: string | null; + targetType: 'community' | 'user'; + community?: Amity.Community; + post?: Amity.Post; + }) => void; + }; + AmityStoryTargetSelectionPage?: { + goToStoryCreationPage?(context: { + targetId: string | null; + targetType: Amity.StoryTargetType; + mediaType: { type: 'image'; url: string } | { type: 'video'; url: string }; + storyType: 'communityFeed' | 'globalFeed'; + }): void; + }; + AmityPostComposerPageBehavior?: { + goToSocialHomePage?(): void; }; } @@ -46,6 +68,7 @@ export const PageBehaviorProvider: React.FC = ({ pageBehavior = {}, }) => { const { + page, onBack, goToPostDetailPage, goToCommunityProfilePage, @@ -53,6 +76,10 @@ export const PageBehaviorProvider: React.FC = ({ goToViewStoryPage, onChangePage, goToSelectPostTargetPage, + goToStoryTargetSelectionPage, + goToStoryCreationPage, + goToPostComposerPage, + goToSocialHomePage, } = useNavigation(); const navigationBehavior: PageBehavior = { AmityStoryViewPageBehavior: { @@ -73,7 +100,11 @@ export const PageBehaviorProvider: React.FC = ({ if (pageBehavior?.AmityDraftStoryPageBehavior?.onCloseAction) { return pageBehavior.AmityDraftStoryPageBehavior.onCloseAction(); } - onBack(); + if (page.type === PageTypes.DraftPage && page.context.storyType === 'communityFeed') { + goToCommunityProfilePage(page.context.targetId); + } else { + goToSocialHomePage(); + } }, }, onClickHyperLink: () => {}, @@ -115,6 +146,7 @@ export const PageBehaviorProvider: React.FC = ({ goToUserProfilePage(context.userId); }, }, + AmitySocialGlobalSearchPageBehavior: {}, AmityCommunitySearchResultComponentBehavior: { goToCommunityProfilePage: (context: { communityId: string }) => { @@ -133,6 +165,53 @@ export const PageBehaviorProvider: React.FC = ({ } goToSelectPostTargetPage(); }, + goToStoryTargetSelectionPage() { + if (pageBehavior?.AmityCreatePostMenuComponentBehavior?.goToStoryTargetSelectionPage) { + return pageBehavior.AmityCreatePostMenuComponentBehavior.goToStoryTargetSelectionPage(); + } + goToStoryTargetSelectionPage(); + }, + }, + AmityPostTargetSelectionPage: { + goToPostComposerPage: (context: { + mode: Mode.CREATE | Mode.EDIT; + targetId: string | null; + targetType: 'community' | 'user'; + community?: Amity.Community; + post?: Amity.Post; + }) => { + if (pageBehavior?.AmityPostTargetSelectionPage?.goToPostComposerPage) { + return pageBehavior.AmityPostTargetSelectionPage.goToPostComposerPage(context); + } + goToPostComposerPage( + context.mode, + context.targetId, + context.targetType, + context.community, + context.post, + ); + }, + }, + AmityStoryTargetSelectionPage: { + goToStoryCreationPage: (context: { + targetId: string; + targetType: Amity.StoryTargetType; + mediaType: { type: 'image'; url: string } | { type: 'video'; url: string }; + storyType: 'communityFeed' | 'globalFeed'; + }) => { + if (pageBehavior?.AmityStoryTargetSelectionPage?.goToStoryCreationPage) { + return pageBehavior.AmityStoryTargetSelectionPage.goToStoryCreationPage(context); + } + goToStoryCreationPage(context); + }, + }, + AmityPostComposerPageBehavior: { + goToSocialHomePage() { + if (pageBehavior?.AmityPostComposerPageBehavior?.goToSocialHomePage) { + return pageBehavior.AmityPostComposerPageBehavior.goToSocialHomePage(); + } + goToSocialHomePage(); + }, }, }; diff --git a/src/v4/core/providers/ThemeProvider.tsx b/src/v4/core/providers/ThemeProvider.tsx index 80f568bdb..dbc25382e 100644 --- a/src/v4/core/providers/ThemeProvider.tsx +++ b/src/v4/core/providers/ThemeProvider.tsx @@ -15,14 +15,6 @@ const generateShades = (hexColor?: string, isDarkMode = false): string[] => { return ['#4a82f2', '#a0bdf8', '#d9e5fc', '#ffffff']; } - if (isDarkMode === true && hexColor === defaultConfig.theme.dark.secondary_color) { - return ['#a5a9b5', '#6e7487', '#40434e', '#292b32']; - } - - if (isDarkMode === false && hexColor === defaultConfig.theme.light.secondary_color) { - return ['#636878', '#898e9e', '#a5a9b5', '#ebecef']; - } - const hslColor = parseToHsl(hexColor); const shades = SHADE_PERCENTAGES.map((percentage) => { @@ -36,102 +28,53 @@ const generateShades = (hexColor?: string, isDarkMode = false): string[] => { return shades; }; -export function useGenerateStylesShadeColors(inputConfig?: GetConfigReturnValue) { +export function useGenerateStylesShadeColors(config: GetConfigReturnValue) { const currentTheme = useTheme(); - const inputThemeConfig = inputConfig?.theme; - const preferredTheme = useMemo(() => { - if (inputConfig?.preferred_theme && inputConfig?.preferred_theme !== 'default') { - return inputConfig.preferred_theme; + if (config?.preferred_theme && config?.preferred_theme !== 'default') { + return config.preferred_theme; } return 'default'; - }, [inputConfig?.preferred_theme, currentTheme]); - - const generatedLightColors = (() => { - if (inputThemeConfig?.light) { - const lightThemeConfig = inputThemeConfig?.light || defaultConfig.theme.light; - - const lightPrimary = generateShades(lightThemeConfig.primary_color); - const lightSecondary = generateShades(lightThemeConfig.secondary_color); - return { - '--asc-color-primary-default': lightThemeConfig.primary_color, - '--asc-color-primary-shade1': lightPrimary[0], - '--asc-color-primary-shade2': lightPrimary[1], - '--asc-color-primary-shade3': lightPrimary[2], - '--asc-color-primary-shade4': lightPrimary[3], - - '--asc-color-secondary-default': lightThemeConfig.secondary_color, - '--asc-color-secondary-shade1': lightSecondary[0], - '--asc-color-secondary-shade2': lightSecondary[1], - '--asc-color-secondary-shade3': lightSecondary[2], - '--asc-color-secondary-shade4': lightSecondary[3], - '--asc-color-secondary-shade5': '#f9f9fa', - - '--asc-color-alert': '#fa4d30', - '--asc-color-black': '#000000', - '--asc-color-white': '#ffffff', - - '--asc-color-base-inverse': '#000000', - - '--asc-color-base-default': '#292b32', - '--asc-color-base-shade1': '#636878', - '--asc-color-base-shade2': '#898e9e', - '--asc-color-base-shade3': '#a5a9b5', - '--asc-color-base-shade4': '#ebecef', - '--asc-color-base-shade5': '#f9f9fa', - - '--asc-color-base-background': defaultConfig.theme.light.background_color, - }; - } - - return {}; - })(); - - const generatedDarkColors = (() => { - if (inputThemeConfig?.dark) { - const darkThemeConfig = inputThemeConfig?.dark || defaultConfig.theme.dark; - const darkPrimary = generateShades(darkThemeConfig.primary_color, true); - const darkSecondary = generateShades(darkThemeConfig.secondary_color, true); - return { - '--asc-color-primary-default': darkThemeConfig.primary_color, - '--asc-color-primary-shade1': darkPrimary[0], - '--asc-color-primary-shade2': darkPrimary[1], - '--asc-color-primary-shade3': darkPrimary[2], - '--asc-color-primary-shade4': darkPrimary[3], - - '--asc-color-secondary-default': darkThemeConfig.secondary_color, - '--asc-color-secondary-shade1': darkSecondary[0], - '--asc-color-secondary-shade2': darkSecondary[1], - '--asc-color-secondary-shade3': darkSecondary[2], - '--asc-color-secondary-shade4': darkSecondary[3], - '--asc-color-secondary-shade5': '#f9f9fa', - - '--asc-color-alert': '#fa4d30', - '--asc-color-black': '#000000', - '--asc-color-white': '#ffffff', - - '--asc-color-base-inverse': '#ffffff', - - '--asc-color-base-default': '#ebecef', - '--asc-color-base-shade1': '#a5a9b5', - '--asc-color-base-shade2': '#6e7487', - '--asc-color-base-shade3': '#40434e', - '--asc-color-base-shade4': '#292b32', - '--asc-color-base-shade5': '#f9f9fa', - - '--asc-color-base-background': defaultConfig.theme.dark.background_color, - }; - } - return {}; - })(); + }, [config?.preferred_theme, currentTheme]); const computedTheme = preferredTheme === 'default' ? currentTheme : preferredTheme; - return { - ...(computedTheme === 'light' ? generatedLightColors : generatedDarkColors), - } as React.CSSProperties; + const generatedColors = useMemo(() => { + const themeConfig = config?.theme?.[computedTheme] || {}; + + const primary = generateShades(themeConfig.primary_color); + + return { + '--asc-color-primary-default': themeConfig.primary_color, + '--asc-color-primary-shade1': primary[0], + '--asc-color-primary-shade2': primary[1], + '--asc-color-primary-shade3': primary[2], + '--asc-color-primary-shade4': primary[3], + + '--asc-color-secondary-default': themeConfig.secondary_color, + '--asc-color-secondary-shade1': themeConfig.secondary_shade1_color, + '--asc-color-secondary-shade2': themeConfig.secondary_shade2_color, + '--asc-color-secondary-shade3': themeConfig.secondary_shade3_color, + '--asc-color-secondary-shade4': themeConfig.secondary_shade4_color, + + '--asc-color-alert-default': themeConfig.alert_color, + + '--asc-color-base-inverse': themeConfig.base_inverse_color, + + '--asc-color-base-default': themeConfig.base_color, + '--asc-color-base-shade1': themeConfig.base_shade1_color, + '--asc-color-base-shade2': themeConfig.base_shade2_color, + '--asc-color-base-shade3': themeConfig.base_shade3_color, + '--asc-color-base-shade4': themeConfig.base_shade4_color, + '--asc-color-base-shade5': themeConfig.base_shade5_color, + + '--asc-color-background-default': themeConfig.background_color, + }; + }, [config, computedTheme]); + + return generatedColors as React.CSSProperties; } export const ThemeContext = createContext<{ diff --git a/src/v4/helpers/utils.ts b/src/v4/helpers/utils.ts index 74db79310..b7b69ff93 100644 --- a/src/v4/helpers/utils.ts +++ b/src/v4/helpers/utils.ts @@ -197,3 +197,35 @@ export function getCssVariableValue(variable: string) { export function convertRemToPx(rem: number) { return rem * parseFloat(getComputedStyle(document.documentElement).fontSize); } +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + +const SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:']); + +export function sanitizeUrl(url: string): string { + try { + const parsedUrl = new URL(url); + // eslint-disable-next-line no-script-url + if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) { + return 'about:blank'; + } + } catch { + return url; + } + return url; +} + +// Source: https://stackoverflow.com/a/8234912/2013580 +const urlRegExp = new RegExp( + /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)/, +); +export function validateUrl(url: string): boolean { + // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://. + // Maybe show a dialog where they user can type the URL before inserting it. + return url === 'https://' || urlRegExp.test(url); +} diff --git a/src/v4/icons/Broadcast.tsx b/src/v4/icons/Broadcast.tsx new file mode 100644 index 000000000..e2c0bbab8 --- /dev/null +++ b/src/v4/icons/Broadcast.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +const Broadcast = (props: React.SVGProps) => ( + + + + +); + +export default Broadcast; diff --git a/src/v4/icons/InfoCircle.tsx b/src/v4/icons/InfoCircle.tsx new file mode 100644 index 000000000..26bc3ad35 --- /dev/null +++ b/src/v4/icons/InfoCircle.tsx @@ -0,0 +1,19 @@ +import React from 'react'; + +const InfoCircle = (props: React.SVGProps) => ( + + + +); + +export default InfoCircle; diff --git a/src/v4/icons/QuickReactionIcon.tsx b/src/v4/icons/QuickReactionIcon.tsx index 7fd55731f..11989d2c6 100644 --- a/src/v4/icons/QuickReactionIcon.tsx +++ b/src/v4/icons/QuickReactionIcon.tsx @@ -11,8 +11,8 @@ export const QuickReactionIcon = (props: React.SVGProps) => { {...props} > @@ -20,7 +20,7 @@ export const QuickReactionIcon = (props: React.SVGProps) => { d="M13.6839 10.0507L13.6839 10.0501L13.6725 10.0522C13.5717 10.0706 13.4807 10.1238 13.4151 10.2025C13.3496 10.2811 13.3137 10.3803 13.3137 10.4827C13.3137 10.4827 13.3137 10.4827 13.3137 10.4827V12.2327H11.5637V12.2322L11.5527 12.2332L11.4964 12.2382L11.4964 12.2376L11.485 12.2397C11.3842 12.2581 11.2932 12.3113 11.2276 12.39C11.1621 12.4686 11.1262 12.5678 11.1262 12.6702H11.1257L11.1267 12.6812L11.1317 12.7375L11.1312 12.7375L11.1333 12.7489C11.1517 12.8496 11.2049 12.9407 11.2835 13.0063C11.3622 13.0718 11.4613 13.1077 11.5637 13.1077C11.5637 13.1077 11.5637 13.1077 11.5638 13.1077H13.3137V14.8577H13.3132L13.3142 14.8687L13.3192 14.925L13.3187 14.925L13.3208 14.9364C13.3392 15.0371 13.3924 15.1282 13.471 15.1938L13.5511 15.0977L13.471 15.1938C13.5497 15.2593 13.6489 15.2952 13.7513 15.2952L13.7513 15.2957L13.7623 15.2947L13.8185 15.2897L13.8186 15.2902L13.83 15.2881C13.9307 15.2697 14.0218 15.2165 14.0873 15.1379C14.1529 15.0592 14.1887 14.96 14.1887 14.8577C14.1887 14.8577 14.1887 14.8576 14.1887 14.8576V13.1077H15.9387V13.1082L15.9498 13.1072L16.006 13.1022L16.0061 13.1027L16.0175 13.1006C16.1182 13.0822 16.2093 13.029 16.2748 12.9504C16.3404 12.8717 16.3763 12.7725 16.3762 12.6701L16.3767 12.6701L16.3757 12.6591L16.3707 12.6028L16.3713 12.6028L16.3692 12.5914C16.3507 12.4907 16.2976 12.3996 16.2189 12.3341C16.1403 12.2685 16.0411 12.2326 15.9387 12.2327C15.9387 12.2327 15.9387 12.2327 15.9387 12.2327H14.1887V10.4827H14.1892L14.1882 10.4716L14.1832 10.4153L14.1838 10.4153L14.1817 10.4039C14.1632 10.3032 14.1101 10.2121 14.0314 10.1466C13.9527 10.081 13.8536 10.0451 13.7512 10.0452V10.0447L13.7402 10.0457L13.6839 10.0507Z" fill="currentColor" stroke="currentColor" - stroke-width="0.25" + strokeWidth="0.25" /> ); diff --git a/src/v4/icons/ReplyComment.tsx b/src/v4/icons/ReplyComment.tsx new file mode 100644 index 000000000..b6e06b299 --- /dev/null +++ b/src/v4/icons/ReplyComment.tsx @@ -0,0 +1,12 @@ +import React from 'react'; + +const ReplyComment = (props: React.SVGProps) => ( + + + +); + +export default ReplyComment; diff --git a/src/v4/icons/Star.tsx b/src/v4/icons/Star.tsx new file mode 100644 index 000000000..e39303b4d --- /dev/null +++ b/src/v4/icons/Star.tsx @@ -0,0 +1,19 @@ +import React from 'react'; + +const Star = ({ color = 'white', ...props }: React.SVGProps) => ( + + + +); + +export default Star; diff --git a/src/v4/icons/Verified.tsx b/src/v4/icons/Verified.tsx index 7fd75ef2b..c3024f083 100644 --- a/src/v4/icons/Verified.tsx +++ b/src/v4/icons/Verified.tsx @@ -13,7 +13,7 @@ const Svg = (props: React.SVGProps) => ( d="M20.4187 17.2429V15.4838L21.6578 14.2365C21.6585 14.2358 21.6591 14.2351 21.6598 14.2345C22.3179 13.5807 22.7516 12.8355 22.75 11.9942C22.7484 11.1537 22.3123 10.4094 21.6598 9.75682L20.4187 8.51578V6.7571C20.4187 5.82907 20.1982 4.99346 19.6024 4.39762C19.0065 3.80179 18.1709 3.58128 17.2429 3.58128H15.4842L14.2432 2.34024L13.7265 2.85697L14.2432 2.34024C13.5864 1.68348 12.8389 1.24622 11.9953 1.24784C11.1522 1.24946 10.4079 1.68897 9.75583 2.34991L8.51619 3.58128H6.75709C5.8332 3.58128 4.99652 3.79543 4.39906 4.38966C3.80081 4.98466 3.58127 5.82245 3.58127 6.7571V8.51578L2.34222 9.75484C2.34186 9.75519 2.3415 9.75555 2.34114 9.75591C1.68254 10.4099 1.24839 11.1554 1.25 11.9971C1.25162 12.8372 1.68721 13.5812 2.33924 14.2335C2.33957 14.2338 2.3399 14.2342 2.34023 14.2345L3.58127 15.4838V17.2429C3.58127 18.1709 3.80178 19.0066 4.39761 19.6024C4.99345 20.1982 5.82907 20.4187 6.75709 20.4187H8.51577L9.75483 21.6578C9.75525 21.6582 9.75567 21.6586 9.75609 21.6591C10.4102 22.3177 11.1557 22.7516 11.9982 22.75C12.8389 22.7484 13.5848 22.3133 14.2412 21.6618L14.2432 21.6598L15.4842 20.4187H17.2429C18.1709 20.4187 19.0065 20.1982 19.6024 19.6024C20.1982 19.0066 20.4187 18.1709 20.4187 17.2429ZM11.1362 14.6127L15.3255 8.63293C15.3257 8.63263 15.3259 8.63232 15.3261 8.63202C15.3555 8.59049 15.3769 8.56736 15.3897 8.55517C15.3961 8.54919 15.4003 8.54586 15.4025 8.54426L15.4048 8.54269L15.4054 8.54234L15.4054 8.54232L15.4062 8.542C15.4072 8.54166 15.4101 8.54065 15.4157 8.53942C15.4272 8.53692 15.4517 8.53308 15.4953 8.53308C15.5882 8.53308 15.6273 8.563 15.6388 8.57409C15.649 8.58379 15.6664 8.60504 15.6669 8.65903C15.6668 8.65902 15.6656 8.67471 15.6559 8.70306C15.6448 8.73553 15.6277 8.7697 15.6066 8.79916L15.6062 8.79975L10.738 15.6292C10.7079 15.6666 10.6872 15.6779 10.6764 15.6829C10.6626 15.6894 10.6288 15.7017 10.5567 15.7017C10.4668 15.7017 10.4177 15.6786 10.3664 15.6272L7.5945 12.5262L7.58765 12.5185L7.58058 12.511C7.58023 12.5106 7.57454 12.5043 7.5688 12.489C7.56299 12.4736 7.55926 12.4545 7.55926 12.4347C7.55926 12.3583 7.58347 12.332 7.59029 12.3253C7.59747 12.3182 7.63028 12.2892 7.72221 12.2892C7.78716 12.2892 7.81058 12.2992 7.8149 12.3011L7.81503 12.3012C7.81882 12.3028 7.8367 12.3105 7.87134 12.3478L9.9633 14.6828L10.5939 15.3867L11.1362 14.6127Z" fill="#1054DE" stroke="white" - stroke-width="1.5" + strokeWidth="1.5" /> ); diff --git a/src/v4/social/components/CommentEdition/CommentEdition.tsx b/src/v4/social/components/CommentEdition/CommentEdition.tsx index 41d5aa571..f402b04f0 100644 --- a/src/v4/social/components/CommentEdition/CommentEdition.tsx +++ b/src/v4/social/components/CommentEdition/CommentEdition.tsx @@ -5,8 +5,9 @@ import { ButtonContainer, CommentEditContainer, CommentEditTextarea } from './st import { QueryMentioneesFnType } from '~/v4/chat/hooks/useMention'; import { useTheme } from 'styled-components'; -import { CancelButton, SaveButton } from '../../elements'; +import { SaveButton } from '../../elements'; import { useCustomization } from '~/v4/core/providers/CustomizationProvider'; +import { EditCancelButton } from '../../elements/EditCancelButton/EditCancelButton'; interface CommentEditionProps { pageId?: '*'; @@ -49,8 +50,8 @@ export const CommentEdition = ({ onChange={(data) => onChange?.(data)} /> - - + + ); diff --git a/src/v4/social/components/CommentOptions/CommentOptions.module.css b/src/v4/social/components/CommentOptions/CommentOptions.module.css new file mode 100644 index 000000000..4f60dd750 --- /dev/null +++ b/src/v4/social/components/CommentOptions/CommentOptions.module.css @@ -0,0 +1,17 @@ +.commentOptions__actionButton { + display: flex; + gap: 0.75rem; + padding: 1rem 0; + align-items: center; + cursor: pointer; +} + +.commentOptions__actionButton__icon { + color: var(--asc-color-base-default); + width: 1.5rem; + height: 1.5rem; +} + +.commentOptions__actionButton__text { + color: var(--asc-color-base-default); +} diff --git a/src/v4/social/components/CommentOptions/CommentOptions.tsx b/src/v4/social/components/CommentOptions/CommentOptions.tsx new file mode 100644 index 000000000..e5cb95c11 --- /dev/null +++ b/src/v4/social/components/CommentOptions/CommentOptions.tsx @@ -0,0 +1,95 @@ +import React from 'react'; +import { useCommentFlaggedByMe } from '~/v4/social/hooks/useCommentFlaggedByMe'; +import { useNotifications } from '~/v4/core/providers/NotificationProvider'; +import useCommentPermission from '~/social/hooks/useCommentPermission'; +import useSDK from '~/v4/core/hooks/useSDK'; +import { Typography } from '~/v4/core/components/index'; +import { isNonNullable } from '~/v4/helpers/utils'; +import { FlagIcon, PenIcon, TrashIcon } from '../../icons/index'; +import styles from './CommentOptions.module.css'; + +interface CommentOptionsProps { + comment: Amity.Comment; + handleEditComment: () => void; + handleDeleteComment: () => void; + onCloseBottomSheet: () => void; +} + +export const CommentOptions = ({ + comment, + handleEditComment, + handleDeleteComment, + onCloseBottomSheet, +}: CommentOptionsProps) => { + const { userRoles } = useSDK(); + const { toggleFlagComment, isFlaggedByMe } = useCommentFlaggedByMe(comment.commentId); + + // TODO: change to useCommentPermission v4 - remove readonly + const { canDelete, canEdit, canReport } = useCommentPermission(comment, false, userRoles); + const notification = useNotifications(); + + const handleReportComment = async () => { + try { + await toggleFlagComment({ + onFlagSuccess: () => + notification.success({ + content: 'Report sent', + }), + onUnFlagSuccss: () => + notification.success({ + content: 'Unreport sent', + }), + }); + } catch (err) { + if (err instanceof Error) { + notification.error({ + content: err.message, + }); + } + } + }; + + const options = [ + canEdit + ? { + name: 'Edit comment', + action: handleEditComment, + icon: , + } + : null, + canReport + ? { + name: isFlaggedByMe ? 'Unreport comment' : 'Report comment', + action: handleReportComment, + icon: , + } + : null, + canDelete + ? { + name: 'Delete comment', + action: handleDeleteComment, + icon: , + } + : null, + ].filter(isNonNullable); + + return ( + <> + {options.map((option, index) => ( +
    { + onCloseBottomSheet(); + option.action(); + }} + > + {option.icon} +
    + {option.name} +
    +
    + ))} + + ); +}; diff --git a/src/v4/social/components/CommentTray/CommentTray.tsx b/src/v4/social/components/CommentTray/CommentTray.tsx index 2940bcf6e..e4d393220 100644 --- a/src/v4/social/components/CommentTray/CommentTray.tsx +++ b/src/v4/social/components/CommentTray/CommentTray.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { useAmityComponent } from '~/v4/core/hooks/uikit/index'; +import { useAmityComponent } from '~/v4/core/hooks/uikit'; import { CommentList } from '~/v4/social/internal-components/CommentList'; import { StoryCommentComposeBar } from '~/v4/social/internal-components/StoryCommentComposeBar'; import styles from './CommentTray.module.css'; @@ -8,7 +8,7 @@ const REPLIES_PER_PAGE = 5; interface CommentTrayProps { referenceType: Amity.CommentReferenceType; - referenceId: string; + referenceId?: string; community: Amity.Community; shouldAllowInteraction: boolean; shouldAllowCreation?: boolean; @@ -24,7 +24,7 @@ export const CommentTray = ({ shouldAllowCreation = true, }: CommentTrayProps) => { const componentId = 'comment_tray_component'; - const { config } = useAmityComponent({ + const { accessibilityId, themeStyles } = useAmityComponent({ pageId, componentId, }); @@ -43,7 +43,11 @@ export const CommentTray = ({ }; return ( -
    +
    {}} />; + return ( + {}} + /> + ); }, name: 'CommunitySearchResult', diff --git a/src/v4/social/components/CommunitySearchResult/CommunitySearchResult.tsx b/src/v4/social/components/CommunitySearchResult/CommunitySearchResult.tsx index f17490a88..7a85c146e 100644 --- a/src/v4/social/components/CommunitySearchResult/CommunitySearchResult.tsx +++ b/src/v4/social/components/CommunitySearchResult/CommunitySearchResult.tsx @@ -15,20 +15,17 @@ interface CommunitySearchResultProps { export const CommunitySearchResult = ({ pageId = '*', communityCollection = [], - // isLoading, + isLoading, onLoadMore, }: CommunitySearchResultProps) => { const componentId = 'community_search_result'; - const { accessibilityId, config, defaultConfig, isExcluded, uiReference, themeStyles } = - useAmityComponent({ - pageId, - componentId, - }); + const { themeStyles } = useAmityComponent({ + pageId, + componentId, + }); const intersectionRef = useRef(null); - const isLoading = true; - useIntersectionObserver({ onIntersect: () => onLoadMore(), ref: intersectionRef }); return ( diff --git a/src/v4/social/components/CreatePostMenu/CreatePostMenu.module.css b/src/v4/social/components/CreatePostMenu/CreatePostMenu.module.css index e2bbd90ef..ca6e6512a 100644 --- a/src/v4/social/components/CreatePostMenu/CreatePostMenu.module.css +++ b/src/v4/social/components/CreatePostMenu/CreatePostMenu.module.css @@ -1,10 +1,7 @@ .createPostMenu { - background-color: var(--asc-color-base-background); + background-color: var(--asc-color-background-default); padding: 0.75rem 1rem; border-radius: 0.75rem; - position: absolute; - right: 1rem; - top: 3.25rem; - width: 12.5rem; + width: 100%; box-shadow: var(--asc-box-shadow-03); } diff --git a/src/v4/social/components/CreatePostMenu/CreatePostMenu.tsx b/src/v4/social/components/CreatePostMenu/CreatePostMenu.tsx index 19438a786..87230f30c 100644 --- a/src/v4/social/components/CreatePostMenu/CreatePostMenu.tsx +++ b/src/v4/social/components/CreatePostMenu/CreatePostMenu.tsx @@ -1,10 +1,8 @@ import React from 'react'; import styles from './CreatePostMenu.module.css'; import { CreatePostButton } from '~/v4/social/elements/CreatePostButton'; - -import { CreatePollButton } from '~/v4/social/elements/CreatePollButton/CreatePollButton'; -import { CreateLivestreamButton } from '~/v4/social/elements/CreateLivestreamButton'; import { CreateStoryButton } from '~/v4/social/elements/CreateStoryButton'; +import { usePageBehavior } from '~/v4/core/providers/PageBehaviorProvider'; interface CreatePostMenuProps { pageId: string; @@ -12,12 +10,21 @@ interface CreatePostMenuProps { export function CreatePostMenu({ pageId }: CreatePostMenuProps) { const componentId = 'create_post_menu'; + + const { AmityCreatePostMenuComponentBehavior } = usePageBehavior(); + return (
    - - - - + AmityCreatePostMenuComponentBehavior?.goToSelectPostTargetPage?.()} + /> + AmityCreatePostMenuComponentBehavior?.goToStoryTargetSelectionPage?.()} + />
    ); } diff --git a/src/v4/social/components/DetailedMediaAttachment/DetailedMediaAttachment.module.css b/src/v4/social/components/DetailedMediaAttachment/DetailedMediaAttachment.module.css new file mode 100644 index 000000000..11d9e5107 --- /dev/null +++ b/src/v4/social/components/DetailedMediaAttachment/DetailedMediaAttachment.module.css @@ -0,0 +1,21 @@ +.detailedMediaAttachment { + display: block; + width: 100%; + background-color: var(--asc-color-background-default); + border-top-left-radius: 1.25rem; + border-top-right-radius: 1.25rem; + box-shadow: var(--asc-box-shadow-04); + padding-bottom: 2rem; + padding-top: 0.75rem; +} + +.detailedMediaAttachment__swipeDown { + display: flex; + width: 2.25rem; + height: 0.25rem; + margin: 0 auto; + border-radius: 0.75rem; + background-color: var(--asc-color-base-shade3); + margin-top: 0.75rem; + margin-bottom: 1.25rem; +} diff --git a/src/v4/social/components/DetailedMediaAttachment/DetailedMediaAttachment.tsx b/src/v4/social/components/DetailedMediaAttachment/DetailedMediaAttachment.tsx new file mode 100644 index 000000000..9c0b66042 --- /dev/null +++ b/src/v4/social/components/DetailedMediaAttachment/DetailedMediaAttachment.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import { useAmityComponent } from '~/v4/core/hooks/uikit'; +import styles from './DetailedMediaAttachment.module.css'; +import { CameraButton } from '~/v4/social/elements/CameraButton'; +import { ImageButton } from '~/v4/social/elements/ImageButton/ImageButton'; +import { VideoButton } from '~/v4/social/elements/VideoButton/VideoButton'; +import { FileButton } from '~/v4/social/elements/FileButton'; + +interface DetailedMediaAttachmentProps { + pageId: string; + uploadLoading?: boolean; + onChangeImages?: (files: File[]) => void; + onChangeVideos?: (files: File[]) => void; + onChangeThumbnail?: ( + thumbnail: { file: File; videoUrl: string; thumbnail: string | undefined }[], + ) => void; + isVisibleCamera: boolean; + isVisibleImage: boolean; + isVisibleVideo: boolean; + videoThumbnail?: { file: File; videoUrl: string; thumbnail: string | undefined }[]; +} + +export function DetailedMediaAttachment({ + pageId, + uploadLoading, + onChangeImages, + onChangeVideos, + onChangeThumbnail, + isVisibleCamera, + isVisibleImage, + isVisibleVideo, + videoThumbnail, +}: DetailedMediaAttachmentProps) { + const componentId = 'detailed_media_attachment'; + const { themeStyles, accessibilityId, isExcluded } = useAmityComponent({ pageId, componentId }); + + if (isExcluded) return null; + + return ( +
    +
    + {isVisibleCamera && ( + + )} + {isVisibleImage && ( + + )} + + {isVisibleVideo && ( + + )} +
    + ); +} diff --git a/src/v4/social/components/DetailedMediaAttachment/index.tsx b/src/v4/social/components/DetailedMediaAttachment/index.tsx new file mode 100644 index 000000000..b48a316a2 --- /dev/null +++ b/src/v4/social/components/DetailedMediaAttachment/index.tsx @@ -0,0 +1 @@ +export { DetailedMediaAttachment } from './DetailedMediaAttachment'; \ No newline at end of file diff --git a/src/v4/social/components/EmptyNewsFeed/EmptyNewsFeed.module.css b/src/v4/social/components/EmptyNewsFeed/EmptyNewsFeed.module.css index 497bbd9d0..202520acb 100644 --- a/src/v4/social/components/EmptyNewsFeed/EmptyNewsFeed.module.css +++ b/src/v4/social/components/EmptyNewsFeed/EmptyNewsFeed.module.css @@ -5,7 +5,7 @@ justify-content: center; width: 100%; height: 100%; - background-color: var(--asc-color-base-background); + background-color: var(--asc-color-background-default); } .emptyNewsfeed__text { diff --git a/src/v4/social/components/GlobalFeed/GlobalFeed.module.css b/src/v4/social/components/GlobalFeed/GlobalFeed.module.css index 46031cf6a..70cefdc60 100644 --- a/src/v4/social/components/GlobalFeed/GlobalFeed.module.css +++ b/src/v4/social/components/GlobalFeed/GlobalFeed.module.css @@ -4,7 +4,7 @@ } .global_feed__postContainer { - padding: 0.25rem 1rem 0.75rem 0.75rem; + padding: 0.25rem 1rem 0.75rem; } .global_feed__postSkeletonContainer { @@ -75,6 +75,10 @@ height: 1px; } +.global_feed__commentContainer { + padding: 0.25rem 1rem 0 0.75rem; +} + @keyframes spin { from { transform: rotate(0deg); diff --git a/src/v4/social/components/GlobalFeed/GlobalFeed.tsx b/src/v4/social/components/GlobalFeed/GlobalFeed.tsx index 9a303bc33..f3518f6fb 100644 --- a/src/v4/social/components/GlobalFeed/GlobalFeed.tsx +++ b/src/v4/social/components/GlobalFeed/GlobalFeed.tsx @@ -1,36 +1,38 @@ import React, { useRef } from 'react'; import { PostContent, PostContentSkeleton } from '../PostContent'; -import { useCustomization } from '~/v4/core/providers/CustomizationProvider'; -import { useGenerateStylesShadeColors } from '~/v4/core/providers/ThemeProvider'; import { EmptyNewsfeed } from '~/v4/social/components/EmptyNewsFeed/EmptyNewsFeed'; -import useGlobalFeed from '~/v4/core/hooks/collections/useGlobalFeed'; import useIntersectionObserver from '~/v4/core/hooks/useIntersectionObserver'; import { usePageBehavior } from '~/v4/core/providers/PageBehaviorProvider'; import styles from './GlobalFeed.module.css'; import { useAmityComponent } from '~/v4/core/hooks/uikit'; +import { PostAd } from '~/v4/social/internal-components/PostAd/PostAd'; interface GlobalFeedProps { pageId?: string; componentId?: string; - posts: Amity.Post[]; + items: Array; isLoading: boolean; onFeedReachBottom: () => void; + onPostDeleted?: (post: Amity.Post) => void; } +const isAmityAd = (item: Amity.Post | Amity.Ad): item is Amity.Ad => { + return (item as Amity.Ad)?.adId !== undefined; +}; + export const GlobalFeed = ({ pageId = '*', componentId = '*', - posts, + items, isLoading, onFeedReachBottom, + onPostDeleted, }: GlobalFeedProps) => { - const { getConfig } = useCustomization(); - const { accessibilityId, config, defaultConfig, isExcluded, uiReference, themeStyles } = - useAmityComponent({ - pageId, - componentId, - }); + const { accessibilityId, themeStyles } = useAmityComponent({ + pageId, + componentId, + }); const intersectionRef = useRef(null); @@ -43,25 +45,41 @@ export const GlobalFeed = ({ }, }); - if (posts.length === 0 && !isLoading) { + if (items.length === 0 && !isLoading) { return ; } + const getItemKey = (item: Amity.Post | Amity.Ad, prevItem: Amity.Post | Amity.Ad | undefined) => { + if (isAmityAd(item)) { + if (prevItem && isAmityAd(prevItem)) { + return `${prevItem.adId}-${item.adId}`; + } else { + return `${prevItem.postId}-${item.adId}`; + } + } + return item.postId; + }; + return ( -
    - {posts.map((post, index) => ( -
    +
    + {items.map((item, index) => ( +
    {index !== 0 ?
    : null} -
    - { - AmityGlobalFeedComponentBehavior?.goToPostDetailPage?.({ postId: post.postId }); - }} - /> -
    + {isAmityAd(item) ? ( + + ) : ( +
    + { + AmityGlobalFeedComponentBehavior?.goToPostDetailPage?.({ postId: item.postId }); + }} + onPostDeleted={onPostDeleted} + /> +
    + )}
    ))} {isLoading @@ -74,7 +92,7 @@ export const GlobalFeed = ({
    )) : null} -
    + {!isLoading &&
    }
    ); }; diff --git a/src/v4/social/components/HyperLinkConfig/HyperLinkConfig.module.css b/src/v4/social/components/HyperLinkConfig/HyperLinkConfig.module.css index ad2c8065f..2ec73b91a 100644 --- a/src/v4/social/components/HyperLinkConfig/HyperLinkConfig.module.css +++ b/src/v4/social/components/HyperLinkConfig/HyperLinkConfig.module.css @@ -21,7 +21,7 @@ } .bottomSheet .react-modal-sheet-content { - background-color: var(--asc-color-base-background); + background-color: var(--asc-color-background-default); padding: 16px; } @@ -57,8 +57,8 @@ } .input.hasError { - border-bottom-color: var(--asc-color-alert); - color: var(--asc-color-alert); + border-bottom-color: var(--asc-color-alert-default); + color: var(--asc-color-alert-default); } .label { @@ -67,12 +67,12 @@ .label::after { content: none; - color: var(--asc-color-alert); + color: var(--asc-color-alert-default); } .label.required::after { content: '*'; - color: var(--asc-color-alert); + color: var(--asc-color-alert-default); } .description { @@ -80,7 +80,7 @@ } .errorText { - color: var(--asc-color-alert); + color: var(--asc-color-alert-default); } .characterCount { @@ -122,7 +122,7 @@ .removeIcon { width: 1.5rem; height: 1.5rem; - fill: var(--asc-color-alert); + fill: var(--asc-color-alert-default); } .removeLinkButton { @@ -130,7 +130,7 @@ justify-content: flex-start; align-items: center; gap: var(--asc-spacing-s1); - color: var(--asc-color-alert); + color: var(--asc-color-alert-default); border-radius: 0; background-color: transparent; transition: color 0.3s ease; diff --git a/src/v4/social/components/HyperLinkConfig/HyperLinkConfig.tsx b/src/v4/social/components/HyperLinkConfig/HyperLinkConfig.tsx index 2e16cc813..ee6beb090 100644 --- a/src/v4/social/components/HyperLinkConfig/HyperLinkConfig.tsx +++ b/src/v4/social/components/HyperLinkConfig/HyperLinkConfig.tsx @@ -4,24 +4,23 @@ import { useForm } from 'react-hook-form'; import { z } from 'zod'; import { zodResolver } from '@hookform/resolvers/zod'; import clsx from 'clsx'; - import { BottomSheet, Typography } from '~/v4/core/components'; - -import styles from './HyperLinkConfig.module.css'; import { useConfirmContext } from '~/v4/core/providers/ConfirmProvider'; import { Button } from '~/v4/core/components/Button'; import useSDK from '~/v4/core/hooks/useSDK'; import Trash from '~/v4/social/icons/trash'; import { useAmityComponent } from '~/v4/core/hooks/uikit'; -import { CancelButton } from '~/v4/social/elements/CancelButton'; import { DoneButton } from '~/v4/social/elements/DoneButton'; +import { EditCancelButton } from '~/v4/social/elements/EditCancelButton'; + +import styles from './HyperLinkConfig.module.css'; interface HyperLinkConfigProps { pageId: string; isHaveHyperLink: boolean; isOpen: boolean; onClose: () => void; - onSubmit: (data: any) => void; + onSubmit: (data: { url: string; customText?: string }) => void; onRemove: () => void; } @@ -37,11 +36,10 @@ export const HyperLinkConfig = ({ }: HyperLinkConfigProps) => { const componentId = 'hyper_link_config_component'; const { confirm } = useConfirmContext(); - const { accessibilityId, config, defaultConfig, isExcluded, uiReference, themeStyles } = - useAmityComponent({ - pageId, - componentId, - }); + const { accessibilityId, config, isExcluded, themeStyles } = useAmityComponent({ + pageId, + componentId, + }); if (isExcluded) return null; @@ -49,6 +47,8 @@ export const HyperLinkConfig = ({ const { client } = useSDK(); const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false); + const formId = 'asc-story-hyperlink-form'; + const schema = z.object({ url: z .string() @@ -116,7 +116,7 @@ export const HyperLinkConfig = ({ setHasUnsavedChanges(url !== '' || customText !== ''); }, [url, customText]); - const onSubmitForm = async (data: HyperLinkFormInputs) => { + const onSubmitForm = (data: HyperLinkFormInputs) => { onSubmit(data); onClose(); }; @@ -156,27 +156,25 @@ export const HyperLinkConfig = ({ return (
    - + {formatMessage({ id: 'storyCreation.hyperlink.bottomSheet.title' })} - +
    -
    +