diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index c0739363c..000000000 --- a/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -.yarn/cache -.yarn/install-state.gz \ No newline at end of file diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 3250d3e9e..000000000 --- a/.eslintignore +++ /dev/null @@ -1,13 +0,0 @@ -jest.config.js -vite.config.ts -.eslintrc.cjs -node_modules -dist -*.md -site -apps/next-12 -.yarnrc.yml -.eslintrc.*js -*.config.*js -eslint-config-sistent -apps/design-system \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 4ea18edbe..000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - es6: true - }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:react-hooks/recommended', - 'plugin:storybook/recommended' - ], - plugins: ['react'], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - requireConfigFile: false - }, - settings: { - react: { - version: 'detect' - } - } -}; diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 40b8ea9dc..000000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -/.yarn/releases/** binary -/.yarn/plugins/** binary \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 712e2d52b..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: ๐ General Bug Report -about: Report an issue to help improve the project. -title: '[Bug]' -labels: 'kind/bug' -assignees: '' ---- - -#### Current Behavior - -<!-- A brief description of the issue. --> - -#### Expected Behavior - -<!-- A brief description of what you expected to happen. --> - -#### Screenshots/Logs - -<!-- Add screenshots, if applicable, to help explain your problem. --> - -#### Environment - -<!-- Please mention the environment where you encountered the issue (e.g., browser, OS, etc.). --> - -<!-- Optional -#### To Reproduce -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error ---> - ---- - -#### Contributor [Guides](https://docs.meshery.io/project/contributing) and Resources - -- ๐ [Meshery Build & Release Strategy](https://docs.meshery.io/project/build-and-release) -- ๐ [Instructions for contributing to documentation](https://github.com/meshery/meshery/blob/master/CONTRIBUTING.md#documentation-contribution-flow) - - Meshery documentation [site](https://docs.meshery.io/) and [source](https://github.com/meshery/meshery/tree/master/docs) -- ๐จ Wireframes and [designs for Sistent site](https://www.figma.com/file/ekm0Hh6M25bSKpP5BcIJom/Sistent-Design-System?type=design&node-id=596%3A5227&mode=design&t=8MExPykHN1vQFCTZ-1) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) -- ๐๐พ๐๐ผ Questions: [Layer5 Discussion Forum](https://discuss.layer5.io) and [Layer5 Community Slack](http://slack.layer5.io) diff --git a/.github/ISSUE_TEMPLATE/ci.md b/.github/ISSUE_TEMPLATE/ci.md deleted file mode 100644 index a2e60a73f..000000000 --- a/.github/ISSUE_TEMPLATE/ci.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: ๐ Continuous Integration / DevOps -about: Improve or update workflows or other automation -title: '[CI]' -labels: 'area/ci' -assignees: '' ---- - -#### Current Behavior - -<!-- A brief description of what the problem is. (e.g. I need to be able to...) --> - -#### Desired Behavior - -<!-- A brief description of what you expected to happen. --> - -#### Implementation - -<!-- Specifics on the approach to fulfilling the feature request. --> - -#### Acceptance Tests - -<!-- Stipulations of functional behavior or non-functional items that must be in-place in order for the issue to be closed. --> - ---- - -#### Contributor [Guides](https://docs.meshery.io/project/contributing) and Resources - -- ๐ [Meshery Build & Release Strategy](https://docs.meshery.io/project/build-and-release) -- ๐จ Wireframes and [designs for Sistent site](https://www.figma.com/file/ekm0Hh6M25bSKpP5BcIJom/Sistent-Design-System?type=design&node-id=596%3A5227&mode=design&t=8MExPykHN1vQFCTZ-1) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) -- ๐๐พ๐๐ผ Questions: [Layer5 Discussion Forum](https://discuss.layer5.io) and [Layer5 Community Slack](http://slack.layer5.io) diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index 9400d555e..000000000 --- a/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: ๐ Documentation issue -about: Issues related to documentation. -title: '[Docs]' -labels: 'area/docs, language/markdown' -assignees: '' ---- - -#### Current State - -#### Desired State - ---- - -#### [Contributor Guides](https://docs.meshery.io/project/contributing) and Resources - -- ๐ [Instructions for contributing to documentation](https://docs.meshery.io/project/contributing/contributing-docs) - - Meshery documentation [site](https://docs.meshery.io/) and [source](https://github.com/meshery/meshery/tree/master/docs) -- ๐ [Meshery Build & Release Strategy](https://docs.meshery.io/project/build-and-release) -- ๐จWireframes and [designs for Sistent site](https://www.figma.com/file/ekm0Hh6M25bSKpP5BcIJom/Sistent-Design-System?type=design&node-id=596%3A5227&mode=design&t=8MExPykHN1vQFCTZ-1) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) -- ๐๐พ๐๐ผ Questions: [Layer5 Discussion Forum](https://discuss.layer5.io) and [Layer5 Community Slack](http://slack.layer5.io) diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index b4240d5ac..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: ๐ก Feature Request -about: Suggest a new idea for Sistent. -title: '[Feature]' -labels: 'kind/enhancement' -assignees: '' ---- - -#### Current Behavior - -<!-- A brief description of what the problem is. (e.g. I need to be able to...) --> - -#### Desired Behavior - -<!-- A brief description of the enhancement. --> - -#### Implementation - -<!-- [Optional] Specifics on the approach to fulfilling the feature request. --> - -#### Acceptance Tests - -<!-- [Optional] Stipulations of functional behavior or non-functional items that must be in-place in order for the issue to be closed. --> - -#### Mockups - -<!-- [Optional] Any visual diagrams of the desired user interface. --> - ---- - -**[Contributor Guide](https://docs.meshery.io/project/contributing)** - -- ๐จ Wireframes and [designs for Sistent site](https://www.figma.com/file/ekm0Hh6M25bSKpP5BcIJom/Sistent-Design-System?type=design&node-id=596%3A5227&mode=design&t=8MExPykHN1vQFCTZ-1) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index 7901b29d7..000000000 --- a/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,7 +0,0 @@ -blank_issues_enabled: false -contact_links: - -- name: ๐๐พ๐๐ผโQuestion - url: https://github.com/layer5io/meshery/discussions/new - about: Submit your question using GitHub Discussions. -- ๐จ Wireframes and [designs for Sistent site](https://www.figma.com/file/ekm0Hh6M25bSKpP5BcIJom/Sistent-Design-System?type=design&node-id=596%3A5227&mode=design&t=8MExPykHN1vQFCTZ-1) in Figma [(open invite)](https://www.figma.com/team_invite/redeem/qJy1c95qirjgWQODApilR9) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 84234824d..000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,20 +0,0 @@ -**Notes for Reviewers** - -This PR fixes # - -**[Signed commits](../blob/master/CONTRIBUTING.md#signing-off-on-commits-developer-certificate-of-origin)** - -- [ ] Yes, I signed my commits. - -<!-- -Thank you for contributing to Meshery! - -Contributing Conventions: - -1. Include descriptive PR titles with [<component-name>] prepended. -2. Build and test your changes before submitting a PR. -3. Sign your commits - -By following the community's contribution conventions upfront, the review process will -be accelerated and your PR merged more quickly. ---> diff --git a/.github/build/Makefile.show-help.mk b/.github/build/Makefile.show-help.mk deleted file mode 100644 index 3d096d8ea..000000000 --- a/.github/build/Makefile.show-help.mk +++ /dev/null @@ -1,5 +0,0 @@ -.DEFAULT_GOAL := show-help -# See <https://gist.github.com/klmr/575726c7e05d8780505a> for explanation. -.PHONY: show-help -show-help: - @echo "$$(tput bold)Please specify a build target. The choices are:$$(tput sgr0)";echo;sed -ne"/^## /{h;s/.*//;:d" -e"H;n;s/^## //;td" -e"s/:.*//;G;s/\\n## /---/;s/\\n/ /g;p;}" ${MAKEFILE_LIST}|LC_ALL='C' sort -f|awk -F --- -v n=$$(tput cols) -v i=19 -v a="$$(tput setaf 6)" -v z="$$(tput sgr0)" '{printf"%s%*s%s ",a,-i,$$1,z;m=split($$2,w," ");l=n-i;for(j=1;j<=m;j++){l-=length(w[j])+1;if(l<= 0){l=n-i-length(w[j])-1;printf"\n%*s ",-i," ";}printf"%s ",w[j];}printf"\n";}'|more $(shell test $(shell uname) == Darwin && echo '-Xr') \ No newline at end of file diff --git a/.github/config.yml b/.github/config.yml deleted file mode 100644 index cab867048..000000000 --- a/.github/config.yml +++ /dev/null @@ -1,47 +0,0 @@ -#------------------------------------------------------------------------------- -# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome - # Comment to be posted to on first time issues -newIssueWelcomeComment: > - Thanks for opening this issue. A contributor will be by to give feedback soon. In the meantime, please review the [Layer5 Community Welcome Guide](https://docs.google.com/document/d/17OPtDE_rdnPQxmk2Kauhm3GwXF1R5dZ3Cj8qZLKdo5E/edit?usp=sharing) and sure to join the [community Slack](http://slack.layer5.io/). - # Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome - # Comment to be posted to on PRs from first time contributors in your repository -newPRWelcomeComment: > - Yay, your first pull request! :thumbsup: A contributor will be by to give feedback soon. In the meantime, please review the [Layer5 Community Welcome Guide](https://docs.google.com/document/d/17OPtDE_rdnPQxmk2Kauhm3GwXF1R5dZ3Cj8qZLKdo5E/edit?usp=sharing) and sure to join the [community Slack](http://slack.layer5.io/). - - Be sure to double-check that you have signed your commits. Here are instructions for [making signing an implicit activity while peforming a commit](../CONTRIBUTING.md#signing-off-on-commits-developer-certificate-of-origin). - - -#------------------------------------------------------------------------------- -# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge -# Comment to be posted to on pull requests merged by a first time user -firstPRMergeComment: > - 	 	 	 	 Thank you for contributing to the Layer5 community! :tada: - \ - \ -  - \ - \ - 	 	 	 	 :star: Please leave a [star on the project](../stargazers). :smile: - - -#------------------------------------------------------------------------------- -# Configuration for request-info - https://github.com/behaviorbot/request-info -# Comment to reply with -requestInfoReplyComment: > - Thanks for opening this issue. We welcome all input! If you could provide a little more information, this will greatly aide in its resolution. :thumbsup: -# *OPTIONAL* Add a list of people whose Issues/PRs will not be commented on -# keys must be GitHub usernames -#requestInfoUserstoExclude: -# - layer5io/maintainers - - -#------------------------------------------------------------------------------- -# Configuration for sentiment-bot - https://github.com/behaviorbot/sentiment-bot -# *Required* toxicity threshold between 0 and .99 with the higher numbers being the most toxic -# Anything higher than this threshold will be marked as toxic and commented on -sentimentBotToxicityThreshold: .9 - -# *Required* Comment to reply with -sentimentBotReplyComment: > - Please be sure to review the code of conduct and be respectful of other users. // @layer5io/maintainers - diff --git a/.github/label-commenter-config.yml b/.github/label-commenter-config.yml deleted file mode 100644 index 0a97e9b55..000000000 --- a/.github/label-commenter-config.yml +++ /dev/null @@ -1,55 +0,0 @@ -comment: - # header: "Please note the following requirement:" - footer: "\ - ---\n\n - > 	 	 	 	 Be sure to [join the community](https://slack.meshery.io), if you haven't yet and please leave a :star: [star on the project](../stargazers) :smile: - " - -labels: - - name: issue/design required - labeled: - issue: - body: This issue has been labeled with 'design-required'. Note that prior to commencing on implementation, a design specification needs to be created and reviewed for approval. See [Creating a Functional Specification](https://docs.google.com/document/d/1RP3IWLc-MiQS-QYasqCoVuCH7--G87p5ezE5f_nOzB8/edit?usp=sharing) to create a design spec. - action: open - - name: issue/remind - labeled: - issue: - body: Checking in... it has been awhile since we've heard from you on this issue. Are you still working on it? Please let us know and please don't hesitate to contact a [MeshMate](https://layer5.io/community/meshmates/) or any other [community member](https://layer5.io/community/members) for assistance. - action: open - pr: - body: Checking in... it has been awhile since we've heard from you on this issue. Are you still working on it? Please let us know and please don't hesitate to contact a [MeshMate](https://layer5.io/community/meshmates/) or any other [community member](https://layer5.io/community/members) for assistance. - action: open - - name: issue/dco - labeled: - issue: - body: "๐จ Alert! Git Police! We couldnโt help but notice that one or more of your commits is missing a sign-off. _A what?_ A commit sign-off (your email address).\n\n - To amend the commits in this PR with your signoff using the instructions provided in the DCO check. \n\n - To configure your dev environment to automatically signoff on your commits in the future, see [these instructions](https://github.com/meshery/meshery/blob/master/CONTRIBUTING.md#signing-off-on-commits-developer-certificate-of-origin)." - action: open - pr: - body: "๐จ Alert! Git Police! We couldnโt help but notice that one or more of your commits is missing a sign-off. _A what?_ A commit sign-off (your email address).\n\n - To amend the commits in this PR with your signoff using the instructions provided in the DCO check. \n\n - To configure your dev environment to automatically signoff on your commits in the future, see [these instructions](https://github.com/meshery/meshery/blob/master/CONTRIBUTING.md#signing-off-on-commits-developer-certificate-of-origin)." - action: open - - name: component/ui - labeled: - issue: - body: This issue has been labeled with 'component/ui'. ๐งฐ Here are docs on [Contributing to Meshery UI](https://docs.meshery.io/project/contributing/contributing-ui). ๐จ Here is the [Meshery UI Figma File](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI?node-id=4%3A0) File. Lastly, here are docs on [Contributing to Meshery's End-to-End Tests Using Cypress](https://docs.meshery.io/project/contributing/contributing-cypress). - action: open - pr: - body: This PR has been labeled with 'component/ui'. ๐งฐ Here are docs on [Contributing to Meshery UI](https://docs.meshery.io/project/contributing/contributing-ui). ๐จ Here is the [Meshery UI Figma File](https://www.figma.com/file/SMP3zxOjZztdOLtgN4dS2W/Meshery-UI?node-id=4%3A0) File. Lastly, here are docs on [Contributing to Meshery's End-to-End Tests Using Cypress](https://docs.meshery.io/project/contributing/contributing-cypress) - action: open - - name: component/mesheryctl - labeled: - issue: - body: This issue has been labeled with 'component/mesheryctl'. Note that after making changes you need to update it in the [mesheryctl command tracker](https://docs.google.com/spreadsheets/d/1q63sIGAuCnIeDs8PeM-0BAkNj8BBgPUXhLbe1Y-318o/edit#gid=0) spreadsheet. - action: open - pr: - body: This PR has been labeled with 'component/mesheryctl'. Note that after making changes you need to update it in the [mesheryctl command tracker](https://docs.google.com/spreadsheets/d/1q63sIGAuCnIeDs8PeM-0BAkNj8BBgPUXhLbe1Y-318o/edit#gid=0) spreadsheet. - action: open - # pr: - # body: Hi, please note that this issue will need an approved design specification before implementation proceeds. See [Creating a Functional Specification](https://docs.google.com/document/d/1RP3IWLc-MiQS-QYasqCoVuCH7--G87p5ezE5f_nOzB8/edit?usp=sharing) to create a design spec. - # action: open - - - diff --git a/.github/labeler.yml b/.github/labeler.yml deleted file mode 100644 index 44a835901..000000000 --- a/.github/labeler.yml +++ /dev/null @@ -1,12 +0,0 @@ -area/ci: - - ".github/**/*" -area/docs: - - "site/**/*" -area/site: - - "site/**/*" -component/components: - - "/src/custom/**/*" -component/icons: - - "/src/icons/**/*" -framework/storyboard: - - "packages/design-system/**/*" diff --git a/.github/readme/images/community.svg b/.github/readme/images/community.svg deleted file mode 100644 index 8ed454fcb..000000000 --- a/.github/readme/images/community.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Layer_1" x="0" y="0" enable-background="new 0 0 59.3 44.5" version="1.1" viewBox="0 0 59.3 44.5" xml:space="preserve"><style type="text/css">.st0{fill:#00b39f}.st1{fill:#00d3a9}</style><g><path d="M45.5,297c-2.3,0-4.5,0.6-6.4,1.6c-0.2,3.2-2,6.1-4.6,7.6c4,1.3,7.3,4.1,9.2,7.7h14.5c0.6,0,1.1-0.5,1.1-1.1 v-2.1C59.3,303.2,53.1,297,45.5,297z" class="st0" transform="translate(0,-280.06665)"/><path d="M13.8,297C6.2,297,0,303.2,0,310.8v2.1c0,0.6,0.5,1.1,1.1,1.1h14.6c1.9-3.6,5.2-6.4,9.2-7.7 c-2.7-1.6-4.5-4.4-4.7-7.7C18.2,297.6,16.1,297,13.8,297L13.8,297z" class="st0" transform="translate(0,-280.06665)"/><path d="M29.6,290.7c-4.1,0-7.4,3.3-7.4,7.4s3.3,7.4,7.4,7.4c4.1,0,7.4-3.3,7.4-7.4C37,294,33.7,290.7,29.6,290.7z" class="st1" transform="translate(0,-280.06665)"/><path d="M29.6,307.6c-7.6,0-13.8,6.2-13.8,13.8v2.1c0,0.6,0.5,1.1,1.1,1.1c0,0,0,0,0,0h25.4c0.6,0,1.1-0.5,1.1-1.1 c0,0,0,0,0,0v-2.1C43.4,313.7,37.2,307.6,29.6,307.6z" class="st1" transform="translate(0,-280.06665)"/><path d="M45.5,280.1c-4.1,0-7.4,3.3-7.4,7.4s3.3,7.4,7.4,7.4c4.1,0,7.4-3.3,7.4-7.4S49.6,280.1,45.5,280.1z" class="st0" transform="translate(0,-280.06665)"/><path d="M13.8,280.1c-4.1,0-7.4,3.3-7.4,7.4s3.3,7.4,7.4,7.4c4.1,0,7.4-3.3,7.4-7.4S17.8,280.1,13.8,280.1z" class="st0" transform="translate(0,-280.06665)"/></g></svg> \ No newline at end of file diff --git a/.github/readme/images/layer5-community-sign.png b/.github/readme/images/layer5-community-sign.png deleted file mode 100644 index 289ff0a41..000000000 Binary files a/.github/readme/images/layer5-community-sign.png and /dev/null differ diff --git a/.github/readme/images/slack-128.png b/.github/readme/images/slack-128.png deleted file mode 100644 index e6cc7457f..000000000 Binary files a/.github/readme/images/slack-128.png and /dev/null differ diff --git a/.github/readme/images/slack-dark-128.png b/.github/readme/images/slack-dark-128.png deleted file mode 100644 index 9011686e3..000000000 Binary files a/.github/readme/images/slack-dark-128.png and /dev/null differ diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml deleted file mode 100644 index 814780d03..000000000 --- a/.github/release-drafter.yml +++ /dev/null @@ -1,36 +0,0 @@ -name-template: 'Sistent v$NEXT_PATCH_VERSION' -tag-template: 'v$NEXT_PATCH_VERSION' -categories: - - title: '๐ Features' - labels: - - 'kind/feature' - - 'kind/enhancement' - - title: '๐ Bug Fixes' - labels: - - 'fix' - - 'bugfix' - - 'kind/bug' - - title: '๐งฐ Maintenance' - labels: - - 'kind/chore' - - 'chore' -change-template: '- $TITLE @$AUTHOR (#$NUMBER)' -version-resolver: - major: - labels: - - "major" - minor: - labels: - - "minor" - patch: - labels: - - "patch" - default: patch -template: | - ## What's New - $CHANGES - - ## Contributors - - Thank you to our contributors for making this release possible: - $CONTRIBUTORS diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index d47fe5be0..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,18 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 45 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 10 -# Issues with these labels will never be considered stale -exemptLabels: - - issue/willfix -# Label to use when marking an issue as stale -staleLabel: issue/stale -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: > - This issue is being automatically closed due to inactivity. - However, you may choose to reopen this issue. diff --git a/.github/welcome/Layer5-celebration.png b/.github/welcome/Layer5-celebration.png deleted file mode 100644 index b23a5f0f8..000000000 Binary files a/.github/welcome/Layer5-celebration.png and /dev/null differ diff --git a/.github/workflows/build-and-deploy-site.yml b/.github/workflows/build-and-deploy-site.yml deleted file mode 100644 index 9f5a7bba0..000000000 --- a/.github/workflows/build-and-deploy-site.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Build and Deploy Site -on: - push: - branches: [ master ] - paths: - - '!**' - - 'site/**' - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: -jobs: - build-and-deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout ๐๏ธ - uses: actions/checkout@master - with: - fetch-depth: 1 - - - name: Install and Build ๐ง - run: | - cd site - npm install - npm run build - - - name: Deploy ๐ - uses: JamesIves/github-pages-deploy-action@v4.4.3 - with: - branch: site # The branch the action should deploy to. - folder: public # The folder the action should deploy. - clean: true diff --git a/.github/workflows/bump-meshery-version.yml b/.github/workflows/bump-meshery-version.yml deleted file mode 100644 index fb2bc38c8..000000000 --- a/.github/workflows/bump-meshery-version.yml +++ /dev/null @@ -1,179 +0,0 @@ -name: Bump Meshery, Meshery Extensions and Meshery Cloud - -on: - workflow_run: - workflows: [Publish Node.js Package] - types: - - completed - -jobs: - versions-check: - runs-on: ubuntu-latest - outputs: - current: ${{ steps.current.outputs.VERSION }} - steps: - - name: Download Version - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 - with: - name: version-number - github-token: ${{ secrets.GH_ACCESS_TOKEN }} - run-id: ${{ github.event.workflow_run.id }} - - name: Retrieve Version - run: | - echo "VERSION=$(cat ./number)" >> $GITHUB_OUTPUT - id: current - bump-meshery: - runs-on: ubuntu-latest - needs: versions-check - steps: - - name: Checkout Meshery code - uses: actions/checkout@v4 - with: - repository: meshery/meshery - fetch-depth: 1 - token: ${{ secrets.RELEASEDRAFTER_PAT }} - - uses: actions/setup-node@v4 - with: - node-version: '20.x' - cache: "npm" - cache-dependency-path: '**/package-lock.json' - - name: Make changes to pull request - working-directory: ui - run: npm install @sistent/sistent@${{needs.versions-check.outputs.current}} - - name: Create Pull Request - id: cpr - uses: peter-evans/create-pull-request@v7 - with: - token: ${{ secrets.RELEASEDRAFTER_PAT }} - commit-message: Bump sistent v${{ needs.versions-check.outputs.current }} dependencies - committer: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - signoff: true - branch: bump-sistent-bot - delete-branch: true - title: '[Chore]: Bump Sistent v${{ needs.versions-check.outputs.current }}' - add-paths: | - ui/package.json - ui/package-lock.json - body: | - Update to Sistent v${{ needs.versions-check.outputs.current }} - - _This pull request has been auto-generated by [l5io](http://github.com/l5io)_ - assignees: l5io - draft: false - bump-meshery-extensions: - runs-on: ubuntu-latest - needs: versions-check - steps: - - name: Checkout Meshery Extensions code - uses: actions/checkout@v4 - with: - repository: layer5labs/meshery-extensions - fetch-depth: 1 - token: ${{ secrets.RELEASEDRAFTER_PAT }} - - uses: actions/setup-node@v4 - with: - node-version: '20.x' - cache: "npm" - cache-dependency-path: '**/package-lock.json' - - name: Make changes to pull request - working-directory: meshmap - run: npm install @sistent/sistent@${{needs.versions-check.outputs.current}} - - name: Create Pull Request - id: cpr - uses: peter-evans/create-pull-request@v7 - with: - token: ${{ secrets.RELEASEDRAFTER_PAT }} - commit-message: Bump sistent v${{ needs.versions-check.outputs.current }} dependencies - committer: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - signoff: true - branch: bump-sistent-bot - delete-branch: true - title: '[Chore]: Bump Sistent v${{needs.versions-check.outputs.current }}' - add-paths: | - meshmap/package.json - meshmap/package-lock.json - body: | - Update to Sistent v${{ needs.versions-check.outputs.current }} - - _This pull request has been auto-generated by [l5io](http://github.com/l5io)_ - assignees: l5io - draft: false - bump-layer5: - runs-on: ubuntu-latest - needs: versions-check - steps: - - name: Checkout Layer5 code - uses: actions/checkout@v4 - with: - repository: layer5io/layer5 - fetch-depth: 1 - token: ${{ secrets.RELEASEDRAFTER_PAT }} - - uses: actions/setup-node@v4 - with: - node-version: '20.x' - cache: "npm" - cache-dependency-path: '**/package-lock.json' - - name: Make changes to pull request - run: npm install @sistent/sistent@${{needs.versions-check.outputs.current}} --legacy-peer-deps - - name: Create Pull Request - id: cpr - uses: peter-evans/create-pull-request@v7 - with: - token: ${{ secrets.RELEASEDRAFTER_PAT }} - commit-message: Bump sistent v${{ needs.versions-check.outputs.current }} dependencies - committer: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - signoff: true - branch: bump-sistent-bot - delete-branch: true - title: '[Chore]: Bump Sistent v${{ needs.versions-check.outputs.current }}' - add-paths: | - package.json - package-lock.json - body: | - Update to Sistent v${{ needs.versions-check.outputs.current }} - - _This pull request has been auto-generated by [l5io](http://github.com/l5io)_ - assignees: l5io - draft: false - bump-meshery-cloud: - runs-on: ubuntu-latest - needs: versions-check - steps: - - name: Checkout Meshery Extensions code - uses: actions/checkout@v4 - with: - repository: layer5io/meshery-cloud - fetch-depth: 1 - token: ${{ secrets.RELEASEDRAFTER_PAT }} - - uses: actions/setup-node@v4 - with: - node-version: '20.x' - cache: "npm" - cache-dependency-path: '**/package-lock.json' - - name: Make changes to pull request - working-directory: ui - run: npm install @sistent/sistent@${{needs.versions-check.outputs.current}} - - name: Create Pull Request - id: cpr - uses: peter-evans/create-pull-request@v7 - with: - token: ${{ secrets.RELEASEDRAFTER_PAT }} - commit-message: Bump sistent v${{ needs.versions-check.outputs.current }} dependencies - committer: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - signoff: true - branch: bump-sistent-bot - delete-branch: true - title: '[Chore]: Bump Sistent v${{ needs.versions-check.outputs.current }}' - add-paths: | - ui/package.json - ui/package-lock.json - body: | - Update to Sistent v${{ needs.versions-check.outputs.current }} - - _This pull request has been auto-generated by [l5io](http://github.com/l5io)_ - assignees: l5io - draft: false diff --git a/.github/workflows/label-commenter.yml b/.github/workflows/label-commenter.yml deleted file mode 100644 index 2ad4e1cce..000000000 --- a/.github/workflows/label-commenter.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Label Commenter - -on: - issues: - types: - - labeled - - pull_request_target: - types: - - labeled - -permissions: - contents: read - issues: write - pull-requests: write - -jobs: - comment: - runs-on: ubuntu-22.04 - steps: - - name: Checkout repo ๐๏ธ - uses: actions/checkout@master - with: - ref: master # Set your default branch - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Label Commenter - uses: peaceiris/actions-label-commenter@v1.10.0 - diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index 1a5051378..000000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: "Pull Request Labeler" -on: -- pull_request_target - -jobs: - triage: - runs-on: ubuntu-22.04 - steps: - - uses: actions/labeler@v4 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/node-checks.yml b/.github/workflows/node-checks.yml deleted file mode 100644 index 531707621..000000000 --- a/.github/workflows/node-checks.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Node version and Lint Check -on: - pull_request: - types: [opened, synchronize] - push: - branches: - - '*' - paths-ignore: - - 'system/**/*' - - '.github/**/*' - - '*.md' - -jobs: - compatibility-check: - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [18, 20] - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - - name: Setup Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node-version }} - - - name: Install Dependencies - run: make setup - - - name: Lint Check - run: make lint - - - name: Prettier Check - run: make format-check - - - name: Build Project - run: make build - - - name: Run Tests - run: make tests - - - name: Log Node.js Version - run: echo "Tested on Node.js version ${{ matrix.node-version }}" diff --git a/.github/workflows/preview-site.yml b/.github/workflows/preview-site.yml deleted file mode 100644 index 49fd6f0d8..000000000 --- a/.github/workflows/preview-site.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Deploy Preview -on: - workflow_run: - workflows: - - Build and Preview Site - types: - - completed - -jobs: - deploy-preview: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2.3.1 - - - name: Download Site dir - uses: dawidd6/action-download-artifact@v6 - with: - github_token: ${{ secrets.GH_ACCESS_TOKEN }} - workflow: build-and-preview-site.yml - run_id: ${{ github.event.workflow_run.id }} - name: public-dir - - - name: Unzip Site - run: | - rm -rf ./site/public - unzip public-dir.zip - rm -f public-dir.zip - - - name: Deploy to Netlify - id: netlify - uses: nwtgck/actions-netlify@v1.1 - with: - publish-dir: 'site/public' - production-deploy: false - github-token: ${{ secrets.GH_ACCESS_TOKEN }} - enable-commit-comment: false - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - - - name: Comment Deploy URL - uses: ./.github/actions/comment-preview-on-pr - with: - token: ${{ secrets.GH_ACCESS_TOKEN }} - deploy_url: "${{ steps.netlify.outputs.deploy-url }}" \ No newline at end of file diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml deleted file mode 100644 index a88e6d16d..000000000 --- a/.github/workflows/release-drafter.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Release Drafter - -on: - push: - # our release branch - branches: - - master - -jobs: - update_release_draft: - runs-on: ubuntu-latest - steps: - # Drafts your next Release notes as Pull Requests are merged into "master" - - uses: release-drafter/release-drafter@v5 - with: - config-name: release-drafter.yml - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index ece1d4094..000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,71 +0,0 @@ -# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created -# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages - -name: Publish Node.js Package - -on: - release: - types: [published] -env: - HUSKY: 0 - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-node@v3 - with: - node-version: '20.x' - - publish-gpr: - needs: build - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - steps: - - uses: actions/checkout@v4 - - - name: "Set Package Version" - uses: reedyuk/npm-version@1.1.1 - with: - version: ${{ github.event.release.tag_name }} - - - uses: actions/setup-node@v3 - with: - node-version: '20.x' - registry-url: "https://registry.npmjs.org" - scope: "@sistent" - - run: | - npm install - npm run build - npm publish --verbose - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - versions-check: - needs: publish-gpr - runs-on: ubuntu-latest - steps: - - uses: actions/github-script@v7 - id: versions - with: - result-encoding: string - script: | - let str = `${{github.event.release.tag_name}}` - - return str.replace(/^v/, '') - - name: Save Release number - if: ${{ !cancelled() }} - run: | - mkdir -p ./version - echo ${{ steps.versions.outputs.result }} > ./version/number - - name: Upload Version Report - if: ${{ !cancelled() }} - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 - with: - name: version-number - path: | - version/number - retention-days: 14 diff --git a/.github/workflows/slack.yml b/.github/workflows/slack.yml deleted file mode 100644 index 7b556b3ea..000000000 --- a/.github/workflows/slack.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Slack Notify -on: - watch: - issues: - types: [started] -jobs: - star-notify: - if: github.event_name == 'watch' - name: Notify Slack on star - runs-on: ubuntu-latest - steps: - - name: Get current star count - run: | - echo "STARS=$(curl --silent 'https://api.github.com/repos/${{github.repository}}' -H 'Accept: application/vnd.github.preview' | jq '.stargazers_count')" >> $GITHUB_ENV - - name: Notify slack - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: pullreminders/slack-action@master - with: - args: '{\"channel\":\"CSK7N9TGX\",\"text\":\"${{ github.actor }} just starred ${{github.repository}}! (https://github.com/${{github.repository}}/stargazers) Total โญ๏ธ: ${{env.STARS}}\"}' - good-first-issue-notify: - if: github.event_name == 'issues' && github.event.label.name == 'good first issue' || github.event.label.name == 'first-timers-only' - name: Notify Slack for new good-first-issue - runs-on: ubuntu-latest - steps: - - name: Notify slack - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - uses: pullreminders/slack-action@master - with: - args: '{\"channel\":\"C019426UBNY\",\"text\":\"A good first issue label was just added to ${{github.event.issue.html_url}}.\"}' diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 8cd00d8ce..000000000 --- a/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ - -# IDEs -.vscode/* - -node_modules - -build/** -dist/** - -packages/dist/** -packages/design-system/node_modules/** - -**/storybook-static/** -pub.sh -.eslintcache - -.DS_Store \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index d0a778429..000000000 --- a/.husky/pre-commit +++ /dev/null @@ -1 +0,0 @@ -npx lint-staged \ No newline at end of file diff --git a/.husky/commit-msg b/.nojekyll old mode 100755 new mode 100644 similarity index 100% rename from .husky/commit-msg rename to .nojekyll diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 3ada852be..000000000 --- a/.prettierignore +++ /dev/null @@ -1,9 +0,0 @@ -# Ignore artifacts: -**/dist/** -**/coverage/** -**/.cache/** -**/.github/** -**/.yarn/** -site/public -.yarnrc.yml -.eslintrc.*js \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 203afc140..000000000 --- a/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "semi": true, - "tabWidth": 2, - "printWidth": 100, - "singleQuote": true, - "trailingComma": "none", - "plugins": ["prettier-plugin-organize-imports"] -} diff --git a/CNAME b/CNAME deleted file mode 100644 index 2ddf36030..000000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -design.layer5.io diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 123ff6212..000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,5 +0,0 @@ -# Layer5 Community Code of Conduct - -The Layer5 community follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting community@layer5.io. diff --git a/CONTRIBUTING-gitflow.md b/CONTRIBUTING-gitflow.md deleted file mode 100644 index 83b739e46..000000000 --- a/CONTRIBUTING-gitflow.md +++ /dev/null @@ -1,118 +0,0 @@ -# Working by Forking - -Just head over to the GitHub page and click the "Fork" button. It's just that simple. Once you've done that, you can use your favorite git client to clone your repo or just head straight to the command line: - -## Clone your fork to your local machine - -``` -git clone git@github.com:USERNAME/FORKED-PROJECT.git -``` - -Keeping Your Fork Up to Date -While this isn't an absolutely necessary step, if you plan on doing anything more than just a tiny quick fix, you'll want to make sure you keep your fork up to date by tracking the original "upstream" repo that you forked. To do this, you'll need to add a remote: - -## Add 'upstream' repo to list of remotes - -``` -git remote add upstream https://github.com/layer5io/sistent.git -``` - -Note: Replace "sistent" with the actual repository name if contributing to a different project under Layer5, such as "docs" - -## Verify the new remote named 'upstream' - -``` -git remote -v -``` - -Whenever you want to update your fork with the latest upstream changes, you'll need to first fetch the upstream repo's branches and latest commits to bring them into your repository: - -## Fetch from upstream remote - -``` -git fetch upstream -``` - -## View all branches, including those from upstream - -``` -git branch -va -``` - -Now, checkout your own master branch and merge the upstream repo's master branch: - -## Checkout your master branch and merge upstream - -``` -git checkout master -git merge upstream/master -``` - -If there are no unique commits on the local master branch, git will simply perform a fast-forward. However, if you have been making changes on master (in the vast majority of cases you probably shouldn't be - see the next section, you may have to deal with conflicts. When doing so, be careful to respect the changes made upstream. - -Now, your local master branch is up-to-date with everything modified upstream. - -**Create a Branch** (doing your work) -Whenever you begin work on a new feature or bugfix, it's important that you create a new branch. Not only is it proper git workflow, but it also keeps your changes organized and separated from the master branch so that you can easily submit and manage multiple pull requests for every task you complete. - -To create a new branch and start working on it, peform the following flow. - -## Checkout the master branch - you want your new branch to come from master - -``` -git checkout master -``` - -## Create a new branch (give your branch its own simple informative name) - -For enhancements use `feature/your_username/issue#` or `feature/your_username/name_of_feature` - -For bugs use `bug/your_username/issue#` or `bug/your_username/name_of_bug` - -``` -git branch feature/jdoe/567 -``` - -## Switch to your new branch - -``` -git checkout feature/jdoe/567 -``` - -Now, go to town hacking away and making whatever changes you want to. - -## Submitting your changes (a Pull Request) - -Prior to submitting your pull request, you might want to do a few things to clean up your branch and make it as simple as possible for the original repo's maintainer to test, accept, and merge your work. - -In the time that you've been working on your changes, if any commits have been made to the upstream master branch, you will need to rebase your development branch so that merging it will be a simple fast-forward that won't require any conflict resolution work. - -## Fetch upstream master and merge with your repo's master branch - -``` -git fetch upstream -git checkout master -git merge upstream/master -``` - -## If there were any new commits, rebase your development branch - -``` -git checkout feature/jdoe/567 -git rebase master -``` - -Now, it may be desirable to squash some of your smaller commits down into a small number of larger more cohesive commits. You can do this with an interactive rebase: - -## Rebase all commits on your development branch - -``` -git checkout -git rebase -i master -``` - -This will open up a text editor where you can specify which commits to squash. - -## Submitting - -Once you've committed and pushed all of your changes to GitHub, go to the page for your fork on GitHub, select your development branch, and click the pull request button. If you need to make any adjustments to your pull request, just push the updates to GitHub. Your pull request will automatically track the changes on your development branch and update. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index eb0ddc547..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,151 +0,0 @@ -# <a name="contributing">Contributing Overview</a> - -Please do! Thanks for your help improving the project! :balloon: - -All contributors are welcome. Please see the [newcomers welcome guide](https://docs.google.com/document/d/17OPtDE_rdnPQxmk2Kauhm3GwXF1R5dZ3Cj8qZLKdo5E/edit) for how, where and why to contribute. This project is community-built and welcomes collaboration. Contributors are expected to adhere to our [Code of Conduct](.CODE_OF_CONDUCT.md). - -Not sure where to start? First, see the [newcomers welcome guide](https://docs.google.com/document/d/17OPtDE_rdnPQxmk2Kauhm3GwXF1R5dZ3Cj8qZLKdo5E/edit). Grab an open issue with the [help-wanted label](../../labels/help%20wanted) and jump in. Join the [Slack account](http://slack.layer5.io) and engage in conversation. Create a [new issue](/../../issues/new/choose) if needed. All [pull requests](/../../pulls) should reference an open [issue](/../../issues). Include keywords in your pull request descriptions, as well as commit messages, to [automatically close issues in GitHub](https://help.github.com/en/github/managing-your-work-on-github/closing-issues-using-keywords). - -**Sections** - -- <a name="contributing">General Contribution Flow</a> - - <a href="#commit-signing">Developer Certificate of Origin</a> - -Relevant coding style guidelines are the Go Code Review Comments and the Formatting and style section of Peter Bourgon's Go: Best Practices for Production Environments. - -# <a name="contributing">General Contribution Flow</a> - -In order to contribute to Meshery, please follow the fork-and-pull request workflow described [here](./CONTRIBUTING-gitflow.md). - -## <a name="commit-signing">Signing-off on Commits (Developer Certificate of Origin)</a> - -To contribute to this project, you must agree to the Developer Certificate of -Origin (DCO) for each commit you make. The DCO is a simple statement that you, -as a contributor, have the legal right to make the contribution. - -See the [DCO](https://developercertificate.org) file for the full text of what you must agree to -and how it works [here](https://github.com/probot/dco#how-it-works). -To signify that you agree to the DCO for contributions, you simply add a line to each of your -git commit messages: - -``` -Signed-off-by: Jane Smith <jane.smith@example.com> -``` - -In most cases, you can add this signoff to your commit automatically with the -`-s` or `--signoff` flag to `git commit`. You must use your real name and a reachable email -address (sorry, no pseudonyms or anonymous contributions). An example of signing off on a commit: - -``` -$ commit -s -m โmy commit message w/signoffโ -``` - -To ensure all your commits are signed, you may choose to add this alias to your global `.gitconfig`: - -_~/.gitconfig_ - -``` -[alias] - amend = commit -s --amend - cm = commit -s -m - commit = commit -s -``` - -Or you may configure your IDE, for example, Visual Studio Code to automatically sign-off commits for you: - -<a href="https://user-images.githubusercontent.com/7570704/64490167-98906400-d25a-11e9-8b8a-5f465b854d49.png" ><img src="https://user-images.githubusercontent.com/7570704/64490167-98906400-d25a-11e9-8b8a-5f465b854d49.png" width="50%"><a> - -## <a name="contributing-docs">Documentation Contribution Flow</a> - -Please contribute! Layer5 documentation uses Jekyll and GitHub Pages to host docs sites. Learn more about [Layer5's documentation framework](https://docs.google.com/document/d/17guuaxb0xsfutBCzyj2CT6OZiFnMu9w4PzoILXhRXSo/edit?usp=sharing). The process of contributing follows this flow: - -1. Create a fork, if you have not already, by following the steps described [here](./CONTRIBUTING-gitflow.md) -1. In the local copy of your fork, navigate to the docs folder. - `cd docs` -1. Create and checkout a new branch to make changes within - `git checkout -b <my-changes>` -1. Edit/add documentation. - `vi <specific page>.md` -1. Run site locally to preview changes. - `make site` -1. Commit, [sign-off](#commit-signing), and push changes to your remote branch. - `git push origin <my-changes>` -1. Open a pull request (in your web browser) against the repo. - -### Commit Message Format - -We follow the [Conventional Commits](https://www.conventionalcommits.org/) standard for our commit messages. Each commit should have a type, an optional scope, and a descriptive message. Examples of commit types include "feat," "fix," "docs," and more. - -Here's a basic commit message format: - -For example: - -- `feat(auth): add user authentication feature` -- `fix(ui): resolve styling issue in the header` - -Please ensure that your commits adhere to this format to maintain a clear and organized commit history. This repo also uses `commitizen` and `commitlint` to make sure that you are adhering the rules in writing a commit. - -To write a commit message for this repo, each commit should have the following above, which includes the type, an optional scope, and a descriptive message. - -- `style`: Since we're using `prettier` and `eslint` to fix formatting and linting styles, you can write your commit message like so: - -`style(repo): use prettier and eslint to lint and format` - -or `style: format files`. - -The above will just write a commit message without a scope. - -- `feat`: When using this commit type, we're introducing a new feature into the repo. This feature has never been used, and will require a `minor` version to be used. -- `fix`: When usin this commit type, we're introducing backward compatibility fixes to the existing repo. To help have a clean git commit, it would be better to create new features, and then work on fixing them to make meaningful releases. -- `docs`: This is specific to any of the documentations, like Markdown files. - -#### Tests - -Users can now test their code on their local machine against the CI checks implemented using `make run-tests`. - -To test code changes on your local machine, run the following command: - -``` -make tests -``` - -#### Building Docker image - -To build a Docker image of the project, please ensure you have `Docker` installed to be able to build the image. Now, run the following command to build the Docker image: - -```sh -make docker -``` - -You can also refer to this "<a href="https://www.youtube.com/live/lsw9KA__iu4?si=o8gpZdSHcqO2OKxE">Training: contributing to Sistent</a>" and this <a href="https://www.youtube.com/live/yiXkxbibLUU?si=Dybj5qr0VLhLWEpl">Websites call</a> where experienced contributors have taught how to use sistent in your project or Meshery - -### UI Lint Rules - -Layer5 uses ES-Lint to maintain code quality & consistency in our UI Code. - -Run the following command before commiting the changes: - -``` -make lint -``` - -# <a name="maintaining"> Reviews</a> - -All contributors are invited to review pull requests. See this short video on [how to review a pull request](https://www.youtube.com/watch?v=isLfo7jfE6g&feature=youtu.be). - -# New to Git? - -Resources: https://lab.github.com and https://try.github.com/ - -### License - -This repository and site are available as open source under the terms of the [Apache 2.0 License](https://opensource.org/licenses/Apache-2.0). - -### About Layer5 - -**Community First** - -<p>The <a href="https://layer5.io/community">Layer5 community</a> represents the largest collection of service mesh projects and their maintainers in the world.</p> - -**Open Source First** -<p>At Layer5, we champion developer-defined infrastructure, giving engineers the power to reshape application delivery. We empower operators in reimagining how they manage modern infrastructure: collaboratively.</p> diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 8b6dabe99..000000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2020 Layer5, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/MAINTAINERS.md b/MAINTAINERS.md deleted file mode 100644 index c5bdb87f5..000000000 --- a/MAINTAINERS.md +++ /dev/null @@ -1,6 +0,0 @@ -# Sistent Maintainers - -| Name | GitHub | Affiliation | -| ------------------ | ----------- | ----------- | -| Antonette Caldwell | nebula-aac | Aquia | -| Aabid Sofi | aabidsofi19 | Layer5 | diff --git a/Makefile b/Makefile deleted file mode 100644 index 22010be53..000000000 --- a/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -include .github/build/Makefile.show-help.mk - -.PHONY: setup build format-check format-fix lint - -## Install Sistent dependencies on your local machine -setup: - npm install - -## Build Sistent components and packages on your local machine -build: - npm run build - -## Buid Sistent in watch mode -build-watch: - npm run build:watch - -## Check code formatting -format-check: - npm run format:check - -## Fix formatting and run Eslint on your local machine -lint: - npm run format:write - npm run lint - -## Run tests -tests: - npm run test - -.PHONY: version-patch version-minor version-major - -# Create a patch version of packages -version-patch: - npm run versionup:patch - -# Create a minor version of packages -version-minor: - npm run versionup:minor - -# Create a major version of packages -version-major: - npm run versionup:major diff --git a/README.md b/README.md deleted file mode 100644 index 209cb0378..000000000 --- a/README.md +++ /dev/null @@ -1,216 +0,0 @@ -# Sistent Design System Sistent - -The Sistent Design System provides the open source building blocks to design and implement consistent, accessible, and delightful product experiences. Visit the <a href="https://layer5.io/projects/sistent">project website</a> for more information. - -## Contributing to Sistent - -### Prerequisites - -Before you begin, ensure you have the following installed on your system: - -- Node.js - -### How to get started - -Make sure you have `npm` on `node@16` and above. The CI workflows checks for in `node@16`, `node@18` and `node@20` - -<div> </div> - -### Installation - -To set up the project, run the following command to install dependencies: - -``` -make setup -``` - -To test the sistent component locally, you can run: - -``` -make build -``` - -If you wish to build in watch mode: - -``` -make build-watch -``` - -To check if your code meets the formatting standards, you can run: - -``` -make format-check -``` - -To run Eslint: - -``` -make lint -``` - -To run tests: - -``` -make tests -``` - -### Using your local Sistent Fork in a Project - -#### Method 1: Manual Installation - -1. Install your local Sistent package in the project - -``` -npm install <path-to-sistent-on-local-machine> -``` - -> Example: -> -> ``` -> # relative path -> npm install ../../sistent -> -> # absolute path -> npm install /home/five/code/sistent -> ``` - -This will update your Sistent dependency to: - -``` -"@sistent/sistent" : "file:../../sistent" -``` - -2. Build your local Sistent fork - -After making changes to your fork, run this command in your local Sistent package. - -``` -make build -``` - -3. Run the build command in the project where your local Sistent fork is installed. - -``` -# example, Meshery UI -make ui-build -``` - -Now, your project should reflect changes from your local Sistent fork. - -If you want to remove the local Sistent fork from your project, run: - -``` -npm uninstall @sistent/sistent -``` - -This will remove the local Sistent package from your project. You will have to reinstall the official package using this command: - -``` -npm install @sistent/sistent -``` - -#### Method 2: Using `npm link` - -1. Create a link of your local Sistent fork - -``` -cd <path-to-sistent-on-local-machine> - -npm link -``` - -This creates a global symlink which points to the local Sistent fork. - -2. Link the local Sistent fork to your project - -``` -npm link @sistent/sistent -``` - -3.Build your local Sistent fork - -After making changes to your fork, run this command in your local Sistent package. - -``` -make build -``` - -4. Run the build command in the project where your local Sistent fork is installed. - -``` -# example, Meshery UI -make ui-build -``` - -Now, your project should reflect changes from your local Sistent fork. - -5. Verify that your local Sistent fork has been correctly linked. - -To verify that the correct link has been created, run this command: - -``` -npm ls -g - -# Expected output: -# โโโ @sistent/sistent@0.14.11 -> ./../../../../<path-to-local-sistent-fork> -``` - -To verify that the created link is correctly used in your project, run this command in the directory where you linked the Sistent fork: - -``` -ls -l node_modules/@sistent/sistent - -# Expected output: -# node_modules/@sistent/sistent -> ../../../../../sistent -``` - -To revert back to the official package, first unlink the package, then install the official package using the following commands: - -``` -npm unlink @sistent/sistent -npm install @sistent/sistent -``` - -> [!NOTE] -> Avoid using `type any` in your code. Always specify explicit types to ensure type safety and maintainability. - -<br/> - -## Join the Layer5 community! - -<a name="contributing"></a><a name="community"></a> -Our projects are community-built and welcome collaboration. ๐ Be sure to see the <a href="https://layer5.io/community/newcomers">Layer5 Community Welcome Guide</a> for a tour of resources available to you and jump into our <a href="http://slack.layer5.io">Slack</a>! - -<p style="clear:both;"> -<a href ="https://layer5.io/community/meshmates"><img alt="MeshMates" src=".github/readme/images/layer5-community-sign.png" style="margin-right:10px; margin-bottom:15px;" width="28%" align="left"/></a> -<h3>Find your MeshMate</h3> - -<p>MeshMates are experienced Layer5 community members, who will help you learn your way around, discover live projects and expand your community network. -Become a <b>Meshtee</b> today!</p> - -Find out more on the <a href="https://layer5.io/community">Layer5 community</a>. <br /> -<br /><br /><br /><br /> - -</p> -<div> </div> - -<a href="https://slack.meshery.io"> - -<picture align="right"> - <source media="(prefers-color-scheme: dark)" srcset=".github/readme/images//slack-dark-128.png" width="110px" align="right" style="margin-left:10px;margin-top:10px;"> - <source media="(prefers-color-scheme: light)" srcset=".github/readme/images//slack-128.png" width="110px" align="right" style="margin-left:10px;padding-top:5px;"> - <img alt="Shows an illustrated light mode meshery logo in light color mode and a dark mode meshery logo dark color mode." src=".github/readme/images//slack-128.png" width="110px" align="right" style="margin-left:10px;padding-top:13px;"> -</picture> -</a> - -<a href="https://meshery.io/community"><img alt="Layer5 Community" src=".github/readme/images//community.svg" style="margin-right:8px;padding-top:5px;" width="140px" align="left" /></a> - -<p> -โ๏ธ <em><strong>Join</strong></em> any or all of the weekly meetings on <a href="https://meet.layer5.io">community calendar</a>.<br /> -โ๏ธ <em><strong>Watch</strong></em> community <a href="https://www.youtube.com/playlist?list=PL3A-A6hPO2IMPPqVjuzgqNU5xwnFFn3n0">meeting recordings</a>.<br /> -โ๏ธ <em><strong>Access</strong></em> the Community Drive by completing a community <a href="https://layer5.io/newcomer">Member Form</a>.<br /> -โ๏ธ <em><strong>Discuss</strong></em> in the <a href="https://discuss.layer5.io">Community Forum</a>.<br /> -โ๏ธ<em><strong>Explore more</strong></em> in the <a href="https://layer5.io/community/handbook">Community Handbook</a>.<br /> -</p> -<p align="center"> -<i>Not sure where to start?</i> Grab an open issue with the <a href="https://github.com/issues?q=is%3Aopen+is%3Aissue+archived%3Afalse+(org%3Alayer5io+OR+org%3Ameshery+OR+org%3Alayer5labs+OR+org%3Aservice-mesh-performance+OR+org%3Aservice-mesh-patterns+OR+org%3Ameshery-extensions)+label%3A%22help+wanted%22">help-wanted label</a>.</p> diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 3b98c8391..000000000 --- a/SECURITY.md +++ /dev/null @@ -1,66 +0,0 @@ -# Security Policy - -We are very grateful to the security researchers and users that report -back Layer5 project security vulnerabilities. We investigate every report thoroughly. - -## Reporting a vulnerability - -To make a report, send an email to the private -[security-vulns-reports@layer5.io](mailto:security-vulns-reports@layer5.io) -mailing list with the vulnerability details. For normal product bugs -unrelated to latent security vulnerabilities, please head to -the appropriate repository and submit a [new issue](../../issues/new/choose). - -### When to report a security vulnerability? - -Send us a report whenever you: - -- Think Layer5 projects have a potential security vulnerability. -- Are unsure whether or how a vulnerability affects Layer5 projects. -- Think a vulnerability is present in another project that Layer5 projects - depend on (Docker for example). - -### When not to report a security vulnerability? - -Don't send a vulnerability report if: - -- You need help tuning Layer5 project components for security. -- You need help applying security related updates. -- Your issue is not security related. - -## Evaluation - -The Layer5 team acknowledges and analyzes each vulnerability report within 10 working days. - -Any vulnerability information you share with the Layer5 team stays -within the Layer5 project. We don't disseminate the information to other -projects. We only share the information as needed to fix the issue. - -We keep the reporter updated as the status of the security issue is addressed. - -## Fixing the issue - -Once a security vulnerability has been fully characterized, a fix is developed by the Layer5 team. -The development and testing for the fix happens in a private GitHub repository in order to prevent -premature disclosure of the vulnerability. - -## Early disclosure - -The Layer5 team maintains a mailing list for private early disclosure of security vulnerabilities. -The list is used to provide actionable information to close Layer5 partners. The list is not intended -for individuals to find out about security issues. - -## Public disclosure - -On the day chosen for public disclosure, a sequence of activities takes place as quickly as possible: - -- Changes are merged from the private GitHub repository holding the fix into the appropriate set of public - branches. -- Layer5 team ensures all necessary binaries are promptly built and published. -- Once the binaries are available, an announcement is sent out on the following channels: - - The [Layer5 blog](https://layer5.io/blog/) - - The [Layer5 Twitter feed](https://twitter.com/layer5) - - The #announcements channel on Slack - -As much as possible this announcement will be actionable, and include any mitigating steps customers can take prior to -upgrading to a fixed version. diff --git a/commitlint.config.js b/commitlint.config.js deleted file mode 100644 index c6b188d92..000000000 --- a/commitlint.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - extends: ['@commitlint/config-conventional'], - rules: { - 'subject-case': [0, 'never'] - } -}; diff --git a/examples/next-12/.gitignore b/examples/next-12/.gitignore deleted file mode 100644 index fd3dbb571..000000000 --- a/examples/next-12/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/next-12/README.md b/examples/next-12/README.md deleted file mode 100644 index 5d98b1e5a..000000000 --- a/examples/next-12/README.md +++ /dev/null @@ -1,40 +0,0 @@ -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. - -[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`. - -The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. - -This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/examples/next-12/components/DefaultModal/index.jsx b/examples/next-12/components/DefaultModal/index.jsx deleted file mode 100644 index ce37b6063..000000000 --- a/examples/next-12/components/DefaultModal/index.jsx +++ /dev/null @@ -1,56 +0,0 @@ -import { - Button, - Dialog, - DialogActions, - DialogContent, - DialogTitle, - IconButton, - Typography -} from '@layer5/sistent-components'; -import { CloseIcon } from '@layer5/sistent-svg'; -import React from 'react'; - -export default function DefaultModal() { - const [open, setOpen] = React.useState(false); - - const handleClickOpen = () => { - setOpen(true); - }; - const handleClose = () => { - setOpen(false); - }; - - return ( - <React.Fragment> - <Button variant="contained" onClick={handleClickOpen}> - Open Dialog - </Button> - <Dialog onClose={handleClose} open={open}> - <DialogTitle>Modal Title</DialogTitle> - <IconButton onClick={handleClose} sx={{ position: 'absolute', right: 8, top: 8 }}> - <CloseIcon width={24} height={24} /> - </IconButton> - <DialogContent dividers> - <Typography gutterBottom> - Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. - </Typography> - <Typography gutterBottom> - Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. - </Typography> - <Typography gutterBottom> - Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. - </Typography> - </DialogContent> - <DialogActions> - <Button variant="contained" autoFocus onClick={handleClose}> - Save changes - </Button> - </DialogActions> - </Dialog> - </React.Fragment> - ); -} diff --git a/examples/next-12/components/Modal/index.jsx b/examples/next-12/components/Modal/index.jsx deleted file mode 100644 index 84baca037..000000000 --- a/examples/next-12/components/Modal/index.jsx +++ /dev/null @@ -1,186 +0,0 @@ -import { Button, Dialog, DialogContent, DialogTitle, Tooltip } from '@layer5/sistent-components'; -import { CloseIcon } from '@layer5/sistent-svg'; -import FullscreenIcon from '@mui/icons-material/Fullscreen'; -import FullscreenExitIcon from '@mui/icons-material/FullscreenExit'; -import { styled } from '@mui/material/styles'; -import React from 'react'; - -const StyledDialogActionsFooter = styled('div')(({ theme }) => ({ - display: 'flex', - width: '100%', - padding: '0.9375rem 1.25rem', - alignItems: 'center', - justifyContent: 'flex-end', - boxShadow: '0px 1px 8px rgba(0, 0, 0, 0.25)', - backgroundColor: '#294957', - opacity: '0.8' -})); - -const StyledDialogActions = styled('div')(({ theme }) => ({ - display: 'flex', - justifyContent: 'center', - width: '100%', - padding: '0.9375rem 1.25rem', - alignItems: 'center', - boxShadow: '0px 1px 8px rgba(0, 0, 0, 0.25)', - backgroundColor: '#294957', - color: 'white' -})); - -const StyledDialog = styled(Dialog)(({ theme }) => ({ - '& .MuiDialog-paper': { - backgroundColor: theme.palette.mode === 'dark' ? '#303030' : 'white', - borderRadius: '10px', - zIndex: 9999 - } -})); - -const StyledDialogTitle = styled(DialogTitle)(({ theme }) => ({ - backgroundColor: '#294957', - textAlign: 'center', - color: 'white', - bottom: '2px', - boxShadow: '0px 4px 4px rgba(0, 179, 159, 0.4)' -})); - -const CloseIconButton = styled(CloseIcon)(({ theme }) => ({ - transform: 'rotate(-90deg)', - '&:hover': { - transform: 'rotate(90deg)', - transition: 'all .3s ease-in', - cursor: 'pointer' - }, - table: { - minWidth: '62.625rem' - }, - height: '2rem', - width: '2rem' -})); - -const ActionButton = styled(Button)(({ theme }) => ({ - backgroundColor: '#00B39F', - width: '100%', - '&:hover': { - backgroundColor: '#00D3A9' - } -})); - -const CancelButton = styled(Button)(() => ({ - marginRight: '1rem', - color: '#000', - backgroundColor: 'white', - width: '100%', - '&:hover': { - backgroundColor: 'white' - } -})); - -const HeaderWrapper = styled('div')({ - display: 'flex', - alignItems: 'center', - justifyContent: 'space-between' -}); - -const IconsContainer = styled('div')({ - display: 'flex', - alignItems: 'center' -}); - -const FullscreenButton = styled(FullscreenIcon)(({ theme }) => ({ - height: '2.25rem', - width: '2.25rem', - fill: theme.palette.background.paper, - cursor: 'pointer' -})); - -const FullscreenExitButton = styled(FullscreenExitIcon)(({ theme }) => ({ - height: '2.25rem', - width: '2.25rem', - fill: theme.palette.background.paper, - cursor: 'pointer' -})); - -function Modal(props) { - const { - open, - handleClose, - modalTitle, - maxWidth, - cancelButton = true, - cancelButtonText, - actionButtonText, - onAction, - onCancel, - footerText, - modalIcon, - isFullScreenModeAllowed, - contentStyles, - children, - style - } = props; - - const [fullScreen, setFullScreen] = React.useState(false); - - const toggleFullScreen = () => { - setFullScreen((state) => !state); - }; - - return ( - <React.Fragment> - <StyledDialog - open={open} - onClose={handleClose} - maxWidth={maxWidth ? maxWidth : 'md'} - fullScreen={fullScreen} - fullWidth={!fullScreen} - sx={{ - '& .MuiDialog-paper': { - ...style - } - }} - > - {/* Modal Header */} - <StyledDialogTitle> - <HeaderWrapper> - {modalIcon} - {modalTitle} - <IconsContainer> - {isFullScreenModeAllowed && ( - <Tooltip title={fullScreen ? 'Exit Fullscreen' : 'Enter Fullscreen'}> - {fullScreen ? ( - <FullscreenExitButton onClick={toggleFullScreen} /> - ) : ( - <FullscreenButton onClick={toggleFullScreen} /> - )} - </Tooltip> - )} - <Tooltip title="close"> - <CloseIconButton onClick={handleClose} /> - </Tooltip> - </IconsContainer> - </HeaderWrapper> - </StyledDialogTitle> - {/* Modal Content */} - <DialogContent sx={{ ...contentStyles }}>{children}</DialogContent> - - {/* Modal Actions */} - {onAction ? ( - <StyledDialogActionsFooter> - {cancelButton && ( - <CancelButton variant="contained" onClick={onCancel}> - {cancelButtonText ? cancelButtonText : 'Cancel'} - </CancelButton> - )} - <ActionButton variant="contained" onClick={onAction}> - {actionButtonText ? actionButtonText : 'Save'} - </ActionButton> - </StyledDialogActionsFooter> - ) : ( - <StyledDialogActions>{footerText}</StyledDialogActions> - )} - </StyledDialog> - </React.Fragment> - ); -} - -export default Modal; diff --git a/examples/next-12/components/ModeToggleButton.jsx b/examples/next-12/components/ModeToggleButton.jsx deleted file mode 100644 index d1bfcc286..000000000 --- a/examples/next-12/components/ModeToggleButton.jsx +++ /dev/null @@ -1,34 +0,0 @@ -import { toggleTheme } from '@/lib/redux/theme/themeSlice'; -import { IconButton } from '@mui/material'; -import { useDispatch, useSelector } from 'react-redux'; - -import DarkModeIcon from '@mui/icons-material/DarkMode'; -import LightModeIcon from '@mui/icons-material/LightMode'; - -function DynamicIcon({ mode }) { - if (mode === 'dark') { - return <DarkModeIcon />; - } - - return <LightModeIcon />; -} - -function ModeToggleButton() { - const dispatch = useDispatch(); // Initialize the useDispatch function - - // Use useSelector to get the darkTheme state from your Redux store - const mode = useSelector((state) => (state.theme.darkTheme ? 'dark' : 'light')); - - const toggleMode = () => { - // Dispatch the toggleTheme action when the button is clicked - dispatch(toggleTheme()); - }; - - return ( - <IconButton onClick={toggleMode} sx={{ width: 40, height: 40 }}> - <DynamicIcon mode={mode} /> - </IconButton> - ); -} - -export default ModeToggleButton; diff --git a/examples/next-12/components/ResponsiveDataTable/ResponsiveDataTable.jsx b/examples/next-12/components/ResponsiveDataTable/ResponsiveDataTable.jsx deleted file mode 100644 index e5e5d66bd..000000000 --- a/examples/next-12/components/ResponsiveDataTable/ResponsiveDataTable.jsx +++ /dev/null @@ -1,94 +0,0 @@ -import MUIDataTable from 'mui-datatables'; -import { useEffect, useState } from 'react'; - -export function ResponsiveDataTable({ data, columns, options = {}, ...props }) { - const [tableCols, updateCols] = useState(columns); - const [columnVisibility, ,] = useState({}); - - const formatDate = (date) => { - const dateOptions = { - weekday: 'short', - day: 'numeric', - month: 'long', - year: 'numeric' - }; - - return new Intl.DateTimeFormat('un-US', dateOptions).format(date); - }; - - const updatedOptions = { - ...options, - onViewColumnsChange: (column, action) => { - switch (action) { - case 'add': { - const colToAdd = columns.find((obj) => obj.name === column); - if (colToAdd) { - colToAdd.options.display = true; - updateCols([...columns]); - } - break; - } - case 'remove': { - const colToRemove = columns.find((obj) => obj.name === column); - if (colToRemove) { - colToRemove.options.display = false; - updateCols([...columns]); - } - break; - } - } - } - }; - - useEffect(() => { - columns?.forEach((col) => { - if (!col.options) { - col.options = {}; - } - col.options.display = columnVisibility[col.name]; - - if ( - ['updated_at', 'created_at', 'deleted_at', 'last_login_time', 'joined_at'].includes( - col.name - ) - ) { - col.options.customBodyRender = (value) => { - if (value === 'NA') { - return <>{value}</>; - } else if (typeof value === 'object' && 'Valid' in value) { - const obj = value; - if (obj.Valid && obj.Time) { - const date = new Date(obj.Time); - return <>{formatDate(date)}</>; - } else { - return <>NA</>; - } - } else if (typeof value === 'string') { - const date = new Date(value); - return <>{formatDate(date)}</>; - } else { - return <>{value}</>; - } - }; - } - }); - updateCols([...columns]); - }, [columnVisibility]); - - const components = { - ExpandButton: () => '' - }; - - return ( - <MUIDataTable - columns={columns || []} - data={data || []} - title={undefined} - components={components} - options={updatedOptions} - tableCols={tableCols} - updateCols={updateCols} - {...props} - /> - ); -} diff --git a/examples/next-12/components/ResponsiveDataTable/index.jsx b/examples/next-12/components/ResponsiveDataTable/index.jsx deleted file mode 100644 index 5768cd608..000000000 --- a/examples/next-12/components/ResponsiveDataTable/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export { ResponsiveDataTable } from './ResponsiveDataTable'; diff --git a/examples/next-12/components/SistentModal/index.jsx b/examples/next-12/components/SistentModal/index.jsx deleted file mode 100644 index 1d63c4beb..000000000 --- a/examples/next-12/components/SistentModal/index.jsx +++ /dev/null @@ -1,47 +0,0 @@ -import Modal from '@/components/Modal'; -import { Button, Typography } from '@layer5/sistent-components'; -import React from 'react'; - -export default function SistentModal() { - const [openModal, setOpenModal] = React.useState(true); - - const handleModalOpen = () => { - setOpenModal(true); - }; - const handleModalClose = () => { - console.log('Closing modal...'); - setOpenModal(false); - }; - const handleAction = () => { - handleModalClose(); - }; - return ( - <React.Fragment> - <Button variant="contained" onClick={handleModalOpen}> - Open - </Button> - <Modal - open={openModal} - modalTitle="Where do you want to start?" - handleClose={handleModalClose} - actionName="Start" - cancelButton={false} - onAction={handleAction} - > - <Typography gutterBottom> - Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. - </Typography> - <Typography gutterBottom> - Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus - vel augue laoreet rutrum faucibus dolor auctor. - </Typography> - <Typography gutterBottom> - Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. - </Typography> - </Modal> - </React.Fragment> - ); -} diff --git a/examples/next-12/components/index.jsx b/examples/next-12/components/index.jsx deleted file mode 100644 index fc8493888..000000000 --- a/examples/next-12/components/index.jsx +++ /dev/null @@ -1 +0,0 @@ -export * from './ResponsiveDataTable'; diff --git a/examples/next-12/jsconfig.json b/examples/next-12/jsconfig.json deleted file mode 100644 index 2a2e4b3bf..000000000 --- a/examples/next-12/jsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "compilerOptions": { - "paths": { - "@/*": ["./*"] - } - } -} diff --git a/examples/next-12/lib/providers/AppThemeProvider.jsx b/examples/next-12/lib/providers/AppThemeProvider.jsx deleted file mode 100644 index 63bd67467..000000000 --- a/examples/next-12/lib/providers/AppThemeProvider.jsx +++ /dev/null @@ -1,45 +0,0 @@ -import createEmotionCache from '@/styles/createEmotionCache'; -import { darkTheme, lightTheme } from '@/styles/themes/theme'; -import { CacheProvider } from '@emotion/react'; -import { CssBaseline, ThemeProvider, createTheme } from '@mui/material'; -import { useMemo } from 'react'; -import { useSelector } from 'react-redux'; - -const clientSideEmotionCache = createEmotionCache(); - -export function AppThemeProvider({ children, emotionCache = clientSideEmotionCache }) { - // const dispatch = useDispatch(); - - const mode = useSelector((state) => (state.theme.darkTheme ? 'dark' : 'light')); - - const theme = useMemo( - () => - createTheme({ - palette: { - mode, - primary: { - ...(mode === 'light' ? lightTheme.palette.primary : darkTheme.palette.primary) - }, - secondary: { - main: '#EE5351' - }, - background: { - ...(mode === 'light' ? lightTheme.palette.background : darkTheme.palette.background) - }, - text: { - ...(mode === 'light' ? lightTheme.palette.text : darkTheme.palette.text) - } - } - }), - [mode] - ); - - return ( - <CacheProvider value={emotionCache}> - <ThemeProvider theme={theme}> - <CssBaseline /> - {children} - </ThemeProvider> - </CacheProvider> - ); -} diff --git a/examples/next-12/lib/providers/ReduxProvider.jsx b/examples/next-12/lib/providers/ReduxProvider.jsx deleted file mode 100644 index 4c87ff88e..000000000 --- a/examples/next-12/lib/providers/ReduxProvider.jsx +++ /dev/null @@ -1,6 +0,0 @@ -import { Provider } from 'react-redux'; -import store from '../redux/store'; - -export function ReduxProvider({ children }) { - return <Provider store={store}>{children}</Provider>; -} diff --git a/examples/next-12/lib/redux/store.js b/examples/next-12/lib/redux/store.js deleted file mode 100644 index a90e4924f..000000000 --- a/examples/next-12/lib/redux/store.js +++ /dev/null @@ -1,8 +0,0 @@ -import { configureStore } from '@reduxjs/toolkit'; -import theme from './theme/themeSlice'; - -export default configureStore({ - reducer: { - theme - } -}); diff --git a/examples/next-12/lib/redux/theme/themeSlice.js b/examples/next-12/lib/redux/theme/themeSlice.js deleted file mode 100644 index ddb0c17d7..000000000 --- a/examples/next-12/lib/redux/theme/themeSlice.js +++ /dev/null @@ -1,17 +0,0 @@ -import { createSlice } from '@reduxjs/toolkit'; - -export const themeSlice = createSlice({ - name: 'theme', - initialState: { - darkTheme: false - }, - reducers: { - toggleTheme: (state) => { - state.darkTheme = !state.darkTheme; - } - } -}); - -export const { toggleTheme } = themeSlice.actions; - -export default themeSlice.reducer; diff --git a/examples/next-12/next.config.js b/examples/next-12/next.config.js deleted file mode 100644 index 6d32668bf..000000000 --- a/examples/next-12/next.config.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - reactStrictMode: true -}; - -module.exports = nextConfig; diff --git a/examples/next-12/package-lock.json b/examples/next-12/package-lock.json deleted file mode 100644 index 95ed4ec09..000000000 --- a/examples/next-12/package-lock.json +++ /dev/null @@ -1,3093 +0,0 @@ -{ - "name": "next-12", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "next-12", - "version": "0.0.0", - "dependencies": { - "@emotion/cache": "^11.11.0", - "@emotion/react": "^11.11.1", - "@emotion/styled": "^11.11.0", - "@layer5/sistent-components": "^0.9.2-beta.0", - "@layer5/sistent-svg": "^0.11.2-beta.1", - "@mui/icons-material": "^5.14.16", - "@mui/material": "^5.14.17", - "@reduxjs/toolkit": "^1.9.7", - "mui-datatables": "^4.3.0", - "next": "14", - "react": "17", - "react-dom": "17", - "react-redux": "^8.1.3" - }, - "devDependencies": { - "eslint": "^8" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", - "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.9" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", - "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.10.tgz", - "integrity": "sha512-uITFQYO68pMEYR46AHgQoyBg7KPPJDAbGn4jUTIRgCFJIp88MIBUianVOplhZDEec07bp9zIyr4Kp0FCyQzmWg==", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", - "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@emotion/babel-plugin": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", - "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/serialize": "^1.3.3", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/cache": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", - "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0", - "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", - "license": "MIT" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", - "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", - "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", - "license": "MIT" - }, - "node_modules/@emotion/react": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", - "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", - "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/unitless": "^0.10.0", - "@emotion/utils": "^1.4.2", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/sheet": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", - "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", - "license": "MIT" - }, - "node_modules/@emotion/styled": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", - "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/is-prop-valid": "^1.3.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0-rc.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/unitless": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", - "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", - "license": "MIT" - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", - "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", - "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", - "license": "MIT" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", - "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", - "license": "MIT" - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@layer5/sistent-components": { - "version": "0.9.2-beta.0", - "resolved": "https://registry.npmjs.org/@layer5/sistent-components/-/sistent-components-0.9.2-beta.0.tgz", - "integrity": "sha512-j7mYDDKnS6u67I8R8N6bPyGUESrRFb+MGzWNsJ5zItNpc2e1Uj1D28aTm1xiw5q87LzAuX6SD7A/h9DWZ+BxXQ==", - "dependencies": { - "@layer5/sistent-svg": "^0.11.2-beta.1" - }, - "optionalDependencies": { - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependencies": { - "@emotion/react": "*", - "@emotion/styled": "*", - "@mui/material": "*", - "@types/mui-datatables": "*", - "mui-datatables": "*", - "react": ">=17", - "react-dom": ">=17" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@mui/material": { - "optional": true - }, - "mui-datatables": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@layer5/sistent-svg": { - "version": "0.11.2-beta.1", - "resolved": "https://registry.npmjs.org/@layer5/sistent-svg/-/sistent-svg-0.11.2-beta.1.tgz", - "integrity": "sha512-Vbj0neeo3mtI66SwiaWi7qrK4AIxJ75Dn+Z24q2jD4C3Dw8IDqEnpHxeMKz/Oenug2dKuHCKKqX6w4p8z7NMOA==", - "optionalDependencies": { - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependencies": { - "react": ">=17", - "react-dom": ">=17" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@mui/core-downloads-tracker": { - "version": "5.16.14", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.14.tgz", - "integrity": "sha512-sbjXW+BBSvmzn61XyTMun899E7nGPTXwqD9drm1jBUAvWEhJpPFIRxwQQiATWZnd9rvdxtnhhdsDxEGWI0jxqA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - } - }, - "node_modules/@mui/icons-material": { - "version": "5.16.14", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.14.tgz", - "integrity": "sha512-heL4S+EawrP61xMXBm59QH6HODsu0gxtZi5JtnXF2r+rghzyU/3Uftlt1ij8rmJh+cFdKTQug1L9KkZB5JgpMQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@mui/material": "^5.0.0", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/material": { - "version": "5.16.14", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.14.tgz", - "integrity": "sha512-eSXQVCMKU2xc7EcTxe/X/rC9QsV2jUe8eLM3MUCPYbo6V52eCE436akRIvELq/AqZpxx2bwkq7HC0cRhLB+yaw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/core-downloads-tracker": "^5.16.14", - "@mui/system": "^5.16.14", - "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.14", - "@popperjs/core": "^2.11.8", - "@types/react-transition-group": "^4.4.10", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1", - "react-is": "^19.0.0", - "react-transition-group": "^4.4.5" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/private-theming": { - "version": "5.16.14", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.14.tgz", - "integrity": "sha512-12t7NKzvYi819IO5IapW2BcR33wP/KAVrU8d7gLhGHoAmhDxyXlRoKiRij3TOD8+uzk0B6R9wHUNKi4baJcRNg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.16.14", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/styled-engine": { - "version": "5.16.14", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.14.tgz", - "integrity": "sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@emotion/cache": "^11.13.5", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } - } - }, - "node_modules/@mui/system": { - "version": "5.16.14", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.14.tgz", - "integrity": "sha512-KBxMwCb8mSIABnKvoGbvM33XHyT+sN0BzEBG+rsSc0lLQGzs7127KWkCA6/H8h6LZ00XpBEME5MAj8mZLiQ1tw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.16.14", - "@mui/styled-engine": "^5.16.14", - "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.14", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/types": { - "version": "7.2.21", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.21.tgz", - "integrity": "sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==", - "license": "MIT", - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/utils": { - "version": "5.16.14", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz", - "integrity": "sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^19.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@next/env": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.26.tgz", - "integrity": "sha512-vO//GJ/YBco+H7xdQhzJxF7ub3SUwft76jwaeOyVVQFHCi5DCnkP16WHB+JBylo4vOKPoZBlR94Z8xBxNBdNJA==", - "license": "MIT" - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.26.tgz", - "integrity": "sha512-zDJY8gsKEseGAxG+C2hTMT0w9Nk9N1Sk1qV7vXYz9MEiyRoF5ogQX2+vplyUMIfygnjn9/A04I6yrUTRTuRiyQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.26.tgz", - "integrity": "sha512-U0adH5ryLfmTDkahLwG9sUQG2L0a9rYux8crQeC92rPhi3jGQEY47nByQHrVrt3prZigadwj/2HZ1LUUimuSbg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.26.tgz", - "integrity": "sha512-SINMl1I7UhfHGM7SoRiw0AbwnLEMUnJ/3XXVmhyptzriHbWvPPbbm0OEVG24uUKhuS1t0nvN/DBvm5kz6ZIqpg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.26.tgz", - "integrity": "sha512-s6JaezoyJK2DxrwHWxLWtJKlqKqTdi/zaYigDXUJ/gmx/72CrzdVZfMvUc6VqnZ7YEvRijvYo+0o4Z9DencduA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.26.tgz", - "integrity": "sha512-FEXeUQi8/pLr/XI0hKbe0tgbLmHFRhgXOUiPScz2hk0hSmbGiU8aUqVslj/6C6KA38RzXnWoJXo4FMo6aBxjzg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.26.tgz", - "integrity": "sha512-BUsomaO4d2DuXhXhgQCVt2jjX4B4/Thts8nDoIruEJkhE5ifeQFtvW5c9JkdOtYvE5p2G0hcwQ0UbRaQmQwaVg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.26.tgz", - "integrity": "sha512-5auwsMVzT7wbB2CZXQxDctpWbdEnEW/e66DyXO1DcgHxIyhP06awu+rHKshZE+lPLIGiwtjo7bsyeuubewwxMw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.26.tgz", - "integrity": "sha512-GQWg/Vbz9zUGi9X80lOeGsz1rMH/MtFO/XqigDznhhhTfDlDoynCM6982mPCbSlxJ/aveZcKtTlwfAjwhyxDpg==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.26.tgz", - "integrity": "sha512-2rdB3T1/Gp7bv1eQTTm9d1Y1sv9UuJ2LAwOE0Pe2prHKe32UNscj7YS13fRB37d0GAiGNR+Y7ZcW8YjDI8Ns0w==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@react-dnd/asap": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz", - "integrity": "sha512-kLy0PJDDwvwwTXxqTFNAAllPHD73AycE9ypWeln/IguoGBEbvFcPDbCV03G52bEcC5E+YgupBE0VzHGdC8SIXg==", - "license": "MIT" - }, - "node_modules/@react-dnd/invariant": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz", - "integrity": "sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==", - "license": "MIT" - }, - "node_modules/@react-dnd/shallowequal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz", - "integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==", - "license": "MIT" - }, - "node_modules/@reduxjs/toolkit": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", - "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", - "license": "MIT", - "dependencies": { - "immer": "^9.0.21", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.8" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", - "react-redux": "^7.2.1 || ^8.0.2" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", - "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "tslib": "^2.4.0" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", - "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", - "license": "MIT", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/mui-datatables": { - "version": "4.3.12", - "resolved": "https://registry.npmjs.org/@types/mui-datatables/-/mui-datatables-4.3.12.tgz", - "integrity": "sha512-Xz7My6kOi7Q3LK0lNEKVF/XU0jMawIRMpROaXQxn2E8Ccmiguh19MHi/v7I8Qae8AAj/fuDx9EAHGBmvluRf3A==", - "license": "MIT", - "peer": true, - "dependencies": { - "@emotion/react": "^11.10.5", - "@emotion/styled": "^11.10.5", - "@mui/material": "^5.11.4", - "@types/react": "*", - "csstype": "3.1.1 || 3.1.2" - } - }, - "node_modules/@types/mui-datatables/node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", - "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.12", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", - "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", - "license": "MIT" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true, - "license": "ISC" - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001699", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", - "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/core-js-pure": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz", - "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/dnd-core": { - "version": "11.1.3", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-11.1.3.tgz", - "integrity": "sha512-QugF55dNW+h+vzxVJ/LSJeTeUw9MCJ2cllhmVThVPEtF16ooBkxj0WBE5RB+AceFxMFo1rO6bJKXtqKl+JNnyA==", - "license": "MIT", - "dependencies": { - "@react-dnd/asap": "^4.0.0", - "@react-dnd/invariant": "^2.0.0", - "redux": "^4.0.4" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true, - "license": "ISC" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "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.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.assignwith": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", - "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", - "license": "MIT" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.find": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", - "integrity": "sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==", - "license": "MIT" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", - "license": "MIT" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", - "license": "MIT" - }, - "node_modules/lodash.isundefined": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", - "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mui-datatables": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mui-datatables/-/mui-datatables-4.3.0.tgz", - "integrity": "sha512-LFliQwNnnxW03IO+V3q/ORxZsOHkzl53iGogLbjUJzme47hNEN106dM0ie8oMSc0heYJY0J07oZmKm7Xn3X7IQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime-corejs3": "^7.12.1", - "@emotion/cache": "^11.7.1", - "clsx": "^1.1.1", - "lodash.assignwith": "^4.2.0", - "lodash.clonedeep": "^4.5.0", - "lodash.debounce": "^4.0.8", - "lodash.find": "^4.6.0", - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "lodash.isundefined": "^3.0.1", - "lodash.memoize": "^4.1.2", - "lodash.merge": "^4.6.2", - "prop-types": "^15.7.2", - "react-dnd": "^11.1.3", - "react-dnd-html5-backend": "^11.1.3", - "react-sortable-tree-patch-react-17": "^2.9.0", - "react-to-print": "^2.8.0", - "tss-react": "^3.6.0" - }, - "peerDependencies": { - "@emotion/react": "^11.10.5", - "@mui/icons-material": "^5.11.0", - "@mui/material": "^5.11.0", - "react": "^16.8.0 || ^17.0.2 || ^18.2.0", - "react-dom": "^16.8.0 || ^17.0.2 || ^18.2.0" - } - }, - "node_modules/mui-datatables/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/next": { - "version": "14.2.26", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.26.tgz", - "integrity": "sha512-b81XSLihMwCfwiUVRRja3LphLo4uBBMZEzBBWMaISbKTwOmq3wPknIETy/8000tr7Gq4WmbuFYPS7jOYIf+ZJw==", - "license": "MIT", - "dependencies": { - "@next/env": "14.2.26", - "@swc/helpers": "0.5.5", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001579", - "graceful-fs": "^4.2.11", - "postcss": "8.4.31", - "styled-jsx": "5.1.1" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=18.17.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.26", - "@next/swc-darwin-x64": "14.2.26", - "@next/swc-linux-arm64-gnu": "14.2.26", - "@next/swc-linux-arm64-musl": "14.2.26", - "@next/swc-linux-x64-gnu": "14.2.26", - "@next/swc-linux-x64-musl": "14.2.26", - "@next/swc-win32-arm64-msvc": "14.2.26", - "@next/swc-win32-ia32-msvc": "14.2.26", - "@next/swc-win32-x64-msvc": "14.2.26" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "license": "MIT", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-display-name": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/react-display-name/-/react-display-name-0.2.5.tgz", - "integrity": "sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg==", - "license": "MIT" - }, - "node_modules/react-dnd": { - "version": "11.1.3", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-11.1.3.tgz", - "integrity": "sha512-8rtzzT8iwHgdSC89VktwhqdKKtfXaAyC4wiqp0SywpHG12TTLvfOoL6xNEIUWXwIEWu+CFfDn4GZJyynCEuHIQ==", - "license": "MIT", - "dependencies": { - "@react-dnd/shallowequal": "^2.0.0", - "@types/hoist-non-react-statics": "^3.3.1", - "dnd-core": "^11.1.3", - "hoist-non-react-statics": "^3.3.0" - }, - "peerDependencies": { - "react": ">= 16.9.0", - "react-dom": ">= 16.9.0" - } - }, - "node_modules/react-dnd-html5-backend": { - "version": "11.1.3", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-11.1.3.tgz", - "integrity": "sha512-/1FjNlJbW/ivkUxlxQd7o3trA5DE33QiRZgxent3zKme8DwF4Nbw3OFVhTRFGaYhHFNL1rZt6Rdj1D78BjnNLw==", - "license": "MIT", - "dependencies": { - "dnd-core": "^11.1.3" - } - }, - "node_modules/react-dnd-scrollzone-patch-react-17": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/react-dnd-scrollzone-patch-react-17/-/react-dnd-scrollzone-patch-react-17-1.0.2.tgz", - "integrity": "sha512-Wfhyc/Y/Veim29REBYm8nMmtDB5IwSmPPhXIuabBgsEa1MrVsuOwK9+7LmuP+mGbDOEP/S6G8+5XvDqPlRFK2g==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "license": "MIT", - "dependencies": { - "hoist-non-react-statics": "^3.1.0", - "lodash.throttle": "^4.0.1", - "prop-types": "^15.5.9", - "raf": "^3.2.0", - "react-display-name": "^0.2.0" - }, - "peerDependencies": { - "react": "^17.0.1", - "react-dnd": "^11.1.3", - "react-dom": "^17.0.1" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-is": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", - "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", - "license": "MIT" - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", - "license": "MIT" - }, - "node_modules/react-redux": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", - "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", - "use-sync-external-store": "^1.0.0" - }, - "peerDependencies": { - "@types/react": "^16.8 || ^17.0 || ^18.0", - "@types/react-dom": "^16.8 || ^17.0 || ^18.0", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0", - "react-native": ">=0.59", - "redux": "^4 || ^5.0.0-beta.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/react-redux/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/react-sortable-tree-patch-react-17": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-sortable-tree-patch-react-17/-/react-sortable-tree-patch-react-17-2.9.0.tgz", - "integrity": "sha512-Ngtdbf78OfjqCxLj7+N+K4zM9d1mQ/tfnUsOfICFDzNa5JHg6AjixAj69ijvz0ykEiA9lYop+0Fm4KCOqCdlKA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "license": "MIT", - "dependencies": { - "lodash.isequal": "^4.5.0", - "prop-types": "^15.6.1", - "react": "^17.0.0", - "react-dnd": "^11.1.3", - "react-dnd-html5-backend": "^11.1.3", - "react-dnd-scrollzone-patch-react-17": "^1.0.2", - "react-dom": "^17.0.0", - "react-lifecycles-compat": "^3.0.4", - "react-virtualized": "^9.21.2" - }, - "peerDependencies": { - "react": "^17.0.0", - "react-dnd": "^11.1.3", - "react-dom": "^17.0.0" - } - }, - "node_modules/react-to-print": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/react-to-print/-/react-to-print-2.15.1.tgz", - "integrity": "sha512-1foogIFbCpzAVxydkhBiDfMiFYhIMphiagDOfcG4X/EcQ+fBPqJ0rby9Wv/emzY1YLkIQy/rEgOrWQT+rBKhjw==", - "license": "MIT", - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/react-virtualized": { - "version": "9.22.6", - "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.6.tgz", - "integrity": "sha512-U5j7KuUQt3AaMatlMJ0UJddqSiX+Km0YJxSqbAzIiGw5EmNz0khMyqP2hzgu4+QUtm+QPIrxzUX4raJxmVJnHg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.2", - "clsx": "^1.0.4", - "dom-helpers": "^5.1.3", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-virtualized/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", - "license": "MIT", - "peerDependencies": { - "redux": "^4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, - "node_modules/reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/styled-jsx": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", - "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", - "license": "MIT", - "dependencies": { - "client-only": "0.0.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tss-react": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/tss-react/-/tss-react-3.7.1.tgz", - "integrity": "sha512-dfWUoxBlKZfIG9UC1A2h02OmcE/Ni0itCmmZu94E9g+KyBhKMHKcsKvUm0bNlRqTmYjXiCgPJDmj5fyc8CSrLg==", - "license": "MIT", - "dependencies": { - "@emotion/cache": "*", - "@emotion/serialize": "*", - "@emotion/utils": "*" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/server": "^11.4.0", - "react": "^16.8.0 || ^17.0.2 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/server": { - "optional": true - } - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/examples/next-12/package.json b/examples/next-12/package.json deleted file mode 100644 index a148be98a..000000000 --- a/examples/next-12/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "next-12", - "version": "0.0.0", - "private": true, - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "next lint" - }, - "dependencies": { - "@emotion/cache": "^11.11.0", - "@emotion/react": "^11.11.1", - "@emotion/styled": "^11.11.0", - "@layer5/sistent-components": "^0.9.2-beta.0", - "@layer5/sistent-svg": "^0.11.2-beta.1", - "@mui/icons-material": "^5.14.16", - "@mui/material": "^5.14.17", - "@reduxjs/toolkit": "^1.9.7", - "mui-datatables": "^4.3.0", - "next": "14", - "react": "17", - "react-dom": "17", - "react-redux": "^8.1.3" - }, - "devDependencies": { - "eslint": "^8" - }, - "installConfig": { - "hoistingLimits": "workspaces" - } -} diff --git a/examples/next-12/pages/_app.js b/examples/next-12/pages/_app.js deleted file mode 100644 index 68ae8c08b..000000000 --- a/examples/next-12/pages/_app.js +++ /dev/null @@ -1,12 +0,0 @@ -import { AppThemeProvider } from '@/lib/providers/AppThemeProvider'; -import { ReduxProvider } from '@/lib/providers/ReduxProvider'; - -export default function App({ Component, pageProps }) { - return ( - <ReduxProvider> - <AppThemeProvider> - <Component {...pageProps} /> - </AppThemeProvider> - </ReduxProvider> - ); -} diff --git a/examples/next-12/pages/_document.js b/examples/next-12/pages/_document.js deleted file mode 100644 index af2f1aba3..000000000 --- a/examples/next-12/pages/_document.js +++ /dev/null @@ -1,13 +0,0 @@ -import { Head, Html, Main, NextScript } from 'next/document'; - -export default function Document() { - return ( - <Html lang="en"> - <Head /> - <body> - <Main /> - <NextScript /> - </body> - </Html> - ); -} diff --git a/examples/next-12/pages/api/hello.js b/examples/next-12/pages/api/hello.js deleted file mode 100644 index d49a2572c..000000000 --- a/examples/next-12/pages/api/hello.js +++ /dev/null @@ -1,5 +0,0 @@ -// Next.js API route support: https://nextjs.org/docs/api-routes/introduction - -export default function handler(req, res) { - res.status(200).json({ name: 'John Doe' }); -} diff --git a/examples/next-12/pages/index.js b/examples/next-12/pages/index.js deleted file mode 100644 index 5db13948f..000000000 --- a/examples/next-12/pages/index.js +++ /dev/null @@ -1,30 +0,0 @@ -import ModeToggleButton from '@/components/ModeToggleButton'; -import { ResponsiveDataTable } from '@layer5/sistent-components'; -import React from 'react'; - -export default function Home() { - const columns = ['Name', 'Company', 'City', 'State']; - - const data = [ - ['Joe James', 'Test Corp', 'Yonkers', 'NY'], - ['John Walsh', 'Test Corp', 'Hartford', 'CT'], - ['Bob Herm', 'Test Corp', 'Tampa', 'FL'], - ['James Houston', 'Test Corp', 'Dallas', 'TX'] - ]; - - const options = { - filterType: 'checkbox' - }; - - return ( - <React.Fragment> - <ModeToggleButton /> - <ResponsiveDataTable - title={'Employee List'} - data={data} - columns={columns} - options={options} - /> - </React.Fragment> - ); -} diff --git a/examples/next-12/styles/createEmotionCache.js b/examples/next-12/styles/createEmotionCache.js deleted file mode 100644 index a1f11107d..000000000 --- a/examples/next-12/styles/createEmotionCache.js +++ /dev/null @@ -1,17 +0,0 @@ -import createCache from '@emotion/cache'; - -const isBrowser = typeof document !== 'undefined'; - -// On the client side, Create a meta tag at the top of the <head> and set it as insertionPoint. -// This assures that MUI styles are loaded first. -// It allows developers to easily override MUI styles with other styling solutions, like CSS modules. -export default function createEmotionCache() { - let insertionPoint; - - if (isBrowser) { - const emotionInsertionPoint = document.querySelector('meta[name="emotion-insertion-point"]'); - insertionPoint = emotionInsertionPoint ?? undefined; - } - - return createCache({ key: 'mui-style', insertionPoint }); -} diff --git a/examples/next-12/styles/themes/theme.js b/examples/next-12/styles/themes/theme.js deleted file mode 100644 index 1ae828820..000000000 --- a/examples/next-12/styles/themes/theme.js +++ /dev/null @@ -1,96 +0,0 @@ -import { createTheme } from '@mui/material'; -import { blueGrey } from '@mui/material/colors'; - -const createCustomTheme = (paletteType) => { - const commonPalette = { - primary: { - main: '#477E96' - }, - secondary: { - main: '#00D3A9' - }, - neutral: { - main: '#64748B', - contrastText: '#FFF' - } - }; - - const palette = - paletteType === 'dark' - ? { - mode: 'dark', - ...commonPalette, - secondary: { - ...commonPalette.secondary - } - } - : { - mode: 'light', - ...commonPalette, - secondary: { - ...commonPalette.secondary - } - }; - - const theme = createTheme({ - palette, - typography: { - h5: { - fontWeight: 'bolder', - fontSize: 26, - letterSpacing: 0.5 - } - }, - shape: { borderRadius: 8 }, - breakpoints: { - values: { - xs: 0, - sm: 600, - md: 960, - lg: 1280, - xl: 1920 - } - }, - components: { - MuiAppBar: { - styleOverrides: { - colorPrimary: { - backgroundColor: blueGrey[500] - }, - colorSecondary: { - backgroundColor: blueGrey[600] - } - } - } - } - }); - - const overrides = { - // Your overrides here - }; - - theme.overrides = { - ...overrides, - MuiCssBaseline: { - '@global': { - body: { - backgroundColor: paletteType === 'dark' ? '#303030' : '#eaeff1', - color: paletteType === 'dark' ? '#000000' : '#FFFFFF' - }, - h5: { - color: paletteType === 'dark' ? '#000000' : '#FFFFFF' - }, - p: { - color: paletteType === 'dark' ? '#000000' : '#FFFFFF' - } - } - } - }; - - return theme; -}; - -const darkTheme = createCustomTheme('dark'); -const lightTheme = createCustomTheme('light'); - -export { darkTheme, lightTheme }; diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index e648e6f24..000000000 --- a/jest.config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'jsdom', - coverageThreshold: { - global: { - branches: 80, - functions: 80, - lines: 80, - statements: 80 - } - } -}; diff --git a/old/components-CHANGELOG.md b/old/components-CHANGELOG.md deleted file mode 100644 index ba0d13948..000000000 --- a/old/components-CHANGELOG.md +++ /dev/null @@ -1,392 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [0.12.4](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.12.0...@layer5/sistent-components@0.12.4) (2023-12-19) - -### Bug Fixes - -- **clickaway:** remove extra wrapper ([abfdb95](https://github.com/layer5io/sistent/commit/abfdb956c0952f9053954150d10a8d1c58bd7603)) -- **components:** refactor column to not use forwardRef ([6590d55](https://github.com/layer5io/sistent/commit/6590d55809b1c0f75f364986642d41b88c38235e)), closes [#375](https://github.com/layer5io/sistent/issues/375) -- **components:** update filter component ([e087dbf](https://github.com/layer5io/sistent/commit/e087dbfcd39ae3cd75d589b5a263cbf27f6eb2ff)), closes [#394](https://github.com/layer5io/sistent/issues/394) -- **configure:** toolbar components ([45c3664](https://github.com/layer5io/sistent/commit/45c3664612fe26dbb4a756874e83e66f16d8a84a)) -- **div:** wrapper ([e80688a](https://github.com/layer5io/sistent/commit/e80688a4928fcd1c04ab22212f444f00e756196b)) -- **filter:** icon and div wrapper ([21738b0](https://github.com/layer5io/sistent/commit/21738b0fcdeaefa3ec72aae8d0f103ab27ef2c81)) -- formatting issues ([d4f5655](https://github.com/layer5io/sistent/commit/d4f5655379f8db835838b88b6138e34928f09112)) -- **issues:** column ([fddc3c0](https://github.com/layer5io/sistent/commit/fddc3c04baef4e6bfc6f6d3b2e453f81ba77cb3d)) -- lint issues ([04a9a43](https://github.com/layer5io/sistent/commit/04a9a43cd9f1598d2aca8fcd738b448ecb41065c)) -- **pretier:** check ([182c5ed](https://github.com/layer5io/sistent/commit/182c5ed62d659c6050da47fd8bec960e994f937b)) -- **search:** search width when not expanded ([5183dcc](https://github.com/layer5io/sistent/commit/5183dcc77bae6b1ab022960b6ea11b40ca70c439)) -- **table:** null issue for cols ([27c72c1](https://github.com/layer5io/sistent/commit/27c72c1d573c97a20be36f7cab98b3b61eb2fd2d)) - -### Features - -- Add flip card component ([031e6bb](https://github.com/layer5io/sistent/commit/031e6bb525e6f904b52fe266ea4ea4f35cae6344)) -- **add:** date formats ([2e70ef8](https://github.com/layer5io/sistent/commit/2e70ef82b0d30f8f5baed4a8076a338de6dfccb2)) -- Added component import path ([783011f](https://github.com/layer5io/sistent/commit/783011f137f228db2c1d2afe266a133373800bcb)) -- Change useState import ([2202d4a](https://github.com/layer5io/sistent/commit/2202d4ab691fce8793234d3b793b47fd577efed7)) -- **components:** create PopperListener component ([ad676a6](https://github.com/layer5io/sistent/commit/ad676a6262a9b60e4614efebbe94ebd10d7460b0)), closes [#390](https://github.com/layer5io/sistent/issues/390) -- **components:** create TooltipIcon ([08bc434](https://github.com/layer5io/sistent/commit/08bc434026963874c94ceda85f02c61ac9d42f71)), closes [#376](https://github.com/layer5io/sistent/issues/376) -- **components:** update SearchBar ([92486f6](https://github.com/layer5io/sistent/commit/92486f694bc1e340b4de62013f5799354dd6e55d)), closes [#396](https://github.com/layer5io/sistent/issues/396) -- empty state component ([07ab5dc](https://github.com/layer5io/sistent/commit/07ab5dcfdc36945ba8c73a16d41f092b180c7d5b)) -- formatting ([9583d85](https://github.com/layer5io/sistent/commit/9583d85a4c8d6c3f513e1cb2c7a08fd5b58d883d)) -- formatting ([d2ec7a1](https://github.com/layer5io/sistent/commit/d2ec7a1ec646bb3e6aecd06bc4d36edc210c615b)) -- formatting ([d1f9531](https://github.com/layer5io/sistent/commit/d1f95313406b19ab0f43910f1ca918a25baf3961)) -- icon import ([84af48a](https://github.com/layer5io/sistent/commit/84af48afeecf837492bfac38c775f73d71891d29)) -- **prop:** add color prop ([c16c36d](https://github.com/layer5io/sistent/commit/c16c36d040e0e28161efad3263d57b6e1e405e11)) -- Remove unused defined props ([33d8cae](https://github.com/layer5io/sistent/commit/33d8cae3da4769930bcbef363e77f4670486b625)) -- t ([c71a64b](https://github.com/layer5io/sistent/commit/c71a64b0a3b18a20002afadea85b3678244cf481)) - -## [0.12.3](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.12.0...@layer5/sistent-components@0.12.3) (2023-12-16) - -### Bug Fixes - -- **clickaway:** remove extra wrapper ([abfdb95](https://github.com/layer5io/sistent/commit/abfdb956c0952f9053954150d10a8d1c58bd7603)) -- **components:** refactor column to not use forwardRef ([6590d55](https://github.com/layer5io/sistent/commit/6590d55809b1c0f75f364986642d41b88c38235e)), closes [#375](https://github.com/layer5io/sistent/issues/375) -- **components:** update filter component ([e087dbf](https://github.com/layer5io/sistent/commit/e087dbfcd39ae3cd75d589b5a263cbf27f6eb2ff)), closes [#394](https://github.com/layer5io/sistent/issues/394) -- **configure:** toolbar components ([45c3664](https://github.com/layer5io/sistent/commit/45c3664612fe26dbb4a756874e83e66f16d8a84a)) -- **div:** wrapper ([e80688a](https://github.com/layer5io/sistent/commit/e80688a4928fcd1c04ab22212f444f00e756196b)) -- **filter:** icon and div wrapper ([21738b0](https://github.com/layer5io/sistent/commit/21738b0fcdeaefa3ec72aae8d0f103ab27ef2c81)) -- formatting issues ([d4f5655](https://github.com/layer5io/sistent/commit/d4f5655379f8db835838b88b6138e34928f09112)) -- **issues:** column ([fddc3c0](https://github.com/layer5io/sistent/commit/fddc3c04baef4e6bfc6f6d3b2e453f81ba77cb3d)) -- lint issues ([04a9a43](https://github.com/layer5io/sistent/commit/04a9a43cd9f1598d2aca8fcd738b448ecb41065c)) -- **pretier:** check ([182c5ed](https://github.com/layer5io/sistent/commit/182c5ed62d659c6050da47fd8bec960e994f937b)) -- **search:** search width when not expanded ([5183dcc](https://github.com/layer5io/sistent/commit/5183dcc77bae6b1ab022960b6ea11b40ca70c439)) -- **table:** null issue for cols ([27c72c1](https://github.com/layer5io/sistent/commit/27c72c1d573c97a20be36f7cab98b3b61eb2fd2d)) - -### Features - -- Add flip card component ([031e6bb](https://github.com/layer5io/sistent/commit/031e6bb525e6f904b52fe266ea4ea4f35cae6344)) -- **add:** date formats ([2e70ef8](https://github.com/layer5io/sistent/commit/2e70ef82b0d30f8f5baed4a8076a338de6dfccb2)) -- Change useState import ([2202d4a](https://github.com/layer5io/sistent/commit/2202d4ab691fce8793234d3b793b47fd577efed7)) -- **components:** create PopperListener component ([ad676a6](https://github.com/layer5io/sistent/commit/ad676a6262a9b60e4614efebbe94ebd10d7460b0)), closes [#390](https://github.com/layer5io/sistent/issues/390) -- **components:** create TooltipIcon ([08bc434](https://github.com/layer5io/sistent/commit/08bc434026963874c94ceda85f02c61ac9d42f71)), closes [#376](https://github.com/layer5io/sistent/issues/376) -- **components:** update SearchBar ([92486f6](https://github.com/layer5io/sistent/commit/92486f694bc1e340b4de62013f5799354dd6e55d)), closes [#396](https://github.com/layer5io/sistent/issues/396) -- **prop:** add color prop ([c16c36d](https://github.com/layer5io/sistent/commit/c16c36d040e0e28161efad3263d57b6e1e405e11)) - -## [0.12.2](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.12.0...@layer5/sistent-components@0.12.2) (2023-12-12) - -### Bug Fixes - -- **clickaway:** remove extra wrapper ([abfdb95](https://github.com/layer5io/sistent/commit/abfdb956c0952f9053954150d10a8d1c58bd7603)) -- **components:** refactor column to not use forwardRef ([6590d55](https://github.com/layer5io/sistent/commit/6590d55809b1c0f75f364986642d41b88c38235e)), closes [#375](https://github.com/layer5io/sistent/issues/375) -- **components:** update filter component ([e087dbf](https://github.com/layer5io/sistent/commit/e087dbfcd39ae3cd75d589b5a263cbf27f6eb2ff)), closes [#394](https://github.com/layer5io/sistent/issues/394) -- **configure:** toolbar components ([45c3664](https://github.com/layer5io/sistent/commit/45c3664612fe26dbb4a756874e83e66f16d8a84a)) -- **div:** wrapper ([e80688a](https://github.com/layer5io/sistent/commit/e80688a4928fcd1c04ab22212f444f00e756196b)) -- **issues:** column ([fddc3c0](https://github.com/layer5io/sistent/commit/fddc3c04baef4e6bfc6f6d3b2e453f81ba77cb3d)) -- **pretier:** check ([182c5ed](https://github.com/layer5io/sistent/commit/182c5ed62d659c6050da47fd8bec960e994f937b)) - -### Features - -- **add:** date formats ([2e70ef8](https://github.com/layer5io/sistent/commit/2e70ef82b0d30f8f5baed4a8076a338de6dfccb2)) -- **components:** create PopperListener component ([ad676a6](https://github.com/layer5io/sistent/commit/ad676a6262a9b60e4614efebbe94ebd10d7460b0)), closes [#390](https://github.com/layer5io/sistent/issues/390) -- **components:** create TooltipIcon ([08bc434](https://github.com/layer5io/sistent/commit/08bc434026963874c94ceda85f02c61ac9d42f71)), closes [#376](https://github.com/layer5io/sistent/issues/376) -- **components:** update SearchBar ([92486f6](https://github.com/layer5io/sistent/commit/92486f694bc1e340b4de62013f5799354dd6e55d)), closes [#396](https://github.com/layer5io/sistent/issues/396) -- **prop:** add color prop ([c16c36d](https://github.com/layer5io/sistent/commit/c16c36d040e0e28161efad3263d57b6e1e405e11)) - -## [0.12.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.12.0...@layer5/sistent-components@0.12.1) (2023-12-04) - -### Bug Fixes - -- **clickaway:** remove extra wrapper ([abfdb95](https://github.com/layer5io/sistent/commit/abfdb956c0952f9053954150d10a8d1c58bd7603)) -- **components:** refactor column to not use forwardRef ([6590d55](https://github.com/layer5io/sistent/commit/6590d55809b1c0f75f364986642d41b88c38235e)), closes [#375](https://github.com/layer5io/sistent/issues/375) -- **components:** update filter component ([e087dbf](https://github.com/layer5io/sistent/commit/e087dbfcd39ae3cd75d589b5a263cbf27f6eb2ff)), closes [#394](https://github.com/layer5io/sistent/issues/394) - -### Features - -- **components:** create PopperListener component ([ad676a6](https://github.com/layer5io/sistent/commit/ad676a6262a9b60e4614efebbe94ebd10d7460b0)), closes [#390](https://github.com/layer5io/sistent/issues/390) -- **components:** create TooltipIcon ([08bc434](https://github.com/layer5io/sistent/commit/08bc434026963874c94ceda85f02c61ac9d42f71)), closes [#376](https://github.com/layer5io/sistent/issues/376) -- **components:** update SearchBar ([92486f6](https://github.com/layer5io/sistent/commit/92486f694bc1e340b4de62013f5799354dd6e55d)), closes [#396](https://github.com/layer5io/sistent/issues/396) - -## [0.12.1-alpha.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.12.0...@layer5/sistent-components@0.12.1-alpha.0) (2023-11-17) - -### Bug Fixes - -- **fix:** remove extra wrapper ([abfdb95](https://github.com/layer5io/sistent/commit/abfdb956c0952f9053954150d10a8d1c58bd7603)) - -# [0.12.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.12.0-alpha.3...@layer5/sistent-components@0.12.0) (2023-11-12) - -**Note:** Version bump only for package @layer5/sistent-components - -# [0.12.0-alpha.3](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.12.0-alpha.2...@layer5/sistent-components@0.12.0-alpha.3) (2023-11-12) - -**Note:** Version bump only for package @layer5/sistent-components - -# [0.12.0-alpha.2](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.12.0-alpha.1...@layer5/sistent-components@0.12.0-alpha.2) (2023-11-12) - -**Note:** Version bump only for package @layer5/sistent-components - -# [0.12.0-alpha.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.12.0-alpha.0...@layer5/sistent-components@0.12.0-alpha.1) (2023-11-12) - -### Bug Fixes - -- **search:** fix onsearch func ([c6d6e27](https://github.com/layer5io/sistent/commit/c6d6e2761f51fbd694e9f3f2afd8ad8dd2de7ce0)) - -# [0.12.0-alpha.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.11.2...@layer5/sistent-components@0.12.0-alpha.0) (2023-11-11) - -### Features - -- **fix:** fix clickaway listener ([3d3d4d5](https://github.com/layer5io/sistent/commit/3d3d4d5b1f68f391426f2d0738e7208aed26d8df)) -- **fix:** fix filter ([4ef1656](https://github.com/layer5io/sistent/commit/4ef1656922eafdd3697c0e1ee126cfb34f06c20b)) -- **refactor:** refactor svgs ([4d68836](https://github.com/layer5io/sistent/commit/4d688368ba0b1e9f1f43153c104a824c926b777e)) - -## [0.11.2](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.11.1...@layer5/sistent-components@0.11.2) (2023-11-11) - -### Bug Fixes - -- **components:** fix custom column component ([e148701](https://github.com/layer5io/sistent/commit/e14870158382ca8e64509140637f479e53ca545f)), closes [#295](https://github.com/layer5io/sistent/issues/295) -- **components:** fix searchbar export ([665beda](https://github.com/layer5io/sistent/commit/665beda8dc18442db38cbbf88b281274cebcc6bc)), closes [#293](https://github.com/layer5io/sistent/issues/293) - -## [0.11.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.11.0...@layer5/sistent-components@0.11.1) (2023-11-10) - -**Note:** Version bump only for package @layer5/sistent-components - -# [0.11.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.10.0...@layer5/sistent-components@0.11.0) (2023-11-10) - -### Bug Fixes - -- **check:** check ci ([06bbc68](https://github.com/layer5io/sistent/commit/06bbc68d4a808a8eb14221fc1a2909d77f72250b)) -- **import:** react import ([c8a18f0](https://github.com/layer5io/sistent/commit/c8a18f0f5606b8cb1f4e05ed574b49b2d97f39e0)) - -### Features - -- **add:** usage example ([1b664da](https://github.com/layer5io/sistent/commit/1b664da5e00d6aad43371da5140f4397bf6bc558)) -- **hook:** notification handler hook ([cd3c208](https://github.com/layer5io/sistent/commit/cd3c2081d8798669c3dec2cdfa2267fa1814da3a)) - -# [0.10.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.2-beta.0...@layer5/sistent-components@0.10.0) (2023-11-09) - -### Bug Fixes - -- **bug:** more changes ([5e6d02c](https://github.com/layer5io/sistent/commit/5e6d02c63e51912f1e3c2f4e6a53938b005d9d3c)) -- **table:** add logic ([cbfa239](https://github.com/layer5io/sistent/commit/cbfa23907f13dd19d425f3f69ed50293ee3f48d7)) -- **table:** fix few more things ([55c31b0](https://github.com/layer5io/sistent/commit/55c31b0938be1ed00004331045136ab79a47ccd6)) - -## [0.9.2-beta.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.1-beta.2...@layer5/sistent-components@0.9.2-beta.0) (2023-11-09) - -**Note:** Version bump only for package @layer5/sistent-components - -## [0.9.1-beta.2](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.1-beta.1...@layer5/sistent-components@0.9.1-beta.2) (2023-11-09) - -**Note:** Version bump only for package @layer5/sistent-components - -## [0.9.1-beta.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.8...@layer5/sistent-components@0.9.1-beta.1) (2023-11-09) - -### Bug Fixes - -- **import:** import of inputlabel ([7e7fa3a](https://github.com/layer5io/sistent/commit/7e7fa3a6b7ec3482a003671b473929ecedb92227)) - -# [0.9.0-beta.8](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.1...@layer5/sistent-components@0.9.0-beta.8) (2023-11-09) - -### Bug Fixes - -- **components:** change to export function ([bfcbe25](https://github.com/layer5io/sistent/commit/bfcbe257160cd12e3cb859441a0d73241b4c8335)) -- **components:** correct exports again ([1ca52b7](https://github.com/layer5io/sistent/commit/1ca52b71aad7e1753daf4af726d9f6950087ce32)) -- **components:** fix data table exports ([dbb474b](https://github.com/layer5io/sistent/commit/dbb474b70dd70da3d83656219cebd7fea0e9c2f7)) -- **components:** moved exports to src/index.tsx ([2916da5](https://github.com/layer5io/sistent/commit/2916da599d02abf9a67a975ae1922809c55da452)) -- **components:** remove custom-table.tsx ([765d194](https://github.com/layer5io/sistent/commit/765d194b8aadbde019b93b106dfd2ed088fbca3a)) -- **components:** remove duplicated grid.tsx ([ee5b275](https://github.com/layer5io/sistent/commit/ee5b275f0ef58c2cd23b85b2560ca550877d9ea9)) -- **components:** turn off splitting during build ([3b5319b](https://github.com/layer5io/sistent/commit/3b5319b0774cecd5eabf9613aad5058f0809fec2)) -- move ResponsiveDataTable to custom ([f2f5ecc](https://github.com/layer5io/sistent/commit/f2f5eccf1b529da197141ca009f03112f778a6cd)) - -# [0.9.0-beta.7](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.6...@layer5/sistent-components@0.9.0-beta.7) (2023-11-09) - -### Bug Fixes - -- **components:** turn off splitting during build ([47ed274](https://github.com/layer5io/sistent/commit/47ed274e704617d784ad7fb4a6037048e56f1572)) - -# [0.9.0-beta.6](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.5...@layer5/sistent-components@0.9.0-beta.6) (2023-11-09) - -### Bug Fixes - -- **components:** moved exports to src/index.tsx ([a3ada47](https://github.com/layer5io/sistent/commit/a3ada47f513f23ff135b6f21559c39d6aa44afb1)) - -# [0.9.0-beta.5](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.4...@layer5/sistent-components@0.9.0-beta.5) (2023-11-09) - -### Bug Fixes - -- **components:** change to export function ([1348bce](https://github.com/layer5io/sistent/commit/1348bce85ff379543757f0ea38758f1c7bcc87b9)) - -# [0.9.0-beta.4](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.3...@layer5/sistent-components@0.9.0-beta.4) (2023-11-09) - -### Bug Fixes - -- **components:** remove custom-table.tsx ([8a25608](https://github.com/layer5io/sistent/commit/8a2560852ff23030f4389e28e061ea6fe6a61aeb)) - -# [0.9.0-beta.3](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.2...@layer5/sistent-components@0.9.0-beta.3) (2023-11-09) - -### Bug Fixes - -- **components:** correct exports again ([aa5d4a0](https://github.com/layer5io/sistent/commit/aa5d4a06e5086ff7ab90a1b8461fda23da86101a)) -- **components:** remove duplicated grid.tsx ([0c1952f](https://github.com/layer5io/sistent/commit/0c1952f1b0bb64e8ad08b35e96d67299b699d5c0)) - -# [0.9.0-beta.2](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.1...@layer5/sistent-components@0.9.0-beta.2) (2023-11-09) - -### Bug Fixes - -- **components:** fix data table exports ([6e80b75](https://github.com/layer5io/sistent/commit/6e80b753bb31be88c98abad1c3f28b8a607ea016)) - -## [0.9.1-beta.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.1...@layer5/sistent-components@0.9.1-beta.0) (2023-11-09) - -### Bug Fixes - -- **import:** import of inputlabel ([7e7fa3a](https://github.com/layer5io/sistent/commit/7e7fa3a6b7ec3482a003671b473929ecedb92227)) - -# [0.9.0-beta.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.9.0-beta.0...@layer5/sistent-components@0.9.0-beta.1) (2023-11-08) - -### Features - -- **colors:** new dictionary of colors ([a9e52fd](https://github.com/layer5io/sistent/commit/a9e52fdfea9f9ff927289776658552f1c967ca65)) -- **components:** create grid, pagination and container ([85cca9b](https://github.com/layer5io/sistent/commit/85cca9bd27e9010dbb72bfa3167e19bcfe8960be)) - -# [0.9.0-beta.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.10...@layer5/sistent-components@0.9.0-beta.0) (2023-11-08) - -### Features - -- **components:** create InputLabel component ([77d51f1](https://github.com/layer5io/sistent/commit/77d51f1a6c9e8a6e99ea2dda15f76356e28f81d4)), closes [#254](https://github.com/layer5io/sistent/issues/254) - -## [0.8.1-beta.10](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.9...@layer5/sistent-components@0.8.1-beta.10) (2023-11-04) - -**Note:** Version bump only for package @layer5/sistent-components - -## [0.8.1-beta.9](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.8...@layer5/sistent-components@0.8.1-beta.9) (2023-11-04) - -### Bug Fixes - -- redo const to function ([056f675](https://github.com/layer5io/sistent/commit/056f675fdbd4c964ab07f4ce06b266d7dab53112)) - -## [0.8.1-beta.8](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.7...@layer5/sistent-components@0.8.1-beta.8) (2023-11-03) - -### Bug Fixes - -- remove react-error-boundary package ([6ea9422](https://github.com/layer5io/sistent/commit/6ea9422a8125b67d1241dd6a1c323f8830a509a3)) - -## [0.8.1-beta.7](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.6...@layer5/sistent-components@0.8.1-beta.7) (2023-11-03) - -### Bug Fixes - -- **components:** refactor components ([5b90831](https://github.com/layer5io/sistent/commit/5b90831f02644bbaa16de6e59a11a3ea50f17e58)) - -## [0.8.1-beta.6](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.5...@layer5/sistent-components@0.8.1-beta.6) (2023-11-02) - -**Note:** Version bump only for package @layer5/sistent-components - -## [0.8.1-beta.5](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.4...@layer5/sistent-components@0.8.1-beta.5) (2023-11-02) - -### Bug Fixes - -- hardcode svg version ([#214](https://github.com/layer5io/sistent/issues/214)) ([9ea5966](https://github.com/layer5io/sistent/commit/9ea59667f9eaa50c8df846eb2477166633d0b0fb)) - -## [0.8.1-beta.4](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.3...@layer5/sistent-components@0.8.1-beta.4) (2023-11-02) - -### Bug Fixes - -- **components:** move svg package to dep ([#213](https://github.com/layer5io/sistent/issues/213)) ([ecacb63](https://github.com/layer5io/sistent/commit/ecacb63bb65af29e650629bf0cb84f472ae6866d)) - -## [0.8.1-beta.3](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.2...@layer5/sistent-components@0.8.1-beta.3) (2023-11-02) - -### Bug Fixes - -- **components:** support react 17 and 18 ([#211](https://github.com/layer5io/sistent/issues/211)) ([db071a1](https://github.com/layer5io/sistent/commit/db071a127d053e6da1467ef4c19f3efeb122e6a3)) - -## [0.8.1-beta.2](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.1...@layer5/sistent-components@0.8.1-beta.2) (2023-11-02) - -### Bug Fixes - -- export mui datatables ([#209](https://github.com/layer5io/sistent/issues/209)) ([0ee51b2](https://github.com/layer5io/sistent/commit/0ee51b21fbd5a99eb923910a7fa337b1bb3129e5)) - -## [0.8.1-beta.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.1-beta.0...@layer5/sistent-components@0.8.1-beta.1) (2023-11-02) - -### Bug Fixes - -- **components:** hardcode svg package version ([#207](https://github.com/layer5io/sistent/issues/207)) ([11bf98b](https://github.com/layer5io/sistent/commit/11bf98bb135a1378545ee5617bfbebfa81ffcd93)) - -## [0.8.1-beta.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.8.0...@layer5/sistent-components@0.8.1-beta.0) (2023-11-02) - -### Bug Fixes - -- **components:** refactored vite config in components ([#204](https://github.com/layer5io/sistent/issues/204)) ([ee88dae](https://github.com/layer5io/sistent/commit/ee88dae5c6c897b6d47570f0ca44d3c2e4542293)) -- **svg:** redo svg pkg vite config ([#202](https://github.com/layer5io/sistent/issues/202)) ([d3ac6bb](https://github.com/layer5io/sistent/commit/d3ac6bb4904b57b4b539f1335f74b65ffef3555a)) - -# [0.8.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.6.0...@layer5/sistent-components@0.8.0) (2023-10-31) - -### Bug Fixes - -- **components:** export toolbar ([#186](https://github.com/layer5io/sistent/issues/186)) ([74c8330](https://github.com/layer5io/sistent/commit/74c83301fc9a40d7a0c36a076fb8a91c7e6ad2cc)) -- correct sx properties for select and popper ([dbd37ee](https://github.com/layer5io/sistent/commit/dbd37ee4a41905f26979022cb6b21e454e2f294f)) - -### Features - -- **customcolumn:** add column visibility ([11cd979](https://github.com/layer5io/sistent/commit/11cd9794f8de9ad5fa1a3075074cf22cc1865fbf)) -- **filter:** add custom filter ([0c02847](https://github.com/layer5io/sistent/commit/0c0284794a9f46e1a45efe2a034e7201244d1505)) -- incorporate changes to ErrorBoundary ([fcbbe77](https://github.com/layer5io/sistent/commit/fcbbe77e906e31720611e0e7dfcb1fe99bcbcb7f)) -- **search-bar:** add custom search bar component ([088e92c](https://github.com/layer5io/sistent/commit/088e92c79eaf84da04de876dada98d198ad55f99)) -- **search-bar:** fix issues ([8c0c50b](https://github.com/layer5io/sistent/commit/8c0c50bec00a4da818e8521296d17a9b0e32ddb4)) -- **tooltip:** conditional tooltip ([9db1729](https://github.com/layer5io/sistent/commit/9db172934bb2437b150f8dffaca6311643d95be2)) - -# [0.7.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-components@0.6.0...@layer5/sistent-components@0.7.0) (2023-10-30) - -### Bug Fixes - -- correct sx properties for select and popper ([dbd37ee](https://github.com/layer5io/sistent/commit/dbd37ee4a41905f26979022cb6b21e454e2f294f)) - -### Features - -- **customcolumn:** add column visibility ([11cd979](https://github.com/layer5io/sistent/commit/11cd9794f8de9ad5fa1a3075074cf22cc1865fbf)) -- **filter:** add custom filter ([0c02847](https://github.com/layer5io/sistent/commit/0c0284794a9f46e1a45efe2a034e7201244d1505)) -- incorporate changes to ErrorBoundary ([fcbbe77](https://github.com/layer5io/sistent/commit/fcbbe77e906e31720611e0e7dfcb1fe99bcbcb7f)) -- **search-bar:** add custom search bar component ([088e92c](https://github.com/layer5io/sistent/commit/088e92c79eaf84da04de876dada98d198ad55f99)) -- **search-bar:** fix issues ([8c0c50b](https://github.com/layer5io/sistent/commit/8c0c50bec00a4da818e8521296d17a9b0e32ddb4)) -- **tooltip:** conditional tooltip ([9db1729](https://github.com/layer5io/sistent/commit/9db172934bb2437b150f8dffaca6311643d95be2)) - -# 0.6.0 (2023-10-16) - -### Bug Fixes - -- added type def package mui-datatables ([#149](https://github.com/layer5io/sistent/issues/149)) ([756b363](https://github.com/layer5io/sistent/commit/756b363959fe3413a31adcba5ef9d60095ddb207)) -- Moved deps to devDeps, and allow them to be peers ([704c432](https://github.com/layer5io/sistent/commit/704c4323afe4710cb54b5aac6b9c079c3e0fbe89)) -- update Button to use MUI props ([7331fb8](https://github.com/layer5io/sistent/commit/7331fb88d336722c5993d6c5f2cbc99c6386c48d)) - -### Features - -- add remaining MUI components ([a9ba156](https://github.com/layer5io/sistent/commit/a9ba1568289a65a0b7f666fed6a0c372c99fe4ac)) -- Attempt to clean up ([fe8df9d](https://github.com/layer5io/sistent/commit/fe8df9da768c243583b93027e96f706a5fc7ef5a)) -- **components:** added ClickAwayListener ([#124](https://github.com/layer5io/sistent/issues/124)) ([db1a133](https://github.com/layer5io/sistent/commit/db1a133cf95bbce5c1d5aee060771697d09ca060)), closes [#123](https://github.com/layer5io/sistent/issues/123) -- **core:** remove dev script from components ([#162](https://github.com/layer5io/sistent/issues/162)) ([3adb14e](https://github.com/layer5io/sistent/commit/3adb14e4c513fa88d74d9ad8430727dd3af45407)) -- **data-tables:** add tables package ([711cd98](https://github.com/layer5io/sistent/commit/711cd98453d85d25442a1cbe4a5bb4d4152a19e6)) -- Update react-error-boundary and define type definitions ([d75c0e4](https://github.com/layer5io/sistent/commit/d75c0e44af6aa68598d632d45eac6422d0ffdab5)) -- Updated Button to allow a label and also take in children ([0c25592](https://github.com/layer5io/sistent/commit/0c25592611f22789fd1695acf92985ff9e86d910)) - -# 0.5.0 (2023-10-08) - -### Bug Fixes - -- added type def package mui-datatables ([#149](https://github.com/layer5io/sistent/issues/149)) ([756b363](https://github.com/layer5io/sistent/commit/756b363959fe3413a31adcba5ef9d60095ddb207)) -- Moved deps to devDeps, and allow them to be peers ([704c432](https://github.com/layer5io/sistent/commit/704c4323afe4710cb54b5aac6b9c079c3e0fbe89)) -- update Button to use MUI props ([7331fb8](https://github.com/layer5io/sistent/commit/7331fb88d336722c5993d6c5f2cbc99c6386c48d)) - -### Features - -- add remaining MUI components ([a9ba156](https://github.com/layer5io/sistent/commit/a9ba1568289a65a0b7f666fed6a0c372c99fe4ac)) -- Attempt to clean up ([fe8df9d](https://github.com/layer5io/sistent/commit/fe8df9da768c243583b93027e96f706a5fc7ef5a)) -- **components:** added ClickAwayListener ([#124](https://github.com/layer5io/sistent/issues/124)) ([db1a133](https://github.com/layer5io/sistent/commit/db1a133cf95bbce5c1d5aee060771697d09ca060)), closes [#123](https://github.com/layer5io/sistent/issues/123) -- **data-tables:** add tables package ([711cd98](https://github.com/layer5io/sistent/commit/711cd98453d85d25442a1cbe4a5bb4d4152a19e6)) -- Update react-error-boundary and define type definitions ([d75c0e4](https://github.com/layer5io/sistent/commit/d75c0e44af6aa68598d632d45eac6422d0ffdab5)) -- Updated Button to allow a label and also take in children ([0c25592](https://github.com/layer5io/sistent/commit/0c25592611f22789fd1695acf92985ff9e86d910)) - -# 0.4.0 (2023-10-08) - -### Bug Fixes - -- added type def package mui-datatables ([#149](https://github.com/layer5io/sistent/issues/149)) ([756b363](https://github.com/layer5io/sistent/commit/756b363959fe3413a31adcba5ef9d60095ddb207)) -- Moved deps to devDeps, and allow them to be peers ([704c432](https://github.com/layer5io/sistent/commit/704c4323afe4710cb54b5aac6b9c079c3e0fbe89)) -- update Button to use MUI props ([7331fb8](https://github.com/layer5io/sistent/commit/7331fb88d336722c5993d6c5f2cbc99c6386c48d)) - -### Features - -- add remaining MUI components ([a9ba156](https://github.com/layer5io/sistent/commit/a9ba1568289a65a0b7f666fed6a0c372c99fe4ac)) -- Attempt to clean up ([fe8df9d](https://github.com/layer5io/sistent/commit/fe8df9da768c243583b93027e96f706a5fc7ef5a)) -- **components:** added ClickAwayListener ([#124](https://github.com/layer5io/sistent/issues/124)) ([db1a133](https://github.com/layer5io/sistent/commit/db1a133cf95bbce5c1d5aee060771697d09ca060)), closes [#123](https://github.com/layer5io/sistent/issues/123) -- **data-tables:** add tables package ([711cd98](https://github.com/layer5io/sistent/commit/711cd98453d85d25442a1cbe4a5bb4d4152a19e6)) -- Update react-error-boundary and define type definitions ([d75c0e4](https://github.com/layer5io/sistent/commit/d75c0e44af6aa68598d632d45eac6422d0ffdab5)) -- Updated Button to allow a label and also take in children ([0c25592](https://github.com/layer5io/sistent/commit/0c25592611f22789fd1695acf92985ff9e86d910)) diff --git a/old/svg-CHANGELOG.md b/old/svg-CHANGELOG.md deleted file mode 100644 index f3571128f..000000000 --- a/old/svg-CHANGELOG.md +++ /dev/null @@ -1,178 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [0.14.4](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.14.0...@layer5/sistent-svg@0.14.4) (2023-12-19) - -### Features - -- Added environment and workspace icon ([8594786](https://github.com/layer5io/sistent/commit/8594786e16065ce99e72c15b7c4581df01da3a7a)) -- Added Icons - Left arrow, Right arrow, K8, smp ([14ca4e3](https://github.com/layer5io/sistent/commit/14ca4e339fc4e03e6f9d98488c435a5f6f2c9a23)) -- Added LeftAngledArrowIcon ([cca5963](https://github.com/layer5io/sistent/commit/cca59636aa7f6156b2810be57a65f0ea0da662d4)) -- fix typo ([e97e753](https://github.com/layer5io/sistent/commit/e97e753645d47fbec7117384eec8fe0bfaf612f9)) -- formatting ([d2ec7a1](https://github.com/layer5io/sistent/commit/d2ec7a1ec646bb3e6aecd06bc4d36edc210c615b)) -- formatting ([86aa4cd](https://github.com/layer5io/sistent/commit/86aa4cdaedbd6d4f1a20100dcf4412d0d6177fab)) -- **svg:** create icons for TypingFilter component ([8217b49](https://github.com/layer5io/sistent/commit/8217b49ce3fb597d2e032db6f5762d22a240fac6)), closes [#400](https://github.com/layer5io/sistent/issues/400) [#341](https://github.com/layer5io/sistent/issues/341) - -## [0.14.3](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.14.0...@layer5/sistent-svg@0.14.3) (2023-12-16) - -### Features - -- Added Icons - Left arrow, Right arrow, K8, smp ([14ca4e3](https://github.com/layer5io/sistent/commit/14ca4e339fc4e03e6f9d98488c435a5f6f2c9a23)) -- fix typo ([e97e753](https://github.com/layer5io/sistent/commit/e97e753645d47fbec7117384eec8fe0bfaf612f9)) -- formatting ([86aa4cd](https://github.com/layer5io/sistent/commit/86aa4cdaedbd6d4f1a20100dcf4412d0d6177fab)) -- **svg:** create icons for TypingFilter component ([8217b49](https://github.com/layer5io/sistent/commit/8217b49ce3fb597d2e032db6f5762d22a240fac6)), closes [#400](https://github.com/layer5io/sistent/issues/400) [#341](https://github.com/layer5io/sistent/issues/341) - -## [0.14.2](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.14.0...@layer5/sistent-svg@0.14.2) (2023-12-12) - -**Note:** Version bump only for package @layer5/sistent-svg - -## [0.14.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.14.0...@layer5/sistent-svg@0.14.1) (2023-12-04) - -**Note:** Version bump only for package @layer5/sistent-svg - -# [0.14.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.14.0-alpha.3...@layer5/sistent-svg@0.14.0) (2023-11-12) - -### Code Refactoring - -- **svg:** split up Add icons, and rename AddIconCircleBordered to AddCircleIcon ([230b597](https://github.com/layer5io/sistent/commit/230b59724d82ba186772a678a2f14306686e3397)), closes [#322](https://github.com/layer5io/sistent/issues/322) - -### BREAKING CHANGES - -- **svg:** Renamed AddIconCircleBordered to AddCircleIcon. Also configured both AddIcon and - AddCircleIcon to use the new IconProps - -# [0.14.0-alpha.3](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.14.0-alpha.2...@layer5/sistent-svg@0.14.0-alpha.3) (2023-11-12) - -### Bug Fixes - -- **svg:** fix relative paths ([b3815c4](https://github.com/layer5io/sistent/commit/b3815c4355315726ffa76b6e79d9161e95f9fdee)), closes [#319](https://github.com/layer5io/sistent/issues/319) - -# [0.14.0-alpha.2](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.14.0-alpha.1...@layer5/sistent-svg@0.14.0-alpha.2) (2023-11-12) - -### Bug Fixes - -- **svg:** make height optional ([35239ad](https://github.com/layer5io/sistent/commit/35239ada507346f41a919236072fabf9813abd94)), closes [#316](https://github.com/layer5io/sistent/issues/316) - -# [0.14.0-alpha.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.14.0-alpha.0...@layer5/sistent-svg@0.14.0-alpha.1) (2023-11-12) - -### Bug Fixes - -- **icon:** fix for icon ([99be1a6](https://github.com/layer5io/sistent/commit/99be1a6ab37c36487d3b3d288d098728d7b19405)) -- **svg:** fix iconprops ([697e2f7](https://github.com/layer5io/sistent/commit/697e2f70005b7d2d2173a92a8d659ad2b760acd4)), closes [#244](https://github.com/layer5io/sistent/issues/244) -- **viewbox:** use correct viewbox ([9cff8bb](https://github.com/layer5io/sistent/commit/9cff8bbb27f31b36660a5aa8eb872a8e3b917beb)) - -# [0.14.0-alpha.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.13.0...@layer5/sistent-svg@0.14.0-alpha.0) (2023-11-11) - -### Features - -- **refactor:** refactor svgs ([4d68836](https://github.com/layer5io/sistent/commit/4d688368ba0b1e9f1f43153c104a824c926b777e)) - -# [0.13.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.12.0...@layer5/sistent-svg@0.13.0) (2023-11-10) - -### Code Refactoring - -- **svg:** remove esm support ([790d604](https://github.com/layer5io/sistent/commit/790d6043631658b63f47d88db1587329421448c4)), closes [#289](https://github.com/layer5io/sistent/issues/289) - -### BREAKING CHANGES - -- **svg:** Removed ESM support, only use CommonJS - -# [0.12.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.2-beta.1...@layer5/sistent-svg@0.12.0) (2023-11-09) - -**Note:** Version bump only for package @layer5/sistent-svg - -## [0.11.2-beta.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.1-beta.7...@layer5/sistent-svg@0.11.2-beta.1) (2023-11-09) - -**Note:** Version bump only for package @layer5/sistent-svg - -## [0.11.1-beta.7](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.1-beta.5...@layer5/sistent-svg@0.11.1-beta.7) (2023-11-09) - -**Note:** Version bump only for package @layer5/sistent-svg - -## [0.11.1-beta.6](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.1-beta.5...@layer5/sistent-svg@0.11.1-beta.6) (2023-11-09) - -**Note:** Version bump only for package @layer5/sistent-svg - -## [0.11.2-beta.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.1-beta.5...@layer5/sistent-svg@0.11.2-beta.0) (2023-11-09) - -**Note:** Version bump only for package @layer5/sistent-svg - -## [0.11.1-beta.5](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.1-beta.4...@layer5/sistent-svg@0.11.1-beta.5) (2023-11-08) - -**Note:** Version bump only for package @layer5/sistent-svg - -## [0.11.1-beta.4](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.1-beta.3...@layer5/sistent-svg@0.11.1-beta.4) (2023-11-08) - -**Note:** Version bump only for package @layer5/sistent-svg - -## [0.11.1-beta.3](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.1-beta.2...@layer5/sistent-svg@0.11.1-beta.3) (2023-11-04) - -### Bug Fixes - -- **svg:** remove type module ([2f56f21](https://github.com/layer5io/sistent/commit/2f56f219b5ac62b72de2a5bbac622cd1d36b8274)) - -## [0.11.1-beta.2](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.1-beta.1...@layer5/sistent-svg@0.11.1-beta.2) (2023-11-03) - -### Bug Fixes - -- **svg:** change to tsup ([#220](https://github.com/layer5io/sistent/issues/220)) ([2a7ef62](https://github.com/layer5io/sistent/commit/2a7ef62a21bcc743762eb852afcb8dc8e4d6f475)) - -## [0.11.1-beta.1](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.1-beta.0...@layer5/sistent-svg@0.11.1-beta.1) (2023-11-02) - -### Bug Fixes - -- **svg:** fixed package.json fields ([#216](https://github.com/layer5io/sistent/issues/216)) ([bbd305f](https://github.com/layer5io/sistent/commit/bbd305febc5ed44f9dbf3ae296d73aa84da10d88)) - -## [0.11.1-beta.0](https://github.com/layer5io/sistent/compare/@layer5/sistent-svg@0.11.0...@layer5/sistent-svg@0.11.1-beta.0) (2023-11-02) - -### Bug Fixes - -- **components:** refactor ColumnIcon ([#200](https://github.com/layer5io/sistent/issues/200)) ([f1cbfbe](https://github.com/layer5io/sistent/commit/f1cbfbe82709f31de5aa6717816163d7a5c1e78a)) -- **components:** refactored vite config in components ([#204](https://github.com/layer5io/sistent/issues/204)) ([ee88dae](https://github.com/layer5io/sistent/commit/ee88dae5c6c897b6d47570f0ca44d3c2e4542293)) -- **svg:** redo svg pkg vite config ([#202](https://github.com/layer5io/sistent/issues/202)) ([d3ac6bb](https://github.com/layer5io/sistent/commit/d3ac6bb4904b57b4b539f1335f74b65ffef3555a)) - -# 0.11.0 (2023-10-31) - -### Bug Fixes - -- add missing dependencies as dev ([021e8d1](https://github.com/layer5io/sistent/commit/021e8d1168aa48ffba3430816c6875819df416d3)) -- fix search icon typo ([99a0373](https://github.com/layer5io/sistent/commit/99a03737bff9df904040906a603a750dc6a2caaf)) - -### Features - -- **add:** column-icon ([aeb064f](https://github.com/layer5io/sistent/commit/aeb064f2190025ab37c94d4ac86d207a10949361)) -- Grouped Fullscreen icons ([cdb3bb8](https://github.com/layer5io/sistent/commit/cdb3bb83bc8962543271d69395a5ae9bffbd4045)) -- **search-bar:** add custom search bar component ([088e92c](https://github.com/layer5io/sistent/commit/088e92c79eaf84da04de876dada98d198ad55f99)) - -# 0.10.0 (2023-10-30) - -### Bug Fixes - -- add missing dependencies as dev ([021e8d1](https://github.com/layer5io/sistent/commit/021e8d1168aa48ffba3430816c6875819df416d3)) -- fix search icon typo ([99a0373](https://github.com/layer5io/sistent/commit/99a03737bff9df904040906a603a750dc6a2caaf)) - -### Features - -- **add:** column-icon ([aeb064f](https://github.com/layer5io/sistent/commit/aeb064f2190025ab37c94d4ac86d207a10949361)) -- Grouped Fullscreen icons ([cdb3bb8](https://github.com/layer5io/sistent/commit/cdb3bb83bc8962543271d69395a5ae9bffbd4045)) -- **search-bar:** add custom search bar component ([088e92c](https://github.com/layer5io/sistent/commit/088e92c79eaf84da04de876dada98d198ad55f99)) - -# 0.9.0 (2023-10-16) - -### Features - -- Grouped Fullscreen icons ([cdb3bb8](https://github.com/layer5io/sistent/commit/cdb3bb83bc8962543271d69395a5ae9bffbd4045)) - -# 0.8.0 (2023-10-08) - -### Features - -- Grouped Fullscreen icons ([cdb3bb8](https://github.com/layer5io/sistent/commit/cdb3bb83bc8962543271d69395a5ae9bffbd4045)) - -# 0.7.0 (2023-10-08) - -### Features - -- Grouped Fullscreen icons ([cdb3bb8](https://github.com/layer5io/sistent/commit/cdb3bb83bc8962543271d69395a5ae9bffbd4045)) diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 949f9cd06..000000000 --- a/package-lock.json +++ /dev/null @@ -1,16477 +0,0 @@ -{ - "name": "@sistent/sistent", - "version": "0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@sistent/sistent", - "version": "0.0.1", - "dependencies": { - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "@layer5/meshery-design-embed": "^0.4.0", - "@layer5/schemas": "^0.0.6-16", - "@mui/material": "^6.4.8", - "@types/mui-datatables": "*", - "billboard.js": "^3.15.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "moment": "^2.30.1", - "mui-datatables": "*", - "re-resizable": "^6.11.2", - "react-draggable": "^4.4.6", - "react-share": "^5.1.0", - "use-debounce": "^10.0.4" - }, - "devDependencies": { - "@commitlint/cli": "^19.8.0", - "@commitlint/config-conventional": "^19.8.0", - "@mui/icons-material": "^6.4.8", - "@reduxjs/toolkit": "^2.2.5", - "@testing-library/react": "^16.2.0", - "@types/jest": "^29.5.14", - "@types/lodash": "^4.17.16", - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.18", - "@types/react-redux": "^7.1.34", - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", - "commitizen": "^4.3.1", - "cz-conventional-changelog": "^3.3.0", - "eslint": "^8.49.0", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.4", - "eslint-plugin-storybook": "^0.6.15", - "husky": "^9.1.7", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "lint-staged": "^15.5.0", - "mui-datatables": "^4.3.0", - "notistack": "^3.0.2", - "prettier": "^3.5.3", - "prettier-plugin-organize-imports": "^4.1.0", - "react-error-boundary": "^5.0.0", - "react-markdown": "^8.0.7", - "react-redux": "^8.1.1", - "redux": "^5.0.1", - "rehype-raw": "^6.1.1", - "remark-gfm": "^3.0.1", - "rollup": "^4.38.0", - "ts-jest": "^29.3.0", - "tsup": "^8.4.0", - "typescript": "^5.8.2" - }, - "peerDependencies": { - "@xstate/react": "^5.0.3", - "react": "^17.0.2 || ^18.3.1", - "react-dom": "^17.0.2 || ^18.3.1", - "xstate": "^5.19.2" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", - "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", - "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", - "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.8", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", - "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", - "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", - "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.0.tgz", - "integrity": "sha512-UWjX6t+v+0ckwZ50Y5ShZLnlk95pP5MyW/pon9tiYzl3+18pkTHTFNTKr7rQbfRXPkowt2QAn30o1b6oswszew==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", - "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", - "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.27.0", - "@babel/parser": "^7.27.0", - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", - "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@commitlint/cli": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.8.0.tgz", - "integrity": "sha512-t/fCrLVu+Ru01h0DtlgHZXbHV2Y8gKocTR5elDOqIRUzQd0/6hpt2VIWOj9b3NDo7y4/gfxeR2zRtXq/qO6iUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/format": "^19.8.0", - "@commitlint/lint": "^19.8.0", - "@commitlint/load": "^19.8.0", - "@commitlint/read": "^19.8.0", - "@commitlint/types": "^19.8.0", - "tinyexec": "^0.3.0", - "yargs": "^17.0.0" - }, - "bin": { - "commitlint": "cli.js" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/config-conventional": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.8.0.tgz", - "integrity": "sha512-9I2kKJwcAPwMoAj38hwqFXG0CzS2Kj+SAByPUQ0SlHTfb7VUhYVmo7G2w2tBrqmOf7PFd6MpZ/a1GQJo8na8kw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^19.8.0", - "conventional-changelog-conventionalcommits": "^7.0.2" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/config-validator": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.8.0.tgz", - "integrity": "sha512-+r5ZvD/0hQC3w5VOHJhGcCooiAVdynFlCe2d6I9dU+PvXdV3O+fU4vipVg+6hyLbQUuCH82mz3HnT/cBQTYYuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^19.8.0", - "ajv": "^8.11.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/ensure": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.8.0.tgz", - "integrity": "sha512-kNiNU4/bhEQ/wutI1tp1pVW1mQ0QbAjfPRo5v8SaxoVV+ARhkB8Wjg3BSseNYECPzWWfg/WDqQGIfV1RaBFQZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^19.8.0", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.upperfirst": "^4.3.1" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/execute-rule": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.8.0.tgz", - "integrity": "sha512-fuLeI+EZ9x2v/+TXKAjplBJWI9CNrHnyi5nvUQGQt4WRkww/d95oVRsc9ajpt4xFrFmqMZkd/xBQHZDvALIY7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/format": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.8.0.tgz", - "integrity": "sha512-EOpA8IERpQstxwp/WGnDArA7S+wlZDeTeKi98WMOvaDLKbjptuHWdOYYr790iO7kTCif/z971PKPI2PkWMfOxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^19.8.0", - "chalk": "^5.3.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/is-ignored": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.8.0.tgz", - "integrity": "sha512-L2Jv9yUg/I+jF3zikOV0rdiHUul9X3a/oU5HIXhAJLE2+TXTnEBfqYP9G5yMw/Yb40SnR764g4fyDK6WR2xtpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^19.8.0", - "semver": "^7.6.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/lint": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.8.0.tgz", - "integrity": "sha512-+/NZKyWKSf39FeNpqhfMebmaLa1P90i1Nrb1SrA7oSU5GNN/lksA4z6+ZTnsft01YfhRZSYMbgGsARXvkr/VLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/is-ignored": "^19.8.0", - "@commitlint/parse": "^19.8.0", - "@commitlint/rules": "^19.8.0", - "@commitlint/types": "^19.8.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/load": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.8.0.tgz", - "integrity": "sha512-4rvmm3ff81Sfb+mcWT5WKlyOa+Hd33WSbirTVUer0wjS1Hv/Hzr07Uv1ULIV9DkimZKNyOwXn593c+h8lsDQPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/config-validator": "^19.8.0", - "@commitlint/execute-rule": "^19.8.0", - "@commitlint/resolve-extends": "^19.8.0", - "@commitlint/types": "^19.8.0", - "chalk": "^5.3.0", - "cosmiconfig": "^9.0.0", - "cosmiconfig-typescript-loader": "^6.1.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/message": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.8.0.tgz", - "integrity": "sha512-qs/5Vi9bYjf+ZV40bvdCyBn5DvbuelhR6qewLE8Bh476F7KnNyLfdM/ETJ4cp96WgeeHo6tesA2TMXS0sh5X4A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/parse": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.8.0.tgz", - "integrity": "sha512-YNIKAc4EXvNeAvyeEnzgvm1VyAe0/b3Wax7pjJSwXuhqIQ1/t2hD3OYRXb6D5/GffIvaX82RbjD+nWtMZCLL7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^19.8.0", - "conventional-changelog-angular": "^7.0.0", - "conventional-commits-parser": "^5.0.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/read": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.8.0.tgz", - "integrity": "sha512-6ywxOGYajcxK1y1MfzrOnwsXO6nnErna88gRWEl3qqOOP8MDu/DTeRkGLXBFIZuRZ7mm5yyxU5BmeUvMpNte5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/top-level": "^19.8.0", - "@commitlint/types": "^19.8.0", - "git-raw-commits": "^4.0.0", - "minimist": "^1.2.8", - "tinyexec": "^0.3.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/resolve-extends": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.8.0.tgz", - "integrity": "sha512-CLanRQwuG2LPfFVvrkTrBR/L/DMy3+ETsgBqW1OvRxmzp/bbVJW0Xw23LnnExgYcsaFtos967lul1CsbsnJlzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/config-validator": "^19.8.0", - "@commitlint/types": "^19.8.0", - "global-directory": "^4.0.1", - "import-meta-resolve": "^4.0.0", - "lodash.mergewith": "^4.6.2", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/rules": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.8.0.tgz", - "integrity": "sha512-IZ5IE90h6DSWNuNK/cwjABLAKdy8tP8OgGVGbXe1noBEX5hSsu00uRlLu6JuruiXjWJz2dZc+YSw3H0UZyl/mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/ensure": "^19.8.0", - "@commitlint/message": "^19.8.0", - "@commitlint/to-lines": "^19.8.0", - "@commitlint/types": "^19.8.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/to-lines": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.8.0.tgz", - "integrity": "sha512-3CKLUw41Cur8VMjh16y8LcsOaKbmQjAKCWlXx6B0vOUREplp6em9uIVhI8Cv934qiwkbi2+uv+mVZPnXJi1o9A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/top-level": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.8.0.tgz", - "integrity": "sha512-Rphgoc/omYZisoNkcfaBRPQr4myZEHhLPx2/vTXNLjiCw4RgfPR1wEgUpJ9OOmDCiv5ZyIExhprNLhteqH4FuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^7.0.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/top-level/node_modules/find-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^7.2.0", - "path-exists": "^5.0.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@commitlint/top-level/node_modules/yocto-queue": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", - "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/types": { - "version": "19.8.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.8.0.tgz", - "integrity": "sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/conventional-commits-parser": "^5.0.0", - "chalk": "^5.3.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@emotion/babel-plugin": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", - "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/serialize": "^1.3.3", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/cache": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", - "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0", - "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", - "license": "MIT" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", - "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", - "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.9.0" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", - "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", - "license": "MIT" - }, - "node_modules/@emotion/react": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", - "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", - "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/unitless": "^0.10.0", - "@emotion/utils": "^1.4.2", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/sheet": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", - "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", - "license": "MIT" - }, - "node_modules/@emotion/styled": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", - "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/is-prop-valid": "^1.3.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0-rc.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/unitless": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", - "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", - "license": "MIT" - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", - "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", - "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", - "license": "MIT" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", - "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", - "license": "MIT" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz", - "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz", - "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz", - "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz", - "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz", - "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz", - "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz", - "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz", - "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz", - "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz", - "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz", - "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz", - "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz", - "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz", - "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz", - "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz", - "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz", - "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz", - "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz", - "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz", - "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz", - "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz", - "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz", - "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz", - "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz", - "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", - "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@layer5/meshery-design-embed": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@layer5/meshery-design-embed/-/meshery-design-embed-0.4.0.tgz", - "integrity": "sha512-3a8a/yYnZpcbDHw5nMD0pZgCg/MVzv9LqHaMd4Om2l5cX9NfjIzoR5ROn0JZvyvfmqHV6IzUEBPLAfDjwnfHRg==", - "peerDependencies": { - "react": ">=17.0.2", - "react-dom": ">=17.0.2" - } - }, - "node_modules/@layer5/schemas": { - "version": "0.0.6-16", - "resolved": "https://registry.npmjs.org/@layer5/schemas/-/schemas-0.0.6-16.tgz", - "integrity": "sha512-r0rV1Qun/rCKqtHEr6rXDMYb+uP4cUnivAJ5W65eHQ8Ag9y7E3A3ztAYBBpAWeFROD6G56wJUD/z1y3v80Lxvw==", - "license": "ISC" - }, - "node_modules/@mui/core-downloads-tracker": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.9.tgz", - "integrity": "sha512-3UvsvOjqZJcokHKSzA1lskj2XMM/G5GBgge6ykwmAij2pGGxydGxAXirQlLaeoMwTKDS6BcrLqPZyPVwzri20A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - } - }, - "node_modules/@mui/icons-material": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.4.9.tgz", - "integrity": "sha512-a8l63VIscBteJlh31R88aVgHelCcrhl3Rk0GnN8znTsGhcam9mFeo4Xlw+gLUYQP7mxVcVt3WP9XJkwXWZflnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@mui/material": "^6.4.9", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/material": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.4.9.tgz", - "integrity": "sha512-+5dExw9xUUFujIW889gB3qrfjeNo3YjYW7aWVZ6BlBIJnKpJ0jNcYZJpBUFoXt/FUV5Wy1V+/+XzR3Is2mXX2w==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/core-downloads-tracker": "^6.4.9", - "@mui/system": "^6.4.9", - "@mui/types": "~7.2.24", - "@mui/utils": "^6.4.8", - "@popperjs/core": "^2.11.8", - "@types/react-transition-group": "^4.4.12", - "clsx": "^2.1.1", - "csstype": "^3.1.3", - "prop-types": "^15.8.1", - "react-is": "^19.0.0", - "react-transition-group": "^4.4.5" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^6.4.9", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@mui/material-pigment-css": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/private-theming": { - "version": "6.4.8", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.4.8.tgz", - "integrity": "sha512-sWwQoNSn6elsPTAtSqCf+w5aaGoh7AASURNmpy+QTTD/zwJ0Jgwt0ZaaP6mXq2IcgHxYnYloM/+vJgHPMkRKTQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/utils": "^6.4.8", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/styled-engine": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.4.9.tgz", - "integrity": "sha512-qZRWO0cT407NI4ZRjZcH+1SOu8f3JzLHqdMlg52GyEufM9pkSZFnf7xjpwnlvkixcGjco6wLlMD0VB43KRcBuA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@emotion/cache": "^11.13.5", - "@emotion/serialize": "^1.3.3", - "@emotion/sheet": "^1.4.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } - } - }, - "node_modules/@mui/system": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.4.9.tgz", - "integrity": "sha512-JOj7efXGtZn+NIzX8KDyMpO1QKc0DhilPBsxvci1xAvI1e5AtAtfzrEuV5ZvN+lz2BDuzngCWlllnqQ/cg40RQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/private-theming": "^6.4.8", - "@mui/styled-engine": "^6.4.9", - "@mui/types": "~7.2.24", - "@mui/utils": "^6.4.8", - "clsx": "^2.1.1", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/types": { - "version": "7.2.24", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.24.tgz", - "integrity": "sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/utils": { - "version": "6.4.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.4.8.tgz", - "integrity": "sha512-C86gfiZ5BfZ51KqzqoHi1WuuM2QdSKoFhbkZeAfQRB+jCc4YNhhj11UXFVMMsqBgZ+Zy8IHNJW3M9Wj/LOwRXQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/types": "~7.2.24", - "@types/prop-types": "^15.7.14", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^19.0.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@react-dnd/asap": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz", - "integrity": "sha512-kLy0PJDDwvwwTXxqTFNAAllPHD73AycE9ypWeln/IguoGBEbvFcPDbCV03G52bEcC5E+YgupBE0VzHGdC8SIXg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@react-dnd/invariant": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz", - "integrity": "sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@react-dnd/shallowequal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz", - "integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@reduxjs/toolkit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.6.1.tgz", - "integrity": "sha512-SSlIqZNYhqm/oMkXbtofwZSt9lrncblzo6YcZ9zoX+zLngRBrCOjK4lNLdkNucJF58RHOWrD9txT3bT3piH7Zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "immer": "^10.0.3", - "redux": "^5.0.1", - "redux-thunk": "^3.1.0", - "reselect": "^5.1.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", - "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.38.0.tgz", - "integrity": "sha512-ldomqc4/jDZu/xpYU+aRxo3V4mGCV9HeTgUBANI3oIQMOL+SsxB+S2lxMpkFp5UamSS3XuTMQVbsS24R4J4Qjg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.38.0.tgz", - "integrity": "sha512-VUsgcy4GhhT7rokwzYQP+aV9XnSLkkhlEJ0St8pbasuWO/vwphhZQxYEKUP3ayeCYLhk6gEtacRpYP/cj3GjyQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.38.0.tgz", - "integrity": "sha512-buA17AYXlW9Rn091sWMq1xGUvWQFOH4N1rqUxGJtEQzhChxWjldGCCup7r/wUnaI6Au8sKXpoh0xg58a7cgcpg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.38.0.tgz", - "integrity": "sha512-Mgcmc78AjunP1SKXl624vVBOF2bzwNWFPMP4fpOu05vS0amnLcX8gHIge7q/lDAHy3T2HeR0TqrriZDQS2Woeg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.38.0.tgz", - "integrity": "sha512-zzJACgjLbQTsscxWqvrEQAEh28hqhebpRz5q/uUd1T7VTwUNZ4VIXQt5hE7ncs0GrF+s7d3S4on4TiXUY8KoQA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.38.0.tgz", - "integrity": "sha512-hCY/KAeYMCyDpEE4pTETam0XZS4/5GXzlLgpi5f0IaPExw9kuB+PDTOTLuPtM10TlRG0U9OSmXJ+Wq9J39LvAg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.38.0.tgz", - "integrity": "sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.38.0.tgz", - "integrity": "sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.38.0.tgz", - "integrity": "sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.38.0.tgz", - "integrity": "sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.38.0.tgz", - "integrity": "sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.38.0.tgz", - "integrity": "sha512-NXqygK/dTSibQ+0pzxsL3r4Xl8oPqVoWbZV9niqOnIHV/J92fe65pOir0xjkUZDRSPyFRvu+4YOpJF9BZHQImw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.38.0.tgz", - "integrity": "sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.38.0.tgz", - "integrity": "sha512-9EYTX+Gus2EGPbfs+fh7l95wVADtSQyYw4DfSBcYdUEAmP2lqSZY0Y17yX/3m5VKGGJ4UmIH5LHLkMJft3bYoA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.38.0.tgz", - "integrity": "sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.38.0.tgz", - "integrity": "sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.38.0.tgz", - "integrity": "sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.38.0.tgz", - "integrity": "sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.38.0.tgz", - "integrity": "sha512-mqu4PzTrlpNHHbu5qleGvXJoGgHpChBlrBx/mEhTPpnAL1ZAYFlvHD7rLK839LLKQzqEQMFJfGrrOHItN4ZQqA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.38.0.tgz", - "integrity": "sha512-jjqy3uWlecfB98Psxb5cD6Fny9Fupv9LrDSPTQZUROqjvZmcCqNu4UMl7qqhlUUGpwiAkotj6GYu4SZdcr/nLw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@storybook/csf": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", - "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/@testing-library/dom": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", - "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/react": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.2.0.tgz", - "integrity": "sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0 || ^19.0.0", - "@types/react-dom": "^18.0.0 || ^19.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/conventional-commits-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz", - "integrity": "sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/d3-selection": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", - "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", - "license": "MIT" - }, - "node_modules/@types/d3-transition": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", - "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", - "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", - "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/jest/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/lodash": { - "version": "4.17.16", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", - "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mui-datatables": { - "version": "4.3.12", - "resolved": "https://registry.npmjs.org/@types/mui-datatables/-/mui-datatables-4.3.12.tgz", - "integrity": "sha512-Xz7My6kOi7Q3LK0lNEKVF/XU0jMawIRMpROaXQxn2E8Ccmiguh19MHi/v7I8Qae8AAj/fuDx9EAHGBmvluRf3A==", - "license": "MIT", - "dependencies": { - "@emotion/react": "^11.10.5", - "@emotion/styled": "^11.10.5", - "@mui/material": "^5.11.4", - "@types/react": "*", - "csstype": "3.1.1 || 3.1.2" - } - }, - "node_modules/@types/mui-datatables/node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.13.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.14.tgz", - "integrity": "sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.20.tgz", - "integrity": "sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", - "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^18.0.0" - } - }, - "node_modules/@types/react-redux": { - "version": "7.1.34", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.34.tgz", - "integrity": "sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "node_modules/@types/react-redux/node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.12", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", - "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true, - "license": "ISC" - }, - "node_modules/@xstate/react": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@xstate/react/-/react-5.0.3.tgz", - "integrity": "sha512-Zdnn0VTPcVdoaAiW0OX6Nkvdoe7SNGjfaZqM61NKhjt2aNULqiicmDu2tOd1ChzlRWYDxGTdbzVqqVyMLpoHJw==", - "license": "MIT", - "peer": true, - "dependencies": { - "use-isomorphic-layout-effect": "^1.1.2", - "use-sync-external-store": "^1.2.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "xstate": "^5.19.2" - }, - "peerDependenciesMeta": { - "xstate": { - "optional": true - } - } - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true, - "license": "MIT" - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/babel-plugin-macros/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/billboard.js": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/billboard.js/-/billboard.js-3.15.0.tgz", - "integrity": "sha512-ENw8hj3gBeeKvNsiYltkYGp8w4vge0Z7wguHhBoBQs0XdFMPHEvKHijilzdbZoXaiP/JcoD/oCb8xtwTaEVQHw==", - "license": "MIT", - "dependencies": { - "@types/d3-selection": "^3.0.11", - "@types/d3-transition": "^3.0.9", - "d3-axis": "^3.0.0", - "d3-brush": "^3.0.0", - "d3-drag": "^3.0.0", - "d3-dsv": "^3.0.1", - "d3-ease": "^3.0.1", - "d3-hierarchy": "^3.1.2", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-selection": "^3.0.0", - "d3-shape": "^3.2.0", - "d3-time-format": "^4.1.0", - "d3-transition": "^3.0.1", - "d3-zoom": "^3.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/bundle-require": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", - "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "load-tsconfig": "^0.2.3" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "esbuild": ">=0.18" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001707", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz", - "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true, - "license": "MIT" - }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "license": "MIT" - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/commitizen": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.1.tgz", - "integrity": "sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cachedir": "2.3.0", - "cz-conventional-changelog": "3.3.0", - "dedent": "0.7.0", - "detect-indent": "6.1.0", - "find-node-modules": "^2.1.2", - "find-root": "1.1.0", - "fs-extra": "9.1.0", - "glob": "7.2.3", - "inquirer": "8.2.5", - "is-utf8": "^0.2.1", - "lodash": "4.17.21", - "minimist": "1.2.7", - "strip-bom": "4.0.0", - "strip-json-comments": "3.1.1" - }, - "bin": { - "commitizen": "bin/commitizen", - "cz": "bin/git-cz", - "git-cz": "bin/git-cz" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/commitizen/node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/consola": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", - "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-conventionalcommits": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", - "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-commit-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", - "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", - "dev": true, - "license": "ISC" - }, - "node_modules/conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.mjs" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/core-js-pure": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.41.0.tgz", - "integrity": "sha512-71Gzp96T9YPk63aUvE5Q5qP+DryB4ZloUZPSOebGM88VNw8VNfvdA7z6kGA8iGOTEzAomsRidp4jXSmUIJsL+Q==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.1.0.tgz", - "integrity": "sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "jiti": "^2.4.1" - }, - "engines": { - "node": ">=v18" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=9", - "typescript": ">=5" - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/create-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/create-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/cz-conventional-changelog": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", - "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@commitlint/load": ">6.1.1" - } - }, - "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cz-conventional-changelog/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cz-conventional-changelog/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/cz-conventional-changelog/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/cz-conventional-changelog/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/cz-conventional-changelog/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "license": "ISC", - "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dargs": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", - "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", - "dev": true, - "license": "MIT" - }, - "node_modules/decode-named-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", - "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dnd-core": { - "version": "11.1.3", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-11.1.3.tgz", - "integrity": "sha512-QugF55dNW+h+vzxVJ/LSJeTeUw9MCJ2cllhmVThVPEtF16ooBkxj0WBE5RB+AceFxMFo1rO6bJKXtqKl+JNnyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@react-dnd/asap": "^4.0.0", - "@react-dnd/invariant": "^2.0.0", - "redux": "^4.0.4" - } - }, - "node_modules/dnd-core/node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "deprecated": "Use your platform's native DOMException instead", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.128", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.128.tgz", - "integrity": "sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz", - "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.2", - "@esbuild/android-arm": "0.25.2", - "@esbuild/android-arm64": "0.25.2", - "@esbuild/android-x64": "0.25.2", - "@esbuild/darwin-arm64": "0.25.2", - "@esbuild/darwin-x64": "0.25.2", - "@esbuild/freebsd-arm64": "0.25.2", - "@esbuild/freebsd-x64": "0.25.2", - "@esbuild/linux-arm": "0.25.2", - "@esbuild/linux-arm64": "0.25.2", - "@esbuild/linux-ia32": "0.25.2", - "@esbuild/linux-loong64": "0.25.2", - "@esbuild/linux-mips64el": "0.25.2", - "@esbuild/linux-ppc64": "0.25.2", - "@esbuild/linux-riscv64": "0.25.2", - "@esbuild/linux-s390x": "0.25.2", - "@esbuild/linux-x64": "0.25.2", - "@esbuild/netbsd-arm64": "0.25.2", - "@esbuild/netbsd-x64": "0.25.2", - "@esbuild/openbsd-arm64": "0.25.2", - "@esbuild/openbsd-x64": "0.25.2", - "@esbuild/sunos-x64": "0.25.2", - "@esbuild/win32-arm64": "0.25.2", - "@esbuild/win32-ia32": "0.25.2", - "@esbuild/win32-x64": "0.25.2" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", - "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", - "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=8.40" - } - }, - "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-storybook": { - "version": "0.6.15", - "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.15.tgz", - "integrity": "sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.0.1", - "@typescript-eslint/utils": "^5.45.0", - "requireindex": "^1.1.0", - "ts-dedent": "^2.2.0" - }, - "engines": { - "node": "12.x || 14.x || >= 16" - }, - "peerDependencies": { - "eslint": ">=6" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-plugin-storybook/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true, - "license": "MIT" - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-node-modules": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz", - "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "findup-sync": "^4.0.0", - "merge": "^2.1.1" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/findup-sync": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/git-raw-commits": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", - "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dargs": "^8.0.0", - "meow": "^12.0.1", - "split2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.mjs" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/global-directory": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", - "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "4.1.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/goober": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz", - "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "csstype": "^3.0.10" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", - "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "hastscript": "^7.0.0", - "property-information": "^6.0.0", - "vfile": "^5.0.0", - "vfile-location": "^4.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", - "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz", - "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "hast-util-from-parse5": "^7.0.0", - "hast-util-to-parse5": "^7.0.0", - "html-void-elements": "^2.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/hast-util-to-parse5": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz", - "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", - "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", - "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^3.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/husky": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", - "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", - "dev": true, - "license": "MIT", - "bin": { - "husky": "bin.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", - "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-meta-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "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.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ini": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", - "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-text-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", - "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "text-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jake/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-environment-jsdom": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0", - "jsdom": "^20.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", - "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz", - "integrity": "sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==", - "dependencies": { - "debug": "^2.1.3" - } - }, - "node_modules/jsonp/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/jsonp/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/lint-staged": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.0.tgz", - "integrity": "sha512-WyCzSbfYGhK7cU+UuDDkzUiytbfbi0ZdPy2orwtM75P3WTtQBzmG40cCxIa8Ii2+XjfxzLH6Be46tUfWS85Xfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^5.4.1", - "commander": "^13.1.0", - "debug": "^4.4.0", - "execa": "^8.0.1", - "lilconfig": "^3.1.3", - "listr2": "^8.2.5", - "micromatch": "^4.0.8", - "pidtree": "^0.6.0", - "string-argv": "^0.3.2", - "yaml": "^2.7.0" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": ">=18.12.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/commander": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/lint-staged/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/lint-staged/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/lint-staged/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", - "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/listr2/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/load-tsconfig": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", - "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash.assignwith": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", - "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.find": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", - "integrity": "sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isundefined": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", - "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.mergewith": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/longest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", - "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mdast-util-definitions": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", - "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", - "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", - "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-definitions": "^5.0.0", - "micromark-util-sanitize-uri": "^1.1.0", - "trim-lines": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", - "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", - "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz", - "integrity": "sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz", - "integrity": "sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz", - "integrity": "sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz", - "integrity": "sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", - "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz", - "integrity": "sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mui-datatables": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mui-datatables/-/mui-datatables-4.3.0.tgz", - "integrity": "sha512-LFliQwNnnxW03IO+V3q/ORxZsOHkzl53iGogLbjUJzme47hNEN106dM0ie8oMSc0heYJY0J07oZmKm7Xn3X7IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime-corejs3": "^7.12.1", - "@emotion/cache": "^11.7.1", - "clsx": "^1.1.1", - "lodash.assignwith": "^4.2.0", - "lodash.clonedeep": "^4.5.0", - "lodash.debounce": "^4.0.8", - "lodash.find": "^4.6.0", - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "lodash.isundefined": "^3.0.1", - "lodash.memoize": "^4.1.2", - "lodash.merge": "^4.6.2", - "prop-types": "^15.7.2", - "react-dnd": "^11.1.3", - "react-dnd-html5-backend": "^11.1.3", - "react-sortable-tree-patch-react-17": "^2.9.0", - "react-to-print": "^2.8.0", - "tss-react": "^3.6.0" - }, - "peerDependencies": { - "@emotion/react": "^11.10.5", - "@mui/icons-material": "^5.11.0", - "@mui/material": "^5.11.0", - "react": "^16.8.0 || ^17.0.2 || ^18.2.0", - "react-dom": "^16.8.0 || ^17.0.2 || ^18.2.0" - } - }, - "node_modules/mui-datatables/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true, - "license": "ISC" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/notistack": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/notistack/-/notistack-3.0.2.tgz", - "integrity": "sha512-0R+/arLYbK5Hh7mEfR2adt0tyXJcCC9KkA2hc56FeWik2QN6Bm/S4uW+BjzDARsJth5u06nTjelSw/VSnB1YEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clsx": "^1.1.0", - "goober": "^2.0.33" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/notistack" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/notistack/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nwsapi": { - "version": "2.2.20", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", - "dev": true, - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss-load-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", - "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.1.1" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-organize-imports": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.1.0.tgz", - "integrity": "sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "prettier": ">=2.0", - "typescript": ">=2.9", - "vue-tsc": "^2.1.0" - }, - "peerDependenciesMeta": { - "vue-tsc": { - "optional": true - } - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dev": true, - "license": "MIT", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/re-resizable": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.11.2.tgz", - "integrity": "sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A==", - "license": "MIT", - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-display-name": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/react-display-name/-/react-display-name-0.2.5.tgz", - "integrity": "sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-dnd": { - "version": "11.1.3", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-11.1.3.tgz", - "integrity": "sha512-8rtzzT8iwHgdSC89VktwhqdKKtfXaAyC4wiqp0SywpHG12TTLvfOoL6xNEIUWXwIEWu+CFfDn4GZJyynCEuHIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@react-dnd/shallowequal": "^2.0.0", - "@types/hoist-non-react-statics": "^3.3.1", - "dnd-core": "^11.1.3", - "hoist-non-react-statics": "^3.3.0" - }, - "peerDependencies": { - "react": ">= 16.9.0", - "react-dom": ">= 16.9.0" - } - }, - "node_modules/react-dnd-html5-backend": { - "version": "11.1.3", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-11.1.3.tgz", - "integrity": "sha512-/1FjNlJbW/ivkUxlxQd7o3trA5DE33QiRZgxent3zKme8DwF4Nbw3OFVhTRFGaYhHFNL1rZt6Rdj1D78BjnNLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dnd-core": "^11.1.3" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-draggable": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz", - "integrity": "sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==", - "license": "MIT", - "dependencies": { - "clsx": "^1.1.1", - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" - } - }, - "node_modules/react-draggable/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/react-error-boundary": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-5.0.0.tgz", - "integrity": "sha512-tnjAxG+IkpLephNcePNA7v6F/QpWLH8He65+DmedchDwg162JZqx4NmbXj0mlAYVVEd81OW7aFhmbsScYfiAFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "peerDependencies": { - "react": ">=16.13.1" - } - }, - "node_modules/react-is": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", - "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", - "license": "MIT" - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-markdown": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", - "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/prop-types": "^15.0.0", - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "prop-types": "^15.0.0", - "property-information": "^6.0.0", - "react-is": "^18.0.0", - "remark-parse": "^10.0.0", - "remark-rehype": "^10.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/react-markdown/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-redux": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", - "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", - "use-sync-external-store": "^1.0.0" - }, - "peerDependencies": { - "@types/react": "^16.8 || ^17.0 || ^18.0", - "@types/react-dom": "^16.8 || ^17.0 || ^18.0", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0", - "react-native": ">=0.59", - "redux": "^4 || ^5.0.0-beta.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/react-redux/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-share": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/react-share/-/react-share-5.2.2.tgz", - "integrity": "sha512-z0nbOX6X6vHHWAvXduNkYeJUKTKNpKM5Xpmc5a2BxjJhUWl+sE7AsSEMmYEUj2DuDjZr5m7KFIGF0sQPKcUN6w==", - "license": "MIT", - "dependencies": { - "classnames": "^2.3.2", - "jsonp": "^0.2.1" - }, - "peerDependencies": { - "react": "^17 || ^18 || ^19" - } - }, - "node_modules/react-sortable-tree-patch-react-17": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-sortable-tree-patch-react-17/-/react-sortable-tree-patch-react-17-2.9.0.tgz", - "integrity": "sha512-Ngtdbf78OfjqCxLj7+N+K4zM9d1mQ/tfnUsOfICFDzNa5JHg6AjixAj69ijvz0ykEiA9lYop+0Fm4KCOqCdlKA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.isequal": "^4.5.0", - "prop-types": "^15.6.1", - "react": "^17.0.0", - "react-dnd": "^11.1.3", - "react-dnd-html5-backend": "^11.1.3", - "react-dnd-scrollzone-patch-react-17": "^1.0.2", - "react-dom": "^17.0.0", - "react-lifecycles-compat": "^3.0.4", - "react-virtualized": "^9.21.2" - }, - "peerDependencies": { - "react": "^17.0.0", - "react-dnd": "^11.1.3", - "react-dom": "^17.0.0" - } - }, - "node_modules/react-sortable-tree-patch-react-17/node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-sortable-tree-patch-react-17/node_modules/react-dnd-scrollzone-patch-react-17": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/react-dnd-scrollzone-patch-react-17/-/react-dnd-scrollzone-patch-react-17-1.0.2.tgz", - "integrity": "sha512-Wfhyc/Y/Veim29REBYm8nMmtDB5IwSmPPhXIuabBgsEa1MrVsuOwK9+7LmuP+mGbDOEP/S6G8+5XvDqPlRFK2g==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "license": "MIT", - "dependencies": { - "hoist-non-react-statics": "^3.1.0", - "lodash.throttle": "^4.0.1", - "prop-types": "^15.5.9", - "raf": "^3.2.0", - "react-display-name": "^0.2.0" - }, - "peerDependencies": { - "react": "^17.0.1", - "react-dnd": "^11.1.3", - "react-dom": "^17.0.1" - } - }, - "node_modules/react-sortable-tree-patch-react-17/node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-sortable-tree-patch-react-17/node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/react-to-print": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/react-to-print/-/react-to-print-2.15.1.tgz", - "integrity": "sha512-1foogIFbCpzAVxydkhBiDfMiFYhIMphiagDOfcG4X/EcQ+fBPqJ0rby9Wv/emzY1YLkIQy/rEgOrWQT+rBKhjw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/react-virtualized": { - "version": "9.22.6", - "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.6.tgz", - "integrity": "sha512-U5j7KuUQt3AaMatlMJ0UJddqSiX+Km0YJxSqbAzIiGw5EmNz0khMyqP2hzgu4+QUtm+QPIrxzUX4raJxmVJnHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.2", - "clsx": "^1.0.4", - "dom-helpers": "^5.1.3", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-virtualized/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/redux": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "dev": true, - "license": "MIT" - }, - "node_modules/redux-thunk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", - "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "redux": "^5.0.0" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rehype-raw": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz", - "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-raw": "^7.2.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", - "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requireindex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.5" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/reselect": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", - "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.38.0.tgz", - "integrity": "sha512-5SsIRtJy9bf1ErAOiFMFzl64Ex9X5V7bnJ+WlFMb+zmP459OSWCEG7b0ERZ+PEU7xPt4OG3RHbrp1LJlXxYTrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.7" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.38.0", - "@rollup/rollup-android-arm64": "4.38.0", - "@rollup/rollup-darwin-arm64": "4.38.0", - "@rollup/rollup-darwin-x64": "4.38.0", - "@rollup/rollup-freebsd-arm64": "4.38.0", - "@rollup/rollup-freebsd-x64": "4.38.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.38.0", - "@rollup/rollup-linux-arm-musleabihf": "4.38.0", - "@rollup/rollup-linux-arm64-gnu": "4.38.0", - "@rollup/rollup-linux-arm64-musl": "4.38.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.38.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.38.0", - "@rollup/rollup-linux-riscv64-gnu": "4.38.0", - "@rollup/rollup-linux-riscv64-musl": "4.38.0", - "@rollup/rollup-linux-s390x-gnu": "4.38.0", - "@rollup/rollup-linux-x64-gnu": "4.38.0", - "@rollup/rollup-linux-x64-musl": "4.38.0", - "@rollup/rollup-win32-arm64-msvc": "4.38.0", - "@rollup/rollup-win32-ia32-msvc": "4.38.0", - "@rollup/rollup-win32-x64-msvc": "4.38.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause" - }, - "node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", - "license": "MIT" - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/text-extensions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", - "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", - "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.4.3", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", - "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-dedent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.10" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/ts-jest": { - "version": "29.3.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.0.tgz", - "integrity": "sha512-4bfGBX7Gd1Aqz3SyeDS9O276wEU/BInZxskPrbhZLyv+c1wskDCqDFMJQJLWrIr/fKoAH4GE5dKUlrdyvo+39A==", - "dev": true, - "license": "MIT", - "dependencies": { - "bs-logger": "^0.2.6", - "ejs": "^3.1.10", - "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "^4.1.2", - "make-error": "^1.3.6", - "semver": "^7.7.1", - "type-fest": "^4.37.0", - "yargs-parser": "^21.1.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/type-fest": { - "version": "4.38.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.38.0.tgz", - "integrity": "sha512-2dBz5D5ycHIoliLYLi0Q2V7KRaDlH0uWIvmk7TYlAg5slqwiPv1ezJdZm1QEM0xgk29oYWMCbIG7E6gHpvChlg==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tss-react": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/tss-react/-/tss-react-3.7.1.tgz", - "integrity": "sha512-dfWUoxBlKZfIG9UC1A2h02OmcE/Ni0itCmmZu94E9g+KyBhKMHKcsKvUm0bNlRqTmYjXiCgPJDmj5fyc8CSrLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@emotion/cache": "*", - "@emotion/serialize": "*", - "@emotion/utils": "*" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/server": "^11.4.0", - "react": "^16.8.0 || ^17.0.2 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/server": { - "optional": true - } - } - }, - "node_modules/tsup": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.4.0.tgz", - "integrity": "sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bundle-require": "^5.1.0", - "cac": "^6.7.14", - "chokidar": "^4.0.3", - "consola": "^3.4.0", - "debug": "^4.4.0", - "esbuild": "^0.25.0", - "joycon": "^3.1.1", - "picocolors": "^1.1.1", - "postcss-load-config": "^6.0.1", - "resolve-from": "^5.0.0", - "rollup": "^4.34.8", - "source-map": "0.8.0-beta.0", - "sucrase": "^3.35.0", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.11", - "tree-kill": "^1.2.2" - }, - "bin": { - "tsup": "dist/cli-default.js", - "tsup-node": "dist/cli-node.js" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@microsoft/api-extractor": "^7.36.0", - "@swc/core": "^1", - "postcss": "^8.4.12", - "typescript": ">=4.5.0" - }, - "peerDependenciesMeta": { - "@microsoft/api-extractor": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "postcss": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/tsup/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tsup/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/tsup/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/tsup/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "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" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-generated": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", - "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", - "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use-debounce": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.4.tgz", - "integrity": "sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw==", - "license": "MIT", - "engines": { - "node": ">= 16.0.0" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", - "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", - "license": "MIT", - "peer": true, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sync-external-store": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", - "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", - "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", - "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" - }, - "node_modules/xstate": { - "version": "5.19.2", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-5.19.2.tgz", - "integrity": "sha512-B8fL2aP0ogn5aviAXFzI5oZseAMqN00fg/TeDa3ZtatyDcViYLIfuQl4y8qmHCiKZgGEzmnTyNtNQL9oeJE2gw==", - "license": "MIT", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/xstate" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", - "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 769b22080..000000000 --- a/package.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "name": "@sistent/sistent", - "version": "0.0.1", - "description": "Reusable React Components and SVG Icons library", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/layer5io/sistent.git" - }, - "main": "./dist/index.js", - "module": "./dist/index..js", - "types": "./dist/index.d.ts", - "files": [ - "dist" - ], - "scripts": { - "build": "NODE_ENV=production tsup", - "build:watch": "NODE_ENV=production tsup --watch", - "commitlint": "commitlint --edit", - "coverage": "jest --coverage", - "dev": "NODE_ENV=development tsup", - "dev:watch": "NODE_ENV=development tsup", - "format:check": "prettier --check \"**/*.{ts,tsx,md}\" --config ./.prettierrc", - "format:write": "prettier --write \"**/*.{ts,tsx,md}\" --config ./.prettierrc", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "lint:fix": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0 --fix", - "prepare": "husky install", - "test": "jest", - "versionup:major": "npm version major", - "versionup:minor": "npm version minor", - "versionup:patch": "npm version patch" - }, - "lint-staged": { - "*.{ts,tsx,md}": [ - "prettier --write", - "eslint --fix" - ] - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "devDependencies": { - "@commitlint/cli": "^19.8.0", - "@commitlint/config-conventional": "^19.8.0", - "@mui/icons-material": "^6.4.8", - "@reduxjs/toolkit": "^2.2.5", - "@testing-library/react": "^16.2.0", - "@types/jest": "^29.5.14", - "@types/lodash": "^4.17.16", - "@types/react": "^18.2.45", - "@types/react-dom": "^18.2.18", - "@types/react-redux": "^7.1.34", - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", - "commitizen": "^4.3.1", - "cz-conventional-changelog": "^3.3.0", - "eslint": "^8.49.0", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.4", - "eslint-plugin-storybook": "^0.6.15", - "husky": "^9.1.7", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "lint-staged": "^15.5.0", - "mui-datatables": "^4.3.0", - "notistack": "^3.0.2", - "prettier": "^3.5.3", - "prettier-plugin-organize-imports": "^4.1.0", - "react-error-boundary": "^5.0.0", - "react-markdown": "^8.0.7", - "react-redux": "^8.1.1", - "redux": "^5.0.1", - "rehype-raw": "^6.1.1", - "remark-gfm": "^3.0.1", - "rollup": "^4.38.0", - "ts-jest": "^29.3.0", - "tsup": "^8.4.0", - "typescript": "^5.8.2" - }, - "peerDependencies": { - "@xstate/react": "^5.0.3", - "react": "^17.0.2 || ^18.3.1", - "react-dom": "^17.0.2 || ^18.3.1", - "xstate": "^5.19.2" - }, - "overrides": { - "@mui/icons-material": "^6.4.8", - "@mui/material": "^6.4.8" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - }, - "publishConfig": { - "access": "public" - }, - "dependencies": { - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "@layer5/meshery-design-embed": "^0.4.0", - "@layer5/schemas": "^0.0.6-16", - "@mui/material": "^6.4.8", - "@types/mui-datatables": "*", - "billboard.js": "^3.15.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "moment": "^2.30.1", - "mui-datatables": "*", - "re-resizable": "^6.11.2", - "react-draggable": "^4.4.6", - "react-share": "^5.1.0", - "use-debounce": "^10.0.4" - } -} diff --git a/scripts/create-multiple-git-tag.sh b/scripts/create-multiple-git-tag.sh deleted file mode 100755 index f9e86bc64..000000000 --- a/scripts/create-multiple-git-tag.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -for dir in $(yarn lerna ls --json --all | jq -r '.[].location'); do - VERSION=$(node -e "console.log(require('$dir/package.json').version)") - NAME=$(node -e "console.log(require('$dir/package.json').name)") - TAG="$NAME@v$VERSION" - - # Check if the tag already exists - if git rev-parse -q --verify "refs/tags/$TAG" > /dev/null; then - echo "Git tag $TAG already exists. Skipping tag creation." - else - # Tag doesn't exist, create it - git tag -a "$TAG" -m "Version $VERSION" - echo "Git tag $TAG created" - fi -done - -# Push all tags -git push --tags diff --git a/scripts/update_lock_latest.sh b/scripts/update_lock_latest.sh deleted file mode 100755 index d1bec7527..000000000 --- a/scripts/update_lock_latest.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -yarn install - -git add . -git commit -m "chore(release): update lock file" -git push origin master \ No newline at end of file diff --git a/scripts/version-graduate-release.sh b/scripts/version-graduate-release.sh deleted file mode 100755 index 0c6e19e48..000000000 --- a/scripts/version-graduate-release.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# Usage: version-graduate-release.sh -# Example: version-graduate-release.sh - -# Get the list of changed packages using Lerna -CHANGED_PACKAGES=$(yarn lerna changed --json | jq -r '.[].name') - -if [ -n "$CHANGED_PACKAGES" ]; then - echo "Changed packages detected: $CHANGED_PACKAGES" - yarn lerna version --no-private --conventional-commits --conventional-graduate --include-merged-tags --no-git-tag-version --yes - - # Stage changes to package.json files - for PACKAGE_NAME in $CHANGED_PACKAGES; do - PACKAGE_PATH="packages/$(echo $PACKAGE_NAME | tr -d '@' | sed 's/\//-/')" - grep -q "\"name\": \"$PACKAGE_NAME\"" "$PACKAGE_PATH/package.json" && git add "$PACKAGE_PATH/package.json" - done -else - echo "No changed packages detected. Skipping lerna version." -fi diff --git a/scripts/version-prerelease-packages.sh b/scripts/version-prerelease-packages.sh deleted file mode 100755 index 8e963a10b..000000000 --- a/scripts/version-prerelease-packages.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# Usage: version-prerelrease-packages.sh -# Example: version-prerelrease-packages.sh - -# Get the list of changed packages using Lerna -CHANGED_PACKAGES=$(yarn lerna changed --json | jq -r '.[].name') - -if [ -n "$CHANGED_PACKAGES" ]; then - echo "Changed packages detected: $CHANGED_PACKAGES" - yarn lerna version --no-private --conventional-commits --conventional-prerelease --include-merged-tags --no-git-tag-version --yes - - # Stage changes to package.json files - for PACKAGE_NAME in $CHANGED_PACKAGES; do - PACKAGE_PATH="packages/$(echo $PACKAGE_NAME | tr -d '@' | sed 's/\//-/')" - grep -q "\"name\": \"$PACKAGE_NAME\"" "$PACKAGE_PATH/package.json" && git add "$PACKAGE_PATH/package.json" - done -else - echo "No changed packages detected. Skipping lerna version." -fi diff --git a/scripts/version-release.sh b/scripts/version-release.sh deleted file mode 100755 index 74462b595..000000000 --- a/scripts/version-release.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -# Usage: version-release.sh <version_type> -# Example: version-release.sh patch - -# Get the list of changed packages using Lerna -CHANGED_PACKAGES=$(yarn lerna changed --json | jq -r '.[].name') - -if [ -n "$CHANGED_PACKAGES" ]; then - echo "Changed packages detected: $CHANGED_PACKAGES" - - # Set the version type from the script argument or use "patch" as default - VERSION_TYPE=${1:-"patch"} - - # Run Lerna version with the specified type - yarn lerna version $VERSION_TYPE --no-private --conventional-commits --include-merged-tags --no-git-tag-version --yes - - # Stage changes to package.json files - for PACKAGE_NAME in $CHANGED_PACKAGES; do - # Adjusting the package path based on the correct structure - PACKAGE_PATH="packages/$PACKAGE_NAME" - - # Check if the package directory exists before attempting to grep - if [ -d "$PACKAGE_PATH" ]; then - grep -q "\"name\": \"$PACKAGE_NAME\"" "$PACKAGE_PATH/package.json" && git add "$PACKAGE_PATH/package.json" - else - echo "Package directory $PACKAGE_PATH does not exist." - fi - done -else - echo "No changed packages detected. Skipping lerna version." -fi diff --git a/site/.github/Makefile.show-help.mk b/site/.github/Makefile.show-help.mk deleted file mode 100644 index 3d096d8ea..000000000 --- a/site/.github/Makefile.show-help.mk +++ /dev/null @@ -1,5 +0,0 @@ -.DEFAULT_GOAL := show-help -# See <https://gist.github.com/klmr/575726c7e05d8780505a> for explanation. -.PHONY: show-help -show-help: - @echo "$$(tput bold)Please specify a build target. The choices are:$$(tput sgr0)";echo;sed -ne"/^## /{h;s/.*//;:d" -e"H;n;s/^## //;td" -e"s/:.*//;G;s/\\n## /---/;s/\\n/ /g;p;}" ${MAKEFILE_LIST}|LC_ALL='C' sort -f|awk -F --- -v n=$$(tput cols) -v i=19 -v a="$$(tput setaf 6)" -v z="$$(tput sgr0)" '{printf"%s%*s%s ",a,-i,$$1,z;m=split($$2,w," ");l=n-i;for(j=1;j<=m;j++){l-=length(w[j])+1;if(l<= 0){l=n-i-length(w[j])-1;printf"\n%*s ",-i," ";}printf"%s ",w[j];}printf"\n";}'|more $(shell test $(shell uname) == Darwin && echo '-Xr') \ No newline at end of file diff --git a/site/.gitignore b/site/.gitignore deleted file mode 100644 index 557f97c6f..000000000 --- a/site/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/ -.cache/ -public diff --git a/site/Makefile b/site/Makefile deleted file mode 100644 index fc7934ba7..000000000 --- a/site/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright Layer5, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -include .github/Makefile.show-help.mk - -## Install docs.layer5.io dependencies your local machine. -## See https://gohugo.io/categories/installation -setup: - npm install - -## Run site on your local machine. Alternate method. -site: - npm start - -## Build site on your local machine. -build: - gatsby build && gatsby serve - -## Empty build cache and run site on your local machine. -clean: - gatsby clean && make site - -.PHONY: setup build site clean \ No newline at end of file diff --git a/site/README.md b/site/README.md deleted file mode 100644 index 064321526..000000000 --- a/site/README.md +++ /dev/null @@ -1,14 +0,0 @@ -## ๐ Setting up Local Development - -1. Navigate to the `site` folder - ``` - cd site/ - ``` -2. Install dependencies - ``` - make setup - ``` -3. To start the development server run - ``` - make site - ``` diff --git a/site/gatsby-browser.js b/site/gatsby-browser.js deleted file mode 100644 index f0e70b294..000000000 --- a/site/gatsby-browser.js +++ /dev/null @@ -1,5 +0,0 @@ -import React from "react"; -import { ThemeProvider } from './src/components/Theme'; -import './src/styles/global.css'; - -export const wrapRootElement = ({ element }) => <ThemeProvider>{element}</ThemeProvider>; diff --git a/site/gatsby-config.js b/site/gatsby-config.js deleted file mode 100644 index b53d66595..000000000 --- a/site/gatsby-config.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * @type {import('gatsby').GatsbyConfig} - */ -module.exports = { - siteMetadata: { - title: 'Sistent Design System | Layer5', - siteUrl: 'https://design.layer5.io' - }, - plugins: ['gatsby-plugin-postcss'] -}; diff --git a/site/package-lock.json b/site/package-lock.json deleted file mode 100644 index d06b24e74..000000000 --- a/site/package-lock.json +++ /dev/null @@ -1,16289 +0,0 @@ -{ - "name": "sistent", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "sistent", - "version": "1.0.0", - "dependencies": { - "autoprefixer": "^10.4.16", - "gatsby": "^5.14.0", - "gatsby-plugin-postcss": "^6.12.0", - "postcss": "^8.4.31", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^7.5.2", - "tailwindcss": "^3.3.5" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ardatan/relay-compiler": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz", - "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==", - "dependencies": { - "@babel/core": "^7.14.0", - "@babel/generator": "^7.14.0", - "@babel/parser": "^7.14.0", - "@babel/runtime": "^7.0.0", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.0.0", - "babel-preset-fbjs": "^3.4.0", - "chalk": "^4.0.0", - "fb-watchman": "^2.0.0", - "fbjs": "^3.0.0", - "glob": "^7.1.1", - "immutable": "~3.7.6", - "invariant": "^2.2.4", - "nullthrows": "^1.1.1", - "relay-runtime": "12.0.0", - "signedsource": "^1.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "relay-compiler": "bin/relay-compiler" - }, - "peerDependencies": { - "graphql": "*" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", - "integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", - "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", - "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", - "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", - "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", - "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz", - "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", - "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.10" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz", - "integrity": "sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", - "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz", - "integrity": "sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-flow": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", - "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-simple-access": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", - "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", - "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", - "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", - "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", - "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@builder.io/partytown": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.7.6.tgz", - "integrity": "sha512-snXIGNiZpqjno3XYQN2lbBB+05hsQR/LSttbtIW1c0gmZ7Kh/DIo0YrxlDxCDulAMFPFM8J+4voLwvYepSj3sw==", - "bin": { - "partytown": "bin/partytown.cjs" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-2.14.0.tgz", - "integrity": "sha512-BWIIsz4oPLIUVAWr4Lgw4BGtJjjhb39+oTrXUa6rN0A+vS5qXrpkx1nGzVb5PJ2RJY9Paf4hNLZVW9LaLnGLBA==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@parcel/namer-default": "2.8.3", - "@parcel/plugin": "2.8.3", - "gatsby-core-utils": "^4.14.0" - }, - "engines": { - "node": ">=18.0.0", - "parcel": "2.x" - } - }, - "node_modules/@gatsbyjs/reach-router": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@gatsbyjs/reach-router/-/reach-router-2.0.1.tgz", - "integrity": "sha512-gmSZniS9/phwgEgpFARMpNg21PkYDZEpfgEzvkgpE/iku4uvXqCrxr86fXbTpI9mkrhKS1SCTYmLGe60VdHcdQ==", - "dependencies": { - "invariant": "^2.2.4", - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "react": "18.x", - "react-dom": "18.x" - } - }, - "node_modules/@gatsbyjs/webpack-hot-middleware": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/@gatsbyjs/webpack-hot-middleware/-/webpack-hot-middleware-2.25.3.tgz", - "integrity": "sha512-ul17OZ8Dlw+ATRbnuU+kwxuAlq9lKbYz/2uBS1FLCdgoPTF1H2heP7HbUbgfMZbfRQNcCG2rMscMnr32ritCDw==", - "dependencies": { - "ansi-html-community": "0.0.8", - "html-entities": "^2.3.3", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/@graphql-codegen/add": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@graphql-codegen/add/-/add-3.2.3.tgz", - "integrity": "sha512-sQOnWpMko4JLeykwyjFTxnhqjd/3NOG2OyMuvK76Wnnwh8DRrNf2VEs2kmSvLl7MndMlOj7Kh5U154dVcvhmKQ==", - "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.1", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/add/node_modules/@graphql-codegen/plugin-helpers": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", - "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", - "dependencies": { - "@graphql-tools/utils": "^9.0.0", - "change-case-all": "1.0.15", - "common-tags": "1.8.2", - "import-from": "4.0.0", - "lodash": "~4.17.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/add/node_modules/change-case-all": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", - "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", - "dependencies": { - "change-case": "^4.1.2", - "is-lower-case": "^2.0.2", - "is-upper-case": "^2.0.2", - "lower-case": "^2.0.2", - "lower-case-first": "^2.0.2", - "sponge-case": "^1.0.1", - "swap-case": "^2.0.2", - "title-case": "^3.0.3", - "upper-case": "^2.0.2", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/@graphql-codegen/core": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.8.tgz", - "integrity": "sha512-JKllNIipPrheRgl+/Hm/xuWMw9++xNQ12XJR/OHHgFopOg4zmN3TdlRSyYcv/K90hCFkkIwhlHFUQTfKrm8rxQ==", - "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.1", - "@graphql-tools/schema": "^9.0.0", - "@graphql-tools/utils": "^9.1.1", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/core/node_modules/@graphql-codegen/plugin-helpers": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", - "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", - "dependencies": { - "@graphql-tools/utils": "^9.0.0", - "change-case-all": "1.0.15", - "common-tags": "1.8.2", - "import-from": "4.0.0", - "lodash": "~4.17.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/core/node_modules/change-case-all": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", - "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", - "dependencies": { - "change-case": "^4.1.2", - "is-lower-case": "^2.0.2", - "is-upper-case": "^2.0.2", - "lower-case": "^2.0.2", - "lower-case-first": "^2.0.2", - "sponge-case": "^1.0.1", - "swap-case": "^2.0.2", - "title-case": "^3.0.3", - "upper-case": "^2.0.2", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/@graphql-codegen/plugin-helpers": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz", - "integrity": "sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==", - "dependencies": { - "@graphql-tools/utils": "^8.8.0", - "change-case-all": "1.0.14", - "common-tags": "1.8.2", - "import-from": "4.0.0", - "lodash": "~4.17.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/plugin-helpers/node_modules/@graphql-tools/utils": { - "version": "8.13.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz", - "integrity": "sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==", - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-codegen/schema-ast": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-2.6.1.tgz", - "integrity": "sha512-5TNW3b1IHJjCh07D2yQNGDQzUpUl2AD+GVe1Dzjqyx/d2Fn0TPMxLsHsKPS4Plg4saO8FK/QO70wLsP7fdbQ1w==", - "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-tools/utils": "^9.0.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-codegen/plugin-helpers": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", - "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", - "dependencies": { - "@graphql-tools/utils": "^9.0.0", - "change-case-all": "1.0.15", - "common-tags": "1.8.2", - "import-from": "4.0.0", - "lodash": "~4.17.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/schema-ast/node_modules/change-case-all": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", - "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", - "dependencies": { - "change-case": "^4.1.2", - "is-lower-case": "^2.0.2", - "is-upper-case": "^2.0.2", - "lower-case": "^2.0.2", - "lower-case-first": "^2.0.2", - "sponge-case": "^1.0.1", - "swap-case": "^2.0.2", - "title-case": "^3.0.3", - "upper-case": "^2.0.2", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/@graphql-codegen/typescript": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.8.tgz", - "integrity": "sha512-A0oUi3Oy6+DormOlrTC4orxT9OBZkIglhbJBcDmk34jAKKUgesukXRd4yOhmTrnbchpXz2T8IAOFB3FWIaK4Rw==", - "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-codegen/schema-ast": "^2.6.1", - "@graphql-codegen/visitor-plugin-common": "2.13.8", - "auto-bind": "~4.0.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/typescript-operations": { - "version": "2.5.13", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.13.tgz", - "integrity": "sha512-3vfR6Rx6iZU0JRt29GBkFlrSNTM6t+MSLF86ChvL4d/Jfo/JYAGuB3zNzPhirHYzJPCvLOAx2gy9ID1ltrpYiw==", - "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-codegen/typescript": "^2.8.8", - "@graphql-codegen/visitor-plugin-common": "2.13.8", - "auto-bind": "~4.0.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-codegen/plugin-helpers": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", - "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", - "dependencies": { - "@graphql-tools/utils": "^9.0.0", - "change-case-all": "1.0.15", - "common-tags": "1.8.2", - "import-from": "4.0.0", - "lodash": "~4.17.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/typescript-operations/node_modules/change-case-all": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", - "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", - "dependencies": { - "change-case": "^4.1.2", - "is-lower-case": "^2.0.2", - "is-upper-case": "^2.0.2", - "lower-case": "^2.0.2", - "lower-case-first": "^2.0.2", - "sponge-case": "^1.0.1", - "swap-case": "^2.0.2", - "title-case": "^3.0.3", - "upper-case": "^2.0.2", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/plugin-helpers": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", - "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", - "dependencies": { - "@graphql-tools/utils": "^9.0.0", - "change-case-all": "1.0.15", - "common-tags": "1.8.2", - "import-from": "4.0.0", - "lodash": "~4.17.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/typescript/node_modules/change-case-all": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", - "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", - "dependencies": { - "change-case": "^4.1.2", - "is-lower-case": "^2.0.2", - "is-upper-case": "^2.0.2", - "lower-case": "^2.0.2", - "lower-case-first": "^2.0.2", - "sponge-case": "^1.0.1", - "swap-case": "^2.0.2", - "title-case": "^3.0.3", - "upper-case": "^2.0.2", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/@graphql-codegen/visitor-plugin-common": { - "version": "2.13.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz", - "integrity": "sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==", - "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-tools/optimize": "^1.3.0", - "@graphql-tools/relay-operation-optimizer": "^6.5.0", - "@graphql-tools/utils": "^9.0.0", - "auto-bind": "~4.0.0", - "change-case-all": "1.0.15", - "dependency-graph": "^0.11.0", - "graphql-tag": "^2.11.0", - "parse-filepath": "^1.0.2", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-codegen/plugin-helpers": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", - "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", - "dependencies": { - "@graphql-tools/utils": "^9.0.0", - "change-case-all": "1.0.15", - "common-tags": "1.8.2", - "import-from": "4.0.0", - "lodash": "~4.17.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/change-case-all": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", - "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", - "dependencies": { - "change-case": "^4.1.2", - "is-lower-case": "^2.0.2", - "is-upper-case": "^2.0.2", - "lower-case": "^2.0.2", - "lower-case-first": "^2.0.2", - "sponge-case": "^1.0.1", - "swap-case": "^2.0.2", - "title-case": "^3.0.3", - "upper-case": "^2.0.2", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/@graphql-tools/code-file-loader": { - "version": "7.3.23", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.23.tgz", - "integrity": "sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q==", - "dependencies": { - "@graphql-tools/graphql-tag-pluck": "7.5.2", - "@graphql-tools/utils": "^9.2.1", - "globby": "^11.0.3", - "tslib": "^2.4.0", - "unixify": "^1.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/graphql-tag-pluck": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.2.tgz", - "integrity": "sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA==", - "dependencies": { - "@babel/parser": "^7.16.8", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/load": { - "version": "7.8.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.14.tgz", - "integrity": "sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==", - "dependencies": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "p-limit": "3.1.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/merge": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", - "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/optimize": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.4.0.tgz", - "integrity": "sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==", - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/relay-operation-optimizer": { - "version": "6.5.18", - "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz", - "integrity": "sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==", - "dependencies": { - "@ardatan/relay-compiler": "12.0.0", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dependencies": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lezer/common": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz", - "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==" - }, - "node_modules/@lezer/lr": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", - "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.3.tgz", - "integrity": "sha512-RXwGZ/0eCqtCY8FLTM/koR60w+MXyvBUpToXiIyjOcBnC81tAlTUHrRUavCEWPI9zc9VgvpK3+cbumPyR8BSuA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.3.tgz", - "integrity": "sha512-337dNzh5yCdNCTk8kPfoU7jR3otibSlPDGW0vKZT97rKnQMb9tNdto3RtWoGPsQ8hKmlRZpojOJtmwjncq1MoA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.3.tgz", - "integrity": "sha512-mU2HFJDGwECkoD9dHQEfeTG5mp8hNS2BCfwoiOpVPMeapjYpQz9Uw3FkUjRZ4dGHWKbin40oWHuL0bk2bCx+Sg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.3.tgz", - "integrity": "sha512-VJw60Mdgb4n+L0fO1PqfB0C7TyEQolJAC8qpqvG3JoQwvyOv6LH7Ib/WE3wxEW9nuHmVz9jkK7lk5HfWWgoO1Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-x64": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.3.tgz", - "integrity": "sha512-qaReO5aV8griBDsBr8uBF/faO3ieGjY1RY4p8JvTL6Mu1ylLrTVvOONqKFlNaCwrmUjWw5jnf7VafxDAeQHTow==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-win32-x64": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.3.tgz", - "integrity": "sha512-cK+Elf3RjEzrm3SerAhrFWL5oQAsZSJ/LmjL1joIpTfEP1etJJ9CTRvdaV6XLYAxaEkfdhk/9hOvHLbR9yIhCA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@mischnic/json-sourcemap": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", - "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", - "dependencies": { - "@lezer/common": "^1.0.0", - "@lezer/lr": "^1.0.0", - "json5": "^2.2.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", - "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", - "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", - "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", - "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", - "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", - "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@parcel/bundler-default": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.8.3.tgz", - "integrity": "sha512-yJvRsNWWu5fVydsWk3O2L4yIy3UZiKWO2cPDukGOIWMgp/Vbpp+2Ct5IygVRtE22bnseW/E/oe0PV3d2IkEJGg==", - "dependencies": { - "@parcel/diagnostic": "2.8.3", - "@parcel/graph": "2.8.3", - "@parcel/hash": "2.8.3", - "@parcel/plugin": "2.8.3", - "@parcel/utils": "2.8.3", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/cache": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.8.3.tgz", - "integrity": "sha512-k7xv5vSQrJLdXuglo+Hv3yF4BCSs1tQ/8Vbd6CHTkOhf7LcGg6CPtLw053R/KdMpd/4GPn0QrAsOLdATm1ELtQ==", - "dependencies": { - "@parcel/fs": "2.8.3", - "@parcel/logger": "2.8.3", - "@parcel/utils": "2.8.3", - "lmdb": "2.5.2" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.8.3" - } - }, - "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz", - "integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-darwin-x64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz", - "integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-linux-arm": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz", - "integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-linux-arm64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz", - "integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-linux-x64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz", - "integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-win32-x64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz", - "integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@parcel/cache/node_modules/lmdb": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", - "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", - "hasInstallScript": true, - "dependencies": { - "msgpackr": "^1.5.4", - "node-addon-api": "^4.3.0", - "node-gyp-build-optional-packages": "5.0.3", - "ordered-binary": "^1.2.4", - "weak-lru-cache": "^1.2.2" - }, - "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "2.5.2", - "@lmdb/lmdb-darwin-x64": "2.5.2", - "@lmdb/lmdb-linux-arm": "2.5.2", - "@lmdb/lmdb-linux-arm64": "2.5.2", - "@lmdb/lmdb-linux-x64": "2.5.2", - "@lmdb/lmdb-win32-x64": "2.5.2" - } - }, - "node_modules/@parcel/cache/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node_modules/@parcel/codeframe": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.8.3.tgz", - "integrity": "sha512-FE7sY53D6n/+2Pgg6M9iuEC6F5fvmyBkRE4d9VdnOoxhTXtkEqpqYgX7RJ12FAQwNlxKq4suBJQMgQHMF2Kjeg==", - "dependencies": { - "chalk": "^4.1.0" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/compressor-raw": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.8.3.tgz", - "integrity": "sha512-bVDsqleBUxRdKMakWSlWC9ZjOcqDKE60BE+Gh3JSN6WJrycJ02P5wxjTVF4CStNP/G7X17U+nkENxSlMG77ySg==", - "dependencies": { - "@parcel/plugin": "2.8.3" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/core": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.8.3.tgz", - "integrity": "sha512-Euf/un4ZAiClnlUXqPB9phQlKbveU+2CotZv7m7i+qkgvFn5nAGnrV4h1OzQU42j9dpgOxWi7AttUDMrvkbhCQ==", - "dependencies": { - "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.8.3", - "@parcel/diagnostic": "2.8.3", - "@parcel/events": "2.8.3", - "@parcel/fs": "2.8.3", - "@parcel/graph": "2.8.3", - "@parcel/hash": "2.8.3", - "@parcel/logger": "2.8.3", - "@parcel/package-manager": "2.8.3", - "@parcel/plugin": "2.8.3", - "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.8.3", - "@parcel/utils": "2.8.3", - "@parcel/workers": "2.8.3", - "abortcontroller-polyfill": "^1.1.9", - "base-x": "^3.0.8", - "browserslist": "^4.6.6", - "clone": "^2.1.1", - "dotenv": "^7.0.0", - "dotenv-expand": "^5.1.0", - "json5": "^2.2.0", - "msgpackr": "^1.5.4", - "nullthrows": "^1.1.1", - "semver": "^5.7.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/core/node_modules/dotenv": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", - "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@parcel/core/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@parcel/diagnostic": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.8.3.tgz", - "integrity": "sha512-u7wSzuMhLGWZjVNYJZq/SOViS3uFG0xwIcqXw12w54Uozd6BH8JlhVtVyAsq9kqnn7YFkw6pXHqAo5Tzh4FqsQ==", - "dependencies": { - "@mischnic/json-sourcemap": "^0.1.0", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/events": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.8.3.tgz", - "integrity": "sha512-hoIS4tAxWp8FJk3628bsgKxEvR7bq2scCVYHSqZ4fTi/s0+VymEATrRCUqf+12e5H47uw1/ZjoqrGtBI02pz4w==", - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/fs": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.8.3.tgz", - "integrity": "sha512-y+i+oXbT7lP0e0pJZi/YSm1vg0LDsbycFuHZIL80pNwdEppUAtibfJZCp606B7HOjMAlNZOBo48e3hPG3d8jgQ==", - "dependencies": { - "@parcel/fs-search": "2.8.3", - "@parcel/types": "2.8.3", - "@parcel/utils": "2.8.3", - "@parcel/watcher": "^2.0.7", - "@parcel/workers": "2.8.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.8.3" - } - }, - "node_modules/@parcel/fs-search": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.8.3.tgz", - "integrity": "sha512-DJBT2N8knfN7Na6PP2mett3spQLTqxFrvl0gv+TJRp61T8Ljc4VuUTb0hqBj+belaASIp3Q+e8+SgaFQu7wLiQ==", - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/graph": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.8.3.tgz", - "integrity": "sha512-26GL8fYZPdsRhSXCZ0ZWliloK6DHlMJPWh6Z+3VVZ5mnDSbYg/rRKWmrkhnr99ZWmL9rJsv4G74ZwvDEXTMPBg==", - "dependencies": { - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/hash": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.8.3.tgz", - "integrity": "sha512-FVItqzjWmnyP4ZsVgX+G00+6U2IzOvqDtdwQIWisCcVoXJFCqZJDy6oa2qDDFz96xCCCynjRjPdQx2jYBCpfYw==", - "dependencies": { - "detect-libc": "^1.0.3", - "xxhash-wasm": "^0.4.2" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/logger": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.8.3.tgz", - "integrity": "sha512-Kpxd3O/Vs7nYJIzkdmB6Bvp3l/85ydIxaZaPfGSGTYOfaffSOTkhcW9l6WemsxUrlts4za6CaEWcc4DOvaMOPA==", - "dependencies": { - "@parcel/diagnostic": "2.8.3", - "@parcel/events": "2.8.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/markdown-ansi": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.8.3.tgz", - "integrity": "sha512-4v+pjyoh9f5zuU/gJlNvNFGEAb6J90sOBwpKJYJhdWXLZMNFCVzSigxrYO+vCsi8G4rl6/B2c0LcwIMjGPHmFQ==", - "dependencies": { - "chalk": "^4.1.0" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/namer-default": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.8.3.tgz", - "integrity": "sha512-tJ7JehZviS5QwnxbARd8Uh63rkikZdZs1QOyivUhEvhN+DddSAVEdQLHGPzkl3YRk0tjFhbqo+Jci7TpezuAMw==", - "dependencies": { - "@parcel/diagnostic": "2.8.3", - "@parcel/plugin": "2.8.3", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/node-resolver-core": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.8.3.tgz", - "integrity": "sha512-12YryWcA5Iw2WNoEVr/t2HDjYR1iEzbjEcxfh1vaVDdZ020PiGw67g5hyIE/tsnG7SRJ0xdRx1fQ2hDgED+0Ww==", - "dependencies": { - "@parcel/diagnostic": "2.8.3", - "@parcel/utils": "2.8.3", - "nullthrows": "^1.1.1", - "semver": "^5.7.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/node-resolver-core/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@parcel/optimizer-terser": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.8.3.tgz", - "integrity": "sha512-9EeQlN6zIeUWwzrzu6Q2pQSaYsYGah8MtiQ/hog9KEPlYTP60hBv/+utDyYEHSQhL7y5ym08tPX5GzBvwAD/dA==", - "dependencies": { - "@parcel/diagnostic": "2.8.3", - "@parcel/plugin": "2.8.3", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.3", - "nullthrows": "^1.1.1", - "terser": "^5.2.0" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/package-manager": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.8.3.tgz", - "integrity": "sha512-tIpY5pD2lH53p9hpi++GsODy6V3khSTX4pLEGuMpeSYbHthnOViobqIlFLsjni+QA1pfc8NNNIQwSNdGjYflVA==", - "dependencies": { - "@parcel/diagnostic": "2.8.3", - "@parcel/fs": "2.8.3", - "@parcel/logger": "2.8.3", - "@parcel/types": "2.8.3", - "@parcel/utils": "2.8.3", - "@parcel/workers": "2.8.3", - "semver": "^5.7.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.8.3" - } - }, - "node_modules/@parcel/package-manager/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@parcel/packager-js": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.8.3.tgz", - "integrity": "sha512-0pGKC3Ax5vFuxuZCRB+nBucRfFRz4ioie19BbDxYnvBxrd4M3FIu45njf6zbBYsI9eXqaDnL1b3DcZJfYqtIzw==", - "dependencies": { - "@parcel/diagnostic": "2.8.3", - "@parcel/hash": "2.8.3", - "@parcel/plugin": "2.8.3", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.3", - "globals": "^13.2.0", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/packager-js/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@parcel/packager-raw": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.8.3.tgz", - "integrity": "sha512-BA6enNQo1RCnco9MhkxGrjOk59O71IZ9DPKu3lCtqqYEVd823tXff2clDKHK25i6cChmeHu6oB1Rb73hlPqhUA==", - "dependencies": { - "@parcel/plugin": "2.8.3" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/plugin": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.8.3.tgz", - "integrity": "sha512-jZ6mnsS4D9X9GaNnvrixDQwlUQJCohDX2hGyM0U0bY2NWU8Km97SjtoCpWjq+XBCx/gpC4g58+fk9VQeZq2vlw==", - "dependencies": { - "@parcel/types": "2.8.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/reporter-dev-server": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.8.3.tgz", - "integrity": "sha512-Y8C8hzgzTd13IoWTj+COYXEyCkXfmVJs3//GDBsH22pbtSFMuzAZd+8J9qsCo0EWpiDow7V9f1LischvEh3FbQ==", - "dependencies": { - "@parcel/plugin": "2.8.3", - "@parcel/utils": "2.8.3" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/resolver-default": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.8.3.tgz", - "integrity": "sha512-k0B5M/PJ+3rFbNj4xZSBr6d6HVIe6DH/P3dClLcgBYSXAvElNDfXgtIimbjCyItFkW9/BfcgOVKEEIZOeySH/A==", - "dependencies": { - "@parcel/node-resolver-core": "2.8.3", - "@parcel/plugin": "2.8.3" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/runtime-js": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.8.3.tgz", - "integrity": "sha512-IRja0vNKwvMtPgIqkBQh0QtRn0XcxNC8HU1jrgWGRckzu10qJWO+5ULgtOeR4pv9krffmMPqywGXw6l/gvJKYQ==", - "dependencies": { - "@parcel/plugin": "2.8.3", - "@parcel/utils": "2.8.3", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/source-map": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", - "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": "^12.18.3 || >=14" - } - }, - "node_modules/@parcel/transformer-js": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.8.3.tgz", - "integrity": "sha512-9Qd6bib+sWRcpovvzvxwy/PdFrLUXGfmSW9XcVVG8pvgXsZPFaNjnNT8stzGQj1pQiougCoxMY4aTM5p1lGHEQ==", - "dependencies": { - "@parcel/diagnostic": "2.8.3", - "@parcel/plugin": "2.8.3", - "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.3", - "@parcel/workers": "2.8.3", - "@swc/helpers": "^0.4.12", - "browserslist": "^4.6.6", - "detect-libc": "^1.0.3", - "nullthrows": "^1.1.1", - "regenerator-runtime": "^0.13.7", - "semver": "^5.7.1" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.8.3" - } - }, - "node_modules/@parcel/transformer-js/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/@parcel/transformer-js/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@parcel/transformer-json": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.8.3.tgz", - "integrity": "sha512-B7LmVq5Q7bZO4ERb6NHtRuUKWGysEeaj9H4zelnyBv+wLgpo4f5FCxSE1/rTNmP9u1qHvQ3scGdK6EdSSokGPg==", - "dependencies": { - "@parcel/plugin": "2.8.3", - "json5": "^2.2.0" - }, - "engines": { - "node": ">= 12.0.0", - "parcel": "^2.8.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/types": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.8.3.tgz", - "integrity": "sha512-FECA1FB7+0UpITKU0D6TgGBpGxYpVSMNEENZbSJxFSajNy3wrko+zwBKQmFOLOiPcEtnGikxNs+jkFWbPlUAtw==", - "dependencies": { - "@parcel/cache": "2.8.3", - "@parcel/diagnostic": "2.8.3", - "@parcel/fs": "2.8.3", - "@parcel/package-manager": "2.8.3", - "@parcel/source-map": "^2.1.1", - "@parcel/workers": "2.8.3", - "utility-types": "^3.10.0" - } - }, - "node_modules/@parcel/utils": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.8.3.tgz", - "integrity": "sha512-IhVrmNiJ+LOKHcCivG5dnuLGjhPYxQ/IzbnF2DKNQXWBTsYlHkJZpmz7THoeLtLliGmSOZ3ZCsbR8/tJJKmxjA==", - "dependencies": { - "@parcel/codeframe": "2.8.3", - "@parcel/diagnostic": "2.8.3", - "@parcel/hash": "2.8.3", - "@parcel/logger": "2.8.3", - "@parcel/markdown-ansi": "2.8.3", - "@parcel/source-map": "^2.1.1", - "chalk": "^4.1.0" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", - "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", - "hasInstallScript": true, - "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.0", - "@parcel/watcher-darwin-arm64": "2.5.0", - "@parcel/watcher-darwin-x64": "2.5.0", - "@parcel/watcher-freebsd-x64": "2.5.0", - "@parcel/watcher-linux-arm-glibc": "2.5.0", - "@parcel/watcher-linux-arm-musl": "2.5.0", - "@parcel/watcher-linux-arm64-glibc": "2.5.0", - "@parcel/watcher-linux-arm64-musl": "2.5.0", - "@parcel/watcher-linux-x64-glibc": "2.5.0", - "@parcel/watcher-linux-x64-musl": "2.5.0", - "@parcel/watcher-win32-arm64": "2.5.0", - "@parcel/watcher-win32-ia32": "2.5.0", - "@parcel/watcher-win32-x64": "2.5.0" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", - "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", - "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", - "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", - "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", - "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", - "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", - "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", - "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", - "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", - "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/workers": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.8.3.tgz", - "integrity": "sha512-+AxBnKgjqVpUHBcHLWIHcjYgKIvHIpZjN33mG5LG9XXvrZiqdWvouEzqEXlVLq5VzzVbKIQQcmsvRy138YErkg==", - "dependencies": { - "@parcel/diagnostic": "2.8.3", - "@parcel/logger": "2.8.3", - "@parcel/types": "2.8.3", - "@parcel/utils": "2.8.3", - "chrome-trace-event": "^1.0.2", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.8.3" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", - "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", - "dependencies": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <5.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sigmacomputing/babel-plugin-lodash": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@sigmacomputing/babel-plugin-lodash/-/babel-plugin-lodash-3.3.5.tgz", - "integrity": "sha512-VFhaHjlNzWyBtBm3YdqOwP8GbQHK7sWzXKpSUBTLjl2Zz6/9PwCK4qXZXI5CHpDjmvbouHUDbjrZP2KU5h6VQg==", - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/types": "^7.0.0", - "glob": "^7.1.1", - "lodash": "^4.17.10", - "require-package-name": "^2.0.1" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@sindresorhus/slugify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", - "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", - "dependencies": { - "@sindresorhus/transliterate": "^0.1.1", - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sindresorhus/transliterate": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", - "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", - "dependencies": { - "escape-string-regexp": "^2.0.0", - "lodash.deburr": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" - }, - "node_modules/@swc/helpers": { - "version": "0.4.37", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.37.tgz", - "integrity": "sha512-O4U8DmGtYvuWDrqmkAqhmA+sV8D3eJzvKSUgg5L5eaCCPdywZBLc97UgJT/fQaCkQ5onJzJWNojgErJk1bThaw==", - "dependencies": { - "@swc/legacy-helpers": "npm:@swc/helpers@=0.4.14", - "tslib": "^2.4.0" - } - }, - "node_modules/@swc/legacy-helpers": { - "name": "@swc/helpers", - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", - "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/common-tags": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.4.tgz", - "integrity": "sha512-S+1hLDJPjWNDhcGxsxEbepzaxWqURP/o+3cP4aa2w7yBXgdcmKGQtZzP8JbyfOd0m+33nh+8+kvxYE2UJtBDkg==" - }, - "node_modules/@types/configstore": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/configstore/-/configstore-2.1.1.tgz", - "integrity": "sha512-YY+hm3afkDHeSM2rsFXxeZtu0garnusBWNG1+7MknmDWQHqcH2w21/xOU9arJUi8ch4qyFklidANLCu3ihhVwQ==" - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" - }, - "node_modules/@types/cors": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.16.tgz", - "integrity": "sha512-Trx5or1Nyg1Fq138PCuWqoApzvoSLWzZ25ORBiHMbbUT42g578lH1GT4TwYDbiUOLFuDsCkfLneT2105fsFWGg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-0.0.30.tgz", - "integrity": "sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ==" - }, - "node_modules/@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" - }, - "node_modules/@types/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-TiNg8R1kjDde5Pub9F9vCwZA/BNW9HeXP5b9j7Qucqncy/McfPZ6xze/EyBdXS5FhMIGN6Fx3vg75l5KHy3V1Q==" - }, - "node_modules/@types/glob": { - "version": "5.0.38", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.38.tgz", - "integrity": "sha512-rTtf75rwyP9G2qO5yRpYtdJ6aU1QqEhWbtW55qEgquEDa6bXW0s2TWZfDm02GuppjEozOWG/F2UnPq5hAQb+gw==", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.201", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.201.tgz", - "integrity": "sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==" - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" - }, - "node_modules/@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" - }, - "node_modules/@types/reach__router": { - "version": "1.3.15", - "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.15.tgz", - "integrity": "sha512-5WEHKGglRjq/Ae3F8UQxg+GYUIhTUEiyBT9GKPoOLU/vPTn8iZrRbdzxqvarOaGludIejJykHLMdOCdhgWqaxA==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react": { - "version": "18.3.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", - "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/rimraf": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.5.tgz", - "integrity": "sha512-YyP+VfeaqAyFmXoTh3HChxOQMyjByRMsHU7kc5KOJkSlXudhMhQIALbYV7rHh/l8d2lX3VUQzprrcAgWdRuU8g==", - "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==" - }, - "node_modules/@types/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-gVC1InwyVrO326wbBZw+AO3u2vRXz/iRWq9jYhpG4W8LXyIgDv3ZmcLQ5Q4Gs+gFMyqx+viFoFT+l3p61QFCmQ==" - }, - "node_modules/@types/yoga-layout": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", - "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "peer": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "peer": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", - "peer": true, - "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "peer": true, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vercel/webpack-asset-relocator-loader": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.3.tgz", - "integrity": "sha512-vizrI18v8Lcb1PmNNUBz7yxPxxXoOeuaVEjTG9MjvDrphjiSxFZrRJ5tIghk+qdLFRCXI5HBCshgobftbmrC5g==", - "dependencies": { - "resolve": "^1.10.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.6.tgz", - "integrity": "sha512-Zypm+LjYdWAzvuypZvDN0smUJrhOurcuBWhhMRBExqVLRvdjp3Z9mASxKyq19K+meZMshwjjy5S0lkm388zE4Q==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-loose": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.4.0.tgz", - "integrity": "sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/anser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/anser/-/anser-2.1.1.tgz", - "integrity": "sha512-nqLm4HxOTpeLOxcmB3QWmV5TcDFhW9y/fyQ+hivtDFcK4OQ+pQ5fzPnXHM1Mfcm0VkLtvVi1TCPr++Qy0Q/3EQ==" - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" - }, - "node_modules/application-config-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", - "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==" - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" - }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dependencies": { - "has-symbols": "^1.0.3" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/auto-bind": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", - "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/axios": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz", - "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/b4a": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" - }, - "node_modules/babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, - "node_modules/babel-eslint/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-jsx-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-jsx-utils/-/babel-jsx-utils-1.1.0.tgz", - "integrity": "sha512-Mh1j/rw4xM9T3YICkw22aBQ78FhsHdsmlb9NEk4uVAFBOg+Ez9ZgXXHugoBPCZui3XLomk/7/JBBH4daJqTkQQ==" - }, - "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-add-module-exports": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.4.tgz", - "integrity": "sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==" - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-remove-graphql-queries": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-5.14.0.tgz", - "integrity": "sha512-k5NlcywGAiMklF7LfBSIuPlNYDdHQYTSuDdNDB1shEzxxmvd9akk+bzPE4qf2w/yvMirCkGSJOQud7w33HH2HQ==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@babel/types": "^7.20.7", - "gatsby-core-utils": "^4.14.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "gatsby": "^5.0.0-next" - } - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", - "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "node_modules/babel-preset-fbjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", - "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", - "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-syntax-class-properties": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-block-scoped-functions": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-member-expression-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-property-literals": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-gatsby": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-3.14.0.tgz", - "integrity": "sha512-yE/1gmohqy+Y/v8RYWMyJ1WLrACSkblS8LRcByeNqqBPrDAaG5T/bU1Lhc75BW8j9iLDOkLilun3fGZRu5nacA==", - "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.20.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-classes": "^7.20.7", - "@babel/plugin-transform-runtime": "^7.19.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/runtime": "^7.20.13", - "babel-plugin-dynamic-import-node": "^2.3.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^4.14.0", - "gatsby-legacy-polyfills": "^3.14.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.6", - "core-js": "^3.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/bare-events": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", - "license": "Apache-2.0", - "optional": true - }, - "node_modules/bare-fs": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.2.tgz", - "integrity": "sha512-S5mmkMesiduMqnz51Bfh0Et9EX0aTCJxhsI4bvzFFLs8Z1AV8RDHadfY5CyLwdoLHgXbNBEN1gQcbEtGwuvixw==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", - "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", - "license": "Apache-2.0", - "optional": true, - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", - "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "streamx": "^2.21.0" - }, - "peerDependencies": { - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/base-x": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", - "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/better-opn": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz", - "integrity": "sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==", - "dependencies": { - "open": "^7.0.3" - }, - "engines": { - "node": ">8.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-manager": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", - "integrity": "sha512-XhUuc9eYwkzpK89iNewFwtvcDYMUsvtwzHeyEOPJna/WsVsXcrzsA1ft2M0QqPNunEzLhNCYPo05tEfG+YuNow==", - "dependencies": { - "async": "1.5.2", - "lodash.clonedeep": "4.5.0", - "lru-cache": "4.0.0" - } - }, - "node_modules/cache-manager/node_modules/lru-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", - "integrity": "sha512-WKhDkjlLwzE8jAQdQlsxLUQTPXLCKX/4cJk6s5AlRtJkDBk0IKH5O51bVDH61K9N4bhbbyvLM6EiOuE8ovApPA==", - "dependencies": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "node_modules/cache-manager/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001679", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001679.tgz", - "integrity": "sha512-j2YqID/YwpLnKzCmBOS4tlZdWprXm3ZmQLBH9ZBXFOhoxLA46fwyBvx6toCBWBmnuwUY/qB3kEU6gFx8qgCroA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/change-case-all": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", - "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", - "dependencies": { - "change-case": "^4.1.2", - "is-lower-case": "^2.0.2", - "is-upper-case": "^2.0.2", - "lower-case": "^2.0.2", - "lower-case-first": "^2.0.2", - "sponge-case": "^1.0.1", - "swap-case": "^2.0.2", - "title-case": "^3.0.3", - "upper-case": "^2.0.2", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/clipboardy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", - "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", - "dependencies": { - "execa": "^8.0.1", - "is-wsl": "^3.1.0", - "is64bit": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/clipboardy/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/clipboardy/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/clipboardy/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-hrtime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz", - "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-js": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", - "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", - "dependencies": { - "browserslist": "^4.24.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.2.tgz", - "integrity": "sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/create-gatsby": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-3.14.0.tgz", - "integrity": "sha512-HR90NlcTIAeo7OwcFfGubKa35+/Aj7lEfgcV4n4IIPCMy3A+gYwOEQcLIGtmPCVIl1C9AhT3/0XaWbnhAcbyGQ==", - "dependencies": { - "@babel/runtime": "^7.20.13" - }, - "bin": { - "create-gatsby": "cli.js" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", - "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-loader": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", - "integrity": "sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==", - "dependencies": { - "icss-utils": "^5.1.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.15", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.27.0 || ^5.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-2.0.0.tgz", - "integrity": "sha512-cG/uc94727tx5pBNtb1Sd7gvUPzwmcQi1lkpfqTpdkuNq75hJCw7bIVsCNijLm4dhDcr1atvuysl2rZqOG8Txw==", - "dependencies": { - "cssnano": "^5.0.0", - "jest-worker": "^26.3.0", - "p-limit": "^3.0.2", - "postcss": "^8.2.9", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - } - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/devcert": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.2.2.tgz", - "integrity": "sha512-UsLqvtJGPiGwsIZnJINUnFYaWgK7CroreGRndWHZkRD58tPFr3pVbbSyHR8lbh41+azR4jKvuNZ+eCoBZGA5kA==", - "dependencies": { - "@types/configstore": "^2.1.1", - "@types/debug": "^0.0.30", - "@types/get-port": "^3.2.0", - "@types/glob": "^5.0.34", - "@types/lodash": "^4.14.92", - "@types/mkdirp": "^0.5.2", - "@types/node": "^8.5.7", - "@types/rimraf": "^2.0.2", - "@types/tmp": "^0.0.33", - "application-config-path": "^0.1.0", - "command-exists": "^1.2.4", - "debug": "^3.1.0", - "eol": "^0.9.1", - "get-port": "^3.2.0", - "glob": "^7.1.2", - "is-valid-domain": "^0.1.6", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "password-prompt": "^1.0.4", - "rimraf": "^2.6.2", - "sudo-prompt": "^8.2.0", - "tmp": "^0.0.33", - "tslib": "^1.10.0" - } - }, - "node_modules/devcert/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" - }, - "node_modules/devcert/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/devcert/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/devcert/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.55", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.55.tgz", - "integrity": "sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.3.tgz", - "integrity": "sha512-IML/R4eG/pUS5w7OfcDE0jKrljWS9nwnEfsxWCIJF5eO6AHo6+Hlv+lQbdlAYsiJPHzUthLm1RUjnBzWOs45cw==", - "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.11.0" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/engine.io-client": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz", - "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/envinfo": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", - "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eol": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", - "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", - "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" - } - }, - "node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==" - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-react-app": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", - "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", - "dependencies": { - "confusing-browser-globals": "^1.0.10" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0", - "@typescript-eslint/parser": "^4.0.0", - "babel-eslint": "^10.0.0", - "eslint": "^7.5.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-jest": "^24.0.0", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-react": "^7.20.3", - "eslint-plugin-react-hooks": "^4.0.8", - "eslint-plugin-testing-library": "^3.9.0" - }, - "peerDependenciesMeta": { - "eslint-plugin-jest": { - "optional": true - }, - "eslint-plugin-testing-library": { - "optional": true - } - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", - "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", - "dependencies": { - "lodash": "^4.17.15", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", - "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-webpack-plugin": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.7.0.tgz", - "integrity": "sha512-bNaVVUvU4srexGhVcayn/F4pJAz19CWBkKoMx7aSQ4wtTbZQCnG5O9LHCE42mM+JSKOUp7n6vd5CIwzj7lOVGA==", - "dependencies": { - "@types/eslint": "^7.29.0", - "arrify": "^2.0.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esniff/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/event-source-polyfill": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.31.tgz", - "integrity": "sha512-4IJSItgS/41IxN5UVAVuAyczwZF7ZIEsM1XAoUzIHA6A+xzusEZUutdXz2Nr+MQPLxfTiCvqE79/C8HT8fKFvA==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-http-proxy": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/express-http-proxy/-/express-http-proxy-1.6.3.tgz", - "integrity": "sha512-/l77JHcOUrDUX8V67E287VEUQT0lbm71gdGVoodnlWBziarYKgMcpqT7xvh/HM8Jv52phw8Bd8tY+a7QjOr7Yg==", - "dependencies": { - "debug": "^3.0.1", - "es6-promise": "^4.1.1", - "raw-body": "^2.3.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/express-http-proxy/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" - }, - "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fbjs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", - "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", - "dependencies": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^1.0.35" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-exists-cached": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", - "integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==" - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gatsby": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-5.14.0.tgz", - "integrity": "sha512-VZZAN80FrcGLz0uOPK7Eww/tfGUQ26UuZOxiXFhcJgeO29lt8IPwSdNhAimyhbRDkvMNZu7Dz1+tO9PyvPZN4Q==", - "hasInstallScript": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/core": "^7.20.12", - "@babel/eslint-parser": "^7.19.1", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/parser": "^7.20.13", - "@babel/runtime": "^7.20.13", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7", - "@builder.io/partytown": "^0.7.5", - "@gatsbyjs/reach-router": "^2.0.1", - "@gatsbyjs/webpack-hot-middleware": "^2.25.3", - "@graphql-codegen/add": "^3.2.3", - "@graphql-codegen/core": "^2.6.8", - "@graphql-codegen/plugin-helpers": "^2.7.2", - "@graphql-codegen/typescript": "^2.8.8", - "@graphql-codegen/typescript-operations": "^2.5.13", - "@graphql-tools/code-file-loader": "^7.3.23", - "@graphql-tools/load": "^7.8.14", - "@jridgewell/trace-mapping": "^0.3.18", - "@nodelib/fs.walk": "^1.2.8", - "@parcel/cache": "2.8.3", - "@parcel/core": "2.8.3", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", - "@sigmacomputing/babel-plugin-lodash": "^3.3.5", - "@types/http-proxy": "^1.17.11", - "@typescript-eslint/eslint-plugin": "^5.60.1", - "@typescript-eslint/parser": "^5.60.1", - "@vercel/webpack-asset-relocator-loader": "1.7.3", - "acorn-loose": "^8.3.0", - "acorn-walk": "^8.2.0", - "address": "1.2.2", - "anser": "^2.1.1", - "autoprefixer": "^10.4.14", - "axios": "^1.6.4", - "babel-jsx-utils": "^1.1.0", - "babel-loader": "^8.3.0", - "babel-plugin-add-module-exports": "^1.0.4", - "babel-plugin-dynamic-import-node": "^2.3.3", - "babel-plugin-remove-graphql-queries": "^5.14.0", - "babel-preset-gatsby": "^3.14.0", - "better-opn": "^2.1.1", - "bluebird": "^3.7.2", - "body-parser": "1.20.3", - "browserslist": "^4.21.9", - "cache-manager": "^2.11.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "common-tags": "^1.8.2", - "compression": "^1.7.4", - "cookie": "^0.5.0", - "core-js": "^3.31.0", - "cors": "^2.8.5", - "css-loader": "^5.2.7", - "css-minimizer-webpack-plugin": "^2.0.0", - "css.escape": "^1.5.1", - "date-fns": "^2.30.0", - "debug": "^4.3.4", - "deepmerge": "^4.3.1", - "detect-port": "^1.5.1", - "devcert": "^1.2.2", - "dotenv": "^8.6.0", - "enhanced-resolve": "^5.15.0", - "error-stack-parser": "^2.1.4", - "eslint": "^7.32.0", - "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.10.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-webpack-plugin": "^2.7.0", - "event-source-polyfill": "1.0.31", - "execa": "^5.1.1", - "express": "^4.18.2", - "express-http-proxy": "^1.6.3", - "fastest-levenshtein": "^1.0.16", - "fastq": "^1.15.0", - "file-loader": "^6.2.0", - "find-cache-dir": "^3.3.2", - "fs-exists-cached": "1.0.0", - "fs-extra": "^11.2.0", - "gatsby-cli": "^5.14.0", - "gatsby-core-utils": "^4.14.0", - "gatsby-graphiql-explorer": "^3.14.0", - "gatsby-legacy-polyfills": "^3.14.0", - "gatsby-link": "^5.14.0", - "gatsby-page-utils": "^3.14.0", - "gatsby-parcel-config": "1.14.0", - "gatsby-plugin-page-creator": "^5.14.0", - "gatsby-plugin-typescript": "^5.14.0", - "gatsby-plugin-utils": "^4.14.0", - "gatsby-react-router-scroll": "^6.14.0", - "gatsby-script": "^2.14.0", - "gatsby-worker": "^2.14.0", - "glob": "^7.2.3", - "globby": "^11.1.0", - "got": "^11.8.6", - "graphql": "^16.7.1", - "graphql-compose": "^9.0.10", - "graphql-http": "^1.19.0", - "graphql-tag": "^2.12.6", - "hasha": "^5.2.2", - "invariant": "^2.2.4", - "is-relative": "^1.0.0", - "is-relative-url": "^3.0.0", - "joi": "^17.9.2", - "json-loader": "^0.5.7", - "latest-version": "^7.0.0", - "linkfs": "^2.1.0", - "lmdb": "2.5.3", - "lodash": "^4.17.21", - "meant": "^1.0.3", - "memoizee": "^0.4.15", - "micromatch": "^4.0.5", - "mime": "^3.0.0", - "mini-css-extract-plugin": "1.6.2", - "mitt": "^1.2.0", - "moment": "^2.29.4", - "multer": "^1.4.5-lts.1", - "node-fetch": "^2.6.11", - "node-html-parser": "^5.4.2", - "normalize-path": "^3.0.0", - "null-loader": "^4.0.1", - "opentracing": "^0.14.7", - "p-defer": "^3.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "0.1.10", - "physical-cpu-count": "^2.0.0", - "platform": "^1.3.6", - "postcss": "^8.4.24", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^5.3.0", - "prompts": "^2.4.2", - "prop-types": "^15.8.1", - "query-string": "^6.14.1", - "raw-loader": "^4.0.2", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.14.0", - "react-server-dom-webpack": "0.0.0-experimental-c8b778b7f-20220825", - "redux": "4.2.1", - "redux-thunk": "^2.4.2", - "resolve-from": "^5.0.0", - "semver": "^7.5.3", - "shallow-compare": "^1.2.2", - "signal-exit": "^3.0.7", - "slugify": "^1.6.6", - "socket.io": "4.7.1", - "socket.io-client": "4.7.1", - "stack-trace": "^0.0.10", - "string-similarity": "^1.2.2", - "strip-ansi": "^6.0.1", - "style-loader": "^2.0.0", - "style-to-object": "^0.4.1", - "terser-webpack-plugin": "^5.3.9", - "tmp": "^0.2.1", - "true-case-path": "^2.2.1", - "type-of": "^2.0.1", - "url-loader": "^4.1.1", - "uuid": "^8.3.2", - "webpack": "^5.88.1", - "webpack-dev-middleware": "^5.3.4", - "webpack-merge": "^5.9.0", - "webpack-stats-plugin": "^1.1.3", - "webpack-virtual-modules": "^0.5.0", - "xstate": "^4.38.0", - "yaml-loader": "^0.8.0" - }, - "bin": { - "gatsby": "cli.js" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "gatsby-sharp": "^1.14.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^0.0.0", - "react-dom": "^18.0.0 || ^0.0.0" - } - }, - "node_modules/gatsby-cli": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-5.14.0.tgz", - "integrity": "sha512-NvsWsuZdpNRStmDsNZaYveifFrFqFNy4rnFCLAWWghyxUks8qhGwy6wrz2kcUK+Y2sRJJn1eIjgwzi1AyFn5fQ==", - "hasInstallScript": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/core": "^7.20.12", - "@babel/generator": "^7.20.14", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/preset-typescript": "^7.18.6", - "@babel/runtime": "^7.20.13", - "@babel/template": "^7.20.7", - "@babel/types": "^7.20.7", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/common-tags": "^1.8.1", - "better-opn": "^2.1.1", - "boxen": "^5.1.2", - "chalk": "^4.1.2", - "clipboardy": "^4.0.0", - "common-tags": "^1.8.2", - "convert-hrtime": "^3.0.0", - "create-gatsby": "^3.14.0", - "envinfo": "^7.10.0", - "execa": "^5.1.1", - "fs-exists-cached": "^1.0.0", - "fs-extra": "^11.2.0", - "gatsby-core-utils": "^4.14.0", - "hosted-git-info": "^3.0.8", - "is-valid-path": "^0.1.1", - "joi": "^17.9.2", - "lodash": "^4.17.21", - "node-fetch": "^2.6.11", - "opentracing": "^0.14.7", - "pretty-error": "^2.1.2", - "progress": "^2.0.3", - "prompts": "^2.4.2", - "redux": "4.2.1", - "resolve-cwd": "^3.0.0", - "semver": "^7.5.3", - "signal-exit": "^3.0.7", - "stack-trace": "^0.0.10", - "strip-ansi": "^6.0.1", - "yargs": "^15.4.1", - "yoga-layout-prebuilt": "^1.10.0", - "yurnalist": "^2.1.0" - }, - "bin": { - "gatsby": "cli.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/gatsby-core-utils": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.14.0.tgz", - "integrity": "sha512-h0v20gB213PmhKjioCJ93SrUb7Hihnqxd6X6Iur4u1eiWTUDsGeV9g1bkquiuDl2qovUnjj7mOoHdWiu/Ax/9Q==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "fastq": "^1.15.0", - "file-type": "^16.5.4", - "fs-extra": "^11.2.0", - "got": "^11.8.6", - "hash-wasm": "^4.11.0", - "import-from": "^4.0.0", - "lmdb": "2.5.3", - "lock": "^1.1.0", - "node-object-hash": "^2.3.10", - "proper-lockfile": "^4.1.2", - "resolve-from": "^5.0.0", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/gatsby-graphiql-explorer": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-3.14.0.tgz", - "integrity": "sha512-t+PpMu+6GkCdyGDw8S4pd1FBZVwFdpn6Jb2BLZtNJ2z1hOSxHKGoZO1sW2mwZ8/H1VuiSPb2XtXwHYo5CcYgAg==", - "engines": { - "node": ">=14.15.0" - } - }, - "node_modules/gatsby-legacy-polyfills": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-3.14.0.tgz", - "integrity": "sha512-CsNguwA88GgLgENx6WEuT8DDl+dus8FdedU1h43Xh9XtD8g/EjJGZk/N458+aZ32ulhuacJEexe3d9ASuEQxMQ==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "core-js-compat": "3.31.0" - } - }, - "node_modules/gatsby-legacy-polyfills/node_modules/core-js-compat": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.0.tgz", - "integrity": "sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==", - "dependencies": { - "browserslist": "^4.21.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/gatsby-link": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-5.14.0.tgz", - "integrity": "sha512-BJYTdZ23pObzan1BG/XlqsnlQgiQS54Ztm1CuYj9OPtORT4i9kBrNSaRrQZdsLHM9s2Ox+oBullzZSi6CU/CbQ==", - "dependencies": { - "@types/reach__router": "^1.3.10", - "gatsby-page-utils": "^3.14.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@gatsbyjs/reach-router": "^2.0.0", - "react": "^18.0.0 || ^0.0.0", - "react-dom": "^18.0.0 || ^0.0.0" - } - }, - "node_modules/gatsby-page-utils": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-3.14.0.tgz", - "integrity": "sha512-/Od94fkzkkSzngqglctGMTssQPvHt/Cnjl9hFPM2Clh5UIBSsHjOgOiqM0EPg7VRLXBZypq3DspG2lNaeqCNIA==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "bluebird": "^3.7.2", - "chokidar": "^3.5.3", - "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^4.14.0", - "glob": "^7.2.3", - "lodash": "^4.17.21", - "micromatch": "^4.0.5" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/gatsby-parcel-config": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-1.14.0.tgz", - "integrity": "sha512-S7RQOo1O5wzHxHB1AHh4xKbg8Jj76VPbSMfVsVVapL2Ht7p1zxrZ7p2pOX3pr5WJnfacREOQwLhlk8rk8TDbGw==", - "dependencies": { - "@gatsbyjs/parcel-namer-relative-to-cwd": "2.14.0", - "@parcel/bundler-default": "2.8.3", - "@parcel/compressor-raw": "2.8.3", - "@parcel/namer-default": "2.8.3", - "@parcel/optimizer-terser": "2.8.3", - "@parcel/packager-js": "2.8.3", - "@parcel/packager-raw": "2.8.3", - "@parcel/reporter-dev-server": "2.8.3", - "@parcel/resolver-default": "2.8.3", - "@parcel/runtime-js": "2.8.3", - "@parcel/transformer-js": "2.8.3", - "@parcel/transformer-json": "2.8.3" - }, - "engines": { - "parcel": "2.x" - }, - "peerDependencies": { - "@parcel/core": "^2.0.0" - } - }, - "node_modules/gatsby-plugin-page-creator": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-5.14.0.tgz", - "integrity": "sha512-H7Yk6Z+kRgOKlco6gFyj9tay+V9eeufZce+NSH6tqHq7pQ56+/X46y4XdeBsrr6wnRs0dBy+Z9rmJTD5w78c2w==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@babel/traverse": "^7.20.13", - "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.3", - "fs-exists-cached": "^1.0.0", - "fs-extra": "^11.2.0", - "gatsby-core-utils": "^4.14.0", - "gatsby-page-utils": "^3.14.0", - "gatsby-plugin-utils": "^4.14.0", - "globby": "^11.1.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "gatsby": "^5.0.0-next" - } - }, - "node_modules/gatsby-plugin-postcss": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-postcss/-/gatsby-plugin-postcss-6.12.0.tgz", - "integrity": "sha512-uzlmFvPcsYKbyyMMsBR0W1iWGOiJPJVNiVwut7h3ah0mL0ooMO5ANO+E7Sv0crEXrSJ/4QymFRX4kHDBfVn87g==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "postcss-loader": "^7.3.3" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "gatsby": "^5.0.0-next", - "postcss": "^8.0.5" - } - }, - "node_modules/gatsby-plugin-postcss/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/gatsby-plugin-postcss/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/gatsby-plugin-postcss/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/gatsby-plugin-postcss/node_modules/postcss-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", - "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", - "dependencies": { - "cosmiconfig": "^8.2.0", - "jiti": "^1.18.2", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/gatsby-plugin-typescript": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-5.14.0.tgz", - "integrity": "sha512-rvdNtBKGYV0HpvZ78up39rLu5057pVTil1Z7O65MVIQyB99FGfYy96dygWOQhf9wBh0tt9oFYvaU/VMY9Gwyrg==", - "dependencies": { - "@babel/core": "^7.20.12", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.20.7", - "@babel/preset-typescript": "^7.18.6", - "@babel/runtime": "^7.20.13", - "babel-plugin-remove-graphql-queries": "^5.14.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "gatsby": "^5.0.0-next" - } - }, - "node_modules/gatsby-plugin-utils": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-4.14.0.tgz", - "integrity": "sha512-w7EZ0C7JA9sG3JiBS2ffGsrZplAbtNk0Junb3UeUFj66CY0MU8UV0rZIzBkz+EMbQvPkxvVJNQu4/tA9ohCvfA==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "fastq": "^1.16.0", - "fs-extra": "^11.2.0", - "gatsby-core-utils": "^4.14.0", - "gatsby-sharp": "^1.14.0", - "graphql-compose": "^9.0.10", - "import-from": "^4.0.0", - "joi": "^17.11.0", - "mime": "^3.0.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "gatsby": "^5.0.0-next", - "graphql": "^16.0.0" - } - }, - "node_modules/gatsby-react-router-scroll": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-6.14.0.tgz", - "integrity": "sha512-Tx+TsS2JE4BGbImgadKEfESpZeCUkQKbL5OTybNHk9T/E9zDDtECD6IRVCiC1w5LucxvrNwRww9oyeAHCZbbeg==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@gatsbyjs/reach-router": "^2.0.0", - "react": "^18.0.0 || ^0.0.0", - "react-dom": "^18.0.0 || ^0.0.0" - } - }, - "node_modules/gatsby-script": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-2.14.0.tgz", - "integrity": "sha512-A3IV2cXUrXrzW39kTYJMjbvUlHRjoaZVwH0zsfPINldXw9PenIlr5uBOMWx3IWUlKIghN1rBG+sRIyNczPtxyw==", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@gatsbyjs/reach-router": "^2.0.0", - "react": "^18.0.0 || ^0.0.0", - "react-dom": "^18.0.0 || ^0.0.0" - } - }, - "node_modules/gatsby-sharp": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-1.14.0.tgz", - "integrity": "sha512-2lZg8NEg5M8jzkMYZouf0I5e1TVpwjtEiKg48R4dGOhYqDKGfENVJWRnvYtw12zNfgBgQ/gUryG7Zj7qMLVANA==", - "dependencies": { - "sharp": "^0.32.6" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/gatsby-worker": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-2.14.0.tgz", - "integrity": "sha512-a5DjKgC9mjhfLhyQO6ZX9tuKoDY8KkJrfBg3g0GHyh8hCzlxYvnOc+URGBG/PmF+7yNBiNjA1dENKKmD0fBWjw==", - "dependencies": { - "@babel/core": "^7.20.12", - "@babel/runtime": "^7.20.13", - "fs-extra": "^11.2.0", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils/node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/gatsby/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/gatsby/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" - }, - "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, - "node_modules/graphql-compose": { - "version": "9.0.11", - "resolved": "https://registry.npmjs.org/graphql-compose/-/graphql-compose-9.0.11.tgz", - "integrity": "sha512-p3+8p2lo7wel24IQwGIhwVGOnCJ3hfBno+x8CE7G4ZLaC4u5G2g6h1Mm8O5iJPTD0C+Q/WxxDqSL2qs8VOf5mg==", - "dependencies": { - "graphql-type-json": "0.3.2" - } - }, - "node_modules/graphql-http": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/graphql-http/-/graphql-http-1.22.0.tgz", - "integrity": "sha512-9RBUlGJWBFqz9LwfpmAbjJL/8j/HCNkZwPBU5+Bfmwez+1Ay43DocMNQYpIWsWqH0Ftv6PTNAh2aRnnMCBJgLw==", - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "graphql": ">=0.11 <=16" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/graphql-type-json": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", - "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==", - "peerDependencies": { - "graphql": ">=0.8.0" - } - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-wasm": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/hash-wasm/-/hash-wasm-4.11.0.tgz", - "integrity": "sha512-HVusNXlVqHe0fzIzdQOGolnFN6mX/fqcrSAOcTBXdvzrXVHwTz11vXeKRmkR5gTuwVpvHZEIyKoePDvuAR+XwQ==" - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/immutable": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", - "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", - "engines": { - "node": ">=12.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-invalid-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", - "dependencies": { - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", - "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-relative-url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-3.0.0.tgz", - "integrity": "sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA==", - "dependencies": { - "is-absolute-url": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", - "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/is-valid-domain": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.6.tgz", - "integrity": "sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==", - "dependencies": { - "punycode": "^2.1.1" - } - }, - "node_modules/is-valid-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", - "dependencies": { - "is-invalid-path": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is64bit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", - "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", - "dependencies": { - "system-architecture": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - } - }, - "node_modules/javascript-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", - "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==" - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/linkfs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/linkfs/-/linkfs-2.1.0.tgz", - "integrity": "sha512-kmsGcmpvjStZ0ATjuHycBujtNnXiZR28BTivEu0gAMDTT7GEyodcK6zSRtu6xsrdorrPZEIN380x7BD7xEYkew==" - }, - "node_modules/lmdb": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.3.tgz", - "integrity": "sha512-iBA0cb13CobBSoGJLfZgnrykLlfJipDAnvtf+YwIqqzBEsTeQYsXrHaSBkaHd5wCWeabwrNvhjZoFMUrlo+eLw==", - "hasInstallScript": true, - "dependencies": { - "msgpackr": "^1.5.4", - "node-addon-api": "^4.3.0", - "node-gyp-build-optional-packages": "5.0.3", - "ordered-binary": "^1.2.4", - "weak-lru-cache": "^1.2.2" - }, - "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "2.5.3", - "@lmdb/lmdb-darwin-x64": "2.5.3", - "@lmdb/lmdb-linux-arm": "2.5.3", - "@lmdb/lmdb-linux-arm64": "2.5.3", - "@lmdb/lmdb-linux-x64": "2.5.3", - "@lmdb/lmdb-win32-x64": "2.5.3" - } - }, - "node_modules/lmdb/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lock": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/lock/-/lock-1.1.0.tgz", - "integrity": "sha512-NZQIJJL5Rb9lMJ0Yl1JoVr9GSdo4HTPsUEWsSFzB8dE8DSoiLCVavWZPi7Rnlv/o73u6I24S/XYc/NmG4l8EKA==" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.deburr": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==" - }, - "node_modules/lodash.every": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz", - "integrity": "sha512-isF82d+65/sNvQ3aaQAW7LLHnnTxSN/2fm4rhYyuufLzA4VtHz6y6S5vFwe6PQVr2xdqUOyxBbTNKDpnmeu50w==" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==" - }, - "node_modules/lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" - }, - "node_modules/lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==" - }, - "node_modules/lodash.maxby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz", - "integrity": "sha512-QfTqQTwzmKxLy7VZlbx2M/ipWv8DCQ2F5BI/MRxLharOQ5V78yMSuB+JE+EuUM22txYfj09R2Q7hUlEYj7KdNg==" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lower-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", - "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", - "dependencies": { - "es5-ext": "~0.10.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/meant": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.3.tgz", - "integrity": "sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", - "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.0.0" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mitt": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", - "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==" - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/msgpackr": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", - "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", - "optionalDependencies": { - "msgpackr-extract": "^3.0.2" - } - }, - "node_modules/msgpackr-extract": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", - "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build-optional-packages": "5.2.2" - }, - "bin": { - "download-msgpackr-prebuilds": "bin/download-prebuilds.js" - }, - "optionalDependencies": { - "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" - } - }, - "node_modules/msgpackr-extract/node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", - "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.1" - }, - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" - } - }, - "node_modules/multer": { - "version": "1.4.5-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", - "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^1.0.0", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-abi": { - "version": "3.71.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", - "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build-optional-packages": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", - "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==", - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" - } - }, - "node_modules/node-html-parser": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", - "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", - "dependencies": { - "css-select": "^4.2.1", - "he": "1.2.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node_modules/node-object-hash": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", - "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/null-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", - "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/nullthrows": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", - "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ordered-binary": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", - "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==" - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", - "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", - "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json/node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/package-json/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/package-json/node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/package-json/node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/package-json/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/package-json/node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/package-json/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json/node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json/node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/package-json/node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/password-prompt": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz", - "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==", - "dependencies": { - "ansi-escapes": "^4.3.2", - "cross-spawn": "^7.0.3" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/physical-cpu-count": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", - "integrity": "sha512-rxJOljMuWtYlvREBmd6TZYanfcPhNUKtGDZBjBBS8WG1dpN2iwPsRJZgQqN/OtJuiQckdRFOfzogqJClTrsi7g==" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/platform": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", - "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "peerDependencies": { - "postcss": "^8.1.4" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-loader": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-5.3.0.tgz", - "integrity": "sha512-/+Z1RAmssdiSLgIZwnJHwBMnlABPgF7giYzTN2NOfr9D21IJZ4mQC1R2miwp80zno9M4zMD/umGI8cR+2EL5zw==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.4", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prebuild-install/node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/prebuild-install/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prebuild-install/node_modules/tar-fs": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", - "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", - "license": "MIT", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/prebuild-install/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", - "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.2.tgz", - "integrity": "sha512-9Rw8r199klMnlGZ8VAsV/I8WrIF6IyJ90JQUdboupx1cdkgYqwnrYjH+I/nY/7cA1X5zia4mDJqH36npP7sxGQ==", - "license": "MIT", - "dependencies": { - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/react-router-dom": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.5.2.tgz", - "integrity": "sha512-yk1XW8Fj7gK7flpYBXF3yzd2NbX6P7Kxjvs2b5nu1M04rb5pg/Zc4fGdBNTeT4eDYL2bvzWNyKaIMJX/RKHTTg==", - "license": "MIT", - "dependencies": { - "react-router": "7.5.2" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/react-router/node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/react-server-dom-webpack": { - "version": "0.0.0-experimental-c8b778b7f-20220825", - "resolved": "https://registry.npmjs.org/react-server-dom-webpack/-/react-server-dom-webpack-0.0.0-experimental-c8b778b7f-20220825.tgz", - "integrity": "sha512-JyCjbp6ZvkH/T0EuVPdceYlC8u5WqWDSJr2KxDvc81H2eJ+7zYUN++IcEycnR2F+HmER8QVgxfotnIx352zi+w==", - "dependencies": { - "acorn": "^6.2.1", - "loose-envify": "^1.1.0", - "neo-async": "^2.6.1" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "react": "0.0.0-experimental-c8b778b7f-20220825", - "webpack": "^5.59.0" - } - }, - "node_modules/react-server-dom-webpack/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", - "peerDependencies": { - "redux": "^4" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", - "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.11.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" - }, - "node_modules/regjsparser": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", - "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/relay-runtime": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", - "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "fbjs": "^3.0.0", - "invariant": "^2.2.4" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==" - }, - "node_modules/renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - } - }, - "node_modules/renderkid/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/renderkid/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "node_modules/require-package-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", - "integrity": "sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallow-compare": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/shallow-compare/-/shallow-compare-1.2.2.tgz", - "integrity": "sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg==" - }, - "node_modules/sharp": { - "version": "0.32.6", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", - "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", - "hasInstallScript": true, - "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.2", - "node-addon-api": "^6.1.0", - "prebuild-install": "^7.1.1", - "semver": "^7.5.4", - "simple-get": "^4.0.1", - "tar-fs": "^3.0.4", - "tunnel-agent": "^0.6.0" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/sharp/node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sharp/node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/signedsource": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", - "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==" - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slugify": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", - "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/socket.io": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.1.tgz", - "integrity": "sha512-W+utHys2w//dhFjy7iQQu9sGd3eokCjGbl2r59tyLqNiJJBdIebn3GAKEXBr3osqHTObJi2die/25bCx2zsaaw==", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.5.0", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", - "dependencies": { - "ws": "~8.11.0" - } - }, - "node_modules/socket.io-client": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.1.tgz", - "integrity": "sha512-Qk3Xj8ekbnzKu3faejo4wk2MzXA029XppiXtTF/PkbTg+fcwaTw1PlDrTrrrU4mKoYC4dvlApOnSeyLCKwek2w==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.5.1", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/sponge-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", - "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "engines": { - "node": "*" - } - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/streamx": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", - "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", - "license": "MIT", - "dependencies": { - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" - }, - "node_modules/string-similarity": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-1.2.2.tgz", - "integrity": "sha512-IoHUjcw3Srl8nsPlW04U3qwWPk3oG2ffLM0tN853d/E/JlIvcmZmDY2Kz5HzKp4lEi2T7QD7Zuvjq/1rDw+XcQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dependencies": { - "lodash.every": "^4.6.0", - "lodash.flattendeep": "^4.4.0", - "lodash.foreach": "^4.5.0", - "lodash.map": "^4.6.0", - "lodash.maxby": "^4.6.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/style-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", - "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sudo-prompt": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", - "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/swap-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", - "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/system-architecture": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", - "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/tailwindcss": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", - "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.19.1", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/tailwindcss/node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/tailwindcss/node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "engines": { - "node": ">= 14" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-fs": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.9.tgz", - "integrity": "sha512-XF4w9Xp+ZQgifKakjZYmFdkLoSWd34VGKcsTCwlNWM7QG3ZbaxnTsaBwnjFZqHRf/rROxaR8rXnbtwdvaDI+lA==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/terser": { - "version": "5.31.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", - "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/text-decoder": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", - "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "node_modules/title-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", - "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "engines": { - "node": ">=14.14" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/true-case-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", - "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "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" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", - "integrity": "sha512-39wxbwHdQ2sTiBB8wAzKfQ9GN+om8w+sjNWzr+vZJR5AMD5J+J7Yc8AtXnU9r/r2c8XiDZ/smxutDmZehX/qpQ==" - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/ua-parser-js": { - "version": "1.0.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", - "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "engines": { - "node": "*" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unixify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", - "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", - "dependencies": { - "normalize-path": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unixify/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" - }, - "node_modules/utility-types": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", - "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==" - }, - "node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/weak-lru-cache": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", - "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-stats-plugin": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/webpack-stats-plugin/-/webpack-stats-plugin-1.1.3.tgz", - "integrity": "sha512-yUKYyy+e0iF/w31QdfioRKY+h3jDBRpthexBOWGKda99iu2l/wxYsI/XqdlP5IU58/0KB9CsJZgWNAl+/MPkRw==" - }, - "node_modules/webpack-virtual-modules": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", - "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==" - }, - "node_modules/webpack/node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", - "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xstate": { - "version": "4.38.3", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.38.3.tgz", - "integrity": "sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/xstate" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/xxhash-wasm": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz", - "integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==" - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yaml-loader": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.8.0.tgz", - "integrity": "sha512-LjeKnTzVBKWiQBeE2L9ssl6WprqaUIxCSNs5tle8PaDydgu3wVFXTbMfsvF2MSErpy9TDVa092n4q6adYwJaWg==", - "dependencies": { - "javascript-stringify": "^2.0.1", - "loader-utils": "^2.0.0", - "yaml": "^2.0.0" - }, - "engines": { - "node": ">= 12.13" - } - }, - "node_modules/yaml-loader/node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yoga-layout-prebuilt": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.10.0.tgz", - "integrity": "sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==", - "dependencies": { - "@types/yoga-layout": "1.9.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yurnalist": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/yurnalist/-/yurnalist-2.1.0.tgz", - "integrity": "sha512-PgrBqosQLM3gN2xBFIMDLACRTV9c365VqityKKpSTWpwR+U4LAFR3rSVyEoscWlu3EzX9+Y0I86GXUKxpHFl6w==", - "dependencies": { - "chalk": "^2.4.2", - "inquirer": "^7.0.0", - "is-ci": "^2.0.0", - "read": "^1.0.7", - "strip-ansi": "^5.2.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/yurnalist/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/yurnalist/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/yurnalist/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/yurnalist/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/yurnalist/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/yurnalist/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/yurnalist/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/yurnalist/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yurnalist/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - } - } -} diff --git a/site/package.json b/site/package.json deleted file mode 100644 index dd8c20420..000000000 --- a/site/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "sistent", - "version": "1.0.0", - "private": true, - "description": "Sistent Design System by Layer5", - "author": "Layer5 Authors", - "keywords": [ - "gatsby" - ], - "scripts": { - "develop": "gatsby develop", - "start": "gatsby develop", - "build": "gatsby build", - "serve": "gatsby serve", - "clean": "gatsby clean" - }, - "dependencies": { - "autoprefixer": "^10.4.16", - "gatsby": "^5.14.0", - "gatsby-plugin-postcss": "^6.12.0", - "postcss": "^8.4.31", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^7.5.2", - "tailwindcss": "^3.3.5" - }, - "overrides": { - "react-server-dom-webpack@0.0.0-experimental-c8b778b7f-20220825": { - "react": "^18.0.0" - } - } -} diff --git a/site/postcss.config.js b/site/postcss.config.js deleted file mode 100644 index 5cbc2c7d8..000000000 --- a/site/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {} - } -}; diff --git a/site/script.sh b/site/script.sh deleted file mode 100644 index bb11952fa..000000000 --- a/site/script.sh +++ /dev/null @@ -1,6 +0,0 @@ -#! /usr/bin/env bash - -if [ -f public-dir.zip ]; then - rm -rf public-dir.zip -fi -zip -r public-dir.zip ./site/public \ No newline at end of file diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftBlack.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftBlack.otf deleted file mode 100644 index 27ed8f785..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftBlack.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftBlackItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftBlackItalic.otf deleted file mode 100644 index 18c212bf1..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftBlackItalic.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftBold.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftBold.otf deleted file mode 100644 index d6b53365c..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftBold.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftBoldItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftBoldItalic.otf deleted file mode 100644 index 900536357..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftBoldItalic.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBold.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBold.otf deleted file mode 100644 index c0e3bc936..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBold.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBoldItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBoldItalic.otf deleted file mode 100644 index cd805cadd..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftExtraBoldItalic.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftHeavy.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftHeavy.otf deleted file mode 100644 index 28c2d4d53..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftHeavy.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftHeavyItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftHeavyItalic.otf deleted file mode 100644 index 58e83f9c4..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftHeavyItalic.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftLight.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftLight.otf deleted file mode 100644 index 1c34d7dcf..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftLight.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftLightItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftLightItalic.otf deleted file mode 100644 index 382bef170..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftLightItalic.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftMedium.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftMedium.otf deleted file mode 100644 index a0dd71907..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftMedium.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftMediumItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftMediumItalic.otf deleted file mode 100644 index 91676a97f..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftMediumItalic.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftRegular.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftRegular.otf deleted file mode 100644 index 249b8a27b..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftRegular.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftRegularItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftRegularItalic.otf deleted file mode 100644 index e3898f217..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftRegularItalic.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBold.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBold.otf deleted file mode 100644 index 7463179c1..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBold.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBoldItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBoldItalic.otf deleted file mode 100644 index 7a2a99d4e..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftSemiBoldItalic.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftThin.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftThin.otf deleted file mode 100644 index cd81b0c63..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftThin.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftThinItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftThinItalic.otf deleted file mode 100644 index cb2e650be..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftThinItalic.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLight.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLight.otf deleted file mode 100644 index 86a0b545e..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLight.otf and /dev/null differ diff --git a/site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLightItalic.otf b/site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLightItalic.otf deleted file mode 100644 index bd9637b2c..000000000 Binary files a/site/src/assets/fonts/qanelas-soft/QanelasSoftUltraLightItalic.otf and /dev/null differ diff --git a/site/src/assets/images/Chevron-light-up.svg b/site/src/assets/images/Chevron-light-up.svg deleted file mode 100644 index 027ff2ebd..000000000 --- a/site/src/assets/images/Chevron-light-up.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<g id="Chevron"> -<path id="Shape" d="M19.2803 15.5303C18.9874 15.8232 18.5126 15.8232 18.2197 15.5303L12 9.31066L5.78033 15.5303C5.48744 15.8232 5.01256 15.8232 4.71967 15.5303C4.42678 15.2374 4.42678 14.7626 4.71967 14.4697L11.4697 7.71967C11.7626 7.42678 12.2374 7.42678 12.5303 7.71967L19.2803 14.4697C19.5732 14.7626 19.5732 15.2374 19.2803 15.5303Z" fill="#15272F"/> -</g> -</svg> diff --git a/site/src/assets/images/Chevron-light.svg b/site/src/assets/images/Chevron-light.svg deleted file mode 100644 index d71ac770c..000000000 --- a/site/src/assets/images/Chevron-light.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<g id="Chevron"> -<path id="Shape" d="M4.71967 8.46967C5.01256 8.17678 5.48744 8.17678 5.78033 8.46967L12 14.6893L18.2197 8.46967C18.5126 8.17678 18.9874 8.17678 19.2803 8.46967C19.5732 8.76256 19.5732 9.23744 19.2803 9.53033L12.5303 16.2803C12.2374 16.5732 11.7626 16.5732 11.4697 16.2803L4.71967 9.53033C4.42678 9.23744 4.42678 8.76256 4.71967 8.46967Z" fill="#15272F"/> -</g> -</svg> diff --git a/site/src/assets/images/ChevronDark.svg b/site/src/assets/images/ChevronDark.svg deleted file mode 100644 index 8bb54b75f..000000000 --- a/site/src/assets/images/ChevronDark.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<g id="Chevron"> -<path id="Shape" d="M4.71967 8.46967C5.01256 8.17678 5.48744 8.17678 5.78033 8.46967L12 14.6893L18.2197 8.46967C18.5126 8.17678 18.9874 8.17678 19.2803 8.46967C19.5732 8.76256 19.5732 9.23744 19.2803 9.53033L12.5303 16.2803C12.2374 16.5732 11.7626 16.5732 11.4697 16.2803L4.71967 9.53033C4.42678 9.23744 4.42678 8.76256 4.71967 8.46967Z" fill="#E7EFF3"/> -</g> -</svg> diff --git a/site/src/assets/images/Search.svg b/site/src/assets/images/Search.svg deleted file mode 100644 index 7d2188c63..000000000 --- a/site/src/assets/images/Search.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<g id="Search"> -<path id="Shape" d="M10.125 2.25C5.77576 2.25 2.25 5.77576 2.25 10.125C2.25 14.4742 5.77576 18 10.125 18C12.0296 18 13.7762 17.3239 15.138 16.1986L20.4698 21.5303C20.7627 21.8232 21.2375 21.8232 21.5304 21.5303C21.8233 21.2374 21.8233 20.7626 21.5304 20.4697L16.1987 15.1379C17.3239 13.7761 18 12.0295 18 10.125C18 5.77576 14.4742 2.25 10.125 2.25ZM3.75 10.125C3.75 6.60418 6.60418 3.75 10.125 3.75C13.6458 3.75 16.5 6.60418 16.5 10.125C16.5 13.6458 13.6458 16.5 10.125 16.5C6.60418 16.5 3.75 13.6458 3.75 10.125Z" fill="#15272F"/> -</g> -</svg> diff --git a/site/src/assets/images/SearchDark.svg b/site/src/assets/images/SearchDark.svg deleted file mode 100644 index b1ff10c87..000000000 --- a/site/src/assets/images/SearchDark.svg +++ /dev/null @@ -1,5 +0,0 @@ -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<g id="Search"> -<path id="Shape" d="M10.125 2.25C5.77576 2.25 2.25 5.77576 2.25 10.125C2.25 14.4742 5.77576 18 10.125 18C12.0296 18 13.7762 17.3239 15.138 16.1986L20.4698 21.5303C20.7627 21.8232 21.2375 21.8232 21.5304 21.5303C21.8233 21.2374 21.8233 20.7626 21.5304 20.4697L16.1987 15.1379C17.3239 13.7761 18 12.0295 18 10.125C18 5.77576 14.4742 2.25 10.125 2.25ZM3.75 10.125C3.75 6.60418 6.60418 3.75 10.125 3.75C13.6458 3.75 16.5 6.60418 16.5 10.125C16.5 13.6458 13.6458 16.5 10.125 16.5C6.60418 16.5 3.75 13.6458 3.75 10.125Z" fill="#E7EFF3"/> -</g> -</svg> diff --git a/site/src/assets/images/Weather.svg b/site/src/assets/images/Weather.svg deleted file mode 100644 index 842300f13..000000000 --- a/site/src/assets/images/Weather.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M16.9999 7C18.1045 7 18.9999 6.10457 18.9999 5C18.9999 3.89543 18.1045 3 16.9999 3C15.8953 3 14.9999 3.89543 14.9999 5C14.9999 6.10457 15.8953 7 16.9999 7ZM26.1429 16.9998C26.1429 22.0493 22.0495 26.1426 17.0001 26.1426C11.9506 26.1426 7.85722 22.0493 7.85722 16.9998C7.85722 11.9503 11.9506 7.85693 17.0001 7.85693C22.0495 7.85693 26.1429 11.9503 26.1429 16.9998ZM18.9999 28.9998C18.9999 30.1044 18.1045 30.9998 16.9999 30.9998C15.8953 30.9998 14.9999 30.1044 14.9999 28.9998C14.9999 27.8953 15.8953 26.9998 16.9999 26.9998C18.1045 26.9998 18.9999 27.8953 18.9999 28.9998ZM27.5713 25.5716C27.5713 26.6762 26.6759 27.5716 25.5713 27.5716C24.4668 27.5716 23.5713 26.6762 23.5713 25.5716C23.5713 24.467 24.4668 23.5716 25.5713 23.5716C26.6759 23.5716 27.5713 24.467 27.5713 25.5716ZM8.42851 27.5716C9.53308 27.5716 10.4285 26.6762 10.4285 25.5716C10.4285 24.467 9.53308 23.5716 8.42851 23.5716C7.32394 23.5716 6.42851 24.467 6.42851 25.5716C6.42851 26.6762 7.32394 27.5716 8.42851 27.5716ZM10.4285 8.42879C10.4285 9.53336 9.53308 10.4288 8.42851 10.4288C7.32394 10.4288 6.42851 9.53336 6.42851 8.42879C6.42851 7.32422 7.32394 6.42879 8.42851 6.42879C9.53308 6.42879 10.4285 7.32422 10.4285 8.42879ZM25.5713 10.4288C26.6759 10.4288 27.5713 9.53336 27.5713 8.42879C27.5713 7.32422 26.6759 6.42879 25.5713 6.42879C24.4668 6.42879 23.5713 7.32422 23.5713 8.42879C23.5713 9.53336 24.4668 10.4288 25.5713 10.4288ZM31.0001 16.9999C31.0001 18.1045 30.1047 18.9999 29.0001 18.9999C27.8956 18.9999 27.0001 18.1045 27.0001 16.9999C27.0001 15.8953 27.8956 14.9999 29.0001 14.9999C30.1047 14.9999 31.0001 15.8953 31.0001 16.9999ZM5 18.9999C6.10457 18.9999 7 18.1045 7 16.9999C7 15.8953 6.10457 14.9999 5 14.9999C3.89543 14.9999 3 15.8953 3 16.9999C3 18.1045 3.89543 18.9999 5 18.9999Z" fill="black"/> -</svg> diff --git a/site/src/assets/images/WeatherDark.svg b/site/src/assets/images/WeatherDark.svg deleted file mode 100644 index d1eb4d51c..000000000 --- a/site/src/assets/images/WeatherDark.svg +++ /dev/null @@ -1,16 +0,0 @@ -<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"> -<g filter="url(#filter0_i_20039_10695)"> -<rect y="0.255859" width="24" height="24" rx="12" fill="white" fill-opacity="0.01"/> -</g> -<defs> -<filter id="filter0_i_20039_10695" x="0" y="0.255859" width="24" height="24" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> -<feFlood flood-opacity="0" result="BackgroundImageFix"/> -<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> -<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> -<feOffset dx="7.92" dy="-6"/> -<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/> -<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0.701961 0 0 0 0 0.623529 0 0 0 1 0"/> -<feBlend mode="normal" in2="shape" result="effect1_innerShadow_20039_10695"/> -</filter> -</defs> -</svg> diff --git a/site/src/components/Dropdown/index.js b/site/src/components/Dropdown/index.js deleted file mode 100644 index 27d93eadd..000000000 --- a/site/src/components/Dropdown/index.js +++ /dev/null @@ -1,43 +0,0 @@ -import { useState } from 'react'; -import Sidebar from '../Sidebar'; -import React from "react"; - -const Dropdown = () => { - const [drop1, setDrop1] = useState(false); - const [drop2, setDrop2] = useState(false); - const [drop3, setDrop3] = useState(false); - const [drop4, setDrop4] = useState(false); - const [drop5, setDrop5] = useState(false); - - const toggleChevron1 = () => { - setDrop1((prevDrop) => !prevDrop); - }; - const toggleChevron2 = () => { - setDrop2((prevDrop) => !prevDrop); - }; - const toggleChevron3 = () => { - setDrop3((prevDrop) => !prevDrop); - }; - const toggleChevron4 = () => { - setDrop4((prevDrop) => !prevDrop); - }; - const toggleChevron5 = () => { - setDrop5((prevDrop) => !prevDrop); - }; - return ( - <Sidebar - drop1={drop1} - drop2={drop2} - drop3={drop3} - drop4={drop4} - drop5={drop5} - toggleChevron1={toggleChevron1} - toggleChevron2={toggleChevron2} - toggleChevron3={toggleChevron3} - toggleChevron4={toggleChevron4} - toggleChevron5={toggleChevron5} - /> - ); -}; - -export default Dropdown; diff --git a/site/src/components/Footer/index.js b/site/src/components/Footer/index.js deleted file mode 100644 index 7330220e8..000000000 --- a/site/src/components/Footer/index.js +++ /dev/null @@ -1,86 +0,0 @@ -import React from "react"; - -const Footer = () => { - return ( - <div className="ml-[17.5rem] pt-[5rem]"> - <hr className="border-gray-200 border-solid" /> - <div className="w-[1160px] h-[400px] pl-10 pr-20 justify-between items-start inline-flex"> - <div className="h-[236px] pt-10 justify-between items-start flex gap-32"> - <div className="justify-start items-start gap-8 flex"> - <div className="w-12 h-12 relative rounded-lg border border-gray-500" /> - <div className="grow shrink basis-0 w-[380px] h-auto justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - Sistent is a flexible system of guidelines, components, and tools that highlight - best practices of user interface design. Supported by open-source code, Sisten - Design System demistifies collaboration between designers and developers making the - workflow seamless and enabling teams to create beautiful solutions. - </div> - </div> - </div> - <div className="h-[156px] justify-start items-start gap-16 flex"> - <div className="grow shrink basis-0 flex-col justify-start items-start gap-1 inline-flex"> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - GitHub - </div> - </div> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - Twitter - </div> - </div> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - YouTube - </div> - </div> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - LinkedIn - </div> - </div> - </div> - <div className="w-[100px] flex-col justify-start items-start gap-1 inline-flex"> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - Contact Us - </div> - </div> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - Privacy - </div> - </div> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - Terms of use - </div> - </div> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - Accessibility - </div> - </div> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - layer5.io - </div> - </div> - </div> - <div className="w-[200px] flex-col justify-start items-start gap-1 inline-flex"> - <div className="self-stretch justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-base font-normal font-['Open Sans'] leading-7 tracking-tight"> - Any questions? Ask on{' '} - <a href="https://discuss.layer5.io">https://discuss.layer5.io</a> or open an issue - on GitHub. - </div> - </div> - </div> - </div> - </div> - </div> - </div> - ); -}; - -export default Footer; diff --git a/site/src/components/Navigation/index.js b/site/src/components/Navigation/index.js deleted file mode 100644 index 32542099b..000000000 --- a/site/src/components/Navigation/index.js +++ /dev/null @@ -1,60 +0,0 @@ -import React, { useContext } from "react"; -import Search from '../../assets/images/Search.svg'; -import SearchDark from '../../assets/images/SearchDark.svg'; -import Weather from '../../assets/images/Weather.svg'; -import WeatherDark from '../../assets/images/WeatherDark.svg'; -import ThemeContext from '../Theme'; - -const Navbar = () => { - const theme = useContext(ThemeContext); - - return ( - <> - <div className=" w-[1440px] h-[100px] px-10 py-6 bg-background-default justify-between items-center inline-flex"> - <div className="h-12 justify-center items-center gap-4 flex"> - <div className="w-12 h-12 relative rounded-lg border border-border-strong" /> - <div className="grow shrink basis-0"> - <span className="text-text-default text-2xl font-bold font-qanelas leading-loose"> - Sistent{' '} - </span> - <span className="text-text-default text-2xl font-medium font-qanelas-medium leading-loose"> - Design System - </span> - </div> - </div> - <div className="justify-start items-center gap-8 flex"> - <div className="justify-start items-start gap-8 flex"> - <div className="w-[148px] p-2 rounded-lg border border-text-brand justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-center text-text-brand text-base font-normal font-openSans leading-7"> - Guidelines - </div> - </div> - <div className="w-[148px] px-4 py-2 rounded-lg border border-text-brand justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-center text-text-brand text-base font-normal font-openSans leading-7"> - Core Elements - </div> - </div> - <div className="w-[148px] p-2 rounded-lg border border-text-brand justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-center text-text-brand text-base font-normal font-openSans leading-7"> - Resources - </div> - </div> - </div> - <div className="justify-end items-center gap-8 flex"> - <div className="w-6 h-6 relative"> - <img src={theme.dark ? SearchDark : Search} /> - </div> - <div className="w-6 h-6 justify-center items-center flex"> - <div className="w-6 h-6 relative flex-col justify-start items-start flex"> - <img src={theme.dark ? WeatherDark : Weather} onClick={theme.toggleDark} /> - </div> - </div> - </div> - </div> - </div> - <hr className="border-border-default border-solid" /> - </> - ); -}; - -export default Navbar; diff --git a/site/src/components/Sidebar/index.js b/site/src/components/Sidebar/index.js deleted file mode 100644 index f60fe7745..000000000 --- a/site/src/components/Sidebar/index.js +++ /dev/null @@ -1,299 +0,0 @@ -import React, { useState } from 'react'; -import { Link } from 'react-router-dom'; -import ChevronLightUp from '../../assets/images/Chevron-light-up.svg'; -import Chevron from '../../assets/images/Chevron-light.svg'; - -const Sidebar = () => { - const [drop1, setDrop1] = useState(false); - const [drop2, setDrop2] = useState(false); - const [drop3, setDrop3] = useState(false); - const [drop4, setDrop4] = useState(false); - const [drop5, setDrop5] = useState(false); - - const toggleChevron1 = () => { - setDrop1((prevDrop) => !prevDrop); - }; - const toggleChevron2 = () => { - setDrop2((prevDrop) => !prevDrop); - }; - const toggleChevron3 = () => { - setDrop3((prevDrop) => !prevDrop); - }; - const toggleChevron4 = () => { - setDrop4((prevDrop) => !prevDrop); - }; - const toggleChevron5 = () => { - setDrop5((prevDrop) => !prevDrop); - }; - return ( - <div className="pt-8 pr-4"> - <div className="w-[280px] h-[800px] pr-1 pt-2 border-r border-border-default justify-start items-start gap-1 inline-flex"> - <div className="flex-col justify-start items-start gap-1 inline-flex"> - <div className="w-[264px] rounded-lg justify-center items-center gap-1 inline-flex"> - {drop1 ? ( - <div className="w-[264px] flex-col justify-start items-start inline-flex"> - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 bg-background-default justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - About Sistent - </div> - <div className="w-6 h-6 relative"> - <img src={drop1 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron1} /> - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Introduction - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Principles - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Contribution - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Support - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Case Studies - </div> - </div> - </div> - ) : ( - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 bg-background-default justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - About Sistent - </div> - <div className="w-6 h-6 relative"> - <img src={drop1 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron1} /> - </div> - </div> - )} - </div> - <div className="w-[264px] bg-background-default rounded-lg justify-center items-center gap-1 inline-flex"> - {drop2 ? ( - <div className="w-[264px] flex-col justify-start items-start inline-flex"> - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 justify-center items-center gap-36 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - Identity - </div> - <div className="w-6 h-6 relative"> - <img src={drop2 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron2} /> - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <Link - to="/identity/color" - className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight" - > - Color - </Link> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <Link - to="/identity/typography" - className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight" - > - Typography - </Link> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <Link - to="/identity/spacing" - className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight" - > - Spacing - </Link> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <Link - to="/identity/layouts" - className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight" - > - Page Layouts - </Link> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <Link - to="/identity/elevation" - className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight" - > - Elevation - </Link> - </div> - </div> - ) : ( - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - Identity - </div> - <div className="w-6 h-6 relative"> - <img src={drop2 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron2} /> - </div> - </div> - )} - </div> - <div className="w-[264px] rounded-lg justify-center items-center gap-1 inline-flex"> - {drop3 ? ( - <div className="w-[264px] flex-col justify-start items-start inline-flex"> - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 bg-background-default justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - Components - </div> - <div className="w-6 h-6 relative"> - <img src={drop3 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron3} /> - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - </div> - ) : ( - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 bg-background-default justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - Components - </div> - <div className="w-6 h-6 relative"> - <img src={drop3 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron3} /> - </div> - </div> - )} - </div> - <div className="w-[264px] rounded-lg justify-center items-center gap-1 inline-flex"> - {drop4 ? ( - <div className="w-[264px] flex-col justify-start items-start inline-flex"> - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 bg-background-default justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - Patterns & Templates - </div> - <div className="w-6 h-6 relative"> - <img src={drop4 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron4} /> - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - </div> - ) : ( - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 bg-background-default justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - Patterns & Templates - </div> - <div className="w-6 h-6 relative"> - <img src={drop4 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron4} /> - </div> - </div> - )} - </div> - <div className="w-[264px] rounded-lg justify-center items-center gap-1 inline-flex"> - {drop5 ? ( - <div className="w-[264px] flex-col justify-start items-start inline-flex"> - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 bg-background-default justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - Visualization & Illustration - </div> - <div className="w-6 h-6 relative"> - <img src={drop5 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron5} /> - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - <div className="hover:bg-border-default hover:rounded-lg self-stretch pl-10 py-2 justify-center items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-text-secondary text-base font-normal font-openSans leading-7 tracking-tight"> - Option 1 - </div> - </div> - </div> - ) : ( - <div className="hover:bg-border-default hover:rounded-lg grow shrink basis-0 h-14 pl-6 pr-4 py-2 bg-background-default justify-center items-center gap-1 flex"> - <div className="grow shrink basis-0 text-text-default text-base font-normal font-openSans leading-7 tracking-tight"> - Visualization & Illustration - </div> - <div className="w-6 h-6 relative"> - <img src={drop5 ? ChevronLightUp : Chevron} alt="/" onClick={toggleChevron5} /> - </div> - </div> - )} - </div> - </div> - <div className="opacity-0 w-2 h-[800px] relative"> - <div className="w-1 h-[800px] left-[2px] top-0 absolute bg-border-strong rounded-lg" /> - <div className="w-2 h-[396px] left-0 top-0 absolute bg-border-default rounded-lg"> - Hello - </div> - </div> - </div> - </div> - ); -}; - -export default Sidebar; diff --git a/site/src/components/Theme/index.js b/site/src/components/Theme/index.js deleted file mode 100644 index 3f42ce6d7..000000000 --- a/site/src/components/Theme/index.js +++ /dev/null @@ -1,43 +0,0 @@ -import React, { useEffect, useState } from 'react'; - -const defaultState = { - dark: false, - toggleDark: () => {} -}; - -const ThemeContext = React.createContext(defaultState); - -// const supportsDarkMode = () => -// window.matchMedia("(prefers-color-scheme: dark)").matches === true; - -function ThemeProvider({ children }) { - const [dark, setDark] = useState(false); - - const toggleDark = () => { - const newDark = !dark; - localStorage.setItem('dark', JSON.stringify(newDark)); - setDark(newDark); - }; - - useEffect(() => { - // Getting dark mode value from localStorage! - const isDark = JSON.parse(localStorage.getItem('dark')); - if (isDark) { - setDark(isDark); - } - }, []); - - return ( - <ThemeContext.Provider - value={{ - dark, - toggleDark - }} - > - {children} - </ThemeContext.Provider> - ); -} - -export default ThemeContext; -export { ThemeProvider }; diff --git a/site/src/pages/404.js b/site/src/pages/404.js deleted file mode 100644 index 39129dd66..000000000 --- a/site/src/pages/404.js +++ /dev/null @@ -1,45 +0,0 @@ -import React from 'react'; -import { Link } from 'gatsby'; - -const pageStyles = { - color: '#232129', - padding: '96px', - fontFamily: '-apple-system, Roboto, sans-serif, serif' -}; -const headingStyles = { - marginTop: 0, - marginBottom: 64, - maxWidth: 320 -}; - -const paragraphStyles = { - marginBottom: 48 -}; -const codeStyles = { - color: '#8A6534', - padding: 4, - backgroundColor: '#FFF4DB', - fontSize: '1.25rem', - borderRadius: 4 -}; - -const NotFoundPage = () => { - return ( - <main style={pageStyles}> - <h1 style={headingStyles}>Page not found</h1> - <p style={paragraphStyles}>Sorry ๐, we couldnโt find what you were looking for.</p> - <p> - Any questions? Ask on{' '} - <a href="https://discuss.layer5.io" className="rounded border-2 border-gray-500"> - Layer5 Discussion Forum - </a>{' '} - or open an issue on <a href="https://github.com/layer5io/sistent">GitHub</a>. - </p> - <Link to="/">Go home</Link>. - </main> - ); -}; - -export default NotFoundPage; - -export const Head = () => <title>What a mesh!</title>; diff --git a/site/src/pages/components/index.js b/site/src/pages/components/index.js deleted file mode 100644 index 4583f17a6..000000000 --- a/site/src/pages/components/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from "react"; -const Components = () => { - return <div className="text-center text-bold">Components</div>; -}; - -export default Components; diff --git a/site/src/pages/home/index.js b/site/src/pages/home/index.js deleted file mode 100644 index 26a4841eb..000000000 --- a/site/src/pages/home/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import React from "react"; - -const Home = () => { - return <div className="text-center text-bold">Home</div>; -}; - -export default Home; diff --git a/site/src/pages/identity/Content.js b/site/src/pages/identity/Content.js deleted file mode 100644 index 832db2815..000000000 --- a/site/src/pages/identity/Content.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -const Content = (props) => { - return ( - <div className="w-[844px] pt-8 text-gray-700 text-sm font-normal font-openSans leading-loose"> - {props.description} - </div> - ); -}; - -export default Content; diff --git a/site/src/pages/identity/Heading.js b/site/src/pages/identity/Heading.js deleted file mode 100644 index b2cf93dec..000000000 --- a/site/src/pages/identity/Heading.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -const Heading = (props) => { - return ( - <div className="self-stretch text-gray-950 text-[52px] font-bold font-qanelas leading-[64px]"> - {props.title} - </div> - ); -}; - -export default Heading; diff --git a/site/src/pages/identity/Navigation.js b/site/src/pages/identity/Navigation.js deleted file mode 100644 index 78a45de3f..000000000 --- a/site/src/pages/identity/Navigation.js +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import { Link } from 'react-router-dom'; - -const Navigation = (props) => { - return ( - <div className="w-[1120px] h-14 relative mt-[32px]"> - <div className="w-[1160px] h-0.5 left-[-50px] top-[54px] absolute bg-gray-200" /> - <div className="left-0 top-0 absolute justify-start items-start inline-flex"> - <div className="w-[140px] h-14 px-2 pt-4 pb-3 rounded-lg justify-center items-center gap-1 flex"> - <Link - to={`/identity/${props.type}/overview`} - className="grow shrink basis-0 text-center text-emerald-700 text-base font-semibold font-openSans leading-7" - > - Overview - </Link> - </div> - <div className="w-[140px] h-14 px-2 pt-4 pb-3 rounded-lg justify-center items-center gap-1 flex"> - <Link - to={`/identity/${props.type}/guidance`} - className="grow shrink basis-0 text-center text-emerald-700 text-base font-normal font-openSans leading-7" - > - Guidance - </Link> - </div> - <div className="w-[140px] h-14 px-2 pt-4 pb-3 rounded-lg justify-center items-center gap-1 flex"> - <Link - to={`/identity/${props.type}/code`} - className="grow shrink basis-0 text-center text-emerald-700 text-base font-normal font-openSans leading-7" - > - Code - </Link> - </div> - </div> - <div className="w-[92px] h-1 left-[24px] top-[52px] absolute bg-emerald-700 rounded-tl rounded-tr" /> - </div> - ); -}; - -export default Navigation; diff --git a/site/src/pages/identity/Next.js b/site/src/pages/identity/Next.js deleted file mode 100644 index b128b20aa..000000000 --- a/site/src/pages/identity/Next.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; -import { Link } from 'react-router-dom'; -import nextIcon from '../../assets/images/Chevron-light.svg'; - -const Next = ({ content, parent, child, subchild }) => { - return ( - <Link to={`/${parent}/${child}/${subchild}`}> - <div className="w-[394px] h-[108px] px-6 py-4 bg-gray-200 rounded-2xl flex-col justify-start items-end gap-4 inline-flex"> - <div className="justify-start items-center gap-4 inline-flex"> - <div className="w-[214px] text-right text-gray-950 text-base font-normal font-openSans leading-7"> - Up Next - </div> - <div className="w-6 h-6 relative top-left -rotate-90"> - <img src={nextIcon} alt="next" /> - </div> - </div> - <div className="self-stretch pr-2 justify-start items-start gap-1 inline-flex"> - <div className="grow shrink basis-0 text-right text-gray-950 text-2xl font-medium font-qanelas leading-loose"> - {content} - </div> - </div> - </div> - </Link> - ); -}; - -export default Next; diff --git a/site/src/pages/identity/Previous.js b/site/src/pages/identity/Previous.js deleted file mode 100644 index 5e0984fca..000000000 --- a/site/src/pages/identity/Previous.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; -import { Link } from 'react-router-dom'; -import PrevIcon from '../../assets/images/Chevron-light.svg'; - -const Previous = ({ content, parent, child, subchild }) => { - return ( - <Link to={`/${parent}/${child}/${subchild}`}> - <div className="w-[394px] h-[108px] px-6 py-4 bg-gray-200 rounded-2xl flex-col justify-start items-start gap-4 inline-flex"> - <div className="justify-start items-center gap-4 inline-flex"> - <div className="w-6 h-6 relative top-left rotate-90"> - <img src={PrevIcon} alt="prev" /> - </div> - <div className="w-[214px] text-gray-950 text-base font-normal font-openSans leading-7"> - Previous - </div> - </div> - <div className="self-stretch pr-2 justify-start items-start gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-2xl font-medium font-qanelas leading-loose"> - {content} - </div> - </div> - </div> - </Link> - ); -}; - -export default Previous; diff --git a/site/src/pages/identity/Sidebar.js b/site/src/pages/identity/Sidebar.js deleted file mode 100644 index 38922c3a9..000000000 --- a/site/src/pages/identity/Sidebar.js +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react'; -const Sidebar = (props) => { - return ( - <div className="float-right w-[11.25rem] h-[3.75rem] px-4 py-6 bg-slate-200 bg-opacity-10 rounded-lg backdrop-blur-lg flex-col justify-start items-start gap-4 inline-flex"> - <div className="text-center text-gray-950 text-xs font-bold font-qanelas leading-normal"> - On this Page - </div> - <div className="self-stretch h-[9.5rem] flex-col justify-start items-start gap-2 flex"> - {props.items && - props.items.map((item) => { - return ( - <div key={item.title}> - <div className="self-stretch justify-start items-center gap-1 inline-flex"> - <div className="grow shrink basis-0 text-gray-950 text-sm font-normal font-openSans leading-normal"> - {item.title} - </div> - </div> - </div> - ); - })} - </div> - </div> - ); -}; - -export default Sidebar; diff --git a/site/src/pages/identity/SubContent.js b/site/src/pages/identity/SubContent.js deleted file mode 100644 index 466387147..000000000 --- a/site/src/pages/identity/SubContent.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -const SubContent = (props) => { - return ( - <> - <div - className={`w-[53.75rem] text-gray-700 text-base font-${ - props.font ? props.font : 'normal' - } font-openSans leading-7 tracking-tight`} - > - {props.SubContent} - </div> - {props.children} - </> - ); -}; - -export default SubContent; diff --git a/site/src/pages/identity/SubHeading.js b/site/src/pages/identity/SubHeading.js deleted file mode 100644 index a34ab2a46..000000000 --- a/site/src/pages/identity/SubHeading.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -const SubHeading = (props) => { - return ( - <div className="w-[53.75rem] text-gray-950 text-[2rem] font-medium font-qanelas-medium leading-[3rem]"> - {props.SubHeading} - </div> - ); -}; - -export default SubHeading; diff --git a/site/src/pages/identity/SubText.js b/site/src/pages/identity/SubText.js deleted file mode 100644 index 90d8f5c53..000000000 --- a/site/src/pages/identity/SubText.js +++ /dev/null @@ -1,19 +0,0 @@ -import SubContent from './SubContent'; -import SubHeading from './SubHeading'; -import React from 'react'; - -const SubText = (props) => { - return ( - <div - className={`w-[53.75rem] h-${ - props.height ? props.height : 11.25 - } pb-6 border-b-2 border-gray-200 flex-col justify-start items-start gap-6 inline-flex`} - > - {props.SubHeading && <SubHeading SubHeading={props.SubHeading} />} - {props.SubContent && <SubContent SubContent={props.SubContent} />} - {props.children} - </div> - ); -}; - -export default SubText; diff --git a/site/src/pages/identity/Text.js b/site/src/pages/identity/Text.js deleted file mode 100644 index aaadf692f..000000000 --- a/site/src/pages/identity/Text.js +++ /dev/null @@ -1,14 +0,0 @@ -import Content from './Content'; -import Heading from './Heading'; -import React from 'react'; - -const Header = (props) => { - return ( - <div className="pt-8 w-[1120px] flex-col justify-start items-start inline-flex"> - <Heading title={props.title} /> - <Content description={props.description} /> - </div> - ); -}; - -export default Header; diff --git a/site/src/pages/identity/colors/code.js b/site/src/pages/identity/colors/code.js deleted file mode 100644 index 96f611408..000000000 --- a/site/src/pages/identity/colors/code.js +++ /dev/null @@ -1,39 +0,0 @@ -import Next from '../Next'; -import Previous from '../Previous'; -import Sidebar from '../Sidebar'; -import SubContent from '../SubContent'; -import React from "react"; - -const items = [ - { - title: 'Introduction' - } -]; - -const Code = () => { - return ( - <> - <Sidebar items={items} /> - <div className="py-[2.5rem]"> - <SubContent SubContent="Having a color palette is one thing, and organizing it into usable content for cross-functional teams is another. Suffice to say that without proper structure, a good tonal palette can still be unproductive if the target audience have no clue what to do with it. We have organized color into a consumable form to ensure efficient and accurate application in order to achieve desired results." /> - </div> - <div className="pt-[6.25rem] gap-4 flex"> - <Previous - content="Color System: Guidelines" - parent="identity" - child="color" - subchild="guidance" - /> - <div className="h-[24px] w-[16px]" /> - <Next - content="Typography System: Overview" - parent="identity" - child="typography" - subchild="overview" - /> - </div> - </> - ); -}; - -export default Code; diff --git a/site/src/pages/identity/colors/guidance.js b/site/src/pages/identity/colors/guidance.js deleted file mode 100644 index 9011d527e..000000000 --- a/site/src/pages/identity/colors/guidance.js +++ /dev/null @@ -1,61 +0,0 @@ -import Next from '../Next'; -import Previous from '../Previous'; -import Sidebar from '../Sidebar'; -import SubContent from '../SubContent'; -import SubText from '../SubText'; -import React from "react"; - -const items = [ - { - title: 'Basic Colors' - }, - { - title: 'Tonal Palettes' - }, - { - title: 'Token Specification' - }, - { - title: 'Color Roles' - }, - { - title: 'Background Colors' - }, - { - title: 'Text Colors' - }, - { - title: 'Border Colors' - } -]; - -const Guidance = () => { - return ( - <> - <Sidebar items={items} /> - <div className="py-[2.5rem]"> - <SubContent SubContent="Having a color palette is one thing, and organizing it into usable content for cross-functional teams is another. Suffice to say that without proper structure, a good tonal palette can still be unproductive if the target audience have no clue what to do with it. We have organized color into a consumable form to ensure efficient and accurate application in order to achieve desired results." /> - </div> - <SubText - SubHeading="Tonal Palettes" - SubContent="To attain the desired level of variation across themes, we will have to utilize more than just the hues on a brandโs color palette. It therefore becomes necessary to employ the use of tonal pallets. Tonal palettes are variations of a given hue comprising of the hueโs tints and shades. Armed with this array of harmonious colors, it becomes easier to combine them to actualize different UI elements or states, website pages and various products across any desired number of themes." - height="72.5" - > - <SubContent SubContent="These hues are organized into different levels of brightness and arranged in ranges of 10-90 (total of nine) for neutrals and 10-70 (total of seven) for brand colors, as well as all other hues in our color system. This structure will enable cohesive combinations across all implemented designs. With a base hue of โcode-40โ, tints and shades are derived to complete the spectrum range.. These color selections are further supported by alert colors that complement the base Keppel Green. Blue, Green, Yellow, and Red hues were chosen for this." /> - <div className="py-[1.5rem] h-[46rem]"></div> - </SubText> - <div className="pt-[6.25rem] gap-4 flex"> - <Previous - content="Color System: Overview" - parent="identity" - child="color" - subchild="overview" - /> - <div className="h-[24px] w-[16px]" /> - <Next content="Color System: Code" parent="identity" child="color" subchild="code" /> - </div> - </> - ); -}; - -export default Guidance; diff --git a/site/src/pages/identity/colors/index.js b/site/src/pages/identity/colors/index.js deleted file mode 100644 index c30fd7856..000000000 --- a/site/src/pages/identity/colors/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import { useParams } from 'react-router-dom'; -import Navigation from '../Navigation'; -import Text from '../Text'; -import Code from './code'; -import Guidance from './guidance'; -import Overview from './overview'; -import React from "react"; - -const Color = () => { - const { id } = useParams(); - return ( - <> - <Text - title="Color" - description="Colors when accurately applied can be a potent tool that enables designers and developers to implement solutions with speed and efficiency. Here are a couple of things to keep in mind." - /> - <Navigation type="color" /> - {id === 'guidance' ? <Guidance /> : id === 'code' ? <Code /> : <Overview />} - </> - ); -}; - -export default Color; diff --git a/site/src/pages/identity/colors/overview.js b/site/src/pages/identity/colors/overview.js deleted file mode 100644 index 98e03c4a8..000000000 --- a/site/src/pages/identity/colors/overview.js +++ /dev/null @@ -1,128 +0,0 @@ -import Next from '../Next'; -import Previous from '../Previous'; -import Sidebar from '../Sidebar'; -import SubContent from '../SubContent'; -import SubText from '../SubText'; -import React from "react"; - -const items = [ - { - title: 'Introduction' - }, - { - title: 'Color Anatomy' - }, - { - title: 'Layer Hierarchy' - }, - { - title: 'The Basics' - }, - { - title: 'Green Color Accessibility' - } -]; - -const basics = [ - { - title: 'Theme', - description: - 'By definition, a theme is a cohesive and consistent look and feel for a product. This consistent look can be achieved with the use of harmonious color palettes, legible fonts and layout patterns. Currently, sistent outlines specifications for light and dark themes.' - }, - { - title: 'Value', - description: - 'A value is the unique visual attribute assigned to a token through the use of themes. This could range from hex codes to rgba values which are used to highlight specific colors in any given instance. We highly recommend that no exact values be referenced anywhere in the design in order to avoid errors and ensure consistency. Instead, tokens should be used to curate and implement the reusable values. More on tokens next.' - }, - { - title: 'Tokens', - description: - 'Tokens can be regarded as a shared language between design and development for communicating detailed information about how to build user interfaces. Generally, a rule of thumb is to represent the context (background, text, component), role (success, warning, brand, inverse), and modifier(s) (secondary, tertiary, hover) in a string of text that will represent set values gotten from the colors in the color palette.' - }, - { - title: 'Role', - description: - 'Roles are parameters that specify the context that colors are being applied to and while different roles can share the same value, the token structure means that they will have different use cases. These values can be different though depending on the current theme.' - } -]; - -const Overview = () => { - return ( - <> - <Sidebar items={items} /> - <div className="py-[2.5rem]"> - <SubContent SubContent="In order to achieve the aim of maintaining a consistent and engaging digital interface across Layer5, whether it is in the form of websites, applications, or experiences, a detailed explanation of color application along with practical use cases is needed. To this end, the following concepts help to shape a suitable identity as we aim for balance throughout our User Interface." /> - </div> - <SubText - SubHeading="Introduction" - SubContent="When the color palette is accurately put to use, it ensures a recognizable consistency in Layer5โs array of digital interfaces and products. This is made possible due to adherence to well defined rules which though specific, are also flexible and give ample room for professionals to curate appealing solutions across all themes." - length="2" - /> - <div className="pt-[2.5rem]"> - <SubText - SubHeading="Color Anatomy" - SubContent="Sistentโs default themes are derived from Layer5โs color palette of which the Keppel Green color serves as the dominant primary action color with subtle shifts in value to enable the required visual accessibility as recommended in the WCAG (Web Content Accessibility Guidelines) 2.1 compliance standards. It is also sometimes combined with Saffron Yellow and Caribbean Green colors accentuate other parts of the user interface like CTA buttons as well as illustrations and icons." - length="2" - height="35.25" - > - <SubContent SubContent="The Charcoal color as well as another accent grey serve as neutrals to complement these greens and create harmonious implementations. These five colors combine to form a foundation for the color system." /> - <div className="h-56 py-[1.5rem]"></div> - </SubText> - </div> - <SubText - SubHeading="Layer Hierarchy" - SubContent="For backgrounds and surfaces, colors in the neutral palettes are used cohesively to create depth and spatial associations. This hierarchical pattern defines the logic of how colors stack on top of each other in a UI when implementing Sistent themes. This logical pattern goes beyond just themes but is also built across components and accounted for in suggested color tokens as well." - length="2" - height="90.25" - > - <SubContent - SubContent="There is an alternate relationship between the layer hierarchy in both light and dark themes: - In the light theme, as layers are stacked towards the topmost surface, they become progressively darker. - In the dark theme, as layers are stacked towards the topmost surface, they become progressively lighter. - This means, in effect, that while there is a fine blend of surfaces on any given UI theme, there is also strict adherence to accessibility guidelines and recommendations." - /> - <div className="py-[1.5rem] h-[16rem]"></div> - <SubContent - SubContent="A similar hierarchy pattern as above is adopted for brilliantly colored backgrounds like brand and alert colors when it comes to interactive states. So as interactions progress from default to hover to pressed, this same principle may apply. However, when trying to establish prominence for other user interface needs, an inverse relationship may be more suitable. Hence, for these brilliant colors: - In the light theme, as prominence reduces, layers become progressively lighter. - In the dark theme, as prominence reduces, layers become progressively darker." - /> - <div className="py-[1.5rem] h-[26rem]"></div> - </SubText> - <div className="pt-[2.5rem]"> - <SubText - length="2" - height="49" - SubHeading="The Basics" - SubContent="Letโs start with a few of the common terms that we will come across frequently, as understanding what they mean will inform us of applicable use cases and proper procedures that should not be overlooked." - > - {basics && - basics.map((basic) => { - return ( - <div key={basic.title}> - <SubContent - SubContent={basic.title} - font="bold" - // fontType="Qanelas Soft" - /> - <SubContent SubContent={basic.description} /> - </div> - ); - })} - </SubText> - </div> - <div className="pt-[6.25rem] gap-4 flex"> - <Previous content="Case Studies" parent="identity" child="color" subchild="" /> - <div className="h-[24px] w-[16px]" /> - <Next - content="Color System: Guidelines" - parent="identity" - child="color" - subchild="guidance" - /> - </div> - </> - ); -}; - -export default Overview; diff --git a/site/src/pages/identity/elevation/index.js b/site/src/pages/identity/elevation/index.js deleted file mode 100644 index 7182ce944..000000000 --- a/site/src/pages/identity/elevation/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from "react"; -const Elevation = () => { - return <div className="text-center text-bold">Elevation</div>; -}; - -export default Elevation; diff --git a/site/src/pages/identity/page-layouts/index.js b/site/src/pages/identity/page-layouts/index.js deleted file mode 100644 index 99a825b1c..000000000 --- a/site/src/pages/identity/page-layouts/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from "react"; -const PageLayout = () => { - return <div className="text-center text-bold">Page Layout</div>; -}; - -export default PageLayout; diff --git a/site/src/pages/identity/spacing/index.js b/site/src/pages/identity/spacing/index.js deleted file mode 100644 index c813346d3..000000000 --- a/site/src/pages/identity/spacing/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from "react"; -const Spacing = () => { - return <div className="text-center text-bold">Spacing</div>; -}; - -export default Spacing; diff --git a/site/src/pages/identity/typography/code.js b/site/src/pages/identity/typography/code.js deleted file mode 100644 index 0b1719187..000000000 --- a/site/src/pages/identity/typography/code.js +++ /dev/null @@ -1,34 +0,0 @@ -import React from "react"; -import Next from '../Next'; -import Previous from '../Previous'; -import Sidebar from '../Sidebar'; -import SubContent from '../SubContent'; - -const items = [ - { - title: 'Introduction' - } -]; - -const Code = () => { - return ( - <> - <Sidebar items={items} /> - <div className="py-[2.5rem]"> - <SubContent SubContent="After a suitable typeface has been chosen, it needs to be arranged to form the various fonts that will be used to address different text needs across designs." /> - </div> - <div className="pt-[6.25rem] gap-4 flex"> - <Previous - content="Typography: Guidelines" - parent="identity" - child="typography" - subchild="guidance" - /> - <div className="h-[24px] w-[16px]" /> - <Next content="" /> - </div> - </> - ); -}; - -export default Code; diff --git a/site/src/pages/identity/typography/guidance.js b/site/src/pages/identity/typography/guidance.js deleted file mode 100644 index 7570087c1..000000000 --- a/site/src/pages/identity/typography/guidance.js +++ /dev/null @@ -1,69 +0,0 @@ -import React from "react"; -import Next from '../Next'; -import Previous from '../Previous'; -import Sidebar from '../Sidebar'; -import SubContent from '../SubContent'; -import SubText from '../SubText'; - -const items = [ - { - title: 'Type Scale Customization' - }, - { - title: 'Font Pairing' - } -]; - -const Guidance = () => { - return ( - <> - <Sidebar items={items} /> - <div className="py-[2.5rem]"> - <SubContent SubContent="After a suitable typeface has been chosen, it needs to be arranged to form the various fonts that will be used to address different text needs across designs." /> - </div> - <SubText - length="2" - height="123.25" - SubHeading="Type Scale Customization" - SubContent="It is not compulsory that all of the sizes in a type scale be used. However, when choosing a size from the scale, ensure to identify possible use cases in proposed designs to ensure efficiency and reduce any chances of having redundant text styles. Remember that less is more and a particular font size can function in multiple capacities. After making a selection of sizes, if there is subsequent need for an additional size because of a recurring use case, then a suitable corresponding size can be chosen from the scale. This is a better practice." - > - <SubContent SubContent="For Layer5, we utilized the major third ratio to generate at a type scale that we could work with." /> - <div className="py-[1.5rem] h-[40.5rem]"></div> - <SubContent SubContent="From this type scale, seven text sizes were selected to account for various needs in our websites and products. These sizes were further modified with suitable font specifications that will provide accurate guidance for usage across implementations." /> - <div className="py-[1.5rem] h-[30rem]"></div> - <SubContent SubContent="To create even more consistent designs, it is important to consider typography with spacing and spatial proportions in mind. As a rule of thumb, it is advisable that values obtained from the modular scale are rounded off to a multiple of the base space value being used across a set of designs." /> - <SubContent SubContent="In keeping with this, the values of the above sizes are noticeably distinct from the original type scale that it was derived from. This is because our base spacing value is 8px and as such, all the text sizes have been rounded off to a multiple of eight. This same principle is applied to the accompanying line heights of these text sizes as well." /> - <div> - <SubContent SubContent="Layout Considerations" font="bold" /> - <SubContent SubContent="For any digital product or websites being created, one important thing to be considered is the responsive nature of the design, which translates to what the said design will look like across different screen sizes (desktop, tablet, and mobile). To this end, it is also imperative that the text styles selected account for these different layout sizes as well. As stated earlier, text styles can be used for multiple needs across a given design. The important thing is that necessary information is accurately conveyed and hierarchy and prominence is duly established." /> - </div> - </SubText> - <div className="pt-[2.5rem]"> - <SubText - SubHeading="Font Pairing" - SubContent="Sometimes, it might be necessary to make use of more than one typeface. In such a case, an applicable principle is that one of the typefaces is used mostly for headings and subheadings, while the other is used for most paragraph and body text needs across the same design. Detailed research on typefaces and their compatibility will help to make informed decisions when it comes to choices of a typeface for font pairing." - length="2" - > - <SubContent SubContent="Layer5 has successfully been able to implement a font pairing of Qanelas Soft for all heading and subheading text and Open Sans for all body, paragraph, and content text needs." /> - </SubText> - </div> - <div className="pt-[6.25rem] gap-4 flex"> - <Previous - content="Typography System: Overview" - parent="identity" - child="typography" - subchild="overview" - /> - <div className="h-[24px] w-[16px]" /> - <Next - content="Typography System: Code" - parent="identity" - child="typography" - subchild="code" - /> - </div> - </> - ); -}; - -export default Guidance; diff --git a/site/src/pages/identity/typography/index.js b/site/src/pages/identity/typography/index.js deleted file mode 100644 index d5d680b6f..000000000 --- a/site/src/pages/identity/typography/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react"; -import { useParams } from 'react-router-dom'; -import Navigation from '../Navigation'; -import Text from '../Text'; -import Code from './code'; -import Guidance from './guidance'; -import Overview from './overview'; - -const Typography = () => { - const { id } = useParams(); - return ( - <> - <Text - title="Typography" - description="Most of the information that is present in a user interface for the purpose of passing information across is represented via typography. Correct structuring and appropriate application is important for all interfaces." - /> - <Navigation type="typography" /> - {id === 'guidance' ? <Guidance /> : id === 'code' ? <Code /> : <Overview />} - </> - ); -}; - -export default Typography; diff --git a/site/src/pages/identity/typography/overview.js b/site/src/pages/identity/typography/overview.js deleted file mode 100644 index ae48e3b24..000000000 --- a/site/src/pages/identity/typography/overview.js +++ /dev/null @@ -1,204 +0,0 @@ -import React from "react"; -import Next from '../Next'; -import Previous from '../Previous'; -import Sidebar from '../Sidebar'; -import SubText from '../SubText'; -import SubContent from '../SubContent'; - -const items = [ - { - title: "Introduction" - }, - { - title: "Color Anatomy" - }, - { - title: "Layer Hierarchy" - }, - { - title: "The Basics" - }, - { - title: "Green Color Accessibility" - } -] - -const basics = [ - { - title:'Theme', - description:'By definition, a theme is a cohesive and consistent look and feel for a product. This consistent look can be achieved with the use of harmonious color palettes, legible fonts and layout patterns. Currently, sistent outlines specifications for light and dark themes.' - }, - { - title:'Value', - description:'A value is the unique visual attribute assigned to a token through the use of themes. This could range from hex codes to rgba values which are used to highlight specific colors in any given instance. We highly recommend that no exact values be referenced anywhere in the design in order to avoid errors and ensure consistency. Instead, tokens should be used to curate and implement the reusable values. More on tokens next.' - }, - { - title:'Tokens', - description:'Tokens can be regarded as a shared language between design and development for communicating detailed information about how to build user interfaces. Generally, a rule of thumb is to represent the context (background, text, component), role (success, warning, brand, inverse), and modifier(s) (secondary, tertiary, hover) in a string of text that will represent set values gotten from the colors in the color palette.' - }, - { - title:'Role', - description:'Roles are parameters that specify the context that colors are being applied to and while different roles can share the same value, the token structure means that they will have different use cases. These values can be different though depending on the current theme.' - } -] - -const Overview = ()=> { - return ( - <> - <Sidebar items={items}/> - <div className="py-[2.5rem]"> - <SubContent - SubContent="In order to achieve the aim of maintaining a consistent and engaging digital interface across Layer5, whether it is in the form of websites, applications, or experiences, a detailed explanation of color application along with practical use cases is needed. To this end, the following concepts help to shape a suitable identity as we aim for balance throughout our User Interface." - /> - </div> - <SubText - SubHeading="Introduction" - SubContent="When the color palette is accurately put to use, it ensures a recognizable consistency in Layer5โs array of digital interfaces and products. This is made possible due to adherence to well defined rules which though specific, are also flexible and give ample room for professionals to curate appealing solutions across all themes." - length="2" - /> - <div className='pt-[2.5rem]'> - <SubText - SubHeading="Color Anatomy" - SubContent="Sistentโs default themes are derived from Layer5โs color palette of which the Keppel Green color serves as the dominant primary action color with subtle shifts in value to enable the required visual accessibility as recommended in the WCAG (Web Content Accessibility Guidelines) 2.1 compliance standards. It is also sometimes combined with Saffron Yellow and Caribbean Green colors accentuate other parts of the user interface like CTA buttons as well as illustrations and icons." - length="2" - height="35.25" - > - <SubContent - SubContent="The Charcoal color as well as another accent grey serve as neutrals to complement these greens and create harmonious implementations. These five colors combine to form a foundation for the color system." - /> - <div className='h-56 py-[1.5rem]'></div> - </SubText> - </div> - <SubText - SubHeading='Layer Hierarchy' - SubContent='For backgrounds and surfaces, colors in the neutral palettes are used cohesively to create depth and spatial associations. This hierarchical pattern defines the logic of how colors stack on top of each other in a UI when implementing Sistent themes. This logical pattern goes beyond just themes but is also built across components and accounted for in suggested color tokens as well.' - length='2' - height='90.25' - > - <SubContent - SubContent='There is an alternate relationship between the layer hierarchy in both light and dark themes: - In the light theme, as layers are stacked towards the topmost surface, they become progressively darker. - In the dark theme, as layers are stacked towards the topmost surface, they become progressively lighter. - This means, in effect, that while there is a fine blend of surfaces on any given UI theme, there is also strict adherence to accessibility guidelines and recommendations.' - /> - <div className='py-[1.5rem] h-[16rem]'></div> - <SubContent - SubContent="A similar hierarchy pattern as above is adopted for brilliantly colored backgrounds like brand and alert colors when it comes to interactive states. So as interactions progress from default to hover to pressed, this same principle may apply. However, when trying to establish prominence for other user interface needs, an inverse relationship may be more suitable. Hence, for these brilliant colors: - In the light theme, as prominence reduces, layers become progressively lighter. - In the dark theme, as prominence reduces, layers become progressively darker." - /> - <div className='py-[1.5rem] h-[26rem]'></div> - </SubText> - <div className='pt-[2.5rem]'> - <SubText - length="2" - height="49" - SubHeading="The Basics" - SubContent="Letโs start with a few of the common terms that we will come across frequently, as understanding what they mean will inform us of applicable use cases and proper procedures that should not be overlooked." - > - {basics && basics.map((basic)=>{ - return ( - <div key={basic.title}> - <SubContent - SubContent={basic.title} - font="bold" - // fontType="Qanelas Soft" - /> - <SubContent - SubContent={basic.description} - /> - </div>) - })} - </SubText> - </div> - <div className='pt-[6.25rem] gap-4 flex'> - <Previous content="Case Studies" parent="identity" child="color" subchild=""/> - <div className='h-[24px] w-[16px]'/> - <Next content="Color System: Guidelines" parent="identity" child="color" subchild="guidance" /> - </div> - </> - ) -} - -export default Overview; - -// import React from 'react'; -// import Sidebar from '../Sidebar'; -// import SubContent from '../SubContent'; -// import SubText from '../SubText'; -// import SubHeading from '../SubHeading'; -// import Previous from '../Previous'; -// import Next from '../Next'; - -// const items = [ -// { -// title: "The Basics" -// }, -// { -// title: "Type Scale" -// } -// ] - -// const basicItems = [ -// { -// title: "Typeface", -// description:"A typeface is a set of letters, numbers, and accessories that have common design features. These characters are usually grouped into families and used in relation to each other to ensure uniform text representation in designs and forms of text that are relative to each other. Qanelas Soft, Times New Roman, Merriweather, and Roboto are all examples of typefaces." -// }, -// { -// title: "Font", -// description:"Often wrongly used interchangeably with typeface, a font refers to variations of a typeface. So this includes the weight, size, line height, tracking (letter spacing), and any other features that are added to a typeface for it to function in a certain capacity. A key relationship between a typeface and a font is that characters in a typeface can be modified to form different fonts." -// }, -// { -// title: "Line Height", -// description:"Line height is mostly used to refer to the distance between lines of text. WCAG standards for line height recommend a line height that is at least 1.5 times the chosen font size, especially for small text sizes. For larger fonts, however, evidence has shown that anything between 1.2 and 1.5 times the font size might also be appropriate, especially considering the fact that most large fonts used for headings and subheadings tend not to exceed a single line of text." -// }, -// ] - -// const Overview = ()=> { -// return ( -// <> -// <Sidebar items={items}/> -// <div className="py-[2.5rem]"> -// <SubContent -// SubContent= "There are a couple of things to consider when preparing to apply typography to any interface." -// /> -// </div> -// <SubText SubHeading="The Basics" height="38.5"> -// {basicItems && basicItems.map((basic)=>{ -// return ( -// <div key={basic.title}> -// <SubContent -// SubContent={basic.title} -// font="bold" -// // fontType="Qanelas Soft" -// /> -// <SubContent -// SubContent={basic.description} -// /> -// </div>) -// })} -// </SubText> -// <div className='pt-[2.5rem]'> -// <SubText SubHeading="Type Scale" -// SubContent="Type scale with respect to typography points to the set of incremental steps or rations that dictate how font sizes increase or decrease as you move up or down a given hierarchy. This increase or decrease is usually originated from a base size that serves as the defining font within the scale. These steps create a systemic progression of font sizes that maintain harmony and visual balance within a system because of the relationship they share with the base font." -// height="61.5" -// > -// <SubContent -// SubContent="A modular type scale can be generated using harmonious values like the golden ratio, the major third, the perfect fifth, and so on." -// /> -// <div className="py-[1.5rem] bg-gray-500"></div> -// <SubContent -// SubContent="Because of the progressive increase or decrease that governs the content of a type scale, it makes it easier to obtain consistent, related, and harmonious font sizes that can each be used for specific needs when curating digital interfaces." -// /> -// </SubText> -// </div> -// <div className='pt-[6.25rem] gap-4 flex'> -// <Previous content="Case Studies" parent="identity" child="typography" subchild=""/> -// <div className='h-[24px] w-[16px]'/> -// <Next content="Typography: Guidelines" parent="identity" child="typography" subchild="guidance"/> -// </div> -// </> -// ) -// } - -// export default Overview; diff --git a/site/src/pages/index.js b/site/src/pages/index.js deleted file mode 100644 index 9be244450..000000000 --- a/site/src/pages/index.js +++ /dev/null @@ -1,47 +0,0 @@ -import React, { useContext } from "react"; -import { Navigate, Route, BrowserRouter as Router, Routes } from 'react-router-dom'; -import Footer from '../components/Footer'; -import Navbar from '../components/Navigation'; -import Sidebar from '../components/Sidebar'; -import ThemeContext from '../components/Theme'; -import '../styles/global.css'; -import Home from './home'; -import Color from './identity/colors'; -import Elevation from './identity/elevation'; -import PageLayout from './identity/page-layouts'; -import Spacing from './identity/spacing'; -import Typography from './identity/typography'; - -const IndexPage = () => { - const theme = useContext(ThemeContext); - const routes = ( - <Routes> - <Route path="/" element={<Home />} exact /> - <Route path="/identity/color" element={<Color />} exact /> - <Route path="/identity/color/:id" element={<Color />} exact /> - <Route path="/identity/typography" element={<Typography />} exact /> - <Route path="/identity/typography/:id" element={<Typography />} exact /> - <Route path="/identity/spacing" element={<Spacing />} exact /> - <Route path="/identity/layouts" element={<PageLayout />} exact /> - <Route path="/identity/elevation" element={<Elevation />} exact /> - <Route path="*" element={<Navigate to="/" replace />} /> - </Routes> - ); - - return ( - <div className={`${theme.dark ? 'dark' : 'light'} bg-background-default`}> - <Router> - <Navbar /> - <div className="flex gap-8"> - <Sidebar /> - <main>{routes}</main> - </div> - <Footer /> - </Router> - </div> - ); -}; - -export default IndexPage; - -export const Head = () => <title>Layer5 Design System</title>; diff --git a/site/src/pages/patterns/index.js b/site/src/pages/patterns/index.js deleted file mode 100644 index 8d0a61ec2..000000000 --- a/site/src/pages/patterns/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; -const Patterns = () => { - return <div className="text-center text-bold">Patterns</div>; -}; - -export default Patterns; diff --git a/site/src/pages/visualise/index.js b/site/src/pages/visualise/index.js deleted file mode 100644 index 37067acd2..000000000 --- a/site/src/pages/visualise/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; -const Visualize = () => { - return <div className="text-center text-bold">Visualize</div>; -}; - -export default Visualize; diff --git a/site/src/styles/global.css b/site/src/styles/global.css deleted file mode 100644 index e447e09e3..000000000 --- a/site/src/styles/global.css +++ /dev/null @@ -1,134 +0,0 @@ -/* Fonts */ -@import url('https://fonts.googleapis.com/css2?family=Open+Sans&display=swap'); - -@tailwind base; -@tailwind components; -@tailwind utilities; - -/* Global.css */ -.light { - --border-strong: #647176; - --border-default: #EAEDEE; - --background-default: #FDFDFD; - --text-brand: #51636B; - --background-brand-default: #51636B; - --text-default: #000D12; - --search-default: #15272F; - --text-secondary: #3C494E; - --border-brand: #007763; - --background-brand-tertiary: #DAF2EB; -} - - /* Define dark mode styles */ -.dark { - --border-strong: #8D9FA7; - --border-default: #15272F; - --background-default: #000D12; - --text-brand: #00B39F; - --background-brand-default: #00B39F; - --text-default: #FDFDFD; - --search-default: #E7EFF3; - --text-secondary: #EAEDEE; - --border-brand: #8D9FA7; - --background-brand-tertiary: #00403F; -} - -@font-face { - font-family: "Qanelas Soft Black"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftBlack.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Black Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftBlackItalic.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Heavy"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftHeavy.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Heavy Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftHeavyItalic.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft ExtraBold"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftExtraBold.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft ExtraBold Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftExtraBoldItalic.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Bold"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftBold.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Bold Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftBoldItalic.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftSemiBold.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft SemiBold Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftSemiBoldItalic.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Medium"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftMedium.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Medium Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftMediumItalic.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftRegular.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Regular Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftRegularItalic.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Light"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftLight.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Light Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftLightItalic.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft UltraLight"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftUltraLight.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft UltraLight Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftUltraLightItalic.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Thin"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftThin.otf') format('opentype'); -} - -@font-face { - font-family: "Qanelas Soft Thin Italic"; - src: url('../assets/fonts/qanelas-soft/QanelasSoftThinItalic.otf') format('opentype'); -} \ No newline at end of file diff --git a/site/tailwind.config.js b/site/tailwind.config.js deleted file mode 100644 index a1679d9c1..000000000 --- a/site/tailwind.config.js +++ /dev/null @@ -1,27 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: ['./src/pages/**/*.{js,jsx,ts,tsx}', './src/components/**/*.{js,jsx,ts,tsx}'], - theme: { - darkMode: 'class', - extend: { - colors: { - 'border-strong': 'var(--border-strong)', - 'border-default': 'var(--border-default)', - 'background-default': 'var(--background-default)', - 'text-brand': 'var(--text-brand)', - 'background-brand-default': 'var(--background-brand-default)', - 'text-default': 'var(--text-default)', - 'search-default': 'var(--search-default)', - 'text-secondary': 'var(--text-secondary)', - 'border-brand': 'var(--border-brand)', - 'background-brand-tertiary': 'var(--background-brand-tertiary)' - } - }, - fontFamily: { - openSans: ['Open Sans', 'sans-serif'], - qanelas: ['Qanelas Soft Bold', 'sans-serif'], - 'qanelas-medium': ['Qanelas Soft Medium', 'sans-serif'] - } - }, - plugins: [] -}; diff --git a/src/__testing__/AddIcon.test.tsx b/src/__testing__/AddIcon.test.tsx deleted file mode 100644 index 412d774cf..000000000 --- a/src/__testing__/AddIcon.test.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { render } from '@testing-library/react'; -import { AddIcon } from '../icons'; - -describe('AddIcon', () => { - it('renders without errors', () => { - render(<AddIcon width={24} height={24} />); - }); - - it('applies width and height', () => { - const { getByTestId } = render(<AddIcon width={24} height={24} />); - const svgElement = getByTestId('add-icon-svg'); - expect(svgElement.getAttribute('width')).toBe('24'); - expect(svgElement.getAttribute('height')).toBe('24'); - }); -}); diff --git a/src/__testing__/ApplicationIcon.test.tsx b/src/__testing__/ApplicationIcon.test.tsx deleted file mode 100644 index 32b718321..000000000 --- a/src/__testing__/ApplicationIcon.test.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { render } from '@testing-library/react'; -import { ApplicationIcon } from '../icons'; - -describe('ApplicationIcon', () => { - it('renders without errors', () => { - render(<ApplicationIcon width={24} height={24} />); - }); - - it('applies width and height', () => { - const { getByTestId } = render(<ApplicationIcon width={24} height={24} />); - const svgElement = getByTestId('application-icon-svg'); - expect(svgElement.getAttribute('width')).toBe('24'); - expect(svgElement.getAttribute('height')).toBe('24'); - }); -}); diff --git a/src/__testing__/BusIcon.test.tsx b/src/__testing__/BusIcon.test.tsx deleted file mode 100644 index 678418910..000000000 --- a/src/__testing__/BusIcon.test.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { render } from '@testing-library/react'; -import { BusIcon } from '../icons'; - -describe('BusIcon', () => { - it('renders without errors', () => { - render(<BusIcon width={24} height={24} />); - }); - - it('applies width and height', () => { - const { getByTestId } = render(<BusIcon width={24} height={24} />); - const svgElement = getByTestId('bus-icon-svg'); - expect(svgElement.getAttribute('width')).toBe('24'); - expect(svgElement.getAttribute('height')).toBe('24'); - }); -}); diff --git a/src/__testing__/CircleIcon.test.tsx b/src/__testing__/CircleIcon.test.tsx deleted file mode 100644 index 8049db624..000000000 --- a/src/__testing__/CircleIcon.test.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { render } from '@testing-library/react'; -import { CircleIcon } from '../icons'; - -describe('CircleIcon', () => { - it('renders without errors', () => { - render(<CircleIcon width={24} height={24} />); - }); - - it('applies width and height', () => { - const { getByTestId } = render(<CircleIcon width={24} height={24} />); - const svgElement = getByTestId('circle-icon-svg'); - expect(svgElement.getAttribute('width')).toBe('24'); - expect(svgElement.getAttribute('height')).toBe('24'); - }); -}); diff --git a/src/actors/eventBus.ts b/src/actors/eventBus.ts deleted file mode 100644 index 0e740e379..000000000 --- a/src/actors/eventBus.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { Observable, Subject, filter } from 'rxjs'; - -// Generic Event interface -export interface EventBusEvent<Type extends string, Data = unknown> { - type: Type; - data: Data; -} - -// Helper type to extract event types from a union -export type EventType<T> = T extends EventBusEvent<infer Type, any> ? Type : never; - -// Helper type to extract payload type for a given event type -export type DataType<T, Type extends string> = - T extends EventBusEvent<Type, infer Data> ? Data : never; - -// Generic EventBus class -export class EventBus<T extends EventBusEvent<string, any>> { - private eventSubject: Subject<T>; - private eventObservable: Observable<T>; - - constructor() { - this.eventSubject = new Subject<T>(); - this.eventObservable = this.eventSubject.asObservable(); - } - - // Method to publish an event - publish<E extends T>(event: E): void { - this.eventSubject.next(event); - } - - // Method to subscribe to a specific event type - on(eventType: EventType<T>): Observable<T> { - return this.eventObservable.pipe(filter((event): event is T => event.type === eventType)); - } - - // Method to subscribe to all events - onAny(): Observable<T> { - return this.eventObservable; - } -} diff --git a/src/actors/index.ts b/src/actors/index.ts deleted file mode 100644 index a366767db..000000000 --- a/src/actors/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -export { - DATA_VALIDATOR_COMMANDS, - DATA_VALIDATOR_EVENTS, - dataValidatorCommands, - dataValidatorEvents, - dataValidatorMachine, - selectIsValidating, - selectValidationResults -} from './validators/dataValidator'; - -export * from './worker'; - -export { - REDUX_COMMANDS, - REDUX_EVENTS, - reduxActor, - reduxCommands, - reduxEvents, - type REXUX_ACTOR_EVENTS -} from './reduxActor'; - -export { - RTK_EVENTS, - rtkQueryActor, - rtkQueryActorCommands, - rtkQueryActorEvents -} from './rtkQueryActor'; - -export const REEE = 'xxx'; - -export { - DeferEvents, - XSTATE_DEBUG_EVENT, - deadLetter, - forwardToActors, - reply, - sendToActor, - sendToActors -} from './utils'; - -export * from './eventBus'; diff --git a/src/actors/reduxActor.ts b/src/actors/reduxActor.ts deleted file mode 100644 index a4325b6ed..000000000 --- a/src/actors/reduxActor.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { assertEvent, sendTo, setup } from 'xstate'; - -import { Selector, Store, UnknownAction } from '@reduxjs/toolkit'; - -interface ReduxActorContext { - store: Store; - selectors: { - [key: string]: Selector; - }; -} - -/* eslint-disable @typescript-eslint/no-explicit-any */ -type extraArgs = any[]; - -export const REDUX_COMMANDS = { - DISPATCH: 'DISPATCH', - GET_STATE: 'GET_STATE', - GET_STATE_FROM_SELECTOR: 'GET_STATE_FROM_SELECTOR', - SUBSCRIBE: 'SUBSCRIBE', - UNSUBSCRIBE: 'UNSUBSCRIBE' -}; - -export const REDUX_EVENTS = { - REDUX_STATE_SNAPSHOT: 'REDUX_STATE_SNAPSHOT' -}; - -export type REXUX_ACTOR_EVENTS = - | { type: 'DISPATCH'; data: { action: UnknownAction } } - | { type: 'SUBSCRIBE' } - | { type: 'UNSUBSCRIBE' } - | { type: 'REDUX_STATE_SNAPSHOT'; data: { snapshot: unknown } } - | { type: 'GET_STATE'; returnAddress: string; data: { key: string } } - | { - type: 'GET_STATE_FROM_SELECTOR'; - returnAddress: string; - data: { selector: string; extraArgs?: extraArgs }; - }; - -export const reduxEvents = { - stateSnapshot: (snapshot: unknown) => ({ - type: 'STATE_SNAPSHOT', - data: { snapshot } - }) -}; - -export const reduxCommands = { - dispatch: (action: UnknownAction) => ({ - type: 'DISPATCH', - data: { action } - }), - - getState: (key: string, returnAddress: string) => ({ - type: 'GET_STATE', - returnAddress, - data: { key } - }), - - getStateFromSelector: (selector: string, returnAddress: string, extraArgs?: extraArgs) => ({ - type: 'GET_STATE_FROM_SELECTOR', - returnAddress, - data: { selector, extraArgs } - }) -}; - -export const reduxActor = setup({ - types: { - context: {} as ReduxActorContext, - input: {} as ReduxActorContext, - events: {} as REXUX_ACTOR_EVENTS - } -}).createMachine({ - initial: 'idle', - context: ({ input }) => input, - states: { - idle: { - on: { - DISPATCH: { - actions: [({ event, context }) => context.store.dispatch(event.data.action)] - }, - GET_STATE_FROM_SELECTOR: { - actions: sendTo( - ({ event }) => event.returnAddress, - ({ context, event }) => { - assertEvent(event, 'GET_STATE_FROM_SELECTOR'); - const selector = context.selectors[event.data.selector]; - const snapshot = selector(context.store.getState(), ...(event.data.extraArgs || [])); - return reduxEvents.stateSnapshot(snapshot); - } - ) - } - } - } - } -}); diff --git a/src/actors/rtkQueryActor.ts b/src/actors/rtkQueryActor.ts deleted file mode 100644 index 7e701d99c..000000000 --- a/src/actors/rtkQueryActor.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { Store } from '@reduxjs/toolkit'; -import { Api, EndpointDefinitions, QueryResultSelectorResult } from '@reduxjs/toolkit/query/react'; -import { DoneActorEvent, ErrorActorEvent, EventObject, fromPromise, sendTo, setup } from 'xstate'; - -/* eslint-disable @typescript-eslint/no-explicit-any */ - -interface RtkQueryActorContext { - api: Api<any, EndpointDefinitions, any, any>; - store: Store; -} - -interface RtkQueryActorInput { - api: Api<any, EndpointDefinitions, any, any>; - store: Store; -} - -interface initiateQueryEvent extends EventObject { - type: 'INITIATE_QUERY'; - data: { - endpointName: string; - params: unknown; - }; - returnAddress: string; -} - -interface queryDoneEvent extends DoneActorEvent { - /* eslint-disable @typescript-eslint/no-explicit-any */ - output: { - result: QueryResultSelectorResult<any>; - sourceEvent: initiateQueryEvent; - }; -} - -interface queryFailedEvent extends ErrorActorEvent { - /* eslint-disable @typescript-eslint/no-explicit-any */ - error: { - result: QueryResultSelectorResult<any>; - sourceEvent: initiateQueryEvent; - }; -} - -interface QueryResultEvent extends EventObject { - type: 'QUERY_RESULT'; - data: { - result: unknown; - }; -} - -interface QueryFailedEvent extends EventObject { - type: 'QUERY_FAILED'; - data: { - error: unknown; - }; -} - -export const rtkQueryActorCommands = { - initiateQuery: ({ - endpointName, - params, - returnAddress - }: { - endpointName: string; - params: unknown; - returnAddress: string; - }): initiateQueryEvent => ({ - type: 'INITIATE_QUERY', - data: { endpointName, params }, - returnAddress - }) -}; - -export const rtkQueryActorEvents = { - queryResult: ({ result }: { result: unknown }): QueryResultEvent => ({ - type: 'QUERY_RESULT', - data: { result } - }), - queryFailed: ({ error }: { error: unknown }): QueryFailedEvent => ({ - type: 'QUERY_FAILED', - data: { error } - }) -}; - -export const RTK_EVENTS = { - QUERY_RESULT: 'QUERY_RESULT', - QUERY_FAILED: 'QUERY_FAILED' -}; - -type EVENTS = initiateQueryEvent | queryDoneEvent | queryFailedEvent; - -interface InitiateQueryActorInput { - context: RtkQueryActorContext; - event: initiateQueryEvent; -} -const InitiateQueryActor = fromPromise(async ({ input }: { input: InitiateQueryActorInput }) => { - const { event, context } = input; - console.log('event.data.endpointName', event, context); - const result = await context.store.dispatch( - (context.api.endpoints[event.data.endpointName] as any).initiate(event.data.params) - ); - return { - result, - sourceEvent: event - }; -}); - -export const rtkQueryActor = setup({ - types: { - context: {} as RtkQueryActorContext, - input: {} as RtkQueryActorInput, - events: {} as EVENTS - }, - actors: { - InitiateQueryActor - } -}).createMachine({ - initial: 'idle', - context: ({ input }) => input, - states: { - idle: { - on: { - INITIATE_QUERY: { - target: 'querying' - } - } - }, - querying: { - invoke: { - id: 'initiateQuery', - input: ({ context, event }) => ({ - context, - event: event as initiateQueryEvent - }), - src: 'InitiateQueryActor', - onDone: { - actions: sendTo( - ({ event }) => event.output.sourceEvent.returnAddress, - ({ event }) => rtkQueryActorEvents.queryResult({ result: event.output }) - ), - target: 'idle' - }, - onError: { - actions: sendTo( - ({ event }) => (event as queryFailedEvent).error.sourceEvent.returnAddress, - ({ event }) => rtkQueryActorEvents.queryFailed({ error: event.error }) - ), - - target: 'idle' - } - } - } - } -}); diff --git a/src/actors/utils.ts b/src/actors/utils.ts deleted file mode 100644 index 1deb016ad..000000000 --- a/src/actors/utils.ts +++ /dev/null @@ -1,77 +0,0 @@ -// disbale stict no any for now for full file -/* eslint-disable @typescript-eslint/no-explicit-any */ - -import { AnyActorRef, AnyEventObject, assign, enqueueActions, sendTo } from 'xstate'; -import { AnyActorSystem } from 'xstate/dist/declarations/src/system'; - -type ContextWithReturnAddress = { returnAddress: AnyActorRef }; - -export const sendToActor = (actor: string, event: AnyEventObject) => - sendTo(({ system }: { system: AnyActorSystem }) => { - console.log('sendToActor', actor, event); - return system.get(actor); - }, event); - -export const sendToActors = ( - actorSystemIds: string[], - eventCreator: (actionArgs: any, params: any) => AnyEventObject -) => - enqueueActions(({ enqueue, ...actionArgs }, params) => { - actorSystemIds.forEach((actorSystemId) => { - const actor = actionArgs.system.get(actorSystemId); - if (!actor) { - console.log('actor not found --sendToActors', actorSystemId); - return; - } - enqueue.sendTo(actor, eventCreator(actionArgs, params)); - }); - }); - -export const forwardToActors = (actorSystemIds: string[]) => - enqueueActions(({ enqueue, event, system }) => { - actorSystemIds.forEach((actorSystemId) => { - const actor = system.get(actorSystemId); - if (actor) { - enqueue.sendTo(actor, event); - } - }); - }); - -export const deadLetter = (event: AnyEventObject) => ({ type: 'DEAD_LETTER', event }); - -export const reply = (eventFn: (actionArgs: any, params: any) => AnyEventObject) => - sendTo(({ context }: { context: ContextWithReturnAddress }) => context.returnAddress, eventFn); - -export const XSTATE_DEBUG_EVENT = 'XSTATE_DEBUG_EVENT'; - -type deferredEventsQueue = AnyEventObject[]; - -interface DeferredEventsQueueContext { - deferredEventsQueue: deferredEventsQueue; -} - -interface deferActionParams { - event: AnyEventObject; - context: DeferredEventsQueueContext; -} - -const defer = assign({ - deferredEventsQueue: ({ context: { deferredEventsQueue }, event }: deferActionParams) => [ - ...deferredEventsQueue, - event - ] -}); - -const recall = enqueueActions(({ context: { deferredEventsQueue }, enqueue }) => { - enqueue.assign({ - deferredEventsQueue: [] - }); - for (const event of deferredEventsQueue) { - enqueue.raise(event); - } -}); - -export const DeferEvents = { - defer, - recall -}; diff --git a/src/actors/validators/dataValidator.ts b/src/actors/validators/dataValidator.ts deleted file mode 100644 index 50dc47b9c..000000000 --- a/src/actors/validators/dataValidator.ts +++ /dev/null @@ -1,231 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ - -import { - DoneActorEvent, - ErrorActorEvent, - EventObject, - SnapshotFrom, - assign, - fromPromise, - setup -} from 'xstate'; -import { reply } from '../utils'; - -export const DATA_VALIDATOR_COMMANDS = { - VALIDATE_DATA: 'VALIDATE_DATA' as const -}; - -export const DATA_VALIDATOR_EVENTS = { - DESIGN_VALIDATION_DONE: 'DESIGN_VALIDATION_DONE' as const, - DESIGN_VALIDATION_FAILED: 'DESIGN_VALIDATION_FAILED' as const -}; - -type ValidationPayload = Record<string, unknown>; -type ValidationResults = unknown; -type SystemErrors = unknown; - -interface ValidateDataCommand extends EventObject { - type: typeof DATA_VALIDATOR_COMMANDS.VALIDATE_DATA; - returnAddress: string; - data: { - validationPayload: ValidationPayload; - }; -} - -interface ValidateActorDoneEvent extends DoneActorEvent { - output: { - validationResults: ValidationResults; - }; -} - -interface DataValidatedEvent extends EventObject { - type: typeof DATA_VALIDATOR_EVENTS.DESIGN_VALIDATION_DONE; - data: { - validationPayload: ValidationPayload; - validationResults: ValidationResults; - }; -} - -interface DataValidationFailedEvent extends EventObject { - type: typeof DATA_VALIDATOR_EVENTS.DESIGN_VALIDATION_FAILED; - data: { - validationPayload: ValidationPayload; - systemErrors: SystemErrors; - }; -} - -export const dataValidatorCommands = { - validateData: ({ - validationPayload, - returnAddress - }: { - validationPayload: ValidationPayload; - returnAddress: string; - }): ValidateDataCommand => ({ - type: DATA_VALIDATOR_COMMANDS.VALIDATE_DATA, - returnAddress, - data: { validationPayload } - }) -}; - -export const dataValidatorEvents = { - dataValidated: ({ - validationPayload, - validationResults - }: { - validationPayload: ValidationPayload; - validationResults: ValidationResults; - }): DataValidatedEvent => ({ - type: DATA_VALIDATOR_EVENTS.DESIGN_VALIDATION_DONE, - data: { validationPayload, validationResults } - }), - - dataValidationFailed: ({ - validationPayload, - systemErrors - }: { - validationPayload: ValidationPayload; - systemErrors: SystemErrors; - }): DataValidationFailedEvent => ({ - type: DATA_VALIDATOR_EVENTS.DESIGN_VALIDATION_FAILED, - data: { validationPayload, systemErrors } - }) -}; - -interface ValidationMachineContext { - validationResults: ValidationResults | null; - validationPayload: ValidationPayload | null; - returnAddress: string | null; -} - -interface ValidateActorInput { - validationPayload: ValidationPayload; - prevValidationResults: ValidationResults; -} - -type ValidationMachineEvents = - | ValidateDataCommand - | DataValidatedEvent - | DataValidationFailedEvent - | ValidateActorDoneEvent; - -export const dataValidatorMachine = setup({ - types: { - context: {} as ValidationMachineContext, - events: {} as ValidationMachineEvents - }, - delays: { - debounceTimeout: 300 - }, - actions: { - setReturnAddress: assign({ - returnAddress: ({ event }) => (event as ValidateDataCommand).returnAddress - }), - setValidationPayload: assign({ - validationPayload: ({ event }) => (event as ValidateDataCommand).data.validationPayload - }), - - resetValidationPayload: assign({ - validationPayload: null - }), - - resetValidationResults: assign({ - validationResults: null - }), - setValidationResults: assign({ - validationResults: ({ event }) => (event as ValidateActorDoneEvent).output.validationResults - }) - }, - actors: { - ValidateActor: fromPromise(async ({ input }: { input: ValidateActorInput }) => { - console.log('Validating data', input); - throw new Error('not implemented'); - }) - } -}).createMachine({ - id: 'validationMachine', - - initial: 'idle', - - context: { - validationResults: null, - validationPayload: {}, //data to be used in the validation process like the design to validate - returnAddress: null // the address to send the validation result to - }, - - states: { - idle: { - description: - 'when the machine is idle , i.e no process is going on and the machine the ready to accept new request', - initial: 'waiting', - on: { - [DATA_VALIDATOR_COMMANDS.VALIDATE_DATA]: { - target: '.debouncing', - actions: ['setValidationPayload', 'setReturnAddress'] - } - }, - states: { - waiting: {}, - debouncing: { - after: { - debounceTimeout: '#validatingData' - } - } - } - }, - - validatingData: { - id: 'validatingData', - invoke: { - src: 'ValidateActor', - input: ({ context }: { context: ValidationMachineContext }) => ({ - validationPayload: context.validationPayload as ValidationPayload, - prevValidationResults: context.validationResults as ValidationResults - }), - onDone: { - target: 'idle', - actions: [ - 'setValidationResults', - reply( - ({ - context, - event - }: { - context: ValidationMachineContext; - event: ValidateActorDoneEvent; - }) => - dataValidatorEvents.dataValidated({ - validationPayload: context.validationPayload as ValidationPayload, - validationResults: event.output.validationResults - }) - ) as any - ] - }, - onError: { - target: 'idle', - actions: [ - reply( - ({ context, event }: { context: ValidationMachineContext; event: ErrorActorEvent }) => - dataValidatorEvents.dataValidationFailed({ - validationPayload: context.validationPayload as ValidationPayload, - systemErrors: event.error - }) - ) as any, - ({ event }) => console.error('Failed to validate data', event), - assign({ - validationResults: ({ event }) => `Failed to validate data: ${event.error || ''}` - }) - ] - } - } - } - } -}); - -type ValidationMachineSnapshot = SnapshotFrom<typeof dataValidatorMachine>; - -export const selectValidationResults = (state: ValidationMachineSnapshot) => - state.context?.validationResults; - -export const selectIsValidating = (state: ValidationMachineSnapshot) => - state.matches('validatingData'); diff --git a/src/actors/worker/README.md b/src/actors/worker/README.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/actors/worker/events.ts b/src/actors/worker/events.ts deleted file mode 100644 index 472120b98..000000000 --- a/src/actors/worker/events.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { AnyEventObject } from 'xstate'; - -export const WORKER_COMMANDS = { - START_ACTOR: 'START_ACTOR', - STOP_ACTOR: 'STOP_ACTOR', - SEND_EVENT: 'SEND_EVENT', - GET_STATE: 'GET_STATE' -}; - -export const workerCommands = { - startActor: () => ({ type: WORKER_COMMANDS.START_ACTOR }), - stopActor: () => ({ type: WORKER_COMMANDS.STOP_ACTOR }), - sendEvent: (event: AnyEventObject) => ({ type: WORKER_COMMANDS.SEND_EVENT, event }), - getState: () => ({ type: WORKER_COMMANDS.GET_STATE }) -}; - -export interface PROXY_EVENT { - type: 'PROXY_EVENT'; - data: { - event: AnyEventObject; - to: string; - }; -} - -export interface STATE_SNAPSHOT_EVENT { - type: 'STATE_SNAPSHOT'; - data: { - snapshot: unknown; - }; -} - -export const workerEvents = { - proxyEvent: (event: AnyEventObject, to: string) => ({ - type: 'PROXY_EVENT', - data: { event, to } - }), - - stateSnapshot: (snapshot: unknown) => ({ - type: 'STATE_SNAPSHOT', - data: { snapshot } - }) -}; - -export const WORKER_EVENTS = { - STATE_SNAPSHOT: 'STATE_SNAPSHOT', - PROXY_EVENT: 'PROXY_EVENT' -}; diff --git a/src/actors/worker/fromWorkerfiedActor.ts b/src/actors/worker/fromWorkerfiedActor.ts deleted file mode 100644 index 4d3f7dd02..000000000 --- a/src/actors/worker/fromWorkerfiedActor.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { - ActorLogic, - AnyEventObject, - AnyMachineSnapshot, - EventObject, - NonReducibleUnknown, - StateValue, - matchesState -} from 'xstate'; -import { AnyActorSystem } from 'xstate/dist/declarations/src/system'; -import { STATE_SNAPSHOT_EVENT, WORKER_EVENTS, workerCommands } from './events'; - -const instanceStates = /* #__PURE__ */ new WeakMap(); - -type WorkerInput = NonReducibleUnknown; - -type WorkerSnapshot = AnyMachineSnapshot; -type WorkerActorLogic<TEvent extends EventObject, TInput = NonReducibleUnknown> = ActorLogic< - WorkerSnapshot, - TEvent, - TInput, - AnyActorSystem, - EventObject // TEmitted ->; - -interface ProxyEvent { - type: 'PROXY_EVENT'; - data: { - event: AnyEventObject; - to: string; - }; -} - -export const fromWorkerfiedActor = ( - worker: Worker -): WorkerActorLogic<EventObject, WorkerInput> => ({ - config: Worker, - - start: (state, actorScope) => { - const { self, system } = actorScope; - console.log('Starting fromWorkerActor [+]', state, actorScope); - worker.postMessage(workerCommands.startActor()); - const workerState = { - worker, - snapshot: null - }; - - worker.addEventListener('message', (event) => { - const eventFromWorker = event.data as AnyEventObject; - if (eventFromWorker.type == 'STATE_SNAPSHOT') { - self.send(eventFromWorker); - return state; - } - - if (event.type === WORKER_EVENTS.PROXY_EVENT) { - const proxyEvent = event as ProxyEvent; - if (proxyEvent.data.to === 'parent' && self._parent) { - console.log('Relaying to parent', proxyEvent.data); - self._parent.send(proxyEvent.data.event); - return state; - } - - system.get(proxyEvent.data.to).send(proxyEvent.data.event); - return state; - } - }); - - instanceStates.set(self, workerState); - }, - transition: (state, event, actorScope) => { - const { self } = actorScope; - const workerState = instanceStates.get(self); - if (event.type === 'xstate.stop') { - console.log('Stopping fromWorkerActor...', state, event, actorScope); - workerState.worker.postMessage(workerCommands.stopActor()); - workerState.worker.terminate(); - return { - ...state, - status: 'stopped', - error: undefined - }; - } - if (event.type == WORKER_EVENTS.STATE_SNAPSHOT) { - const snapshot = (event as STATE_SNAPSHOT_EVENT).data.snapshot as AnyMachineSnapshot; - return { - ...state, - ...(snapshot || {}) - }; - } - - try { - workerState.worker.postMessage(workerCommands.sendEvent(event)); - } catch (error) { - console.error('Error sending event to worker', error, event); - } - const nextState = { - ...state - }; - return nextState; - }, - getInitialSnapshot: (_, input) => { - return { - status: 'active', - output: undefined, - error: undefined, - value: 'created', - input, - tags: [], - historyValue: undefined, - context: {}, - matches: function (value: StateValue) { - const currentValue = (this as WorkerSnapshot).value; - return matchesState(value, currentValue); - } - } as unknown as AnyMachineSnapshot; - }, - - getPersistedSnapshot: (snapshot) => snapshot, - restoreSnapshot: (snapshot) => snapshot as WorkerSnapshot -}); diff --git a/src/actors/worker/index.ts b/src/actors/worker/index.ts deleted file mode 100644 index 1f69094c8..000000000 --- a/src/actors/worker/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { fromWorkerfiedActor } from './fromWorkerfiedActor'; -export { workerfyActor } from './workerfy'; diff --git a/src/actors/worker/workerfy.ts b/src/actors/worker/workerfy.ts deleted file mode 100644 index 5308eb7ca..000000000 --- a/src/actors/worker/workerfy.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { AnyActorLogic, AnyActorRef, Subscription, createActor, setup } from 'xstate'; -import { WORKER_COMMANDS, workerEvents } from './events'; - -interface ProxyActorContext { - proxyToId: string; -} - -interface ProxyActorInput { - proxyToId: string; -} - -const ProxyActor = setup({ - types: { - context: {} as ProxyActorContext, - input: {} as ProxyActorInput - } -}).createMachine({ - id: 'proxy-actor', - initial: 'idle', - context: ({ input }) => ({ - proxyToId: input.proxyToId - }), - - states: { - idle: { - on: { - '*': { - actions: [ - ({ event, context }) => console.log('Proxying event', event, 'to', context.proxyToId), - ({ event, context }) => postMessage(workerEvents.proxyEvent(event, context.proxyToId)) - ] - } - } - } - } -}); - -const syncSnapshot = (actorRef: AnyActorRef) => { - return actorRef.subscribe((snapshot) => { - const jsonSnapshot = snapshot.toJSON(); - delete jsonSnapshot.children; // children are not serializable - try { - postMessage(workerEvents.stateSnapshot(jsonSnapshot)); - } catch (error) { - console.error('Error sending snapshot from worker', error, jsonSnapshot); - } - }); -}; - -export const workerfyActor = (actor: AnyActorLogic) => { - let actorRef: AnyActorRef | null = null; - let snapshotSubscription: Subscription | null = null; - const parentProxy = createActor(ProxyActor, { - input: { - proxyToId: 'parent' - } - }).start(); - - addEventListener('message', (event) => { - if (event.data.type === WORKER_COMMANDS.START_ACTOR) { - actorRef = createActor(actor, { - input: event.data.input, - parent: parentProxy - }); - - snapshotSubscription = syncSnapshot(actorRef); - actorRef.start(); - } - - if (event.data.type === WORKER_COMMANDS.STOP_ACTOR) { - snapshotSubscription?.unsubscribe && snapshotSubscription.unsubscribe(); - actorRef?.stop && actorRef.stop(); - } - - if (event.data.type === WORKER_COMMANDS.SEND_EVENT) { - if (!actorRef) { - throw new Error('Cannot send event to uninitialized actor'); - } - actorRef.send(event.data.event); - } - - if (event.data.type === WORKER_COMMANDS.GET_STATE) { - if (!actorRef) { - throw new Error('Cannot get state of uninitialized actor'); - } - const snapshot = actorRef.getSnapshot().toJSON(); - postMessage(workerEvents.stateSnapshot(snapshot)); - } - }); - - return actorRef; -}; diff --git a/src/assets/fonts/QanelasSoftBlack.otf b/src/assets/fonts/QanelasSoftBlack.otf deleted file mode 100644 index 27ed8f785..000000000 Binary files a/src/assets/fonts/QanelasSoftBlack.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBlack.woff b/src/assets/fonts/QanelasSoftBlack.woff deleted file mode 100644 index 36bcc774c..000000000 Binary files a/src/assets/fonts/QanelasSoftBlack.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBlack.woff2 b/src/assets/fonts/QanelasSoftBlack.woff2 deleted file mode 100644 index 22a9296b4..000000000 Binary files a/src/assets/fonts/QanelasSoftBlack.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBlackItalic.otf b/src/assets/fonts/QanelasSoftBlackItalic.otf deleted file mode 100644 index 18c212bf1..000000000 Binary files a/src/assets/fonts/QanelasSoftBlackItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBlackItalic.woff b/src/assets/fonts/QanelasSoftBlackItalic.woff deleted file mode 100644 index 70a5f2963..000000000 Binary files a/src/assets/fonts/QanelasSoftBlackItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBlackItalic.woff2 b/src/assets/fonts/QanelasSoftBlackItalic.woff2 deleted file mode 100644 index 35ac0a1d5..000000000 Binary files a/src/assets/fonts/QanelasSoftBlackItalic.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBold.otf b/src/assets/fonts/QanelasSoftBold.otf deleted file mode 100644 index d6b53365c..000000000 Binary files a/src/assets/fonts/QanelasSoftBold.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBold.woff b/src/assets/fonts/QanelasSoftBold.woff deleted file mode 100644 index 2f47986a7..000000000 Binary files a/src/assets/fonts/QanelasSoftBold.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBold.woff2 b/src/assets/fonts/QanelasSoftBold.woff2 deleted file mode 100644 index e3b02e239..000000000 Binary files a/src/assets/fonts/QanelasSoftBold.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBoldItalic.otf b/src/assets/fonts/QanelasSoftBoldItalic.otf deleted file mode 100644 index 900536357..000000000 Binary files a/src/assets/fonts/QanelasSoftBoldItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBoldItalic.woff b/src/assets/fonts/QanelasSoftBoldItalic.woff deleted file mode 100644 index 3e30ef6a1..000000000 Binary files a/src/assets/fonts/QanelasSoftBoldItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftBoldItalic.woff2 b/src/assets/fonts/QanelasSoftBoldItalic.woff2 deleted file mode 100644 index bc258b004..000000000 Binary files a/src/assets/fonts/QanelasSoftBoldItalic.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftExtraBold.otf b/src/assets/fonts/QanelasSoftExtraBold.otf deleted file mode 100644 index c0e3bc936..000000000 Binary files a/src/assets/fonts/QanelasSoftExtraBold.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftExtraBold.woff b/src/assets/fonts/QanelasSoftExtraBold.woff deleted file mode 100644 index 6a48c4763..000000000 Binary files a/src/assets/fonts/QanelasSoftExtraBold.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftExtraBold.woff2 b/src/assets/fonts/QanelasSoftExtraBold.woff2 deleted file mode 100644 index 50efd05b3..000000000 Binary files a/src/assets/fonts/QanelasSoftExtraBold.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftExtraBoldItalic.otf b/src/assets/fonts/QanelasSoftExtraBoldItalic.otf deleted file mode 100644 index cd805cadd..000000000 Binary files a/src/assets/fonts/QanelasSoftExtraBoldItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftExtraBoldItalic.woff b/src/assets/fonts/QanelasSoftExtraBoldItalic.woff deleted file mode 100644 index bf39b3a11..000000000 Binary files a/src/assets/fonts/QanelasSoftExtraBoldItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftExtraBoldItalic.woff2 b/src/assets/fonts/QanelasSoftExtraBoldItalic.woff2 deleted file mode 100644 index d23f2028c..000000000 Binary files a/src/assets/fonts/QanelasSoftExtraBoldItalic.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftHeavy.otf b/src/assets/fonts/QanelasSoftHeavy.otf deleted file mode 100644 index 28c2d4d53..000000000 Binary files a/src/assets/fonts/QanelasSoftHeavy.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftHeavy.woff b/src/assets/fonts/QanelasSoftHeavy.woff deleted file mode 100644 index ddf971a0b..000000000 Binary files a/src/assets/fonts/QanelasSoftHeavy.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftHeavyItalic.otf b/src/assets/fonts/QanelasSoftHeavyItalic.otf deleted file mode 100644 index 58e83f9c4..000000000 Binary files a/src/assets/fonts/QanelasSoftHeavyItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftHeavyItalic.woff b/src/assets/fonts/QanelasSoftHeavyItalic.woff deleted file mode 100644 index 49b349b65..000000000 Binary files a/src/assets/fonts/QanelasSoftHeavyItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftHeavyItalic.woff2 b/src/assets/fonts/QanelasSoftHeavyItalic.woff2 deleted file mode 100644 index eede765c8..000000000 Binary files a/src/assets/fonts/QanelasSoftHeavyItalic.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftLight.otf b/src/assets/fonts/QanelasSoftLight.otf deleted file mode 100644 index 1c34d7dcf..000000000 Binary files a/src/assets/fonts/QanelasSoftLight.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftLight.woff b/src/assets/fonts/QanelasSoftLight.woff deleted file mode 100644 index 87f6f11e8..000000000 Binary files a/src/assets/fonts/QanelasSoftLight.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftLight.woff2 b/src/assets/fonts/QanelasSoftLight.woff2 deleted file mode 100644 index c58b8e0c5..000000000 Binary files a/src/assets/fonts/QanelasSoftLight.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftLightItalic.otf b/src/assets/fonts/QanelasSoftLightItalic.otf deleted file mode 100644 index 382bef170..000000000 Binary files a/src/assets/fonts/QanelasSoftLightItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftLightItalic.woff b/src/assets/fonts/QanelasSoftLightItalic.woff deleted file mode 100644 index b28ce2a8a..000000000 Binary files a/src/assets/fonts/QanelasSoftLightItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftLightItalic.woff2 b/src/assets/fonts/QanelasSoftLightItalic.woff2 deleted file mode 100644 index aff0681e4..000000000 Binary files a/src/assets/fonts/QanelasSoftLightItalic.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftMedium.otf b/src/assets/fonts/QanelasSoftMedium.otf deleted file mode 100644 index a0dd71907..000000000 Binary files a/src/assets/fonts/QanelasSoftMedium.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftMedium.woff b/src/assets/fonts/QanelasSoftMedium.woff deleted file mode 100644 index 56eaf4880..000000000 Binary files a/src/assets/fonts/QanelasSoftMedium.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftMediumItalic.otf b/src/assets/fonts/QanelasSoftMediumItalic.otf deleted file mode 100644 index 91676a97f..000000000 Binary files a/src/assets/fonts/QanelasSoftMediumItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftMediumItalic.woff b/src/assets/fonts/QanelasSoftMediumItalic.woff deleted file mode 100644 index d7bc54bfe..000000000 Binary files a/src/assets/fonts/QanelasSoftMediumItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftRegular.otf b/src/assets/fonts/QanelasSoftRegular.otf deleted file mode 100644 index 249b8a27b..000000000 Binary files a/src/assets/fonts/QanelasSoftRegular.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftRegular.woff b/src/assets/fonts/QanelasSoftRegular.woff deleted file mode 100644 index 66f70268b..000000000 Binary files a/src/assets/fonts/QanelasSoftRegular.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftRegular.woff2 b/src/assets/fonts/QanelasSoftRegular.woff2 deleted file mode 100644 index 7c3a5ef76..000000000 Binary files a/src/assets/fonts/QanelasSoftRegular.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftRegularItalic.otf b/src/assets/fonts/QanelasSoftRegularItalic.otf deleted file mode 100644 index e3898f217..000000000 Binary files a/src/assets/fonts/QanelasSoftRegularItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftRegularItalic.woff b/src/assets/fonts/QanelasSoftRegularItalic.woff deleted file mode 100644 index c3a250d61..000000000 Binary files a/src/assets/fonts/QanelasSoftRegularItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftRegularItalic.woff2 b/src/assets/fonts/QanelasSoftRegularItalic.woff2 deleted file mode 100644 index f6defa958..000000000 Binary files a/src/assets/fonts/QanelasSoftRegularItalic.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftSemiBold.otf b/src/assets/fonts/QanelasSoftSemiBold.otf deleted file mode 100644 index 7463179c1..000000000 Binary files a/src/assets/fonts/QanelasSoftSemiBold.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftSemiBold.woff b/src/assets/fonts/QanelasSoftSemiBold.woff deleted file mode 100644 index 9923de0a7..000000000 Binary files a/src/assets/fonts/QanelasSoftSemiBold.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftSemiBold.woff2 b/src/assets/fonts/QanelasSoftSemiBold.woff2 deleted file mode 100644 index d331d9418..000000000 Binary files a/src/assets/fonts/QanelasSoftSemiBold.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftSemiBoldItalic.otf b/src/assets/fonts/QanelasSoftSemiBoldItalic.otf deleted file mode 100644 index 7a2a99d4e..000000000 Binary files a/src/assets/fonts/QanelasSoftSemiBoldItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftSemiBoldItalic.woff b/src/assets/fonts/QanelasSoftSemiBoldItalic.woff deleted file mode 100644 index 156d7d726..000000000 Binary files a/src/assets/fonts/QanelasSoftSemiBoldItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftSemiBoldItalic.woff2 b/src/assets/fonts/QanelasSoftSemiBoldItalic.woff2 deleted file mode 100644 index 781aa7359..000000000 Binary files a/src/assets/fonts/QanelasSoftSemiBoldItalic.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftThin.otf b/src/assets/fonts/QanelasSoftThin.otf deleted file mode 100644 index cd81b0c63..000000000 Binary files a/src/assets/fonts/QanelasSoftThin.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftThin.woff b/src/assets/fonts/QanelasSoftThin.woff deleted file mode 100644 index 1a2b56b47..000000000 Binary files a/src/assets/fonts/QanelasSoftThin.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftThin.woff2 b/src/assets/fonts/QanelasSoftThin.woff2 deleted file mode 100644 index 6101f5804..000000000 Binary files a/src/assets/fonts/QanelasSoftThin.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftThinItalic.otf b/src/assets/fonts/QanelasSoftThinItalic.otf deleted file mode 100644 index cb2e650be..000000000 Binary files a/src/assets/fonts/QanelasSoftThinItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftThinItalic.woff b/src/assets/fonts/QanelasSoftThinItalic.woff deleted file mode 100644 index 96e7d3c8c..000000000 Binary files a/src/assets/fonts/QanelasSoftThinItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftThinItalic.woff2 b/src/assets/fonts/QanelasSoftThinItalic.woff2 deleted file mode 100644 index 7d5aa08dd..000000000 Binary files a/src/assets/fonts/QanelasSoftThinItalic.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftUltraLight.otf b/src/assets/fonts/QanelasSoftUltraLight.otf deleted file mode 100644 index 86a0b545e..000000000 Binary files a/src/assets/fonts/QanelasSoftUltraLight.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftUltraLight.woff b/src/assets/fonts/QanelasSoftUltraLight.woff deleted file mode 100644 index 182c2b69d..000000000 Binary files a/src/assets/fonts/QanelasSoftUltraLight.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftUltraLight.woff2 b/src/assets/fonts/QanelasSoftUltraLight.woff2 deleted file mode 100644 index 6f41f53e0..000000000 Binary files a/src/assets/fonts/QanelasSoftUltraLight.woff2 and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftUltraLightItalic.otf b/src/assets/fonts/QanelasSoftUltraLightItalic.otf deleted file mode 100644 index bd9637b2c..000000000 Binary files a/src/assets/fonts/QanelasSoftUltraLightItalic.otf and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftUltraLightItalic.woff b/src/assets/fonts/QanelasSoftUltraLightItalic.woff deleted file mode 100644 index ee7234752..000000000 Binary files a/src/assets/fonts/QanelasSoftUltraLightItalic.woff and /dev/null differ diff --git a/src/assets/fonts/QanelasSoftUltraLightItalic.woff2 b/src/assets/fonts/QanelasSoftUltraLightItalic.woff2 deleted file mode 100644 index 3c5ed7f34..000000000 Binary files a/src/assets/fonts/QanelasSoftUltraLightItalic.woff2 and /dev/null differ diff --git a/src/assets/logo/sistent_colored.svg b/src/assets/logo/sistent_colored.svg deleted file mode 100644 index 8e3702c3d..000000000 --- a/src/assets/logo/sistent_colored.svg +++ /dev/null @@ -1,127 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" - "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> - -<svg xmlns="http://www.w3.org/2000/svg" - width="3.22667in" height="3.2in" - viewBox="0 0 968 960"> - <path id="Selection" - fill="#00D3A9" - d="M 526.00,526.00 - C 526.00,526.00 495.00,546.33 495.00,546.33 - 491.98,548.34 484.31,554.17 481.00,554.17 - 477.78,554.17 472.64,550.02 470.00,548.14 - 470.00,548.14 446.00,531.42 446.00,531.42 - 446.00,531.42 357.00,468.86 357.00,468.86 - 357.00,468.86 335.00,454.00 335.00,454.00 - 332.65,452.43 326.34,448.60 324.99,446.48 - 323.75,444.53 324.00,441.26 324.00,439.00 - 324.00,439.00 324.00,396.00 324.00,396.00 - 324.00,396.00 325.00,380.00 325.00,380.00 - 325.00,380.00 325.00,353.00 325.00,353.00 - 325.00,350.57 324.80,347.33 326.02,345.18 - 327.61,342.40 333.18,339.50 336.00,337.66 - 336.00,337.66 360.00,321.67 360.00,321.67 - 360.00,321.67 446.00,263.33 446.00,263.33 - 446.00,263.33 470.00,246.88 470.00,246.88 - 472.26,245.33 480.89,239.48 483.00,238.98 - 486.25,238.21 489.40,240.74 492.00,242.42 - 492.00,242.42 512.00,255.97 512.00,255.97 - 512.00,255.97 530.00,267.74 530.00,267.74 - 530.00,267.74 589.00,308.00 589.00,308.00 - 589.00,308.00 707.00,389.33 707.00,389.33 - 707.00,389.33 734.00,407.67 734.00,407.67 - 736.60,409.40 744.59,414.28 746.01,416.52 - 747.14,418.30 748.00,433.08 748.00,436.00 - 748.00,436.00 748.00,469.00 748.00,469.00 - 748.00,469.00 749.00,486.00 749.00,486.00 - 749.00,486.00 749.00,532.00 749.00,532.00 - 749.00,532.00 750.00,547.00 750.00,547.00 - 750.00,547.00 750.00,573.00 750.00,573.00 - 749.98,583.54 748.80,581.12 735.00,589.40 - 735.00,589.40 688.00,616.00 688.00,616.00 - 686.30,610.03 687.00,601.38 686.96,595.00 - 686.96,595.00 686.96,581.00 686.96,581.00 - 686.96,581.00 686.00,571.00 686.00,571.00 - 686.00,571.00 686.00,511.00 686.00,511.00 - 686.00,511.00 685.00,496.00 685.00,496.00 - 685.00,496.00 685.00,454.00 685.00,454.00 - 684.98,442.33 680.02,441.60 671.00,435.28 - 671.00,435.28 641.00,414.28 641.00,414.28 - 641.00,414.28 526.00,333.28 526.00,333.28 - 526.00,333.28 494.00,310.58 494.00,310.58 - 491.02,308.47 483.29,302.47 480.00,302.09 - 477.25,301.77 474.29,303.68 472.00,305.01 - 472.00,305.01 455.00,315.68 455.00,315.68 - 455.00,315.68 398.00,352.05 398.00,352.05 - 393.38,354.95 381.46,361.23 379.60,366.04 - 378.88,367.88 379.00,370.99 378.96,373.00 - 378.96,373.00 378.96,389.00 378.96,389.00 - 378.96,389.00 378.00,401.00 378.00,401.00 - 378.00,401.00 378.00,424.00 378.00,424.00 - 378.00,424.00 393.00,432.35 393.00,432.35 - 393.00,432.35 420.00,451.00 420.00,451.00 - 420.00,451.00 493.00,502.14 493.00,502.14 - 493.00,502.14 526.00,526.00 526.00,526.00 Z" /> - <path id="Selection #1" - fill="#00B39F" - d="M 438.00,434.00 - C 438.00,434.00 470.00,414.19 470.00,414.19 - 473.45,412.08 479.96,407.24 484.00,407.63 - 487.14,407.92 493.19,412.46 496.00,414.33 - 496.00,414.33 521.00,431.12 521.00,431.12 - 521.00,431.12 611.00,492.00 611.00,492.00 - 611.00,492.00 634.00,507.67 634.00,507.67 - 636.51,509.34 642.55,512.95 643.98,515.32 - 645.22,517.39 645.00,520.63 645.00,523.00 - 645.00,523.00 645.00,563.00 645.00,563.00 - 645.00,563.00 646.00,579.00 646.00,579.00 - 646.00,579.00 646.00,628.00 646.00,628.00 - 646.00,630.15 646.26,633.56 645.01,635.37 - 643.82,637.09 637.14,640.72 635.00,642.00 - 635.00,642.00 611.00,656.60 611.00,656.60 - 611.00,656.60 523.00,711.81 523.00,711.81 - 523.00,711.81 497.00,728.00 497.00,728.00 - 494.73,729.37 488.10,733.76 486.00,734.16 - 482.90,734.75 480.40,732.66 478.00,731.00 - 478.00,731.00 461.00,718.71 461.00,718.71 - 461.00,718.71 393.00,670.67 393.00,670.67 - 393.00,670.67 269.00,584.33 269.00,584.33 - 269.00,584.33 242.00,565.34 242.00,565.34 - 239.13,563.37 231.57,558.54 230.02,555.82 - 228.54,553.21 228.97,545.27 229.00,542.00 - 229.00,542.00 230.00,527.00 230.00,527.00 - 230.00,527.00 231.00,466.00 231.00,466.00 - 231.00,466.00 232.00,449.00 232.00,449.00 - 232.00,449.00 233.00,416.00 233.00,416.00 - 233.01,412.12 232.62,408.47 235.43,405.38 - 235.43,405.38 252.00,394.34 252.00,394.34 - 252.00,394.34 275.00,379.95 275.00,379.95 - 280.18,376.66 285.11,372.86 291.00,371.00 - 293.83,380.95 291.02,396.51 291.00,407.00 - 291.00,407.00 291.00,439.00 291.00,439.00 - 291.00,439.00 290.00,454.00 290.00,454.00 - 290.00,454.00 290.00,475.00 290.00,475.00 - 290.00,475.00 289.04,487.00 289.04,487.00 - 289.04,487.00 289.04,502.00 289.04,502.00 - 289.04,502.00 288.00,516.00 288.00,516.00 - 287.97,519.15 287.62,525.29 289.02,527.96 - 290.73,531.21 297.77,535.78 301.00,537.93 - 301.00,537.93 326.00,555.00 326.00,555.00 - 326.00,555.00 372.00,587.28 372.00,587.28 - 372.00,587.28 441.00,636.12 441.00,636.12 - 441.00,636.12 474.00,659.87 474.00,659.87 - 476.69,661.89 484.04,668.13 487.28,667.77 - 489.57,667.53 493.99,664.34 496.00,663.00 - 496.00,663.00 512.00,652.43 512.00,652.43 - 512.00,652.43 567.00,615.66 567.00,615.66 - 571.89,612.33 582.42,606.35 584.40,601.00 - 585.11,599.07 585.00,596.08 585.00,594.00 - 585.00,594.00 585.00,547.00 585.00,547.00 - 585.00,544.69 585.14,541.20 584.26,539.09 - 582.62,535.13 570.97,528.06 567.00,525.28 - 567.00,525.28 517.00,490.58 517.00,490.58 - 517.00,490.58 466.00,454.98 466.00,454.98 - 466.00,454.98 438.00,436.00 438.00,436.00 - 438.00,436.00 438.00,434.00 438.00,434.00 Z" /> -</svg> diff --git a/src/assets/logo/sistent_white.svg b/src/assets/logo/sistent_white.svg deleted file mode 100644 index e0b13bf1a..000000000 --- a/src/assets/logo/sistent_white.svg +++ /dev/null @@ -1,127 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" - "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> - -<svg xmlns="http://www.w3.org/2000/svg" - width="3.22667in" height="3.2in" - viewBox="0 0 968 960"> - <path id="Selection" - fill="#ffffff" - d="M 526.00,526.00 - C 526.00,526.00 495.00,546.33 495.00,546.33 - 491.98,548.34 484.31,554.17 481.00,554.17 - 477.78,554.17 472.64,550.02 470.00,548.14 - 470.00,548.14 446.00,531.42 446.00,531.42 - 446.00,531.42 357.00,468.86 357.00,468.86 - 357.00,468.86 335.00,454.00 335.00,454.00 - 332.65,452.43 326.34,448.60 324.99,446.48 - 323.75,444.53 324.00,441.26 324.00,439.00 - 324.00,439.00 324.00,396.00 324.00,396.00 - 324.00,396.00 325.00,380.00 325.00,380.00 - 325.00,380.00 325.00,353.00 325.00,353.00 - 325.00,350.57 324.80,347.33 326.02,345.18 - 327.61,342.40 333.18,339.50 336.00,337.66 - 336.00,337.66 360.00,321.67 360.00,321.67 - 360.00,321.67 446.00,263.33 446.00,263.33 - 446.00,263.33 470.00,246.88 470.00,246.88 - 472.26,245.33 480.89,239.48 483.00,238.98 - 486.25,238.21 489.40,240.74 492.00,242.42 - 492.00,242.42 512.00,255.97 512.00,255.97 - 512.00,255.97 530.00,267.74 530.00,267.74 - 530.00,267.74 589.00,308.00 589.00,308.00 - 589.00,308.00 707.00,389.33 707.00,389.33 - 707.00,389.33 734.00,407.67 734.00,407.67 - 736.60,409.40 744.59,414.28 746.01,416.52 - 747.14,418.30 748.00,433.08 748.00,436.00 - 748.00,436.00 748.00,469.00 748.00,469.00 - 748.00,469.00 749.00,486.00 749.00,486.00 - 749.00,486.00 749.00,532.00 749.00,532.00 - 749.00,532.00 750.00,547.00 750.00,547.00 - 750.00,547.00 750.00,573.00 750.00,573.00 - 749.98,583.54 748.80,581.12 735.00,589.40 - 735.00,589.40 688.00,616.00 688.00,616.00 - 686.30,610.03 687.00,601.38 686.96,595.00 - 686.96,595.00 686.96,581.00 686.96,581.00 - 686.96,581.00 686.00,571.00 686.00,571.00 - 686.00,571.00 686.00,511.00 686.00,511.00 - 686.00,511.00 685.00,496.00 685.00,496.00 - 685.00,496.00 685.00,454.00 685.00,454.00 - 684.98,442.33 680.02,441.60 671.00,435.28 - 671.00,435.28 641.00,414.28 641.00,414.28 - 641.00,414.28 526.00,333.28 526.00,333.28 - 526.00,333.28 494.00,310.58 494.00,310.58 - 491.02,308.47 483.29,302.47 480.00,302.09 - 477.25,301.77 474.29,303.68 472.00,305.01 - 472.00,305.01 455.00,315.68 455.00,315.68 - 455.00,315.68 398.00,352.05 398.00,352.05 - 393.38,354.95 381.46,361.23 379.60,366.04 - 378.88,367.88 379.00,370.99 378.96,373.00 - 378.96,373.00 378.96,389.00 378.96,389.00 - 378.96,389.00 378.00,401.00 378.00,401.00 - 378.00,401.00 378.00,424.00 378.00,424.00 - 378.00,424.00 393.00,432.35 393.00,432.35 - 393.00,432.35 420.00,451.00 420.00,451.00 - 420.00,451.00 493.00,502.14 493.00,502.14 - 493.00,502.14 526.00,526.00 526.00,526.00 Z" /> - <path id="Selection #1" - fill="#B1B6B8" - d="M 438.00,434.00 - C 438.00,434.00 470.00,414.19 470.00,414.19 - 473.45,412.08 479.96,407.24 484.00,407.63 - 487.14,407.92 493.19,412.46 496.00,414.33 - 496.00,414.33 521.00,431.12 521.00,431.12 - 521.00,431.12 611.00,492.00 611.00,492.00 - 611.00,492.00 634.00,507.67 634.00,507.67 - 636.51,509.34 642.55,512.95 643.98,515.32 - 645.22,517.39 645.00,520.63 645.00,523.00 - 645.00,523.00 645.00,563.00 645.00,563.00 - 645.00,563.00 646.00,579.00 646.00,579.00 - 646.00,579.00 646.00,628.00 646.00,628.00 - 646.00,630.15 646.26,633.56 645.01,635.37 - 643.82,637.09 637.14,640.72 635.00,642.00 - 635.00,642.00 611.00,656.60 611.00,656.60 - 611.00,656.60 523.00,711.81 523.00,711.81 - 523.00,711.81 497.00,728.00 497.00,728.00 - 494.73,729.37 488.10,733.76 486.00,734.16 - 482.90,734.75 480.40,732.66 478.00,731.00 - 478.00,731.00 461.00,718.71 461.00,718.71 - 461.00,718.71 393.00,670.67 393.00,670.67 - 393.00,670.67 269.00,584.33 269.00,584.33 - 269.00,584.33 242.00,565.34 242.00,565.34 - 239.13,563.37 231.57,558.54 230.02,555.82 - 228.54,553.21 228.97,545.27 229.00,542.00 - 229.00,542.00 230.00,527.00 230.00,527.00 - 230.00,527.00 231.00,466.00 231.00,466.00 - 231.00,466.00 232.00,449.00 232.00,449.00 - 232.00,449.00 233.00,416.00 233.00,416.00 - 233.01,412.12 232.62,408.47 235.43,405.38 - 235.43,405.38 252.00,394.34 252.00,394.34 - 252.00,394.34 275.00,379.95 275.00,379.95 - 280.18,376.66 285.11,372.86 291.00,371.00 - 293.83,380.95 291.02,396.51 291.00,407.00 - 291.00,407.00 291.00,439.00 291.00,439.00 - 291.00,439.00 290.00,454.00 290.00,454.00 - 290.00,454.00 290.00,475.00 290.00,475.00 - 290.00,475.00 289.04,487.00 289.04,487.00 - 289.04,487.00 289.04,502.00 289.04,502.00 - 289.04,502.00 288.00,516.00 288.00,516.00 - 287.97,519.15 287.62,525.29 289.02,527.96 - 290.73,531.21 297.77,535.78 301.00,537.93 - 301.00,537.93 326.00,555.00 326.00,555.00 - 326.00,555.00 372.00,587.28 372.00,587.28 - 372.00,587.28 441.00,636.12 441.00,636.12 - 441.00,636.12 474.00,659.87 474.00,659.87 - 476.69,661.89 484.04,668.13 487.28,667.77 - 489.57,667.53 493.99,664.34 496.00,663.00 - 496.00,663.00 512.00,652.43 512.00,652.43 - 512.00,652.43 567.00,615.66 567.00,615.66 - 571.89,612.33 582.42,606.35 584.40,601.00 - 585.11,599.07 585.00,596.08 585.00,594.00 - 585.00,594.00 585.00,547.00 585.00,547.00 - 585.00,544.69 585.14,541.20 584.26,539.09 - 582.62,535.13 570.97,528.06 567.00,525.28 - 567.00,525.28 517.00,490.58 517.00,490.58 - 517.00,490.58 466.00,454.98 466.00,454.98 - 466.00,454.98 438.00,436.00 438.00,436.00 - 438.00,436.00 438.00,434.00 438.00,434.00 Z" /> -</svg> diff --git a/src/base/Accordion/Accordion.tsx b/src/base/Accordion/Accordion.tsx deleted file mode 100644 index 054a8780e..000000000 --- a/src/base/Accordion/Accordion.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Accordion as MuiAccordion, type AccordionProps as MuiAccordionProps } from '@mui/material'; -import React from 'react'; - -const Accordion = React.forwardRef<HTMLDivElement, MuiAccordionProps>((props, ref) => { - return <MuiAccordion {...props} ref={ref} />; -}); - -export default Accordion; diff --git a/src/base/Accordion/index.tsx b/src/base/Accordion/index.tsx deleted file mode 100644 index 4d6f81132..000000000 --- a/src/base/Accordion/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { AccordionProps } from '@mui/material'; -import Accordion from './Accordion'; - -export { Accordion }; -export type { AccordionProps }; diff --git a/src/base/AccordionActions/AccordionActions.tsx b/src/base/AccordionActions/AccordionActions.tsx deleted file mode 100644 index 79433bb75..000000000 --- a/src/base/AccordionActions/AccordionActions.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { - AccordionActions as MuiAccordionActions, - type AccordionActionsProps as MuiAccordionActionsProps -} from '@mui/material'; - -import React from 'react'; - -const AccordionActions = React.forwardRef<HTMLDivElement, MuiAccordionActionsProps>( - (props, ref) => { - return <MuiAccordionActions {...props} ref={ref} />; - } -); - -export default AccordionActions; diff --git a/src/base/AccordionActions/index.tsx b/src/base/AccordionActions/index.tsx deleted file mode 100644 index 3ce562a0e..000000000 --- a/src/base/AccordionActions/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { AccordionProps } from '@mui/material'; -import AccordionActions from './AccordionActions'; - -export { AccordionActions }; -export type { AccordionProps }; diff --git a/src/base/AccordionDetails/AccordionDetails.tsx b/src/base/AccordionDetails/AccordionDetails.tsx deleted file mode 100644 index 7c263f5f5..000000000 --- a/src/base/AccordionDetails/AccordionDetails.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { - AccordionDetails as MuiAccordionDetails, - type AccordionDetailsProps as MuiAccordionDetailsProps -} from '@mui/material'; - -import React from 'react'; - -const AccordionDetails = React.forwardRef<HTMLDivElement, MuiAccordionDetailsProps>( - (props, ref) => { - return <MuiAccordionDetails {...props} ref={ref} />; - } -); - -export default AccordionDetails; diff --git a/src/base/AccordionDetails/index.tsx b/src/base/AccordionDetails/index.tsx deleted file mode 100644 index c6cd5271a..000000000 --- a/src/base/AccordionDetails/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { AccordionDetailsProps } from '@mui/material'; -import AccordionDetails from './AccordionDetails'; - -export { AccordionDetails }; -export type { AccordionDetailsProps }; diff --git a/src/base/AccordionSummary/AccordionSummary.tsx b/src/base/AccordionSummary/AccordionSummary.tsx deleted file mode 100644 index 009cf4918..000000000 --- a/src/base/AccordionSummary/AccordionSummary.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { - AccordionSummary as MuiAccordionSummary, - type AccordionSummaryProps as MuiAccordionSummaryProps -} from '@mui/material'; -import React from 'react'; - -const AccordionSummary = React.forwardRef<HTMLDivElement, MuiAccordionSummaryProps>( - (props, ref) => { - return <MuiAccordionSummary {...props} ref={ref} />; - } -); - -export default AccordionSummary; diff --git a/src/base/AccordionSummary/index.tsx b/src/base/AccordionSummary/index.tsx deleted file mode 100644 index f464f39a3..000000000 --- a/src/base/AccordionSummary/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { AccordionSummaryProps } from '@mui/material'; -import AccordionSummary from './AccordionSummary'; - -export { AccordionSummary }; -export type { AccordionSummaryProps }; diff --git a/src/base/Alert/Alert.tsx b/src/base/Alert/Alert.tsx deleted file mode 100644 index 4ddaf2dcd..000000000 --- a/src/base/Alert/Alert.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Alert as MuiAlert, AlertProps as MuiAlertProps } from '@mui/material'; -import React from 'react'; - -export const Alert = React.forwardRef<HTMLDivElement, MuiAlertProps>((props, ref) => { - return <MuiAlert ref={ref} {...props} />; -}); - -export default Alert; diff --git a/src/base/Alert/index.ts b/src/base/Alert/index.ts deleted file mode 100644 index 5adeb5a0c..000000000 --- a/src/base/Alert/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Alert } from './Alert'; diff --git a/src/base/AlertTitle/AlertTitle.tsx b/src/base/AlertTitle/AlertTitle.tsx deleted file mode 100644 index aeda13d14..000000000 --- a/src/base/AlertTitle/AlertTitle.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { - AlertTitle as MuiAlertTitle, - type AlertTitleProps as MuiAlertTitleProps -} from '@mui/material'; - -export function AlertTitle(props: MuiAlertTitleProps): JSX.Element { - return <MuiAlertTitle {...props} />; -} - -export default AlertTitle; diff --git a/src/base/AlertTitle/index.ts b/src/base/AlertTitle/index.ts deleted file mode 100644 index 0586f8491..000000000 --- a/src/base/AlertTitle/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { AlertTitleProps } from '@mui/material'; -import AlertTitle from './AlertTitle'; - -export { AlertTitle }; -export type { AlertTitleProps }; diff --git a/src/base/AppBar/AppBar.tsx b/src/base/AppBar/AppBar.tsx deleted file mode 100644 index 90c495b81..000000000 --- a/src/base/AppBar/AppBar.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { AppBar as MuiAppBar, type AppBarProps as MuiAppBarProps } from '@mui/material'; -import React from 'react'; - -const AppBar = React.forwardRef<HTMLDivElement, MuiAppBarProps>((props, ref) => { - return <MuiAppBar {...props} ref={ref} />; -}); - -export default AppBar; diff --git a/src/base/AppBar/index.tsx b/src/base/AppBar/index.tsx deleted file mode 100644 index 15998f25b..000000000 --- a/src/base/AppBar/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { AppBarProps } from '@mui/material'; -import AppBar from './AppBar'; - -export { AppBar }; -export type { AppBarProps }; diff --git a/src/base/Autocomplete/Autocomplete.tsx b/src/base/Autocomplete/Autocomplete.tsx deleted file mode 100644 index 5a35fc5c1..000000000 --- a/src/base/Autocomplete/Autocomplete.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { - Autocomplete as MuiAutocomplete, - AutocompleteProps as MuiAutocompleteProps -} from '@mui/material'; -import React from 'react'; - -export type AutocompleteProps< - T, - Multiple extends boolean = false, - DisableClearable extends boolean = false, - FreeSolo extends boolean = false -> = MuiAutocompleteProps<T, Multiple, DisableClearable, FreeSolo>; - -export const Autocomplete = React.forwardRef<HTMLDivElement, AutocompleteProps<unknown>>( - (props, ref) => { - return <MuiAutocomplete {...props} ref={ref} />; - } -); - -export default Autocomplete; diff --git a/src/base/Autocomplete/index.ts b/src/base/Autocomplete/index.ts deleted file mode 100644 index aa5b9344a..000000000 --- a/src/base/Autocomplete/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Autocomplete } from './Autocomplete'; diff --git a/src/base/Avatar/Avatar.tsx b/src/base/Avatar/Avatar.tsx deleted file mode 100644 index 8b5e22890..000000000 --- a/src/base/Avatar/Avatar.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Avatar as MuiAvatar, type AvatarProps as MuiAvatarProps } from '@mui/material'; -import React from 'react'; - -const Avatar = React.forwardRef<HTMLDivElement, MuiAvatarProps>((props, ref) => { - return <MuiAvatar {...props} ref={ref} />; -}); - -export default Avatar; diff --git a/src/base/Avatar/index.tsx b/src/base/Avatar/index.tsx deleted file mode 100644 index 8c68572f9..000000000 --- a/src/base/Avatar/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { AvatarProps } from '@mui/material'; -import Avatar from './Avatar'; - -export { Avatar }; -export type { AvatarProps }; diff --git a/src/base/AvatarGroup/AvatarGroup.tsx b/src/base/AvatarGroup/AvatarGroup.tsx deleted file mode 100644 index d7fb9b666..000000000 --- a/src/base/AvatarGroup/AvatarGroup.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - AvatarGroup as MuiAvatarGroup, - type AvatarGroupProps as MuiAvatarGroupProps -} from '@mui/material'; -import React from 'react'; - -const AvatarGroup = React.forwardRef<HTMLDivElement, MuiAvatarGroupProps>((props, ref) => { - return <MuiAvatarGroup {...props} ref={ref} />; -}); - -export default AvatarGroup; diff --git a/src/base/AvatarGroup/index.tsx b/src/base/AvatarGroup/index.tsx deleted file mode 100644 index ce41e14e0..000000000 --- a/src/base/AvatarGroup/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { AvatarGroupProps } from '@mui/material'; -import AvatarGroup from './AvatarGroup'; - -export { AvatarGroup }; -export type { AvatarGroupProps }; diff --git a/src/base/Backdrop/Backdrop.tsx b/src/base/Backdrop/Backdrop.tsx deleted file mode 100644 index 096f15aaf..000000000 --- a/src/base/Backdrop/Backdrop.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Backdrop as MuiBackdrop, type BackdropProps as MuiBackdropProps } from '@mui/material'; -import React from 'react'; - -const Backdrop = React.forwardRef<HTMLDivElement, MuiBackdropProps>((props, ref) => { - return <MuiBackdrop {...props} ref={ref} />; -}); - -export default Backdrop; diff --git a/src/base/Backdrop/index.tsx b/src/base/Backdrop/index.tsx deleted file mode 100644 index 09533e3b8..000000000 --- a/src/base/Backdrop/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { BackdropProps } from '@mui/material'; -import Backdrop from './Backdrop'; - -export { Backdrop }; -export type { BackdropProps }; diff --git a/src/base/Badge/Badge.tsx b/src/base/Badge/Badge.tsx deleted file mode 100644 index 24ecc5527..000000000 --- a/src/base/Badge/Badge.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Badge as MuiBadge, type BadgeProps as MuiBadgeProps } from '@mui/material'; -import React from 'react'; - -const Badge = React.forwardRef<HTMLDivElement, MuiBadgeProps>((props, ref) => { - return <MuiBadge {...props} ref={ref} />; -}); - -export default Badge; diff --git a/src/base/Badge/index.tsx b/src/base/Badge/index.tsx deleted file mode 100644 index 7d81fb84a..000000000 --- a/src/base/Badge/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { BadgeProps } from '@mui/material'; -import Badge from './Badge'; - -export { Badge }; -export type { BadgeProps }; diff --git a/src/base/Box/Box.tsx b/src/base/Box/Box.tsx deleted file mode 100644 index a41ea187f..000000000 --- a/src/base/Box/Box.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Box as MuiBox, type BoxProps as MuiBoxProps } from '@mui/material'; -import React from 'react'; - -const Box = React.forwardRef<HTMLDivElement, MuiBoxProps>((props, ref) => { - return <MuiBox {...props} ref={ref} />; -}); - -export default Box; diff --git a/src/base/Box/index.tsx b/src/base/Box/index.tsx deleted file mode 100644 index 64c8d2ea7..000000000 --- a/src/base/Box/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { BoxProps } from '@mui/material'; -import Box from './Box'; - -export { Box }; -export type { BoxProps }; diff --git a/src/base/Breadcrumbs/Breadcrumbs.tsx b/src/base/Breadcrumbs/Breadcrumbs.tsx deleted file mode 100644 index 16b40c027..000000000 --- a/src/base/Breadcrumbs/Breadcrumbs.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - Breadcrumbs as MuiBreadcrumbs, - type BreadcrumbsProps as MuiBreadcrumbsProps -} from '@mui/material'; -import React from 'react'; - -const Breadcrumbs = React.forwardRef<HTMLDivElement, MuiBreadcrumbsProps>((props, ref) => { - return <MuiBreadcrumbs {...props} ref={ref} />; -}); - -export default Breadcrumbs; diff --git a/src/base/Breadcrumbs/index.tsx b/src/base/Breadcrumbs/index.tsx deleted file mode 100644 index a734f0aea..000000000 --- a/src/base/Breadcrumbs/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { BreadcrumbsProps } from '@mui/material'; -import Breadcrumbs from './Breadcrumbs'; - -export { Breadcrumbs }; -export type { BreadcrumbsProps }; diff --git a/src/base/Button/Button.tsx b/src/base/Button/Button.tsx deleted file mode 100644 index 534ae2de0..000000000 --- a/src/base/Button/Button.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { Button as MuiButton, type ButtonProps as MuiButtonProps } from '@mui/material'; - -export interface ButtonProps extends MuiButtonProps { - label?: string; - children?: React.ReactNode; -} - -export function Button({ label, children, ...props }: ButtonProps): JSX.Element { - return ( - <MuiButton {...props}> - {label} - {children} - </MuiButton> - ); -} - -export const ContainedButton = (props: ButtonProps): JSX.Element => ( - <Button variant="contained" {...props}> - {props.children} - </Button> -); -export const OutlinedButton = (props: ButtonProps): JSX.Element => ( - <Button variant="outlined" {...props}> - {props.children} - </Button> -); -export const TextButton = (props: ButtonProps): JSX.Element => ( - <Button variant="text" {...props}> - {props.children} - </Button> -); - -export default Button; diff --git a/src/base/Button/index.tsx b/src/base/Button/index.tsx deleted file mode 100644 index d0db3c1a5..000000000 --- a/src/base/Button/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import Button from './Button'; - -export { Button }; diff --git a/src/base/ButtonGroup/ButtonGroup.tsx b/src/base/ButtonGroup/ButtonGroup.tsx deleted file mode 100644 index ab0909cc2..000000000 --- a/src/base/ButtonGroup/ButtonGroup.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - ButtonGroup as MuiButtonGroup, - type ButtonGroupProps as MuiButtonGroupProps -} from '@mui/material'; -import React from 'react'; - -const ButtonGroup = React.forwardRef<HTMLDivElement, MuiButtonGroupProps>((props, ref) => { - return <MuiButtonGroup {...props} ref={ref} />; -}); - -export default ButtonGroup; diff --git a/src/base/ButtonGroup/index.tsx b/src/base/ButtonGroup/index.tsx deleted file mode 100644 index a0295ee64..000000000 --- a/src/base/ButtonGroup/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ButtonGroupProps } from '@mui/material'; -import ButtonGroup from './ButtonGroup'; - -export { ButtonGroup }; -export type { ButtonGroupProps }; diff --git a/src/base/Card/Card.tsx b/src/base/Card/Card.tsx deleted file mode 100644 index 841812382..000000000 --- a/src/base/Card/Card.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Card as MuiCard, type CardProps as MuiCardProps } from '@mui/material'; -import React from 'react'; - -const Card = React.forwardRef<HTMLDivElement, MuiCardProps>((props, ref) => { - return <MuiCard {...props} ref={ref} />; -}); - -export default Card; diff --git a/src/base/Card/index.tsx b/src/base/Card/index.tsx deleted file mode 100644 index 43aa18ce1..000000000 --- a/src/base/Card/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { CardProps } from '@mui/material'; -import Card from './Card'; - -export { Card }; -export type { CardProps }; diff --git a/src/base/CardActions/CardActions.tsx b/src/base/CardActions/CardActions.tsx deleted file mode 100644 index b3a49a802..000000000 --- a/src/base/CardActions/CardActions.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - CardActions as MuiCardActions, - CardActionsProps as MuiCardActionsProps -} from '@mui/material'; -import React from 'react'; - -const CardActions = React.forwardRef<HTMLDivElement, MuiCardActionsProps>((props, ref) => { - return <MuiCardActions {...props} ref={ref} />; -}); - -export default CardActions; diff --git a/src/base/CardActions/index.tsx b/src/base/CardActions/index.tsx deleted file mode 100644 index a741bbfb1..000000000 --- a/src/base/CardActions/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { CardActionsProps } from '@mui/material'; -import CardActions from './CardActions'; - -export { CardActions }; -export type { CardActionsProps }; diff --git a/src/base/CardContent/CardContent.tsx b/src/base/CardContent/CardContent.tsx deleted file mode 100644 index faf2111fe..000000000 --- a/src/base/CardContent/CardContent.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - CardContent as MuiCardContent, - CardContentProps as MuiCardContentProps -} from '@mui/material'; -import React from 'react'; - -const CardContent = React.forwardRef<HTMLDivElement, MuiCardContentProps>((props, ref) => { - return <MuiCardContent {...props} ref={ref} />; -}); - -export default CardContent; diff --git a/src/base/CardContent/index.tsx b/src/base/CardContent/index.tsx deleted file mode 100644 index d5852ee66..000000000 --- a/src/base/CardContent/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { CardContentProps } from '@mui/material'; -import CardContent from './CardContent'; - -export { CardContent }; -export type { CardContentProps }; diff --git a/src/base/CardHeader/CardHeader.tsx b/src/base/CardHeader/CardHeader.tsx deleted file mode 100644 index 579c557f1..000000000 --- a/src/base/CardHeader/CardHeader.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { CardHeader as MuiCardHeader, CardHeaderProps as MuiCardHeaderProps } from '@mui/material'; -import React from 'react'; - -const CardHeader = React.forwardRef<HTMLDivElement, MuiCardHeaderProps>((props, ref) => { - return <MuiCardHeader {...props} ref={ref} />; -}); - -export default CardHeader; diff --git a/src/base/CardHeader/index.tsx b/src/base/CardHeader/index.tsx deleted file mode 100644 index 07d1ce99b..000000000 --- a/src/base/CardHeader/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { CardHeaderProps } from '@mui/material'; -import CardHeader from './CardHeader'; - -export { CardHeader }; -export type { CardHeaderProps }; diff --git a/src/base/CardMedia/CardMedia.tsx b/src/base/CardMedia/CardMedia.tsx deleted file mode 100644 index 3ad196d24..000000000 --- a/src/base/CardMedia/CardMedia.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { CardMedia as MuiCardMedia, CardMediaProps as MuiCardMediaProps } from '@mui/material'; -import React from 'react'; - -const CardMedia = React.forwardRef<HTMLDivElement, MuiCardMediaProps>((props, ref) => { - return <MuiCardMedia {...props} ref={ref} />; -}); - -export default CardMedia; diff --git a/src/base/CardMedia/index.tsx b/src/base/CardMedia/index.tsx deleted file mode 100644 index 678e4c53b..000000000 --- a/src/base/CardMedia/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { CardMediaProps } from '@mui/material'; -import CardMedia from './CardMedia'; - -export { CardMedia }; -export type { CardMediaProps }; diff --git a/src/base/Checkbox/Checkbox.tsx b/src/base/Checkbox/Checkbox.tsx deleted file mode 100644 index 302a16dcb..000000000 --- a/src/base/Checkbox/Checkbox.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Checkbox as MuiCheckbox, type CheckboxProps } from '@mui/material'; -import React from 'react'; - -const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>((props, ref) => { - return <MuiCheckbox {...props} ref={ref} />; -}); - -export default Checkbox; diff --git a/src/base/Checkbox/index.tsx b/src/base/Checkbox/index.tsx deleted file mode 100644 index c81c2c021..000000000 --- a/src/base/Checkbox/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import Checkbox from './Checkbox'; - -export { Checkbox }; diff --git a/src/base/Chip/Chip.tsx b/src/base/Chip/Chip.tsx deleted file mode 100644 index 249ee09f3..000000000 --- a/src/base/Chip/Chip.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Chip as MuiChip, type ChipProps } from '@mui/material'; -import React from 'react'; - -const Chip = React.forwardRef<HTMLDivElement, ChipProps>((props, ref) => { - return <MuiChip {...props} ref={ref} />; -}); - -export default Chip; diff --git a/src/base/Chip/index.tsx b/src/base/Chip/index.tsx deleted file mode 100644 index cc05c3d5d..000000000 --- a/src/base/Chip/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import Chip from './Chip'; - -export { Chip }; diff --git a/src/base/CircularProgress/CircularProgress.tsx b/src/base/CircularProgress/CircularProgress.tsx deleted file mode 100644 index f6f2d99f6..000000000 --- a/src/base/CircularProgress/CircularProgress.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { - CircularProgress as MuiCircularProgress, - CircularProgressProps as MuiCircularProgressProps -} from '@mui/material'; -import React from 'react'; - -const CircularProgress = React.forwardRef<HTMLDivElement, MuiCircularProgressProps>( - (props, ref) => { - return <MuiCircularProgress {...props} ref={ref} />; - } -); - -export default CircularProgress; diff --git a/src/base/CircularProgress/index.tsx b/src/base/CircularProgress/index.tsx deleted file mode 100644 index 502a11442..000000000 --- a/src/base/CircularProgress/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import CircularProgress from './CircularProgress'; - -export { CircularProgress }; diff --git a/src/base/ClickAwayListener/ClickAwayListener.tsx b/src/base/ClickAwayListener/ClickAwayListener.tsx deleted file mode 100644 index 315794d2c..000000000 --- a/src/base/ClickAwayListener/ClickAwayListener.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - ClickAwayListener as MuiClickAwayListener, - type ClickAwayListenerProps -} from '@mui/material'; -import React from 'react'; - -const ClickAwayListener = React.forwardRef<HTMLDivElement, ClickAwayListenerProps>((props, ref) => { - return <MuiClickAwayListener {...props} ref={ref} />; -}); - -export default ClickAwayListener; diff --git a/src/base/ClickAwayListener/index.tsx b/src/base/ClickAwayListener/index.tsx deleted file mode 100644 index e9026e4bc..000000000 --- a/src/base/ClickAwayListener/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import ClickAwayListener from './ClickAwayListener'; - -export { ClickAwayListener }; diff --git a/src/base/Collapse/Collapse.tsx b/src/base/Collapse/Collapse.tsx deleted file mode 100644 index cc6421ea0..000000000 --- a/src/base/Collapse/Collapse.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Collapse as MuiCollapse, CollapseProps as MuiCollapseProps } from '@mui/material'; -import React from 'react'; - -const Collapse = React.forwardRef<HTMLDivElement, MuiCollapseProps>((props, ref) => { - return <MuiCollapse {...props} ref={ref} />; -}); - -export { Collapse }; diff --git a/src/base/Collapse/index.tsx b/src/base/Collapse/index.tsx deleted file mode 100644 index 96e70dfc2..000000000 --- a/src/base/Collapse/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { CollapseProps } from '@mui/material'; -import { Collapse } from './Collapse'; - -export { Collapse }; -export type { CollapseProps }; diff --git a/src/base/Container/Container.tsx b/src/base/Container/Container.tsx deleted file mode 100644 index ba9cbbe3a..000000000 --- a/src/base/Container/Container.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Container as MuiContainer, ContainerProps as MuiContainerProps } from '@mui/material'; -import React from 'react'; - -const Container = React.forwardRef<HTMLDivElement, MuiContainerProps>((props, ref) => { - return <MuiContainer {...props} ref={ref} />; -}); - -export default Container; diff --git a/src/base/Container/index.tsx b/src/base/Container/index.tsx deleted file mode 100644 index e2fc615b3..000000000 --- a/src/base/Container/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import Container from './Container'; - -export { Container }; diff --git a/src/base/CssBaseLine/CssBaseLine.tsx b/src/base/CssBaseLine/CssBaseLine.tsx deleted file mode 100644 index 5e93be8dc..000000000 --- a/src/base/CssBaseLine/CssBaseLine.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { - CssBaseline as MuiCssBaseline, - CssBaselineProps as MuiCssBaselineProps -} from '@mui/material'; - -export function CssBaseline(props: MuiCssBaselineProps): JSX.Element { - return <MuiCssBaseline {...props} />; -} diff --git a/src/base/CssBaseLine/index.tsx b/src/base/CssBaseLine/index.tsx deleted file mode 100644 index 94ea1a71d..000000000 --- a/src/base/CssBaseLine/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { CssBaselineProps } from '@mui/material'; -import { CssBaseline } from './CssBaseLine'; - -export { CssBaseline }; -export type { CssBaselineProps }; diff --git a/src/base/Dialog/Dialog.tsx b/src/base/Dialog/Dialog.tsx deleted file mode 100644 index 7750e1baf..000000000 --- a/src/base/Dialog/Dialog.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Dialog as MuiDialog, type DialogProps as MuiDialogProps } from '@mui/material'; -import React from 'react'; - -const Dialog = React.forwardRef<HTMLDivElement, MuiDialogProps>((props, ref) => { - return <MuiDialog {...props} ref={ref} />; -}); - -export default Dialog; diff --git a/src/base/Dialog/index.tsx b/src/base/Dialog/index.tsx deleted file mode 100644 index f68c28bfe..000000000 --- a/src/base/Dialog/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import Dialog from './Dialog'; - -export { Dialog }; diff --git a/src/base/DialogActions/DialogActions.tsx b/src/base/DialogActions/DialogActions.tsx deleted file mode 100644 index 08f6e5812..000000000 --- a/src/base/DialogActions/DialogActions.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - DialogActions as MuiDialogActions, - type DialogActionsProps as MuiDialogActionsProps -} from '@mui/material'; -import React from 'react'; - -const DialogActions = React.forwardRef<HTMLDivElement, MuiDialogActionsProps>((props, ref) => { - return <MuiDialogActions {...props} ref={ref} />; -}); - -export default DialogActions; diff --git a/src/base/DialogActions/index.tsx b/src/base/DialogActions/index.tsx deleted file mode 100644 index 7c629d0d7..000000000 --- a/src/base/DialogActions/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import DialogActions from './DialogActions'; - -export { DialogActions }; diff --git a/src/base/DialogContent/DialogContent.tsx b/src/base/DialogContent/DialogContent.tsx deleted file mode 100644 index 7112613fe..000000000 --- a/src/base/DialogContent/DialogContent.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - DialogContent as MuiDialogContent, - type DialogContentProps as MuiDialogContentProps -} from '@mui/material'; -import React from 'react'; - -const DialogContent = React.forwardRef<HTMLDivElement, MuiDialogContentProps>((props, ref) => { - return <MuiDialogContent {...props} ref={ref} />; -}); - -export default DialogContent; diff --git a/src/base/DialogContent/index.tsx b/src/base/DialogContent/index.tsx deleted file mode 100644 index 01b06745a..000000000 --- a/src/base/DialogContent/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import DialogContent from './DialogContent'; - -export { DialogContent }; diff --git a/src/base/DialogContentText/DialogContentText.tsx b/src/base/DialogContentText/DialogContentText.tsx deleted file mode 100644 index 7b1a23aa8..000000000 --- a/src/base/DialogContentText/DialogContentText.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { - DialogContentText as MuiDialogContentText, - type DialogContentTextProps as MuiDialogContentTextProps -} from '@mui/material'; -import React from 'react'; - -const DialogContentText = React.forwardRef<HTMLDivElement, MuiDialogContentTextProps>( - (props, ref) => { - return <MuiDialogContentText {...props} ref={ref} />; - } -); - -export default DialogContentText; diff --git a/src/base/DialogContentText/index.tsx b/src/base/DialogContentText/index.tsx deleted file mode 100644 index d4d3ac4b2..000000000 --- a/src/base/DialogContentText/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import DialogContentText from './DialogContentText'; - -export { DialogContentText }; diff --git a/src/base/DialogTitle/DialogTitle.tsx b/src/base/DialogTitle/DialogTitle.tsx deleted file mode 100644 index 2ea32a5df..000000000 --- a/src/base/DialogTitle/DialogTitle.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - DialogTitle as MuiDialogTitle, - type DialogTitleProps as MuiDialogTitleProps -} from '@mui/material'; -import React from 'react'; - -const DialogTitle = React.forwardRef<HTMLDivElement, MuiDialogTitleProps>((props, ref) => { - return <MuiDialogTitle {...props} ref={ref} />; -}); - -export default DialogTitle; diff --git a/src/base/DialogTitle/index.tsx b/src/base/DialogTitle/index.tsx deleted file mode 100644 index 1c45ac998..000000000 --- a/src/base/DialogTitle/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import DialogTitle from './DialogTitle'; - -export { DialogTitle }; diff --git a/src/base/Divider/Divider.tsx b/src/base/Divider/Divider.tsx deleted file mode 100644 index 5dac69920..000000000 --- a/src/base/Divider/Divider.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { Divider as MuiDivider, type DividerProps as MuiDividerProps } from '@mui/material'; - -export function Divider(props: MuiDividerProps): JSX.Element { - return <MuiDivider {...props} />; -} - -export default Divider; diff --git a/src/base/Divider/index.tsx b/src/base/Divider/index.tsx deleted file mode 100644 index 544f42fd7..000000000 --- a/src/base/Divider/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { DividerProps } from '@mui/material'; -import Divider from './Divider'; - -export { Divider }; -export type { DividerProps }; diff --git a/src/base/Drawer/Drawer.tsx b/src/base/Drawer/Drawer.tsx deleted file mode 100644 index bbad00531..000000000 --- a/src/base/Drawer/Drawer.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Drawer as MuiDrawer, type DrawerProps as MuiDrawerProps } from '@mui/material'; -import React from 'react'; - -const Drawer = React.forwardRef<HTMLDivElement, MuiDrawerProps>((props, ref) => { - return <MuiDrawer {...props} ref={ref} />; -}); - -export default Drawer; diff --git a/src/base/Drawer/index.tsx b/src/base/Drawer/index.tsx deleted file mode 100644 index 042d694f4..000000000 --- a/src/base/Drawer/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { DrawerProps } from '@mui/material'; -import Drawer from './Drawer'; - -export { Drawer }; -export type { DrawerProps }; diff --git a/src/base/Fab/Fab.tsx b/src/base/Fab/Fab.tsx deleted file mode 100644 index fdd867ac1..000000000 --- a/src/base/Fab/Fab.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Fab as MuiFab, FabProps as MuiFabProps } from '@mui/material'; -import React from 'react'; - -export const Fab = React.forwardRef<HTMLButtonElement, MuiFabProps>((props, ref) => ( - <MuiFab {...props} ref={ref} /> -)); - -export default Fab; diff --git a/src/base/Fab/index.ts b/src/base/Fab/index.ts deleted file mode 100644 index 9c43b6223..000000000 --- a/src/base/Fab/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Fab } from './Fab'; diff --git a/src/base/Fade/Fade.tsx b/src/base/Fade/Fade.tsx deleted file mode 100644 index 0ba87b293..000000000 --- a/src/base/Fade/Fade.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Fade as MuiFade, FadeProps as MuiFadeProps } from '@mui/material'; -import React from 'react'; - -export const Fade = React.forwardRef<HTMLDivElement, MuiFadeProps>((props, ref) => { - return <MuiFade ref={ref} {...props} />; -}); - -export default Fade; diff --git a/src/base/Fade/index.ts b/src/base/Fade/index.ts deleted file mode 100644 index b774c1213..000000000 --- a/src/base/Fade/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Fade } from './Fade'; diff --git a/src/base/FormControl/FormControl.tsx b/src/base/FormControl/FormControl.tsx deleted file mode 100644 index 17f79b5b9..000000000 --- a/src/base/FormControl/FormControl.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { - FormControl as MuiFormControl, - FormControlProps as MuiFormControlProps -} from '@mui/material'; - -export function FormControl(props: MuiFormControlProps): JSX.Element { - return <MuiFormControl {...props} />; -} - -export default FormControl; diff --git a/src/base/FormControl/index.tsx b/src/base/FormControl/index.tsx deleted file mode 100644 index 5e7738353..000000000 --- a/src/base/FormControl/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { FormControlProps } from '@mui/material'; -import FormControl from './FormControl'; - -export { FormControl }; -export type { FormControlProps }; diff --git a/src/base/FormControlLabel/FormControlLabel.tsx b/src/base/FormControlLabel/FormControlLabel.tsx deleted file mode 100644 index 53087d6be..000000000 --- a/src/base/FormControlLabel/FormControlLabel.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { - FormControlLabel as MuiFormControlLabel, - FormControlLabelProps as MuiFormControlLabelProps -} from '@mui/material'; -import React from 'react'; - -const FormControlLabel = React.forwardRef<HTMLDivElement, MuiFormControlLabelProps>( - (props, ref) => { - return <MuiFormControlLabel {...props} ref={ref} />; - } -); - -export { FormControlLabel }; diff --git a/src/base/FormControlLabel/index.tsx b/src/base/FormControlLabel/index.tsx deleted file mode 100644 index b987391b3..000000000 --- a/src/base/FormControlLabel/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { FormControlLabel } from './FormControlLabel'; diff --git a/src/base/FormGroup/FormGroup.tsx b/src/base/FormGroup/FormGroup.tsx deleted file mode 100644 index 169233db6..000000000 --- a/src/base/FormGroup/FormGroup.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { FormGroup as MuiFormGroup, FormGroupProps as MuiFormGroupProps } from '@mui/material'; -import React from 'react'; - -const FormGroup = React.forwardRef<HTMLDivElement, MuiFormGroupProps>((props, ref) => { - return <MuiFormGroup {...props} ref={ref} />; -}); - -export { FormGroup }; diff --git a/src/base/FormGroup/index.tsx b/src/base/FormGroup/index.tsx deleted file mode 100644 index 15dd45451..000000000 --- a/src/base/FormGroup/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { FormGroup } from './FormGroup'; diff --git a/src/base/FormLabel/FormLabel.tsx b/src/base/FormLabel/FormLabel.tsx deleted file mode 100644 index 6cc13183a..000000000 --- a/src/base/FormLabel/FormLabel.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { FormLabelProps as MuiFormLabelProps, FormLabel as MuiFormLable } from '@mui/material'; -import React from 'react'; - -const FormLabel = React.forwardRef<HTMLLabelElement, MuiFormLabelProps>((props, ref) => { - return <MuiFormLable {...props} ref={ref} />; -}); - -export { FormLabel }; diff --git a/src/base/FormLabel/index.tsx b/src/base/FormLabel/index.tsx deleted file mode 100644 index 4cf5b1eec..000000000 --- a/src/base/FormLabel/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { FormLabel } from './FormLabel'; diff --git a/src/base/Grid/Grid.tsx b/src/base/Grid/Grid.tsx deleted file mode 100644 index 05021109c..000000000 --- a/src/base/Grid/Grid.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { Grid as MuiGrid, GridProps as MuiGridProps } from '@mui/material'; -import React from 'react'; - -/** - * @deprecated This component is deprecated and will be removed in a future version. - * Please use an alternative Grid2 component instead. - */ -const Grid = React.forwardRef<HTMLDivElement, MuiGridProps>((props, ref) => { - return <MuiGrid {...props} ref={ref} />; -}); - -export { Grid }; diff --git a/src/base/Grid/index.tsx b/src/base/Grid/index.tsx deleted file mode 100644 index 66c39561d..000000000 --- a/src/base/Grid/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { Grid } from './Grid'; diff --git a/src/base/Grid2/Grid2.tsx b/src/base/Grid2/Grid2.tsx deleted file mode 100644 index 1a33c9a0c..000000000 --- a/src/base/Grid2/Grid2.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Grid2 as MuiGrid, Grid2Props as MuiGridProps } from '@mui/material'; -import React from 'react'; - -const Grid2 = React.forwardRef<HTMLDivElement, MuiGridProps>((props, ref) => { - return <MuiGrid {...props} ref={ref} />; -}); - -export { Grid2 }; diff --git a/src/base/Grid2/index.ts b/src/base/Grid2/index.ts deleted file mode 100644 index 8426e57f6..000000000 --- a/src/base/Grid2/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Grid2 } from './Grid2'; -export { Grid2 }; diff --git a/src/base/Grow/Grow.tsx b/src/base/Grow/Grow.tsx deleted file mode 100644 index 204a70eaf..000000000 --- a/src/base/Grow/Grow.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Grow as MuiGrow, GrowProps as MuiGrowProps } from '@mui/material'; -import React from 'react'; - -const Grow = React.forwardRef<HTMLDivElement, MuiGrowProps>((props, ref) => { - return <MuiGrow {...props} ref={ref} />; -}); - -export { Grow }; diff --git a/src/base/Grow/index.tsx b/src/base/Grow/index.tsx deleted file mode 100644 index 614294659..000000000 --- a/src/base/Grow/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { Grow } from './Grow'; diff --git a/src/base/Hidden/Hidden.tsx b/src/base/Hidden/Hidden.tsx deleted file mode 100644 index 22f258115..000000000 --- a/src/base/Hidden/Hidden.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Hidden as MuiHidden, HiddenProps as MuiHiddenProps } from '@mui/material'; -import React from 'react'; - -export const Hidden = React.forwardRef<HTMLDivElement, MuiHiddenProps>((props, ref) => { - return React.cloneElement(<MuiHidden {...props} />, { ref }); -}); - -export default Hidden; diff --git a/src/base/Hidden/index.ts b/src/base/Hidden/index.ts deleted file mode 100644 index 5da080e9b..000000000 --- a/src/base/Hidden/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Hidden } from './Hidden'; diff --git a/src/base/IconButton/IconButton.tsx b/src/base/IconButton/IconButton.tsx deleted file mode 100644 index f21709a23..000000000 --- a/src/base/IconButton/IconButton.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { - IconButton as MuiIconButton, - type IconButtonProps as MuiIconButtonProps -} from '@mui/material'; -import React from 'react'; - -export type IconButtonProps = MuiIconButtonProps; - -export const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>((props, ref) => ( - <MuiIconButton ref={ref} {...props} /> -)); - -IconButton.displayName = 'IconButton'; - -export default IconButton; diff --git a/src/base/IconButton/index.tsx b/src/base/IconButton/index.tsx deleted file mode 100644 index bd4d78d29..000000000 --- a/src/base/IconButton/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { IconButton } from './IconButton'; diff --git a/src/base/Input/index.tsx b/src/base/Input/index.tsx deleted file mode 100644 index 1a657dc80..000000000 --- a/src/base/Input/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -export { Input } from './input'; -export { InputAdornment } from './inputadornment'; diff --git a/src/base/Input/input.tsx b/src/base/Input/input.tsx deleted file mode 100644 index 229870af0..000000000 --- a/src/base/Input/input.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Input as MuiInput, type InputProps } from '@mui/material'; -import React from 'react'; - -const Input = React.forwardRef<HTMLDivElement, InputProps>((props, ref) => { - return <MuiInput {...props} ref={ref} />; -}); - -export { Input }; diff --git a/src/base/Input/inputadornment.tsx b/src/base/Input/inputadornment.tsx deleted file mode 100644 index 1eafc49c3..000000000 --- a/src/base/Input/inputadornment.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { InputAdornment as MuiInputAdornment, type InputAdornmentProps } from '@mui/material'; -import React from 'react'; - -const InputAdornment = React.forwardRef<HTMLDivElement, InputAdornmentProps>((props, ref) => { - return <MuiInputAdornment {...props} ref={ref} />; -}); - -export { InputAdornment }; diff --git a/src/base/InputBase/InputBase.tsx b/src/base/InputBase/InputBase.tsx deleted file mode 100644 index c59e4adc5..000000000 --- a/src/base/InputBase/InputBase.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { InputBase as MuiInputBase, InputBaseProps as MuiInputBaseProps } from '@mui/material'; -import React from 'react'; - -export const InputBase = React.forwardRef<HTMLInputElement, MuiInputBaseProps>((props, ref) => ( - <MuiInputBase {...props} ref={ref} /> -)); - -export default InputBase; diff --git a/src/base/InputBase/index.ts b/src/base/InputBase/index.ts deleted file mode 100644 index ac9ed3de3..000000000 --- a/src/base/InputBase/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { InputBase } from './InputBase'; diff --git a/src/base/InputLabel/InputLabel.tsx b/src/base/InputLabel/InputLabel.tsx deleted file mode 100644 index 4d3825e6e..000000000 --- a/src/base/InputLabel/InputLabel.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { InputLabel as MuiInputLabel, type InputLabelProps } from '@mui/material'; - -export function InputLabel(props: InputLabelProps): JSX.Element { - return <MuiInputLabel {...props} />; -} diff --git a/src/base/InputLabel/index.tsx b/src/base/InputLabel/index.tsx deleted file mode 100644 index 9d399e03b..000000000 --- a/src/base/InputLabel/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { InputLabel } from './InputLabel'; diff --git a/src/base/LinearProgress/LinearProgress.tsx b/src/base/LinearProgress/LinearProgress.tsx deleted file mode 100644 index 1a2b16d01..000000000 --- a/src/base/LinearProgress/LinearProgress.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - LinearProgress as MuiLinearProgress, - LinearProgressProps as MuiLinearProgressProps -} from '@mui/material'; -import React from 'react'; - -export const LinearProgress: React.FC<MuiLinearProgressProps> = (props) => ( - <MuiLinearProgress {...props} /> -); - -export default LinearProgress; diff --git a/src/base/LinearProgress/index.ts b/src/base/LinearProgress/index.ts deleted file mode 100644 index bb3d904e9..000000000 --- a/src/base/LinearProgress/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { LinearProgress } from './LinearProgress'; diff --git a/src/base/Link/Link.tsx b/src/base/Link/Link.tsx deleted file mode 100644 index 76b6e405a..000000000 --- a/src/base/Link/Link.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { Link as MuiLink, LinkProps as MuiLinkProps } from '@mui/material'; - -export function Link(props: MuiLinkProps): JSX.Element { - return <MuiLink {...props} />; -} diff --git a/src/base/Link/index.tsx b/src/base/Link/index.tsx deleted file mode 100644 index 61fe08c6f..000000000 --- a/src/base/Link/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { Link } from './Link'; diff --git a/src/base/List/List.tsx b/src/base/List/List.tsx deleted file mode 100644 index 3856165bb..000000000 --- a/src/base/List/List.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { List as MuiList, ListProps as MuiListProps } from '@mui/material'; - -export function List(props: MuiListProps): JSX.Element { - return <MuiList {...props} />; -} - -export default List; diff --git a/src/base/List/index.tsx b/src/base/List/index.tsx deleted file mode 100644 index 6b1f77268..000000000 --- a/src/base/List/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ListProps } from '@mui/material'; -import List from './List'; - -export { List }; -export type { ListProps }; diff --git a/src/base/ListItem/ListItem.tsx b/src/base/ListItem/ListItem.tsx deleted file mode 100644 index bcb609aec..000000000 --- a/src/base/ListItem/ListItem.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { ListItem as MuiListItem, ListItemProps as MuiListItemProps } from '@mui/material'; -import React from 'react'; - -const ListItem = React.forwardRef<HTMLLIElement, MuiListItemProps>((props, ref) => { - return <MuiListItem {...props} ref={ref} />; -}); - -export default ListItem; diff --git a/src/base/ListItem/index.tsx b/src/base/ListItem/index.tsx deleted file mode 100644 index 3762f5fa7..000000000 --- a/src/base/ListItem/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ListItemProps } from '@mui/material'; -import ListItem from './ListItem'; - -export { ListItem }; -export type { ListItemProps }; diff --git a/src/base/ListItemAvatar/ListItemAvatar.tsx b/src/base/ListItemAvatar/ListItemAvatar.tsx deleted file mode 100644 index 70fac90fa..000000000 --- a/src/base/ListItemAvatar/ListItemAvatar.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - ListItemAvatar as MuiListItemAvatar, - ListItemAvatarProps as MuiListItemAvatarProps -} from '@mui/material'; -import React from 'react'; - -const ListItemAvatar = React.forwardRef<HTMLDivElement, MuiListItemAvatarProps>((props, ref) => { - return <MuiListItemAvatar {...props} ref={ref} />; -}); - -export default ListItemAvatar; diff --git a/src/base/ListItemAvatar/index.tsx b/src/base/ListItemAvatar/index.tsx deleted file mode 100644 index 41a4138a9..000000000 --- a/src/base/ListItemAvatar/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ListItemAvatarProps } from '@mui/material'; -import ListItemAvatar from './ListItemAvatar'; - -export { ListItemAvatar }; -export type { ListItemAvatarProps }; diff --git a/src/base/ListItemButton/ListItemButton.tsx b/src/base/ListItemButton/ListItemButton.tsx deleted file mode 100644 index f19e4f3e9..000000000 --- a/src/base/ListItemButton/ListItemButton.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - ListItemButton as MuiListItemButton, - ListItemButtonProps as MuiListItemButtonProps -} from '@mui/material'; -import React from 'react'; - -const ListItemButton = React.forwardRef<HTMLDivElement, MuiListItemButtonProps>((props, ref) => { - return <MuiListItemButton {...props} ref={ref} />; -}); - -export { ListItemButton }; diff --git a/src/base/ListItemButton/index.tsx b/src/base/ListItemButton/index.tsx deleted file mode 100644 index d0ee45d67..000000000 --- a/src/base/ListItemButton/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { ListItemButton } from './ListItemButton'; diff --git a/src/base/ListItemIcon/ListItemIcon.tsx b/src/base/ListItemIcon/ListItemIcon.tsx deleted file mode 100644 index 2b18ce56e..000000000 --- a/src/base/ListItemIcon/ListItemIcon.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - ListItemIcon as MuiListItemIcon, - ListItemIconProps as MuiListItemIconProps -} from '@mui/material'; -import React from 'react'; - -const ListItemIcon = React.forwardRef<HTMLDivElement, MuiListItemIconProps>((props, ref) => { - return <MuiListItemIcon {...props} ref={ref} />; -}); - -export { ListItemIcon }; diff --git a/src/base/ListItemIcon/index.tsx b/src/base/ListItemIcon/index.tsx deleted file mode 100644 index 598fce2c2..000000000 --- a/src/base/ListItemIcon/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { ListItemIcon } from './ListItemIcon'; diff --git a/src/base/ListItemSecondaryAction/ListItemSecondaryAction.tsx b/src/base/ListItemSecondaryAction/ListItemSecondaryAction.tsx deleted file mode 100644 index c8473f168..000000000 --- a/src/base/ListItemSecondaryAction/ListItemSecondaryAction.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { - ListItemSecondaryAction as MuiListItemSecondaryAction, - ListItemSecondaryActionProps as MuiListItemSecondaryActionProps -} from '@mui/material'; -import React from 'react'; - -const ListItemSecondaryAction = React.forwardRef<HTMLDivElement, MuiListItemSecondaryActionProps>( - (props, ref) => { - return <MuiListItemSecondaryAction {...props} ref={ref} />; - } -); - -export default ListItemSecondaryAction; diff --git a/src/base/ListItemSecondaryAction/index.tsx b/src/base/ListItemSecondaryAction/index.tsx deleted file mode 100644 index e65cfdb2a..000000000 --- a/src/base/ListItemSecondaryAction/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ListItemSecondaryActionProps } from '@mui/material'; -import ListItemSecondaryAction from './ListItemSecondaryAction'; - -export { ListItemSecondaryAction }; -export type { ListItemSecondaryActionProps }; diff --git a/src/base/ListItemText/ListItemText.tsx b/src/base/ListItemText/ListItemText.tsx deleted file mode 100644 index 158ef40d7..000000000 --- a/src/base/ListItemText/ListItemText.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { - ListItemText as MuiListItemText, - ListItemTextProps as MuiListItemTextProps -} from '@mui/material'; - -export function ListItemText(props: MuiListItemTextProps): JSX.Element { - return <MuiListItemText {...props} />; -} diff --git a/src/base/ListItemText/index.tsx b/src/base/ListItemText/index.tsx deleted file mode 100644 index e9a59e7f2..000000000 --- a/src/base/ListItemText/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ListItemTextProps } from '@mui/material'; -import { ListItemText } from './ListItemText'; - -export { ListItemText }; -export type { ListItemTextProps }; diff --git a/src/base/ListSubheader/ListSubheader.tsx b/src/base/ListSubheader/ListSubheader.tsx deleted file mode 100644 index 0e38afeff..000000000 --- a/src/base/ListSubheader/ListSubheader.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { - ListSubheader as MuiListSubheader, - ListSubheaderProps as MuiListSubheaderProps -} from '@mui/material'; - -export function ListSubheader(props: MuiListSubheaderProps): JSX.Element { - return <MuiListSubheader {...props} />; -} - -export default ListSubheader; diff --git a/src/base/ListSubheader/index.tsx b/src/base/ListSubheader/index.tsx deleted file mode 100644 index ab410e65b..000000000 --- a/src/base/ListSubheader/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ListSubheaderProps } from '@mui/material'; -import ListSubheader from './ListSubheader'; - -export { ListSubheader }; -export type { ListSubheaderProps }; diff --git a/src/base/Menu/Menu.tsx b/src/base/Menu/Menu.tsx deleted file mode 100644 index e844b4be0..000000000 --- a/src/base/Menu/Menu.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Menu as MuiMenu, MenuProps as MuiMenuProps } from '@mui/material'; -import React from 'react'; - -const Menu = React.forwardRef<HTMLDivElement, MuiMenuProps>((props, ref) => { - return <MuiMenu {...props} ref={ref} />; -}); - -export default Menu; diff --git a/src/base/Menu/index.tsx b/src/base/Menu/index.tsx deleted file mode 100644 index 06d2576b5..000000000 --- a/src/base/Menu/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { MenuProps } from '@mui/material'; -import Menu from './Menu'; - -export { Menu }; -export type { MenuProps }; diff --git a/src/base/MenuItem/MenuItem.tsx b/src/base/MenuItem/MenuItem.tsx deleted file mode 100644 index 397ef39a9..000000000 --- a/src/base/MenuItem/MenuItem.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { MenuItem as MuiMenuItem, MenuItemProps as MuiMenuItemProps } from '@mui/material'; - -export function MenuItem(props: MuiMenuItemProps): JSX.Element { - return <MuiMenuItem {...props} />; -} - -export default MenuItem; diff --git a/src/base/MenuItem/index.tsx b/src/base/MenuItem/index.tsx deleted file mode 100644 index 337f4957c..000000000 --- a/src/base/MenuItem/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { MenuItemProps } from '@mui/material'; -import MenuItem from './MenuItem'; - -export { MenuItem }; -export type { MenuItemProps }; diff --git a/src/base/MenuList/MenuList.tsx b/src/base/MenuList/MenuList.tsx deleted file mode 100644 index 96801dfb8..000000000 --- a/src/base/MenuList/MenuList.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { MenuList as MuiMenuList, MenuListProps as MuiMenuListProps } from '@mui/material'; - -export function MenuList(props: MuiMenuListProps): JSX.Element { - return <MuiMenuList {...props} />; -} - -export default MenuList; diff --git a/src/base/MenuList/index.tsx b/src/base/MenuList/index.tsx deleted file mode 100644 index 0d34f7a76..000000000 --- a/src/base/MenuList/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { MenuListProps } from '@mui/material'; -import MenuList from './MenuList'; - -export { MenuList }; -export type { MenuListProps }; diff --git a/src/base/NativeSelect/NativeSelect.tsx b/src/base/NativeSelect/NativeSelect.tsx deleted file mode 100644 index d318f35c2..000000000 --- a/src/base/NativeSelect/NativeSelect.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - NativeSelect as MuiNativeSelect, - NativeSelectProps as MuiNativeSelectProps -} from '@mui/material'; -import React from 'react'; - -export const NativeSelect = React.forwardRef<HTMLSelectElement, MuiNativeSelectProps>( - (props, ref) => <MuiNativeSelect {...props} ref={ref} /> -); - -export default NativeSelect; diff --git a/src/base/NativeSelect/index.ts b/src/base/NativeSelect/index.ts deleted file mode 100644 index 6d7e4c4fb..000000000 --- a/src/base/NativeSelect/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { NativeSelect } from './NativeSelect'; diff --git a/src/base/NoSsr/NoSsr.tsx b/src/base/NoSsr/NoSsr.tsx deleted file mode 100644 index ba9e053bb..000000000 --- a/src/base/NoSsr/NoSsr.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { NoSsr as MuiNoSsr, NoSsrProps as MuiNoSsrProps } from '@mui/material'; - -export function NoSsr(props: MuiNoSsrProps): JSX.Element { - return <MuiNoSsr {...props} />; -} - -export default NoSsr; diff --git a/src/base/NoSsr/index.ts b/src/base/NoSsr/index.ts deleted file mode 100644 index 9d9d355e6..000000000 --- a/src/base/NoSsr/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { NoSsr } from './NoSsr'; diff --git a/src/base/OutlinedInput/OutlinedInput.tsx b/src/base/OutlinedInput/OutlinedInput.tsx deleted file mode 100644 index 4f2b00a3c..000000000 --- a/src/base/OutlinedInput/OutlinedInput.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - OutlinedInput as MuiOutlinedInput, - OutlinedInputProps as MuiOutlinedInputProps -} from '@mui/material'; -import React from 'react'; - -const OutlinedInput = React.forwardRef<HTMLDivElement, MuiOutlinedInputProps>((props, ref) => { - return <MuiOutlinedInput {...props} ref={ref} />; -}); - -export { OutlinedInput }; diff --git a/src/base/OutlinedInput/index.tsx b/src/base/OutlinedInput/index.tsx deleted file mode 100644 index a7c633254..000000000 --- a/src/base/OutlinedInput/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { OutlinedInputProps } from '@mui/material'; -import { outlinedInputClasses } from '@mui/material/OutlinedInput'; -import { OutlinedInput } from './OutlinedInput'; - -export { OutlinedInput, outlinedInputClasses }; -export type { OutlinedInputProps }; diff --git a/src/base/Pagination/Pagination.tsx b/src/base/Pagination/Pagination.tsx deleted file mode 100644 index 85526ceb9..000000000 --- a/src/base/Pagination/Pagination.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { - Pagination as MuiPagination, - PaginationItem as MuiPaginationItem, - PaginationProps as MuiPaginationProps -} from '@mui/material'; -import React from 'react'; - -const Pagination = React.forwardRef<HTMLDivElement, MuiPaginationProps>((props, ref) => { - return <MuiPagination {...props} ref={ref} />; -}); - -export { MuiPaginationItem as PaginationItem }; -export default Pagination; diff --git a/src/base/Pagination/index.tsx b/src/base/Pagination/index.tsx deleted file mode 100644 index cf0100cf7..000000000 --- a/src/base/Pagination/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { PaginationProps } from '@mui/material'; -import Pagination, { PaginationItem } from './Pagination'; - -export { Pagination, PaginationItem }; -export type { PaginationProps }; diff --git a/src/base/Paper/Paper.tsx b/src/base/Paper/Paper.tsx deleted file mode 100644 index 9e3190f1a..000000000 --- a/src/base/Paper/Paper.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Paper as MuiPaper, type PaperProps as MuiPaperProps } from '@mui/material'; -import React from 'react'; - -const Paper = React.forwardRef<HTMLDivElement, MuiPaperProps>((props, ref) => { - return <MuiPaper {...props} ref={ref} />; -}); - -export default Paper; diff --git a/src/base/Paper/index.tsx b/src/base/Paper/index.tsx deleted file mode 100644 index a6582285e..000000000 --- a/src/base/Paper/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { PaperProps } from '@mui/material'; -import Paper from './Paper'; - -export { Paper }; -export type { PaperProps }; diff --git a/src/base/Popover/Popover.tsx b/src/base/Popover/Popover.tsx deleted file mode 100644 index c8a1eea4d..000000000 --- a/src/base/Popover/Popover.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Popover as MuiPopover, PopoverProps as MuiPopoverProps } from '@mui/material'; -import React from 'react'; - -const Popover = React.forwardRef<HTMLDivElement, MuiPopoverProps>((props, ref) => { - return <MuiPopover {...props} ref={ref} />; -}); - -export { Popover }; diff --git a/src/base/Popover/index.ts b/src/base/Popover/index.ts deleted file mode 100644 index 6e5a63648..000000000 --- a/src/base/Popover/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Popover } from './Popover'; diff --git a/src/base/Popper/Popper.tsx b/src/base/Popper/Popper.tsx deleted file mode 100644 index 24ea015a3..000000000 --- a/src/base/Popper/Popper.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Popper as MuiPopper, type PopperProps as MuiPopperProps } from '@mui/material'; -import React from 'react'; - -const Popper = React.forwardRef<HTMLDivElement, MuiPopperProps>((props, ref) => { - return <MuiPopper {...props} ref={ref} />; -}); - -export default Popper; diff --git a/src/base/Popper/index.tsx b/src/base/Popper/index.tsx deleted file mode 100644 index 308eedf6f..000000000 --- a/src/base/Popper/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { PopperProps } from '@mui/material'; -import Popper from './Popper'; - -export { Popper }; -export type { PopperProps }; diff --git a/src/base/Radio/Radio.tsx b/src/base/Radio/Radio.tsx deleted file mode 100644 index e1d6c606d..000000000 --- a/src/base/Radio/Radio.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Radio as MuiRadio, RadioProps as MuiRadioProps } from '@mui/material'; -import React from 'react'; - -export const Radio = React.forwardRef<HTMLButtonElement, MuiRadioProps>((props, ref) => { - return <MuiRadio ref={ref} {...props} />; -}); - -export default Radio; diff --git a/src/base/Radio/index.ts b/src/base/Radio/index.ts deleted file mode 100644 index de3697b1a..000000000 --- a/src/base/Radio/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Radio } from './Radio'; diff --git a/src/base/RadioGroup/RadioGroup.tsx b/src/base/RadioGroup/RadioGroup.tsx deleted file mode 100644 index aea4e747f..000000000 --- a/src/base/RadioGroup/RadioGroup.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - RadioGroup as MuiRadioGroup, - type RadioGroupProps as MuiRadioGroupProps -} from '@mui/material'; -import React from 'react'; - -const RadioGroup = React.forwardRef<HTMLDivElement, MuiRadioGroupProps>((props, ref) => { - return <MuiRadioGroup {...props} ref={ref} />; -}); - -export default RadioGroup; diff --git a/src/base/RadioGroup/index.tsx b/src/base/RadioGroup/index.tsx deleted file mode 100644 index 5ca2bdba8..000000000 --- a/src/base/RadioGroup/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { RadioGroupProps } from '@mui/material'; -import RadioGroup from './RadioGroup'; - -export { RadioGroup }; -export type { RadioGroupProps }; diff --git a/src/base/Select/Select.tsx b/src/base/Select/Select.tsx deleted file mode 100644 index a21c5f4eb..000000000 --- a/src/base/Select/Select.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Select as MuiSelect, type SelectProps as MuiSelectProps } from '@mui/material'; -import React from 'react'; - -const Select = React.forwardRef<HTMLDivElement, MuiSelectProps>((props, ref) => { - return <MuiSelect {...props} ref={ref} />; -}); - -export default Select; diff --git a/src/base/Select/index.tsx b/src/base/Select/index.tsx deleted file mode 100644 index dffc2763d..000000000 --- a/src/base/Select/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { SelectProps } from '@mui/material'; -import Select from './Select'; - -export { Select }; -export type { SelectProps }; diff --git a/src/base/Skeleton/Skeleton.tsx b/src/base/Skeleton/Skeleton.tsx deleted file mode 100644 index 045b1b0b1..000000000 --- a/src/base/Skeleton/Skeleton.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Skeleton as MuiSkeleton, type SkeletonProps as MuiSkeletonProps } from '@mui/material'; -import React from 'react'; - -const Skeleton = React.forwardRef<HTMLDivElement, MuiSkeletonProps>((props, ref) => { - return <MuiSkeleton {...props} ref={ref} />; -}); - -export default Skeleton; diff --git a/src/base/Skeleton/index.tsx b/src/base/Skeleton/index.tsx deleted file mode 100644 index 190aa18c9..000000000 --- a/src/base/Skeleton/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { SkeletonProps } from '@mui/material'; -import Skeleton from './Skeleton'; - -export { Skeleton }; -export type { SkeletonProps }; diff --git a/src/base/Slide/Slide.tsx b/src/base/Slide/Slide.tsx deleted file mode 100644 index 273e6f3cd..000000000 --- a/src/base/Slide/Slide.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Slide as MuiSlide, type SlideProps as MuiSlideProps } from '@mui/material'; -import React from 'react'; - -const Slide = React.forwardRef<HTMLDivElement, MuiSlideProps>((props, ref) => { - return <MuiSlide {...props} ref={ref} />; -}); - -export default Slide; diff --git a/src/base/Slide/index.tsx b/src/base/Slide/index.tsx deleted file mode 100644 index 6ee86fb95..000000000 --- a/src/base/Slide/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { SlideProps } from '@mui/material'; -import Slide from './Slide'; - -export { Slide }; -export type { SlideProps }; diff --git a/src/base/Slider/Slider.tsx b/src/base/Slider/Slider.tsx deleted file mode 100644 index 89d0aeed6..000000000 --- a/src/base/Slider/Slider.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Slider as MuiSlider, SliderProps as MuiSliderProps } from '@mui/material'; -import React from 'react'; - -export const Slider = React.forwardRef<HTMLDivElement, MuiSliderProps>((props, ref) => ( - <MuiSlider {...props} ref={ref} /> -)); - -export default Slider; diff --git a/src/base/Slider/index.ts b/src/base/Slider/index.ts deleted file mode 100644 index f84acd84c..000000000 --- a/src/base/Slider/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Slider } from './Slider'; diff --git a/src/base/Snackbar/Snackbar.tsx b/src/base/Snackbar/Snackbar.tsx deleted file mode 100644 index 9b2100fed..000000000 --- a/src/base/Snackbar/Snackbar.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Snackbar as MuiSnackbar, SnackbarProps as MuiSnackbarProps } from '@mui/material'; -import React from 'react'; - -export const Snackbar = React.forwardRef<HTMLDivElement, MuiSnackbarProps>((props, ref) => ( - <MuiSnackbar {...props} ref={ref} /> -)); - -export default Snackbar; diff --git a/src/base/Snackbar/index.ts b/src/base/Snackbar/index.ts deleted file mode 100644 index 16515d336..000000000 --- a/src/base/Snackbar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Snackbar } from './Snackbar'; diff --git a/src/base/SpeedDial/SpeedDial.tsx b/src/base/SpeedDial/SpeedDial.tsx deleted file mode 100644 index 2d5c08531..000000000 --- a/src/base/SpeedDial/SpeedDial.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { - SpeedDial as MuiSpeedDial, - SpeedDialAction as MuiSpeedDialAction, - SpeedDialActionProps as MuiSpeedDialActionProps, - SpeedDialProps as MuiSpeedDialProps -} from '@mui/material'; -import React from 'react'; - -export const SpeedDial = React.forwardRef<HTMLDivElement, MuiSpeedDialProps>((props, ref) => ( - <MuiSpeedDial {...props} ref={ref} /> -)); - -export const SpeedDialAction = React.forwardRef<HTMLButtonElement, MuiSpeedDialActionProps>( - (props, ref) => <MuiSpeedDialAction {...props} ref={ref} /> -); diff --git a/src/base/SpeedDial/index.ts b/src/base/SpeedDial/index.ts deleted file mode 100644 index ab1e0eeb5..000000000 --- a/src/base/SpeedDial/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { SpeedDial, SpeedDialAction } from './SpeedDial'; diff --git a/src/base/Stack/Stack.tsx b/src/base/Stack/Stack.tsx deleted file mode 100644 index 315c3671e..000000000 --- a/src/base/Stack/Stack.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Stack as MuiStack, type StackProps as MuiStackProps } from '@mui/material'; -import React from 'react'; - -const Stack = React.forwardRef<HTMLDivElement, MuiStackProps>((props, ref) => { - return <MuiStack {...props} ref={ref} />; -}); - -export default Stack; diff --git a/src/base/Stack/index.tsx b/src/base/Stack/index.tsx deleted file mode 100644 index 903668a0b..000000000 --- a/src/base/Stack/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { StackProps } from '@mui/material'; -import Stack from './Stack'; - -export { Stack }; -export type { StackProps }; diff --git a/src/base/Step/Step.tsx b/src/base/Step/Step.tsx deleted file mode 100644 index d44b9cd81..000000000 --- a/src/base/Step/Step.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { - Step as MuiStep, - StepButton as MuiStepButton, - StepButtonProps as MuiStepButtonProps, - StepConnector as MuiStepConnector, - StepConnectorProps as MuiStepConnectorProps, - StepContent as MuiStepContent, - StepContentProps as MuiStepContentProps, - StepIcon as MuiStepIcon, - StepIconProps as MuiStepIconProps, - StepLabel as MuiStepLabel, - StepLabelProps as MuiStepLabelProps, - StepProps as MuiStepProps, - Stepper as MuiStepper, - StepperProps as MuiStepperProps -} from '@mui/material'; -import React from 'react'; - -export const Step = React.forwardRef<HTMLDivElement, MuiStepProps>((props, ref) => { - return <MuiStep {...props} ref={ref} />; -}); - -export const Stepper = React.forwardRef<HTMLDivElement, MuiStepperProps>((props, ref) => { - return <MuiStepper {...props} ref={ref} />; -}); - -export const StepLabel = React.forwardRef<HTMLSpanElement, MuiStepLabelProps>((props, ref) => { - return <MuiStepLabel {...props} ref={ref} />; -}); - -export const StepConnector = React.forwardRef<HTMLDivElement, MuiStepConnectorProps>( - (props, ref) => { - return <MuiStepConnector {...props} ref={ref} />; - } -); - -export const StepButton = React.forwardRef<HTMLButtonElement, MuiStepButtonProps>((props, ref) => { - return <MuiStepButton {...props} ref={ref} />; -}); - -export const StepContent = React.forwardRef<HTMLDivElement, MuiStepContentProps>((props, ref) => { - return <MuiStepContent {...props} ref={ref} />; -}); - -export const StepIcon = React.forwardRef<SVGSVGElement, MuiStepIconProps>((props, ref) => { - return <MuiStepIcon {...props} ref={ref} />; -}); diff --git a/src/base/Step/index.ts b/src/base/Step/index.ts deleted file mode 100644 index de429e027..000000000 --- a/src/base/Step/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { StepConnectorProps, stepConnectorClasses } from '@mui/material'; -export { Step, StepButton, StepConnector, StepContent, StepIcon, StepLabel, Stepper } from './Step'; -export { stepConnectorClasses }; -export type { StepConnectorProps }; diff --git a/src/base/SvgIcon/SvgIcon.tsx b/src/base/SvgIcon/SvgIcon.tsx deleted file mode 100644 index 4a68ba4e8..000000000 --- a/src/base/SvgIcon/SvgIcon.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { SvgIcon as MuiSvgIcon, type SvgIconProps as MuiSvgIconProps } from '@mui/material'; -import React from 'react'; - -export const SvgIcon = React.forwardRef<SVGSVGElement, MuiSvgIconProps>((props, ref) => { - return <MuiSvgIcon {...props} ref={ref} />; -}); - -export default SvgIcon; -export type { MuiSvgIconProps as SvgIconProps }; diff --git a/src/base/SvgIcon/index.ts b/src/base/SvgIcon/index.ts deleted file mode 100644 index 7a46a66d1..000000000 --- a/src/base/SvgIcon/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { SvgIcon } from './SvgIcon'; -export type { SvgIconProps } from './SvgIcon'; diff --git a/src/base/Switch/Switch.tsx b/src/base/Switch/Switch.tsx deleted file mode 100644 index 820c12cc8..000000000 --- a/src/base/Switch/Switch.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Switch as MuiSwitch, type SwitchProps as MuiSwitchProps } from '@mui/material'; -import React from 'react'; - -const Switch = React.forwardRef<HTMLButtonElement, MuiSwitchProps>((props, ref) => { - return <MuiSwitch {...props} ref={ref} />; -}); - -export default Switch; diff --git a/src/base/Switch/index.tsx b/src/base/Switch/index.tsx deleted file mode 100644 index a03536d52..000000000 --- a/src/base/Switch/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { SwitchProps } from '@mui/material'; -import Switch from './Switch'; - -export { Switch }; -export type { SwitchProps }; diff --git a/src/base/Tab/Tab.tsx b/src/base/Tab/Tab.tsx deleted file mode 100644 index d19ec2b46..000000000 --- a/src/base/Tab/Tab.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Tab as MuiTab, type TabProps as MuiTypeProps } from '@mui/material'; -import React from 'react'; - -const Tab = React.forwardRef<HTMLDivElement, MuiTypeProps>((props, ref) => { - return <MuiTab {...props} ref={ref} />; -}); - -export default Tab; diff --git a/src/base/Tab/index.tsx b/src/base/Tab/index.tsx deleted file mode 100644 index 306e850cd..000000000 --- a/src/base/Tab/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { TabProps } from '@mui/material'; -import Tab from './Tab'; - -export { Tab }; -export type { TabProps }; diff --git a/src/base/Table/Table.tsx b/src/base/Table/Table.tsx deleted file mode 100644 index e54e41cfc..000000000 --- a/src/base/Table/Table.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { Table as MuiTable, type TableProps as MuiTableProps } from '@mui/material'; - -export function Table(props: MuiTableProps): JSX.Element { - return <MuiTable {...props} />; -} - -export default Table; diff --git a/src/base/Table/index.tsx b/src/base/Table/index.tsx deleted file mode 100644 index 3280c0259..000000000 --- a/src/base/Table/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { TableProps } from '@mui/material'; -import Table from './Table'; - -export { Table }; -export type { TableProps }; diff --git a/src/base/TableBody/TableBody.tsx b/src/base/TableBody/TableBody.tsx deleted file mode 100644 index 432771c53..000000000 --- a/src/base/TableBody/TableBody.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { TableBody as MuiTableBody, TableBodyProps as MuiTableBodyProps } from '@mui/material'; -import React from 'react'; - -export const TableBody = React.forwardRef<HTMLTableSectionElement, MuiTableBodyProps>( - (props, ref) => <MuiTableBody {...props} ref={ref} /> -); - -export default TableBody; diff --git a/src/base/TableBody/index.tsx b/src/base/TableBody/index.tsx deleted file mode 100644 index b0f441e9a..000000000 --- a/src/base/TableBody/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { TableBody } from './TableBody'; diff --git a/src/base/TableCell/TableCell.tsx b/src/base/TableCell/TableCell.tsx deleted file mode 100644 index 54ff8e0ee..000000000 --- a/src/base/TableCell/TableCell.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { TableCell as MuiTableCell, TableCellProps as MuiTableCellProps } from '@mui/material'; -import React from 'react'; - -export const TableCell = React.forwardRef<HTMLTableCellElement, MuiTableCellProps>((props, ref) => { - return <MuiTableCell {...props} ref={ref} />; -}); - -export default TableCell; diff --git a/src/base/TableCell/index.ts b/src/base/TableCell/index.ts deleted file mode 100644 index a459a4f53..000000000 --- a/src/base/TableCell/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { TableCell } from './TableCell'; diff --git a/src/base/TableContainer/TableContainer.tsx b/src/base/TableContainer/TableContainer.tsx deleted file mode 100644 index 38ad712a9..000000000 --- a/src/base/TableContainer/TableContainer.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { - TableContainer as MuiTableContainer, - TableContainerProps as MuiTableContainerProps -} from '@mui/material'; -import React from 'react'; - -export const TableContainer = React.forwardRef<HTMLDivElement, MuiTableContainerProps>( - (props, ref) => { - return <MuiTableContainer {...props} ref={ref} />; - } -); - -export default TableContainer; diff --git a/src/base/TableContainer/index.ts b/src/base/TableContainer/index.ts deleted file mode 100644 index c675dca04..000000000 --- a/src/base/TableContainer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { TableContainer } from './TableContainer'; diff --git a/src/base/TableHead/TableHead.tsx b/src/base/TableHead/TableHead.tsx deleted file mode 100644 index 6f6444d6f..000000000 --- a/src/base/TableHead/TableHead.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { TableHead as MuiTableHead, TableHeadProps as MuiTableHeadProps } from '@mui/material'; -import React from 'react'; - -export const TableHead = React.forwardRef<HTMLTableSectionElement, MuiTableHeadProps>( - function TableHead(props: MuiTableHeadProps, ref) { - return <MuiTableHead ref={ref} {...props} />; - } -); - -export default TableHead; diff --git a/src/base/TableHead/index.ts b/src/base/TableHead/index.ts deleted file mode 100644 index 51a044316..000000000 --- a/src/base/TableHead/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { TableHead } from './TableHead'; diff --git a/src/base/TableRow/TableRow.tsx b/src/base/TableRow/TableRow.tsx deleted file mode 100644 index 272ddafbc..000000000 --- a/src/base/TableRow/TableRow.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { TableRow as MuiTableRow, TableRowProps as MuiTableRowProps } from '@mui/material'; -import React from 'react'; - -export const TableRow = React.forwardRef<HTMLTableRowElement, MuiTableRowProps>((props, ref) => { - return <MuiTableRow ref={ref} {...props} />; -}); - -export default TableRow; diff --git a/src/base/TableRow/index.tsx b/src/base/TableRow/index.tsx deleted file mode 100644 index cdbdaaa23..000000000 --- a/src/base/TableRow/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { TableRow } from './TableRow'; diff --git a/src/base/TableSortLabel/TableSortLabel.tsx b/src/base/TableSortLabel/TableSortLabel.tsx deleted file mode 100644 index 9c3460dd3..000000000 --- a/src/base/TableSortLabel/TableSortLabel.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { - TableSortLabel as MuiTableSortLabel, - TableSortLabelProps as MuiTableSortLabelProps -} from '@mui/material'; -import React from 'react'; - -export const TableSortLabel = React.forwardRef<HTMLSpanElement, MuiTableSortLabelProps>( - (props, ref) => { - return <MuiTableSortLabel {...props} ref={ref} />; - } -); - -export default TableSortLabel; diff --git a/src/base/TableSortLabel/index.ts b/src/base/TableSortLabel/index.ts deleted file mode 100644 index 065c862ea..000000000 --- a/src/base/TableSortLabel/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { TableSortLabel } from './TableSortLabel'; diff --git a/src/base/Tabs/Tabs.tsx b/src/base/Tabs/Tabs.tsx deleted file mode 100644 index 578cc4d9b..000000000 --- a/src/base/Tabs/Tabs.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Tabs as MuiTabs, type TabsProps as MuiTabsProps } from '@mui/material'; -import React from 'react'; - -const Tabs = React.forwardRef<HTMLDivElement, MuiTabsProps>((props, ref) => { - return <MuiTabs {...props} ref={ref} />; -}); - -export default Tabs; diff --git a/src/base/Tabs/index.tsx b/src/base/Tabs/index.tsx deleted file mode 100644 index fa3ba2376..000000000 --- a/src/base/Tabs/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { TabsProps } from '@mui/material'; -import Tabs from './Tabs'; - -export { Tabs }; -export type { TabsProps }; diff --git a/src/base/TextField/TextField.tsx b/src/base/TextField/TextField.tsx deleted file mode 100644 index e8fd8b555..000000000 --- a/src/base/TextField/TextField.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { TextField as MuiTextField, type TextFieldProps as MuiTextFieldProps } from '@mui/material'; -import React from 'react'; - -const TextField = React.forwardRef<HTMLDivElement, MuiTextFieldProps>((props, ref) => { - return <MuiTextField {...props} ref={ref} />; -}); - -export default TextField; diff --git a/src/base/TextField/index.tsx b/src/base/TextField/index.tsx deleted file mode 100644 index 9b68a14a8..000000000 --- a/src/base/TextField/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { TextFieldProps } from '@mui/material'; -import TextField from './TextField'; - -export { TextField }; -export type { TextFieldProps }; diff --git a/src/base/ToggleButton/ToggleButton.tsx b/src/base/ToggleButton/ToggleButton.tsx deleted file mode 100644 index 02c764d48..000000000 --- a/src/base/ToggleButton/ToggleButton.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { - ToggleButton as MuiToggleButton, - type ToggleButtonProps as MuiToggleButtonProps -} from '@mui/material'; - -export function ToggleButton(props: MuiToggleButtonProps): JSX.Element { - return <MuiToggleButton {...props} />; -} - -export default ToggleButton; diff --git a/src/base/ToggleButton/index.tsx b/src/base/ToggleButton/index.tsx deleted file mode 100644 index d8c3d71ac..000000000 --- a/src/base/ToggleButton/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ToggleButtonProps } from '@mui/material'; -import ToggleButton from './ToggleButton'; - -export { ToggleButton }; -export type { ToggleButtonProps }; diff --git a/src/base/ToggleButtonGroup/ToggleButtonGroup.tsx b/src/base/ToggleButtonGroup/ToggleButtonGroup.tsx deleted file mode 100644 index 73348807a..000000000 --- a/src/base/ToggleButtonGroup/ToggleButtonGroup.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { - ToggleButtonGroup as MuiToggleButtonGroup, - type ToggleButtonGroupProps as MuiToggleButtonGroupProps -} from '@mui/material'; -import React from 'react'; - -const ToggleButtonGroup = React.forwardRef<HTMLDivElement, MuiToggleButtonGroupProps>( - (props, ref) => { - return <MuiToggleButtonGroup {...props} ref={ref} />; - } -); - -export default ToggleButtonGroup; diff --git a/src/base/ToggleButtonGroup/index.tsx b/src/base/ToggleButtonGroup/index.tsx deleted file mode 100644 index e78dd4ffa..000000000 --- a/src/base/ToggleButtonGroup/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ToggleButtonGroupProps } from '@mui/material'; -import ToggleButtonGroup from './ToggleButtonGroup'; - -export { ToggleButtonGroup }; -export type { ToggleButtonGroupProps }; diff --git a/src/base/Toolbar/Toolbar.tsx b/src/base/Toolbar/Toolbar.tsx deleted file mode 100644 index 390d8eccf..000000000 --- a/src/base/Toolbar/Toolbar.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Toolbar as MuiToolbar, type ToolbarProps as MuiToolbarProps } from '@mui/material'; -import React from 'react'; - -const Toolbar = React.forwardRef<HTMLDivElement, MuiToolbarProps>((props, ref) => { - return <MuiToolbar {...props} ref={ref} />; -}); - -export default Toolbar; diff --git a/src/base/Toolbar/index.tsx b/src/base/Toolbar/index.tsx deleted file mode 100644 index 40b604cf9..000000000 --- a/src/base/Toolbar/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ToolbarProps } from '@mui/material'; -import Toolbar from './Toolbar'; - -export { Toolbar }; -export type { ToolbarProps }; diff --git a/src/base/Tooltip/Tooltip.tsx b/src/base/Tooltip/Tooltip.tsx deleted file mode 100644 index e29341d20..000000000 --- a/src/base/Tooltip/Tooltip.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { Tooltip as MuiTooltip, type TooltipProps as MuiTooltipProps } from '@mui/material'; - -export function Tooltip(props: MuiTooltipProps): JSX.Element { - return <MuiTooltip {...props} />; -} - -export default Tooltip; diff --git a/src/base/Tooltip/index.tsx b/src/base/Tooltip/index.tsx deleted file mode 100644 index a2bead872..000000000 --- a/src/base/Tooltip/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { TooltipProps } from '@mui/material'; -import { tooltipClasses } from '@mui/material/Tooltip'; -import Tooltip from './Tooltip'; - -export { Tooltip, tooltipClasses }; -export type { TooltipProps }; diff --git a/src/base/Typography/Typography.tsx b/src/base/Typography/Typography.tsx deleted file mode 100644 index 70ea97827..000000000 --- a/src/base/Typography/Typography.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { - Typography as MuiTypography, - type TypographyProps as MuiTypographyProps -} from '@mui/material'; -import React from 'react'; - -const Typography = React.forwardRef<HTMLDivElement, MuiTypographyProps>((props, ref) => { - return <MuiTypography {...props} ref={ref} />; -}); - -export default Typography; diff --git a/src/base/Typography/index.tsx b/src/base/Typography/index.tsx deleted file mode 100644 index 668c11a46..000000000 --- a/src/base/Typography/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { TypographyProps } from '@mui/material'; -import Typography from './Typography'; - -export { Typography }; -export type { TypographyProps }; diff --git a/src/base/Zoom/Zoom.tsx b/src/base/Zoom/Zoom.tsx deleted file mode 100644 index 144d712b8..000000000 --- a/src/base/Zoom/Zoom.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Zoom as MuiZoom, ZoomProps as MuiZoomProps } from '@mui/material'; -import React from 'react'; - -export const Zoom = React.forwardRef<HTMLDivElement, MuiZoomProps>((props, ref) => { - return <MuiZoom ref={ref} {...props} />; -}); - -export default Zoom; diff --git a/src/base/Zoom/index.ts b/src/base/Zoom/index.ts deleted file mode 100644 index 5f11cedb6..000000000 --- a/src/base/Zoom/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Zoom } from './Zoom'; diff --git a/src/base/index.tsx b/src/base/index.tsx deleted file mode 100644 index da4f57642..000000000 --- a/src/base/index.tsx +++ /dev/null @@ -1,97 +0,0 @@ -export * from './Accordion'; -export * from './AccordionActions'; -export * from './AccordionDetails'; -export * from './AccordionSummary'; -export * from './Alert'; -export * from './AlertTitle'; -export * from './AppBar'; -export * from './Autocomplete'; -export * from './Avatar'; -export * from './AvatarGroup'; -export * from './Backdrop'; -export * from './Badge'; -export * from './Box'; -export * from './Breadcrumbs'; -export * from './Button'; -export * from './ButtonGroup'; -export * from './Card'; -export * from './CardActions'; -export * from './CardContent'; -export * from './CardHeader'; -export * from './CardMedia'; -export * from './Checkbox'; -export * from './Chip'; -export * from './CircularProgress'; -export * from './ClickAwayListener'; -export * from './Collapse'; -export * from './Container'; -export * from './CssBaseLine'; -export * from './Dialog'; -export * from './DialogActions'; -export * from './DialogContent'; -export * from './DialogContentText'; -export * from './DialogTitle'; -export * from './Divider'; -export * from './Drawer'; -export * from './Fab'; -export * from './Fade'; -export * from './FormControl'; -export * from './FormControlLabel'; -export * from './FormGroup'; -export * from './FormLabel'; -export * from './Grid'; -export * from './Grid2'; -export * from './Grow'; -export * from './Hidden'; -export * from './IconButton'; -export * from './Input'; -export * from './InputBase'; -export * from './InputLabel'; -export * from './LinearProgress'; -export * from './Link'; -export * from './List'; -export * from './ListItem'; -export * from './ListItemAvatar'; -export * from './ListItemButton'; -export * from './ListItemIcon'; -export * from './ListItemSecondaryAction'; -export * from './ListItemText'; -export * from './ListSubheader'; -export * from './Menu'; -export * from './MenuItem'; -export * from './MenuList'; -export * from './NativeSelect'; -export * from './NoSsr'; -export * from './OutlinedInput'; -export * from './Pagination'; -export * from './Paper'; -export * from './Popover'; -export * from './Popper'; -export * from './Radio'; -export * from './RadioGroup'; -export * from './Select'; -export * from './Skeleton'; -export * from './Slide'; -export * from './Slider'; -export * from './Snackbar'; -export * from './SpeedDial'; -export * from './Stack'; -export * from './Step'; -export * from './SvgIcon'; -export * from './Switch'; -export * from './Tab'; -export * from './Table'; -export * from './TableBody'; -export * from './TableCell'; -export * from './TableContainer'; -export * from './TableHead'; -export * from './TableRow'; -export * from './TableSortLabel'; -export * from './Tabs'; -export * from './TextField'; -export * from './ToggleButton'; -export * from './ToggleButtonGroup'; -export * from './Toolbar'; -export * from './Tooltip'; -export * from './Typography'; -export * from './Zoom'; diff --git a/src/colors/ColorDictionary.tsx b/src/colors/ColorDictionary.tsx deleted file mode 100644 index 17d2477f8..000000000 --- a/src/colors/ColorDictionary.tsx +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @file colors.ts - * @description This file defines the color palette for the design system. - * It provides a dictionary of commonly used colors for consistency across components. - * @remarks These colors can be imported and used in various components. - */ - -/** - * Dictionary of commonly used colors. - */ - -type ColorDictionary = Record<string, string>; - -export const colors: ColorDictionary = { - primary: '#0070f3', - secondary: '#6c757d', - success: '#28a745', - danger: '#dc3545', - warning: '#ffc107', - info: '#17a2b8', - light: '#f8f9fa', - dark: '#343a40', - caribbeanGreen: '#00D3A9', - yellowSea: '#F0A303', - keppelGreen: '#00B39F', - pineGreen: '#008071', - charcoal: '#3C494F', - cultured: '#F6F8F8', - white: '#ffffff', - btnHover: '#00D3A9', - tabmenuhover: '#607d8b', - btnDisabled: '#b0bec5' - //define other colors here -}; - -// usage example: -// import colors from './ColorDictionary'; - -// const Button = styled.button` -// background-color: ${colors.primary}; diff --git a/src/colors/index.ts b/src/colors/index.ts deleted file mode 100644 index c982ff943..000000000 --- a/src/colors/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { colors } from './ColorDictionary'; diff --git a/src/constants/constants.ts b/src/constants/constants.ts deleted file mode 100644 index c1cd9f94e..000000000 --- a/src/constants/constants.ts +++ /dev/null @@ -1,87 +0,0 @@ -export const DEFAULT_WIDTH = '24'; -export const DEFAULT_HEIGHT = '24'; -export const DEFAULT_FILL = '#000'; -export const DEFAULT_FILL_NONE = 'none'; -export const KEPPEL_GREEN_FILL = '#00B39F'; -export const CARIBBEAN_GREEN_FILL = '#00D3A9'; -export const DEFAULT_STROKE = '#000'; -export const DEFAULT_STROKE_WIDTH = '2'; - -export const KANVAS_MODE = { - DESIGNER: 'design', - OPERATOR: 'operator' -} as const; - -export const PLAYGROUND_MODES = KANVAS_MODE; - -export const VISIBILITY = { - PUBLIC: 'public', - PRIVATE: 'private' -}; - -export const RESOURCE_TYPE = { - FILTER: 'filter', - DESIGN: 'design', - CATALOG: 'catalog', - VIEW: 'view' -} as const; - -export type ResourceType = (typeof RESOURCE_TYPE)[keyof typeof RESOURCE_TYPE]; -export interface ICEServer { - urls: string; - username?: string; - credential?: string; -} - -/** - * ICE server configuration for WebRTC connections - */ -export const ICE_SERVERS: ICEServer[] = [ - { - urls: 'stun:stun.l.google.com:19302' - }, - { - urls: 'stun:global.stun.twilio.com:3478' - }, - { - urls: 'stun:openrelay.metered.ca:80' - }, - { - urls: 'turn:openrelay.metered.ca:80', - username: 'openrelayproject', - credential: 'openrelayproject' - }, - { - urls: 'turn:openrelay.metered.ca:443', - username: 'openrelayproject', - credential: 'openrelayproject' - }, - { - urls: 'turn:openrelay.metered.ca:443?transport=tcp', - username: 'openrelayproject', - credential: 'openrelayproject' - } -]; - -export const MESHERY_CLOUD_PROD = 'https://cloud.layer5.io'; -export const MESHERY_CLOUD_STAGING = 'staging-cloud.layer5.io'; -export const MESHERY_CLOUD_WS_PROD = 'cloud-ws.layer5.io'; -export const MESHERY_CLOUD_WS_STAGING = 'staging-cloud-ws.layer5.io:6543'; - -export const EVENT_TYPES = { - SUCCESS: { - type: 'success' - }, - DEFAULT: { - type: 'default' - }, - INFO: { - type: 'info' - }, - WARNING: { - type: 'warning' - }, - ERROR: { - type: 'error' - } -}; diff --git a/src/constants/iconsSizes.ts b/src/constants/iconsSizes.ts deleted file mode 100644 index bd09817f8..000000000 --- a/src/constants/iconsSizes.ts +++ /dev/null @@ -1,26 +0,0 @@ -// icon styles, setting general height and width properties to solves scaling and consistency problems - -export const iconXSmall = { - height: 16, - width: 16 -}; - -export const iconSmall = { - height: 20, - width: 20 -}; - -export const iconMedium = { - height: 24, - width: 24 -}; - -export const iconLarge = { - height: 32, - width: 32 -}; - -export const iconXLarge = { - height: 40, - width: 40 -}; diff --git a/src/custom/ActionButton/ActionButton.tsx b/src/custom/ActionButton/ActionButton.tsx deleted file mode 100644 index dc8d1647c..000000000 --- a/src/custom/ActionButton/ActionButton.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import * as React from 'react'; -import { - Button, - ButtonGroup, - ClickAwayListener, - Divider, - MenuItem, - MenuList, - Paper, - Popper -} from '../../base'; -import { DropDownIcon } from '../../icons'; -interface Option { - icon: React.ReactNode; - label: string; - onClick: (event: React.MouseEvent<HTMLLIElement, MouseEvent>, index: number) => void; - isDivider?: boolean; - show?: boolean; -} - -interface ActionButtonProps { - defaultActionClick: () => void; - defaultActionDisabled?: boolean; - options: Option[]; - label: string; -} - -export default function ActionButton({ - defaultActionClick, - defaultActionDisabled = false, - options, - label -}: ActionButtonProps): JSX.Element { - const [open, setOpen] = React.useState(false); - const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null); - const handleMenuItemClick = () => { - setOpen(false); - }; - - const handleToggle = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => { - event.stopPropagation(); - setAnchorEl(event.currentTarget); - setOpen((prevOpen) => !prevOpen); - }; - - const handleClose = () => { - setAnchorEl(null); - setOpen(false); - }; - - return ( - <React.Fragment> - <ButtonGroup - variant="contained" - style={{ boxShadow: 'none' }} - aria-label="Button group with a nested menu" - > - <Button onClick={defaultActionClick} variant="contained" disabled={defaultActionDisabled}> - {label} - </Button> - <Button size="small" onClick={handleToggle} variant="contained"> - <DropDownIcon /> - </Button> - </ButtonGroup> - <Popper - sx={{ - zIndex: 1 - }} - open={open} - anchorEl={anchorEl} - role={undefined} - > - <Paper> - <ClickAwayListener onClickAway={handleClose}> - <MenuList id="split-button-menu" autoFocusItem> - {options - .filter((option) => option?.show !== false) - .map((option, index) => - option.isDivider ? ( - <Divider /> - ) : ( - <MenuItem - key={index} - onClick={(event) => { - handleMenuItemClick(); - option.onClick(event, index); - }} - > - <div style={{ marginRight: '1rem' }}>{option.icon}</div> - {option.label} - </MenuItem> - ) - )} - </MenuList> - </ClickAwayListener> - </Paper> - </Popper> - </React.Fragment> - ); -} diff --git a/src/custom/ActionButton/index.tsx b/src/custom/ActionButton/index.tsx deleted file mode 100644 index b06dacf43..000000000 --- a/src/custom/ActionButton/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import ActionButton from './ActionButton'; - -export { ActionButton }; diff --git a/src/custom/BBChart/BBChart.tsx b/src/custom/BBChart/BBChart.tsx deleted file mode 100644 index 503c6554f..000000000 --- a/src/custom/BBChart/BBChart.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { ChartOptions, bb } from 'billboard.js'; -import { memo, useEffect, useRef } from 'react'; - -interface BBChartProps { - options: ChartOptions; -} - -const BBChart = ({ options }: BBChartProps) => { - const _chartRef = useRef<HTMLDivElement | null>(null); - - useEffect(() => { - if (!_chartRef.current) return; - - const chart = bb.generate({ - bindto: _chartRef.current, - ...options - }); - - return () => { - chart.destroy(); - }; - }, [options]); - - return <div ref={_chartRef} onClickCapture={(e) => e.stopPropagation()} />; -}; - -export default memo(BBChart); diff --git a/src/custom/BBChart/index.ts b/src/custom/BBChart/index.ts deleted file mode 100644 index 2980714e6..000000000 --- a/src/custom/BBChart/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import BBChart from './BBChart'; - -export { BBChart }; diff --git a/src/custom/BookmarkNotification/BookmarkNotification.tsx b/src/custom/BookmarkNotification/BookmarkNotification.tsx deleted file mode 100644 index c10aa9ec4..000000000 --- a/src/custom/BookmarkNotification/BookmarkNotification.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; -import { CrossCircleIcon } from '../../icons'; -import { NotificationWrapper } from './style'; - -interface NotificationProps { - showNotification: boolean; - closeNotification: () => void; -} - -const BookmarkNotification: React.FC<NotificationProps> = ({ - showNotification, - closeNotification -}) => { - return showNotification ? ( - <NotificationWrapper> - <div className="notification-container"> - <p> - We track your progress so you don't need to worry about the 'mesh' of remembering where - you left. - </p> - <CrossCircleIcon className="notification-cross-icon" onClick={closeNotification} /> - </div> - </NotificationWrapper> - ) : null; -}; - -export default BookmarkNotification; diff --git a/src/custom/BookmarkNotification/index.tsx b/src/custom/BookmarkNotification/index.tsx deleted file mode 100644 index 72068ad5b..000000000 --- a/src/custom/BookmarkNotification/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import BookmarkNotification from './BookmarkNotification'; - -export { BookmarkNotification }; diff --git a/src/custom/BookmarkNotification/style.tsx b/src/custom/BookmarkNotification/style.tsx deleted file mode 100644 index 95e7d0281..000000000 --- a/src/custom/BookmarkNotification/style.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { styled } from '@mui/material'; -import { YELLOW_SEA } from '../../theme'; - -export const NotificationWrapper = styled('div')({ - position: 'fixed', - bottom: '1rem', - left: '1.5rem', - zIndex: 999, - maxWidth: '70%', - - '.notification-container': { - display: 'flex', - alignItems: 'center', - padding: '0.75rem 1rem', - borderRadius: '5px', - boxShadow: '0 2px 5px 0 rgb(0 0 0 / 26%)', - background: YELLOW_SEA, - animation: '$fadeIn .8s', - - p: { - margin: 0, - marginRight: '15px' - }, - - '.notification-cross-icon': { - cursor: 'pointer', - width: '1.5rem', - height: '1.5rem' - } - }, - - '@keyframes fadeIn': { - from: { - opacity: 0, - transform: 'translateX(-10%)' - }, - to: { - opacity: 1, - transform: 'translateX(0)' - } - } -}); diff --git a/src/custom/Carousel/Carousel.tsx b/src/custom/Carousel/Carousel.tsx deleted file mode 100644 index 50c2f05b3..000000000 --- a/src/custom/Carousel/Carousel.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { ChevronLeft, ChevronRight } from '@mui/icons-material'; -import React, { ReactNode, useRef } from 'react'; -import { CarouselButton, CarouselContainer, CarouselWrapper } from './style'; - -interface CarouselProps { - items: ReactNode[]; - title?: string; - scrollAmount?: number; - showNavButtons?: boolean; - itemClassName?: string; -} - -const Carousel: React.FC<CarouselProps> = ({ - items, - scrollAmount = 300, - showNavButtons = true, - itemClassName = 'carousel-item' -}) => { - const carouselRef = useRef<HTMLDivElement>(null); - if (!items.length) return null; - - const scroll = (direction: 'left' | 'right') => { - if (carouselRef.current) { - carouselRef.current.scrollBy({ - left: direction === 'left' ? -scrollAmount : scrollAmount, - behavior: 'smooth' - }); - } - }; - - return ( - <CarouselWrapper> - {showNavButtons && ( - <CarouselButton onClick={() => scroll('left')}> - <ChevronLeft /> - </CarouselButton> - )} - <CarouselContainer ref={carouselRef}> - {items.map((item, index) => ( - <div key={`carousel-item-${index}`} className={itemClassName}> - {item} - </div> - ))} - </CarouselContainer> - {showNavButtons && ( - <CarouselButton onClick={() => scroll('right')}> - <ChevronRight /> - </CarouselButton> - )} - </CarouselWrapper> - ); -}; - -export default Carousel; diff --git a/src/custom/Carousel/index.tsx b/src/custom/Carousel/index.tsx deleted file mode 100644 index 1fa658cc4..000000000 --- a/src/custom/Carousel/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import Carousel from './Carousel'; - -export { Carousel }; diff --git a/src/custom/Carousel/style.tsx b/src/custom/Carousel/style.tsx deleted file mode 100644 index 020585a37..000000000 --- a/src/custom/Carousel/style.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { styled } from '../../theme'; - -export const CarouselButton = styled('button')(({ theme }) => ({ - position: 'absolute', - top: '50%', - transform: 'translateY(-50%)', - zIndex: '1', - background: theme.palette.background.paper, - color: theme.palette.mode === 'dark' ? theme.palette.common.white : theme.palette.common.black, - border: 'none', - cursor: 'pointer', - padding: '0.5rem', - borderRadius: '50%', - boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)', - '&:hover': { - background: theme.palette.primary.main, - color: '#fff' - }, - '&:first-of-type': { - left: '-0.5rem' - }, - '&:last-of-type': { - right: '-0.5rem' - } -})); - -export const CarouselWrapper = styled('div')({ - display: 'flex', - alignItems: 'center', - width: '100%', - position: 'relative', - padding: '0 3rem' -}); - -export const CarouselContainer = styled('div')({ - display: 'flex', - overflowX: 'auto', - scrollBehavior: 'smooth', - scrollSnapType: 'x mandatory', - gap: '0.5rem', - paddingBottom: '1rem', - width: '100%', - msOverflowStyle: 'none', - scrollbarWidth: 'none', - '&::-webkit-scrollbar': { - display: 'none' - }, - '.carousel-item': { - flex: '0 0 auto', - scrollSnapAlign: 'center', - width: 'auto' - } -}); diff --git a/src/custom/CatalogCard/CatalogCard.tsx b/src/custom/CatalogCard/CatalogCard.tsx deleted file mode 100644 index a038e925f..000000000 --- a/src/custom/CatalogCard/CatalogCard.tsx +++ /dev/null @@ -1,118 +0,0 @@ -import { styled } from '@mui/material'; -import React from 'react'; -import { - CloneIcon, - CommunityClassIcon, - DesignIcon, - OfficialClassIcon, - OpenIcon, - ShareIcon -} from '../../icons'; -import VerificationClassIcon from '../../icons/ContentClassIcons/VerificationClassIcon'; -import DeploymentsIcon from '../../icons/Deployments/DeploymentsIcon'; -import { DownloadIcon } from '../../icons/Download'; -import { - DesignCard, - DesignDetailsDiv, - DesignInnerCard, - DesignName, - DesignType, - ImageWrapper, - MetricsContainerFront, - MetricsCount, - MetricsDiv, - StyledClassWrapper, - StyledInnerClassWrapper -} from './style'; - -export const DesignCardUrl = styled('a')(() => ({ - textDecoration: 'none' -})); - -type CatalogCardProps = { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - pattern: any; - patternType: string; - cardHeight: string; - cardWidth: string; - cardStyles: React.CSSProperties; - type: string; - onCardClick?: () => void; -}; - -export const ClassToIconMap = { - community: <CommunityClassIcon width="16px" height="12px" />, - official: <OfficialClassIcon width="16px" height="12px" />, - verified: <VerificationClassIcon width="16px" height="12px" /> -}; - -const ClassWrap = ({ catalogClassName }: { catalogClassName: string }) => { - if (!catalogClassName) return <></>; - - return ( - <StyledClassWrapper> - <StyledInnerClassWrapper catalogClassName={catalogClassName}> - {catalogClassName} - </StyledInnerClassWrapper> - </StyledClassWrapper> - ); -}; -const CatalogCard: React.FC<CatalogCardProps> = ({ - pattern, - patternType, - cardHeight, - cardWidth, - cardStyles, - onCardClick -}) => { - const outerStyles = { - height: cardHeight, - width: cardWidth, - ...cardStyles - }; - return ( - <DesignCard outerStyles={outerStyles} onClick={onCardClick}> - <DesignInnerCard className="innerCard"> - <ClassWrap catalogClassName={pattern?.catalog_data?.content_class} /> - <DesignType>{patternType}</DesignType> - <DesignDetailsDiv> - <DesignName - style={{ - margin: '3rem 0 1.59rem 0', - textAlign: 'center' - }} - > - {pattern.name} - </DesignName> - <ImageWrapper> - <DesignIcon height={'118'} width={'120'} /> - </ImageWrapper> - </DesignDetailsDiv> - <MetricsContainerFront> - <MetricsDiv> - <DownloadIcon width={18} height={18} /> - <MetricsCount>{pattern.download_count}</MetricsCount> - </MetricsDiv> - <MetricsDiv> - <CloneIcon width={18} height={18} fill={'#51636B'} /> - <MetricsCount>{pattern.clone_count}</MetricsCount> - </MetricsDiv> - <MetricsDiv> - <OpenIcon width={18} height={18} fill={'#51636B'} /> - <MetricsCount>{pattern.view_count}</MetricsCount> - </MetricsDiv> - <MetricsDiv> - <DeploymentsIcon width={18} height={18} /> - <MetricsCount>{pattern.deployment_count}</MetricsCount> - </MetricsDiv> - <MetricsDiv> - <ShareIcon width={18} height={18} fill={'#51636B'} /> - <MetricsCount>{pattern.share_count}</MetricsCount> - </MetricsDiv> - </MetricsContainerFront> - </DesignInnerCard> - </DesignCard> - ); -}; - -export default CatalogCard; diff --git a/src/custom/CatalogCard/index.tsx b/src/custom/CatalogCard/index.tsx deleted file mode 100644 index 1e3c893b2..000000000 --- a/src/custom/CatalogCard/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import CatalogCard from './CatalogCard'; - -export { CatalogCard }; diff --git a/src/custom/CatalogCard/style.tsx b/src/custom/CatalogCard/style.tsx deleted file mode 100644 index 7084a44e4..000000000 --- a/src/custom/CatalogCard/style.tsx +++ /dev/null @@ -1,153 +0,0 @@ -import { styled, Typography } from '@mui/material'; - -type DesignCardProps = { - outerStyles: React.CSSProperties; -}; -type StyledInnerClassWrapperProps = { - catalogClassName: string; -}; -export const StyledClassWrapper = styled('div')(() => ({ - width: '85px', - height: '88px', - overflow: 'hidden', - position: 'absolute', - top: '-3px', - left: '-3px' -})); - -export const StyledInnerClassWrapper = styled('div')<StyledInnerClassWrapperProps>(({ - catalogClassName -}) => { - const mapToColor: Record<string, string> = { - community: 'rgba(122,132,142,.8)', - official: '#EBC017', - verified: '#00B39F' - }; - return { - font: 'bold 10px sans-serif', - WebkitTransform: 'rotate(-45deg)', - textAlign: 'center', - transform: 'rotate(-45deg)', - position: 'relative', - padding: '4px 0', - top: '15px', - left: '-30px', - width: '120px', - display: 'flex', - flexDirection: 'row', - justifyContent: 'center', - alignItems: 'center', - backgroundColor: mapToColor[catalogClassName], - color: '#fff' - }; -}); - -export const DesignCard = styled('div')<DesignCardProps>(({ outerStyles }) => ({ - position: 'relative', - borderRadius: '1rem', - textAlign: 'center', - transformStyle: 'preserve-3d', - transition: 'all .9s ease-out', - marginBottom: '1.25rem', - display: 'inline-flex', - perspective: '1000px', - '&:hover': { - cursor: 'pointer', - transform: 'translateY(-2%)' - }, - ['@media (max-width:1200px)']: { - height: '18.75rem' - }, - ...outerStyles -})); -export const DesignInnerCard = styled('div')(({ theme }) => ({ - position: 'relative', - width: '100%', - height: '100%', - textAlign: 'center', - transition: 'transform 0.6s', - background: theme.palette.background.default, - boxShadow: `2px 2px 3px 0px ${theme.palette.background.brand?.default}`, - borderRadius: '0.9375rem' -})); -export const DesignType = styled('span')(({ theme }) => ({ - position: 'absolute', - top: '0', - right: '0', - minWidth: '3rem', - padding: '0 0.75rem', - fontSize: '0.875rem', - textTransform: 'capitalize', - background: theme.palette.background.brand?.default, - color: theme.palette.text.inverse, - borderRadius: '0 1rem 0 2rem' -})); -export const MetricsCount = styled('p')(({ theme }) => ({ - fontSize: '1rem', - textTransform: 'capitalize', - margin: '0rem', - lineHeight: '1.5', - textAlign: 'center', - color: theme.palette.text.secondary, - fontWeight: '600' -})); -export const DesignName = styled(Typography)(({ theme }) => ({ - fontWeight: 'bold', - textTransform: 'capitalize', - color: theme.palette.text.default, - fontSize: '1.125rem', - marginTop: '2rem', - padding: '0rem 1rem', // "0rem 1.5rem" - position: 'relative', - overflow: 'hidden', - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - textAlign: 'center', - width: '100%' -})); -export const MetricsContainerFront = styled('div')(({ theme }) => ({ - display: 'flex', - justifyContent: 'space-around', - // borderTop: "0.851px solid #C9DBE3", - fontSize: '0.2rem', - color: theme.palette.text.secondary, - // margin: "-0.8rem 0.7rem 0", - padding: '0.9rem 0.1rem', - background: theme.palette.background.secondary, - position: 'absolute', - bottom: '0px', - marginTop: '1.2rem', - borderRadius: '0 0 0.9375rem 0.9375rem', - width: '100%' -})); -export const MetricsDiv = styled('div')(() => ({ - display: 'flex', - alignItems: 'center', - gap: '4px', - fontSize: '0.2rem', - color: 'rgba(26, 26, 26, .8)', - margin: '0rem', - padding: '0.1rem' -})); -export const DesignDetailsDiv = styled('div')(() => ({ - height: 'max-content', - display: 'flex', - marginTop: '-1rem', - flexDirection: 'column', - padding: '0rem 1rem', - justifyContent: 'start', - alignItems: 'start', - ['@media (max-width:1200px)']: { - height: 'max-content' - } -})); - -export const ImageWrapper = styled('div')(({ theme }) => ({ - background: theme.palette.mode === 'light' ? 'rgba(231, 239, 243, 0.40)' : '#212121', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - padding: '0.5rem', - width: '100%', - borderRadius: '0.5rem' -})); diff --git a/src/custom/CatalogDesignTable/AuthorCell.tsx b/src/custom/CatalogDesignTable/AuthorCell.tsx deleted file mode 100644 index 41260e6ef..000000000 --- a/src/custom/CatalogDesignTable/AuthorCell.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import React from 'react'; -import { Avatar, Box, Grid2, Typography } from '../../base'; -import { MESHERY_CLOUD_PROD } from '../../constants/constants'; -import { PersonIcon } from '../../icons'; -import { CustomTooltip } from '../CustomTooltip'; - -interface AuthorCellProps { - firstName: string; - lastName: string; - avatarUrl: string; - userId: string; - maxWidth?: boolean; -} - -const AuthorCell: React.FC<AuthorCellProps> = ({ - firstName, - lastName, - avatarUrl, - userId, - maxWidth = true -}) => { - const displayName = - firstName && lastName - ? `${firstName} ${lastName}` - : firstName - ? firstName - : lastName - ? lastName - : ''; - - return ( - <Box sx={{ '& > img': { mr: 2, flexShrink: 0 } }}> - <Grid2 - container - alignItems="center" - style={maxWidth ? { width: 'max-content' } : { width: '' }} - > - <Grid2> - <Box sx={{ color: 'text.secondary', mr: 1 }}> - <CustomTooltip title={`View ${displayName}'s Profile`}> - <div> - <Avatar - style={{ cursor: 'pointer' }} - alt={displayName} - src={avatarUrl} - onClick={() => { - window.open(`${MESHERY_CLOUD_PROD}/user/${userId}`, '_blank'); - }} - > - {!avatarUrl && <PersonIcon />} - </Avatar> - </div> - </CustomTooltip> - </Box> - </Grid2> - {maxWidth && ( - <Grid2> - <Typography variant="body2">{displayName}</Typography> - </Grid2> - )} - </Grid2> - </Box> - ); -}; - -export default AuthorCell; diff --git a/src/custom/CatalogDesignTable/CatalogDesignTable.tsx b/src/custom/CatalogDesignTable/CatalogDesignTable.tsx deleted file mode 100644 index 9f9673c42..000000000 --- a/src/custom/CatalogDesignTable/CatalogDesignTable.tsx +++ /dev/null @@ -1,167 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import _ from 'lodash'; -import { MUIDataTableColumn } from 'mui-datatables'; -import { useCallback, useMemo, useRef, useState } from 'react'; -import { PublishIcon } from '../../icons'; -import { CHARCOAL } from '../../theme'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { ErrorBoundary } from '../ErrorBoundary'; -import { ColView } from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column'; -import PromptComponent from '../Prompt'; -import { PromptRef } from '../Prompt/promt-component'; -import ResponsiveDataTable from '../ResponsiveDataTable'; -import UnpublishTooltipIcon from './UnpublishTooltipIcon'; - -interface CatalogDesignsTableProps { - patterns: Pattern[]; - filter: any; - columns: MUIDataTableColumn[]; - totalCount: number; - sortOrder: string; - setSortOrder: (order: string) => void; - pageSize: number; - setPageSize: (size: number) => void; - page: number; - setPage: (page: number) => void; - columnVisibility: Record<string, boolean>; - colViews: ColView[]; - rowsPerPageOptions?: number[]; - handleBulkDeleteModal: (patterns: Pattern[], modalRef: React.RefObject<PromptRef>) => void; - setSearch?: (search: string) => void; - tableBackgroundColor?: string; - handleBulkpatternsDataUnpublishModal: ( - selected: any, - patterns: Pattern[], - modalRef: React.RefObject<PromptRef> - ) => void; -} - -export const CatalogDesignsTable: React.FC<CatalogDesignsTableProps> = ({ - patterns, - filter, - columns = [], - totalCount = 0, - sortOrder = '', - setSortOrder, - pageSize = 10, - setPageSize, - page = 0, - setPage, - columnVisibility = {}, - colViews = [], - handleBulkDeleteModal, - setSearch, - rowsPerPageOptions = [10, 25, 50, 100], - handleBulkpatternsDataUnpublishModal -}) => { - const modalRef = useRef<PromptRef>(null); - const [tableCols, updateCols] = useState(columns); - - const handleTableChange = useCallback( - (action: string, tableState: any) => { - const sortInfo = tableState.announceText ? tableState.announceText.split(' : ') : []; - let order = ''; - if (tableState.activeColumn) { - order = `${columns[tableState.activeColumn].name} desc`; - } - switch (action) { - case 'changePage': - setPage(tableState.page); - break; - case 'changeRowsPerPage': - setPageSize(tableState.rowsPerPage); - break; - case 'search': - setSearch && setSearch(tableState.searchText !== null ? tableState.searchText : ''); - break; - case 'sort': - if ( - sortInfo.length === 2 && - tableState.activeColumn !== undefined && - Array.isArray(columns) - ) { - if (sortInfo[1] === 'ascending') { - order = `${columns[tableState.activeColumn].name} asc`; - } else { - order = `${columns[tableState.activeColumn].name} desc`; - } - } - if (order !== sortOrder) { - setSortOrder(order); - } - break; - } - }, - [columns, setPage, setSearch, setPageSize, setSortOrder, sortOrder] - ); - - const options = useMemo( - () => ({ - selectableRows: _.isNil(filter) ? 'none' : 'multiple', - serverSide: true, - filterType: 'multiselect', - responsive: 'standard', - count: totalCount, - rowsPerPage: pageSize, - page, - elevation: 0, - sortOrder: { - name: sortOrder.split(' ')[0], - direction: sortOrder.split(' ')[1] - }, - onTableChange: handleTableChange, - customToolbarSelect: _.isNil(filter) - ? (selected: any) => ( - <UnpublishTooltipIcon - title="Unpublish" - onClick={() => handleBulkpatternsDataUnpublishModal(selected, patterns, modalRef)} - iconType="publish" - id={'unpublish-button'} - > - <PublishIcon width={28.8} height={28.8} fill={CHARCOAL} /> - </UnpublishTooltipIcon> - ) - : undefined, - onRowsDelete: !_.isNil(filter) - ? (rowsDeleted: any) => { - const selectedPatterns = rowsDeleted.data.map( - ({ dataIndex }: any) => patterns[dataIndex] - ); - handleBulkDeleteModal(selectedPatterns, modalRef); - return false; - } - : undefined - }), - [ - filter, - totalCount, - pageSize, - sortOrder, - page, - handleTableChange, - patterns, - handleBulkDeleteModal, - handleBulkpatternsDataUnpublishModal - ] - ); - - return ( - <ErrorBoundary> - <PromptComponent ref={modalRef} /> - <ResponsiveDataTable - columns={columns} - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - //@ts-ignore - data={patterns || []} - rowsPerPageOptions={rowsPerPageOptions} - options={options} - colViews={colViews} - tableCols={tableCols} - updateCols={updateCols} - columnVisibility={columnVisibility} - /> - </ErrorBoundary> - ); -}; - -export default CatalogDesignsTable; diff --git a/src/custom/CatalogDesignTable/DesignTableColumnConfig.tsx b/src/custom/CatalogDesignTable/DesignTableColumnConfig.tsx deleted file mode 100644 index 70fbb83e7..000000000 --- a/src/custom/CatalogDesignTable/DesignTableColumnConfig.tsx +++ /dev/null @@ -1,320 +0,0 @@ -import { Lock, Public } from '@mui/icons-material'; -import { Theme } from '@mui/material'; -import { MUIDataTableColumn, MUIDataTableMeta } from 'mui-datatables'; -import { Typography } from '../../base'; -import { PLAYGROUND_MODES } from '../../constants/constants'; -import { ChainIcon, CopyIcon, KanvasIcon, MoveFileIcon, PublishIcon } from '../../icons'; -import Download from '../../icons/Download/Download'; -import { downloadPattern, slugify } from '../CatalogDetail/helper'; -import { RESOURCE_TYPES } from '../CatalogDetail/types'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { ConditionalTooltip } from '../Helpers/CondtionalTooltip'; -import { ColView } from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx'; -import { DataTableEllipsisMenu } from '../ResponsiveDataTable'; -import { VisibilityChipMenu } from '../VisibilityChipMenu'; -import { VIEW_VISIBILITY } from '../VisibilityChipMenu/VisibilityChipMenu'; -import AuthorCell from './AuthorCell'; -import { getColumnValue } from './helper'; -import { L5DeleteIcon, NameDiv } from './style'; - -interface TableMeta extends MUIDataTableMeta { - rowIndex: number; - tableData: Pattern[]; -} - -interface ColumnConfigProps { - handleDeleteModal: (data: Pattern) => () => void; - handlePublishModal: (data: Pattern) => void; - handleUnpublishModal: (data: Pattern) => () => void; - handleCopyUrl: (type: string, name: string, id: string) => void; - handleClone: (name: string, id: string) => void; - handleShowDetails: (designId: string, designName: string) => void; - handleOpenInDesigner?: (designId: string, designName: string) => void; - handleDownload?: (design: Pattern) => void; - getDownloadUrl?: (id: string) => string; - isDownloadAllowed: boolean; - isCopyLinkAllowed: boolean; - isDeleteAllowed: boolean; - isPublishAllowed: boolean; - isUnpublishAllowed: boolean; - // for workspace designs table page only - isFromWorkspaceTable?: boolean; - isRemoveAllowed?: boolean; - theme?: Theme; - showPlaygroundActions: boolean; - handleVisibilityChange?: (id: string, visibility: VIEW_VISIBILITY) => void; - currentUserId?: string; - refetchWorkspaceDesigns: () => void; -} - -export const colViews: ColView[] = [ - ['id', 'na'], - ['name', 'xs'], - ['user', 'xs'], - ['created_at', 'na'], - ['updated_at', 'l'], - ['visibility', 'l'], - ['user_id', 'na'], - ['actions', 'xs'] -]; - -export const createDesignsColumnsConfig = ({ - handleDeleteModal, - handlePublishModal, - handleUnpublishModal, - handleCopyUrl, - handleClone, - handleShowDetails, - getDownloadUrl, - handleDownload, - isUnpublishAllowed, - isCopyLinkAllowed, - isDeleteAllowed, - isPublishAllowed, - isDownloadAllowed, - isRemoveAllowed, - theme, - handleOpenInDesigner, - showPlaygroundActions = true, - isFromWorkspaceTable = false, - currentUserId, - handleVisibilityChange, - refetchWorkspaceDesigns -}: ColumnConfigProps): MUIDataTableColumn[] => { - return [ - { - name: 'id', - label: 'ID', - options: { - filter: false, - customBodyRender: (value: string) => <ConditionalTooltip value={value} maxLength={10} /> - } - }, - { - name: 'name', - label: 'Name', - options: { - filter: false, - sort: true, - searchable: true, - customBodyRender: (value: string, tableMeta: MUIDataTableMeta) => { - const designId = (tableMeta as TableMeta).tableData[tableMeta.rowIndex]?.id ?? ''; - const designName = (tableMeta as TableMeta).tableData[tableMeta.rowIndex]?.name ?? ''; - - return <NameDiv onClick={() => handleShowDetails(designId, designName)}>{value}</NameDiv>; - } - } - }, - { - name: 'user', - label: 'Author', - options: { - filter: false, - sort: true, - searchable: true, - customBodyRender: (_, tableMeta: MUIDataTableMeta) => { - const firstName = getColumnValue(tableMeta as TableMeta, 'first_name'); - const lastName = getColumnValue(tableMeta as TableMeta, 'last_name'); - const avatar_url = getColumnValue(tableMeta as TableMeta, 'avatar_url'); - const user_id = getColumnValue(tableMeta as TableMeta, 'user_id'); - - return ( - <AuthorCell - userId={user_id} - avatarUrl={avatar_url} - firstName={firstName} - lastName={lastName} - /> - ); - } - } - }, - { - name: 'created_at', - label: 'Created At', - options: { - filter: false, - sort: true, - searchable: true, - setCellHeaderProps: () => { - return { align: 'center' }; - } - } - }, - { - name: 'updated_at', - label: 'Updated At', - options: { - filter: false, - sort: true, - searchable: true, - setCellHeaderProps: () => { - return { align: 'center' }; - } - } - }, - { - name: 'visibility', - label: 'Visibility', - options: { - filter: false, - sort: false, - searchable: true, - customBodyRender: (value: VIEW_VISIBILITY, tableMeta) => { - const rowIndex = (tableMeta as TableMeta).rowIndex; - const designId = (tableMeta as TableMeta).tableData[rowIndex]?.id; - const designVisibility = (tableMeta as TableMeta).tableData[rowIndex]?.visibility; - const ownerId = (tableMeta as TableMeta).tableData[rowIndex]?.user_id; - const isOwner = ownerId === currentUserId; - const isEnabled = designVisibility !== VIEW_VISIBILITY.PUBLISHED && isOwner; - return ( - <VisibilityChipMenu - value={value as VIEW_VISIBILITY} - onChange={(value) => { - if (handleVisibilityChange) { - handleVisibilityChange(designId, value as VIEW_VISIBILITY); - refetchWorkspaceDesigns(); - } - }} - enabled={isEnabled} - options={[ - [VIEW_VISIBILITY.PUBLIC, Public], - [VIEW_VISIBILITY.PRIVATE, Lock] - ]} - /> - ); - } - } - }, - { - name: 'user_id', - label: 'User ID', - options: { - filter: false, - sort: false, - searchable: false - } - }, - - { - name: 'email', - label: 'email', - options: { - filter: false, - sort: false, - searchable: false, - customBodyRender: (_, tableMeta: MUIDataTableMeta) => { - const userEmail = getColumnValue(tableMeta as TableMeta, 'email'); - return <Typography variant="body2">{userEmail}</Typography>; - } - } - }, - - { - name: 'actions', - label: 'Actions', - options: { - filter: false, - sort: false, - searchable: false, - - customBodyRender: function CustomBody(_, tableMeta: MUIDataTableMeta) { - const rowIndex = (tableMeta as TableMeta).rowIndex; - const rowData = (tableMeta as TableMeta).tableData[rowIndex]; - const actionsList = [ - { - title: 'Download', - onClick: getDownloadUrl - ? () => downloadPattern(rowData.id, rowData.name, getDownloadUrl) - : () => handleDownload && handleDownload(rowData), - disabled: !isDownloadAllowed, - icon: <Download width={24} height={24} fill={theme?.palette.icon.secondary} /> - }, - { - title: 'Copy Link', - disabled: rowData.visibility === 'private' || !isCopyLinkAllowed, - onClick: () => { - handleCopyUrl(RESOURCE_TYPES.DESIGN, rowData?.name, rowData?.id); - }, - icon: <ChainIcon width={'24'} height={'24'} fill={theme?.palette.icon.secondary} /> - }, - { - title: 'Open in Playground', - hidden: showPlaygroundActions == false, - onClick: () => { - window.open( - `https://playground.meshery.io/extension/meshmap?mode=${ - PLAYGROUND_MODES.DESIGNER - }&type=${RESOURCE_TYPES.DESIGN}&id=${rowData?.id}&name=${slugify(rowData?.name)}`, - '_blank' - ); - }, - icon: ( - <KanvasIcon width={24} height={24} primaryFill={theme?.palette.icon.secondary} /> - ) - }, - - { - hidden: !handleOpenInDesigner, - title: 'Open in Designer', - // disabled : !handleOpenInDesigner, - onClick: () => - handleOpenInDesigner && handleOpenInDesigner(rowData?.id, rowData?.name), - icon: ( - <KanvasIcon width={24} height={24} primaryFill={theme?.palette.icon.secondary} /> - ) - }, - - { - title: 'Delete', - disabled: !isDeleteAllowed, - onClick: () => handleDeleteModal(rowData)(), - icon: <L5DeleteIcon /> - } - ].filter((a) => a?.hidden != true); - - const publishAction = { - title: 'Publish', - disabled: !isPublishAllowed, - onClick: () => handlePublishModal(rowData), - icon: <PublishIcon width={24} height={24} fill={theme?.palette.icon.secondary} /> - }; - - const unpublishAction = { - title: 'Unpublish', - onClick: () => handleUnpublishModal(rowData)(), - disabled: !isUnpublishAllowed, - icon: <PublishIcon width={24} height={24} fill={theme?.palette.icon.secondary} /> - }; - - const cloneAction = { - hidden: false, - title: 'Clone', - onClick: () => handleClone(rowData?.name, rowData?.id), - icon: <CopyIcon width={24} height={24} fill={theme?.palette.icon.secondary} /> - }; - - const moveAction = { - title: 'Move Design', - disabled: !isRemoveAllowed, - onClick: () => handleDeleteModal(rowData)(), - icon: <MoveFileIcon /> - }; - - if (isFromWorkspaceTable) { - actionsList.splice(0, 0, moveAction); - } - - if (rowData.visibility === 'published') { - actionsList.splice(0, 0, cloneAction); - actionsList.splice(2, 0, unpublishAction); - } else { - actionsList.splice(1, 0, publishAction); - } - - return <DataTableEllipsisMenu actionsList={actionsList} />; - } - } - } - ]; -}; diff --git a/src/custom/CatalogDesignTable/TableVisibilityControl.tsx b/src/custom/CatalogDesignTable/TableVisibilityControl.tsx deleted file mode 100644 index a153aa0cb..000000000 --- a/src/custom/CatalogDesignTable/TableVisibilityControl.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import React, { Dispatch, SetStateAction } from 'react'; -import { CustomColumnVisibilityControl } from '../CustomColumnVisibilityControl'; -import { CustomColumn } from '../CustomColumnVisibilityControl/CustomColumnVisibilityControl'; -import { ViewSwitch } from './ViewSwitch'; - -type TypeView = 'grid' | 'table'; - -interface TableVisibilityControlProps { - viewType: TypeView; - setViewType: (view: TypeView) => void; - filteredColumns: CustomColumn[]; - columnVisibility: Record<string, boolean>; - setColumnVisibility: Dispatch<SetStateAction<Record<string, boolean>>>; - viewSwitchDisabled?: boolean; -} - -export const TableVisibilityControl: React.FC<TableVisibilityControlProps> = ({ - viewType, - setViewType, - filteredColumns, - columnVisibility, - setColumnVisibility, - viewSwitchDisabled = false -}) => { - return ( - <div style={{ display: 'flex', alignItems: 'center' }}> - {viewType !== 'grid' && ( - <CustomColumnVisibilityControl - columns={filteredColumns} - customToolsProps={{ - columnVisibility, - setColumnVisibility - }} - id={'catalog-table'} - style={{ zIndex: 9999 }} - /> - )} - <ViewSwitch view={viewType} changeView={setViewType} disabled={viewSwitchDisabled} /> - </div> - ); -}; diff --git a/src/custom/CatalogDesignTable/UnpublishTooltipIcon.tsx b/src/custom/CatalogDesignTable/UnpublishTooltipIcon.tsx deleted file mode 100644 index 69b9deb21..000000000 --- a/src/custom/CatalogDesignTable/UnpublishTooltipIcon.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { ReactNode } from 'react'; -import { IconButton } from '../../base'; -import { useTheme } from '../../theme'; -import { HOVER_DELETE } from '../../theme/colors/colors'; -import { CustomTooltip } from '../CustomTooltip'; -import { IconWrapper } from '../ResponsiveDataTable'; - -interface UnpublishTooltipIconProps { - children: ReactNode; - onClick: () => void; - title: string; - iconType: 'delete' | 'publish'; - id: string; - style?: object; - placement?: 'bottom' | 'top' | 'left' | 'right'; - disabled?: boolean; -} - -function UnpublishTooltipIcon({ - children, - onClick, - title, - iconType, - id, - style, - placement, - disabled = false -}: UnpublishTooltipIconProps) { - const theme = useTheme(); - return ( - <CustomTooltip key={id} title={title} placement={placement}> - <IconWrapper disabled={disabled}> - <IconButton - disabled={disabled} - onClick={onClick} - sx={{ - '&:hover': { - '& svg': { - fill: iconType === 'delete' ? HOVER_DELETE : theme.palette.primary.brand?.default - } - }, - ...style - }} - disableRipple - > - {children} - </IconButton> - </IconWrapper> - </CustomTooltip> - ); -} - -export default UnpublishTooltipIcon; diff --git a/src/custom/CatalogDesignTable/ViewSwitch.tsx b/src/custom/CatalogDesignTable/ViewSwitch.tsx deleted file mode 100644 index 7ac8a1a23..000000000 --- a/src/custom/CatalogDesignTable/ViewSwitch.tsx +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Renders a switch component for toggling between grid and table view. - * - * @typedef {("grid" | "table")} TypeView - * @typedef {object} Props - * @prop {TypeView} props.view - The current view type ("grid" or "table"). - * @prop {Function} props.changeView - The function to change the view type. - */ - -import { IconButton } from '@mui/material'; -import { GridViewIcon, TableViewIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { CustomTooltip } from '../CustomTooltip'; - -type TypeView = 'grid' | 'table'; - -interface ViewSwitchProps { - view: TypeView; - changeView: (view: TypeView) => void; - height?: string; - style?: React.CSSProperties; - disabled?: boolean; -} - -export const ViewSwitch: React.FC<ViewSwitchProps> = ({ - view, - changeView, - height = '3rem', - style = {}, - disabled = false -}) => { - const handleClick = () => { - changeView(view === 'grid' ? 'table' : 'grid'); - }; - - const Icon = view === 'grid' ? TableViewIcon : GridViewIcon; - const label = view === 'grid' ? 'Table View' : 'Grid View'; - const theme = useTheme(); - - return ( - <CustomTooltip title={label} arrow> - <span> - <IconButton - disabled={disabled} - onClick={handleClick} - aria-label="Switch View" - sx={{ - height: { height }, - borderRadius: '50%', - padding: '0.625rem', - '&:hover': { - '& svg': { - fill: theme.palette.primary.brand?.default - }, - borderRadius: '4px' - }, - ...style - }} - disableRipple - > - <Icon fill={theme.palette.icon.default} opacity={disabled ? 0.5 : 1} /> - </IconButton> - </span> - </CustomTooltip> - ); -}; diff --git a/src/custom/CatalogDesignTable/columnConfig.tsx b/src/custom/CatalogDesignTable/columnConfig.tsx deleted file mode 100644 index 1979510b5..000000000 --- a/src/custom/CatalogDesignTable/columnConfig.tsx +++ /dev/null @@ -1,328 +0,0 @@ -/* eslint-disable @typescript-eslint/ban-ts-comment */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { MUIDataTableColumn, MUIDataTableMeta } from 'mui-datatables'; -import { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from 'react-share'; -import { iconMedium } from '../../constants/iconsSizes'; -import { - ChainIcon, - CopyIcon, - DownloadIcon, - FacebookIcon, - KanvasIcon, - LinkedinIcon, - PublishIcon, - TwitterIcon -} from '../../icons'; -import { downloadPattern } from '../CatalogDetail/helper'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { ConditionalTooltip } from '../Helpers/CondtionalTooltip'; -import { ColView } from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column'; -import { DataTableEllipsisMenu } from '../ResponsiveDataTable'; -import AuthorCell from './AuthorCell'; -import { getColumnValue } from './helper'; -import { NameDiv } from './style'; - -export const colViews: ColView[] = [ - ['id', 'na'], - ['name', 'xs'], - ['first_name', 'xs'], - ['last_name', 'na'], - ['created_at', 'na'], - ['updated_at', 'l'], - ['design_type', 'xs'], - ['class', 'l'], - ['view_count', 'na'], - ['download_count', 'na'], - ['clone_count', 'na'], - ['deployment_count', 'na'], - ['share_count', 'na'], - ['actions', 'xs'] -]; - -interface ColumnConfigProps { - handleShowDetails: (design: Pattern) => void; - handleClone: (designId: string, name: string) => void; - handleCopyUrl: (designId: string, name: string) => void; - handleOpenPlayground: (designId: string, name: string) => void; - handleUnpublish?: (design: Pattern) => void; - maxWidth?: boolean; - getCatalogUrl: (type: string, name: string) => string; - theme?: any; - showUnpublish?: boolean; - showOpenPlayground?: boolean; - currentUserId?: string; - isCloneDisabled?: boolean; - isUnpublishDisabled?: boolean; - getDownloadUrl: (id: string) => string; -} - -interface ActionItem { - title: string; - icon?: JSX.Element; - onClick?: () => void; - disabled?: boolean; - customComponent?: JSX.Element; - type?: string; -} - -export const createDesignColumns = ({ - handleShowDetails, - handleClone, - handleCopyUrl, - handleOpenPlayground, - handleUnpublish = () => {}, - maxWidth = true, - getCatalogUrl, - getDownloadUrl, - theme, - showUnpublish, - currentUserId, - isCloneDisabled, - isUnpublishDisabled, - showOpenPlayground -}: ColumnConfigProps): MUIDataTableColumn[] => { - return [ - { - name: 'id', - label: 'ID', - options: { - filter: false, - customBodyRender: (value: string) => <ConditionalTooltip value={value} maxLength={10} /> - } - }, - { - name: 'name', - label: 'Name', - options: { - filter: false, - sort: true, - searchable: true, - customBodyRender: (value: string, tableMeta: MUIDataTableMeta) => { - //@ts-ignore - const design = tableMeta.tableData[tableMeta.rowIndex] as Pattern; - return <NameDiv onClick={() => handleShowDetails(design)}>{value}</NameDiv>; - } - } - }, - { - name: 'avatar_url', - label: 'Avatar', - options: { - display: false - } - }, - { - name: 'user_id', - label: 'User ID', - options: { - display: false - } - }, - { - name: 'first_name', - label: 'Author', - options: { - filter: false, - sort: true, - searchable: true, - customBodyRender: (_: string, tableMeta: MUIDataTableMeta) => { - const firstName = getColumnValue(tableMeta, 'first_name'); - const lastName = getColumnValue(tableMeta, 'last_name'); - const avatar_url = getColumnValue(tableMeta, 'avatar_url'); - const user_id = getColumnValue(tableMeta, 'user_id'); - - return ( - <AuthorCell - firstName={firstName} - lastName={lastName} - avatarUrl={avatar_url} - userId={user_id} - maxWidth={maxWidth} - /> - ); - } - } - }, - { - name: 'last_name', - label: 'Last Name', - options: { - display: false - } - }, - { - name: 'created_at', - label: 'Created At', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'updated_at', - label: 'Updated At', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'design_type', - label: 'Type', - options: { - filter: true, - sort: false, - searchable: true - } - }, - { - name: 'class', - label: 'Class', - options: { - filter: true, - sort: false, - searchable: true - } - }, - { - name: 'view_count', - label: 'Opens', - options: { - filter: false, - sort: true - } - }, - { - name: 'download_count', - label: 'Downloads', - options: { - filter: false, - sort: true - } - }, - { - name: 'clone_count', - label: 'Clones', - options: { - filter: false, - sort: true - } - }, - { - name: 'deployment_count', - label: 'Deploys', - options: { - filter: false, - sort: true - } - }, - { - name: 'share_count', - label: 'Shares', - options: { - filter: false, - sort: true - } - }, - { - name: 'actions', - label: 'Actions', - options: { - filter: false, - sort: false, - searchable: false, - setCellHeaderProps: () => ({ align: 'center' }), - setCellProps: () => ({ align: 'center' }), - customBodyRender: (_: any, tableMeta: MUIDataTableMeta) => { - //@ts-ignore - const rowData = tableMeta.tableData[tableMeta.rowIndex] as Pattern; - - function constructMessage() { - const currentUser = rowData?.user_id === currentUserId; - if (currentUser) { - return `Check out my design "${rowData?.name}" on Layer5's Catalog`; - } else { - return `Check out ${ - rowData?.first_name + ' ' + rowData.last_name - }'s design "${rowData?.name}" on Layer5's Catalog`; - } - } - const baseActions: ActionItem[] = [ - { - title: 'Clone', - onClick: () => handleClone(rowData.id, rowData.name), - disabled: isCloneDisabled, - icon: <CopyIcon width={24} height={24} fill={theme.palette.text.primary} /> - }, - { - title: 'Download', - onClick: () => downloadPattern(rowData.id, rowData.name, getDownloadUrl), - icon: <DownloadIcon width={24} height={24} fill={theme.palette.text.primary} /> - }, - { - title: 'Copy Link', - onClick: () => handleCopyUrl(rowData.id, rowData.name), - icon: <ChainIcon width={'24'} height={'24'} fill={theme.palette.text.primary} /> - }, - { - title: 'Share Design via Socials', - type: 'share-social', - customComponent: ( - <div - style={{ - height: '40px', - textAlign: 'center', - backgroundColor: theme.palette.superLightCasper - }} - > - <TwitterShareButton - url={getCatalogUrl('designs', rowData.name)} - title={constructMessage()} - hashtags={['opensource', 'Layer5', 'cloud']} - > - <TwitterIcon style={iconMedium} /> - </TwitterShareButton> - <LinkedinShareButton - url={getCatalogUrl('designs', rowData.name)} - summary={constructMessage()} - > - <LinkedinIcon style={iconMedium} /> - </LinkedinShareButton> - <FacebookShareButton - url={getCatalogUrl('designs', rowData.name)} - hashtag={'#opensource'} - > - <FacebookIcon style={iconMedium} /> - </FacebookShareButton> - </div> - ) - } - ]; - // Conditionally add playground and unpublish buttons - const actionsList = [...baseActions]; - - if (showUnpublish) { - actionsList.splice(2, 0, { - title: 'Unpublish', - onClick: () => handleUnpublish(rowData), - disabled: isUnpublishDisabled, - icon: <PublishIcon width={24} height={24} fill={theme.palette.text.primary} /> - }); - } - - if (showOpenPlayground) { - actionsList.splice(2, 0, { - title: 'Open in playground', - onClick: () => handleOpenPlayground(rowData.id, rowData.name), - icon: <KanvasIcon width={24} height={24} primaryFill={theme.palette.text.primary} /> - }); - } - //@ts-ignore - return <DataTableEllipsisMenu actionsList={actionsList} />; - } - } - } - ]; -}; diff --git a/src/custom/CatalogDesignTable/helper.ts b/src/custom/CatalogDesignTable/helper.ts deleted file mode 100644 index 827fd086d..000000000 --- a/src/custom/CatalogDesignTable/helper.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ - -export const getColumnValue = (tableMeta: any, targetColumn: string): any => { - const rowData = tableMeta.tableData[tableMeta.rowIndex]; - return (rowData as any)[targetColumn] || ''; -}; diff --git a/src/custom/CatalogDesignTable/index.ts b/src/custom/CatalogDesignTable/index.ts deleted file mode 100644 index b1f9a4aad..000000000 --- a/src/custom/CatalogDesignTable/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import AuthorCell from './AuthorCell'; -import CatalogDesignsTable from './CatalogDesignTable'; -import { colViews, createDesignColumns } from './columnConfig'; -import { - createDesignsColumnsConfig, - colViews as designColumnsColViews -} from './DesignTableColumnConfig'; -export { TableVisibilityControl } from './TableVisibilityControl'; -export { ViewSwitch } from './ViewSwitch'; -export { - AuthorCell, - CatalogDesignsTable, - colViews, - createDesignColumns, - createDesignsColumnsConfig, - designColumnsColViews -}; diff --git a/src/custom/CatalogDesignTable/style.tsx b/src/custom/CatalogDesignTable/style.tsx deleted file mode 100644 index b38e9c5d5..000000000 --- a/src/custom/CatalogDesignTable/style.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import DeleteIcon from '@mui/icons-material/Delete'; -import { styled } from '@mui/material'; -import { buttonDisabled } from '../../theme'; -import { HOVER_DELETE } from '../../theme/colors/colors'; - -export const NameDiv = styled('div')({ - cursor: 'pointer', - fontWeight: 'bold', - textDecoration: 'none', - - '&:hover': { - textDecoration: 'underline' - } -}); - -interface DeleteIconProps { - disabled?: boolean; - bulk?: boolean; -} - -export const L5DeleteIcon = styled(DeleteIcon)<DeleteIconProps>(({ disabled, bulk, theme }) => ({ - color: disabled ? theme.palette.icon.disabled : theme.palette.text.default, - cursor: disabled ? 'not-allowed' : 'pointer', - width: bulk ? '32' : '28.8', - height: bulk ? '32' : '28.8', - '&:hover': { - color: disabled ? buttonDisabled : HOVER_DELETE, - '& svg': { - color: disabled ? buttonDisabled : HOVER_DELETE - } - }, - '& svg': { - color: theme.palette.error.main, - cursor: disabled ? 'not-allowed' : 'pointer' - } -})); diff --git a/src/custom/CatalogDetail/ActionButton.tsx b/src/custom/CatalogDetail/ActionButton.tsx deleted file mode 100644 index dddd7a0b5..000000000 --- a/src/custom/CatalogDetail/ActionButton.tsx +++ /dev/null @@ -1,173 +0,0 @@ -import React from 'react'; -import { CircularProgress } from '../../base'; -import { CopyIcon, DeleteIcon, EditIcon, KanvasIcon, PublishIcon } from '../../icons'; -import Download from '../../icons/Download/Download'; -import { charcoal, useTheme } from '../../theme'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { downloadPattern, downloadYaml } from './helper'; -import { ActionButton, StyledActionWrapper, UnpublishAction } from './style'; -import { FILTERS, VIEWS } from './types'; - -interface ActionButtonsProps { - actionItems: boolean; - details: Pattern; - type: string; - isCloneLoading: boolean; - getDownloadUrl: (id: string) => string; - handleClone: (name: string, id: string) => void; - handleUnpublish: () => void; - isCloneDisabled: boolean; - showUnpublishAction: boolean; - showOpenPlaygroundAction: boolean; - onOpenPlaygroundClick: (designId: string, name: string) => void; - showInfoAction?: boolean; - handleInfoClick?: () => void; - showDeleteAction?: boolean; - handleDelete: () => void; -} - -const ActionButtons: React.FC<ActionButtonsProps> = ({ - actionItems, - details, - type, - isCloneLoading, - handleClone, - isCloneDisabled, - showUnpublishAction, - handleUnpublish, - getDownloadUrl, - showOpenPlaygroundAction, - onOpenPlaygroundClick, - showInfoAction, - handleInfoClick, - showDeleteAction, - handleDelete -}) => { - const cleanedType = type.replace('my-', '').replace(/s$/, ''); - const theme = useTheme(); - return ( - <StyledActionWrapper> - {showOpenPlaygroundAction && ( - <ActionButton - sx={{ - borderRadius: '0.2rem', - backgroundColor: theme.palette.background.cta?.default, - color: theme.palette.text.inverse, - gap: '10px', - width: '100%' - }} - onClick={() => onOpenPlaygroundClick(details.id, details.name)} - > - <KanvasIcon - width={24} - height={24} - primaryFill={theme.palette.icon.inverse} - fill={theme.palette.icon.default} - /> - Open in Playground - </ActionButton> - )} - {actionItems && ( - <div - style={{ - display: 'flex', - flexDirection: 'row', - gap: '0.75rem', - width: '100%' - }} - > - {cleanedType !== FILTERS && ( - <ActionButton - sx={{ - backgroundColor: showOpenPlaygroundAction ? 'transparent' : undefined, - color: theme.palette.text.default, - borderRadius: '0.2rem', - gap: '10px', - border: `1px solid ${theme.palette.border.normal}` - }} - onClick={() => handleClone(details?.name, details?.id)} - disabled={isCloneDisabled} - > - {isCloneLoading ? ( - <CircularProgress size={24} color={'inherit'} /> - ) : ( - <> - <CopyIcon width={24} height={24} fill={theme.palette.icon.default} /> - Clone - </> - )} - </ActionButton> - )} - <ActionButton - sx={{ - borderRadius: '0.2rem', - backgroundColor: 'transparent', - border: `1px solid ${theme.palette.border.normal}`, - gap: '10px', - color: theme.palette.text.default - }} - onClick={() => - cleanedType === VIEWS - ? downloadYaml(details.pattern_file, details.name) - : downloadPattern(details.id, details.name, getDownloadUrl) - } - > - <Download width={24} height={24} fill={theme.palette.icon.default} /> - Download - </ActionButton> - </div> - )} - - <div - style={{ - display: 'flex', - flexDirection: 'row', - gap: '0.75rem', - width: '100%' - }} - > - {showInfoAction && ( - <ActionButton - sx={{ - borderRadius: '0.2rem', - backgroundColor: 'transparent', - border: `1px solid ${theme.palette.border.normal}`, - gap: '10px', - color: charcoal[10] - }} - onClick={handleInfoClick} - > - <EditIcon width={24} height={24} fill={theme.palette.icon.default} /> - Edit - </ActionButton> - )} - {showDeleteAction && ( - <UnpublishAction - sx={{ - borderRadius: '0.2rem', - gap: '10px' - }} - onClick={handleDelete} - > - <DeleteIcon width={24} height={24} fill={charcoal[100]} /> - Delete - </UnpublishAction> - )} - {showUnpublishAction && ( - <UnpublishAction - sx={{ - borderRadius: '0.2rem', - gap: '10px' - }} - onClick={handleUnpublish} - > - <PublishIcon width={24} height={24} fill={charcoal[100]} /> - Unpublish - </UnpublishAction> - )} - </div> - </StyledActionWrapper> - ); -}; - -export default ActionButtons; diff --git a/src/custom/CatalogDetail/CaveatsSection.tsx b/src/custom/CatalogDetail/CaveatsSection.tsx deleted file mode 100644 index 489be4133..000000000 --- a/src/custom/CatalogDetail/CaveatsSection.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import React from 'react'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { RenderMarkdown } from '../Markdown'; -import { ContentDetailsText } from '../Typography'; -import { CaveatsContainer, ContentHeading } from './style'; - -interface CaveatsSectionProps { - details: Pattern; -} - -const CaveatsSection: React.FC<CaveatsSectionProps> = ({ details }) => { - return ( - <CaveatsContainer> - <ContentHeading> - <h2 style={{ margin: '0' }}>CAVEATS AND CONSIDERATIONS</h2> - </ContentHeading> - {details?.catalog_data?.pattern_caveats ? ( - <ContentDetailsText style={{ whiteSpace: 'normal', fontFamily: 'inherit' }}> - <RenderMarkdown - content={decodeURIComponent(details.catalog_data.pattern_caveats || '')} - /> - </ContentDetailsText> - ) : ( - <ContentDetailsText>No caveats registered</ContentDetailsText> - )} - </CaveatsContainer> - ); -}; - -export default CaveatsSection; diff --git a/src/custom/CatalogDetail/ChallengesSection.tsx b/src/custom/CatalogDetail/ChallengesSection.tsx deleted file mode 100644 index 1c0a026f9..000000000 --- a/src/custom/CatalogDetail/ChallengesSection.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { useEffect, useState } from 'react'; -import { Link, ListItemIcon } from '../../base'; -import { MESHERY_CLOUD_PROD } from '../../constants/constants'; -import { ChallengesIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import CollapsibleSection from './CollapsibleSection'; -import { slugify } from './helper'; -import { LabelDiv } from './style'; -import { FilteredAcademyData } from './types'; - -interface ChallengesSectionProps { - filteredAcademyData: FilteredAcademyData; -} - -const ChallengesSection: React.FC<ChallengesSectionProps> = ({ filteredAcademyData }) => { - const theme = useTheme(); - const [openChallenges, setOpenChallenges] = useState(false); - const [autoUpdate, setAutoUpdate] = useState(true); - - useEffect(() => { - if (autoUpdate) { - setOpenChallenges((filteredAcademyData?.['challenges'] ?? []).length > 0); - } - }, [filteredAcademyData, autoUpdate]); - - const toggleOpenChallenges = () => { - setOpenChallenges((prev) => !prev); - setAutoUpdate(false); - }; - - const renderChallengeItem = (item: string, index: number) => ( - <Link - href={`${MESHERY_CLOUD_PROD}/academy/challenges/${slugify('' + item)}`} - target="_blank" - rel="noopener noreferrer" - style={{ textDecoration: 'none', color: 'inherit' }} - > - <LabelDiv key={index} clickable={true}> - <ListItemIcon sx={{ minWidth: '1.5rem', marginRight: 1 }}> - <ChallengesIcon - primaryFill={theme.palette.icon.default} - secondaryFill={theme.palette.icon.secondary} - brandFill={theme.palette.icon.secondary} - /> - </ListItemIcon> - {item} - </LabelDiv> - </Link> - ); - - return ( - <> - <hr - style={{ - backgroundColor: theme.palette.background.secondary, - border: 'none', - height: '1px', - marginTop: '1rem', - marginBottom: '1rem' - }} - /> - <CollapsibleSection - title="Challenges" - isOpen={openChallenges} - onToggle={toggleOpenChallenges} - items={filteredAcademyData['challenge'] ?? []} - renderItem={renderChallengeItem} - tooltip="Learn CNCF projects by taking and completing time-based, hands-on labs. [Browse all challenges](/academy/challenges)" - emptyState="No active challenges for this technology" - /> - </> - ); -}; - -export default ChallengesSection; diff --git a/src/custom/CatalogDetail/CollapsibleSection.tsx b/src/custom/CatalogDetail/CollapsibleSection.tsx deleted file mode 100644 index a356f301a..000000000 --- a/src/custom/CatalogDetail/CollapsibleSection.tsx +++ /dev/null @@ -1,69 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import ExpandLessIcon from '@mui/icons-material/ExpandLess'; -import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; -import { Collapse, List, ListItemText } from '../../base'; -import { InfoTooltip } from '../CustomTooltip'; -import { SideContainer, SideTitleButton } from './style'; - -interface CollapsibleSectionProps { - title: string; - isOpen: boolean; - onToggle: () => void; - items: any[]; - renderItem: (item: any, index: number) => React.ReactNode; - emptyState: string; - tooltip: string; -} - -const CollapsibleSection: React.FC<CollapsibleSectionProps> = ({ - title, - isOpen, - onToggle, - items, - renderItem, - emptyState, - tooltip -}) => { - return ( - <SideContainer> - <SideTitleButton onClick={onToggle}> - <ListItemText - primaryTypographyProps={{ - variant: 'h6', - fontWeight: 'bold', - fontFamily: 'inherit' - }} - primary={title} - /> - <InfoTooltip helpText={tooltip} /> - {isOpen ? <ExpandLessIcon /> : <ExpandMoreIcon />} - </SideTitleButton> - <Collapse - sx={{ width: '100%', fontFamily: 'inherit' }} - in={isOpen} - timeout="auto" - unmountOnExit - > - {items && items.length > 0 ? ( - <List component="div" sx={{ width: '100%', padding: '0.5rem' }} disablePadding> - {items?.map(renderItem)} - </List> - ) : ( - <ListItemText - sx={{ - textAlign: 'center', - opacity: 0.8, - padding: '7px' - }} - primaryTypographyProps={{ - fontFamily: 'inherit' - }} - primary={emptyState} - /> - )} - </Collapse> - </SideContainer> - ); -}; - -export default CollapsibleSection; diff --git a/src/custom/CatalogDetail/ContentClassInfo.tsx b/src/custom/CatalogDetail/ContentClassInfo.tsx deleted file mode 100644 index effd24378..000000000 --- a/src/custom/CatalogDetail/ContentClassInfo.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import React from 'react'; -import { Box } from '../../base'; -import { CommunityClassIcon, OfficialClassIcon, VerificationClassIcon } from '../../icons'; -import { KEPPEL, useTheme } from '../../theme'; -import { InfoTooltip } from '../CustomTooltip'; -import { ContentDetailsPoints, ContentDetailsText } from '../Typography'; -import { formatToTitleCase } from './helper'; -import { Class, ContentClassType } from './types'; - -interface ContentClassInfoProps { - contentClass: string; - classes: Class[]; -} - -const ContentClassInfo: React.FC<ContentClassInfoProps> = ({ contentClass, classes }) => { - const _classDescription = (className: string): string | undefined => { - const classObj = classes && classes.find((classObj) => classObj.class === className); - return classObj?.description; - }; - - const theme = useTheme(); - - const CONTENT_CLASS: ContentClassType = { - community: { - icon: CommunityClassIcon, - color: theme.palette.icon.secondary - }, - official: { - icon: OfficialClassIcon, - color: '#EBC017' - }, - verified: { - icon: VerificationClassIcon, - color: theme.palette.primary.brand?.default || KEPPEL - } - } as const; - - const ClassIcon: React.FC<{ className: string }> = ({ className }) => { - const Icon = CONTENT_CLASS[className]?.icon; - const fill = CONTENT_CLASS[className]?.color; - return Icon ? <Icon width="25px" height="25px" fill={fill} /> : null; - }; - - return ( - <div> - <Box style={{ display: 'flex', alignItems: 'center', gap: '0.3rem' }}> - <ContentDetailsPoints style={{ fontFamily: 'inherit', fontWeight: 'bold' }}> - CLASS - </ContentDetailsPoints> - <InfoTooltip - variant="standard" - helpText={_classDescription(contentClass)} - style={{ marginBottom: '0.2rem' }} - /> - </Box> - <ContentDetailsText - style={{ - display: 'flex', - alignItems: 'center', - gap: '0.4rem', - fontFamily: 'inherit' - }} - > - <ClassIcon className={contentClass} /> - {formatToTitleCase(contentClass)} - </ContentDetailsText> - </div> - ); -}; - -export default ContentClassInfo; diff --git a/src/custom/CatalogDetail/LearningSection.tsx b/src/custom/CatalogDetail/LearningSection.tsx deleted file mode 100644 index 674b5757e..000000000 --- a/src/custom/CatalogDetail/LearningSection.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import { Link, ListItemIcon } from '../../base'; -import { MESHERY_CLOUD_PROD } from '../../constants/constants'; -import { LearningIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import CollapsibleSection from './CollapsibleSection'; -import { slugify } from './helper'; -import { LabelDiv } from './style'; -import { FilteredAcademyData } from './types'; - -interface LearningSectionProps { - filteredAcademyData: FilteredAcademyData; -} - -const LearningSection: React.FC<LearningSectionProps> = ({ filteredAcademyData }) => { - const theme = useTheme(); - const [openLearning, setOpenLearning] = useState<boolean>(false); - const [autoUpdate, setAutoUpdate] = useState<boolean>(true); - - useEffect(() => { - if (autoUpdate) { - setOpenLearning(Boolean((filteredAcademyData?.['learning-path'] ?? []).length > 0)); - } - }, [filteredAcademyData, autoUpdate]); - - const toggleOpenLearning = (): void => { - setOpenLearning((prev) => !prev); - setAutoUpdate(false); - }; - - const renderLearningItem = (item: string, index: number) => ( - <Link - href={`${MESHERY_CLOUD_PROD}/academy/learning-paths/${slugify('' + item)}`} - target="_blank" - rel="noopener noreferrer" - style={{ textDecoration: 'none', color: 'inherit' }} - > - <LabelDiv key={index} clickable={true}> - <ListItemIcon sx={{ minWidth: '1.5rem', marginRight: 1 }}> - <LearningIcon - primaryFill={theme.palette.icon.default} - secondaryFill={theme.palette.icon.secondary} - /> - </ListItemIcon> - {item} - </LabelDiv> - </Link> - ); - - return ( - <> - <hr - style={{ - backgroundColor: theme.palette.background.secondary, - border: 'none', - height: '1px', - marginTop: '1rem', - marginBottom: '1rem' - }} - /> - <CollapsibleSection - title="Learning Paths" - isOpen={openLearning} - onToggle={toggleOpenLearning} - items={filteredAcademyData['learning-path'] || []} - renderItem={renderLearningItem} - tooltip="Learning Paths are designed to help you understand and master cloud native technologies by combining theoretical knowledge with hands-on, practical experience. [Browse all learning paths](/academy/learning-paths)" - emptyState="No learning paths available for this technology" - /> - </> - ); -}; - -export default LearningSection; diff --git a/src/custom/CatalogDetail/LeftPanel.tsx b/src/custom/CatalogDetail/LeftPanel.tsx deleted file mode 100644 index c363eb352..000000000 --- a/src/custom/CatalogDetail/LeftPanel.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import { useTheme } from '../../theme'; -import { CatalogCardDesignLogo, CustomCatalogCard } from '../CustomCatalog'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import ActionButtons from './ActionButton'; -import ChallengesSection from './ChallengesSection'; -import LearningSection from './LearningSection'; -import TechnologySection from './TechnologySection'; -import { FilteredAcademyData } from './types'; - -interface LeftPanelProps { - details: Pattern; - type: string; - actionItems?: boolean; - isCloneLoading: boolean; - handleClone: (name: string, id: string) => void; - showTechnologies?: boolean; - filteredAcademyData: FilteredAcademyData; - isCloneDisabled: boolean; - technologySVGPath: string; - technologySVGSubpath: string; - fontFamily?: string; - handleUnpublish: () => void; - showUnpublishAction?: boolean; - showOpenPlaygroundAction?: boolean; - onOpenPlaygroundClick: (designId: string, name: string) => void; - showInfoAction?: boolean; - handleInfoClick?: () => void; - showDeleteAction?: boolean; - handleDelete: () => void; - getDownloadUrl: (id: string) => string; -} - -const LeftPanel: React.FC<LeftPanelProps> = ({ - details, - type, - actionItems = true, - isCloneLoading, - handleClone, - handleUnpublish, - showTechnologies = true, - filteredAcademyData, - isCloneDisabled, - technologySVGPath, - technologySVGSubpath, - fontFamily, - showUnpublishAction = false, - showOpenPlaygroundAction = true, - onOpenPlaygroundClick, - showInfoAction = false, - handleInfoClick, - showDeleteAction = false, - handleDelete, - getDownloadUrl -}) => { - const theme = useTheme(); - - return ( - <div style={{ fontFamily }}> - <CustomCatalogCard - pattern={details} - shouldFlip={false} - isDetailed={false} - cardStyles={{ - boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.2)', - backgroundColor: theme.palette.background.default, - justifyContent: 'center', - display: 'flex', - flexDirection: 'column', - textAlign: 'center', - padding: '1.5rem 2rem', - borderRadius: '0.4rem' - }} - patternType={type} - cardHeight="18rem" - cardWidth="100%" - > - <CatalogCardDesignLogo - imgURL={details?.catalog_data?.imageURL} - height={'100%'} - width={'100%'} - zoomEffect={true} - type={{ type: type }} - /> - </CustomCatalogCard> - <ActionButtons - actionItems={actionItems} - details={details} - type={type} - isCloneLoading={isCloneLoading} - handleClone={handleClone} - showUnpublishAction={showUnpublishAction} - handleUnpublish={handleUnpublish} - isCloneDisabled={isCloneDisabled} - showOpenPlaygroundAction={showOpenPlaygroundAction} - onOpenPlaygroundClick={onOpenPlaygroundClick} - showInfoAction={showInfoAction} - handleInfoClick={handleInfoClick} - showDeleteAction={showDeleteAction} - handleDelete={handleDelete} - getDownloadUrl={getDownloadUrl} - /> - {showTechnologies && ( - <TechnologySection - technologySVGPath={technologySVGPath} - technologySVGSubpath={technologySVGSubpath} - technologies={details.catalog_data?.compatibility || []} - /> - )} - <LearningSection filteredAcademyData={filteredAcademyData} /> - <ChallengesSection filteredAcademyData={filteredAcademyData} /> - </div> - ); -}; - -export default LeftPanel; diff --git a/src/custom/CatalogDetail/MetricsDisplay.tsx b/src/custom/CatalogDetail/MetricsDisplay.tsx deleted file mode 100644 index 770ccab5d..000000000 --- a/src/custom/CatalogDetail/MetricsDisplay.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import React from 'react'; -import { Grid2 } from '../../base'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { MetricsContainer, MetricsData, MetricsSection, MetricsType } from './style'; - -interface MetricItem { - label: string; - value: number; -} - -interface MetricsDisplayProps { - details: Pattern; -} - -const MetricsDisplay: React.FC<MetricsDisplayProps> = ({ details }) => { - const metrics: MetricItem[] = [ - { label: 'Opens', value: details.view_count }, - { label: 'Downloads', value: details.download_count }, - { label: 'Deploys', value: details.deployment_count }, - { label: 'Clones', value: details.clone_count }, - { label: 'Shares', value: details.share_count } - ]; - - return ( - <Grid2 - style={{ marginLeft: 'auto' }} - size={{ - lg: 8, - md: 8, - sm: 12, - xs: 12 - }} - > - <MetricsSection> - {metrics.map((metric) => ( - <MetricsContainer key={metric.label}> - <MetricsData>{metric.value}</MetricsData> - <MetricsType>{metric.label}</MetricsType> - </MetricsContainer> - ))} - </MetricsSection> - </Grid2> - ); -}; - -export default MetricsDisplay; diff --git a/src/custom/CatalogDetail/OverviewSection.tsx b/src/custom/CatalogDetail/OverviewSection.tsx deleted file mode 100644 index 88fa7c86e..000000000 --- a/src/custom/CatalogDetail/OverviewSection.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import React from 'react'; -import { Grid2 } from '../../base'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { VIEW_VISIBILITY } from '../VisibilityChipMenu/VisibilityChipMenu'; -import ContentClassInfo from './ContentClassInfo'; -import MetricsDisplay from './MetricsDisplay'; -import PatternInfo from './PatternInfo'; -import SocialSharePopper from './SocialSharePopper'; -import UserInfo from './UserInfo'; -import { ContentRow, DesignHeading, OverviewContainer, OverviewContainerHeader } from './style'; -import { Class } from './types'; - -interface OverviewSectionProps { - details: Pattern; - type: string; - cardId: string; - title: string; - getUrl: (type: string, id: string) => string; - showContentDetails: boolean; - ViewsComponent?: React.ReactNode; - showVersion: boolean; - classes: Class[]; - handleCopyUrl: (type: string, name: string, id: string) => void; - fontFamily?: string; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - userProfile?: any; - showShareAction: boolean; - handleShare: () => void; - isVisibilityEnabled: boolean; - handleVisibilityChange: (visibility: VIEW_VISIBILITY) => void; -} - -const OverviewSection: React.FC<OverviewSectionProps> = ({ - details, - type, - cardId, - title, - getUrl, - showContentDetails, - ViewsComponent, - showVersion, - classes, - handleCopyUrl, - fontFamily, - userProfile, - showShareAction, - handleShare, - isVisibilityEnabled, - handleVisibilityChange -}) => { - return ( - <OverviewContainer> - <OverviewContainerHeader> - <DesignHeading>{details?.name}</DesignHeading> - <SocialSharePopper - details={details} - type={type} - cardId={cardId} - title={title} - getUrl={getUrl} - handleCopyUrl={handleCopyUrl} - showShareAction={showShareAction} - handleShare={handleShare} - /> - </OverviewContainerHeader> - <Grid2 container spacing={2}> - <Grid2 - size={{ - lg: 4, - md: 4, - sm: 12, - xs: 12 - }} - > - <Grid2 container> - <Grid2 - style={{ fontFamily: fontFamily }} - size={{ - lg: 12, - md: 12, - sm: 6, - xs: 6 - }} - > - {details?.catalog_data?.content_class && ( - <ContentRow> - <ContentClassInfo - contentClass={details.catalog_data.content_class} - classes={classes} - /> - </ContentRow> - )} - <UserInfo - details={details} - showVersion={showVersion} - userProfile={userProfile} - isVisibilityEnabled={isVisibilityEnabled} - handleVisibilityChange={handleVisibilityChange} - /> - </Grid2> - </Grid2> - </Grid2> - <Grid2 - size={{ - lg: 8, - md: 8, - sm: 12, - xs: 12 - }} - > - {showContentDetails ? ( - <ContentRow> - <h2 style={{ margin: '0' }}>WHAT DOES THIS DESIGN DO?</h2> - {details?.catalog_data?.pattern_info ? ( - <PatternInfo text={decodeURIComponent(details.catalog_data.pattern_info)} /> - ) : ( - <div>No description available</div> - )} - </ContentRow> - ) : ( - ViewsComponent - )} - </Grid2> - {!(type === 'view' || type === 'filter') && <MetricsDisplay details={details} />} - </Grid2> - </OverviewContainer> - ); -}; - -export default OverviewSection; diff --git a/src/custom/CatalogDetail/PatternInfo.tsx b/src/custom/CatalogDetail/PatternInfo.tsx deleted file mode 100644 index 6371ddcd7..000000000 --- a/src/custom/CatalogDetail/PatternInfo.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import React, { useState } from 'react'; -import { RenderMarkdown } from '../Markdown'; -import { ShowToggleBtn } from './style'; - -interface PatternInfoProps { - text: string; - redirect?: boolean; - id?: string; -} - -const PatternInfo: React.FC<PatternInfoProps> = ({ text, redirect, id }) => { - const [isExpanded, setIsExpanded] = useState(false); - - const toggleExpand = () => { - setIsExpanded(!isExpanded); - }; - - const handleRedirect = () => { - if (id) { - window.location.href = `/catalog/content/design/${id}`; - } - }; - - return ( - <div style={{ whiteSpace: 'normal' }}> - {isExpanded ? ( - <div> - <RenderMarkdown content={text} /> - <ShowToggleBtn onClick={toggleExpand}>show less</ShowToggleBtn> - </div> - ) : ( - <div> - <RenderMarkdown content={text.substring(0, redirect ? 400 : 500)} /> - {text.length > (redirect ? 400 : 500) && ( - <ShowToggleBtn onClick={redirect ? handleRedirect : toggleExpand}> - ...show more - </ShowToggleBtn> - )} - </div> - )} - </div> - ); -}; - -export default PatternInfo; diff --git a/src/custom/CatalogDetail/RelatedDesigns.tsx b/src/custom/CatalogDetail/RelatedDesigns.tsx deleted file mode 100644 index 88564224a..000000000 --- a/src/custom/CatalogDetail/RelatedDesigns.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { Carousel } from '../Carousel'; -import { CatalogCardDesignLogo } from '../CustomCatalog'; -import CustomCatalogCard, { Pattern } from '../CustomCatalog/CustomCard'; -import { getHeadingText } from './helper'; -import { AdditionalContainer, ContentHeading } from './style'; -import { UserProfile } from './types'; -export interface PatternsPerUser { - patterns: Pattern[]; -} -export interface DetailsByType { - patterns: Pattern[]; -} -interface RelatedDesignsProps { - details: Pattern; - type: string; - patternsPerUser: PatternsPerUser; - detailsByType?: DetailsByType; - onSuggestedPatternClick: (pattern: Pattern) => void; - userProfile?: UserProfile; - technologySVGPath: string; - technologySVGSubpath: string; - orgName: string; - fetchingOrgError: boolean; - filterByType?: boolean; -} - -const RelatedDesigns: React.FC<RelatedDesignsProps> = ({ - details, - type, - patternsPerUser, - detailsByType, - onSuggestedPatternClick, - userProfile, - technologySVGPath, - technologySVGSubpath, - orgName, - fetchingOrgError, - filterByType -}) => { - const filteredPatterns = filterByType - ? detailsByType?.patterns?.filter((pattern) => pattern.id !== details.id) || [] - : patternsPerUser?.patterns?.filter((pattern) => pattern.id !== details.id) || []; - - if (!filteredPatterns.length) return null; - const organizationName = filterByType - ? 'Similar Designs by Type' - : fetchingOrgError || !orgName - ? 'Unknown Organization' - : orgName; - - const carouselItems = filteredPatterns.map((pattern) => ( - <CustomCatalogCard - pattern={pattern} - patternType={type} - onCardClick={() => onSuggestedPatternClick(pattern)} - UserName={`${userProfile?.first_name ?? ''} ${userProfile?.last_name ?? ''}`} - avatarUrl={userProfile?.avatar_url} - basePath={technologySVGPath} - subBasePath={technologySVGSubpath} - cardTechnologies={true} - > - <CatalogCardDesignLogo - imgURL={pattern?.catalog_data?.imageURL} - height={'5.5rem'} - width={'100%'} - zoomEffect={false} - type={{ type: type }} - /> - </CustomCatalogCard> - )); - return ( - <AdditionalContainer> - <ContentHeading> - <h2 style={{ margin: '0', textTransform: 'uppercase' }}> - {filterByType - ? organizationName - : getHeadingText({ type, userProfile, organizationName, fetchingOrgError })} - </h2> - </ContentHeading> - <Carousel items={carouselItems} scrollAmount={300} /> - </AdditionalContainer> - ); -}; - -export default RelatedDesigns; diff --git a/src/custom/CatalogDetail/RightPanel.tsx b/src/custom/CatalogDetail/RightPanel.tsx deleted file mode 100644 index 696c47fd6..000000000 --- a/src/custom/CatalogDetail/RightPanel.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import React from 'react'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { VIEW_VISIBILITY } from '../VisibilityChipMenu/VisibilityChipMenu'; -import CaveatsSection from './CaveatsSection'; -import OverviewSection from './OverviewSection'; -import RelatedDesigns, { DetailsByType, PatternsPerUser } from './RelatedDesigns'; -import { Class } from './types'; - -interface RightPanelProps { - details: Pattern; - detailsByType: DetailsByType; - type: string; - cardId?: string; - title: string; - getUrl: (type: string, id: string) => string; - showContentDetails: boolean; - ViewsComponent?: React.ReactNode; - showVersion: boolean; - showCaveats: boolean; - classes: Class[]; - patternsPerUser: PatternsPerUser; - handleCopyUrl: (type: string, name: string, id: string) => void; - onSuggestedPatternClick: (pattern: Pattern) => void; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - useGetUserProfileByIdQuery: any; - fontFamily?: string; - technologySVGPath: string; - technologySVGSubpath: string; - orgName: string; - fetchingOrgError: boolean; - showShareAction: boolean; - handleShare: () => void; - isVisibilityEnabled: boolean; - handleVisibilityChange: (visibility: VIEW_VISIBILITY) => void; -} - -const RightPanel: React.FC<RightPanelProps> = ({ - details, - detailsByType, - type, - cardId = details.id, - title, - getUrl, - showContentDetails, - ViewsComponent, - showVersion, - showCaveats, - classes, - patternsPerUser, - onSuggestedPatternClick, - handleCopyUrl, - fontFamily, - useGetUserProfileByIdQuery, - technologySVGPath, - technologySVGSubpath, - orgName, - fetchingOrgError, - showShareAction, - handleShare, - isVisibilityEnabled = false, - handleVisibilityChange -}) => { - const cleanedType = type.replace('my-', '').replace(/s$/, ''); - const { data: userProfile } = useGetUserProfileByIdQuery({ - id: details.user_id - }); - - return ( - <div> - <OverviewSection - details={details} - type={cleanedType} - cardId={cardId} - title={title} - getUrl={getUrl} - showContentDetails={showContentDetails} - ViewsComponent={ViewsComponent} - showVersion={showVersion} - classes={classes} - handleCopyUrl={handleCopyUrl} - fontFamily={fontFamily} - userProfile={userProfile} - showShareAction={showShareAction} - handleShare={handleShare} - isVisibilityEnabled={isVisibilityEnabled} - handleVisibilityChange={handleVisibilityChange} - /> - {showCaveats && <CaveatsSection details={details} />} - <RelatedDesigns - details={details} - detailsByType={detailsByType} - orgName={orgName} - fetchingOrgError={fetchingOrgError} - type={type} - patternsPerUser={patternsPerUser} - onSuggestedPatternClick={onSuggestedPatternClick} - userProfile={userProfile} - technologySVGPath={technologySVGPath} - technologySVGSubpath={technologySVGSubpath} - filterByType={false} - /> - <RelatedDesigns - details={details} - detailsByType={detailsByType} - orgName={orgName} - fetchingOrgError={fetchingOrgError} - type={type} - patternsPerUser={patternsPerUser} - onSuggestedPatternClick={onSuggestedPatternClick} - userProfile={userProfile} - technologySVGPath={technologySVGPath} - technologySVGSubpath={technologySVGSubpath} - filterByType={true} - /> - </div> - ); -}; - -export default RightPanel; diff --git a/src/custom/CatalogDetail/SocialSharePopper.tsx b/src/custom/CatalogDetail/SocialSharePopper.tsx deleted file mode 100644 index 23225927d..000000000 --- a/src/custom/CatalogDetail/SocialSharePopper.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import React, { useState } from 'react'; -import { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from 'react-share'; -import { Box, IconButton, Menu, MenuItem, Typography } from '../../base'; -import { ChainIcon, FacebookIcon, LinkedinIcon, ShareIcon, TwitterIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { CustomTooltip } from '../CustomTooltip'; -import { ErrorBoundary } from '../ErrorBoundary'; -import { CopyShareIconWrapper, ShareButton, ShareButtonGroup, ShareSideButton } from './style'; - -interface SocialSharePopperProps { - details: Pattern; - type: string; - cardId: string; - title: string; - getUrl: (type: string, id: string) => string; - handleCopyUrl: (type: string, name: string, id: string) => void; - showShareAction: boolean; - handleShare: () => void; -} - -const SocialSharePopper: React.FC<SocialSharePopperProps> = ({ - details, - type, - cardId, - title, - getUrl, - handleCopyUrl, - handleShare -}) => { - const theme = useTheme(); - const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null); - const open = Boolean(anchorEl); - - const handleClick = (event: React.MouseEvent<HTMLElement>) => { - setAnchorEl(event.currentTarget); - }; - - const handleClose = () => { - setAnchorEl(null); - }; - - const cleanedType = type.replace('my-', '').replace(/s$/, ''); - - return ( - <ErrorBoundary> - <CopyShareIconWrapper style={{ marginBottom: '2rem' }}> - <ShareButtonGroup variant="contained"> - <CustomTooltip title="Change access and visibility"> - <ShareButton variant="contained" onClick={handleShare}> - <Typography>Share</Typography> - </ShareButton> - </CustomTooltip> - <CustomTooltip title="Copy link to design"> - <ShareSideButton - variant="contained" - size="small" - onClick={() => handleCopyUrl(cleanedType, details?.name, details?.id)} - > - <ChainIcon height={'24'} width={'24'} fill={theme.palette.text.constant?.white} /> - </ShareSideButton> - </CustomTooltip> - </ShareButtonGroup> - - {(details?.visibility === 'published' || details?.visibility === 'public') && ( - <> - <CustomTooltip title={title} placement="top" arrow> - <IconButton sx={{ borderRadius: '0.1rem', padding: '0.5rem' }} onClick={handleClick}> - <ShareIcon height={24} width={22} fill={theme.palette.icon.secondary} /> - </IconButton> - </CustomTooltip> - - <Menu - anchorEl={anchorEl} - open={open} - onClose={handleClose} - onClick={handleClose} - PaperProps={{ - sx: { - p: 0, - width: 'auto' - } - }} - sx={{ - '& .MuiList-root': { - paddingBottom: 0 - } - }} - transformOrigin={{ horizontal: 'right', vertical: 'top' }} - anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }} - > - <MenuItem - sx={{ - backgroundColor: 'transparent', - '&:hover': { backgroundColor: 'transparent' }, - padding: '0px', - cursor: 'default' - }} - > - <Box sx={{ display: 'flex', gap: 1 }}> - <TwitterShareButton - url={getUrl(cleanedType, cardId)} - title="Checkout this awesome design" - hashtags={['opensource']} - > - <TwitterIcon /> - </TwitterShareButton> - <LinkedinShareButton - url={getUrl(cleanedType, cardId)} - summary="Checkout this awesome design" - > - <LinkedinIcon /> - </LinkedinShareButton> - <FacebookShareButton url={getUrl(cleanedType, cardId)} hashtag="#opensource"> - <FacebookIcon /> - </FacebookShareButton> - </Box> - </MenuItem> - </Menu> - </> - )} - </CopyShareIconWrapper> - </ErrorBoundary> - ); -}; - -export default SocialSharePopper; diff --git a/src/custom/CatalogDetail/TechnologySection.tsx b/src/custom/CatalogDetail/TechnologySection.tsx deleted file mode 100644 index 4018c6255..000000000 --- a/src/custom/CatalogDetail/TechnologySection.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import { ListItemIcon } from '../../base'; -import { useTheme } from '../../theme'; -import CollapsibleSection from './CollapsibleSection'; -import { LabelDiv } from './style'; - -interface TechnologySectionProps { - technologies: string[]; - technologySVGPath: string; - technologySVGSubpath: string; -} - -const TechnologySection: React.FC<TechnologySectionProps> = ({ - technologySVGPath, - technologySVGSubpath, - technologies -}) => { - const [openTechnologies, setOpenTechnologies] = useState(true); - const [validTechnologies, setValidTechnologies] = useState<string[]>([]); - const theme = useTheme(); - - useEffect(() => { - // Function to check if SVG exists - const validateTechnologies = async () => { - const validTechs = await Promise.all( - technologies.map(async (tech) => { - const svg_path = `/${technologySVGPath}/${tech.toLowerCase()}/${technologySVGSubpath}/${tech.toLowerCase()}-color.svg`; - try { - const response = await fetch(svg_path); - return response.ok ? tech : null; - } catch { - return null; - } - }) - ); - setValidTechnologies(validTechs.filter((tech): tech is string => tech !== null)); - }; - - validateTechnologies(); - }, [technologies, technologySVGPath, technologySVGSubpath]); - - const renderTechnologyItem = (item: string, index: number) => { - const svg_path = `${technologySVGPath}/${item.toLowerCase()}/${technologySVGSubpath}/${item.toLowerCase()}-color.svg`; - return ( - <LabelDiv key={index}> - <ListItemIcon sx={{ minWidth: '1.5rem', marginRight: 1 }}> - <img height="24px" width="24px" src={`/${svg_path}`} alt={`${item} icon`} /> - </ListItemIcon> - {item} - </LabelDiv> - ); - }; - - return ( - <> - <hr - style={{ - backgroundColor: theme.palette.background.secondary, - border: 'none', - height: '1px', - marginTop: '1rem', - marginBottom: '1rem' - }} - /> - <CollapsibleSection - title="TECHNOLOGY" - isOpen={openTechnologies} - onToggle={() => setOpenTechnologies((prev) => !prev)} - items={validTechnologies} - renderItem={renderTechnologyItem} - emptyState={'No technologies assigned to this design'} - tooltip={'Technologies used in this design'} - /> - </> - ); -}; - -export default TechnologySection; diff --git a/src/custom/CatalogDetail/UserInfo.tsx b/src/custom/CatalogDetail/UserInfo.tsx deleted file mode 100644 index d9d231e97..000000000 --- a/src/custom/CatalogDetail/UserInfo.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import { Avatar } from '../../base'; -import { MESHERY_CLOUD_PROD } from '../../constants/constants'; -import { LockIcon, PublicIcon } from '../../icons'; -import { getFormatDate } from '../../utils'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { getVersion } from '../CustomCatalog/Helper'; -import { VisibilityChipMenu } from '../VisibilityChipMenu'; -import { VIEW_VISIBILITY } from '../VisibilityChipMenu/VisibilityChipMenu'; -import { ContentDetailsPoints, ContentDetailsText, ContentRow, RedirectLink } from './style'; -import { UserProfile } from './types'; - -interface UserInfoProps { - details: Pattern; - showVersion?: boolean; - userProfile?: UserProfile; - isVisibilityEnabled: boolean; - handleVisibilityChange: (visibility: VIEW_VISIBILITY) => void; -} - -const UserInfo: React.FC<UserInfoProps> = ({ - details, - showVersion = true, - userProfile, - isVisibilityEnabled, - handleVisibilityChange -}) => { - return ( - <> - <ContentRow> - <ContentDetailsPoints>CREATED BY</ContentDetailsPoints> - <ContentDetailsText - style={{ - display: 'flex', - alignItems: 'center', - gap: '7px' - }} - > - <Avatar - src={userProfile?.avatar_url} - alt={`${userProfile?.first_name} ${userProfile?.last_name}`} - style={{ - height: '28px', - width: '28px' - }} - /> - <RedirectLink - href={`${MESHERY_CLOUD_PROD}/user/${details?.user_id}`} - target="_blank" - rel="noopener noreferrer" - > - <span style={{ fontWeight: 'normal' }}> - {userProfile?.first_name} {userProfile?.last_name} - </span> - </RedirectLink> - </ContentDetailsText> - </ContentRow> - <ContentRow> - <ContentDetailsPoints>CREATED AT</ContentDetailsPoints> - <ContentDetailsText>{getFormatDate(details?.created_at.toString())}</ContentDetailsText> - </ContentRow> - <ContentRow> - <ContentDetailsPoints>UPDATED AT</ContentDetailsPoints> - <ContentDetailsText>{getFormatDate(details?.updated_at.toString())}</ContentDetailsText> - </ContentRow> - {showVersion && ( - <ContentRow> - <ContentDetailsPoints>VERSION</ContentDetailsPoints> - <ContentDetailsText>{getVersion(details)}</ContentDetailsText> - </ContentRow> - )} - <ContentRow> - <ContentDetailsPoints>VISIBILITY</ContentDetailsPoints> - <VisibilityChipMenu - value={details?.visibility as VIEW_VISIBILITY} - onChange={(value) => handleVisibilityChange(value as VIEW_VISIBILITY)} - enabled={isVisibilityEnabled} - options={[ - [VIEW_VISIBILITY.PUBLIC, PublicIcon], - [VIEW_VISIBILITY.PRIVATE, LockIcon] - ]} - /> - </ContentRow> - </> - ); -}; - -export default UserInfo; diff --git a/src/custom/CatalogDetail/helper.ts b/src/custom/CatalogDetail/helper.ts deleted file mode 100644 index cc317d99f..000000000 --- a/src/custom/CatalogDetail/helper.ts +++ /dev/null @@ -1,79 +0,0 @@ -import jsyaml from 'js-yaml'; - -export const downloadYaml = (filteredData: string, itemName: string): void => { - const yamlData = Array.isArray(filteredData) - ? jsyaml.dump(filteredData.find((item) => item.name === itemName)) - : filteredData; - const blob = new Blob([yamlData], { type: 'application/yaml' }); - const url = URL.createObjectURL(blob); - const element = document.createElement('a'); - element.href = url; - element.download = `${itemName}.yaml`; - // document.body.appendChild(element); // Required for this to work in FireFox - element.click(); - URL.revokeObjectURL(url); -}; - -export function slugify(str: string): string { - if (!str) return str; - str = str.replace(/^\s+|\s+$/g, ''); // trim leading/trailing whitespace - str = str.toLowerCase(); - - // remove accents, swap รฑ for n, etc - const from = 'ร รกรครขรจรฉรซรชรฌรญรฏรฎรฒรณรถรดรนรบรผรปรฑรงยท/_,:;'; - const to = 'aaaaeeeeiiiioooouuuunc------'; - for (let i = 0, l = from.length; i < l; i++) { - str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i)); - } - - str = str - .replace(/[^a-z0-9 -]/g, '') // remove invalid chars - .replace(/\s+/g, '-') // collapse whitespace and replace by - - .replace(/-+/g, '-'); // collapse dashes - - return str; -} - -export const downloadPattern = ( - id: string, - name: string, - getDownloadUrl: (id: string) => string -): void => { - const downloadUrl = getDownloadUrl(id); - - const fileNameWithExtension = `${name}.yaml`; - const linkElement = document.createElement('a'); - linkElement.setAttribute('href', downloadUrl); - linkElement.setAttribute('download', fileNameWithExtension); - linkElement.click(); - linkElement.remove(); -}; - -export const formatToTitleCase = (value: string): string => { - if (typeof value === 'string') { - return value.substring(0, 1).toUpperCase().concat('', value.substring(1).toLowerCase()); - } - return ''; -}; - -interface HeadingProps { - type: string; - userProfile?: { - first_name?: string; - }; - organizationName?: string; - fetchingOrgError: boolean; -} - -export const getHeadingText = ({ - type, - userProfile, - organizationName, - fetchingOrgError -}: HeadingProps): string => { - const designType = type.toLowerCase() === 'my-designs' ? 'public' : 'published'; - const firstName = formatToTitleCase(userProfile?.first_name ?? ''); - const orgText = fetchingOrgError ? '' : `under ${organizationName}`; - - return `Other ${designType} design by ${firstName} ${orgText}`; -}; diff --git a/src/custom/CatalogDetail/index.tsx b/src/custom/CatalogDetail/index.tsx deleted file mode 100644 index 87a3d0208..000000000 --- a/src/custom/CatalogDetail/index.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import ActionButtons from './ActionButton'; -import CaveatsSection from './CaveatsSection'; -import ChallengesSection from './ChallengesSection'; -import CollapsibleSection from './CollapsibleSection'; -import LearningSection from './LearningSection'; -import LeftPanel from './LeftPanel'; -import MetricsDisplay from './MetricsDisplay'; -import OverviewSection from './OverviewSection'; -import PatternInfo from './PatternInfo'; -import RelatedDesigns from './RelatedDesigns'; -import RightPanel from './RightPanel'; -import SocialSharePopper from './SocialSharePopper'; -import TechnologySection from './TechnologySection'; -import UserInfo from './UserInfo'; - -export { - ActionButtons, - CaveatsSection, - ChallengesSection, - CollapsibleSection, - LearningSection, - LeftPanel, - MetricsDisplay, - OverviewSection, - PatternInfo, - RelatedDesigns, - RightPanel, - SocialSharePopper, - TechnologySection, - UserInfo -}; diff --git a/src/custom/CatalogDetail/style.tsx b/src/custom/CatalogDetail/style.tsx deleted file mode 100644 index 68826c4df..000000000 --- a/src/custom/CatalogDetail/style.tsx +++ /dev/null @@ -1,292 +0,0 @@ -import { Button, ButtonGroup, Link, ListItemButton, Typography } from '../../base'; -import { styled } from '../../theme'; - -export const StyledActionWrapper = styled('div')(({ theme }) => ({ - boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.2)', - justifyContent: 'center', - width: '100%', - margin: '0', - marginTop: '1rem', - display: 'flex', - flexDirection: 'column', - gap: '1rem', - padding: '0.6rem', - alignItems: 'center', - backgroundColor: theme.palette.background.default -})); - -interface ActionButtonProps { - disabled?: boolean; -} - -export const ActionButton = styled('div')<ActionButtonProps>(({ disabled = false, theme }) => ({ - cursor: disabled ? 'not-allowed' : 'pointer', - opacity: disabled ? '0.5' : '1', - textAlign: 'center', - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - borderRadius: '0.5rem', - backgroundColor: theme.palette.background.brand?.default, - padding: '0.5rem', - color: theme.palette.text.inverse, - gap: '0.625rem', - flex: '1' -})); - -export const UnpublishAction = styled('div')<ActionButtonProps>(({ disabled = false, theme }) => ({ - cursor: disabled ? 'not-allowed' : 'pointer', - opacity: disabled ? '0.5' : '1', - textAlign: 'center', - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - borderRadius: '0.5rem', - backgroundColor: theme.palette.background.error?.default, - padding: '0.5rem', - color: theme.palette.text.inverse, - gap: '0.625rem', - flex: '1' -})); - -export const ContentDetailsText = styled(Typography)(({ theme, style }) => ({ - fontFamily: 'inherit', - fontSize: '1rem', - color: theme.palette.text.default, - ['@media (min-width:1200px)']: { - fontSize: '1' - }, - ...style -})); - -export const ContentHeading = styled('div')(() => ({ - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - width: '100%', - marginBottom: '1rem' -})); - -export const CaveatsContainer = styled('div')(({ theme }) => ({ - width: '100%', - boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.2)', - backgroundColor: theme.palette.background.default, - textAlign: 'left', - justifyContent: 'start', - alignItems: 'start', - display: 'flex', - flexWrap: 'wrap', - flexDirection: 'column', - padding: '1.5rem', - marginTop: '1.5rem', - borderRadius: '0.4rem', - overflowWrap: 'anywhere' -})); - -interface LabelDivProps { - clickable?: boolean; -} - -export const LabelDiv = styled('div')<LabelDivProps>(({ theme, clickable }) => ({ - display: 'flex', - justifyContent: 'start', - alignItems: 'center', - padding: '0.5rem 1.5rem', - width: '100%', - borderBottom: `1px solid ${theme.palette.border.default}`, - [' @media (min-width: 600px) and (max-width: 800px)']: { - padding: '0.5rem' - }, - ...(clickable && { - '&:hover': { - backgroundColor: theme.palette.background.hover - }, - cursor: 'pointer' - }) -})); - -export const SideContainer = styled('div')(({ theme }) => ({ - width: '100%', - boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.2)', - backgroundColor: theme.palette.background.default, - justifyContent: 'start', - alignItems: 'start', - display: 'flex', - flexDirection: 'column', - padding: '0.5rem', - borderRadius: '0.4rem' -})); - -export const SideTitleButton = styled(ListItemButton)(({ theme }) => ({ - backgroundColor: theme.palette.background.surfaces, - borderRadius: '0.5rem', - marginTop: 2, - width: '100%', - [' @media (min-width: 600px) and (max-width: 800px)']: { - padding: '0.5rem' - } -})); - -export const ContentDetailsPoints = styled(Typography)(() => ({ - fontSize: '.9rem', - fontWeight: 'bold', - lineHeight: '1.5rem', - display: 'flex', - flexDirection: 'row', - alignItems: 'center', - gap: '1rem', - fontFamily: 'inherit' -})); - -export const MetricsSection = styled('div')(({ theme }) => ({ - backgroundColor: theme.palette.background.default, - padding: '1.1rem', - marginTop: '0.5rem', - display: 'flex', - borderTop: '0.5px solid #3C494F', - justifyContent: 'center', - gap: '1.7rem', - flexWrap: 'wrap', - ['@media (max-width:1200px)']: { - justifyContent: 'flex-start' - } -})); - -export const MetricsContainer = styled('div')(({ theme }) => ({ - backgroundColor: theme.palette.background.default, - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center', - [' @media (min-width: 280px) and (max-width: 700px)']: { - flexBasis: '35%' - }, - [' @media (max-width: 280px)']: { - flexBasis: '10%' - } -})); -export const MetricsType = styled('div')(({ theme }) => ({ - display: 'flex', - fontSize: '16px', - fontWeight: '400', - letterSpacing: '0.15px', - lineHeight: '1.5', - textTransform: 'lowercase', - color: theme.palette.icon.secondary, - [' @media (max-width: 285px)']: { - fontSize: '0.86rem' - } -})); -export const MetricsData = styled('div')(({ theme }) => ({ - color: theme.palette.icon.secondary, - fontSize: '1.2rem', - fontWeight: 'bold', - lineHeight: '1.5' -})); - -export const OverviewContainer = styled('div')(({ theme }) => ({ - width: '100%', - boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.2)', - backgroundColor: theme.palette.background.default, - textAlign: 'left', - justifyContent: 'start', - alignItems: 'start', - display: 'flex', - flexWrap: 'wrap', - flexDirection: 'column', - padding: '1.5rem', - borderRadius: '0.4rem' -})); - -export const OverviewContainerHeader = styled('div')(({ theme }) => ({ - display: 'flex', - flexDirection: 'row', - width: '100%', - flexWrap: 'wrap', - fontFamily: 'inherit', - - [theme.breakpoints.down('sm')]: { - flexDirection: 'column' - } -})); - -export const DesignHeading = styled('h1')(({ theme }) => ({ - textAlign: 'left', - margin: '0rem 0rem 2rem 0rem', - color: theme.palette.text.default, - textTransform: 'capitalize', - fontWeight: '300', - flex: '1' -})); - -export const ContentRow = styled('div')(() => ({ - padding: '0.5rem 0', - overflowWrap: 'anywhere', - fontFamily: 'inherit' -})); - -export const ShowToggleBtn = styled('span')(({ theme }) => ({ - color: theme.palette.background.brand?.default, - cursor: 'pointer', - fontSize: '1rem', - fontWeight: 'normal', - marginLeft: '0.25rem' -})); - -export const AdditionalContainer = styled('div')(({ theme }) => ({ - width: '100%', - boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.2)', - backgroundColor: theme.palette.background.default, - textAlign: 'left', - justifyContent: 'center', - alignItems: 'center', - display: 'flex', - flexWrap: 'wrap', - flexDirection: 'column', - padding: '1.5rem', - paddingBottom: '2rem', - marginTop: '1.5rem', - borderRadius: '0.4rem' -})); - -export const DesignCardContainer = styled('div')(({ theme }) => ({ - display: 'flex', - flexWrap: 'wrap', - flex: '0 0 75%', - gap: '2rem', - justifyContent: 'space-around', - height: 'fit-content', - backgroundColor: theme.palette.background.default -})); - -export const CopyShareIconWrapper = styled(ContentHeading)(() => ({ - justifyContent: 'flex-end', - gap: '1rem', - width: 'fit-content' -})); - -export const RedirectLink = styled(Link)(({ theme }) => ({ - color: theme.palette.background.brand?.default, - textDecoration: 'none', - cursor: 'pointer' -})); - -export const ShareButtonGroup = styled(ButtonGroup)({ - boxShadow: 'none', - border: 'none', - outline: 'none' -}); - -export const ShareButton = styled(Button)(({ theme }) => ({ - backgroundColor: theme.palette.background.brand?.default, - color: 'white', - border: 'none', - borderRadius: '0.5rem 0px 0px 0.5rem' -})); - -export const ShareSideButton = styled(Button)(({ theme }) => ({ - backgroundColor: theme.palette.background.brand?.default, - color: 'white', - border: 'none', - borderRadius: '0px 0.5rem 0.5rem 0px' -})); diff --git a/src/custom/CatalogDetail/types.ts b/src/custom/CatalogDetail/types.ts deleted file mode 100644 index 2255a6f53..000000000 --- a/src/custom/CatalogDetail/types.ts +++ /dev/null @@ -1,63 +0,0 @@ -export interface User { - id: string; - first_name: string; - last_name: string; -} - -export interface FilteredAcademyData { - 'learning-path'?: string[]; - challenge?: string[]; - challenges?: string[]; -} - -export interface Class { - class: string; - description: string; -} - -export interface Theme { - palette: { - background: { - secondary: string; - inverse: string; - cta: { - default: string; - }; - }; - icon: { - default: string; - secondary: string; - }; - }; -} - -export const RESOURCE_TYPES = { - DESIGN: 'design', - FILTER: 'filter', - VIEW: 'view' -}; - -export const PATTERNS = 'patterns'; -export const FILTERS = 'filters'; -export const VIEWS = 'views'; - -export type ContentClassType = { - community: { - icon: React.ComponentType; - color: string; - }; - official: { - icon: React.ComponentType; - color: string; - }; - verified: { - icon: React.ComponentType; - color: string; - }; -}; - -export type UserProfile = { - first_name: string; - last_name: string; - avatar_url: string; -}; diff --git a/src/custom/CatalogFilter/CatalogFilter.tsx b/src/custom/CatalogFilter/CatalogFilter.tsx deleted file mode 100644 index 286dc8870..000000000 --- a/src/custom/CatalogFilter/CatalogFilter.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import React from 'react'; - -import VisibilityIcon from '@mui/icons-material/Visibility'; -import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'; -import Button from '@mui/material/Button'; -import { iconMedium } from '../../constants/iconsSizes'; - -export interface CatalogFilterProps { - catalogVisibility: boolean; - handleCatalogVisibility: () => void; - hideCatalog?: boolean; - classes?: string; -} - -function CatalogFilter({ - catalogVisibility, - handleCatalogVisibility, - hideCatalog = false, - classes = '' -}: CatalogFilterProps): React.JSX.Element { - return ( - <> - {!hideCatalog && ( // In application we don't have catalog, hence this check - <Button - style={{ - // marginBottom : '0.2rem', - alignItems: 'center', - marginLeft: '-0.6rem' - }} - size="large" - onClick={handleCatalogVisibility} - variant="contained" - color="primary" - > - {catalogVisibility ? ( - <VisibilityIcon style={iconMedium} /> - ) : ( - <VisibilityOffIcon style={iconMedium} /> - )} - <span className={classes} style={{ marginLeft: '4px' }}> - {' '} - Catalog - </span> - </Button> - )} - </> - ); -} - -export default CatalogFilter; diff --git a/src/custom/CatalogFilterSection/CatalogFilterSidebar.tsx b/src/custom/CatalogFilterSection/CatalogFilterSidebar.tsx deleted file mode 100644 index c53bad0e3..000000000 --- a/src/custom/CatalogFilterSection/CatalogFilterSidebar.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import FilterAltIcon from '@mui/icons-material/FilterAlt'; -import { useTheme } from '@mui/material/styles'; -import { useCallback, useState } from 'react'; -import { Box, Drawer, Typography } from '../../base'; -import { CloseIcon } from '../../icons'; -import { darkTeal } from '../../theme'; -import { darkModalGradient, lightModalGradient } from '../../theme/colors/colors'; -import { CustomTooltip } from '../CustomTooltip'; -import { CloseBtn } from '../Modal'; -import CatalogFilterSidebarState from './CatalogFilterSidebarState'; -import { FilterButton, FilterDrawerDiv, FiltersCardDiv, FiltersDrawerHeader } from './style'; - -export interface FilterOption { - value: string; - label: string; - totalCount?: number; - description?: string; - Icon?: React.ComponentType<{ - width: string; - height: string; - }>; -} - -export interface FilterList { - filterKey: string; - sectionDisplayName?: string; - defaultOpen?: boolean; - isMultiSelect?: boolean; - options?: FilterOption[]; - customComponent?: React.ComponentType; -} - -type FilterListWithOptions = FilterList & { options: FilterOption[]; customComponent?: never }; - -type FilterListWithCustomComponent = FilterList & { - customComponent: React.ComponentType; - options?: never; -}; - -export type FilterListType = FilterListWithOptions | FilterListWithCustomComponent; - -export interface CatalogFilterSidebarProps { - setData: (callback: (prevFilters: FilterValues) => FilterValues) => void; - lists: FilterListType[]; - value?: FilterValues; - styleProps?: StyleProps; -} - -export type FilterValues = Record<string, string | string[]>; - -export interface StyleProps { - backgroundColor?: string; - sectionTitleBackgroundColor?: string; - fontFamily?: string; -} - -/** - * @function CatalogFilterSidebar - * @description A functional component that renders the filter sidebar. - * @param {Array} value - The data to be filtered. - * @param {Function} setData - A function to set the filtered data. - * @param {Array} lists - An array of filter sections and its options lists. - */ -const CatalogFilterSidebar: React.FC<CatalogFilterSidebarProps> = ({ - lists, - setData, - value = {}, - styleProps -}) => { - const theme = useTheme(); // Get the current theme - const [openDrawer, setOpenDrawer] = useState<boolean>(false); - - const handleDrawerOpen = useCallback(() => { - setOpenDrawer(true); - }, []); - - const handleDrawerClose = useCallback(() => { - setOpenDrawer(false); - }, []); - - const defaultStyleProps: StyleProps = { - backgroundColor: - theme.palette.mode === 'light' - ? theme.palette.background.default - : theme.palette.background.secondary, - sectionTitleBackgroundColor: - theme.palette.mode === 'light' ? theme.palette.background.surfaces : darkTeal.main, - fontFamily: theme.typography.fontFamily - }; - - const appliedStyleProps = { - ...defaultStyleProps, - ...styleProps - }; - - return ( - <> - <FiltersCardDiv styleProps={appliedStyleProps}> - <CatalogFilterSidebarState - lists={lists} - onApplyFilters={setData} - value={value} - styleProps={appliedStyleProps} - /> - </FiltersCardDiv> - <FilterDrawerDiv> - <CustomTooltip title="Filters" placement="bottom"> - <FilterButton variant="contained" onClick={handleDrawerOpen}> - <FilterAltIcon - style={{ height: '28px', width: '28px' }} - fill={theme.palette.text.default} - /> - </FilterButton> - </CustomTooltip> - - <Drawer - anchor="bottom" - open={openDrawer} - variant="temporary" - onClose={handleDrawerClose} - style={{ zIndex: '1399' }} - > - <Box sx={{ overflowY: 'hidden', height: '90vh' }}> - <FiltersDrawerHeader> - <Typography - variant="h6" - sx={{ color: theme.palette.text.constant?.white }} - component="div" - > - Filters - </Typography> - <CloseBtn onClick={handleDrawerClose}> - <CloseIcon height={'32px'} width={'32px'} /> - </CloseBtn> - </FiltersDrawerHeader> - <Box - style={{ - height: '75vh', - overflowY: 'auto', - background: theme.palette.background.surfaces, - padding: '0 16px' - }} - > - <CatalogFilterSidebarState - lists={lists} - onApplyFilters={setData} - value={value} - styleProps={appliedStyleProps} - /> - </Box> - <Box - sx={{ - background: - theme.palette.mode === 'light' - ? lightModalGradient.fotter - : darkModalGradient.fotter, - height: '5vh' - }} - /> - </Box> - </Drawer> - </FilterDrawerDiv> - </> - ); -}; - -export default CatalogFilterSidebar; diff --git a/src/custom/CatalogFilterSection/CatalogFilterSidebarState.tsx b/src/custom/CatalogFilterSection/CatalogFilterSidebarState.tsx deleted file mode 100644 index 1d2bb51ba..000000000 --- a/src/custom/CatalogFilterSection/CatalogFilterSidebarState.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import { useCallback, useState } from 'react'; -import { - CatalogFilterSidebarProps, - FilterListType, - FilterValues, - StyleProps -} from './CatalogFilterSidebar'; -import FilterSection from './FilterSection'; - -/** - * @component CatalogFilterSidebarState - * @description A functional component that manages the filter state. - * @param {Array} lists - An array of filter sections and its options lists. - * @param {Function} onApplyFilters - A function to apply the filters. - * @param {Object} value - The selected filters. - * @param {Object} styleProps - The style properties for the component. - */ -const CatalogFilterSidebarState: React.FC<{ - lists: FilterListType[]; - onApplyFilters: CatalogFilterSidebarProps['setData']; - value: FilterValues; - styleProps: StyleProps; -}> = ({ lists, onApplyFilters, value, styleProps }) => { - // Generate initial state with all sections open by default - const [openSections, setOpenSections] = useState<Record<string, boolean>>(() => { - const initialOpenSections: Record<string, boolean> = {}; - lists.forEach((list) => { - initialOpenSections[list.filterKey] = !!list.defaultOpen; - }); - return initialOpenSections; - }); - - /** - * @function handleSectionToggle - * @description Handles the section toggle event. - * @param {string} filterKey - The name of the filter section. - */ - const handleSectionToggle = useCallback((filterKey: string) => { - setOpenSections((prevOpenSections) => ({ - ...prevOpenSections, - [filterKey]: !prevOpenSections[filterKey] - })); - }, []); - - /** - * @function handleCheckboxChange - * @description Handles the checkbox change event. - * @param {string} filterKey - The name of the filter section. - * @param {string} value - The value of the checkbox. - * @param {boolean} checked - The checked state of the checkbox. - */ - const handleCheckboxChange = useCallback( - (filterKey: string, value: string, checked: boolean) => { - onApplyFilters((prevFilters) => { - const updatedFilters = { ...prevFilters }; - const filterList = lists.find((list) => list.filterKey === filterKey); - - // default is multi select - if (filterList?.isMultiSelect !== false) { - let currentValues = updatedFilters[filterKey] as string[] | undefined; - - if (!Array.isArray(currentValues)) { - currentValues = currentValues ? [currentValues as string] : []; // convert to array; - } - - updatedFilters[filterKey] = checked - ? [...currentValues, value] - : currentValues.filter((item) => item !== value); - } else { - updatedFilters[filterKey] = checked ? value : ''; - } - - return updatedFilters; - }); - }, - [lists, onApplyFilters] - ); - - return ( - <> - {lists.map((list) => { - if (list.customComponent) { - return ( - <FilterSection - key={list.filterKey} - filterKey={list.filterKey} - filters={value} - sectionDisplayName={list.sectionDisplayName} - onSectionToggle={handleSectionToggle} - styleProps={styleProps} - openSections={openSections} - customComponent={list.customComponent} - /> - ); - } - - return ( - <FilterSection - key={list.filterKey} - filterKey={list.filterKey} - sectionDisplayName={list.sectionDisplayName} - options={list.options} - filters={value} - openSections={openSections} - onCheckboxChange={handleCheckboxChange} - onSectionToggle={handleSectionToggle} - styleProps={styleProps} - /> - ); - })} - </> - ); -}; - -export default CatalogFilterSidebarState; diff --git a/src/custom/CatalogFilterSection/FilterSection.tsx b/src/custom/CatalogFilterSection/FilterSection.tsx deleted file mode 100644 index 2a8d3940f..000000000 --- a/src/custom/CatalogFilterSection/FilterSection.tsx +++ /dev/null @@ -1,150 +0,0 @@ -import ExpandLessIcon from '@mui/icons-material/ExpandLess'; -import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; -import { useCallback, useState } from 'react'; -import { Box, Checkbox, Collapse, List, Stack, Typography } from '../../base'; -import { InfoTooltip } from '../CustomTooltip'; -import { StyledSearchBar } from '../StyledSearchBar'; -import { FilterOption, FilterValues, StyleProps } from './CatalogFilterSidebar'; -import { EndAdornmentText, FilterTitleButton } from './style'; - -interface FilterSectionProps { - filterKey: string; - sectionDisplayName?: string; - options?: FilterOption[]; - filters: FilterValues; - openSections: Record<string, boolean>; - onCheckboxChange?: (filterKey: string, value: string, checked: boolean) => void; - onSectionToggle: (filterKey: string) => void; - styleProps: StyleProps; - customComponent?: React.ComponentType; -} - -/** - * @component FilterSection - * @description A functional component that renders a filter section. - * @param {string} filterKey - The key of the filter section. - * @param {string} sectionDisplayName - The title of the filter section. - * @param {Array} options - The available options for the filter section. - * @param {Object} filters - The selected filters. - * @param {Object} openSections - The open/closed state of the filter sections. - * @param {Function} onCheckboxChange - A function to handle checkbox change event. - * @param {Function} onSectionToggle - A function to handle section toggle event. - * @param {Object} styleProps - The style properties for the component. - */ -const FilterSection: React.FC<FilterSectionProps> = ({ - filterKey, - sectionDisplayName, - options = [], - filters, - openSections, - onCheckboxChange, - onSectionToggle, - styleProps, - customComponent: CustomComponent -}) => { - const [searchQuery, setSearchQuery] = useState<string>(''); - - const handleTextFieldChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => { - setSearchQuery(e.target.value); - }, []); - - const showSearch = options.length > 10; - const searchedOptions = - searchQuery && options.length - ? options.filter((option) => option.label.toLowerCase().includes(searchQuery.toLowerCase())) - : options; - - return ( - <> - <FilterTitleButton - onClick={() => onSectionToggle(filterKey)} - style={{ - backgroundColor: styleProps.sectionTitleBackgroundColor - }} - > - <Typography - sx={{ - fontSize: '1rem' - }} - fontWeight="bold" - fontFamily={styleProps.fontFamily} - > - {(sectionDisplayName || filterKey).toUpperCase()} - </Typography> - {openSections[filterKey] ? <ExpandLessIcon /> : <ExpandMoreIcon />} - </FilterTitleButton> - <Collapse in={openSections[filterKey]} timeout="auto" unmountOnExit> - {CustomComponent ? ( - <CustomComponent /> - ) : ( - <List - component="div" - sx={{ - overflowY: 'auto', - maxHeight: '25rem', - backgroundColor: styleProps.backgroundColor, - '&::-webkit-scrollbar': { - width: '6px' - } - }} - > - {showSearch && ( - <Box - sx={{ - px: '0.5rem', - mb: '0.5rem' - }} - > - <StyledSearchBar - value={searchQuery} - onChange={handleTextFieldChange} - placeholder="Search" - endAdornment={ - <EndAdornmentText>Total : {searchedOptions.length ?? 0}</EndAdornmentText> - } - /> - </Box> - )} - {searchedOptions.map((option, index) => ( - <Stack - key={`${option.value}-${index}`} - direction="row" - alignItems="center" - px={'0.5rem'} - justifyContent="space-between" - > - <Stack direction="row" alignItems="center" gap="0.35rem"> - <Checkbox - id={`checkbox-${option.label}`} - checked={ - Array.isArray(filters[filterKey]) - ? (filters[filterKey] as string[]).includes(option.value) - : filters[filterKey] === option.value - } - onChange={(e) => - onCheckboxChange && - onCheckboxChange(filterKey, option.value, e.target.checked) - } - value={option.value} - /> - - {option.Icon && <option.Icon width="20px" height="20px" />} - - <Typography fontFamily={styleProps.fontFamily}>{option.label}</Typography> - </Stack> - <Stack direction="row" alignItems="center" gap="0.35rem"> - {option.totalCount !== undefined && `(${option.totalCount || 0})`} - {option.description && ( - <InfoTooltip variant="standard" helpText={option.description} /> - )} - </Stack> - </Stack> - ))} - </List> - )} - </Collapse> - </> - ); -}; - -export default FilterSection; diff --git a/src/custom/CatalogFilterSection/index.tsx b/src/custom/CatalogFilterSection/index.tsx deleted file mode 100644 index 5fb7338c4..000000000 --- a/src/custom/CatalogFilterSection/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import CatalogFilterSidebar, { FilterListType } from './CatalogFilterSidebar'; - -export { CatalogFilterSidebar }; -export type { FilterListType }; diff --git a/src/custom/CatalogFilterSection/style.tsx b/src/custom/CatalogFilterSection/style.tsx deleted file mode 100644 index e794d68e3..000000000 --- a/src/custom/CatalogFilterSection/style.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { styled } from '@mui/material/styles'; -import { Box, Button, ListItemButton } from '../../base'; -import { darkModalGradient, lightModalGradient } from '../../theme/colors/colors'; -import { StyleProps } from './CatalogFilterSidebar'; - -export const FiltersCardDiv = styled(Box)<{ styleProps: StyleProps }>(({ styleProps }) => ({ - padding: '1rem', - borderRadius: '1rem', - width: '100%', - gap: '0.5rem', - boxShadow: '0px 2px 10px rgba(0, 0, 0, 0.2)', - display: 'flex', - flexDirection: 'column', - height: 'fit-content', - backgroundColor: styleProps.backgroundColor, - ['@media (max-width:900px)']: { - display: 'none' - }, - fontFamily: styleProps.fontFamily, - '&::-webkit-scrollbar': { - width: '6px' - } -})); - -export const FilterDrawerDiv = styled('div')(() => ({ - display: 'none', - ['@media (max-width:899px)']: { - display: 'block' - } -})); - -export const LabelDiv = styled('div')(() => ({ - display: 'flex', - justifyContent: 'space-around', - alignItems: 'center' -})); - -export const FilterButton = styled(Button)(({ theme }) => ({ - backgroundColor: theme.palette.primary.brand?.default, - '&:hover': { - backgroundColor: theme.palette.background.default - }, - height: '3.75rem', - ['@media (max-width:450px)']: { - minWidth: '0px' - } -})); - -export const FiltersDrawerHeader = styled(Box)(({ theme }) => ({ - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - padding: '0.5rem 1rem', - background: theme.palette.mode === 'light' ? lightModalGradient.header : darkModalGradient.header, - height: '10vh' -})); - -export const CheckBoxButton = styled(ListItemButton)(({ theme }) => ({ - padding: '0.25rem 2rem', - borderBottom: '1px solid', - borderBottomColor: theme.palette.text.disabled -})); - -export const FilterTitleButton = styled(ListItemButton)(({ theme }) => ({ - backgroundColor: theme.palette.background.surfaces, - borderRadius: '0.5rem', - marginTop: 2, - display: 'flex', - justifyContent: 'space-between' -})); - -export const EndAdornmentText = styled('p')(({ theme }) => ({ - color: theme.palette.text.tertiary -})); - -export const FilterText = styled('span')(() => ({ - marginLeft: '0.5rem', - display: 'block', - '@media (max-width: 853px)': { - display: 'none' - } -})); diff --git a/src/custom/ChapterCard/ChapterCard.tsx b/src/custom/ChapterCard/ChapterCard.tsx deleted file mode 100644 index d519bdd33..000000000 --- a/src/custom/ChapterCard/ChapterCard.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; -import { ChapterCardWrapper, ChapterContent, ChapterDescription, ChapterNumber } from './style'; - -interface Chapter { - frontmatter: { - chapterTitle?: string; - courseTitle: string; - description: string; - }; -} - -interface Props { - chapterNum: number; - chapter: Chapter; -} - -const ChapterCard: React.FC<Props> = ({ chapterNum, chapter }) => ( - <ChapterCardWrapper> - <ChapterContent> - <ChapterNumber>{chapterNum}</ChapterNumber> - <ChapterDescription> - <h3> - {chapter.frontmatter.chapterTitle - ? chapter.frontmatter.chapterTitle - : chapter.frontmatter.courseTitle} - </h3> - <p>{chapter.frontmatter.description}</p> - </ChapterDescription> - </ChapterContent> - </ChapterCardWrapper> -); - -export default ChapterCard; diff --git a/src/custom/ChapterCard/index.tsx b/src/custom/ChapterCard/index.tsx deleted file mode 100644 index c0f4d7265..000000000 --- a/src/custom/ChapterCard/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import ChapterCard from './ChapterCard'; - -export { ChapterCard }; diff --git a/src/custom/ChapterCard/style.tsx b/src/custom/ChapterCard/style.tsx deleted file mode 100644 index 21ca4394f..000000000 --- a/src/custom/ChapterCard/style.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { styled } from '@mui/material'; -import { ALABASTER_WHITE, MIDNIGHT_BLACK } from '../../theme'; - -// Styled component for ChapterCardWrapper -export const ChapterCardWrapper = styled('div')(({ theme }) => ({ - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)', - padding: '1rem 1.25rem', - width: '100%', - backgroundColor: theme.palette.mode === 'light' ? ALABASTER_WHITE : MIDNIGHT_BLACK, - display: 'flex', - border: `1px solid ${ - theme.palette.mode === 'light' ? 'rgb(0 0 0 / 0.01)' : 'rgb(255 255 255 / 0.03)' - }`, - justifyContent: 'space-between', - '&:hover': { - border: `1px solid ${theme.palette.background.brand?.default}`, - transition: - 'background 150ms ease-out 0s, border 150ms ease-out 0s, transform 150ms ease-out 0s', - transform: 'translate3d(0px, -3px, 0px)', - boxShadow: 'rgba(0, 0, 0, 0.08) 0px 3px 10px 0px' - } -})); - -// Functional component for ChapterContent -export const ChapterContent = styled('div')({ - display: 'inline-flex' -}); - -// Functional component for ChapterNumber -export const ChapterNumber = styled('div')(({ theme }) => ({ - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)', - fontSize: '2rem', - margin: '0 2rem 0 1rem', - color: theme.palette.mode === 'light' ? 'rgb(0 0 0 / 0.6)' : 'rgb(255 255 255 / 0.6)', - alignSelf: 'center' -})); -export const ChapterDescription = styled('div')({ - h3: { - margin: '0.25rem 0' - }, - p: { - margin: '0.35rem 0', - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)', - color: 'inherit' - }, - '@media screen and (max-width: 650px)': { - p: { - whiteSpace: 'normal', - overflow: 'hidden', - textOverflow: 'ellipsis' - } - } -}); diff --git a/src/custom/ChartDialog/ChartDialog.tsx b/src/custom/ChartDialog/ChartDialog.tsx deleted file mode 100644 index 6fe817af9..000000000 --- a/src/custom/ChartDialog/ChartDialog.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react'; -import { Dialog } from '../../base'; -import { DialogActions } from '../../base/DialogActions'; -import { DialogContent } from '../../base/DialogContent'; -import { DialogContentText } from '../../base/DialogContentText'; -import { StyledDialogTitle } from '../Dialog'; - -interface ChartDialogProps { - open: boolean; - content: React.ReactNode; - title: string; - actions?: React.ReactNode; - onClose: () => void; -} - -function StyledChartDialog({ - open, - content, - title, - actions, - onClose -}: ChartDialogProps): JSX.Element { - return ( - <Dialog open={open} onClose={onClose}> - <StyledDialogTitle>{title}</StyledDialogTitle> - <DialogContent> - <DialogContentText>{content}</DialogContentText> - </DialogContent> - <DialogActions>{actions}</DialogActions> - </Dialog> - ); -} - -export default StyledChartDialog; diff --git a/src/custom/ChartDialog/index.tsx b/src/custom/ChartDialog/index.tsx deleted file mode 100644 index 1c37d411a..000000000 --- a/src/custom/ChartDialog/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import StyledChartDialog from './ChartDialog'; - -export { StyledChartDialog }; diff --git a/src/custom/CollaboratorAvatarGroup/CollaboratorAvatarGroup.tsx b/src/custom/CollaboratorAvatarGroup/CollaboratorAvatarGroup.tsx deleted file mode 100644 index 291781f3f..000000000 --- a/src/custom/CollaboratorAvatarGroup/CollaboratorAvatarGroup.tsx +++ /dev/null @@ -1,209 +0,0 @@ -import { ExpandMore } from '@mui/icons-material'; -import { MouseEvent, useState } from 'react'; -import { Avatar, AvatarGroup, Popover, Typography } from '../../base'; -import { iconSmall } from '../../constants/iconsSizes'; -import { styled, useTheme } from '../../theme'; -import { DARK_TEAL_BLUE } from '../../theme/colors/colors'; -import { CustomTooltip } from '../CustomTooltip'; - -/** - * CollaboratorAvatarGroup is a component that displays a group of user avatars with a popup for additional users. - * - * @component - * @example - * ```tsx - * const users = { - * 'client1': { - * name: 'John Doe', - * avatar_url: 'https://example.com/avatar1.jpg', - * border_color: '#00B39F', - * user_id: 'user123' - * } - * }; - * - * <CollaboratorAvatarGroup - * users={users} - * providerUrl="https://redirect.com" - * /> - * ``` - */ - -/** - * User object structure representing a collaborator - * @interface User - * @property {string} name - Display name of the user - * @property {string} avatar_url - URL to the user's avatar image - * @property {string} border_color - Color code for the avatar border (e.g., '#00B39F') - * @property {string} user_id - Unique identifier for the user - */ -interface User { - name: string; - avatar_url: string; - border_color: string; - user_id: string; -} - -/** - * Collection of users mapped by their client IDs - * @interface Users - * @property {User} [clientID] - User object mapped to their client ID - */ -interface Users { - [clientID: string]: User; -} - -/** - * Props for the CollaboratorAvatarGroup component - * @interface CollaboratorAvatarGroupProps - * @property {Users} users - Object containing user information mapped by client IDs - * @property {string} providerUrl - Base URL of the provider (e.g., 'https://github.com') - */ -interface CollaboratorAvatarGroupProps { - users: Users; - providerUrl: string; -} - -interface StyledAvatarProps { - borderColor: string; -} -const StyledAvatar = styled(Avatar)<StyledAvatarProps>(({ theme, borderColor }) => { - return { - width: theme.spacing(4), - height: theme.spacing(4), - cursor: 'pointer', - border: `1.5px solid ${borderColor || theme.palette.common.white} !important` - }; -}); - -const MoreAvatarButton = styled('div')(({ theme }) => ({ - width: theme.spacing(4.5), - height: theme.spacing(4.5), - border: `1.5px solid ${theme.palette.common.white}`, - borderRadius: '50%', - background: DARK_TEAL_BLUE, - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - marginLeft: '-10px', - zIndex: 0, - '&:hover': { - cursor: 'pointer' - } -})); - -const PopupAvatarWrapper = styled('div')({ - display: 'flex', - alignItems: 'center', - padding: '5px 15px 5px 10px', - '&:hover': { - cursor: 'pointer', - background: '#cecece80 !important' - } -}); - -const UserName = styled(Typography)({ - marginLeft: '10px' -}); - -const StyledPopover = styled(Popover)(() => ({ - '& .MuiPopover-paper': { - marginTop: '10px', - maxHeight: '331px' - } -})); - -const CollaboratorAvatarGroup = ({ - users, - providerUrl -}: CollaboratorAvatarGroupProps): JSX.Element => { - const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null); - - const openInNewTab = (url: string): void => { - window.open(url, '_blank', 'noreferrer'); - }; - - const handleClick = (event: MouseEvent<HTMLDivElement>): void => { - setAnchorEl(event.currentTarget); - }; - - const handleClose = (): void => { - setAnchorEl(null); - }; - - const totalUsers = Object.entries(users).length; - const visibleAvatars = 4; - const theme = useTheme(); - return ( - <AvatarGroup max={visibleAvatars + 1}> - {Object.entries(users) - .slice(0, visibleAvatars) - .map(([clientID, user]) => { - return ( - <CustomTooltip key={clientID} title={user.name} arrow> - <StyledAvatar - key={clientID} - alt={user.name} - src={user.avatar_url} - borderColor={user.border_color} - imgProps={{ referrerPolicy: 'no-referrer' }} - onClick={() => openInNewTab(`${providerUrl}/user/${user.user_id}`)} - /> - </CustomTooltip> - ); - })} - {totalUsers > visibleAvatars && ( - <> - <MoreAvatarButton onClick={handleClick} aria-describedby="user-popover"> - {anchorEl ? ( - <ExpandMore - fill={theme.palette.common.white} - {...iconSmall} - style={{ marginLeft: '4px' }} - /> - ) : ( - <Typography - variant="body2" - style={{ color: theme.palette.common.white, fontSize: '12px' }} - > - {`+${totalUsers - visibleAvatars}`} - </Typography> - )} - </MoreAvatarButton> - <StyledPopover - id="user-popover" - open={Boolean(anchorEl)} - anchorEl={anchorEl} - onClose={handleClose} - anchorOrigin={{ - vertical: 'bottom', - horizontal: 'left' - }} - transformOrigin={{ - vertical: 'top', - horizontal: 'left' - }} - > - {Object.entries(users) - .slice(visibleAvatars, totalUsers) - .map(([clientID, user]) => ( - <PopupAvatarWrapper - key={clientID} - onClick={() => openInNewTab(`${providerUrl}/user/${user.user_id}`)} - > - <StyledAvatar - alt={user.name} - src={user.avatar_url} - borderColor={user.border_color} - imgProps={{ referrerPolicy: 'no-referrer' }} - /> - <UserName variant="body1">{user.name}</UserName> - </PopupAvatarWrapper> - ))} - </StyledPopover> - </> - )} - </AvatarGroup> - ); -}; - -export default CollaboratorAvatarGroup; diff --git a/src/custom/CollaboratorAvatarGroup/index.tsx b/src/custom/CollaboratorAvatarGroup/index.tsx deleted file mode 100644 index 51a03ec96..000000000 --- a/src/custom/CollaboratorAvatarGroup/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import CollaboratorAvatarGroup from './CollaboratorAvatarGroup'; - -export { CollaboratorAvatarGroup }; diff --git a/src/custom/ConnectionChip/ConnectionChip.tsx b/src/custom/ConnectionChip/ConnectionChip.tsx deleted file mode 100644 index c51b8dc9b..000000000 --- a/src/custom/ConnectionChip/ConnectionChip.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { ChipProps, TooltipProps } from '@mui/material'; -import React from 'react'; -import { Chip } from '../../base/Chip'; -import { CustomTooltip } from '../CustomTooltip'; - -export interface ConnectionChipProps { - tooltip: string; - tooltipPlacement?: TooltipProps['placement']; - variant?: ChipProps['variant']; - label: string; - icon?: React.ReactElement; - onClick?: () => void; - onDelete?: () => void; - style?: React.CSSProperties; -} - -function ConnectionChip({ - tooltip, - tooltipPlacement = 'top', - variant = 'filled', - label, - icon, - onClick, - onDelete, - style, - ...rest -}: ConnectionChipProps): JSX.Element { - return ( - <CustomTooltip title={tooltip} placement={tooltipPlacement}> - <Chip - sx={{ - paddingY: '10px', - padding: '5px 6px !important', - color: 'black', - fontSize: '14px', - textTransform: 'uppercase', - fontWeight: 400, - height: 'unset', - borderRadius: '100px', - border: '0.5px solid #51636B', - background: 'white', - maxWidth: '230px' - }} - variant={variant} - label={label} - onClick={onClick} - onDelete={onDelete} - icon={icon} - style={style} - {...rest} - /> - </CustomTooltip> - ); -} - -export default ConnectionChip; diff --git a/src/custom/ConnectionChip/index.tsx b/src/custom/ConnectionChip/index.tsx deleted file mode 100644 index 0060bc371..000000000 --- a/src/custom/ConnectionChip/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import ConnectionChip from './ConnectionChip'; - -export { ConnectionChip }; diff --git a/src/custom/CustomCatalog/CatalogCardDesignLogo.tsx b/src/custom/CustomCatalog/CatalogCardDesignLogo.tsx deleted file mode 100644 index 30e3473f4..000000000 --- a/src/custom/CustomCatalog/CatalogCardDesignLogo.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import React, { useState } from 'react'; -import { Dialog } from '../../base'; -import { DesignIcon, MesheryFilterIcon } from '../../icons'; - -interface CatalogCardDesignLogoProps { - zoomEffect?: boolean; - imgURL?: string[]; - type: { type: string }; - width: string; - height: string; - style?: React.CSSProperties; -} - -const CatalogCardDesignLogo: React.FC<CatalogCardDesignLogoProps> = ({ - zoomEffect = false, - imgURL, - type, - width, - height, - style = {} -}) => { - const [imgError, setImgError] = useState(false); - const [isZoomed, setIsZoomed] = useState(false); - - const handleZoomClick = () => { - if (zoomEffect) { - setIsZoomed(true); - } - }; - - const handleZoomClose = () => { - setIsZoomed(false); - }; - - const SvgComponent: React.FC<{ type: { type: string } }> = ({ type }) => { - return type.type === 'filter' ? ( - <MesheryFilterIcon width={width} height={height} style={style} /> - ) : ( - <DesignIcon width={width} height={height} style={style} /> - ); - }; - - return ( - <> - {imgURL && imgURL.length > 0 ? ( - <div style={{ width: '100%', height: '100%', position: 'relative' }}> - {!imgError ? ( - <> - <img - src={imgURL[0]} - alt="Design SnapShot" - loading="lazy" - onClick={handleZoomClick} - onError={() => setImgError(true)} - style={{ - cursor: 'pointer', - width: '100%', - height: '100%', - objectFit: 'cover' - }} - /> - <Dialog - open={isZoomed} - onClose={handleZoomClose} - style={{ - backgroundColor: 'rgba(0, 0, 0, 0.8)' - }} - PaperProps={{ - style: { - background: 'transparent', - boxShadow: 'none', - overflow: 'hidden', - maxWidth: '60vw' - } - }} - > - <img - src={imgURL[0]} - alt="Zoomed Design SnapShot" - style={{ objectFit: 'contain', maxWidth: '100%', maxHeight: '100%' }} - /> - </Dialog> - </> - ) : ( - <SvgComponent type={type} /> - )} - </div> - ) : ( - <SvgComponent type={type} /> - )} - </> - ); -}; - -export default CatalogCardDesignLogo; diff --git a/src/custom/CustomCatalog/CustomCard.tsx b/src/custom/CustomCatalog/CustomCard.tsx deleted file mode 100644 index 0090ac7cf..000000000 --- a/src/custom/CustomCatalog/CustomCard.tsx +++ /dev/null @@ -1,332 +0,0 @@ -import CalendarMonthIcon from '@mui/icons-material/CalendarMonth'; -import React, { useEffect, useState } from 'react'; -import { Avatar, Grid2 } from '../../base'; -import { CloneIcon, CommunityClassIcon, OfficialClassIcon, OpenIcon, ShareIcon } from '../../icons'; -import VerificationClassIcon from '../../icons/ContentClassIcons/VerificationClassIcon'; -import DeploymentsIcon from '../../icons/Deployments/DeploymentsIcon'; -import { DownloadIcon } from '../../icons/Download'; -import { DARK_TEAL, styled, useTheme } from '../../theme'; -import { SNOW_WHITE } from '../../theme/colors/colors'; -import { CustomTooltip } from '../CustomTooltip'; -import { getVersion, handleImage } from './Helper'; -import { - CardBack, - CardFront, - DateText, - DateType, - DesignAuthorName, - DesignCard, - DesignDetailsDiv, - DesignInnerCard, - DesignName, - DesignType, - MetricsContainerFront, - MetricsCount, - MetricsDiv, - NoTechnologyText, - ProfileSection, - StyledClassWrapper, - StyledInnerClassWrapper, - TechnologiesSection, - TechnologyText, - VersionDiv, - VersionText -} from './style'; - -export const DesignCardUrl = styled('a')(() => ({ - textDecoration: 'none' -})); - -export interface Pattern { - id: string; - user_id: string; - pattern_file: string; - user: { - first_name: string; - last_name: string; - }; - first_name?: string; - last_name?: string; - avatar_url: string; - name: string; - download_count: number; - clone_count: number; - view_count: number; - deployment_count: number; - share_count: number; - userData?: { - version?: string; - avatarUrl?: string; - userName?: string; - technologies?: string[]; - updatedAt?: string; - }; - catalog_data?: { - content_class?: string; - imageURL?: string[]; - compatibility?: string[]; - published_version?: string; - type?: string; - pattern_info?: string; - pattern_caveats?: string; - }; - visibility: string; - updated_at: Date; - created_at: Date; -} - -type CatalogCardProps = { - pattern: Pattern; - patternType: string; - cardHeight?: string; - cardWidth?: string; - cardStyles?: React.CSSProperties; - avatarUrl?: string; - shouldFlip?: boolean; - cardTechnologies?: boolean; - isDetailed?: boolean; - UserName?: string; - children?: React.ReactNode; // catalogImage - basePath?: string; // path of meshmodel img stored - subBasePath?: string; // path of meshmodel img stored - getHostUrl?: () => string; - onCardClick?: () => void; -}; - -export const ClassToIconMap = { - community: <CommunityClassIcon width="16px" height="12px" />, - official: <OfficialClassIcon width="16px" height="12px" />, - verified: <VerificationClassIcon width="16px" height="12px" /> -}; - -const ClassWrap = ({ catalogClassName }: { catalogClassName: string }) => { - if (!catalogClassName) return <></>; - - return ( - <StyledClassWrapper> - <StyledInnerClassWrapper catalogClassName={catalogClassName}> - {catalogClassName} - </StyledInnerClassWrapper> - </StyledClassWrapper> - ); -}; - -const CustomCatalogCard: React.FC<CatalogCardProps> = ({ - pattern, - patternType, - cardHeight = '16.5rem', - cardWidth = '15rem', - cardStyles, - shouldFlip = true, - isDetailed = true, - cardTechnologies = true, - avatarUrl, - UserName, - children, - basePath, - subBasePath, - getHostUrl, - onCardClick -}) => { - const outerStyles = { - height: cardHeight, - width: cardWidth, - ...cardStyles - }; - const theme = useTheme(); - - const technologies = pattern.catalog_data?.compatibility || []; - const techlimit = 5; - const [availableTechnologies, setAvailableTechnologies] = useState<string[]>([]); - const version = getVersion(pattern); - - useEffect(() => { - handleImage({ - technologies, - basePath, - subBasePath, - setAvailableTechnologies - }); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - if (!shouldFlip) { - return ( - <DesignCard shouldFlip={shouldFlip} isDetailed={isDetailed} outerStyles={outerStyles}> - <DesignInnerCard shouldFlip={shouldFlip} className="innerCard"> - <CardFront shouldFlip={shouldFlip} isDetailed={isDetailed}> - {children} - </CardFront> - </DesignInnerCard> - </DesignCard> - ); - } - - return ( - <DesignCard - shouldFlip={shouldFlip} - isDetailed={isDetailed} - outerStyles={outerStyles} - onClick={onCardClick} - > - <DesignInnerCard shouldFlip={shouldFlip} className="innerCard"> - <CardFront shouldFlip={shouldFlip} isDetailed={isDetailed}> - {isDetailed && ( - <> - <ClassWrap catalogClassName={pattern?.catalog_data?.content_class ?? ''} /> - <DesignType>{patternType}</DesignType> - <DesignName hasRibbon={!!pattern?.catalog_data?.content_class}> - {pattern.name} - </DesignName> - </> - )} - <DesignDetailsDiv> - <div - style={{ - background: - theme.palette.mode === 'light' ? 'rgba(231, 239, 243, 0.4)' : 'transparent', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - padding: '0.5rem', - width: '100%', - borderRadius: '0.5rem' - }} - > - {children} - </div> - </DesignDetailsDiv> - {isDetailed && ( - <MetricsContainerFront isDetailed={isDetailed}> - {[ - { Icon: DownloadIcon, count: pattern.download_count }, - { Icon: CloneIcon, count: pattern.clone_count }, - { Icon: OpenIcon, count: pattern.view_count }, - { Icon: DeploymentsIcon, count: pattern.deployment_count }, - { Icon: ShareIcon, count: pattern.share_count } - ].map(({ Icon, count }, index) => ( - <MetricsDiv key={index}> - <Icon - width={18} - height={18} - fill={theme.palette.mode === 'light' ? DARK_TEAL : SNOW_WHITE} - /> - <MetricsCount>{count}</MetricsCount> - </MetricsDiv> - ))} - </MetricsContainerFront> - )} - </CardFront> - {shouldFlip && ( - <CardBack isCatalog={true}> - <ProfileSection> - <Avatar - alt="Design Author" - src={avatarUrl} - sx={{ width: '32px', height: '32px', color: '#293B43' }} - /> - <DesignAuthorName>{UserName}</DesignAuthorName> - </ProfileSection> - - <DesignDetailsDiv style={{ marginTop: '0.7rem', gap: '5px' }}> - {cardTechnologies && ( - <TechnologiesSection> - <TechnologyText>Technologies</TechnologyText> - <Grid2 - container - style={{ gap: '4px', alignItems: 'flex-start', flexWrap: 'nowrap' }} - > - {technologies.length < 1 || availableTechnologies.length < 1 ? ( - <NoTechnologyText>No technologies</NoTechnologyText> - ) : ( - <> - {availableTechnologies.slice(0, techlimit).map((technology, index) => { - const svgPath = - (getHostUrl ? getHostUrl() : '') + - `${basePath}/${technology.toLowerCase()}/${subBasePath}/${technology.toLowerCase()}-color.svg`; - return ( - <Grid2 key={index}> - <CustomTooltip key={index} title={technology.toLowerCase()}> - <img - height="24px" - width="24px" - alt={technology.toLowerCase()} - src={svgPath} - /> - </CustomTooltip> - </Grid2> - ); - })} - {availableTechnologies.length > techlimit && ( - <Grid2 - sx={{ - padding: '0 8px 0 4px', - borderRadius: '16px', - border: '1px solid #C9DBE3', - background: '#E7EFF3', - color: '#3C494E', - fontSize: '14px', - lineHeight: '1.5', - fontWeight: '600' - }} - > - +{availableTechnologies.length - techlimit} - </Grid2> - )} - </> - )} - </Grid2> - </TechnologiesSection> - )} - </DesignDetailsDiv> - - {isDetailed && ( - <DesignDetailsDiv style={{ marginTop: '20px' }}> - <Grid2 container style={{ justifyContent: 'space-between', alignItems: 'center' }}> - <Grid2 - style={{ - width: '100%', - display: 'flex', - alignItems: 'center', - justifyContent: 'space-between' - }} - > - <div - style={{ - display: 'flex', - flexDirection: 'row', - gap: '0.2rem', - alignItems: 'center' - }} - > - <CalendarMonthIcon width={18} height={18} /> - <DateType>Updated At</DateType> - </div> - <DateText> - {' '} - {new Date(pattern.updated_at.toString().slice(0, 10)).toLocaleDateString( - 'en-US', - { - day: 'numeric', - month: 'long', - year: 'numeric' - } - )} - </DateText> - </Grid2> - </Grid2> - </DesignDetailsDiv> - )} - {version && ( - <VersionDiv> - <VersionText>v{version}</VersionText> - </VersionDiv> - )} - </CardBack> - )} - </DesignInnerCard> - </DesignCard> - ); -}; - -export default CustomCatalogCard; diff --git a/src/custom/CustomCatalog/EmptyStateCard.tsx b/src/custom/CustomCatalog/EmptyStateCard.tsx deleted file mode 100644 index 256b193d3..000000000 --- a/src/custom/CustomCatalog/EmptyStateCard.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { FC } from 'react'; -import { EmptyStyleIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { CatalogEmptyStateDiv } from './style'; - -const EmptyStateCard: FC = () => { - const theme = useTheme(); - return ( - <CatalogEmptyStateDiv> - <EmptyStyleIcon fill={theme.palette.text.default} width="100px" height="100px" /> - <h3 style={{ color: theme.palette.text.default }}>No match found</h3> - </CatalogEmptyStateDiv> - ); -}; - -export default EmptyStateCard; diff --git a/src/custom/CustomCatalog/Helper.ts b/src/custom/CustomCatalog/Helper.ts deleted file mode 100644 index 79cd39416..000000000 --- a/src/custom/CustomCatalog/Helper.ts +++ /dev/null @@ -1,89 +0,0 @@ -import jsyaml from 'js-yaml'; -import { Pattern } from './CustomCard'; - -const checkImageUrlValidity = async ( - url: string, - appendHostUrl = true, - getHostUrl?: () => string -): Promise<boolean> => { - return new Promise((resolve) => { - const img = new Image(); - // Only append host if the URL does not start with "http" or "https" - if (appendHostUrl && !url.startsWith('http')) { - img.src = (getHostUrl ? getHostUrl() : '') + url; - } else { - img.src = url; - } - img.onload = () => { - // Check if the image loaded successfully - resolve(true); - }; - - img.onerror = () => { - // Handle the case where the image could not be loaded - resolve(false); - }; - }); -}; - -const getValidSvgPaths = async ( - technologies: string[], - basePath: string, - subBasePath: string -): Promise<string[]> => { - const validSvgPaths: string[] = []; - for (const technology of technologies) { - const svgIconPath = `${basePath}/${technology.toLowerCase()}/${subBasePath}/${technology.toLowerCase()}-color.svg`; - const isSvgPathValid = await checkImageUrlValidity(svgIconPath as string); - if (isSvgPathValid) { - validSvgPaths.push(technology); - } - } - return validSvgPaths; -}; - -// Parses the pattern file content (YAML) and returns the version field. -// If parsing fails or version is missing, returns the default version. -const getWorkingVersionFromPatternFile = (patternFileContent: string) => { - try { - const patternFile = jsyaml.load(patternFileContent); - return patternFile?.version || DEFAULT_DESIGN_VERSION; - } catch (e) { - console.error('Failed to parse pattern file to get version:', e); - return DEFAULT_DESIGN_VERSION; - } -}; - -interface HandleImageProps { - technologies: string[]; - basePath?: string; - subBasePath?: string; - setAvailableTechnologies: (technologies: string[]) => void; -} - -export const handleImage = async ({ - technologies, - basePath = '', - subBasePath = '', - setAvailableTechnologies -}: HandleImageProps) => { - const validSvgPaths = await getValidSvgPaths(technologies, basePath, subBasePath); - setAvailableTechnologies(validSvgPaths); -}; -export const DEFAULT_DESIGN_VERSION = '0.0.0'; - -// Returns the version of a design based on its visibility. -// - For 'published' designs, returns the stable published version. -// - For 'public' or 'private', returns the working version from the pattern file. -// - Defaults to the working version if visibility is unrecognized. -export const getVersion = (design: Pattern) => { - switch (design.visibility) { - case 'published': - return design?.catalog_data?.published_version || DEFAULT_DESIGN_VERSION; - case 'public': - case 'private': - return getWorkingVersionFromPatternFile(design.pattern_file); - default: - return getWorkingVersionFromPatternFile(design.pattern_file); - } -}; diff --git a/src/custom/CustomCatalog/index.tsx b/src/custom/CustomCatalog/index.tsx deleted file mode 100644 index be7c47128..000000000 --- a/src/custom/CustomCatalog/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import CatalogCardDesignLogo from './CatalogCardDesignLogo'; -import CustomCatalogCard from './CustomCard'; -import EmptyStateCard from './EmptyStateCard'; - -export { CatalogCardDesignLogo, CustomCatalogCard, EmptyStateCard }; diff --git a/src/custom/CustomCatalog/style.tsx b/src/custom/CustomCatalog/style.tsx deleted file mode 100644 index 6028a054e..000000000 --- a/src/custom/CustomCatalog/style.tsx +++ /dev/null @@ -1,446 +0,0 @@ -import { styled, Typography } from '@mui/material'; -import { accentGrey, DARK_PRIMARY_COLOR, GRAY97, slateGray, WHITESMOKE } from '../../theme'; -import { charcoal, DARK_TEAL, SNOW_WHITE } from '../../theme/colors/colors'; - -type DesignCardProps = { - outerStyles: React.CSSProperties; - shouldFlip?: boolean; - isDetailed?: boolean; -}; -type DesignCardDivProps = { - shouldFlip?: boolean; - isDetailed?: boolean; -}; -type MetricsProps = { - isDetailed?: boolean; -}; -type CatalogProps = { - isCatalog?: boolean; -}; -type StyledInnerClassWrapperProps = { - catalogClassName: string; -}; -export const StyledClassWrapper = styled('div')(() => ({ - width: '85px', - height: '88px', - overflow: 'hidden', - position: 'absolute', - top: '-3px', - left: '-3px', - zIndex: 10 -})); - -export const TechnologyText = styled('div')(() => ({ - color: '#eee', - fontSize: '0.875rem', - lineHeight: '1.5', - fontWeight: '600', - borderBottom: '1px solid rgba(231, 239, 243, 0.40)' -})); - -export const NoTechnologyText = styled('div')(() => ({ - color: '#eee', - overflow: 'hidden', - fontSize: '14px', - lineHeight: '24px', - fontWeight: '400', - marginTop: '.8rem' -})); - -export const StyledInnerClassWrapper = styled('div')<StyledInnerClassWrapperProps>(({ - catalogClassName, - theme -}) => { - const mapToColor: Record<string, string> = { - community: slateGray.main, - official: theme.palette.background.cta?.default || '#EBC017', - verified: theme.palette.background.brand?.default || '#00B39F' - }; - return { - font: 'bold 10px sans-serif', - WebkitTransform: 'rotate(-45deg)', - textAlign: 'center', - transform: 'rotate(-45deg)', - position: 'relative', - padding: '4px 0', - top: '15px', - left: '-30px', - width: '120px', - display: 'flex', - flexDirection: 'row', - justifyContent: 'center', - alignItems: 'center', - backgroundColor: mapToColor[catalogClassName], - color: catalogClassName === 'official' ? theme.palette.common.black : theme.palette.common.white - }; -}); - -export const DesignCard = styled('div')<DesignCardProps>( - ({ shouldFlip, isDetailed, outerStyles, theme }) => ({ - position: 'relative', - borderRadius: '1rem', - textAlign: 'center', - transformStyle: 'preserve-3d', - display: 'block', - perspective: '1000px', - transition: 'all .9s ease-out', - ...(shouldFlip && { - '&:hover': { - cursor: 'pointer', - '& .innerCard': { - transform: 'rotateY(180deg)' - } - } - }), - ...(isDetailed && { - [theme.breakpoints.down('lg')]: { - height: '16.75rem' - } - }), - ...outerStyles - }) -); - -export const DesignInnerCard = styled('div')<DesignCardDivProps>(({ shouldFlip, isDetailed }) => ({ - position: 'relative', - width: '100%', - height: '100%', - textAlign: 'center', - transition: 'transform 0.6s', - ...(shouldFlip && { - transformOrigin: '50% 50%', - transformStyle: 'preserve-3d' - }), - ...(isDetailed && { - boxShadow: '0 4px 8px 0 rgba(0,0,0,0.2)', - borderRadius: '0.9375rem' - }) -})); - -export const DesignType = styled('span')(({ theme }) => ({ - position: 'absolute', - top: '0', - right: '0', - minWidth: '3rem', - padding: '0 0.75rem', - fontSize: '0.875rem', - textTransform: 'capitalize', - background: theme.palette.background.brand?.default, - color: theme.palette.background.constant?.white, - borderRadius: '0 1rem 0 2rem', - zIndex: 5 -})); -export const MetricsCount = styled('p')(({ theme }) => ({ - fontSize: '1rem', - textTransform: 'capitalize', - margin: '0rem', - lineHeight: '1.5', - textAlign: 'center', - color: theme.palette.mode === 'light' ? DARK_TEAL : SNOW_WHITE, - fontWeight: '600' -})); -type DesignNameProps = { - hasRibbon?: boolean; -}; - -export const DesignName = styled(Typography)<DesignNameProps>(({ theme, hasRibbon }) => ({ - fontWeight: 'bold', - textTransform: 'capitalize', - color: theme.palette.text.default, - fontSize: '1.125rem', - padding: '0rem 1rem', - position: 'relative', - overflow: 'hidden', - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - textAlign: 'center', - width: '100%', - margin: hasRibbon ? '3.5rem 0 1.59rem 0' : '2rem 0 1.59rem 0', - fontFamily: 'inherit', - ...(hasRibbon && { - paddingLeft: '1.5rem' - }) -})); - -export const MetricsContainerFront = styled('div')<MetricsProps>(({ isDetailed, theme }) => ({ - display: 'flex', - justifyContent: 'space-around', - fontSize: '0.2rem', - color: theme.palette.mode === 'light' ? 'rgba(26, 26, 26, .8)' : theme.palette.text.default, - padding: '0.9rem 0.1rem', - background: theme.palette.mode === 'light' ? '#E7EFF3' : DARK_TEAL, - ...(isDetailed && { - position: 'absolute', - bottom: '0px' - }), - ...(!isDetailed && { - marginTop: '1.2rem' - }), - borderRadius: '0 0 0.9375rem 0.9375rem', - width: '100%' -})); - -export const MetricsDiv = styled('div')(() => ({ - display: 'flex', - alignItems: 'center', - gap: '4px', - fontSize: '0.2rem', - color: 'rgba(26, 26, 26, .8)', - margin: '0rem', - padding: '0.1rem' -})); -export const DesignDetailsDiv = styled('div')(() => ({ - height: 'max-content', - display: 'flex', - marginTop: '-1rem', - flexDirection: 'column', - padding: '0rem 1rem', - justifyContent: 'start', - alignItems: 'start', - ['@media (max-width:1200px)']: { - height: 'max-content' - } -})); - -export const ImageWrapper = styled('div')(({ theme }) => ({ - background: theme.palette.background.surfaces, - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - padding: '0.5rem', - width: '100%', - borderRadius: '0.5rem' -})); - -export const VersionTag = styled('div')(({ theme }) => ({ - display: 'inline-block', - backgroundColor: theme.palette.background.supplementary, - color: theme.palette.text.constant?.white, - borderRadius: '4px', - fontSize: '0.75rem', - fontWeight: 'bold', - margin: '5px 0', - padding: '2px 5px', - maxWidth: 'fit-content' -})); - -export const VersionDiv = styled('div')(({ theme }) => ({ - display: 'flex', - alignItems: 'center', - gap: '4px', - fontSize: '0.75', - color: theme.palette.text.constant?.white, - position: 'absolute', - bottom: '16px', - left: '16px', - borderRadius: '4px', - background: theme.palette.background.supplementary, - justifyContent: 'center' -})); - -export const VersionText = styled('p')(({ theme }) => ({ - fontSize: '0.75rem', - margin: '0', - padding: '0.25rem .5rem', - lineHeight: '1.5', - textTransform: 'lowercase', - fontWeight: '600', - borderRadius: '4.05px', - color: theme.palette.text.constant?.white -})); - -export const FlipCard = styled('div')(() => ({ - perspective: '1000px', - '&:hover .flipper': { - transform: 'rotateY(-180deg)' - } -})); - -export const Flipper = styled('div')(() => ({ - transition: '0.6s', - transformStyle: 'preserve-3d', - position: 'relative' -})); - -export const Face = styled('div')(() => ({ - backfaceVisibility: 'hidden', - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%' -})); - -export const FrontFace = styled(Face)(() => ({ - zIndex: 2, - transform: 'rotateY(0deg)' -})); - -export const BackFace = styled('div')(() => ({ - transform: 'rotateY(-180deg)', - color: '#fff', - display: 'inline-flex', - flexDirection: 'column', - padding: '16px', - height: '100%', - width: '100%', - position: 'relative', - bottom: 0, - left: 0, - backfaceVisibility: 'hidden' -})); - -export const BackFaceContent = styled('div')(({ theme }) => ({ - position: 'absolute', - background: `linear-gradient(to bottom right, black 40%, ${theme.palette.background.brand?.default})`, - width: '100%', - top: 0, - left: 0, - display: 'flex', - flexDirection: 'column', - alignItems: 'left', - padding: '16px', - boxShadow: `2px 2px 3px 0px black`, - borderRadius: '1rem' -})); - -export const ProfileSection = styled('div')({ - height: 'max-content', - display: 'flex', - marginTop: '1.2rem', - flexDirection: 'row', - padding: '0rem 1rem', - justifyContent: 'flex-start', - alignItems: 'center', - ['@media (max-width:1200px)']: { - height: 'max-content' - } -}); - -export const TechnologiesSection = styled('div')(() => ({ - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - width: '100%', - gap: '1rem', - alignItems: 'flex-start', - background: 'rgba(231, 239, 243, 0.40)', - borderRadius: '0.25rem', - padding: '0.5rem 1rem', - alignSelf: 'stretch' -})); - -export const UpdatedSection = styled('div')({ - display: 'flex', - alignItems: 'center', - color: '#fff', - margin: '20px 0' -}); - -export const CardBack = styled('div')<CatalogProps>(({ isCatalog }) => ({ - boxShadow: `2px 2px 3px 0px rgba(26, 26, 26, 1)`, - position: 'absolute', - width: '100%', - height: '100%', - WebkitBackfaceVisibility: 'hidden', - borderRadius: '0.9375rem', - backfaceVisibility: 'hidden', - color: 'white', - transform: 'rotateY(180deg)', - ...(isCatalog && { - background: - 'linear-gradient(335deg, rgba(0, 179, 159, 0.80) -13.6%, rgba(0, 0, 0, 0.68) 66.8%), radial-gradient(3970.04% 147.22% at 47.5% 100%, #000 0%, #395357 100%)' - }), - ...(!isCatalog && { - background: 'linear-gradient(250deg, #477e96 0%, #00b39f 35%, rgb(60, 73, 79) 100%)' - }) -})); - -export const getCatalogCardBackground = (isLightMode: boolean) => { - const lightGradient = `linear-gradient(to left bottom, ${WHITESMOKE}, ${GRAY97},white, white, white, white, white, white, white, white, ${WHITESMOKE}, ${GRAY97})`; - const darkGradient = `linear-gradient(to right top, ${DARK_PRIMARY_COLOR}, ${accentGrey[30]}, ${accentGrey[20]}, ${accentGrey[10]}, ${accentGrey[10]}, ${accentGrey[10]}, ${accentGrey[10]}, ${accentGrey[10]}, ${accentGrey[10]}, ${charcoal[20]}, ${charcoal[10]}, black)`; - - return isLightMode ? lightGradient : darkGradient; -}; - -export const CardFront = styled('div')<DesignCardDivProps>(({ shouldFlip, isDetailed, theme }) => { - const isLightMode = theme.palette.mode === 'light'; - const background = getCatalogCardBackground(isLightMode); - const boxShadow = `2px 2px 3px 0px ${theme.palette.background.brand?.default}`; - - return { - position: 'relative', - zIndex: 1, - ...(shouldFlip && { - position: 'absolute', - boxShadow, - background - }), - ...(isDetailed && { - boxShadow, - background - }), - width: '100%', - height: '100%', - WebkitBackfaceVisibility: 'hidden', - borderRadius: '0.9375rem', - backfaceVisibility: 'hidden' - }; -}); - -export const DateText = styled('div')(() => ({ - fontSize: '0.875rem', - textTransform: 'capitalize', - color: '#eee', - margin: '0rem', - padding: '0.1rem', - fontWeight: '400', - lineHeight: '1.5' -})); - -export const DateType = styled('p')(() => ({ - fontSize: '0.876rem', - margin: '0rem', - lineHeight: '1.5', - fontWeight: '400', - color: '#eee' -})); - -export const DesignAuthorName = styled('div')(() => ({ - height: 'max-content', - display: 'flex', - margin: '0', - flexDirection: 'column', - padding: '0rem 1rem', - justifyContent: 'start', - alignItems: 'start', - fontWeight: '400', - textAlign: 'right', - color: '#E7EFF3', - textTransform: 'capitalize', - ['@media (max-width:1200px)']: { - height: 'max-content' - } -})); - -export const CatalogEmptyStateDiv = styled('div')(({ theme }) => { - const isLightMode = theme.palette.mode === 'light'; - const background = getCatalogCardBackground(isLightMode); - const boxShadow = `2px 2px 3px 0px ${theme.palette.background.brand?.default}`; - - return { - background: background, - boxShadow: boxShadow, - textAlign: 'center', - borderRadius: '1rem', - width: '15rem', - height: '18rem', - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center', - [theme.breakpoints.down('lg')]: { - height: '18.75rem' - } - }; -}); diff --git a/src/custom/CustomColumnVisibilityControl/CustomColumnVisibilityControl.tsx b/src/custom/CustomColumnVisibilityControl/CustomColumnVisibilityControl.tsx deleted file mode 100644 index 9065643ff..000000000 --- a/src/custom/CustomColumnVisibilityControl/CustomColumnVisibilityControl.tsx +++ /dev/null @@ -1,131 +0,0 @@ -import { MUIDataTableColumn } from 'mui-datatables'; -import React from 'react'; -import { Box } from '../../base/Box'; -import { Card } from '../../base/Card'; -import { Checkbox } from '../../base/Checkbox'; -import { ClickAwayListener } from '../../base/ClickAwayListener'; -import { FormControlLabel } from '../../base/FormControlLabel'; -import { ColumnIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import PopperListener from '../PopperListener'; -import { TooltipIcon } from '../TooltipIconButton'; - -export interface CustomColumnVisibilityControlProps { - columns: MUIDataTableColumn[]; - customToolsProps: { - columnVisibility: Record<string, boolean>; - setColumnVisibility: React.Dispatch<React.SetStateAction<Record<string, boolean>>>; - }; - style?: React.CSSProperties; - id: string; -} - -export interface CustomColumn { - name: string; - label: string; -} - -export function CustomColumnVisibilityControl({ - columns, - id, - customToolsProps, - style -}: CustomColumnVisibilityControlProps): JSX.Element { - const [open, setOpen] = React.useState(false); - const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null); - const theme = useTheme(); - - const handleOpen = (event: React.MouseEvent<HTMLElement>) => { - event.stopPropagation(); - setOpen((prev) => !prev); - if (anchorEl) { - setAnchorEl(null); - return; - } - setAnchorEl(event.currentTarget); - }; - - const handleClose = () => { - setAnchorEl(null); - setOpen(false); - }; - - const handleColumnVisibilityChange = ( - e: React.ChangeEvent<HTMLInputElement>, - columnName: string - ) => { - e.stopPropagation(); - customToolsProps.setColumnVisibility((prevState) => ({ - ...prevState, - [columnName]: e.target.checked - })); - }; - - return ( - <React.Fragment> - <div id={id}> - <TooltipIcon - title="View Columns" - onClick={handleOpen} - icon={<ColumnIcon fill={theme.palette.icon.default} />} - arrow - /> - <PopperListener - style={{ ...style, zIndex: 1350 }} - open={Boolean(anchorEl)} - anchorEl={anchorEl} - placement="bottom-end" - modifiers={[ - { - name: 'flip', - options: { - enabled: false - } - }, - { - name: 'preventOverflow', - options: { - enabled: true, - boundariesElement: 'scrollParent' - } - } - ]} - // transition - > - <Box> - <ClickAwayListener onClickAway={handleClose}> - <div> - <Card - sx={{ - display: 'flex', - flexDirection: 'column', - padding: '1rem', - boxShadow: open ? '0px 4px 8px rgba(0, 0, 0, 0.2)' : 'none', - background: theme.palette.background.surfaces - }} - > - {columns.map((col) => ( - <FormControlLabel - key={col.name} - control={ - <Checkbox - checked={customToolsProps.columnVisibility[col.name]} - onChange={(e: React.ChangeEvent<HTMLInputElement>) => - handleColumnVisibilityChange(e, col.name) - } - /> - } - label={col.label} - /> - ))} - </Card> - </div> - </ClickAwayListener> - </Box> - </PopperListener> - </div> - </React.Fragment> - ); -} - -export default CustomColumnVisibilityControl; diff --git a/src/custom/CustomColumnVisibilityControl/index.tsx b/src/custom/CustomColumnVisibilityControl/index.tsx deleted file mode 100644 index 86215e721..000000000 --- a/src/custom/CustomColumnVisibilityControl/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import CustomColumnVisibilityControl from './CustomColumnVisibilityControl'; - -export { CustomColumnVisibilityControl }; diff --git a/src/custom/CustomImage/CustomImage.tsx b/src/custom/CustomImage/CustomImage.tsx deleted file mode 100644 index d31009100..000000000 --- a/src/custom/CustomImage/CustomImage.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import React, { useState } from 'react'; -import { Dialog } from '../../base'; -import { styled } from '../../theme'; - -interface ImageComponentProps { - src: string; - alt?: string; - width?: number | string; - height?: number | string; - loading?: undefined | 'eager' | 'lazy'; - decoding?: 'sync' | 'async' | 'auto'; - crossOrigin?: 'anonymous' | 'use-credentials' | ''; - sizes?: string; - srcSet?: string; - className?: string; - style?: React.CSSProperties; - caption?: string; - align?: 'left' | 'center' | 'right'; - onClick?: (event: React.MouseEvent<HTMLImageElement, MouseEvent>) => void; -} -interface AlignProps { - align: 'left' | 'center' | 'right'; -} -const Figure = styled('figure')<AlignProps>(({ align }) => ({ - margin: '1rem 0', - textAlign: align, - width: '100%' -})); -const FigCaption = styled('figcaption')<AlignProps>(({ align }) => ({ - fontSize: '0.9rem', - color: '#666', - marginTop: '0.5rem', - textAlign: align -})); - -const CustomImage: React.FC<ImageComponentProps> = ({ - src, - alt, - caption, - align = 'left', - ...props -}) => { - const [isZoomed, setIsZoomed] = useState(false); - const handleZoomClick = () => { - setIsZoomed(true); - }; - const handleZoomClose = () => { - setIsZoomed(false); - }; - - return ( - <> - <Figure align={align}> - <img - src={src} - alt={alt || caption || ''} - loading="lazy" - onClick={handleZoomClick} - {...props} - style={{ - cursor: 'pointer', - maxWidth: '100%', - height: 'auto', - boxShadow: 'rgba(149, 157, 165, 0.2) 0px 8px 24px', - borderRadius: '15px', - width: '50%' - }} - /> - {caption && <FigCaption align={align}>{caption}</FigCaption>} - </Figure> - - <Dialog - open={isZoomed} - onClose={handleZoomClose} - style={{ - backgroundColor: 'rgba(0, 0, 0, 0.8)' - }} - PaperProps={{ - style: { - background: 'transparent', - boxShadow: 'none', - overflow: 'auto', - maxWidth: '100%' - } - }} - > - <img - src={src} - alt={alt || caption || ''} - onClick={handleZoomClose} - style={{ - objectFit: 'contain', - maxWidth: '100%', - maxHeight: '100%' - }} - /> - </Dialog> - </> - ); -}; - -export default CustomImage; diff --git a/src/custom/CustomImage/index.tsx b/src/custom/CustomImage/index.tsx deleted file mode 100644 index cb2013654..000000000 --- a/src/custom/CustomImage/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -import CustomImage from './CustomImage'; -export { CustomImage }; diff --git a/src/custom/CustomTooltip/customTooltip.tsx b/src/custom/CustomTooltip/customTooltip.tsx deleted file mode 100644 index bb93a456e..000000000 --- a/src/custom/CustomTooltip/customTooltip.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import _ from 'lodash'; -import React from 'react'; -import { Tooltip, TooltipProps } from '../../base'; -import { WHITE } from '../../theme'; -import { RenderMarkdownTooltip } from '../Markdown'; - -type CustomTooltipProps = { - title: string | React.ReactNode | JSX.Element; - onClick?: (event: React.MouseEvent<HTMLElement>) => void; - children: React.ReactNode; - fontSize?: string; - fontWeight?: number; - variant?: 'standard' | 'small'; - bgColor?: string; - componentsProps?: TooltipProps['componentsProps']; -} & Omit<TooltipProps, 'title' | 'onClick'>; - -function CustomTooltip({ - title, - onClick, - placement, - children, - fontSize, - fontWeight = 400, - variant = 'standard', - bgColor = '#141414', - componentsProps = {}, - ...props -}: CustomTooltipProps): JSX.Element { - return ( - <Tooltip - enterTouchDelay={0} - leaveTouchDelay={2000} - componentsProps={_.merge( - { - tooltip: { - sx: { - background: bgColor, - color: WHITE, - maxWidth: '600px', - fontSize: fontSize || (variant === 'standard' ? '1rem' : '0.75rem'), - fontWeight: { fontWeight }, - borderRadius: '0.5rem', - padding: variant === 'standard' ? '0.9rem' : '0.5rem 0.75rem', - boxShadow: 'rgba(0, 0, 0, 0.6) 0px 4px 10px, rgba(0, 0, 0, 0.5) 0px 2px 4px' - } - }, - popper: { - sx: { - zIndex: 9999999999, - opacity: '1' - } - }, - arrow: { - sx: { - color: bgColor - } - } - }, - componentsProps - )} - title={typeof title === 'string' ? <RenderMarkdownTooltip content={title} /> : title} - placement={placement} - arrow - onClick={onClick} - {...props} - > - {children} - </Tooltip> - ); -} - -export default CustomTooltip; -export type { CustomTooltipProps }; diff --git a/src/custom/CustomTooltip/index.tsx b/src/custom/CustomTooltip/index.tsx deleted file mode 100644 index 8542b31a2..000000000 --- a/src/custom/CustomTooltip/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import CustomTooltip from './customTooltip'; -import InfoTooltip from './infoTooltip'; - -export { CustomTooltip, InfoTooltip }; diff --git a/src/custom/CustomTooltip/infoTooltip.tsx b/src/custom/CustomTooltip/infoTooltip.tsx deleted file mode 100644 index e7376d2c9..000000000 --- a/src/custom/CustomTooltip/infoTooltip.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { iconSmall } from '../../constants/iconsSizes'; -import InfoOutlinedIcon from '../../icons/InfoOutlined/InfoOutlined'; -import CustomTooltip, { CustomTooltipProps } from './customTooltip'; - -type InfoTooltipProps = { - helpText: string | React.ReactNode | JSX.Element; - style?: React.CSSProperties; -} & Omit<CustomTooltipProps, 'title' | 'children'>; - -const InfoTooltip = ({ helpText, style = {}, ...props }: InfoTooltipProps) => { - return ( - <CustomTooltip title={helpText} {...props}> - <div - style={{ - display: 'flex', - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'center', - ...style - }} - > - <InfoOutlinedIcon {...iconSmall} /> - </div> - </CustomTooltip> - ); -}; - -export default InfoTooltip; diff --git a/src/custom/DashboardWidgets/GettingStartedWidget/ActionButtonCard.tsx b/src/custom/DashboardWidgets/GettingStartedWidget/ActionButtonCard.tsx deleted file mode 100644 index f5913d3e4..000000000 --- a/src/custom/DashboardWidgets/GettingStartedWidget/ActionButtonCard.tsx +++ /dev/null @@ -1,207 +0,0 @@ -import { ReactNode } from 'react'; -import { Box, Button, Card, CardActions, CardContent, Typography } from '../../../base'; -import { styled } from '../../../theme'; -import { PrecentageLabel, SliderDiv } from '../styles'; - -interface ActionButtonCardProps { - title: string; - description: ReactNode; - icon: ReactNode; - customComponent?: ReactNode; - href?: string; - target?: string; - onClick?: () => void; - btnTitle: string; - disabled?: boolean; - showProgress?: boolean; - actionButton?: boolean; - maxDescriptionWidth?: string; - completedSteps?: string[]; - totalSteps: number; - playgroundCardBackgroundImgSrc?: string; -} - -const BoxContainer = styled(Card)<{ playgroundCardBackgroundImgSrc?: string }>( - ({ theme, playgroundCardBackgroundImgSrc }) => ({ - backgroundImage: playgroundCardBackgroundImgSrc - ? `url(${playgroundCardBackgroundImgSrc})` - : 'none', - backgroundPosition: 'right bottom', - backgroundSize: 'cover', - backgroundRepeat: 'no-repeat', - height: '100%', - position: 'relative', - backgroundColor: - theme.palette.mode === 'dark' ? theme.palette.background.card : theme.palette.common.white - }) -); - -const StyledCard = styled(Card)(({ theme }) => ({ - height: '100%', - backgroundColor: - theme.palette.mode === 'dark' ? theme.palette.background.card : theme.palette.common.white -})); - -const IconTitleWrapper = styled(Box)({ - display: 'flex', - alignItems: 'center', - gap: '0.5rem' -}); - -const ContentWrapper = styled(Box)({ - display: 'flex', - flexDirection: 'column' -}); - -const DescriptionTypography = styled(Typography)<{ maxWidth?: string }>(({ theme, maxWidth }) => ({ - marginLeft: theme.spacing(1), - marginBottom: theme.spacing(1), - minHeight: '4.5rem', - maxWidth: '100%', - [theme.breakpoints.up('xs')]: { - maxWidth: '100%' - }, - [theme.breakpoints.up('sm')]: { - maxWidth: maxWidth || '100%' - }, - [theme.breakpoints.up('lg')]: { - maxWidth: '100%' - } -})); - -const StandardDescriptionTypography = styled(Typography)({ - marginLeft: 8, - marginBottom: 8, - minHeight: '3rem' -}); - -const ProgressWrapper = styled(Typography)({ - marginLeft: 8, - marginBottom: 8 -}); - -const CustomComponentWrapper = styled(Box)({ - display: 'flex', - marginLeft: 8 -}); - -const ActionButtonCard = ({ - title, - description, - icon, - customComponent, - href, - onClick, - btnTitle, - disabled = false, - showProgress = false, - actionButton = true, - maxDescriptionWidth = '100%', - completedSteps, - totalSteps, - playgroundCardBackgroundImgSrc -}: ActionButtonCardProps) => { - const completed = completedSteps ? completedSteps.length : 0; - - const completedPercentage = (): number => { - return Math.round((100 / totalSteps) * completed); - }; - - const percentage = completedPercentage(); - - if (title === 'CLOUD NATIVE PLAYGROUND') { - return ( - <BoxContainer playgroundCardBackgroundImgSrc={playgroundCardBackgroundImgSrc}> - <CardContent - style={{ - zIndex: 2, - position: 'relative', - display: 'flex', - flexDirection: 'column', - gap: '1rem' - }} - > - <IconTitleWrapper> - {icon} - <Typography variant="h6" fontWeight="700"> - {title} - </Typography> - </IconTitleWrapper> - <ContentWrapper> - <DescriptionTypography maxWidth={maxDescriptionWidth}> - {description} - </DescriptionTypography> - {showProgress && ( - <ProgressWrapper> - <SliderDiv - value={percentage} - size="small" - aria-label="Default" - valueLabelDisplay="auto" - /> - <PrecentageLabel size="small" completedPercentage={percentage}> - {`${percentage}%`} - </PrecentageLabel> - </ProgressWrapper> - )} - <CustomComponentWrapper>{customComponent}</CustomComponentWrapper> - {actionButton && ( - <CardActions> - <Button disabled={disabled} variant="contained" href={href} onClick={onClick}> - {btnTitle} - </Button> - </CardActions> - )} - </ContentWrapper> - </CardContent> - </BoxContainer> - ); - } - - return ( - <StyledCard> - <CardContent - style={{ - zIndex: 2, - position: 'relative', - display: 'flex', - flexDirection: 'column', - gap: '1rem' - }} - > - <IconTitleWrapper> - {icon} - <Typography variant="h6" fontWeight="700" component="div" sx={{ mx: 1 }}> - {typeof title === 'string' ? title?.toUpperCase() : title} - </Typography> - </IconTitleWrapper> - <ContentWrapper> - <StandardDescriptionTypography>{description}</StandardDescriptionTypography> - {showProgress && ( - <ProgressWrapper> - <SliderDiv - value={percentage} - size="small" - aria-label="Default" - valueLabelDisplay="auto" - /> - <PrecentageLabel size="small" completedPercentage={percentage}> - {`${percentage}%`} - </PrecentageLabel> - </ProgressWrapper> - )} - <CustomComponentWrapper>{customComponent}</CustomComponentWrapper> - {actionButton && ( - <CardActions> - <Button disabled={disabled} variant="contained" href={href} onClick={onClick}> - {showProgress ? (percentage === 100 ? 'Revisit' : btnTitle) : btnTitle} - </Button> - </CardActions> - )} - </ContentWrapper> - </CardContent> - </StyledCard> - ); -}; - -export default ActionButtonCard; diff --git a/src/custom/DashboardWidgets/GettingStartedWidget/GetStartedModal.tsx b/src/custom/DashboardWidgets/GettingStartedWidget/GetStartedModal.tsx deleted file mode 100644 index 025ae63f0..000000000 --- a/src/custom/DashboardWidgets/GettingStartedWidget/GetStartedModal.tsx +++ /dev/null @@ -1,318 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { Grid2, SwipeableDrawer } from '@mui/material'; -import { useState } from 'react'; -import { - Backdrop, - CircularProgress, - DialogContent, - DialogTitle, - ListItem, - Typography -} from '../../../base'; - -import { CloseIcon } from '../../../icons'; -import { CheckIcon } from '../../../icons/Check'; -import { styled, useTheme } from '../../../theme'; -import { CustomTooltip } from '../../CustomTooltip'; -import { CloseBtn, ModalStyledHeader } from '../../Modal'; -import { PrecentageLabel, SliderDiv } from '../styles'; -import UserInviteModal from './InviteUserModal'; -import JourneyModal from './JourneyModal'; - -interface LoadingProps { - showModal: boolean; - handleClose: () => void; - style?: React.CSSProperties; -} -export interface JourneyStep { - title: string; - content: React.ReactNode; - image?: string; - videoSrc?: string; - video?: boolean; - embed?: boolean; - previousButton?: boolean; - isFullScreenModeAllowed?: boolean; - actionName?: string; - secondaryActionName?: string; - primaryAction?: () => void; - secondaryAction?: () => void; - roles?: string[]; -} - -export interface StepData { - id: number; - title: string; - subTitle: string; - isDisabled?: boolean; - journey: JourneyStep[]; -} - -export interface ProfileData { - role_names?: string[]; - preferences?: { - remoteProviderPreferences?: { - isKanvasAccessRequest?: boolean; - - getstarted?: number[]; - }; - }; -} - -interface GetStartedModalProps { - open: boolean; - handleClose: () => void; - handleOpen: () => void; - stepsData: StepData[]; - profileData: ProfileData; - useUpdateUserPrefMutation: any; - useGetOrgsQuery: any; - currentOrgId: string; - useGetUserOrgRolesQuery: any; - useHandleUserInviteMutation: any; - useNotificationHandlers: any; - isAssignUserRolesAllowed: boolean; - useLazyGetTeamsQuery: any; - embedDesignPath: string; - isFromMeshery: boolean; -} - -const Loading: React.FC<LoadingProps> = ({ showModal, handleClose, style }) => { - return ( - <Backdrop sx={{ zIndex: '2010' }} open={showModal} onClick={handleClose}> - <CircularProgress color="inherit" style={style} /> - </Backdrop> - ); -}; - -const SwipeableDrawerDiv = styled(SwipeableDrawer)(() => ({ - '& .MuiPaper-root': { - right: 'unset !important', - width: '500px' - }, - '@media(max-width: 500px)': { - '& .MuiPaper-root': { - width: '100%' - } - } -})); - -const DialogHeader = styled(DialogTitle)(() => ({ - padding: 0, - color: 'white', - bottom: '2px' -})); - -const ModalTitle = styled(Typography)(() => ({ - flexGrow: 1, - fontSize: '1.25rem', - textAlign: 'left' -})); - -const CheckboxLabel = styled('div')(() => ({ - display: 'flex', - flexDirection: 'column', - flex: 1 -})); - -interface CheckFieldProps { - isVisit?: boolean; -} - -const CheckField = styled('div')<CheckFieldProps>(({ theme, isVisit }) => ({ - width: '35px', - height: '35px', - borderRadius: '50%', - marginRight: '10px', - backgroundColor: isVisit === true ? theme.palette.background.brand?.default : 'white', - border: - isVisit === true ? `1px solid ${theme.palette.background.brand?.default}` : '1px solid #3C494F', - color: 'white', - display: 'flex', - justifyContent: 'center', - alignItems: 'center' -})); - -const LabelTitle = styled(Typography)(({ theme }) => ({ - margin: 0, - fontWeight: 600, - fontSize: '1.125rem', - lineHeight: '1.75rem', - color: theme.palette.text.default -})); - -const LabelDetail = styled(Typography)(({ theme }) => ({ - margin: 0, - fontWeight: 400, - fontSize: '1rem', - lineHeight: '1.75rem', - color: theme.palette.background.neutral?.pressed -})); - -const GetStartedModal: React.FC<GetStartedModalProps> = ({ - open, - handleClose, - handleOpen, - stepsData, - profileData, - useUpdateUserPrefMutation, - useGetOrgsQuery, - currentOrgId, - useGetUserOrgRolesQuery, - useHandleUserInviteMutation, - useNotificationHandlers, - isAssignUserRolesAllowed, - useLazyGetTeamsQuery, - embedDesignPath, - isFromMeshery -}) => { - const [openModal, setOpenModal] = useState<boolean>(false); - const [clicked, setClicked] = useState<number | undefined>(undefined); - const [inviteModalOpen, setInviteModal] = useState<boolean>(false); - const [loading, setLoading] = useState<boolean>(false); - - const [updatePref] = useUpdateUserPrefMutation(); - - const completedSteps = profileData?.preferences?.remoteProviderPreferences?.getstarted || []; - - const completed = completedSteps ? completedSteps.length : 0; - const totalSteps = stepsData.length; - - const isComplete = (id: number): boolean => - Boolean(completedSteps.find((item: number) => item === id)); - - const handleClick = (id: number): void => { - const completeWelcome = { - ...profileData?.preferences, - remoteProviderPreferences: { - ...profileData?.preferences?.remoteProviderPreferences, - getstarted: isComplete(id) - ? completedSteps.filter((i: number) => i !== id) - : [...completedSteps, id] - } - }; - // different api use for the cloud and meshery - if (isFromMeshery) { - updatePref(completeWelcome); - } else { - updatePref({ - mapObject: completeWelcome - }); - } - if (id === 3) { - setInviteModal(true); - } else { - setOpenModal(true); - setClicked(id); - } - }; - - const completedPercentage = (): number => { - return Math.round((100 / totalSteps) * completed); - }; - - const theme = useTheme(); - const percentage = completedPercentage(); - - return ( - <> - <Loading showModal={loading} handleClose={() => setLoading(false)} /> - <SwipeableDrawerDiv anchor={'bottom'} open={open} onClose={handleClose} onOpen={handleOpen}> - <> - <DialogHeader> - <ModalStyledHeader> - <ModalTitle>Letโs get started</ModalTitle> - <CustomTooltip title="close"> - <CloseBtn onClick={handleClose}> - <CloseIcon width="32" height="32" /> - </CloseBtn> - </CustomTooltip> - </ModalStyledHeader> - </DialogHeader> - <DialogContent - sx={{ pb: 2, overflow: 'hidden', backgroundColor: theme.palette.background.surfaces }} - > - <Typography sx={{ mt: 3, mb: 1 }}> - {completedPercentage() === 100 - ? 'Congratulations ๐ you have all caught up. Itโs time for you to create some designs and share with the world!' - : 'Click each item to know how Meshery works'} - </Typography> - <SliderDiv - value={completedPercentage()} - size="medium" - aria-label="Default" - valueLabelDisplay="auto" - /> - <PrecentageLabel - size="medium" - completedPercentage={percentage} - >{`${completedPercentage()}%`}</PrecentageLabel> - </DialogContent> - <Grid2 sx={{ overflowY: 'auto', backgroundColor: theme.palette.background.surfaces }}> - {stepsData.map((item) => { - return ( - <ListItem - key={item.id} - onClick={() => { - if (!item.isDisabled) { - handleClick(item.id); - handleClose(); - } - }} - sx={{ - cursor: 'pointer', - mb: 0, - width: '100%', - backgroundColor: item.isDisabled - ? `${theme.palette.background.brand?.disabled}` - : `inherit`, - '&:hover': { - backgroundColor: item.isDisabled - ? 'none' - : `${theme.palette.background.hover}` - } - }} - > - <CheckField isVisit={isComplete(item.id)}> - <CheckIcon height="16" width="21" fill={theme.palette.icon.default} /> - </CheckField> - <CheckboxLabel> - <LabelTitle>{item.title}</LabelTitle> - <LabelDetail>{item.subTitle}</LabelDetail> - </CheckboxLabel> - </ListItem> - ); - })} - </Grid2> - </> - </SwipeableDrawerDiv> - <JourneyModal - open={openModal} - handleClose={() => setOpenModal(false)} - handleOpen={handleOpen} - clicked={clicked} - stepsData={stepsData} - profileData={profileData} - useNotificationHandlers={useNotificationHandlers} - embedDesignPath={embedDesignPath} - /> - {inviteModalOpen && ( - <UserInviteModal - open={inviteModalOpen} - setLoading={setLoading} - handleInviteModalClose={() => setInviteModal(false)} - setInviteModal={setInviteModal} - currentOrgId={currentOrgId} - useGetOrgsQuery={useGetOrgsQuery} - useGetUserOrgRolesQuery={useGetUserOrgRolesQuery} - useHandleUserInviteMutation={useHandleUserInviteMutation} - useNotificationHandlers={useNotificationHandlers} - isAssignUserRolesAllowed={isAssignUserRolesAllowed} - useLazyGetTeamsQuery={useLazyGetTeamsQuery} - /> - )} - </> - ); -}; - -export default GetStartedModal; diff --git a/src/custom/DashboardWidgets/GettingStartedWidget/InviteUserModal.tsx b/src/custom/DashboardWidgets/GettingStartedWidget/InviteUserModal.tsx deleted file mode 100644 index 57019fc88..000000000 --- a/src/custom/DashboardWidgets/GettingStartedWidget/InviteUserModal.tsx +++ /dev/null @@ -1,388 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-nocheck - -import { useEffect, useState } from 'react'; -import { - Box, - Chip, - FormControl, - InputLabel, - MenuItem, - OutlinedInput, - Select, - TextField -} from '../../../base'; -import { InviteUserIcon } from '../../../icons'; -import { styled, useTheme } from '../../../theme'; -import { Modal, ModalBody, ModalFooter, PrimaryActionButtons } from '../../Modal'; -import { withDefaultPageArgs } from '../../PerformersSection/PerformersSection'; -import TeamSearchField from './TeamSearchField'; - -const CreateUserInputField = styled(TextField)(() => ({ - width: 'auto' -})); - -const FormControlSelect = styled(FormControl)(() => ({ - width: '100%', - '& .MuiSelect-select': { - padding: '0.8rem 0.6rem', - ['@media (max-width : 899px)']: { - width: '18.5rem' - } - }, - '& .MuiChip-root': { - height: '1.5rem' - } -})); - -const EMAIL_REGEXP = - /^[\w!#$%&'*+\-\\/=?^_`{|}~]+(\.[\w!#$%&'*+\-\\/=?^_`{|}~]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,})$/; - -interface Organization { - id: string; - name: string; -} - -interface Team { - id: string; - name: string; -} - -interface ErrorMessages { - inviteeEmail: string; -} - -interface UserInviteModalProps { - open: boolean; - handleInviteModalClose: () => void; - setLoading: (loading: boolean) => void; - setInviteModal: (open: boolean) => void; - currentOrgId: string; - useGetOrgsQuery: any; - useGetUserOrgRolesQuery: any; - useHandleUserInviteMutation: any; - useNotificationHandlers: () => { - handleSuccess: (message: string) => void; - handleError: (message: string) => void; - }; - isAssignUserRolesAllowed: boolean; - useLazyGetTeamsQuery: any; -} - -export default function UserInviteModal({ - open, - handleInviteModalClose, - setLoading, - setInviteModal, - currentOrgId, - useGetOrgsQuery, - useGetUserOrgRolesQuery, - useHandleUserInviteMutation, - useNotificationHandlers, - isAssignUserRolesAllowed, - useLazyGetTeamsQuery -}: UserInviteModalProps) { - const [inviteeFirstName, setInviteeFirstName] = useState<string>(''); - const [inviteeLastName, setInviteeLastName] = useState<string>(''); - const [roles, setRoles] = useState<string[]>([]); - const [inviteeEmail, setInviteeEmail] = useState<string>(''); - const [orgRoles, setOrgRoles] = useState<string[]>(['user']); - const [teams, setTeams] = useState<Team[]>([]); - const { handleSuccess, handleError } = useNotificationHandlers(); - const [errorMessages, setErrorMessages] = useState<ErrorMessages>({ - inviteeEmail: '' - }); - const theme = useTheme(); - const [availableProviderRoles, setAvailableProviderRoles] = useState<string[]>([]); - const [availableOrgRoles, setAvailableOrgRoles] = useState<string[]>([]); - - const { data } = useGetOrgsQuery(withDefaultPageArgs()); - const orgs = data?.organizations; - const defaultOrgSelection = { id: 'none', name: 'None' }; - const [organization, setOrganization] = useState<Organization>(defaultOrgSelection); - const { data: providerRolesData } = useGetUserOrgRolesQuery({ - orgId: currentOrgId, - all: true, - order: 'role_name asc', - selector: 'provider' - }); - - const { data: organizationRolesData } = useGetUserOrgRolesQuery({ - orgId: currentOrgId, - all: true, - order: 'role_name asc', - selector: 'organization' - }); - const [userInvite] = useHandleUserInviteMutation(); - - useEffect(() => { - if (currentOrgId) { - const providerRoles: string[] = []; - const organizationRoles: string[] = []; - - if (providerRolesData) { - providerRolesData?.roles?.forEach((role: { role_name: string }) => - providerRoles.push(role?.role_name) - ); - setAvailableProviderRoles(providerRoles); - } - - if (organizationRolesData) { - organizationRolesData?.roles?.forEach((role: { role_name: string }) => - organizationRoles.push(role?.role_name) - ); - setAvailableOrgRoles(organizationRoles); - } - } - }, [currentOrgId, providerRolesData, organizationRolesData]); - - function getSelectStyle(ele: string, arr: string[]) { - return { - fontWeight: - arr.indexOf(ele) === -1 - ? theme.typography.fontWeightRegular - : theme.typography.fontWeightMedium - }; - } - - const handleRoleChange = (event: { target: { value: string | string[] } }) => { - let value = event.target.value; - value = typeof value === 'string' ? value.split(',') : value; - setRoles(value); - }; - - const handleOrgRoleChange = (event: { target: { value: string | string[] } }) => { - let value = event.target.value; - value = typeof value === 'string' ? value.split(',') : value; - setOrgRoles(value); - }; - - const handleInviteeEmailChange = (e: React.ChangeEvent<HTMLInputElement>) => { - const text = e.target.value; - setErrorMessages((state) => ({ ...state, inviteeEmail: '' })); - setInviteeEmail(text); - }; - - const handleInviteeFirstNameChange = (e: React.ChangeEvent<HTMLInputElement>) => - setInviteeFirstName(e.target.value); - - const handleInviteeLastNameChange = (e: React.ChangeEvent<HTMLInputElement>) => - setInviteeLastName(e.target.value); - - const handleSubmit = () => { - let isSuccess = true; - if (inviteeEmail.trim().length === 0) { - setErrorMessages((state) => ({ ...state, inviteeEmail: 'Email is Required' })); - isSuccess = false; - } - if (!EMAIL_REGEXP.test(inviteeEmail)) { - setErrorMessages((state) => ({ ...state, inviteeEmail: 'Email is invalid' })); - isSuccess = false; - } - if (isSuccess) handleInvite(); - }; - - const isSendButtonDisabled = !inviteeEmail; - - const handleInvite = async () => { - setLoading(true); - const inviteeName = inviteeFirstName + ' ' + inviteeLastName; - - try { - await userInvite({ - userInvite: { - first_name: inviteeFirstName, - last_name: inviteeLastName, - email: inviteeEmail, - roles: roles, - org_name: organization.name, - org_roles: orgRoles, - teams: teams - }, - orgId: organization.id - }).unwrap(); - - handleSuccess(`Invite send to ${inviteeName.trim() === '' ? inviteeEmail : inviteeName}.`); - } catch (e) { - console.debug('cannot send user invite', e); - handleError(`Invitation to ${inviteeFirstName} ${inviteeLastName} failed.`); - } - setInviteModal(false); - setLoading(false); - setInviteeFirstName(''); - setInviteeLastName(''); - setInviteeEmail(''); - setOrganization(defaultOrgSelection); - setTeams([]); - setRoles([]); - setOrgRoles([]); - }; - - const handleOrgChange = (event: { target: { value: string } }) => { - if (event.target.value === 'none') { - setOrganization(defaultOrgSelection); - return; - } - const selectedOrg = orgs?.find((org: any) => org.id === event.target.value); - if (selectedOrg) setOrganization(selectedOrg); - }; - - let helpText = `Create a new user account and email new user with account setup instructions. Optionally, add the new user to one or more of your organizations and one or more teams.[Learn more about inviting users](https://docs.layer5.io/cloud/identity/users/user-management/).`; - if (isAssignUserRolesAllowed) { - helpText += ` Optionally, assign roles.`; - } - - return ( - <> - {orgs && ( - <Modal - open={open} - closeModal={handleInviteModalClose} - title={'Invite User'} - headerIcon={<InviteUserIcon height="32" width="32" fill={theme.palette.common.white} />} - > - <ModalBody> - <> - <div - style={{ - display: 'flex', - justifyContent: 'space-between', - marginBottom: '1rem' - }} - > - <CreateUserInputField - id="first-name" - label="First Name" - variant="outlined" - value={inviteeFirstName} - onChange={handleInviteeFirstNameChange} - sx={{ width: '48% !important' }} - /> - - <CreateUserInputField - id="last-name" - label="Last Name" - variant="outlined" - value={inviteeLastName} - onChange={handleInviteeLastNameChange} - sx={{ width: '48% !important' }} - /> - </div> - - <CreateUserInputField - id="email" - label="Email" - variant="outlined" - value={inviteeEmail} - onChange={handleInviteeEmailChange} - helperText={errorMessages.inviteeEmail} - error={!!errorMessages.inviteeEmail} - sx={{ width: '100% !important' }} - required={true} - /> - <FormControl fullWidth sx={{ marginTop: '1rem', marginBottom: '1rem' }}> - <InputLabel id="org-select-label">Organization</InputLabel> - <Select - labelId="org-select-label" - id="outlined-org-select" - value={organization} - label="Organization Name" - onChange={handleOrgChange} - renderValue={(org: any) => org?.name} - > - <MenuItem key={defaultOrgSelection?.id} value={defaultOrgSelection?.id}> - {defaultOrgSelection?.name} - </MenuItem> - {orgs.map((org: Organization) => ( - <MenuItem key={org.id} value={org.id}> - {org.name} - </MenuItem> - ))} - </Select> - </FormControl> - - <TeamSearchField - label={'Team(s)'} - teamsData={teams} - setTeamsData={setTeams} - orgID={organization?.id === 'none' ? '' : organization?.id} - disabled={organization.id == 'none'} - useLazyGetTeamsQuery={useLazyGetTeamsQuery} - useNotificationHandlers={useNotificationHandlers} - /> - - <FormControlSelect sx={{ marginTop: '1rem' }} disabled={organization.id == 'none'}> - <InputLabel id="roles">Organization Roles</InputLabel> - <Select - disabled={organization.id == 'none'} - labelId="roles" - id="multiple-checkbox" - multiple - label="Organization Roles" - value={orgRoles} - onChange={handleOrgRoleChange} - input={<OutlinedInput id="select-multiple-chip" label="Roles" />} - renderValue={(selected) => ( - <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5 }}> - {selected.map((value) => ( - <Chip key={value} label={value} /> - ))} - </Box> - )} - > - {availableOrgRoles.map((name) => ( - <MenuItem key={name} value={name} style={getSelectStyle(name, roles)}> - {name} - </MenuItem> - ))} - </Select> - </FormControlSelect> - - {isAssignUserRolesAllowed && ( - <FormControlSelect sx={{ marginTop: '1rem' }}> - <InputLabel id="roles">Provider Roles</InputLabel> - <Select - labelId="roles" - id="multiple-checkbox" - multiple - label="Provider Roles" - value={roles} - onChange={handleRoleChange} - input={<OutlinedInput id="select-multiple-chip" label="Provider Roles" />} - renderValue={(selected) => ( - <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5 }}> - {selected.map((value) => ( - <Chip key={value} label={value} /> - ))} - </Box> - )} - > - {availableProviderRoles.map((name) => ( - <MenuItem key={name} value={name} style={getSelectStyle(name, roles)}> - {name} - </MenuItem> - ))} - </Select> - </FormControlSelect> - )} - </> - </ModalBody> - <ModalFooter helpText={helpText} variant="filled"> - <PrimaryActionButtons - primaryText="Send Invite" - secondaryText="Cancel" - primaryButtonProps={{ - onClick: handleSubmit, - disabled: isSendButtonDisabled - }} - secondaryButtonProps={{ - onClick: handleInviteModalClose - }} - /> - </ModalFooter> - </Modal> - )} - </> - ); -} diff --git a/src/custom/DashboardWidgets/GettingStartedWidget/JourneyModal.tsx b/src/custom/DashboardWidgets/GettingStartedWidget/JourneyModal.tsx deleted file mode 100644 index 777495222..000000000 --- a/src/custom/DashboardWidgets/GettingStartedWidget/JourneyModal.tsx +++ /dev/null @@ -1,180 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -//@ts-ignore -import MesheryDesignEmbedUmd from '@layer5/meshery-design-embed'; -import _ from 'lodash'; -import { useEffect, useState } from 'react'; -import { styled } from '../../../theme'; -import { JourneyStep, ProfileData, StepData } from './GetStartedModal'; -import ReusableModal from './ReusableModal'; - -interface JourneyModalProps { - open: boolean; - handleClose: () => void; - handleOpen: () => void; - clicked?: number; - stepsData: StepData[]; - useNotificationHandlers: () => { - handleInfo: (message: string) => void; - }; - profileData?: ProfileData; - embedDesignPath: string; -} - -const stepperType = { - Previous: 'Previous', - Next: 'Next' -} as const; - -export const ModalImage = styled('img')(() => ({ - display: 'block', - width: '100%', - height: 'auto', - objectFit: 'contain', - paddingBlock: '1rem' -})); - -export const ModalVideo = styled('video')(() => ({ - aspectRatio: '16/9', - paddingBlock: '1rem' -})); - -const JourneyModal: React.FC<JourneyModalProps> = ({ - open, - handleClose, - handleOpen, - clicked, - stepsData, - useNotificationHandlers, - profileData, - embedDesignPath -}) => { - const [currentModal, setCurrentModal] = useState<number>(0); - const [step, setStep] = useState<StepData | null>(null); - const [data, setData] = useState<JourneyStep | null>(null); - const [isAccessRequest, setIsAccessRequest] = useState<boolean>(false); - const { handleInfo } = useNotificationHandlers(); - - const handlePlaygroundRequest = (): void => { - if (isAccessRequest === true) { - handleInfo('Your request for access is queued for review.'); - return; - } - - if (getRolePermission(data?.roles)) { - return; - } - }; - - const getRolePermission = (roles?: string[]): boolean => { - return roles?.some((role) => profileData?.role_names?.includes(role)) ?? false; - }; - - const handleStepper = (type: (typeof stepperType)[keyof typeof stepperType]): void => { - const nextModal = type === stepperType.Next ? currentModal + 1 : currentModal - 1; - if (nextModal === step?.journey.length) { - setCurrentModal(0); - handleClose(); - handleOpen(); - setStep(null); - setData(null); - } else if (step) { - setData(step.journey[nextModal]); - setCurrentModal(nextModal); - } - }; - - const handleAction = (action: () => void): void => { - if (data?.roles) { - if (getRolePermission(data.roles)) { - action(); - } else { - handlePlaygroundRequest(); - } - } else { - action(); - } - handleStepper(stepperType.Next); - }; - - useEffect(() => { - if (clicked !== undefined) { - setStep(stepsData[clicked - 1]); - const nextStep = stepsData[clicked - 1]; - setStep(nextStep); - setData(nextStep.journey[0]); - } - }, [clicked, stepsData]); - - useEffect(() => { - const remoteProviderPref = profileData?.preferences?.remoteProviderPreferences; - const currentRole = remoteProviderPref?.isKanvasAccessRequest - ? remoteProviderPref.isKanvasAccessRequest - : false; - setIsAccessRequest(currentRole); - }, [profileData]); - - return data ? ( - <ReusableModal - open={open} - modalTitle={data.title} - handleClose={handleClose} - cancelButtonText="PREVIOUS" - cancelButton={data.previousButton} - isFullScreenModeAllowed={data.isFullScreenModeAllowed} - onCancel={() => handleStepper(stepperType.Previous)} - secondaryActionButton={data.secondaryActionName ? true : false} - secondaryActionName={_.toUpper(data.secondaryActionName)} - actionName={_.toUpper(data.actionName)} - onAction={ - data.primaryAction - ? () => handleAction(data.primaryAction!) - : () => handleStepper(stepperType.Next) - } - onSecondaryAction={ - data.secondaryAction ? data.secondaryAction : () => handleStepper(stepperType.Next) - } - maxWidth="sm" - > - <> - {data.image !== undefined ? ( - <ModalImage width="100%" alt="Layer5 Cloud" className="modal-img" src={data.image} /> - ) : ( - '' - )} - {data.videoSrc !== undefined ? ( - <ModalVideo src={data.videoSrc} autoPlay className="modal-img" width="100%" /> - ) : ( - '' - )} - {data.video !== undefined ? ( - <iframe - style={{ - aspectRatio: '16/9', - width: '100%' - }} - src="https://www.youtube.com/embed/Do7htKrRzDA?si=5iMQ5a1JUf3qpIiH" - title="YouTube video player" - allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" - allowFullScreen={true} - ></iframe> - ) : ( - '' - )} - {data.embed !== undefined ? ( - <MesheryDesignEmbedUmd - embedId="embedded-design-d429e684-c42a-4c14-816b-b4dddb4b6d40" - embedScriptSrc={embedDesignPath} - style={{ - height: '20rem' - }} - /> - ) : ( - '' - )} - <div style={{ padding: '0 1.5rem' }}>{data.content}</div> - </> - </ReusableModal> - ) : null; -}; - -export default JourneyModal; diff --git a/src/custom/DashboardWidgets/GettingStartedWidget/ReusableModal.tsx b/src/custom/DashboardWidgets/GettingStartedWidget/ReusableModal.tsx deleted file mode 100644 index 176c64aa1..000000000 --- a/src/custom/DashboardWidgets/GettingStartedWidget/ReusableModal.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import { ReactNode } from 'react'; -import { Button } from '../../../base'; -import { styled } from '../../../theme'; -import { - Modal, - ModalBody, - ModalButtonPrimary, - ModalButtonSecondary, - ModalFooter -} from '../../Modal'; - -const CancelButton = styled(Button)(({ theme }) => ({ - borderColor: `${theme.palette.grey[300]} !important`, - color: `${theme.palette.grey[300]} !important`, - width: 'fit-content !important' -})); - -const ActionButtons = styled('div')(() => ({ - display: 'flex', - flex: 'auto', - justifyContent: 'flex-end', - gap: '1rem' -})); - -interface ReusableModalProps { - children: ReactNode; - open: boolean; - isFullScreenModeAllowed?: boolean; - handleClose: () => void; - modalIcon?: ReactNode; - modalTitle?: string; - onAction?: () => void; - onSecondaryAction?: () => void; - actionName?: string; - secondaryActionName?: string; - cancelButton?: boolean; - cancelButtonText?: string; - onCancel?: () => void; - maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; - actionButton?: boolean; - secondaryActionButton?: boolean; -} - -const ReusableModal = ({ - children, - open, - handleClose, - modalIcon, - modalTitle, - onAction, - onSecondaryAction, - actionName, - secondaryActionName, - cancelButton = true, - cancelButtonText, - onCancel, - maxWidth, - actionButton = true, - secondaryActionButton = false -}: ReusableModalProps): JSX.Element => { - return ( - <Modal - closeModal={handleClose} - title={modalTitle || ''} - open={open} - headerIcon={modalIcon} - maxWidth={maxWidth ? maxWidth : 'md'} - > - <ModalBody>{children}</ModalBody> - <ModalFooter variant="filled"> - <> - {cancelButton && ( - <CancelButton variant="outlined" onClick={onCancel}> - {cancelButtonText ? cancelButtonText : 'Cancel'} - </CancelButton> - )} - <ActionButtons> - {secondaryActionButton && ( - <ModalButtonSecondary variant="contained" onClick={onSecondaryAction}> - {secondaryActionName ? secondaryActionName : 'Save'} - </ModalButtonSecondary> - )} - {actionButton && ( - <ModalButtonPrimary variant="contained" onClick={onAction}> - {actionName ? actionName : 'Save'} - </ModalButtonPrimary> - )} - </ActionButtons> - </> - </ModalFooter> - </Modal> - ); -}; - -export default ReusableModal; diff --git a/src/custom/DashboardWidgets/GettingStartedWidget/TeamSearchField.tsx b/src/custom/DashboardWidgets/GettingStartedWidget/TeamSearchField.tsx deleted file mode 100644 index b2954889e..000000000 --- a/src/custom/DashboardWidgets/GettingStartedWidget/TeamSearchField.tsx +++ /dev/null @@ -1,213 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-nocheck -import { Autocomplete, Box, Typography } from '@mui/material'; -import { styled } from '@mui/material/styles'; -import { debounce } from 'lodash'; -import React, { Dispatch, SetStateAction, useEffect, useMemo, useState } from 'react'; -import { Chip, CircularProgress, TextField, Tooltip } from '../../../base'; -import { iconSmall } from '../../../constants/iconsSizes'; -import { CloseIcon } from '../../../icons'; - -interface Team { - id: string; - ID: string; - name: string; - deleted_at: { - Valid: boolean; - }; -} - -interface TeamSearchFieldProps { - teamsData: Team[]; - setTeamsData: Dispatch<SetStateAction<Team[]>>; - label?: string; - orgID: string; - disabled?: boolean; - useLazyGetTeamsQuery: any; - useNotificationHandlers: () => { - handleError: (message: string) => void; - }; -} - -interface TeamListContainerProps { - hasTeams: boolean; -} - -const TeamListContainer = styled(Box)<TeamListContainerProps>(({ theme, hasTeams }) => ({ - display: 'flex', - flexWrap: 'wrap', - gap: theme.spacing(0.5), - marginTop: hasTeams ? theme.spacing(1.7) : 0 -})); - -const ToggleButton = styled(Typography)(({ theme }) => ({ - cursor: 'pointer', - marginLeft: theme.spacing(0.5), - color: theme.palette.text.primary, - fontWeight: 600, - '&:hover': { - color: theme.palette.primary.main - } -})); - -const TeamSearchField: React.FC<TeamSearchFieldProps> = ({ - teamsData, - setTeamsData, - label, - orgID, - disabled = false, - useLazyGetTeamsQuery, - useNotificationHandlers -}) => { - const [error, setError] = useState<boolean>(false); - const [inputValue, setInputValue] = useState<string>(''); - const [options, setOptions] = useState<Team[]>([]); - const [isLoading, setIsLoading] = useState<boolean>(false); - const [showAllTeams, setShowAllTeams] = useState<boolean>(false); - const [getTeams] = useLazyGetTeamsQuery(); - const { handleError } = useNotificationHandlers(); - - const fetchSuggestions = useMemo( - () => - debounce((searchValue: string) => { - if (!orgID) return; - - setIsLoading(true); - getTeams({ orgId: orgID, search: searchValue }, true) - .unwrap() - .then((response: any) => { - setOptions(typeof response === 'string' ? [] : response?.teams); - setIsLoading(false); - }) - .catch((err: any) => { - handleError(err?.message); - setIsLoading(false); - }); - }, 300), - [orgID, getTeams, handleError] - ); - - const handleDelete = (teamId: string): void => { - setTeamsData(teamsData.filter((team) => team.id !== teamId)); - }; - - const handleAdd = (_: string, value: Team): void => { - setTeamsData((prevData: Team[]) => { - const isDuplicate = prevData.some((team) => team.id === value.id); - if (isDuplicate) { - setError(true); - return prevData; - } - setError(false); - return [...prevData, value]; - }); - setInputValue(''); - }; - - const handleInputChange = (_: string, value: string): void => { - if (typeof value === 'string') { - setError(false); - fetchSuggestions(value); - } - }; - - useEffect(() => { - fetchSuggestions(''); - }, [fetchSuggestions, orgID]); - - const toggleShowAllTeams = (): void => { - setShowAllTeams((prev) => !prev); - }; - - return ( - <> - <Autocomplete - disabled={disabled} - disablePortal - id="team-search-field" - sx={{ width: 'auto' }} - disableClearable - loading={isLoading} - value={inputValue} - filterSelectedOptions - noOptionsText={isLoading ? 'Loading...' : 'No team found'} - onChange={handleAdd} - onInputChange={handleInputChange} - options={options} - filterOptions={(x) => x} - getOptionLabel={() => ''} - clearOnBlur - isOptionEqualToValue={(option, value) => option === value} - renderInput={(params) => ( - <TextField - {...params} - label={label || 'Add Team'} - error={error} - helperText={error ? 'Team Already Selected' : ''} - fullWidth - InputProps={{ - ...params.InputProps, - endAdornment: isLoading ? <CircularProgress color="inherit" size={20} /> : null - }} - /> - )} - renderOption={(props, option) => { - if (!option?.deleted_at.Valid) { - return ( - <Box - component="li" - sx={{ '& > img': { mr: 2, flexShrink: 0 } }} - key={option.ID} - {...props} - > - <Typography>{option.name}</Typography> - </Box> - ); - } - return null; - }} - /> - <TeamListContainer hasTeams={teamsData.length > 0}> - {teamsData.length > 0 && ( - <> - {showAllTeams ? ( - <> - {teamsData.map((team) => ( - <Chip - key={team.ID} - label={team.name} - size="small" - onDelete={() => handleDelete(team.id)} - deleteIcon={ - <Tooltip title="Remove Team"> - <CloseIcon style={iconSmall} /> - </Tooltip> - } - /> - ))} - <ToggleButton onClick={toggleShowAllTeams}>Hide</ToggleButton> - </> - ) : ( - <Chip - label={teamsData[teamsData.length - 1].name} - size="small" - onDelete={() => handleDelete(teamsData[teamsData.length - 1].id)} - deleteIcon={ - <Tooltip title="Remove Team"> - <CloseIcon style={iconSmall} /> - </Tooltip> - } - /> - )} - {!showAllTeams && teamsData.length > 1 && ( - <ToggleButton onClick={toggleShowAllTeams}>(+{teamsData.length - 1})</ToggleButton> - )} - </> - )} - </TeamListContainer> - </> - ); -}; - -export default TeamSearchField; diff --git a/src/custom/DashboardWidgets/PlainCard.tsx b/src/custom/DashboardWidgets/PlainCard.tsx deleted file mode 100644 index e641b0100..000000000 --- a/src/custom/DashboardWidgets/PlainCard.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { Box, Card, CardContent, Link, Typography } from '../../base'; -import { OpenInNewIcon } from '../../icons'; -import { styled } from '../../theme'; - -const StyledCard = styled(Card)(({ theme }) => ({ - height: '100%', - backgroundColor: - theme.palette.mode === 'dark' ? theme.palette.background.card : theme.palette.common.white -})); - -const StyledTitleBox = styled(Box)({ - display: 'flex', - alignItems: 'center', - gap: '0.5rem' -}); - -const StyledContentBox = styled(Box)({ - display: 'flex', - flexDirection: 'column' -}); - -const StyledResourceList = styled('ul')({ - paddingLeft: '1rem' -}); - -const ResourceListItem = styled('li')({ - listStyleType: 'none', - display: 'flex', - flexDirection: 'row', - alignItems: 'center' -}); - -const StyledResourceIcon = styled('img')({ - width: '12px', - height: '12px', - marginRight: '.25rem' -}); - -const StyledResourceLink = styled(Link)({ - fontSize: '1rem', - fontWeight: '400', - marginRight: '0.25rem', - textDecoration: 'none' -}); - -interface Resource { - name: string; - link: string; - icon?: string; - external?: boolean; -} - -interface PlainCardProps { - title: string; - icon: React.ReactNode; - resources: Resource[]; -} - -export const PlainCard = ({ title, icon, resources }: PlainCardProps): JSX.Element => { - return ( - <> - <StyledCard> - <CardContent> - <StyledTitleBox> - {icon} - <Typography variant="h6" fontWeight="700"> - {title} - </Typography> - </StyledTitleBox> - <StyledContentBox> - <StyledResourceList> - {resources.map((item) => ( - <ResourceListItem key={item.link}> - {item.icon && ( - <StyledResourceIcon src={item.icon} alt={`Icon for ${item.name}`} /> - )} - <StyledResourceLink - href={item.link} - target={item.external ? '_blank' : '_self'} - rel={item.external ? 'noopener noreferrer' : ''} - > - {item.name} - </StyledResourceLink> - - {item.external && ( - <sup> - <OpenInNewIcon width="12px" height="12px" fill={'white'} /> - </sup> - )} - </ResourceListItem> - ))} - </StyledResourceList> - </StyledContentBox> - </CardContent> - </StyledCard> - </> - ); -}; diff --git a/src/custom/DashboardWidgets/RecentDesignWidget.tsx b/src/custom/DashboardWidgets/RecentDesignWidget.tsx deleted file mode 100644 index ab58dde95..000000000 --- a/src/custom/DashboardWidgets/RecentDesignWidget.tsx +++ /dev/null @@ -1,419 +0,0 @@ -import { KeyboardArrowRight } from '@mui/icons-material'; -import SwapVertIcon from '@mui/icons-material/SwapVert'; -import { styled } from '@mui/material/styles'; -import { useState } from 'react'; -import { - Box, - Button, - Card, - CardActions, - CardContent, - CircularProgress, - IconButton, - Link, - Tooltip, - Typography -} from '../../base'; -import { iconMedium } from '../../constants/iconsSizes'; -import { AddIcon, OpenInNewIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { getFullFormattedTime, getRelativeTime } from '../../utils'; -import { CustomTooltip } from '../CustomTooltip'; -import { Modal, ModalBody } from '../Modal'; - -interface Resource { - link: string; - name: string; - icon?: string; - external?: boolean; - timestamp: string; -} - -interface CardData { - id: string; - title: string; - image: React.ReactNode; - redirect?: string; - video?: string; -} - -type SortOrder = 'updated_at asc' | 'updated_at desc'; - -interface DesignCardProps { - title: string; - isPatternsFetching: boolean; - description?: string; - actionButton?: boolean; - icon?: React.ReactNode; - resources: Resource[]; - href?: string; - onClick?: () => void; - btnTitle?: string; - sortOrder: string; - setSortOrder: (order: SortOrder) => void; - cardData: CardData[]; -} - -const StyledCardContent = styled(CardContent)({ - display: 'flex', - flexDirection: 'column', - gap: '0.5rem' -}); - -const HeaderContainer = styled(Box)({ - display: 'flex', - alignItems: 'center', - justifyContent: 'space-between' -}); - -const TitleContainer = styled('div')({ - display: 'flex', - alignItems: 'center', - gap: '0.5rem' -}); - -const ResourcesList = styled('ul')({ - paddingLeft: '1rem', - margin: '0' -}); - -const ResourceItem = styled('li')({ - listStyleType: 'none', - display: 'flex', - flexDirection: 'row', - alignItems: 'center' -}); - -const ResourceIcon = styled('img')({ - width: '12px', - height: '12px', - marginRight: '.25rem' -}); - -const ResourceLink = styled(Link)({ - fontSize: '1rem', - fontWeight: '400', - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis', - maxWidth: '12rem', - textDecoration: 'none' -}); - -const TimestampText = styled(Typography)({ - marginLeft: 'auto' -}); - -const LoaderContainer = styled(Box)({ - height: '10rem', - display: 'flex', - justifyContent: 'center', - alignItems: 'center' -}); - -const EmptyStateText = styled(Typography)(({ theme }) => ({ - margin: '0.5rem', - color: theme.palette.text.disabled -})); - -const StyledModalBody = styled(ModalBody)({ - display: 'grid', - gap: '1rem', - padding: '2rem' -}); - -const DesignCard: React.FC<DesignCardProps> = ({ - title, - isPatternsFetching, - description, - actionButton, - icon, - resources, - href, - onClick, - btnTitle, - sortOrder, - setSortOrder, - cardData -}) => { - const [createModal, setCreateModal] = useState({ open: false }); - const theme = useTheme(); - - const handleChange = () => { - setSortOrder(sortOrder === 'updated_at desc' ? 'updated_at asc' : 'updated_at desc'); - }; - - const handleCreateModalOpen = async () => { - setCreateModal({ - open: true - }); - }; - - const handleCreateModalClose = () => { - setCreateModal({ - open: false - }); - }; - - return ( - <> - <Card - sx={{ - height: '100%', - backgroundColor: - theme.palette.mode === 'dark' - ? theme.palette.background.card - : theme.palette.common.white - }} - > - <StyledCardContent> - <HeaderContainer> - <TitleContainer> - {icon} - <Typography variant="h6" fontWeight="700"> - {title} - </Typography> - </TitleContainer> - <CatalogSortByToggle sortOrder={sortOrder} handleChange={handleChange} /> - </HeaderContainer> - - {isPatternsFetching ? ( - <LoaderContainer> - <CircularProgress /> - </LoaderContainer> - ) : resources.length === 0 ? ( - <EmptyStateText variant="body1" align="left"> - No designs found - </EmptyStateText> - ) : ( - <Box - sx={{ - display: 'flex', - flexDirection: 'column' - }} - > - {description && ( - <Typography component="div" sx={{ mx: 1 }}> - {description} - </Typography> - )} - <> - <ResourcesList> - {resources.map((item) => ( - <ResourceItem key={item.link}> - {item.icon && ( - <ResourceIcon - src={item.icon} // Use item.icon as the source of the image - alt={`Icon for ${item.name}`} - /> - )} - <ResourceLink href={item.link}>{item.name}</ResourceLink> - - {item.external == true ? ( - <> - <sup> - <OpenInNewIcon - width="12px" - height="12px" - fill={theme.palette.common.white} - /> - </sup> - </> - ) : ( - '' - )} - - <TimestampText component="span"> - <RelativeFormattedDate - style={{ - fontSize: '0.8rem', - fontWeight: '300' - }} - date={item.timestamp} - /> - </TimestampText> - </ResourceItem> - ))} - </ResourcesList> - </> - </Box> - )} - - {actionButton && ( - <CardActions> - <Button - variant="contained" - href={href || undefined} - onClick={onClick || undefined} - size="small" - > - {btnTitle} - </Button> - <Button variant="contained" onClick={handleCreateModalOpen}> - <AddIcon style={iconMedium} fill={'white'} /> - </Button> - </CardActions> - )} - </StyledCardContent> - </Card> - <CreateDesignModal - openModal={createModal.open} - handleClose={handleCreateModalClose} - cardData={cardData} - /> - </> - ); -}; - -export default DesignCard; - -interface CatalogSortByToggleProps { - sortOrder: string; - handleChange: () => void; -} - -const CatalogSortByToggle: React.FC<CatalogSortByToggleProps> = ({ sortOrder, handleChange }) => { - const isAscending = sortOrder === 'updated_at asc'; - - return ( - <CustomTooltip - title={isAscending ? 'Sort by Most Recently Updated' : 'Sort by Least Recently Updated'} - placement="top" - > - <IconButton onClick={handleChange} aria-label="Sort by" size="small"> - <SwapVertIcon - style={{ transform: isAscending ? 'rotate(0deg)' : 'rotate(180deg)' }} - fontSize="small" - /> - </IconButton> - </CustomTooltip> - ); -}; - -interface RelativeFormattedDateProps { - date: string; - style?: React.CSSProperties; -} - -const RelativeFormattedDate: React.FC<RelativeFormattedDateProps> = ({ date, style }) => { - return ( - <Tooltip title={getFullFormattedTime(date)} placement="top"> - <div> - <Typography - style={{ - fontStyle: 'italic', - ...style - }} - > - {getRelativeTime(date)} - </Typography> - </div> - </Tooltip> - ); -}; - -const CardWrapper = styled(Card)(({ theme }) => ({ - display: 'flex', - alignItems: 'center', - boxShadow: 'none', - cursor: 'pointer', - background: theme.palette.text.inverse, - border: `2px solid ${theme.palette.background.secondary}`, - '&:hover': { - background: theme.palette.background.default, - border: `2px solid ${theme.palette.background.brand?.default}` - }, - '@media(max-width: 376px)': { - width: '18rem' - }, - gap: 15, - padding: '0.3rem' -})); - -const ImageWrapper = styled('div')(() => ({ - marginLeft: '20px', - position: 'relative', - '& > img': { - width: '100%', - height: '100%', - objectFit: 'cover' - }, - '& > video': { - width: '100%', - height: '100%', - objectFit: 'cover' - } -})); - -interface BoxContainerProps { - title: string; - image: React.ReactNode; - onClick: () => void; -} - -const BoxContainer: React.FC<BoxContainerProps> = ({ title, image, onClick }) => { - return ( - <> - <div onClick={onClick}> - <CardWrapper> - <ImageWrapper>{image}</ImageWrapper> - <Typography - variant="body1" - align="center" - fontWeight="500" - component="div" - style={{}} - sx={{ mt: 1, mb: 1 }} - > - {title} - </Typography> - <KeyboardArrowRight - sx={{ - position: 'absolute', - right: '40px' - }} - width={24} - /> - </CardWrapper> - </div> - </> - ); -}; - -interface CreateDesignModalProps { - openModal: boolean; - handleClose: () => void; - cardData: CardData[]; -} - -export const CreateDesignModal: React.FC<CreateDesignModalProps> = ({ - openModal, - handleClose, - cardData -}) => { - return ( - <Modal - open={openModal} - title="Choose a method to create a design" - closeModal={handleClose} - maxWidth="xs" - > - <StyledModalBody> - {cardData.map((card) => ( - <BoxContainer - key={card.id} - onClick={() => { - if (card.redirect) { - window.location.href = card.redirect; - } else { - console.error('No redirect URL provided for card with title: ', card.title); - } - }} - title={card.title} - image={card.image} - /> - ))} - </StyledModalBody> - </Modal> - ); -}; diff --git a/src/custom/DashboardWidgets/WorkspaceActivityWidget.tsx b/src/custom/DashboardWidgets/WorkspaceActivityWidget.tsx deleted file mode 100644 index 0f7443f4b..000000000 --- a/src/custom/DashboardWidgets/WorkspaceActivityWidget.tsx +++ /dev/null @@ -1,181 +0,0 @@ -import { SelectChangeEvent } from '@mui/material'; -import { styled } from '@mui/material/styles'; -import moment from 'moment'; -import { - Box, - Button, - Card, - CardActions, - CircularProgress, - List, - ListItem, - ListItemText, - MenuItem, - Select, - Typography -} from '../../base'; -import { iconMedium } from '../../constants/iconsSizes'; -import { WorkspaceIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { CustomTooltip } from '../CustomTooltip'; - -interface Activity { - created_at: string; - description: string; -} - -interface Workspace { - id: string; - name: string; -} - -interface WorkspaceActivityCardProps { - selectedWorkspace: string; - handleWorkspaceChange: (event: SelectChangeEvent<unknown>) => void; - activities: Activity[]; - workspaces: Workspace[]; - isEventsLoading: boolean; - workspacePagePath: string; -} - -const StyledCard = styled(Card)(({ theme }) => ({ - padding: '1rem', - height: '100%', - overflowY: 'auto', - backgroundColor: - theme.palette.mode === 'dark' ? theme.palette.background.card : theme.palette.common.white -})); - -const HeaderBox = styled(Box)({ - display: 'flex', - justifyContent: 'space-between', - marginBottom: '8px' -}); - -const TitleWrapper = styled('div')({ - display: 'flex', - gap: '0.5rem', - alignItems: 'center' -}); - -const StyledSelect = styled(Select)({ - maxWidth: '40%' -}); - -const LoaderBox = styled(Box)({ - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - height: '65%' -}); - -const StyledList = styled(List)({ - display: 'flex', - flexDirection: 'column', - gap: '0.4rem' -}); - -const ActivityWrapper = styled('div')({ - width: 'fit-content' -}); - -const StyledListItem = styled(ListItem)({ - cursor: 'default', - padding: '0' -}); - -const StyledListItemText = styled(ListItemText)({ - margin: 0, - paddingLeft: '0.5rem' -}); - -const EmptyStateTypography = styled(Typography)(({ theme }) => ({ - margin: '0.5rem', - color: theme.palette.background.neutral?.pressed -})); - -const WorkspaceActivityCard: React.FC<WorkspaceActivityCardProps> = ({ - selectedWorkspace, - handleWorkspaceChange, - activities, - workspaces, - isEventsLoading, - workspacePagePath -}) => { - const theme = useTheme(); - - const iconsProps = { - fill: theme.palette.icon?.default, - primaryFill: theme.palette.icon?.default, - secondaryFill: theme.palette.icon.disabled, - opacity: 0.6, - iconMedium - }; - - return ( - <StyledCard> - <HeaderBox> - <TitleWrapper> - <WorkspaceIcon {...iconsProps} /> - <Typography variant="h6" fontWeight="700"> - WORKSPACE ACTIVITY - </Typography> - </TitleWrapper> - - <StyledSelect - value={selectedWorkspace} - onChange={handleWorkspaceChange} - displayEmpty - variant="standard" - size="medium" - > - {workspaces?.map((workspace) => ( - <MenuItem key={workspace.id} value={workspace.id}> - {workspace.name} - </MenuItem> - ))} - </StyledSelect> - </HeaderBox> - {isEventsLoading ? ( - <LoaderBox> - <CircularProgress /> - </LoaderBox> - ) : activities?.length > 0 ? ( - <StyledList> - {activities?.map((activity, index) => ( - <CustomTooltip - key={index} - title={moment(activity.created_at).format('LLLL')} - arrow - placement="right" - > - <ActivityWrapper> - <StyledListItem disableGutters component="div"> - <StyledListItemText - primary={ - <span> - <strong>{moment(activity.created_at).format('MMM D')}:</strong>{' '} - {activity.description} - </span> - } - /> - </StyledListItem> - </ActivityWrapper> - </CustomTooltip> - ))} - </StyledList> - ) : ( - <EmptyStateTypography variant="body1" align="left"> - No activities found for this workspace. - </EmptyStateTypography> - )} - <CardActions> - <Button disabled={false} variant="contained" href={workspacePagePath} size="small"> - All Workspaces - </Button> - </CardActions> - </StyledCard> - ); -}; - -export default WorkspaceActivityCard; diff --git a/src/custom/DashboardWidgets/index.ts b/src/custom/DashboardWidgets/index.ts deleted file mode 100644 index c83aa00b1..000000000 --- a/src/custom/DashboardWidgets/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import ActionButtonCard from './GettingStartedWidget/ActionButtonCard'; -import GetStartedModal from './GettingStartedWidget/GetStartedModal'; -import UserInviteModal from './GettingStartedWidget/InviteUserModal'; -import JourneyModal from './GettingStartedWidget/JourneyModal'; -import TeamSearchField from './GettingStartedWidget/TeamSearchField'; -import { PlainCard } from './PlainCard'; -import DesignCard, { CreateDesignModal } from './RecentDesignWidget'; -import WorkspaceActivityCard from './WorkspaceActivityWidget'; - -export { - ActionButtonCard, - CreateDesignModal, - DesignCard, - GetStartedModal, - JourneyModal, - PlainCard, - TeamSearchField, - UserInviteModal, - WorkspaceActivityCard -}; diff --git a/src/custom/DashboardWidgets/styles.tsx b/src/custom/DashboardWidgets/styles.tsx deleted file mode 100644 index 43712b027..000000000 --- a/src/custom/DashboardWidgets/styles.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { Slider } from '@mui/material'; -import { styled } from '../../theme'; - -export const SliderDiv = styled(Slider)(({ theme, size }) => ({ - margin: '5px 0', - borderRadius: '16px', - color: theme.palette.background.brand?.default, - border: `1px solid ${theme.palette.background.brand?.default} `, - padding: '0 !important', - height: size === 'small' ? '26px' : '30px', - '& .MuiSlider-thumb': { - display: 'none !important' - }, - '& .MuiSlider-track': { - borderWidth: size === 'small' ? '4px !important' : '0 !important' - }, - '& .MuiSlider-rail': { - opacity: '0 !important' - } -})); - -interface PrecentageLabelProps { - size: 'small' | 'medium' | 'large'; - completedPercentage: number; -} - -export const PrecentageLabel = styled('div')<PrecentageLabelProps>( - ({ size, completedPercentage, theme }) => ({ - position: 'relative', - marginBottom: '-25px', - fontSize: size === 'small' ? '12px' : '16px', - left: '7px', - top: '-35px', - color: - completedPercentage === 0 - ? theme.palette.background.brand?.default - : theme.palette.text.constant?.white, - bottom: size === 'small' ? '30px' : '37px' - }) -); diff --git a/src/custom/Dialog/CustomDialog.tsx b/src/custom/Dialog/CustomDialog.tsx deleted file mode 100644 index 05765aa17..000000000 --- a/src/custom/Dialog/CustomDialog.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { Backdrop, type DialogProps } from '@mui/material'; -import { Dialog } from '../../base/Dialog'; -import { DialogTitle } from '../../base/DialogTitle'; -import StyledDialogActions from './StyledDialogActions'; -import StyledDialogContent from './StyledDialogContent'; -import { ButtonContainer, ContentContainer, HeaderModal, ModalWrapper } from './style'; - -export interface CustomDialogProps { - open: boolean; - fullScreen?: boolean; - title?: string; - leftHeaderIcon?: React.ReactNode; - helpText?: string; - helpArea?: React.ReactNode; - actions?: React.ReactNode; - hideActions?: boolean; - styleContent?: React.CSSProperties; - content: React.ReactNode; - maxWidth?: DialogProps['maxWidth']; - onClose: () => void; -} - -function CustomDialog({ - open, - onClose, - title, - leftHeaderIcon, - helpText, - helpArea, - actions, - hideActions = false, - content, - maxWidth = 'xs', - ...props -}: CustomDialogProps): JSX.Element { - return ( - <Dialog - sx={{ - '& .MuiDialog-paper': { - borderRadius: '10px' - } - }} - open={open} - maxWidth={maxWidth} - onClose={onClose} - slots={{ backdrop: Backdrop }} - slotProps={{ - backdrop: { - timeout: 500 - } - }} - {...props} - > - <ModalWrapper> - <HeaderModal> - {leftHeaderIcon && ( - <div style={{ display: 'flex', alignItems: 'center' }}>{leftHeaderIcon}</div> - )} - {title && ( - <> - <div style={{ display: 'flex', alignItems: 'center' }}> - <DialogTitle>{title}</DialogTitle> - </div> - </> - )} - - <div style={{ display: 'flex', alignItems: 'center' }}> - {helpText && <div>{helpArea}</div>} - </div> - </HeaderModal> - <StyledDialogContent> - <ContentContainer>{content}</ContentContainer> - </StyledDialogContent> - {!hideActions && ( - <StyledDialogActions> - <ButtonContainer>{actions}</ButtonContainer> - </StyledDialogActions> - )} - </ModalWrapper> - </Dialog> - ); -} - -export default CustomDialog; diff --git a/src/custom/Dialog/StyledDialogActions.tsx b/src/custom/Dialog/StyledDialogActions.tsx deleted file mode 100644 index 8d2e08cea..000000000 --- a/src/custom/Dialog/StyledDialogActions.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import { DialogActions } from '../../base/DialogActions'; - -interface StyledDialogActionsProps { - children: React.ReactNode; -} - -export function StyledDialogActions({ children, ...props }: StyledDialogActionsProps): JSX.Element { - return <DialogActions {...props}>{children}</DialogActions>; -} - -export default StyledDialogActions; diff --git a/src/custom/Dialog/StyledDialogContent.tsx b/src/custom/Dialog/StyledDialogContent.tsx deleted file mode 100644 index 4d4ae1eb6..000000000 --- a/src/custom/Dialog/StyledDialogContent.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import { DialogContent } from '../../base/DialogContent'; - -interface StyledDialogContentProps { - children: React.ReactNode; -} - -export function StyledDialogContent({ children, ...props }: StyledDialogContentProps): JSX.Element { - return <DialogContent {...props}>{children}</DialogContent>; -} - -export default StyledDialogContent; diff --git a/src/custom/Dialog/StyledDialogTitle.tsx b/src/custom/Dialog/StyledDialogTitle.tsx deleted file mode 100644 index 2d1c1ee01..000000000 --- a/src/custom/Dialog/StyledDialogTitle.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react'; -import { DialogTitle } from '../../base/DialogTitle'; -import { Typography } from '../../base/Typography'; - -interface StyledDialogTitleProps { - children: React.ReactNode; - style?: React.CSSProperties; -} - -export function StyledDialogTitle({ - children, - style, - ...props -}: StyledDialogTitleProps): JSX.Element { - return ( - <DialogTitle sx={style} {...props}> - <Typography - sx={{ - flexGrow: 1, - fontSize: '1.25rem', - textAlign: 'center' - }} - variant="h6" - > - {children} - </Typography> - </DialogTitle> - ); -} - -export default StyledDialogTitle; diff --git a/src/custom/Dialog/index.tsx b/src/custom/Dialog/index.tsx deleted file mode 100644 index b2e9d9b93..000000000 --- a/src/custom/Dialog/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -export { default as CustomDialog } from './CustomDialog'; -export { default as StyledDialogActions } from './StyledDialogActions'; -export { default as StyledDialogContent } from './StyledDialogContent'; -export { default as StyledDialogTitle } from './StyledDialogTitle'; diff --git a/src/custom/Dialog/style.tsx b/src/custom/Dialog/style.tsx deleted file mode 100644 index a4309257c..000000000 --- a/src/custom/Dialog/style.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { styled } from '@mui/material'; -import { - BLACK, - BUTTON_MODAL, - BUTTON_MODAL_DARK, - NOT_FOUND, - SLIGHT_BLACK_2, - SLIGHT_BLUE, - WHITE -} from '../../theme/colors/colors'; - -export const HeaderModal = styled('div')(({ theme }) => { - const startColor = theme.palette.mode === 'light' ? BUTTON_MODAL : BLACK; - const endColor = theme.palette.mode === 'light' ? SLIGHT_BLUE : SLIGHT_BLACK_2; - - return { - display: 'flex', - justifyContent: 'space-between', - padding: '1rem', - boxShadow: 'inset 0px -1px 3px 0px rgba(0,0,0,0.2)', - background: `linear-gradient(90deg, ${startColor}, ${endColor})`, - filter: - theme.palette.mode === 'light' - ? `progid:DXImageTransform.Microsoft.gradient(startColorstr='${BUTTON_MODAL}',endColorstr='${SLIGHT_BLUE}',GradientType=1)` - : `progid:DXImageTransform.Microsoft.gradient(startColorstr='${BUTTON_MODAL_DARK}',GradientType=1)` - }; -}); - -export const ModalWrapper = styled('div')(() => ({ - zIndex: '100', - borderRadius: '5px' -})); - -export const ButtonContainer = styled('div')(({ theme }) => ({ - padding: '1rem 1.5rem', - display: 'flex', - justifyContent: 'flex-end', - backgroundColor: theme.palette.mode === 'light' ? BUTTON_MODAL : BUTTON_MODAL_DARK, - boxShadow: 'inset 0px 3px 5px 0px rgba(0,0,0,0.25)' -})); - -export const ContentContainer = styled('div')(({ theme }) => ({ - padding: '2rem 1rem', - backgroundColor: theme.palette.mode === 'light' ? WHITE : NOT_FOUND -})); diff --git a/src/custom/EmptyState/EmptyState.tsx b/src/custom/EmptyState/EmptyState.tsx deleted file mode 100644 index ec28cc306..000000000 --- a/src/custom/EmptyState/EmptyState.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { Grid2 } from '../../base'; -import { Typography } from '../../base/Typography'; -import { LeftAngledArrowIcon } from '../../icons'; - -/** - * Empty state component for grid view. - * - * @param {Object} props - The component props. - * @param {Object} props.message - The message of the empty state. - * @param {string} props.icon - The icon of the empty state. - * @param {boolean} pros.poiner - The arrow pointer for button state. - * - */ - -export interface EmptyStateProps { - icon: string; - message?: string; - pointerLabel?: string; - poiner?: boolean; -} - -function EmptyState({ icon, message, pointerLabel, poiner = false }: EmptyStateProps): JSX.Element { - return ( - <div - style={{ - textAlign: 'center', - display: 'flex', - flexDirection: 'column', - justifyContent: 'flex-start', - alignItems: 'center', - minHeight: '50vh' - }} - > - {poiner && ( - <Grid2 style={{ display: 'flex', width: '100%', padding: '0 40px' }}> - <LeftAngledArrowIcon /> - <Typography - sx={{ - fontSize: 24, - color: '#808080', - px: 5, - py: 2, - lineHeight: 1.5, - letterSpacing: '0.15px', - display: 'flex', - alignItems: 'flex-end', - marginBottom: '-2rem' - }} - > - {pointerLabel} - </Typography> - </Grid2> - )} - <Grid2 style={{ marginTop: '120px' }}> - {icon} - <Typography - sx={{ - fontSize: '1.5rem', - color: '#808080', - px: 5, - py: 2, - lineHeight: 1 - }} - > - {message} - </Typography> - </Grid2> - </div> - ); -} - -export default EmptyState; diff --git a/src/custom/EmptyState/index.tsx b/src/custom/EmptyState/index.tsx deleted file mode 100644 index 702887d00..000000000 --- a/src/custom/EmptyState/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import EmptyState from './EmptyState'; - -export { EmptyState }; diff --git a/src/custom/ErrorBoundary/ErrorBoundary.tsx b/src/custom/ErrorBoundary/ErrorBoundary.tsx deleted file mode 100644 index a47c3e8cb..000000000 --- a/src/custom/ErrorBoundary/ErrorBoundary.tsx +++ /dev/null @@ -1,158 +0,0 @@ -import { styled } from '@mui/material'; -import React from 'react'; -import { FallbackProps, ErrorBoundary as ReactErrorBoundary } from 'react-error-boundary'; -import { Box } from '../../base/Box'; -import { Link } from '../../base/Link'; -import { Typography } from '../../base/Typography'; - -const ErrorMessage = styled(Typography)(({ theme }) => ({ - color: theme.palette.text.default, - fontWeight: 'normal', - marginTop: '2px', - marginBottom: '2px', - fontSize: '1.15rem' -})); - -const StyledLink = styled(Link)(({ theme }) => ({ - color: theme.palette.border.brand, - textDecoration: 'underline', - cursor: 'pointer' -})); - -const CodeMessage = styled('div')(({ theme }) => ({ - display: 'flex', - flexDirection: 'column', - backgroundColor: theme.palette.background.code, - color: theme.palette.text.tertiary, - padding: '.85rem', - borderRadius: '.2rem', - marginBlock: '.5rem' -})); - -interface FallbackComponentProps extends FallbackProps { - resetErrorBoundary: () => void; - children?: React.ReactNode; - pageUrl?: string; - timestamp?: string; - showPackageInfo?: boolean; - version?: string; -} - -export function Fallback({ - error, - children, - showPackageInfo, - version -}: FallbackComponentProps): JSX.Element { - return ( - <div role="alert"> - <h2>Uh-oh!๐ Please pardon the mesh.</h2> - <CodeMessage> - <code> - <strong>Error: </strong> - {(error as Error).message} - </code> - <br /> - {showPackageInfo && ( - <> - <strong>Version:</strong> {version} - </> - )} - </CodeMessage> - <ErrorMessage> - We apologize for the inconvenience. The issue may be on our end. If troubleshooting doesn't - work, please check out our support channels{' '} - <StyledLink href="https://discuss.layer5.io/" target="_blank" rel="noopener noreferrer"> - Discuss Forum - </StyledLink>{' '} - {' or '} - <StyledLink href="https://slack.layer5.io/" target="_blank" rel="noopener noreferrer"> - Slack - </StyledLink> - </ErrorMessage> - <Box>{children}</Box> - </div> - ); -} - -const reportError = (error: Error, info: React.ErrorInfo): void => { - const pageUrl = window.location.href; - const timestamp = new Date().toLocaleString(); - // This is where you'd send the error to Sentry, etc - console.log( - 'Error Caught Inside Boundary --reportError', - error, - 'Info', - info, - 'Page URL:', - pageUrl, - 'Timestamp:', - timestamp - ); -}; - -interface ErrorBoundaryProps { - customFallback?: React.ComponentType<FallbackProps>; - children: React.ReactNode; - onErrorCaught?: (error: string) => void; -} - -export const ErrorBoundary: React.FC<ErrorBoundaryProps> = ({ - customFallback, - children, - onErrorCaught -}) => { - const pageUrl = window.location.href; - const timestamp = new Date().toLocaleString(); - - const handleError = (error: Error, info: React.ErrorInfo) => { - // Pass error message to onErrorCaught - onErrorCaught?.(error.message); - reportError(error, info); - }; - - return ( - <ReactErrorBoundary - FallbackComponent={ - customFallback - ? customFallback - : (props) => <Fallback {...props} pageUrl={pageUrl} timestamp={timestamp} /> - } - onError={handleError} - > - {children} - </ReactErrorBoundary> - ); -}; - -interface WithErrorBoundaryProps { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - Component: React.ComponentType<any>; - errorHandlingProps?: ErrorBoundaryProps; -} - -export const withErrorBoundary: React.FC<WithErrorBoundaryProps> = ({ - Component, - errorHandlingProps = { children: null } -}: WithErrorBoundaryProps): JSX.Element => { - return ( - <ErrorBoundary {...errorHandlingProps}> - <Component /> - </ErrorBoundary> - ); -}; - -interface WithSuppressedErrorBoundaryProps { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - Component: React.ComponentType<any>; -} - -export const withSuppressedErrorBoundary: React.FC<WithSuppressedErrorBoundaryProps> = ({ - Component -}: WithSuppressedErrorBoundaryProps): JSX.Element => { - return ( - <ReactErrorBoundary FallbackComponent={() => null} onError={reportError}> - <Component /> - </ReactErrorBoundary> - ); -}; diff --git a/src/custom/ErrorBoundary/README.md b/src/custom/ErrorBoundary/README.md deleted file mode 100644 index 6891c12fd..000000000 --- a/src/custom/ErrorBoundary/README.md +++ /dev/null @@ -1,85 +0,0 @@ -## Error Boundary Components - -### `ErrorBoundary` - -The `ErrorBoundary` component is designed to catch errors that occur within its child components and provide a customizable fallback UI when an error occurs. - -#### Usage - -Wrap your component with the `ErrorBoundary`: - -```tsx -import { ErrorBoundary } from '@sistent/sistent'; - -const MyComponent = () => { - // Your component logic - - return <ErrorBoundary>{/* Your component JSX */}</ErrorBoundary>; -}; -``` - -##### Custom Fallback - -You can provide a custom fallback component to `ErrorBoundary`: - -```tsx -const MyComponent = () => { - // Your component logic - - return ( - <ErrorBoundary customFallback={CustomFallbackComponent}> - {/* Your component JSX */} - </ErrorBoundary> - ); -}; -``` - -### `withErrorBoundary` - -`withErrorBoundary` is a higher-order component (HOC) that simplifies wrapping a component with ErrorBoundary. It uses default fallback component. This can be useFul to wrap child components - -#### Usage - -Wrap your component using `withErrorBoundary`: - -```tsx -import { withErrorBoundary } from '@sistent/sistent'; - -const MyComponent = withErrorBoundary(() => { - return { - /* Your component JSX */ - }; -}); -``` - -### `withSuppressedErrorBoundary` - -`withSuppressedErrorBoundary` is another HOC that suppresses the error in browser's console instead of displaying fallback component to users, this can be useFull for errors that are not critical and can be avoided. - -#### Usage - -Wrap your component using withSuppressedErrorBoundary: - -```tsx -import { withSuppressedErrorBoundary } from '@sistent/sistent'; - -const MyComponent = withSuppressedErrorBoundary(() => { - return { - /* Your component JSX */ - }; -}); -``` - -### Handling Different Levels of Errors - -#### Critical Errors - -Critical errors typically originate from parent or root components and can potentially lead to the entire page crashing. In such cases, it is recommended to use the ErrorBoundary with either the default fallback component or a custom fallback component to ensure users receive assistance. - -#### Non-critical Errors - -Non-critical errors occur in child components and may not result in a page crash or hinder users from performing other operations. In these cases, displaying the error through a toaster notification or handling it as an event can be beneficial. - -#### Errors That Can Be Avoided - -In some scenarios, a child component might encounter an error that doesn't block users and doesn't require immediate attention. Such errors can be avoided and suppressed into the browser's console for debugging purposes. The `withSuppressedErrorBoundary` higher-order component (HOC) function can be useful in this scenario. diff --git a/src/custom/ErrorBoundary/index.tsx b/src/custom/ErrorBoundary/index.tsx deleted file mode 100644 index f4b09c8c0..000000000 --- a/src/custom/ErrorBoundary/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -export { - ErrorBoundary, - Fallback, - withErrorBoundary, - withSuppressedErrorBoundary -} from './ErrorBoundary'; diff --git a/src/custom/Feedback/FeedbackButton.tsx b/src/custom/Feedback/FeedbackButton.tsx deleted file mode 100644 index f47f9157f..000000000 --- a/src/custom/Feedback/FeedbackButton.tsx +++ /dev/null @@ -1,233 +0,0 @@ -import Typography from '@mui/material/Typography'; -import React, { CSSProperties, useState } from 'react'; -import { - CalenderIcon, - CloseIcon, - FeedbackIcon, - IdeaIcon, - QuestionIcon, - SuccessIcon -} from '../../icons'; -import { CULTURED } from '../../theme'; -import { CustomTooltip } from '../CustomTooltip'; -import { ModalButtonPrimary } from '../Modal'; -import { ModalCard } from '../ModalCard'; -import { - ActionWrapper, - CloseButton, - Container, - FeedbackButton, - FeedbackForm, - FeedbackMessage, - FeedbackMiniIcon, - FeedbackOptionButton, - FeedbackOptions, - FeedbackTextArea, - HelperWrapper, - InnerComponentWrapper, - NeedHelpComponent, - StyledCheckbox, - StyledLink, - StyledTextArea -} from './style'; - -const tooltipContent = - 'Some account and system information may be sent to Layer5. We will use it to fix problems and improve our services, subject to our [Privacy Policy](https://layer5.io/company/legal/privacy) and [Terms of Service](https://layer5.io/company/legal/terms-of-service). We may email you for more information or updates.'; - -interface FeedbackDataItem { - icon: JSX.Element; - label: string; - placeholder?: string; - isTextInput: boolean; - innerComponent?: JSX.Element; -} - -const feedbackData: FeedbackDataItem[] = [ - { - icon: <FeedbackIcon />, - label: 'Issue', - placeholder: 'Iโm having an issue with...', - isTextInput: true - }, - { - icon: <IdeaIcon />, - label: 'Suggestion', - placeholder: 'I have a suggestion about...', - isTextInput: true - }, - { - icon: <CalenderIcon />, - label: 'Meet Request', - isTextInput: false, - innerComponent: ( - <NeedHelpComponent> - <Typography style={{ lineHeight: '2.5', textAlign: 'center' }}> - Need help or have more feedback than fits here? - <br /> Meet with us. - </Typography> - <StyledLink - target="_blank" - href="https://calendar.google.com/calendar/appointments/schedules/AcZssZ3pmcApaDP4xd8hvG5fy8ylxuFxD3akIRc5vpWJ60q-HemQi80SFFAVftbiIsq9pgiA2o8yvU56" - > - Select a time convenient for you. - </StyledLink> - </NeedHelpComponent> - ) - } -]; - -interface FeedbackComponentProps { - onSubmit: (data: { label: string; message: string }) => void; - containerStyles?: CSSProperties; - feedbackOptionStyles?: CSSProperties; - renderPosition: - | 'bottom-center' - | 'bottom-right' - | 'bottom-left' - | 'right-top' - | 'right-middle' - | 'right-bottom'; - defaultMessage?: string; - defaultOpen?: boolean; -} - -const FeedbackComponent: React.FC<FeedbackComponentProps> = ({ - onSubmit, - containerStyles, - feedbackOptionStyles, - renderPosition, - defaultMessage = undefined, - defaultOpen = false -}) => { - const [isOpen, setIsOpen] = useState<boolean>(defaultOpen); - const [submitted, setSubmitted] = useState<boolean>(false); - const [category, setCategory] = useState<FeedbackDataItem | undefined>(feedbackData[0]); - const [messageValue, setMessageValue] = useState<string | undefined>(defaultMessage); - const [isChecked, setIsChecked] = useState<boolean>(!!defaultMessage); - const handleCheckboxChange = (event: React.ChangeEvent<HTMLInputElement>) => { - setIsChecked(event.target.checked); - }; - - const handleFeedback = () => { - setIsOpen(!isOpen); - setCategory(feedbackData[0]); - setSubmitted(false); - setMessageValue(''); - }; - - const handleSubmit = () => { - setSubmitted(true); - if (messageValue && isChecked) { - onSubmit({ label: category?.label || '', message: messageValue }); - } - setTimeout(() => { - setIsOpen(false); - setCategory(undefined); - setSubmitted(false); - setMessageValue(''); - }, 2000); - }; - - return ( - <> - <FeedbackButton - onClick={handleFeedback} - style={containerStyles} - renderPosition={renderPosition} - > - Feedback - </FeedbackButton> - <Container isOpen={isOpen} style={containerStyles} renderPosition={renderPosition}> - {submitted ? ( - <FeedbackMessage isOpen={isOpen}> - <SuccessIcon width={'32'} height={'32'} /> - Submitting your feedback... - </FeedbackMessage> - ) : ( - <> - <ModalCard - onClose={() => {}} - open={true} - closeComponent={ - <CloseButton onClick={() => setIsOpen(false)}> - <CloseIcon width={'30'} height={'30'} fill={CULTURED} /> - </CloseButton> - } - actions={ - <div - style={{ - display: 'flex', - alignItems: 'center' - }} - > - <ActionWrapper> - <StyledCheckbox checked={isChecked} onChange={handleCheckboxChange} /> - <Typography style={{ color: 'white', fontSize: '12px', height: '15px' }}> - We may email you for more information or updates - </Typography> - </ActionWrapper> - <ModalButtonPrimary - type="submit" - disabled={!(messageValue && isChecked)} - isOpen={!(messageValue && isChecked)} - onClick={handleSubmit} - > - Send - </ModalButtonPrimary> - </div> - } - leftHeaderIcon={<FeedbackIcon />} - title="Feedback" - helpArea={ - <CustomTooltip placement="top" title={tooltipContent} arrow> - <HelperWrapper> - <QuestionIcon width={'30'} height={'30'} /> - </HelperWrapper> - </CustomTooltip> - } - helpText={'Help'} - content={ - <FeedbackForm> - <FeedbackOptions> - {feedbackData?.map((item) => ( - <FeedbackOptionButton - key={item.label} - style={feedbackOptionStyles} - type="button" - onClick={() => { - setCategory(item); - }} - isOpen={category?.label === item.label} - > - <FeedbackMiniIcon>{item.icon}</FeedbackMiniIcon> - <Typography>{item.label}</Typography> - </FeedbackOptionButton> - ))} - </FeedbackOptions> - {category?.isTextInput ? ( - <FeedbackTextArea> - <StyledTextArea - value={messageValue || ''} - onChange={(e) => { - setMessageValue(e.target.value); - }} - required - placeholder={category.placeholder} - rows={5} - cols={30} - /> - </FeedbackTextArea> - ) : ( - <InnerComponentWrapper>{category?.innerComponent}</InnerComponentWrapper> - )} - </FeedbackForm> - } - ></ModalCard> - </> - )} - </Container> - </> - ); -}; - -export default FeedbackComponent; diff --git a/src/custom/Feedback/index.tsx b/src/custom/Feedback/index.tsx deleted file mode 100644 index 5042b6266..000000000 --- a/src/custom/Feedback/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import FeedbackButton from './FeedbackButton'; - -export { FeedbackButton }; diff --git a/src/custom/Feedback/style.tsx b/src/custom/Feedback/style.tsx deleted file mode 100644 index 6a82509c9..000000000 --- a/src/custom/Feedback/style.tsx +++ /dev/null @@ -1,330 +0,0 @@ -import { Box, Button, Checkbox, styled } from '@mui/material'; -import {} from '../../constants/constants'; -import { - BLACK, - BUTTON_MODAL, - CARIBBEAN_GREEN, - CHINESE_SILVER, - CULTURED, - DARK_JUNGLE_GREEN, - DARK_KEPPEL, - DARK_SLATE_GRAY, - KEPPEL, - MEDIUM_GREY, - SNOW_WHITE, - WHITE, - buttonDisabled -} from '../../theme/colors/colors'; -export const CloseButton = styled('div')({ - cursor: 'pointer', - width: '30px', - height: '30px', - display: 'flex', - alignItems: 'center', - fill: CULTURED -}); -interface SubmitProp { - isOpen: boolean; -} -interface RenderPositionType { - renderPosition: - | 'bottom-center' - | 'bottom-right' - | 'bottom-left' - | 'right-top' - | 'right-middle' - | 'right-bottom'; -} -interface ContainerProps extends RenderPositionType { - isOpen: boolean; -} -const containerPositionMap: Record< - 'bottom-center' | 'bottom-right' | 'bottom-left' | 'right-top' | 'right-middle' | 'right-bottom', - { open: React.CSSProperties; closed: React.CSSProperties } -> = { - 'bottom-center': { - open: { - bottom: '0px', - left: '50%', - transform: 'translateX(-50%)' - }, - closed: { - bottom: '-42%', - left: '50%', - transform: 'translateX(-50%)' - } - }, - 'bottom-right': { - open: { - bottom: '0px', - right: '10px' - }, - closed: { - bottom: '-448px', - right: '10px' - } - }, - 'bottom-left': { - open: { - bottom: '0px', - left: '10px' - }, - closed: { - bottom: '-448px', - left: '10px' - } - }, - 'right-top': { - open: { - top: '0px', - right: '0px' - }, - closed: { - top: '0px', - right: '-448px' - } - }, - 'right-middle': { - open: { - top: '50%', - right: '0px', - transform: 'translateY(-50%)' - }, - closed: { - top: '50%', - right: '-448px', - transform: 'translateY(-50%)' - } - }, - 'right-bottom': { - open: { - bottom: '0px', - right: '0px' - }, - closed: { - bottom: '0px', - right: '-448px' - } - } -}; - -export const Container = styled(Box)<ContainerProps>(({ isOpen, renderPosition }) => ({ - position: 'fixed', - transition: 'all 0.5s ease', - ...containerPositionMap[renderPosition][isOpen ? 'open' : 'closed'] -})); - -export const FeedbackTextArea = styled('div')({ - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - transition: 'bottom 0.5s ease', - padding: '1.688rem 1.188rem', - width: '28rem', - height: '12rem' -}); - -export const ActionWrapper = styled('div')({ - display: 'flex', - alignItems: 'center', - paddingTop: '0.5px', - height: '20px', - width: '21.188rem' -}); - -export const FeedbackMiniIcon = styled('div')({ - width: '24px', - height: '24px' -}); - -export const FeedbackSubmitButton = styled(Button)<SubmitProp>(({ isOpen }) => ({ - color: 'white', - width: '4.313rem', - height: '2.25rem', - textTransform: 'none', - boxShadow: '0px 1px 8px rgba(0, 0, 0, 0.25)', - backgroundColor: isOpen ? buttonDisabled.main : KEPPEL, - '&:hover': { - backgroundColor: DARK_KEPPEL - } -})); - -export const FeedbackButton = styled(Button)<RenderPositionType>(({ theme, renderPosition }) => ({ - backgroundColor: BUTTON_MODAL, - color: CULTURED, - borderRadius: '5px', - padding: '10px 20px', - fontSize: '16px', - transition: 'bottom 0.5s ease', - position: 'fixed', - ...positionMap[renderPosition], - '&:hover': { - backgroundColor: theme.palette.mode === 'dark' ? BLACK : '#213A45' - } -})); - -const positionMap: Record< - 'bottom-center' | 'bottom-right' | 'bottom-left' | 'right-top' | 'right-middle' | 'right-bottom', - React.CSSProperties -> = { - 'bottom-center': { - bottom: '-10px', - left: '50%', - transform: 'translateX(-50%)' - }, - 'bottom-right': { - bottom: '-10px', - right: '10px' - }, - 'bottom-left': { - bottom: '-10px', - left: '10px' - }, - 'right-top': { - top: '8%', - right: '-45px', - transform: 'rotate(-90deg)' - }, - 'right-middle': { - top: '50%', - right: '-45px', - transform: 'rotate(-90deg)' - }, - 'right-bottom': { - bottom: '10%', - right: '-45px', - transform: 'rotate(-90deg)' - } -}; - -export const FeedbackForm = styled('div')(({ theme }) => ({ - display: 'block', - right: '0', - backgroundColor: theme.palette.mode === 'dark' ? '#333333' : CULTURED, - bottom: '0', - width: '100%', - zIndex: '100', - position: 'relative', - height: '100%', - alignItems: 'center', - transition: 'bottom 0.5s ease' -})); - -interface FeedbackMessageProps { - isOpen: boolean; -} - -export const FeedbackMessage = styled(Box)<FeedbackMessageProps>(({ isOpen, theme }) => ({ - position: 'relative', - bottom: isOpen ? '0px' : '-240px', - right: '0', - color: theme.palette.text.default, - backgroundColor: theme.palette.mode === 'dark' ? DARK_JUNGLE_GREEN : WHITE, - border: `1px solid ${MEDIUM_GREY}`, - padding: '20px', - width: '28rem', - height: '333.5px', - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center', - transition: 'bottom 0.5s ease', - fontSize: '1.5rem', - textAlign: 'center' -})); - -export const FeedbackOptions = styled(Box)({ - display: 'flex', - justifyContent: 'space-between', - alignSelf: 'center' -}); - -export const FeedbackOptionButton = styled(Button)<FeedbackMessageProps>(({ theme, isOpen }) => ({ - fontSize: '16px', - lineHeight: 1, - letterSpacing: '0.029em', - textTransform: 'none', - width: '100%', - height: '5rem', - display: 'flex', - padding: '0rem', - borderRadius: '0px', - flexDirection: 'column', - borderBottom: isOpen ? `2px solid ${KEPPEL}` : '', - background: isOpen - ? theme.palette.mode === 'dark' - ? BLACK - : SNOW_WHITE - : theme.palette.mode === 'dark' - ? DARK_JUNGLE_GREEN - : DARK_SLATE_GRAY, - color: isOpen - ? theme.palette.mode === 'dark' - ? SNOW_WHITE - : BLACK - : theme.palette.mode === 'dark' - ? SNOW_WHITE - : SNOW_WHITE, - fill: isOpen ? theme.palette.icon.default : SNOW_WHITE, - stroke: isOpen ? theme.palette.icon.inverse : theme.palette.icon.brand, - '&:hover': { - color: theme.palette.text.default, - backgroundColor: theme.palette.background.hover, - fill: theme.palette.icon.default - } -})); - -export const StyledTextArea = styled('textarea')(({ theme }) => ({ - width: '100%', - background: 'transparent', - border: `1px solid ${CHINESE_SILVER}`, - borderRadius: '4px', - color: theme.palette.mode === 'dark' ? SNOW_WHITE : BLACK, - fontSize: '16px', - paddingTop: '10.5px', - paddingBottom: '10.5px', - paddingLeft: '0.6rem', - paddingRight: '0.6rem', - resize: 'none', - fontFamily: 'inherit', - fontStyle: 'normal', - '&::placeholder': { - color: theme.palette.mode === 'dark' ? SNOW_WHITE : DARK_JUNGLE_GREEN - }, - '&:focus': { - outline: `1px solid ${CARIBBEAN_GREEN}` - } -})); -export const NeedHelpComponent = styled('div')(({ theme }) => ({ - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'space-between', - height: '137px', - color: theme.palette.text.default -})); -export const StyledLink = styled('a')({ - textDecoration: 'underline', - color: 'inherit', - '&:hover': { - color: 'inherit' - } -}); - -export const StyledCheckbox = styled(Checkbox)({ - color: `${WHITE} !important`, - marginLeft: '-11px', - paddingLeft: '0px' -}); -export const InnerComponentWrapper = styled('div')({ - padding: '1.5rem 1rem', - width: '28rem', - height: '12rem' -}); -export const HelperWrapper = styled('div')({ - padding: '0px', - width: '30px', - height: '30px', - display: 'flex', - alignItems: 'center' -}); diff --git a/src/custom/FlipCard/FlipCard.tsx b/src/custom/FlipCard/FlipCard.tsx deleted file mode 100644 index 895964773..000000000 --- a/src/custom/FlipCard/FlipCard.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { styled } from '@mui/material'; -import React from 'react'; -import { BUTTON_MODAL_DARK, WHITE } from '../../theme/colors/colors'; - -export type FlipCardProps = { - duration?: number; - onClick?: () => void; - onShow?: () => void; - children: [React.ReactNode, React.ReactNode]; - disableFlip?: boolean; - padding?: string; -}; - -/** - * Helper function to get the front or back child component from the children array - * @param children Array containing exactly two child components - * @param key Index to retrieve (0 for front, 1 for back) - * @throws Error if children is undefined or doesn't contain exactly two components - * @returns The selected child component - */ -function GetChild(children: [React.ReactNode, React.ReactNode], key: number) { - if (!children) throw Error('FlipCard requires exactly two child components'); - if (children.length != 2) throw Error('FlipCard requires exactly two child components'); - - return children[key]; -} - -const Card = styled('div')(({ theme }) => ({ - height: '100%', - backgroundColor: 'transparent', - perspective: theme.spacing(125) -})); - -const InnerCard = styled('div')(({ theme }) => ({ - padding: theme.spacing(2), - borderRadius: theme.spacing(1), - transformStyle: 'preserve-3d', - boxShadow: '0 4px 8px 0 rgba(0,0,0,0.2)', - backgroundColor: theme.palette.mode === 'dark' ? BUTTON_MODAL_DARK : WHITE, - cursor: 'pointer', - transformOrigin: '50% 50% 10%' -})); - -const FrontContent = styled('div')({ - backfaceVisibility: 'hidden' -}); - -const BackContent = styled('div')({ - backfaceVisibility: 'hidden', - transform: 'scale(-1, 1)', - wordBreak: 'break-word' -}); - -/** - * A card component that provides a flipping animation between two content faces - * - * @component - * @param props.duration - Animation duration in milliseconds (default: 500) - * @param props.onClick - Callback function triggered on card click - * @param props.onShow - Additional callback function triggered when card shows new face - * @param props.children - Array of exactly two child components (front and back) - * @param props.disableFlip - When true, prevents the card from flipping (default: false) - * - * @example - * ```tsx - * <FlipCard> - * <div>Front Content</div> - * <div>Back Content</div> - * </FlipCard> - * ``` - */ -export function FlipCard({ - duration = 500, - onClick, - onShow, - children, - disableFlip = false, - padding -}: FlipCardProps) { - const [flipped, setFlipped] = React.useState(false); - const [activeBack, setActiveBack] = React.useState(false); - - const timeout = React.useRef<null | NodeJS.Timeout>(null); - - const Front = GetChild(children, 0); - const Back = GetChild(children, 1); - - React.useEffect(() => { - // This function makes sure that the inner content of the card disappears roughly - // after 30 deg rotation has already occured. It will ensure that the user doesn't gets - // a "blank" card while the card is rotating - // - // This guarantee can be offered because of two main reasons: - // 1. In sufficiently modern browsers JS and CSS are handled in different threads - // hence ones execution doesn't blocks another. - // 2. setTimeout will put its callback at the end of current context's end hence ensuring - // this callback doesn't gets blocked by another JS process. - - if (timeout.current) clearTimeout(timeout.current); - - timeout.current = setTimeout(() => { - setActiveBack(flipped); - }, duration / 6); - }, [flipped, duration]); - - return ( - <Card - onClick={() => { - if (disableFlip) return; - setFlipped((flipped) => !flipped); - onClick && onClick(); - onShow && onShow(); - }} - > - <InnerCard - style={{ - transform: flipped ? 'scale(-1,1)' : undefined, - transition: `transform ${duration}ms`, - padding: padding - }} - > - {!activeBack ? ( - <FrontContent>{React.isValidElement(Front) ? Front : null}</FrontContent> - ) : ( - <BackContent>{React.isValidElement(Back) ? Back : null}</BackContent> - )} - </InnerCard> - </Card> - ); -} diff --git a/src/custom/FlipCard/index.tsx b/src/custom/FlipCard/index.tsx deleted file mode 100644 index a504789ff..000000000 --- a/src/custom/FlipCard/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { FlipCard, FlipCardProps } from './FlipCard'; - -export { FlipCard }; -export type { FlipCardProps }; diff --git a/src/custom/FormatId/FormatId.tsx b/src/custom/FormatId/FormatId.tsx deleted file mode 100644 index 2999676f4..000000000 --- a/src/custom/FormatId/FormatId.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { Box, Tooltip, Typography } from '@mui/material'; -import _ from 'lodash'; -import React, { useState } from 'react'; -import { CopyIcon } from '../../icons'; -import { useTheme } from '../../theme'; - -interface FormatIdProps { - id: string; -} - -export const FormatId: React.FC<FormatIdProps> = ({ id }) => { - const [copied, setCopied] = useState(false); - const theme = useTheme(); - - // Truncates the id to 15 characters and adds an ellipsis and adds a clipboard copy button - const copyToClipboard = (e: React.MouseEvent<HTMLDivElement>) => { - e.stopPropagation(); - navigator.clipboard.writeText(id); - setCopied(true); - - // Reset the copied status after a brief delay - setTimeout(() => { - setCopied(false); - }, 2000); - }; - - const truncatedId = _.truncate(id, { length: 15 }); - - return ( - <Box sx={{ display: 'flex', alignItems: 'center' }}> - <Tooltip title={id} placement="top"> - <Typography - variant="body2" - style={{ - cursor: 'pointer', - textWrap: 'nowrap', - color: theme.palette.text.primary - }} - > - {truncatedId} - </Typography> - </Tooltip> - <Tooltip title={copied ? 'Copied!' : 'Copy'} placement="top"> - <div onClick={copyToClipboard} style={{ padding: '0.25rem' }}> - <CopyIcon width={16} height={16} fill={theme.palette.action.active} /> - </div> - </Tooltip> - </Box> - ); -}; diff --git a/src/custom/FormatId/index.ts b/src/custom/FormatId/index.ts deleted file mode 100644 index 693f1cc6a..000000000 --- a/src/custom/FormatId/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { FormatId } from './FormatId'; - -export { FormatId }; diff --git a/src/custom/Helpers/CondtionalTooltip/index.tsx b/src/custom/Helpers/CondtionalTooltip/index.tsx deleted file mode 100644 index 5d905bc7e..000000000 --- a/src/custom/Helpers/CondtionalTooltip/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -import ConditionalTooltip from './tooltip-for-desc'; -export { ConditionalTooltip }; diff --git a/src/custom/Helpers/CondtionalTooltip/tooltip-for-desc.tsx b/src/custom/Helpers/CondtionalTooltip/tooltip-for-desc.tsx deleted file mode 100644 index a63e122c4..000000000 --- a/src/custom/Helpers/CondtionalTooltip/tooltip-for-desc.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { Tooltip } from '../../../base/Tooltip'; - -interface ConditionalTooltipProps { - value: string; - maxLength: number; - // You can add more prop types here as needed -} - -function ConditionalTooltip({ - value, - maxLength, - ...restProps -}: ConditionalTooltipProps): JSX.Element { - if (value.length > maxLength) { - return ( - <Tooltip title={value} arrow placement="top"> - <div - style={{ - maxWidth: '15rem', - overflow: 'hidden', - textOverflow: 'ellipsis', - whiteSpace: 'nowrap' - }} - {...restProps} - > - {`${value.slice(0, maxLength)}...`} - </div> - </Tooltip> - ); - } else { - return ( - <div - style={{ - maxWidth: '15rem', - overflow: 'hidden', - textOverflow: 'ellipsis', - whiteSpace: 'nowrap' - }} - {...restProps} - > - {value} - </div> - ); - } -} - -export default ConditionalTooltip; diff --git a/src/custom/Helpers/Dimension/index.tsx b/src/custom/Helpers/Dimension/index.tsx deleted file mode 100644 index aefbaf894..000000000 --- a/src/custom/Helpers/Dimension/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import { useWindowDimensions } from './windowSize'; - -export { useWindowDimensions }; diff --git a/src/custom/Helpers/Dimension/windowSize.tsx b/src/custom/Helpers/Dimension/windowSize.tsx deleted file mode 100644 index e396e9896..000000000 --- a/src/custom/Helpers/Dimension/windowSize.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import React from 'react'; - -/** - * Returns the width and height of the window. - * - * @returns {WindowDimensions} { width, height } - */ -function getWindowDimensions(): WindowDimensions { - const { innerWidth: width, innerHeight: height } = window; - return { - width, - height - }; -} - -/** - * Custom hook for getting window dimensions. - * - * @returns {WindowDimensions} { width, height } - */ -export function useWindowDimensions(): WindowDimensions { - const [windowDimensions, setWindowDimensions] = React.useState(getWindowDimensions()); - - React.useEffect(() => { - let resizeTimeout: number; - - function handleResize() { - if (resizeTimeout) { - clearTimeout(resizeTimeout); - } - resizeTimeout = window.setTimeout(() => { - setWindowDimensions(getWindowDimensions()); - }, 500); - } - - window.addEventListener('resize', handleResize); - - // Clean up the event listener on unmount - return () => { - window.removeEventListener('resize', handleResize); - if (resizeTimeout) { - clearTimeout(resizeTimeout); - } - }; - }, []); - - return windowDimensions; -} - -/** - * Represents the width and height of the window. - */ -interface WindowDimensions { - width: number; - height: number; -} diff --git a/src/custom/Helpers/Notification/index.tsx b/src/custom/Helpers/Notification/index.tsx deleted file mode 100644 index 01c24112f..000000000 --- a/src/custom/Helpers/Notification/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import useNotificationHandler from './notification-handler'; - -export { useNotificationHandler }; diff --git a/src/custom/Helpers/Notification/notification-handler.ts b/src/custom/Helpers/Notification/notification-handler.ts deleted file mode 100644 index 446011303..000000000 --- a/src/custom/Helpers/Notification/notification-handler.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { OptionsObject, useSnackbar } from 'notistack'; -import React from 'react'; - -type NotificationHandler = (message: string, options?: OptionsObject) => void; - -const useNotificationHandler = (): NotificationHandler => { - const [message, setMessage] = React.useState<string>(''); - const { enqueueSnackbar } = useSnackbar(); - - React.useEffect(() => { - if (message) { - enqueueSnackbar(message); - setMessage(''); - } - }, [message, enqueueSnackbar]); - - const notify: NotificationHandler = (message, options) => { - setMessage(message); - if (options) { - enqueueSnackbar(message, options); - } - }; - - return notify; -}; - -export default useNotificationHandler; diff --git a/src/custom/Helpers/ResponsiveColumns/responsive-coulmns.tsx/index.tsx b/src/custom/Helpers/ResponsiveColumns/responsive-coulmns.tsx/index.tsx deleted file mode 100644 index eaadb2d81..000000000 --- a/src/custom/Helpers/ResponsiveColumns/responsive-coulmns.tsx/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { ColView, updateVisibleColumns } from './responsive-column'; - -export { updateVisibleColumns }; -export type { ColView }; diff --git a/src/custom/Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column.tsx b/src/custom/Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column.tsx deleted file mode 100644 index d8df29f4a..000000000 --- a/src/custom/Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column.tsx +++ /dev/null @@ -1,68 +0,0 @@ -// colViews screen size reference -/* - na: Not visible at any screen width - xs: width < 585, - s: width > 585 && width < 690, - m: width > 690 && width < 775, - l: width > 775 && width < 915, - xl: width > 915 && width < 1140 - All columns except "na" are visible for width > 1140 -*/ - -export interface ColView { - 0: string; // column name - 1: 'na' | 'xs' | 's' | 'm' | 'l' | 'xl'; // screen size -} - -export const updateVisibleColumns = ( - colViews: ColView[], - width: number -): Record<string, boolean> => { - // showCols object contains key value pairs that represent whether a column is visible or hidden. - // i.e, Here, key = column name, and value = true/false where true means visible and false means hidden - const showCols: Record<string, boolean> = {}; - - // colViews is a 2D array where each element is an array of 2 elements namely, - // column name and the screen size till which they are visible - colViews.forEach((col) => { - // Hide the columns for any screen size - if (col[1] === 'na') { - showCols[col[0]] = false; - } else if (width > 1140) { - // Display all columns above width 1140 - showCols[col[0]] = true; - } else if (width >= 915 && width < 1140) { - if (['xs', 's', 'm', 'l', 'xl'].includes(col[1])) { - showCols[col[0]] = true; - } else { - showCols[col[0]] = false; - } - } else if (width >= 775 && width < 915) { - if (['xs', 's', 'm', 'l'].includes(col[1])) { - showCols[col[0]] = true; - } else { - showCols[col[0]] = false; - } - } else if (width >= 690 && width < 775) { - if (['xs', 's', 'm'].includes(col[1])) { - showCols[col[0]] = true; - } else { - showCols[col[0]] = false; - } - } else if (width >= 585 && width < 690) { - if (['xs', 's'].includes(col[1])) { - showCols[col[0]] = true; - } else { - showCols[col[0]] = false; - } - } else if (width < 585) { - if (col[1] === 'xs') { - showCols[col[0]] = true; - } else { - showCols[col[0]] = false; - } - } - }); - - return showCols; -}; diff --git a/src/custom/Helpers/readme.md b/src/custom/Helpers/readme.md deleted file mode 100644 index 3024f8645..000000000 --- a/src/custom/Helpers/readme.md +++ /dev/null @@ -1,60 +0,0 @@ -# Helper Components - -This directory contains a collection of utility and helper components that you can use across your project. These components are designed to simplify common tasks, enhance reusability, and improve code organization. - -## Table of Contents - -- [Available Helper Components](#available-helper-components) -- [How to Use](#how-to-use) -- [Examples](#examples) - -## Available Helper Components - -1. **Window Dimensions Hook**: A custom React hook for tracking changes in window dimensions. - - - **File**: `Dimension` - - **Usage**: Provides the `useWindowDimensions` hook, which allows you to get the current window dimensions and react to changes in window size. - - **Returns**: An object containing the current window dimensions and a boolean value indicating whether the window is currently in landscape mode. - -2. **Notification Hook**: A custom React hook for displaying notifications using notistack. - - - **File**: `Notification` - - **Usage**: Provides the `useNotificationHandler` hook, which allows you to display notifications. - - **Returns**: An object containing the notification state and a function for updating the notification state. - -## How to Use - -To use these helper components in your project, follow these steps: - -1. Navigate to the specific helper component directory (e.g., `dimension.ts`) to find details about its usage. - -2. Import the required helper component into your code: - -- **Example**: Importing the `useWindowDimensions` hook from the `Dimension` helper component: - - ```javascript - import { useWindowDimensions } from '@layer5/sistent-components'; - const DimensionExample = () => { - const { width, height } = useWindowDimensions(); - - return ( - <div> - <p>Window width: {width}</p> - <p>Window height: {height}</p> - </div> - ); - ``` - - - **Example**: Importing the `useNotificationHandler` hook from the `Notification` helper component: - - ```javascript - import useNotificationHandler from '@layer5/sistent-components'; - const NotificationHandlerExample = () => { - const notify = useNotificationHandler(); - - return ( - <button onClick={() => notify('Hello world!', { variant: 'success' })}> - Click me - </button> - ); - ``` diff --git a/src/custom/InputSearchField/InputSearchField.tsx b/src/custom/InputSearchField/InputSearchField.tsx deleted file mode 100644 index df2945000..000000000 --- a/src/custom/InputSearchField/InputSearchField.tsx +++ /dev/null @@ -1,213 +0,0 @@ -import { Autocomplete, Grid2 } from '@mui/material'; -import React, { useCallback, useEffect, useState } from 'react'; -import { Box, Chip, CircularProgress, TextField, Tooltip, Typography } from '../../base'; - -import { iconLarge, iconSmall } from '../../constants/iconsSizes'; -import { CloseIcon, OrgIcon } from '../../icons'; - -interface Option { - id: string; - name: string; -} - -interface InputSearchFieldProps { - data: Option[]; - setFilterData: (data: Option[]) => void; - label?: string; - fetchSuggestions: (value: string) => void; - isLoading: boolean; - type: string; - disabled?: boolean; - selectedData: Option[]; - searchValue: string; - setSearchValue: (value: string) => void; - iconComponent?: React.ReactElement; -} - -const InputSearchField: React.FC<InputSearchFieldProps> = ({ - data, - label, - fetchSuggestions, - setFilterData, - isLoading, - type, - disabled, - selectedData, - searchValue, - setSearchValue, - iconComponent = (<OrgIcon {...iconLarge} />) as React.ReactElement -}) => { - const [error, setError] = useState(''); - const [open, setOpen] = useState(false); - const [showAllItems, setShowAllItems] = useState(false); - const [localSelectedData, setLocalSelectedData] = useState<Option[]>(selectedData); - - // Sync local state with prop changes - useEffect(() => { - setLocalSelectedData(selectedData); - }, [selectedData]); - - const handleDelete = useCallback( - (id: string) => { - const newData = localSelectedData.filter((item) => item.id !== id); - setLocalSelectedData(newData); - setFilterData(newData); - }, - [localSelectedData, setFilterData] - ); - - const handleAdd = useCallback( - (_event: React.SyntheticEvent, value: Option | null) => { - if (!value) return; - - // Check for duplicates - const isDuplicate = localSelectedData.some((item) => item.id === value.id); - if (isDuplicate) { - setError(`${type} already selected`); - return; - } - - // Update both local and parent state - const newData = [...localSelectedData, value]; - setLocalSelectedData(newData); - setFilterData(newData); - setError(''); - setSearchValue(''); - setOpen(false); - }, - [localSelectedData, setFilterData, type, setSearchValue] - ); - - const handleInputChange = useCallback( - (_event: React.SyntheticEvent, value: string) => { - setSearchValue(value); - if (value === '') { - setOpen(false); - } else { - const encodedValue = encodeURIComponent(value); - fetchSuggestions(encodedValue); - setError(''); - setOpen(true); - } - }, - [fetchSuggestions, setSearchValue] - ); - - return ( - <Box sx={{ width: '100%' }}> - <Autocomplete - id={`${type}-search-field`} - style={{ width: '100%' }} - options={data} - getOptionLabel={() => searchValue} - isOptionEqualToValue={(option: Option, value: Option) => option.id === value.id} - noOptionsText={isLoading ? 'Loading...' : `No ${type} found`} - loading={isLoading} - open={open} - onClose={() => setOpen(false)} - disabled={disabled} - value={undefined} - inputValue={searchValue} - onChange={handleAdd} - onInputChange={handleInputChange} - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - filterOptions={(x) => x} - disableClearable - includeInputInList - filterSelectedOptions - disableListWrap - clearOnBlur - popupIcon={null} - blurOnSelect - forcePopupIcon={false} - renderInput={(params) => ( - <TextField - {...params} - label={label || `Add ${type}`} - error={!!error} - helperText={error} - fullWidth - InputLabelProps={{ - style: { - fontFamily: 'inherit' - } - }} - InputProps={{ - ...params.InputProps, - endAdornment: ( - <React.Fragment> - {isLoading ? <CircularProgress color="inherit" size={20} /> : null} - </React.Fragment> - ) - }} - /> - )} - renderOption={(props, option: Option) => ( - <li {...props} key={option.id}> - <Box component="li" sx={{ '& > img': { mr: 2, flexShrink: 0 } }}> - <Grid2 container alignItems="center"> - <Grid2> - <Box sx={{ color: 'text.secondary', mr: 2 }}>{iconComponent}</Box> - </Grid2> - <Grid2 size="grow"> - <Typography variant="body2">{option.name}</Typography> - </Grid2> - </Grid2> - </Box> - </li> - )} - /> - <Box - sx={{ - display: 'flex', - flexWrap: 'wrap', - gap: 0.5, - mt: localSelectedData?.length > 0 ? '0.5rem' : '' - }} - > - {!showAllItems && localSelectedData?.length > 0 && ( - <Chip - key={localSelectedData[localSelectedData.length - 1]?.id} - avatar={iconComponent} - label={localSelectedData[localSelectedData.length - 1]?.name} - size="small" - onDelete={() => handleDelete(localSelectedData[localSelectedData.length - 1]?.id)} - deleteIcon={ - <Tooltip title={`Remove ${type}`}> - <CloseIcon style={iconSmall} /> - </Tooltip> - } - /> - )} - {showAllItems && - localSelectedData?.map((obj) => ( - <Chip - key={obj.id} - avatar={<OrgIcon {...iconSmall} />} - label={obj.name} - size="small" - onDelete={() => handleDelete(obj.id)} - deleteIcon={ - <Tooltip title={`Remove ${type}`}> - <CloseIcon style={iconSmall} /> - </Tooltip> - } - /> - ))} - {localSelectedData?.length > 1 && ( - <Typography - onClick={() => setShowAllItems(!showAllItems)} - sx={{ - cursor: 'pointer' - }} - > - {showAllItems ? '(hide)' : `(+${localSelectedData?.length - 1})`} - </Typography> - )} - </Box> - </Box> - ); -}; - -export default InputSearchField; diff --git a/src/custom/InputSearchField/index.ts b/src/custom/InputSearchField/index.ts deleted file mode 100644 index 6ad430f53..000000000 --- a/src/custom/InputSearchField/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import InputSearchField from './InputSearchField'; - -export { InputSearchField }; diff --git a/src/custom/LearningCard/LearningCard.tsx b/src/custom/LearningCard/LearningCard.tsx deleted file mode 100644 index 910e6ea19..000000000 --- a/src/custom/LearningCard/LearningCard.tsx +++ /dev/null @@ -1,105 +0,0 @@ -import React from 'react'; -import { - Card2, - CardActive, - CardDesc, - CardHead, - CardImage, - CardLink, - CardParent, - CardSubdata, - CardWrapper -} from './style'; - -interface Tutorial { - frontmatter: { - disabled: string; - themeColor: string; - title: string; - courseTitle: string; - description: string; - status?: boolean; - cardImage: string; - }; -} - -interface Props { - tutorial: Tutorial; - path?: string; - courseCount: number; - courseType: string; -} - -const OptionalLink: React.FC<React.PropsWithChildren<{ path?: string }>> = ({ path, children }) => { - if (!path) { - return <>{children}</>; - } - - return <CardLink href={path}>{children}</CardLink>; -}; - -const LearningCard: React.FC<Props> = ({ tutorial, path, courseCount, courseType }) => { - return ( - <CardWrapper> - {tutorial.frontmatter.disabled === 'yes' ? ( - <Card2> - <CardParent style={{ borderTop: `5px solid ${tutorial.frontmatter.themeColor}` }}> - <div> - <CardHead> - <h3> - {tutorial.frontmatter.title - ? tutorial.frontmatter.title - : tutorial.frontmatter.courseTitle} - </h3> - <div style={{ whiteSpace: 'nowrap' }}> - <span>Coming Soon</span> - </div> - </CardHead> - <CardDesc> - <p className="summary">{tutorial.frontmatter.description}</p> - </CardDesc> - <CardImage> - <img src={tutorial.frontmatter.cardImage} alt={tutorial.frontmatter.title} /> - </CardImage> - </div> - </CardParent> - </Card2> - ) : ( - <OptionalLink path={path}> - <CardActive> - <CardParent style={{ borderTop: `5px solid ${tutorial.frontmatter.themeColor}` }}> - <div> - <CardHead> - <h3> - {tutorial.frontmatter.title - ? tutorial.frontmatter.title - : tutorial.frontmatter.courseTitle} - </h3> - {tutorial.frontmatter.status ? ( - <p> - <span>New</span> - </p> - ) : null} - </CardHead> - <CardDesc> - <p className="summary">{tutorial.frontmatter.description}</p> - </CardDesc> - <CardSubdata className="card-subdata"> - <p> - {courseCount} {courseType} - {courseCount > 1 ? 's' : ''} - </p> - </CardSubdata> - <CardImage> - <img src={tutorial.frontmatter.cardImage} /> - </CardImage> - </div> - </CardParent> - </CardActive> - </OptionalLink> - )} - </CardWrapper> - ); -}; - -export default LearningCard; diff --git a/src/custom/LearningCard/index.tsx b/src/custom/LearningCard/index.tsx deleted file mode 100644 index 3f99a89dc..000000000 --- a/src/custom/LearningCard/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import LearningCard from './LearningCard'; - -export { LearningCard }; diff --git a/src/custom/LearningCard/style.tsx b/src/custom/LearningCard/style.tsx deleted file mode 100644 index 9ec05f7bb..000000000 --- a/src/custom/LearningCard/style.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import { styled } from '@mui/material/styles'; -import { BLACK, ONYX_BLACK, SILVER_GRAY, WHITE } from '../../theme'; - -const CardWrapper = styled('div')({ - width: '28rem', - height: '16rem', - margin: 'auto', - borderRadius: '1rem' -}); - -const CardActive = styled('div')(({ theme }) => ({ - cursor: 'pointer', - transition: 'all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s', - '&:hover': { - boxShadow: `${theme.palette.background.brand?.default} 0px 0px 19px 6px` - }, - backgroundColor: theme.palette.mode === 'light' ? WHITE : BLACK -})); - -const CardLink = styled('a')({ - color: 'black', - textDecoration: 'none' -}); - -const CardParent = styled('div')(({ theme }) => ({ - borderTop: `5px solid ${theme.palette.background.brand?.default}`, - borderRadius: '0.25rem', - minHeight: '16rem', - display: 'flex', - flexDirection: 'column', - justifyContent: 'space-between', - boxShadow: '0px 0.75rem 1rem 0.25rem rgba(0, 0, 0, 0.12)', - position: 'relative', - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' -})); - -const Card2 = styled('div')(({ theme }) => ({ - background: theme.palette.mode === 'light' ? SILVER_GRAY : ONYX_BLACK, - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' -})); - -const CardHead = styled('div')(({ theme }) => ({ - display: 'flex', - padding: '1rem', - '& span': { - border: `1px solid ${theme.palette.primary.dark}`, - color: theme.palette.text.primary, - borderRadius: '0.8rem', - padding: '0.05rem 0.75rem', - fontSize: '1rem', - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' - }, - '& h3': { - color: theme.palette.text.primary, - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' - } -})); - -const CardDesc = styled('div')(({ theme }) => ({ - padding: '0 1rem', - '.summary': { - color: theme.palette.grey['700'], - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' - }, - p: { - fontSize: '1rem' - } -})); - -const CardSubdata = styled('div')(({ theme }) => ({ - padding: '0 1rem', - position: 'absolute', - bottom: '0rem', - p: { - fontSize: '1rem', - color: theme.palette.text.primary, - fontWeight: 600, - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' - } -})); - -const CardImage = styled('div')({ - textAlign: 'center', - position: 'absolute', - bottom: '0.1rem', - right: '0.75rem', - opacity: 0.2, - img: { - height: '8.5rem', - width: '8.5rem' - } -}); - -export { - Card2, - CardActive, - CardDesc, - CardHead, - CardImage, - CardLink, - CardParent, - CardSubdata, - CardWrapper -}; diff --git a/src/custom/LearningContent/LearningContent.tsx b/src/custom/LearningContent/LearningContent.tsx deleted file mode 100644 index 286578af5..000000000 --- a/src/custom/LearningContent/LearningContent.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import React from 'react'; -import { ChapterContent, ChapterDesc, ChapterNumber, ContentCardWrapper } from './style'; - -interface ChapterProps { - frontmatter: { - courseTitle: string; - chapterTitle?: string; - description: string; - }; -} - -interface ContentCardProps { - chapterNum: number; - chapter: ChapterProps; -} - -const LearningContent: React.FC<ContentCardProps> = ({ chapterNum, chapter }) => ( - <ContentCardWrapper - id={chapter.frontmatter.courseTitle ? chapter.frontmatter.courseTitle : undefined} - > - <ChapterContent> - <ChapterNumber>{chapterNum}</ChapterNumber> - <ChapterDesc> - <h2> - {chapter.frontmatter.chapterTitle - ? chapter.frontmatter.chapterTitle - : chapter.frontmatter.courseTitle} - </h2> - <p>{chapter.frontmatter.description}</p> - </ChapterDesc> - </ChapterContent> - </ContentCardWrapper> -); - -export default LearningContent; diff --git a/src/custom/LearningContent/index.tsx b/src/custom/LearningContent/index.tsx deleted file mode 100644 index 33a542c14..000000000 --- a/src/custom/LearningContent/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import LearningContent from './LearningContent'; - -export { LearningContent }; diff --git a/src/custom/LearningContent/style.tsx b/src/custom/LearningContent/style.tsx deleted file mode 100644 index 63ca90891..000000000 --- a/src/custom/LearningContent/style.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { styled } from '@mui/material'; - -export const ContentCardWrapper = styled('div')(({ theme }) => ({ - padding: '2.5rem', - margin: '2rem 0', - backgroundColor: theme.palette.grey['A400'], - display: 'flex', - border: `1px solid ${theme.palette.common.black}`, - justifyContent: 'space-between', - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)', - '&:hover': { - transition: - 'background 150ms ease-out 0s, border 150ms ease-out 0s, transform 150ms ease-out 0s', - transform: 'translate3d(0px, -1px, 0px)', - boxShadow: `${theme.palette.common.black} 0px 8px 16px 0px` - }, - '@media screen and (max-width: 992px)': { - padding: '1.5rem' - }, - '@media screen and (max-width: 500px)': { - padding: '0.75rem' - } -})); - -export const ChapterContent = styled('div')({ - display: 'inline-flex' -}); - -export const ChapterNumber = styled('div')(({ theme }) => ({ - fontSize: '2rem', - margin: '0 2rem 0 1rem', - color: theme.palette.grey['800'], - alignSelf: 'center', - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' -})); - -export const ChapterDesc = styled('div')(({ theme }) => ({ - h2: { - margin: '0.25rem 0' - }, - p: { - margin: '0.35rem 0', - color: theme.palette.grey['800'], - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' - } -})); diff --git a/src/custom/Markdown/index.tsx b/src/custom/Markdown/index.tsx deleted file mode 100644 index 7ccdc2040..000000000 --- a/src/custom/Markdown/index.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import ReactMarkdown from 'react-markdown'; -import rehypeRaw from 'rehype-raw'; -import remarkGfm from 'remark-gfm'; -import { - BasicAnchorMarkdown, - StyledMarkdown, - StyledMarkdownBlockquote, - StyledMarkdownCode, - StyledMarkdownH1, - StyledMarkdownH2, - StyledMarkdownH3, - StyledMarkdownH4, - StyledMarkdownH5, - StyledMarkdownH6, - StyledMarkdownLi, - StyledMarkdownP, - StyledMarkdownPre, - StyledMarkdownTd, - StyledMarkdownTh, - StyledMarkdownTooltipP, - StyledMarkdownUl -} from './style'; -export interface RenderMarkdownProps { - content: string; -} - -export const RenderMarkdown: React.FC<RenderMarkdownProps> = ({ content }) => { - return ( - <ReactMarkdown - remarkPlugins={[remarkGfm]} - rehypePlugins={[rehypeRaw]} - components={{ - p: ({ ...props }) => <StyledMarkdownP>{props.children}</StyledMarkdownP>, - a: ({ ...props }) => ( - <StyledMarkdown - onClick={(e) => { - e.preventDefault(); - window.open(props.href, '_blank'); - }} - href={props.href} - > - {props.children} - </StyledMarkdown> - ), - h1: ({ ...props }) => <StyledMarkdownH1>{props.children}</StyledMarkdownH1>, - h2: ({ ...props }) => <StyledMarkdownH2>{props.children}</StyledMarkdownH2>, - h3: ({ ...props }) => <StyledMarkdownH3>{props.children}</StyledMarkdownH3>, - h4: ({ ...props }) => <StyledMarkdownH4>{props.children}</StyledMarkdownH4>, - h5: ({ ...props }) => <StyledMarkdownH5>{props.children}</StyledMarkdownH5>, - h6: ({ ...props }) => <StyledMarkdownH6>{props.children}</StyledMarkdownH6>, - blockquote: ({ ...props }) => ( - <StyledMarkdownBlockquote>{props.children}</StyledMarkdownBlockquote> - ), - ul: ({ ...props }) => <StyledMarkdownUl>{props.children}</StyledMarkdownUl>, - li: ({ ...props }) => <StyledMarkdownLi>{props.children}</StyledMarkdownLi>, - th: ({ ...props }) => <StyledMarkdownTh>{props.children}</StyledMarkdownTh>, - td: ({ ...props }) => <StyledMarkdownTd>{props.children}</StyledMarkdownTd>, - pre: ({ ...props }) => <StyledMarkdownPre>{props.children}</StyledMarkdownPre>, - code: ({ ...props }) => <StyledMarkdownCode>{props.children}</StyledMarkdownCode> - }} - > - {content} - </ReactMarkdown> - ); -}; - -export const RenderMarkdownTooltip: React.FC<RenderMarkdownProps> = ({ content }) => { - const processDescription = (desc: string | undefined): string | undefined => { - if (!desc) return desc; - try { - // -> json.parse will handle esacpe characters - return JSON.parse(`"${desc}"`); - } catch { - return desc; - } - }; - return ( - <ReactMarkdown - remarkPlugins={[remarkGfm]} - components={{ - p: ({ ...props }) => <StyledMarkdownTooltipP>{props.children}</StyledMarkdownTooltipP>, - a: ({ ...props }) => ( - <StyledMarkdown - onClick={(e) => { - window.open(props.href, '_blank'); - e.stopPropagation(); - }} - as="a" - > - {props.children} - </StyledMarkdown> - ), - h1: ({ ...props }) => <StyledMarkdownH1>{props.children}</StyledMarkdownH1>, - h2: ({ ...props }) => <StyledMarkdownH2>{props.children}</StyledMarkdownH2>, - h3: ({ ...props }) => <StyledMarkdownH3>{props.children}</StyledMarkdownH3>, - h4: ({ ...props }) => <StyledMarkdownH4>{props.children}</StyledMarkdownH4>, - h5: ({ ...props }) => <StyledMarkdownH5>{props.children}</StyledMarkdownH5>, - h6: ({ ...props }) => <StyledMarkdownH6>{props.children}</StyledMarkdownH6>, - blockquote: ({ ...props }) => ( - <StyledMarkdownBlockquote>{props.children}</StyledMarkdownBlockquote> - ), - ul: ({ ...props }) => <StyledMarkdownUl>{props.children}</StyledMarkdownUl>, - li: ({ ...props }) => <StyledMarkdownLi>{props.children}</StyledMarkdownLi>, - th: ({ ...props }) => <StyledMarkdownTh>{props.children}</StyledMarkdownTh>, - td: ({ ...props }) => <StyledMarkdownTd>{props.children}</StyledMarkdownTd> - }} - > - {processDescription(content) as string} - </ReactMarkdown> - ); -}; - -// Markdown support for notifications markdown content -export const BasicMarkdown: React.FC<RenderMarkdownProps> = ({ content }) => { - return ( - <ReactMarkdown - remarkPlugins={[remarkGfm]} - components={{ - a: ({ ...props }) => ( - <BasicAnchorMarkdown - onClick={(e) => { - window.open(props.href, '_blank'); - e.stopPropagation(); - }} - as="a" - > - {props.children} - </BasicAnchorMarkdown> - ) - }} - > - {content} - </ReactMarkdown> - ); -}; diff --git a/src/custom/Markdown/style.tsx b/src/custom/Markdown/style.tsx deleted file mode 100644 index 0139f598a..000000000 --- a/src/custom/Markdown/style.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import { styled } from '@mui/material'; -import { text } from '../../theme/colors/colors'; - -export const StyledMarkdown = styled('a')(({ theme }) => ({ - color: theme.palette.background.brand?.default, - textDecoration: 'none', - '&:hover': { - textDecoration: 'underline' - }, - cursor: 'pointer', - fontFamily: 'inherit' -})); - -// anchor style for notifications markdown content -export const BasicAnchorMarkdown = styled('a')(() => ({ - textDecoration: 'none', - '&:hover': { - textDecoration: 'underline' - }, - cursor: 'pointer' -})); - -export const StyledMarkdownP = styled('p')(({ theme }) => ({ - color: theme.palette.text.default, - marginBlock: '0px', - ...theme.typography.textB1Regular, - fontFamily: 'inherit' -})); - -export const StyledMarkdownTooltipP = styled('p')(({ theme }) => ({ - color: theme.palette.text.constant?.white || text.inverse, - marginBlock: '0px', - fontFamily: 'inherit' -})); - -export const StyledMarkdownH1 = styled('h1')(({ theme }) => ({ - color: theme.palette.text.default, - fontFamily: 'inherit' -})); - -export const StyledMarkdownH2 = styled('h2')(({ theme }) => ({ - color: theme.palette.text.default, - fontFamily: 'inherit' -})); - -export const StyledMarkdownH3 = styled('h3')(({ theme }) => ({ - color: theme.palette.text.default, - fontFamily: 'inherit' -})); - -export const StyledMarkdownH4 = styled('h4')(({ theme }) => ({ - color: theme.palette.text.default, - fontFamily: 'inherit' -})); - -export const StyledMarkdownH5 = styled('h5')(({ theme }) => ({ - color: theme.palette.text.default, - fontFamily: 'inherit' -})); - -export const StyledMarkdownH6 = styled('h6')(({ theme }) => ({ - color: theme.palette.text.default, - fontFamily: 'inherit' -})); - -export const StyledMarkdownBlockquote = styled('blockquote')(({ theme }) => ({ - color: theme.palette.text.default, - borderLeft: `2px solid ${theme.palette.text.brand}`, - backgroundColor: theme.palette.background.tertiary -})); - -export const StyledMarkdownUl = styled('ul')(({ theme }) => ({ - color: theme.palette.text.default -})); - -export const StyledMarkdownLi = styled('li')(({ theme }) => ({ - color: theme.palette.text.default, - ...theme.typography.textB1Regular, - fontFamily: 'inherit' -})); - -export const StyledMarkdownTh = styled('th')(({ theme }) => ({ - color: theme.palette.text.default, - ...theme.typography.textH3Medium, - marginBlock: '0px', - fontFamily: 'inherit' -})); - -export const StyledMarkdownTd = styled('td')(({ theme }) => ({ - color: theme.palette.text.default, - marginBlock: '0px', - ...theme.typography.textB1Regular, - fontFamily: 'inherit' -})); - -export const StyledMarkdownPre = styled('pre')(({ theme }) => ({ - background: theme.palette.background.code, - whiteSpace: 'pre-line', - fontFamily: 'inherit' -})); - -export const StyledMarkdownCode = styled('code')(({ theme }) => ({ - background: theme.palette.background.code, - whiteSpace: 'pre-line', - padding: '1.5px', - paddingInline: '5px', - fontFamily: 'inherit', - borderRadius: 3 -})); diff --git a/src/custom/Modal/index.tsx b/src/custom/Modal/index.tsx deleted file mode 100644 index aa2fb22de..000000000 --- a/src/custom/Modal/index.tsx +++ /dev/null @@ -1,297 +0,0 @@ -import { ButtonProps, DialogProps, styled } from '@mui/material'; -import React, { useRef, useState } from 'react'; -import { Box, Dialog, IconButton, Paper, Typography } from '../../base'; -import { ContainedButton, OutlinedButton, TextButton } from '../../base/Button/Button'; -import { iconLarge, iconMedium } from '../../constants/iconsSizes'; -import { CloseIcon, FullScreenIcon, InfoCircleIcon } from '../../icons'; -import FullScreenExitIcon from '../../icons/Fullscreen/FullScreenExitIcon'; -import { darkModalGradient, lightModalGradient } from '../../theme/colors/colors'; -import { CustomTooltip } from '../CustomTooltip'; - -interface ModalProps extends DialogProps { - closeModal: () => void; - title: string; - headerIcon?: React.ReactNode; - reactNode?: React.ReactNode; - isFullScreenModeAllowed?: boolean; -} - -interface ModalFooterProps { - children: React.ReactNode; - variant?: 'filled' | 'transparent'; - helpText?: string; - hasHelpText?: boolean; -} - -type openModalCallback = (props: { - title: string; - reactNode?: React.ReactNode; - onClose?: () => void; -}) => void; - -interface UseModalReturnI extends ModalProps { - openModal: openModalCallback; - isOpen: boolean; -} - -export const CloseBtn = styled(IconButton)` - && { - & svg { - fill: #fff; - } - transform: rotate(-90deg); - - &:hover { - transform: rotate(90deg); - transition: all 0.3s ease-in; - cursor: pointer; - } - } -`; - -const StyledDialog = styled(Dialog)` - && { - .MuiDialog-paper { - border-radius: 0.5rem; - overflow: hidden; - } - } -`; - -const FullscreenButton = styled(FullScreenIcon)(({ theme }) => ({ - height: '2.25rem', - width: '2.25rem', - fill: theme.palette.common.white, - cursor: 'pointer' -})); - -const FullscreenExitButton = styled(FullScreenExitIcon)(({ theme }) => ({ - height: '2.25rem', - width: '2.25rem', - fill: theme.palette.common.white, - cursor: 'pointer' -})); - -export const ModalStyledHeader = styled('div')(({ theme }) => ({ - background: theme.palette.mode === 'light' ? lightModalGradient.header : darkModalGradient.header, - color: '#eee', - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - padding: '1rem', - textAlign: 'center' -})); - -export const useModal = ({ headerIcon }: { headerIcon: React.ReactNode }): UseModalReturnI => { - const [open, setOpen] = useState(false); - const [title, setTitle] = useState<string>(''); - - const onCloseRef = useRef<(() => void) | null>(null); - - const [reactNode, setReactNode] = useState<React.ReactNode | null>(null); - - const openModal: openModalCallback = ({ title, reactNode = null, onClose }) => { - title && setTitle(title); - onClose && (onCloseRef.current = onClose); - setOpen(true); - reactNode && setReactNode(reactNode); - }; - - const closeModal = () => { - setOpen(false); - onCloseRef.current && onCloseRef.current(); - setReactNode(null); - setTitle(''); - onCloseRef.current = null; - }; - - return { - isOpen: open, // deprecated - open, - openModal, - reactNode, - title, - headerIcon, - closeModal - }; -}; - -export const ModalBody = styled(Paper)(({ theme }) => ({ - padding: '1rem', - backgroundColor: theme.palette.background.surfaces, - overflowY: 'auto', - height: '100%', - scrollbarWidth: 'none', - '&::-webkit-scrollbar': { - display: 'none' - }, - '-ms-overflow-style': 'none' -})); - -const StyledFooter = styled('div', { - shouldForwardProp: (prop) => prop !== 'variant' -})<ModalFooterProps>(({ theme, variant, hasHelpText }) => ({ - background: - variant === 'filled' - ? theme.palette.mode === 'light' - ? lightModalGradient.fotter - : darkModalGradient.fotter - : 'transparent', - display: 'flex', - alignItems: 'center', - justifyContent: hasHelpText ? 'space-between' : 'end', - padding: '1rem', - gap: '1rem', - - '&& .InfoCircleIcon': { - color: - variant === 'filled' ? theme.palette.common.white : theme.palette.background.info?.default - } -})); - -export const Modal: React.FC<ModalProps> = ({ - open, - closeModal, - title, - headerIcon, - reactNode, - children, - maxWidth = 'xs', - isFullScreenModeAllowed, - ...props -}) => { - const [fullScreen, setFullScreen] = useState(false); - const toggleFullScreen = () => { - setFullScreen((prev) => !prev); - }; - return ( - <StyledDialog - maxWidth={maxWidth} - open={open} - onClose={closeModal} - aria-labelledby="alert-dialog-slide-title" - aria-describedby="alert-dialog-slide-description" - fullScreen={fullScreen} - fullWidth={!fullScreen} - {...props} - > - {title && ( - <ModalStyledHeader> - {headerIcon && headerIcon} - <Typography component={'div'} variant="h6"> - {title} - </Typography> - <div style={{ display: 'flex', alignItems: 'center', gap: '1rem' }}> - {isFullScreenModeAllowed && ( - <CustomTooltip title={fullScreen ? 'Exit Fullscreen' : 'Enter Fullscreen'}> - {fullScreen ? ( - <FullscreenExitButton onClick={toggleFullScreen} /> - ) : ( - <FullscreenButton onClick={toggleFullScreen} /> - )} - </CustomTooltip> - )} - <CloseBtn onClick={closeModal}> - <CloseIcon {...iconLarge} fill="#fff"></CloseIcon> - </CloseBtn> - </div> - </ModalStyledHeader> - )} - - {reactNode && reactNode} - {children && children} - </StyledDialog> - ); -}; - -export const ModalFooter: React.FC<ModalFooterProps> = ({ helpText, children, variant }) => { - return ( - <StyledFooter variant={variant} hasHelpText={!!helpText}> - {helpText && ( - <CustomTooltip title={helpText} variant="standard" placement="top"> - <IconButton> - <InfoCircleIcon {...iconMedium} className="InfoCircleIcon" /> - </IconButton> - </CustomTooltip> - )} - {children} - </StyledFooter> - ); -}; - -interface ModalButtonPrimaryProps extends ButtonProps { - isOpen?: boolean; -} - -// ModalButtonPrimary -export const ModalButtonPrimary = styled(ContainedButton)<ModalButtonPrimaryProps>(({ theme }) => ({ - backgroundColor: theme.palette.background.brand?.default, - color: theme.palette.text.constant?.white, - '&:hover': { - background: theme.palette.background.brand?.hover - }, - '&.MuiButton-contained.Mui-disabled': { - color: theme.palette.text.constant?.disabled, - backgroundColor: theme.palette.background.constant?.disabled - } -})); - -// ModalButtonSecondary -export const ModalButtonSecondary = styled(OutlinedButton)(({ theme }) => ({ - '&.MuiButton-outlined': { - border: `1px solid ${theme.palette.background.constant?.white}`, - color: theme.palette.text.constant?.white, - backgroundColor: 'transparent', - '&:hover': { - background: 'transparent', - color: theme.palette.text.constant?.white - } - }, - '&.MuiButton-outlined.Mui-disabled': { - color: theme.palette.text.disabled, - border: 'none', - backgroundColor: theme.palette.background.brand?.disabled - } -})); - -// ModalButtonTertiary -export const ModalButtonTertiary = styled(TextButton)(({ theme }) => ({ - color: theme.palette.text.inverse -})); - -// ModalButtonDanger -export const ModalButtonDanger = styled(ContainedButton)(({ theme }) => ({ - backgroundColor: theme.palette.background.error?.default, - color: theme.palette.text.constant?.white, - '&:hover': { - background: theme.palette.background.error?.hover - } -})); - -const ButtonContainer = styled(Box)(() => ({ - width: '100%', - display: 'flex', - justifyContent: 'end', - gap: '1rem' -})); - -interface PrimaryActionButtonsProps { - primaryText: string; - secondaryText: string; - primaryButtonProps?: React.ComponentProps<typeof ModalButtonPrimary>; - secondaryButtonProps?: React.ComponentProps<typeof ModalButtonSecondary>; -} - -export const PrimaryActionButtons: React.FC<PrimaryActionButtonsProps> = ({ - primaryText, - secondaryText, - primaryButtonProps, - secondaryButtonProps -}) => { - return ( - <ButtonContainer> - <ModalButtonSecondary {...secondaryButtonProps}>{secondaryText}</ModalButtonSecondary> - <ModalButtonPrimary {...primaryButtonProps}>{primaryText}</ModalButtonPrimary> - </ButtonContainer> - ); -}; diff --git a/src/custom/ModalCard/ModalCard.tsx b/src/custom/ModalCard/ModalCard.tsx deleted file mode 100644 index 2e92bf8bb..000000000 --- a/src/custom/ModalCard/ModalCard.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { type DialogProps } from '@mui/material'; -import { - ButtonContainer, - ContentContainer, - HeaderModal, - HeaderTypography, - ModalWrapper -} from './style'; - -export interface CustomDialogProps { - open: boolean; - fullScreen?: boolean; - title?: string; - leftHeaderIcon?: React.ReactNode; - helpText?: string; - helpArea?: React.ReactNode; - actions?: React.ReactNode; - hideActions?: boolean; - styleContent?: React.CSSProperties; - content: React.ReactNode; - closeComponent: React.ReactNode; - maxWidth?: DialogProps['maxWidth']; - onClose: () => void; -} - -function ModalCard({ - title, - leftHeaderIcon, - helpText, - helpArea, - actions, - hideActions = false, - content, - closeComponent -}: CustomDialogProps): JSX.Element { - return ( - <ModalWrapper> - <HeaderModal> - {leftHeaderIcon && ( - <div style={{ display: 'flex', alignItems: 'center' }}>{leftHeaderIcon}</div> - )} - {title && ( - <> - <div style={{ display: 'flex', alignItems: 'center', color: 'white' }}> - <HeaderTypography>{title}</HeaderTypography> - </div> - </> - )} - - <div style={{ display: 'flex', alignItems: 'center' }}> - {helpText && <>{helpArea}</>} - {closeComponent} - </div> - </HeaderModal> - <ContentContainer>{content}</ContentContainer> - {!hideActions && <ButtonContainer>{actions}</ButtonContainer>} - </ModalWrapper> - ); -} - -export default ModalCard; diff --git a/src/custom/ModalCard/index.tsx b/src/custom/ModalCard/index.tsx deleted file mode 100644 index 93232c19d..000000000 --- a/src/custom/ModalCard/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import ModalCard from './ModalCard'; - -export { ModalCard }; diff --git a/src/custom/ModalCard/style.tsx b/src/custom/ModalCard/style.tsx deleted file mode 100644 index 7552e297f..000000000 --- a/src/custom/ModalCard/style.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { styled } from '@mui/material'; -import { Typography } from '../../base'; -import { WHITE } from '../../theme/colors/colors'; - -export const ContentContainer = styled('div')(({ theme }) => ({ - backgroundColor: theme.palette.background.surfaces -})); - -export const ModalWrapper = styled('div')(() => ({ - zIndex: '100', - borderRadius: '5px' -})); - -export const ButtonContainer = styled('div')(() => ({ - padding: '1.25rem 1rem', - display: 'flex', - justifyContent: 'flex-end', - - background: 'linear-gradient(90deg, #3B687B 0%, #507D90 100%)', - boxShadow: 'inset 0px 3px 5px 0px rgba(0,0,0,0.25)', - position: 'relative', - zIndex: '100' -})); - -export const HeaderTypography = styled(Typography)({ - fontSize: '18px' -}); -export const HeaderModal = styled('div')(() => ({ - display: 'flex', - borderRadius: '5px 5px 0px 0px', - justifyContent: 'space-between', - padding: '11px 16px', - height: '52px', - fill: WHITE, - boxShadow: 'inset 0px -1px 3px 0px rgba(0,0,0,0.2)', - background: 'linear-gradient(90deg, #3B687B 0%, #507D90 100%)' -})); diff --git a/src/custom/NavigationNavbar/index.tsx b/src/custom/NavigationNavbar/index.tsx deleted file mode 100644 index f9b89250a..000000000 --- a/src/custom/NavigationNavbar/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import NavigationNavbar from './navigationNavbar'; - -export { NavigationNavbar }; diff --git a/src/custom/NavigationNavbar/navigationNavbar.tsx b/src/custom/NavigationNavbar/navigationNavbar.tsx deleted file mode 100644 index d657dbb0a..000000000 --- a/src/custom/NavigationNavbar/navigationNavbar.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import ExpandLessIcon from '@mui/icons-material/ExpandLess'; -import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; -import { ListItemTextProps, MenuListProps, useMediaQuery, useTheme } from '@mui/material'; -import React, { MouseEvent, useState } from 'react'; -import { Collapse, Divider, ListItemText, MenuItem } from '../../base'; -import { IconWrapper, MenuItemList, MenuItemSubList, MenuListStyle, SubIconWrapper } from './style'; - -type NavigationItem = { - id: string; - title: string; - icon: React.ReactNode; - permission?: boolean; - onClick: () => void; - subItems?: NavigationItem[]; - addDivider?: boolean; - showOnWeb?: boolean; -}; - -interface NavigationNavbarProps { - navigationItems: NavigationItem[]; - MenuListProps?: Omit<MenuListProps, 'children'>; - ListItemTextProps?: Omit<ListItemTextProps, 'primary'>; -} - -const NavigationNavbar: React.FC<NavigationNavbarProps> = ({ - navigationItems, - MenuListProps = {}, - ListItemTextProps = {} -}) => { - const theme = useTheme(); - const isDesktop = useMediaQuery(theme.breakpoints.up('sm')); - const [openSectionId, setOpenSectionId] = useState<string | null>(null); - const toggleSectionOpen = (sectionId: string, event: MouseEvent<SVGSVGElement>) => { - event.stopPropagation(); - setOpenSectionId((currentOpenSectionId) => - currentOpenSectionId === sectionId ? null : sectionId - ); - }; - - return ( - <MenuListStyle {...MenuListProps} dense> - {navigationItems.map((item) => { - const isOpen = openSectionId === item.id; - const permission = item.permission ?? true; - const addDivider = item.addDivider ?? false; - - const showOnWeb = item.showOnWeb ?? true; - - if (!showOnWeb && isDesktop) { - return null; - } - - return ( - <React.Fragment key={item.id}> - <MenuItem - disabled={!permission} - onClick={item.onClick} - data-testid={`nav-item-${item.id}`} - > - <MenuItemList> - {item.icon && <IconWrapper>{item.icon}</IconWrapper>} - <ListItemText primary={item.title} {...ListItemTextProps} /> - </MenuItemList> - {item.subItems && ( - <ListItemText data-testid={`nav-toggle-${item.id}`}> - {isOpen ? ( - <ExpandLessIcon onClick={(e) => toggleSectionOpen(item.id, e)} /> - ) : ( - <ExpandMoreIcon onClick={(e) => toggleSectionOpen(item.id, e)} /> - )} - </ListItemText> - )} - </MenuItem> - {item.subItems && ( - <Collapse in={isOpen} timeout="auto" unmountOnExit variant="submenu"> - {item.subItems.map((subItem) => ( - <MenuItem - key={subItem.id} - disabled={!subItem.permission} - onClick={subItem.onClick} - data-testid={`nav-subitem-${subItem.id}`} - > - <MenuItemSubList> - {subItem.icon && <SubIconWrapper>{subItem.icon}</SubIconWrapper>} - <ListItemText primary={subItem.title} {...ListItemTextProps} /> - </MenuItemSubList> - </MenuItem> - ))} - </Collapse> - )} - {addDivider && <Divider />} - </React.Fragment> - ); - })} - </MenuListStyle> - ); -}; - -export default NavigationNavbar; diff --git a/src/custom/NavigationNavbar/style.tsx b/src/custom/NavigationNavbar/style.tsx deleted file mode 100644 index c7f0f6998..000000000 --- a/src/custom/NavigationNavbar/style.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { styled } from '@mui/material/styles'; -import { ListItem, MenuList } from '../../base'; - -export const ListItemStyle = styled('div')(({ theme }) => ({ - marginLeft: '.5rem', - color: theme.palette.background.secondary -})); - -export const MenuListStyle = styled(MenuList)({ - overflowY: 'auto', - scrollbarWidth: 'none', - '&::-webkit-scrollbar': { - width: '0em' - } -}); - -export const MenuItemList = styled(ListItem)(() => ({ - pointerEvents: 'auto', - margin: '0.5rem 0rem 0.5rem 0rem', - fontSize: '0.1rem', - padding: '0' -})); - -export const MenuItemSubList = styled(ListItem)(() => ({ - pointerEvents: 'auto', - margin: '0rem 0rem 0rem 0.5rem', - fontSize: '0.1rem' -})); - -export const IconWrapper = styled('div')({ - marginRight: '0.75rem', - marginLeft: '0.5rem' -}); - -export const SubIconWrapper = styled('div')({ - marginRight: '0.5rem' -}); diff --git a/src/custom/Note/Note.tsx b/src/custom/Note/Note.tsx deleted file mode 100644 index e9ac9ebdb..000000000 --- a/src/custom/Note/Note.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { styled } from '@mui/material'; -import { FC } from 'react'; -import { RenderMarkdownTooltip } from '../Markdown'; - -interface AlertProps { - type?: 'success' | 'warning' | 'note'; - title?: string; - content: string; -} - -const NoteWrapper = styled('div')<NoteWrapperProps>(({ type, theme }) => ({ - fontWeight: 500, - background: '#212529', - color: 'inherit', - marginTop: '2rem', - width: '100%', - height: '100%', - marginBottom: '2rem', - padding: '0.5rem 1rem', - borderRadius: 0, - borderStyle: 'solid', - borderColor: - type === 'warning' ? theme.palette.text.warning : theme.palette.background.brand?.default, - borderWidth: '0 0 0 4px' -})); - -const NoteHeading = styled('h4')<NoteWrapperProps>(({ type, theme }) => ({ - color: type === 'warning' ? theme.palette.text.warning : theme.palette.background.brand?.default, - fontSize: '1.35rem' -})); - -const NoteContent = styled('p')(({ theme }) => ({ - color: theme.palette.text.inverse -})); - -interface NoteWrapperProps { - type: 'success' | 'warning' | 'note'; -} - -const Note: FC<AlertProps> = ({ type = 'note', title, content }) => { - return ( - <NoteWrapper type={type}> - <NoteHeading type={type}>{title}</NoteHeading> - <NoteContent> - <RenderMarkdownTooltip content={content} /> - </NoteContent> - </NoteWrapper> - ); -}; - -export default Note; diff --git a/src/custom/Note/index.tsx b/src/custom/Note/index.tsx deleted file mode 100644 index 36e8f08f9..000000000 --- a/src/custom/Note/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import Note from './Note'; - -export { Note }; diff --git a/src/custom/Panel/Panel.tsx b/src/custom/Panel/Panel.tsx deleted file mode 100644 index e13a5de4d..000000000 --- a/src/custom/Panel/Panel.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import { Resizable } from 're-resizable'; -import React from 'react'; -import Draggable from 'react-draggable'; -import { Box, BoxProps, Tooltip } from '../../base'; -import { CloseIcon, CollapseAllIcon, ExpandAllIcon, FullScreenIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { ErrorBoundary } from '../ErrorBoundary'; -import { - CustomIconButton, - DragHandle, - DrawerHeader, - HeaderActionsContainer, - HeaderContainer, - PanelBody, - PanelContainer, - PanelTitle, - ResizableContent -} from './style'; - -export type PanelProps = { - isOpen: boolean; - children: React.ReactNode; - areAllExpanded?: boolean; - toggleExpandAll?: () => void; - handleClose: () => void; - sx?: BoxProps['sx']; - id?: string; - intitialPosition?: { - left?: string | number; - right?: string | number; - top?: string | number; - bottom?: string | number; - }; - defaultSize?: { - width?: string | number; - height?: string | number; - }; - minimizePanel?: () => void; - title?: string; -}; - -const Panel_: React.FC<PanelProps> = ({ - isOpen, - id = 'panel', - children, - areAllExpanded, - toggleExpandAll, - handleClose, - defaultSize, - intitialPosition, - sx, - minimizePanel, - title = '' -}) => { - const theme = useTheme(); - if (!isOpen) return null; - return ( - <Draggable handle=".drag-handle"> - <PanelContainer intitialPosition={intitialPosition} sx={sx}> - <Resizable - defaultSize={{ - width: defaultSize?.width || '18rem', - height: defaultSize?.height || 'auto' - }} - onResize={() => { - window.dispatchEvent(new Event('panel-resize')); - }} - enable={{ - top: true, - right: true, - bottom: true, - left: true, - topRight: true, - bottomRight: true, - bottomLeft: true, - topLeft: true - }} - > - <ResizableContent> - <ErrorBoundary> - <div className="drag-handle"> - <DrawerHeader> - <Box display="flex" justifyContent="flex-end" padding="8px"> - {toggleExpandAll && ( - <Tooltip title={areAllExpanded ? 'Collapse All' : 'Expand All'}> - <CustomIconButton onClick={toggleExpandAll}> - {areAllExpanded ? <CollapseAllIcon /> : <ExpandAllIcon />} - </CustomIconButton> - </Tooltip> - )} - </Box> - <DragHandle /> - <HeaderContainer> - <HeaderActionsContainer - id={`${id}-panel-header-actions-container`} - ></HeaderActionsContainer> - <PanelTitle>{title}</PanelTitle> - {minimizePanel && ( - <CustomIconButton onClick={minimizePanel}> - <FullScreenIcon fill={theme.palette.common.white} /> - </CustomIconButton> - )} - <CustomIconButton onClick={handleClose}> - <CloseIcon fill={theme.palette.common.white} /> - </CustomIconButton> - </HeaderContainer> - </DrawerHeader> - </div> - <PanelBody className="panel-body">{children}</PanelBody> - </ErrorBoundary> - </ResizableContent> - </Resizable> - </PanelContainer> - </Draggable> - ); -}; - -export const Panel: React.FC<PanelProps> = ({ ...props }) => { - return <Panel_ {...props} />; -}; diff --git a/src/custom/Panel/index.tsx b/src/custom/Panel/index.tsx deleted file mode 100644 index 0abd9a3ca..000000000 --- a/src/custom/Panel/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import { Panel } from './Panel'; - -export { Panel }; diff --git a/src/custom/Panel/style.tsx b/src/custom/Panel/style.tsx deleted file mode 100644 index 17c6fc80b..000000000 --- a/src/custom/Panel/style.tsx +++ /dev/null @@ -1,131 +0,0 @@ -import { ListItemProps } from '@mui/material'; -import { Box, IconButton, ListItem } from '../../base'; -import { PanelDragHandleIcon } from '../../icons/PanelDragHandle'; -import { styled } from '../../theme'; -import { PanelProps } from './Panel'; - -export const ListHeader = styled(ListItem)(({ theme }) => ({ - padding: theme.spacing(0.5, 0.5), - marginBlock: theme.spacing(1), - '& .MuiListItemText-primary': { - fontSize: '1rem', - textTransform: 'capitalize', - fontWeight: 700 - }, - cursor: 'pointer', - '&:hover': { - backgroundColor: theme.palette.action.hover - }, - '& .MuiSvgIcon-root': { - opacity: 0, - transition: 'opacity 0.2s' - }, - '&:hover .MuiSvgIcon-root': { - opacity: 1 - } -})); - -interface CustomListItemProps extends ListItemProps { - isVisible: boolean; -} - -export const StyledListItem = styled(ListItem, { - shouldForwardProp: (props) => props !== 'isVisible' -})<CustomListItemProps>(({ theme, isVisible }) => ({ - padding: theme.spacing(0.05, 0.5), - fontStyle: isVisible ? 'normal' : 'italic', - overflow: 'hidden', - textOverflow: 'ellipsis', - whiteSpace: 'nowrap', - '& .MuiSvgIcon-root': { - height: 20, - width: 20 - }, - '& .MuiListItemIcon-root': { - minWidth: 0, - opacity: isVisible ? 0.8 : 0.3 - }, - '& .MuiTypography-root': { - fontSize: '0.9rem', - opacity: isVisible ? 1 : 0.5 - } -})); - -export const DrawerHeader = styled('div')(({ theme }) => ({ - display: 'flex', - alignItems: 'center', - padding: theme.spacing(4, 2), - alignContent: 'stretch', - justifyContent: 'space-between', - cursor: 'move', - background: - theme.palette.mode === 'light' - ? 'linear-gradient(90deg, #3B687B 0%, #507D90 100%)' - : 'linear-gradient(90deg, #28353A 0%, #3D4F57 100%)', - height: '3rem', - flexShrink: 0 -})); - -export const PanelBody = styled(Box)(({ theme }) => ({ - padding: theme.spacing(2), - backgroundColor: theme.palette.background.surfaces, - overflow: 'auto', - flex: 1, - minHeight: 0 -})); - -export const ResizableContent = styled('div')({ - height: '100%', - display: 'flex', - flexDirection: 'column', - minHeight: '3rem' -}); - -export const PanelContainer = styled(Box)<{ intitialPosition: PanelProps['intitialPosition'] }>( - ({ theme, intitialPosition }) => ({ - borderRadius: '8px', - overflow: 'hidden', - flexShrink: 0, - zIndex: 100, - position: 'absolute', - backgroundColor: theme.palette.background.blur?.light, - boxShadow: `0 4px 16px ${theme.palette.background.blur?.light}`, - maxHeight: '80%', - display: 'flex', - boxSizing: 'border-box', - ...intitialPosition - }) -); - -export const DragHandle = styled(PanelDragHandleIcon)(({ theme }) => ({ - fill: theme.palette.common.white, - position: 'absolute', - top: '-0.3rem', - left: '50%' -})); - -export const HeaderActionsContainer = styled('div')({ - display: 'flex', - gap: '1rem', - justifyContent: 'flex-end', - alignItems: 'center' -}); - -export const HeaderContainer = styled('div')({ - display: 'flex', - justifyContent: 'end', - alignItems: 'center', - flex: '1' -}); - -export const CustomIconButton = styled(IconButton)(({ theme }) => ({ - color: theme.palette.common.white -})); - -export const PanelTitle = styled('div')(() => ({ - position: 'absolute', - left: '0', - right: '0', - marginInline: 'auto', - width: 'fit-content' -})); diff --git a/src/custom/PerformersSection/PerformersSection.tsx b/src/custom/PerformersSection/PerformersSection.tsx deleted file mode 100644 index 3066d7c42..000000000 --- a/src/custom/PerformersSection/PerformersSection.tsx +++ /dev/null @@ -1,305 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { memo, useMemo } from 'react'; -import { Box, Button } from '../../base'; -import { iconXSmall } from '../../constants/iconsSizes'; -import { LeaderBoardIcon, TropyIcon } from '../../icons'; -import { useMediaQuery, useTheme } from '../../theme'; -import { Carousel } from '../Carousel'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { ErrorBoundary } from '../ErrorBoundary'; -import { StateCardSekeleton } from './PerformersToogleButton'; -import { - CardsContainer, - ContentWrapper, - ErrorContainer, - HeaderSection, - HeaderTitle, - IconContainer, - MainContainer, - RepoTitle, - StatsValue, - StyledCard, - Title, - TitleBox, - UserNameText -} from './styles'; - -interface MetricConfig { - label: string; - id: string; - countKey: keyof Pattern; -} - -interface BaseQueryParams { - pathType: string; - page: number; - pagesize: number; - metrics: boolean; - expandUser: boolean; - trim: boolean; - order?: string; -} - -interface StatCardProps { - label: string; - countKey: string; - count: number; - patternName: string; - pattern: Pattern; - userName: string; - status: string; - id: string; - onCardClick: (pattern: Pattern) => void; - onIconClick: (sortOrder: string) => void; - onOpenLeaderboard?: () => void; -} - -interface PerformersSectionProps { - useGetCatalogFilters: (params: any) => any; - onCardClick: (pattern: Pattern) => void; - onIconClick: (sortOrder: string) => void; - onOpenLeaderboard?: () => void; -} - -type MetricType = 'view' | 'clone' | 'download' | 'deployment' | 'share'; - -const BASE_QUERY_PARAMS: BaseQueryParams = { - pathType: 'pattern', - page: 0, - pagesize: 1, - metrics: true, - expandUser: true, - trim: true -}; - -const METRICS: Record<MetricType, MetricConfig> = { - view: { - label: 'Most Opens', - id: 'open', - countKey: 'view_count' - }, - clone: { - label: 'Most Clones', - id: 'clone', - countKey: 'clone_count' - }, - download: { - label: 'Most Downloads', - id: 'download', - countKey: 'download_count' - }, - deployment: { - label: 'Most Deploys', - id: 'deployments', - countKey: 'deployment_count' - }, - share: { - label: 'Most Shares', - id: 'share', - countKey: 'share_count' - } -}; - -const createQueryParams = (metric: MetricType): BaseQueryParams => ({ - ...BASE_QUERY_PARAMS, - order: `${METRICS[metric].countKey} desc` -}); - -const StatCardComponent: React.FC<StatCardProps> = ({ - label, - countKey, - count, - patternName, - pattern, - userName, - status, - id, - onCardClick, - onIconClick -}) => { - const handleCardClick = () => { - onCardClick(pattern); - }; - - const handleIconClick = (e: React.MouseEvent, sortOrder: string) => { - e.stopPropagation(); - onIconClick(sortOrder); - }; - - const theme = useTheme(); - - return ( - <StyledCard elevation={0} status={status} onClick={handleCardClick}> - <ContentWrapper cardId={id}> - <HeaderSection> - <HeaderTitle>{label}</HeaderTitle> - <IconContainer onClick={(e) => handleIconClick(e, `${countKey}+desc`)}> - <LeaderBoardIcon {...iconXSmall} fill={theme.palette.common.black} /> - </IconContainer> - </HeaderSection> - - <StatsValue>{count}</StatsValue> - - <Box> - <RepoTitle>{patternName}</RepoTitle> - <UserNameText>by {userName}</UserNameText> - </Box> - </ContentWrapper> - </StyledCard> - ); -}; -interface PageArgs { - search?: string; - order?: string; - pagesize?: number; - page?: number; - [key: string]: any; -} - -export const withDefaultPageArgs = (args: PageArgs = {}): PageArgs => ({ - search: args.search ?? '', - order: args.order ?? '', - pagesize: args.pagesize ?? 0, - page: args.page ?? 0, - ...args -}); - -const StatCard = memo(StatCardComponent); -StatCard.displayName = 'StatCard'; - -const useMetricQueries = (useGetCatalogFilters: PerformersSectionProps['useGetCatalogFilters']) => { - const viewQuery = useGetCatalogFilters(withDefaultPageArgs(createQueryParams('view'))); - - const cloneQuery = useGetCatalogFilters(withDefaultPageArgs(createQueryParams('clone'))); - - const downloadQuery = useGetCatalogFilters(withDefaultPageArgs(createQueryParams('download'))); - - const deploymentQuery = useGetCatalogFilters( - withDefaultPageArgs(createQueryParams('deployment')) - ); - - const shareQuery = useGetCatalogFilters(withDefaultPageArgs(createQueryParams('share'))); - - const metricQueries = { - view: viewQuery, - clone: cloneQuery, - download: downloadQuery, - deployment: deploymentQuery, - share: shareQuery - }; - - return { - queries: metricQueries, - isLoading: Object.values(metricQueries).some((query) => query.isLoading), - hasError: Object.values(metricQueries).some((query) => query.isError) - }; -}; - -const processQueryData = ( - queries: Record<MetricType, any>, - metric: MetricType -): Omit< - StatCardProps, - 'onCardClick' | 'onIconClick' | 'onAuthorClick' | 'onStatusClick' -> | null => { - const query = queries[metric]; - const config = METRICS[metric]; - const pattern = query?.isSuccess && query.data?.patterns?.[0]; - - if (!pattern) return null; - - return { - label: config.label, - countKey: config.countKey, - count: pattern[config.countKey], - patternName: pattern.name || 'Unknown', - pattern: pattern, - userName: pattern.user?.first_name || 'Unknown', - id: config.id, - status: pattern?.catalog_data?.content_class - }; -}; - -const PerformersSection: React.FC<PerformersSectionProps> = ({ - useGetCatalogFilters, - onCardClick, - onIconClick, - onOpenLeaderboard -}) => { - const theme = useTheme(); - const { queries, isLoading, hasError } = useMetricQueries(useGetCatalogFilters); - const smallScreen = useMediaQuery(theme.breakpoints.down('sm')); - - const stats = useMemo( - () => - (Object.keys(METRICS) as MetricType[]) - .map((metric) => processQueryData(queries, metric)) - .filter((stat): stat is Omit<StatCardProps, 'onCardClick' | 'onIconClick'> => - Boolean(stat) - ), - [queries] - ); - - if (hasError) - return ( - <MainContainer> - <ErrorContainer>Error loading statistics. Please try again later.</ErrorContainer> - </MainContainer> - ); - - const statComponents = stats.map((stat, index) => ( - <StatCard - key={`${stat.id}-${index}`} - {...stat} - onCardClick={onCardClick} - onIconClick={onIconClick} - /> - )); - - return ( - <ErrorBoundary> - <MainContainer> - <TitleBox> - <Box display={'flex'} alignItems="center" gap={1}> - <Title>Top Performers</Title> - <TropyIcon - style={{ - height: '2rem', - width: '2rem', - color: theme.palette.icon.secondary, - display: smallScreen ? 'none' : 'inline-flex' - }} - /> - </Box> - {onOpenLeaderboard && ( - <div> - <Button variant="contained" onClick={() => onOpenLeaderboard()}> - <TropyIcon - style={{ - height: '2rem', - width: '2rem', - display: smallScreen ? 'inline-flex' : 'none' - }} - /> - <p - style={{ - margin: 0, - display: smallScreen ? 'none' : 'inline-flex' - }} - > - Open Leaderboard - </p> - </Button> - </div> - )} - </TitleBox> - <CardsContainer> - {isLoading && <StateCardSekeleton />} - <Carousel items={statComponents} /> - </CardsContainer> - </MainContainer> - </ErrorBoundary> - ); -}; - -export default memo(PerformersSection); diff --git a/src/custom/PerformersSection/PerformersToogleButton.tsx b/src/custom/PerformersSection/PerformersToogleButton.tsx deleted file mode 100644 index eb18a7541..000000000 --- a/src/custom/PerformersSection/PerformersToogleButton.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import React from 'react'; -import { Button, Skeleton } from '../../base'; -import { TropyIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { CustomTooltip } from '../CustomTooltip'; -import { CardSkeleton } from './styles'; - -interface PerformersSectionButtonProps { - open: boolean; - handleClick: () => void; -} - -interface OpenLeaderBoardButtonProps { - handleClick: () => void; -} - -const PerformersSectionButton: React.FC<PerformersSectionButtonProps> = ({ open, handleClick }) => { - const theme = useTheme(); - - return ( - <CustomTooltip title={open ? 'Hide Performers' : 'Show Performers'} placement="bottom"> - <span> - <Button - variant="contained" - onClick={handleClick} - sx={{ - height: '3.7rem', - padding: '0.3rem 1rem 0.3rem 0.3rem' - }} - style={{ - backgroundColor: open ? undefined : theme.palette.background.constant?.disabled - }} - > - <TropyIcon style={{ height: '2rem', width: '2rem', marginRight: '10px' }} /> - {open ? 'Hide Performers' : 'Show Performers'} - </Button> - </span> - </CustomTooltip> - ); -}; - -const OpenLeaderBoardButton: React.FC<OpenLeaderBoardButtonProps> = ({ handleClick }) => { - return ( - <CustomTooltip title={'Open Leaderboard'} placement="bottom"> - <Button - variant="contained" - onClick={handleClick} - sx={{ - height: '3.7rem', - padding: '0.3rem', - display: { xs: 'inline-flex', sm: 'none' } - }} - > - <TropyIcon style={{ height: '2rem', width: '2rem' }} /> - </Button> - </CustomTooltip> - ); -}; - -export const StateCardSekeleton = () => { - return ( - <CardSkeleton> - {[...Array(5)].map((_, index) => ( - <Skeleton - key={index} - variant={'rounded'} - height={'13.5rem'} - width={'inherit'} - sx={{ - minWidth: '150px' - }} - style={{ borderRadius: '1rem' }} - /> - ))} - </CardSkeleton> - ); -}; -export { OpenLeaderBoardButton, PerformersSectionButton }; diff --git a/src/custom/PerformersSection/index.ts b/src/custom/PerformersSection/index.ts deleted file mode 100644 index a6fe7e4be..000000000 --- a/src/custom/PerformersSection/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import PerformersSection from './PerformersSection'; -import { OpenLeaderBoardButton, PerformersSectionButton } from './PerformersToogleButton'; -export { OpenLeaderBoardButton, PerformersSection, PerformersSectionButton }; diff --git a/src/custom/PerformersSection/styles.tsx b/src/custom/PerformersSection/styles.tsx deleted file mode 100644 index 0731371ab..000000000 --- a/src/custom/PerformersSection/styles.tsx +++ /dev/null @@ -1,232 +0,0 @@ -import { Box, Card, CardContent, Typography } from '../../base'; -import { DARK_TEAL, styled } from '../../theme'; -import { getCatalogCardBackground } from '../CustomCatalog/style'; - -interface ContentWrapperProps { - cardId?: string; -} - -interface StyledCardProps { - status?: string; -} - -export const ChartDiv = styled(Box)(() => ({ - padding: '1rem', - borderRadius: '1rem', - backgroundColor: 'white', - width: '100%', - alignSelf: 'center', - height: '20rem', - marginBottom: '1rem', - boxShadow: '0px 2px 10px rgba(0, 0, 0, 0.2)', - display: 'block', - ['@media (max-width:900px)']: { - height: '18rem', - marginInline: '0', - padding: '0.5rem' - } -})); - -export const LoadButtonDiv = styled('div')(() => ({ - width: '100%', - justifyContent: 'center', - display: 'flex', - alignItems: 'center', - marginTop: '20px' -})); - -export const EmptyContainer = styled(Box)(() => ({ - display: 'flex', - justifyContent: 'space-evenly', - gap: '2.5rem', - width: '100%' -})); - -export const ContentContainer = styled(Box)(() => ({ - display: 'flex', - flexWrap: 'wrap', - justifyContent: 'space-evenly', - gap: '2.5rem', - width: '100%' -})); - -export const EmptyStateDiv = styled('div')(({ theme }) => ({ - backgroundColor: theme.palette.common.white, - textAlign: 'center', - borderRadius: '1rem', - width: '100%', - padding: '1.5rem', - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center' -})); - -export const MainContainer = styled(Box)(({ theme }) => ({ - background: - theme.palette.mode === 'light' - ? theme.palette.background.default - : theme.palette.background.secondary, - paddingTop: theme.spacing(2), - borderRadius: '1rem', - display: 'flex', - alignItems: 'center', - flexDirection: 'column' -})); - -export const TitleBox = styled(Box)(({ theme }) => ({ - paddingInline: theme.spacing(2), - display: 'flex', - alignItems: 'center', - placeSelf: 'flex-start', - justifyContent: 'space-between', - width: '100%' -})); - -export const Title = styled(Typography)(({ theme }) => ({ - fontSize: '1.5rem', - fontWeight: 600, - color: theme.palette.text.default -})); - -export const StyledCard = styled(Card)<StyledCardProps>(({ theme }) => ({ - width: '200px', - margin: '0.5rem', - height: '100%', - borderRadius: '1rem', - position: 'relative', - overflow: 'hidden', - transition: 'all 0.3s ease-in-out', - background: getCatalogCardBackground(theme.palette.mode === 'light'), - border: '1px solid transparent', - boxShadow: '2px 2px 3px 2px rgb(0, 211, 169, 0.5)', - '&:hover': { - transform: 'translateY(-4px)', - boxShadow: `2px 2px 3px 2px ${theme.palette.text.brand}`, - cursor: 'pointer' - } -})); - -export const CardSkeleton = styled('div')(() => ({ - display: 'flex', - gap: '10px', - flexWrap: 'nowrap', - justifyContent: 'center', - width: '100%' -})); - -export const IconContainer = styled(Box)(() => ({ - width: '2rem', - height: '2rem', - padding: '0.25rem', - borderRadius: '8px', - backgroundColor: '#D6FFF7', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - transition: 'all 0.3s ease', - '& svg': { - transition: 'transform 0.3s ease' - }, - '&:hover svg': { - transform: 'scale(1.2)' - }, - '& .clone-icon': { - width: '20px', - height: '20px' - } -})); - -export const ContentWrapper = styled(CardContent)<ContentWrapperProps>(() => ({ - height: '100%', - display: 'flex', - flexDirection: 'column', - padding: '12px', - paddingBottom: '0px !important' -})); - -export const HeaderSection = styled(Box)({ - display: 'flex', - justifyContent: 'space-between', - alignItems: 'flex-start', - marginBottom: '0.5rem', - gap: '0.6rem' -}); - -export const HeaderTitle = styled(Typography)(({ theme }) => ({ - fontSize: '0.85rem', - fontWeight: 'bold', - color: theme.palette.text.default, - lineHeight: 1.2, - marginTop: '4px', - textTransform: 'uppercase', - letterSpacing: '0.5px', - display: '-webkit-box', - WebkitLineClamp: 2, - WebkitBoxOrient: 'vertical', - overflow: 'hidden', - textOverflow: 'clip', - maxWidth: '70%', - height: '2.4em' -})); - -export const StatsValue = styled(Typography)(({ theme }) => ({ - fontSize: '24px', - fontWeight: 700, - color: theme.palette.icon.secondary, - marginBottom: '0.5rem', - lineHeight: 1.2 -})); - -export const RepoSection = styled(Box)(({ theme }) => ({ - marginBottom: '1rem', - padding: '8px', - borderRadius: '8px', - background: theme.palette.mode === 'light' ? '#f8fafc' : DARK_TEAL, - color: theme.palette.mode === 'light' ? 'rgba(26, 26, 26, .8)' : theme.palette.text.default, - transition: 'background 0.3s ease, filter 0.3s ease', - '&:hover': { - filter: 'brightness(0.98)' - } -})); - -export const RepoTitle = styled(Typography)(({ theme }) => ({ - fontSize: '0.9rem', - fontWeight: 1000, - color: theme.palette.text.default, - lineHeight: 1.3, - marginBottom: '4px', - display: '-webkit-box', - WebkitLineClamp: 2, - WebkitBoxOrient: 'vertical', - overflow: 'hidden', - textOverflow: 'ellipsis', - minHeight: 'fit-content', - maxHeight: '2.6em' -})); - -export const UserNameText = styled(Typography)({ - fontSize: '0.75rem', - marginBottom: '8px' -}); - -export const CardsContainer = styled(Box)(({ theme }) => ({ - display: 'flex', - gap: '15px', - width: '100%', - padding: '20px', - background: - theme.palette.mode === 'light' - ? theme.palette.background.default - : theme.palette.background.secondary, - borderRadius: '12px', - boxShadow: '0 1px 3px rgba(0, 0, 0, 0.05)', - paddingBottom: theme.spacing(3) -})); - -export const ErrorContainer = styled(Box)(({ theme }) => ({ - padding: '1rem', - color: theme.palette.text.error, - fontSize: '1rem', - fontWeight: 500 -})); diff --git a/src/custom/PopperListener.tsx b/src/custom/PopperListener.tsx deleted file mode 100644 index 24807edd7..000000000 --- a/src/custom/PopperListener.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { PopperPlacementType, PopperProps } from '@mui/material/Popper'; -import { Popper } from '../base/Popper'; - -export interface IPopperListener extends PopperProps { - open: boolean; - anchorEl: HTMLElement | null | undefined; - children: React.ReactNode; - placement?: PopperPlacementType; -} - -export function PopperListener({ - children, - open, - anchorEl, - placement = 'bottom-end', - ...props -}: IPopperListener): JSX.Element { - return ( - <Popper open={open} anchorEl={anchorEl} placement={placement} {...props}> - {children} - </Popper> - ); -} - -export default PopperListener; diff --git a/src/custom/Prompt/index.tsx b/src/custom/Prompt/index.tsx deleted file mode 100644 index 46a7b6a75..000000000 --- a/src/custom/Prompt/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import PromptComponent, { PROMPT_VARIANTS } from './promt-component'; -export { PROMPT_VARIANTS, PromptComponent }; -export default PromptComponent; diff --git a/src/custom/Prompt/promt-component.tsx b/src/custom/Prompt/promt-component.tsx deleted file mode 100644 index 9dbecaf52..000000000 --- a/src/custom/Prompt/promt-component.tsx +++ /dev/null @@ -1,172 +0,0 @@ -import { forwardRef, useImperativeHandle, useRef, useState } from 'react'; -import { Checkbox, FormControlLabel, Typography } from '../../base'; -import { useTheme } from '../../theme'; -import { Modal, ModalBody, ModalButtonPrimary, ModalButtonSecondary, ModalFooter } from '../Modal'; -import { ActionComponent, Subtitle } from './style'; - -/* Promt variants are used to define the color of the prompt button */ -export const PROMPT_VARIANTS = { - WARNING: 'warning', - DANGER: 'error', - SUCCESS: 'success', - INFO: 'info' -} as const; - -type PromptVariant = (typeof PROMPT_VARIANTS)[keyof typeof PROMPT_VARIANTS]; - -interface PromptProps { - variant?: PromptVariant; -} - -interface State { - isOpen: boolean; - title: string; - subtitle?: string; - primaryOption: string; - showInfoIcon?: string; - variant?: PromptVariant; - headerIcon?: React.ReactNode; - showCheckbox?: boolean; - isChecked?: boolean; -} - -interface ShowParams { - title: string; - subtitle: string; - primaryOption: string; - variant: PromptVariant; - showInfoIcon?: string; - showCheckbox?: boolean; - headerIcon?: React.ReactNode; -} - -export interface PromptRef { - show: (params: ShowParams) => Promise<string>; - getCheckboxState: () => boolean; -} - -const PromptComponent = forwardRef<PromptRef, PromptProps>(({ variant }, ref) => { - const [state, setState] = useState<State>({ - isOpen: false, - title: '', - subtitle: '', - primaryOption: '', - showInfoIcon: '', - variant, - headerIcon: undefined, - isChecked: false, - showCheckbox: false - }); - - /* This ref is used to store the resolve and reject functions of the promise returned by the show method */ - const promiseInfoRef = useRef<{ resolve: (value: string) => void; reject: () => void }>({ - resolve: () => {}, - reject: () => {} - }); - - const theme = useTheme(); - - /* This function is used to show the prompt */ - const show = (params: ShowParams) => { - return new Promise<string>((resolve, reject) => { - promiseInfoRef.current = { resolve, reject }; - setState({ - ...params, - isOpen: true, - showInfoIcon: params.showInfoIcon || '', - showCheckbox: !!params.showCheckbox - }); - }); - }; - - /* This function is used to hide the prompt */ - const hide = () => { - setState((prevState) => ({ ...prevState, isOpen: false })); - }; - - const handleCheckboxChange = () => { - setState((prevState) => ({ ...prevState, isChecked: !prevState.isChecked })); - }; - - const getCheckboxState = () => { - return !!state.isChecked; - }; - - useImperativeHandle(ref, () => ({ - show, - getCheckboxState - })); - - const { isOpen, primaryOption, title, subtitle, showInfoIcon, headerIcon, showCheckbox } = state; - const { resolve } = promiseInfoRef.current; - - return ( - <Modal - open={isOpen} - closeModal={hide} - title={title} - id="searchClick" - headerIcon={headerIcon} - reactNode={undefined} - > - {subtitle && ( - <ModalBody> - <Subtitle id="alert-dialog-description" variant="body1" component="div"> - <Typography - variant="body1" - component="div" - style={{ - color: theme.palette.text.primary - }} - > - {subtitle} - </Typography> - </Subtitle> - {showCheckbox && ( - <FormControlLabel - control={ - <Checkbox - checked={getCheckboxState()} - onChange={handleCheckboxChange} - color="primary" - /> - } - label={<span style={{ fontSize: '1rem' }}>Do not show again</span>} - /> - )} - </ModalBody> - )} - <ModalFooter variant="filled" helpText={showInfoIcon}> - <ActionComponent> - <ModalButtonSecondary - onClick={() => { - hide(); - resolve('CANCEL'); - }} - > - Cancel - </ModalButtonSecondary> - <ModalButtonPrimary - onClick={() => { - hide(); - resolve(primaryOption); - }} - style={ - state.variant && { - backgroundColor: theme.palette.background[state.variant]?.default, - textTransform: 'capitalize' - } - } - type="submit" - > - {primaryOption} - </ModalButtonPrimary> - </ActionComponent> - </ModalFooter> - </Modal> - ); -}); - -PromptComponent.displayName = 'PromptComponent'; - -export default PromptComponent; diff --git a/src/custom/Prompt/style.tsx b/src/custom/Prompt/style.tsx deleted file mode 100644 index 5eb3ecab1..000000000 --- a/src/custom/Prompt/style.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { styled } from '@mui/material'; -import { Box, DialogContentText } from '../../base'; - -export const Subtitle = styled(DialogContentText)(() => ({ - minWidth: 400, - overflowWrap: 'anywhere', - textAlign: 'center', - padding: '5px' -})); - -export const ActionComponent = styled(Box)(() => ({ - display: 'flex', - justifyContent: 'end', - width: '100%', - gap: '10px' -})); diff --git a/src/custom/ResourceDetailFormatters/Component.tsx b/src/custom/ResourceDetailFormatters/Component.tsx deleted file mode 100644 index dc1984da9..000000000 --- a/src/custom/ResourceDetailFormatters/Component.tsx +++ /dev/null @@ -1,199 +0,0 @@ -import UnfoldLessIcon from '@mui/icons-material/UnfoldLess'; -import UnfoldMoreIcon from '@mui/icons-material/UnfoldMore'; -import React, { useState } from 'react'; -import { Grid2, IconButton, Typography } from '../../base'; - -import { iconSmall, iconXSmall } from '../../constants/iconsSizes'; -import { CopyIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { CustomTooltip } from './../CustomTooltip'; -import { NumberState } from './Formatter'; -import { - Details, - ElementDataWrap, - Heading, - KeyValueGrid, - KeyValueGridCell, - KeyValueGridTitle, - LongWrap, - StyledNumberBox, - Title, - VariableSubfield, - Wrap -} from './styles'; -import { - ActionIconButtonProps, - CategoryProps, - CopyToClipboardProps, - EnvironmentVariablesProps, - KeyValueProps, - LongDetailsProps, - NumberStateFormatterProps, - PrimaryDetailsProps, - SectionHeadingProps -} from './types'; -import { splitCamelCaseString } from './utils'; - -export const PrimaryDetails: React.FC<PrimaryDetailsProps> = ({ title, value, hide = false }) => { - const titleFormatted = splitCamelCaseString(title); - const show = hide === false ? hide : true; - - if (!value || value === ` `) { - return null; - } - - if (show) { - return ( - <Details noPadding={true}> - <Wrap> - <Typography variant="body1">{titleFormatted}: </Typography> - <ElementDataWrap>{value}</ElementDataWrap> - </Wrap> - </Details> - ); - } - return null; -}; - -export const CopyToClipboard: React.FC<CopyToClipboardProps> = ({ data }) => { - const theme = useTheme(); - const copyToClipboard = () => { - navigator.clipboard.writeText(data); - }; - - return ( - <span - style={{ - display: 'flex', - alignItems: 'center', - cursor: 'pointer' - }} - > - <IconButton onClickCapture={copyToClipboard} style={{ paddingBlock: '4px' }}> - <CopyIcon height={20} width={20} fill={theme.palette.icon.secondary} /> - </IconButton> - </span> - ); -}; - -export const SectionHeading: React.FC<SectionHeadingProps> = ({ children }) => { - return <Typography variant="body1">{children + ':'}</Typography>; -}; - -export const LongDetails: React.FC<LongDetailsProps> = ({ title, value }) => { - const titleFormatted = splitCamelCaseString(title); - - if (!value || value === ` `) { - return null; - } - - return ( - <Details noPadding={true}> - <LongWrap> - <SectionHeading>{titleFormatted}</SectionHeading> - {/* <CodeFormatter data={value} /> */} - </LongWrap> - </Details> - ); -}; - -export const EnvironmentVariables: React.FC<EnvironmentVariablesProps> = ({ title, value }) => { - return ( - <Details noPadding> - <LongWrap> - <VariableSubfield> - {title}:{value} - </VariableSubfield> - </LongWrap> - </Details> - ); -}; - -export const Category: React.FC<CategoryProps> = ({ title, hide = false }) => { - const show = hide === false ? hide : true; - - if (show) { - return ( - <Heading> - <Title>{title}</Title> - </Heading> - ); - } - return null; -}; - -export const NumberStateFormatter: React.FC<NumberStateFormatterProps> = ({ data }) => { - if (!data) { - return null; - } - - return ( - <StyledNumberBox> - {data.map((item) => ( - <NumberState - key={item.title} - title={item.title} - value={item.value} - quantity={item.quantity} - /> - ))} - </StyledNumberBox> - ); -}; - -export const ActionIconButton: React.FC<ActionIconButtonProps> = ({ title, Icon, onClick }) => { - const theme = useTheme(); - return ( - <CustomTooltip title={title}> - <div> - <IconButton size="small" onClickCapture={onClick}> - <Icon {...iconSmall} fill={theme.palette.icon.default} /> - </IconButton> - </div> - </CustomTooltip> - ); -}; - -export const KeyValueInRow: React.FC<KeyValueProps> = ({ Key, Value, showFold = false }) => { - const [isFolded, setIsFolded] = useState(true); - - if (!Value || !Key) return null; - - const handleToggleFold = () => { - setIsFolded(!isFolded); - }; - - return ( - <KeyValueGrid container rowGap={0.5}> - <React.Fragment key={Key}> - <KeyValueGridCell container size={{ xs: 12, sm: 3 }}> - <KeyValueGridTitle>{Key}</KeyValueGridTitle> - {showFold && ( - <IconButton onClick={handleToggleFold}> - {isFolded ? ( - <UnfoldMoreIcon style={iconXSmall} /> - ) : ( - <UnfoldLessIcon style={iconXSmall} /> - )} - </IconButton> - )} - </KeyValueGridCell> - <Grid2 - size={{ - xs: 12, - sm: 9 - }} - > - <div - style={{ - maxHeight: showFold && isFolded ? '200px' : 'none', - overflow: showFold ? 'auto' : 'none' - }} - > - {React.isValidElement(Value) ? Value : String(Value)} - </div> - </Grid2> - </React.Fragment> - </KeyValueGrid> - ); -}; diff --git a/src/custom/ResourceDetailFormatters/Details.tsx b/src/custom/ResourceDetailFormatters/Details.tsx deleted file mode 100644 index ab83ef831..000000000 --- a/src/custom/ResourceDetailFormatters/Details.tsx +++ /dev/null @@ -1,25 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { OperatorDataContainer } from './styles'; -import { isEmptyAtAllDepths } from './utils'; - -interface OperatorDataFormatterProps { - data: any; - FormatStructuredData: any; - propertyFormatter: any; -} - -export const OperatorDataFormatter = ({ - data, - FormatStructuredData, - propertyFormatter -}: OperatorDataFormatterProps) => { - if (!data || isEmptyAtAllDepths(data)) { - return null; - } - - return ( - <OperatorDataContainer> - <FormatStructuredData data={data} propertyFormatters={propertyFormatter} isLevel={false} /> - </OperatorDataContainer> - ); -}; diff --git a/src/custom/ResourceDetailFormatters/ExpandArrow.tsx b/src/custom/ResourceDetailFormatters/ExpandArrow.tsx deleted file mode 100644 index 6512f1252..000000000 --- a/src/custom/ResourceDetailFormatters/ExpandArrow.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import ExpandLessIcon from '@mui/icons-material/ExpandLess'; -import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; -import { iconMedium } from '../../constants/iconsSizes'; -import { useTheme } from '../../theme'; - -interface ExpandArrowProps { - expanded: boolean; -} - -const ExpandArrow: React.FC<ExpandArrowProps> = ({ expanded }) => { - const theme = useTheme(); - return expanded ? ( - <ExpandLessIcon fill={theme.palette.icon.default} {...iconMedium} /> - ) : ( - <ExpandMoreIcon fill={theme.palette.icon.default} {...iconMedium} /> - ); -}; - -export default ExpandArrow; diff --git a/src/custom/ResourceDetailFormatters/Formatter.tsx b/src/custom/ResourceDetailFormatters/Formatter.tsx deleted file mode 100644 index afe3d5b14..000000000 --- a/src/custom/ResourceDetailFormatters/Formatter.tsx +++ /dev/null @@ -1,805 +0,0 @@ -import VisibilityIcon from '@mui/icons-material/Visibility'; -import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'; -import { ChartOptions } from 'billboard.js'; -import _ from 'lodash'; -import React, { useCallback, useContext, useMemo } from 'react'; -import { Box, Chip, Collapse, Grid2, IconButton, Typography } from '../../base'; - -import { CARIBBEAN_GREEN, KEPPEL, SAFFRON, blue, red } from '../../theme'; -import { BBChart } from '../BBChart'; -import { CustomTooltip } from '../CustomTooltip'; -import ResponsiveDataTable from '../ResponsiveDataTable'; -import { CopyToClipboard, EnvironmentVariables, KeyValueInRow, SectionHeading } from './Component'; -import ExpandArrow from './ExpandArrow'; -import { Level, LevelContext } from './context'; -import { - CodeFormatterCode, - CodeFormatterPre, - CollapsibleSectionContainer, - CollapsibleSectionContent, - CollapsibleSectionTitle, - Details, - ElementData, - ElementDataWrap, - EnvironmentVariablesContainer, - FlexResourceContainer, - KeyValField, - LongWrap, - NumberStateContainer, - NumberStateQuantity, - NumberStateTitle, - NumberStateValue, - NumberStateValueContainer, - ResourceProgressContainer, - StyledArrayUl, - StyledChip, - StyledEnvironmentVariablesCode, - StyledEnvironmentVariablesPre, - StyledTitle, - TextValue, - Wrap -} from './styles'; -import { - ArrayFormatterProps, - CodeFormatterProps, - CollapsibleSectionProps, - ContainerFormatterProps, - DetailSectionProps, - EnvironmentFormatterProps, - LabelFormatterProps, - ListFormatterProps, - MemoryUsageProps, - NumberStateProps, - OperatorDynamicFormatterProps, - PortsFormatterProps, - SecretFormatterProps, - StatusFormatterProps, - TableDataFormatterProps, - TextWithLinkFormatterProps -} from './types'; -import { splitCamelCaseString } from './utils'; - -interface ResourceProgressProps { - title: string; - percentage: number; - type: string; -} - -interface StatusColorType { - background: string; - text: string; -} - -interface StatusColorsType { - [key: string]: StatusColorType; -} - -const STATUS_COLORS: StatusColorsType = { - Active: { background: KEPPEL, text: 'white' }, - Pending: { background: SAFFRON, text: 'black' }, - Terminating: { background: red[30], text: 'white' }, - Succeeded: { background: blue[30], text: 'white' }, - Failed: { background: red[30], text: 'white' }, - Initializing: { background: blue[30], text: 'white' }, - Deleting: { background: red[30], text: 'white' }, - NotReady: { background: red[30], text: 'white' }, - Ready: { background: KEPPEL, text: 'white' }, - CrashLoopBackOff: { background: red[30], text: 'white' }, - Completed: { background: KEPPEL, text: 'black' }, - ImagePullBackOff: { background: red[30], text: 'white' }, - ErrImagePull: { background: red[30], text: 'white' }, - Running: { background: KEPPEL, text: 'white' }, - Waiting: { background: SAFFRON, text: 'black' }, - ContainerCreating: { background: blue[30], text: 'white' }, - Evicted: { background: red[30], text: 'white' }, - OOMKilled: { background: red[30], text: 'white' }, - RunningDegraded: { background: SAFFRON, text: 'black' }, - Restarting: { background: blue[30], text: 'white' }, - Preempted: { background: SAFFRON, text: 'black' }, - Provisioning: { background: blue[30], text: 'white' }, - Available: { background: KEPPEL, text: 'white' }, - Progressing: { background: blue[30], text: 'white' }, - ReplicaFailure: { background: red[30], text: 'white' }, - Bound: { background: KEPPEL, text: 'white' }, - Released: { background: SAFFRON, text: 'black' }, - Terminated: { background: red[30], text: 'white' } -}; - -export const EnvironmentFormatter: React.FC<EnvironmentFormatterProps> = ({ data }) => { - if (!data) { - return null; - } - const convertEnvironmentValue = (obj: { - value?: string; - valueFrom?: { - [key: string]: { - apiVersion: string; - fieldPath: string; - }; - }; - }) => { - const { value, valueFrom } = obj; - if (valueFrom) { - const key = Object.keys(valueFrom)[0]; - const { apiVersion, fieldPath } = valueFrom[key]; - return `${key}(${apiVersion}: ${fieldPath})`; - } else { - return value; - } - }; - - return ( - <EnvironmentVariablesContainer> - <StyledEnvironmentVariablesPre> - <StyledEnvironmentVariablesCode> - {data?.map((item) => { - const value = convertEnvironmentValue(item); - return <EnvironmentVariables key={item.name} title={item.name} value={value} />; - })} - </StyledEnvironmentVariablesCode> - </StyledEnvironmentVariablesPre> - </EnvironmentVariablesContainer> - ); -}; - -export const CodeFormatter: React.FC<CodeFormatterProps> = ({ data }) => { - return ( - <CodeFormatterPre> - <CodeFormatterCode> - <OperatorDynamicFormatter data={data} /> - </CodeFormatterCode> - </CodeFormatterPre> - ); -}; - -export const PortsFormatter: React.FC<PortsFormatterProps> = ({ data }) => { - return ( - <Box> - {data?.map((item, index) => ( - <Details noPadding key={index}> - <Box display="flex" alignItems="center"> - {item.name && <Typography variant="body1">{`${item.name}: `} </Typography>} - <ElementData>{`(${item.containerPort || item.port}/${item.protocol})`}</ElementData> - </Box> - </Details> - ))} - </Box> - ); -}; - -export const ArrayFormatter: React.FC<ArrayFormatterProps> = ({ data }) => { - return ( - <StyledArrayUl> - {data.map((item, index) => ( - <OperatorDynamicFormatter data={item} key={index} /> - ))} - </StyledArrayUl> - ); -}; - -export const ListFormatter: React.FC<ListFormatterProps> = ({ data }) => { - return ( - <ol style={{ margin: 0, paddingLeft: '1rem' }}> - {data.map((item, index) => ( - <li key={index}>{item}</li> - ))} - </ol> - ); -}; - -export const OperatorDynamicFormatter: React.FC<OperatorDynamicFormatterProps> = ({ data }) => { - const level = useContext(LevelContext); - const regex = /(.*--)|(^\/)|([$/:*=()<>{}]{2,})/; - - if (_.isNil(data)) { - return null; - } - - if (_.isNumber(data)) { - return <ElementData>{data}</ElementData>; - } - - if (_.isString(data)) { - return ( - <> - <ElementData> - <TextValue>{data}</TextValue> - {regex.test(data) && <CopyToClipboard data={data} />} - </ElementData> - </> - ); - } - - if (_.isArray(data)) { - return <ArrayFormatter data={data} />; - } - - if (_.isBoolean(data)) { - return ( - <ElementData - style={{ - color: data ? 'green' : 'red' - }} - > - {data ? 'TRUE' : 'FALSE'} - </ElementData> - ); - } - - if (_.isObject(data)) { - if ( - Object.keys(data).length === 2 && - Object.keys(data).includes('key') && - Object.keys(data).includes('value') - ) { - const typedData = data as { key: string; value: string }; - return ( - <Details noPadding> - <Wrap> - <KeyValField>{typedData.key}: </KeyValField> - <ElementDataWrap>{typedData.value}</ElementDataWrap> - </Wrap> - </Details> - ); - } - - return Object.entries(data).map(([key, value]) => { - if (key === 'args' || key === 'query') { - return ( - <Details key={key} noPadding> - <LongWrap> - <SectionHeading>{splitCamelCaseString(key)}</SectionHeading> - <CodeFormatter data={key === 'query' ? value : value.join(' ')} /> - </LongWrap> - </Details> - ); - } - - return ( - <Details key={key}> - <LongWrap display={_.isString(key) && !_.isObject(value) ? 'flex' : 'block'}> - <SectionHeading>{splitCamelCaseString(key)}</SectionHeading> - <Level> - <OperatorDynamicFormatter level={level + 1} data={value} /> - </Level> - </LongWrap> - </Details> - ); - }); - } - - return null; -}; - -export const StatusFormatter: React.FC<StatusFormatterProps> = ({ status }) => { - if (!status) { - return null; - } - if (_.isObject(status)) { - return ( - <Grid2 container spacing={1}> - {Object.entries(status).map(([key, value]) => ( - <Grid2 key={key}> - <StyledChip label={value as string} size="small" /> - </Grid2> - ))} - </Grid2> - ); - } - const statusColor = STATUS_COLORS[status]; - - return ( - <StyledChip - label={status} - style={{ - backgroundColor: statusColor && statusColor.background, - color: statusColor && statusColor.text, - borderRadius: '0.25rem' - }} - size="small" - /> - ); -}; - -export const LabelFormatter: React.FC<LabelFormatterProps> = ({ - data, - onClick, - selectedLabels -}) => { - if (!data) { - return null; - } - const handleClick = (item: string) => { - const newArr = selectedLabels.includes(item) - ? selectedLabels.filter((i) => i !== item) - : [...selectedLabels, item]; - onClick(newArr); - }; - - return ( - <Box display="flex" gap={1} flexWrap={'wrap'}> - {data.map((item, index) => { - return ( - <ElementData key={index}> - <StyledChip - label={item} - size="small" - onClickCapture={() => handleClick(item)} - clickable={onClick !== undefined && true} - style={{ - backgroundColor: selectedLabels.includes(item) ? KEPPEL : undefined - }} - /> - </ElementData> - ); - })} - </Box> - ); -}; - -export const StatusChip = ({ status }: { status: string }) => { - if (!status) { - return null; - } - const statusColor = STATUS_COLORS[status]; - - return ( - <Chip - label={status} - style={{ - backgroundColor: statusColor && statusColor.background, - color: statusColor && statusColor.text, - borderRadius: '0.25rem', - width: 'fit-content', - alignSelf: 'end' - }} - size="small" - /> - ); -}; - -export const MemoryUsage: React.FC<MemoryUsageProps> = ({ - allocatable, - capacity, - height, - width -}) => { - const convertKiToBytes = useCallback((kiValue: string): number => { - return parseInt(kiValue.replace('Ki', '')) * 1024; - }, []); - - const cpuUsage = useMemo(() => { - if (!allocatable || !capacity) return 0; - const usedCPU = parseInt(capacity.cpu) - parseInt(allocatable.cpu); - return (usedCPU / parseInt(capacity.cpu)) * 100; - }, [allocatable, capacity]); - - const memoryUsage = useMemo(() => { - if (!allocatable || !capacity) return 0; - const totalMemory = parseInt(capacity.memory.replace('Ki', '')); - const availableMemory = parseInt(allocatable.memory.replace('Ki', '')); - const usedMemory = totalMemory - availableMemory; - return (usedMemory / totalMemory) * 100; - }, [allocatable, capacity]); - - const diskUsage = useMemo(() => { - if (!allocatable || !capacity) return 0; - const totalStorageInBytes = convertKiToBytes(capacity['ephemeral-storage']); - const availableStorageInBytes = parseInt(allocatable['ephemeral-storage']); - const usedStorageInBytes = totalStorageInBytes - availableStorageInBytes; - return (usedStorageInBytes / totalStorageInBytes) * 100; - }, [allocatable, capacity, convertKiToBytes]); - - const chartOptions = useCallback( - (percentage: number, type: string): ChartOptions => { - const roundedPercentage = parseFloat(percentage.toFixed(2)); - return { - data: { - columns: [[type, roundedPercentage]], - type: 'gauge' - }, - gauge: { - min: 0, - max: 100, - label: { - format: (value: number) => `${value}%` - } - }, - color: { - pattern: [KEPPEL, SAFFRON, '#F97600', '#FF0000'], - threshold: { - values: [30, 60, 90, 100] - } - }, - size: { - height: height ?? 150, - width: width ?? 200 - }, - legend: { - show: false - } - }; - }, - [height, width] - ); - - const ResourceProgress = useCallback<React.FC<ResourceProgressProps>>( - ({ title, percentage, type }) => ( - <ResourceProgressContainer> - <Typography variant="body1">{title}</Typography> - <BBChart options={chartOptions(percentage, type)} /> - </ResourceProgressContainer> - ), - [chartOptions] - ); - - if (!allocatable || !capacity) { - return null; - } - - return ( - <FlexResourceContainer> - <ResourceProgress title="CPU Usage" percentage={cpuUsage} type={'CPU'} /> - <ResourceProgress title="Memory Usage" percentage={memoryUsage} type={'Memory'} /> - <ResourceProgress title="Disk Usage" percentage={diskUsage} type={'Disk'} /> - </FlexResourceContainer> - ); -}; - -export const TableDataFormatter: React.FC<TableDataFormatterProps> = ({ - title, - data, - showAll = true, - mainTableData, - mainTableCols -}) => { - type ColumnType = { - name: string; - label: string; - options: { - sort: boolean; - }; - }; - if (!showAll) { - return null; - } - let columns: ColumnType[] = []; - let tableData: string[][] = []; - - if (!mainTableCols && !mainTableData) { - if (Array.isArray(data)) { - if (data.length > 0) { - columns = Object.keys(data[0]).map((key) => ({ - name: key, - label: splitCamelCaseString(key), - options: { - sort: false - } - })); - tableData = data.map((item) => Object.values(item)); - } - } else { - columns = Object.keys(data).map((key) => ({ - name: key, - label: splitCamelCaseString(key), - options: { - sort: false - } - })); - tableData = [Object.values(data)]; - } - } - const options = { - filter: false, - download: false, - print: false, - viewColumns: false, - selectableRows: 'none', - search: false, - responsive: 'standard', - pagination: false, - elevation: 1 - }; - - return ( - <Box - width={'100%'} - display={'flex'} - flexDirection={'column'} - gap={1} - minWidth={'30rem'} - marginBlock={1} - > - {title && <Typography variant="body1">{title}</Typography>} - - <ResponsiveDataTable - columns={mainTableCols ? mainTableCols : columns} - data={mainTableData ? mainTableData : tableData} - columnVisibility={undefined} - options={options} - tableCols={mainTableCols ? mainTableCols : columns} - /> - </Box> - ); -}; - -export const TextWithLinkFormatter: React.FC<TextWithLinkFormatterProps> = ({ - title, - value, - variant = 'row', - onClick -}) => { - const handleClick = useCallback(() => { - onClick(); - }, [onClick]); - - const LinkComponent = ( - <span - onClickCapture={handleClick} - style={{ - color: onClick !== undefined ? CARIBBEAN_GREEN : undefined, - cursor: onClick !== undefined ? 'pointer' : undefined, - width: 'max-content' - }} - > - {value} - </span> - ); - return variant === 'row' ? ( - <KeyValueInRow Key={title} Value={LinkComponent} /> - ) : ( - <Box display={'flex'} flexDirection={'column'} gap={'0.3rem'} marginBlock={'0.4rem'}> - <Typography variant="body1">{title}</Typography> - {LinkComponent} - </Box> - ); -}; - -const DetailSection: React.FC<DetailSectionProps> = ({ - title = '', - data, - formatter: Formatter -}) => { - if (!data) { - return null; - } - return ( - <Box width={'100%'}> - <KeyValueInRow - Key={title} - Value={ - <ElementData> - <Formatter data={data} /> - </ElementData> - } - /> - </Box> - ); -}; - -export const ContainerFormatter: React.FC<ContainerFormatterProps> = ({ - containerSpec, - containerStatus -}) => { - const state = containerStatus?.state || {}; - const status = _.capitalize(Object.keys(state)?.[0] || 'unknown'); - const stateValues = Object.values(state)?.[0] || {}; - const startedAt = stateValues ? stateValues?.startedAt : null; - return ( - <Box display="flex" flexDirection="column" gap={'0.5rem'}> - <KeyValueInRow - Key={'Status'} - Value={<StatusFormatter status={status} rightPosition="1rem" />} - /> - <DetailSection title="Ports" data={containerSpec.ports} formatter={PortsFormatter} /> - <DetailSection - title="Started At" - data={startedAt} - formatter={({ data }) => ( - <Typography variant="body1"> - {data ? new Date(data).toLocaleString() : 'Not Available'} - </Typography> - )} - /> - <DetailSection - title="Image Pull Policy" - data={containerSpec?.imagePullPolicy} - formatter={({ data }) => <Typography variant="body1">{data}</Typography>} - /> - - <DetailSection - title="Total Restarts" - data={containerStatus?.restartCount} - formatter={({ data }) => <NumberState value={data} quantity="times" />} - /> - - <DetailSection - title="Image" - data={containerSpec?.image} - formatter={({ data }) => <StyledChip label={data} size="small" />} - /> - <DetailSection - title="Container" - data={containerStatus?.containerID} - formatter={({ data }) => <StyledChip label={data} size="small" />} - /> - - <DetailSection - title="Environment Variables" - data={containerSpec?.env} - formatter={EnvironmentFormatter} - /> - - <KeyValueInRow - Key="Volume Mounts" - Value={ - <Box display={'flex'} flexDirection={'column'} gap={1}> - {containerSpec?.volumeMounts?.map((item, index) => { - const roStatus = item?.readOnly ? ' (RO)' : ' (RW)'; - return ( - <Box display={'flex'} key={index} flexWrap={'wrap'} gap={'0.25rem 0.5rem'}> - <ElementData key={index}> - <StyledChip label={item?.mountPath} size="small" /> - </ElementData> - <ElementData> - <Typography variant="body1">{`from ${item?.name}${roStatus}`}</Typography> - </ElementData> - </Box> - ); - })} - </Box> - } - /> - {containerSpec?.command && ( - <DetailSection title="Command" data={containerSpec.command} formatter={CodeFormatter} /> - )} - {containerSpec?.livenessProbe && ( - <DetailSection - title="Liveness Probe" - data={containerSpec.livenessProbe} - formatter={CodeFormatter} - /> - )} - {containerSpec?.readinessProbe && ( - <DetailSection - title="Readiness Probe" - data={containerSpec?.readinessProbe} - formatter={CodeFormatter} - /> - )} - {containerSpec?.startupProbe && ( - <DetailSection - title="Startup Probe" - data={containerSpec?.startupProbe} - formatter={CodeFormatter} - /> - )} - <DetailSection title="Arguments" data={containerSpec?.args} formatter={CodeFormatter} /> - {containerSpec.resources?.requests && ( - <DetailSection - title="Resources" - data={containerSpec?.resources?.requests} - formatter={CodeFormatter} - /> - )} - {containerSpec?.resources?.limits && ( - <DetailSection - title="Limits" - data={containerSpec?.resources?.limits} - formatter={CodeFormatter} - /> - )} - </Box> - ); -}; - -export const SecretFormatter: React.FC<SecretFormatterProps> = ({ data }) => { - const [showSecret, setShowSecret] = React.useState<{ [key: string]: boolean }>({}); - - const handleToggleVisibility = useCallback((key: string): void => { - setShowSecret((prev) => ({ - ...prev, - [key]: !prev[key] - })); - }, []); - - const parsedData = useMemo(() => { - try { - return JSON.parse(data); - } catch { - return null; - } - }, [data]); - - if (!parsedData || typeof parsedData !== 'object') { - return null; - } - - const keys = Object.keys(parsedData); - - return ( - <Box display="flex" flexDirection="column" gap={1}> - {keys.map((key) => ( - <Box key={key} display="flex" gap={4} alignItems={'center'}> - <Typography variant="body1">{key}</Typography> - <Box display="flex" alignItems="center" gap={1}> - <Typography>{showSecret[key] ? parsedData[key] : 'โขโขโขโขโขโขโขโข'}</Typography> - <IconButton - size="small" - onClick={() => handleToggleVisibility(key)} - style={{ padding: '4px' }} - > - {showSecret[key] ? ( - <CustomTooltip title="Hide"> - <div> - <VisibilityOffIcon /> - </div> - </CustomTooltip> - ) : ( - <CustomTooltip title="Show"> - <div> - <VisibilityIcon /> - </div> - </CustomTooltip> - )} - </IconButton> - </Box> - </Box> - ))} - </Box> - ); -}; - -export const CollapsibleSectionFormatter: React.FC<CollapsibleSectionProps> = ({ - title, - children, - showAll = true, - numberText, - level = 0 -}) => { - const margin = level * 16; - const [openSection, setOpenSection] = React.useState(false); - const toggleOpen = () => setOpenSection((prev) => !prev); - if (!showAll) { - return null; - } - return ( - <CollapsibleSectionContainer style={{ marginLeft: margin }}> - <CollapsibleSectionTitle openSection={openSection} onClick={toggleOpen}> - <StyledTitle variant="body1">{title}</StyledTitle> - <Box display={'flex'} gap={1} style={{ marginRight: margin }}> - <StyledTitle - variant="body2" - style={{ - width: 'max-content' - }} - > - {numberText && `(${numberText})`} - </StyledTitle> - <IconButton style={{ padding: '0rem' }}> - <ExpandArrow expanded={openSection} /> - </IconButton> - </Box> - </CollapsibleSectionTitle> - <Collapse in={openSection} timeout="auto" unmountOnExit> - <CollapsibleSectionContent>{children}</CollapsibleSectionContent> - </Collapse> - </CollapsibleSectionContainer> - ); -}; - -export const NumberState: React.FC<NumberStateProps> = ({ title, value, quantity }) => { - return ( - <NumberStateContainer> - {title && <NumberStateTitle variant="body1">{title}</NumberStateTitle>} - <NumberStateValueContainer> - <NumberStateValue variant="h2" fontWeight="1000" gutterBottom> - <b>{value}</b>{' '} - </NumberStateValue> - <NumberStateQuantity variant="subtitle2" component="div"> - {quantity} - </NumberStateQuantity> - </NumberStateValueContainer> - </NumberStateContainer> - ); -}; diff --git a/src/custom/ResourceDetailFormatters/context.tsx b/src/custom/ResourceDetailFormatters/context.tsx deleted file mode 100644 index 8a1b6ba7e..000000000 --- a/src/custom/ResourceDetailFormatters/context.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -export const LevelContext = React.createContext<number>(0); - -interface LevelProps { - children: React.ReactNode; -} - -export const Level: React.FC<LevelProps> = ({ children }) => { - const level = React.useContext(LevelContext); - return <LevelContext.Provider value={level + 1}>{children}</LevelContext.Provider>; -}; diff --git a/src/custom/ResourceDetailFormatters/index.ts b/src/custom/ResourceDetailFormatters/index.ts deleted file mode 100644 index bd66d708b..000000000 --- a/src/custom/ResourceDetailFormatters/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { KeyValueInRow, NumberStateFormatter } from './Component'; -import { OperatorDataFormatter } from './Details'; -import { - CodeFormatter, - CollapsibleSectionFormatter, - ContainerFormatter, - LabelFormatter, - ListFormatter, - MemoryUsage, - NumberState, - OperatorDynamicFormatter, - SecretFormatter, - StatusFormatter, - TableDataFormatter, - TextWithLinkFormatter -} from './Formatter'; -import { useResourceCleanData } from './useResourceCleanData'; -import { convertToReadableUnit, extractPodVolumnTables, splitCamelCaseString } from './utils'; - -export { - CodeFormatter, - CollapsibleSectionFormatter, - ContainerFormatter, - convertToReadableUnit, - extractPodVolumnTables, - KeyValueInRow, - LabelFormatter, - ListFormatter, - MemoryUsage, - NumberState, - NumberStateFormatter, - OperatorDataFormatter, - OperatorDynamicFormatter, - SecretFormatter, - splitCamelCaseString, - StatusFormatter, - TableDataFormatter, - TextWithLinkFormatter, - useResourceCleanData -}; diff --git a/src/custom/ResourceDetailFormatters/styles.ts b/src/custom/ResourceDetailFormatters/styles.ts deleted file mode 100644 index a6c998f10..000000000 --- a/src/custom/ResourceDetailFormatters/styles.ts +++ /dev/null @@ -1,311 +0,0 @@ -import { alpha, Grid2 } from '@mui/material'; -import { Box, Chip, IconButton, Typography } from '../../base'; - -import { charcoal, KEPPEL, styled } from '../../theme'; - -interface StyledProps { - noPadding?: boolean; - openSection?: boolean; - display?: string; -} - -export const FlexContainer = styled(Box)({ - display: 'flex', - flexWrap: 'wrap', - gap: 24 -}); - -export const FlexItem = styled(Box)({ - flex: '1 1 calc(50% - 12px)', - minWidth: '300px' -}); - -export const FullWidthItem = styled(Box)({ - flex: '1 1 100%' -}); - -export const StyledPaper = styled(Box)(({ theme }) => ({ - padding: theme.spacing(4), - backgroundColor: '#202020', - color: theme.palette.text.primary -})); - -export const StyledArrayUl = styled('ol')(() => ({ - listStyleType: 'none', - paddingInline: '0rem', - display: 'flex', - flexDirection: 'column', - margin: '0.5rem' -})); - -export const StyledPortsUl = styled('ul')({ - listStyleType: 'none', - marginBlock: '0.25rem', - paddingInline: '0.5rem', - display: 'flex', - flexDirection: 'column' -}); - -export const Title = styled('span')({ - fontSize: '0.5rem', - fontWeight: 'bold', - fontFamily: 'Qanelas Soft, sans-serif' -}); - -export const ElementData = styled('div')({ - display: 'flex', - alignItems: 'center', - justifyContent: 'space-between', - paddingLeft: '0' -}); - -export const Wrap = styled('div')(() => ({ - width: '100%', - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis' -})); - -export const VariableSubfield = styled('div')(({ theme }) => ({ - color: 'rgb(134, 183, 235)', - letterSpacing: '1px', - fontSize: '.85rem', - fontFamily: theme.typography.fontFamily -})); - -export const LongWrap = styled('div')<StyledProps>(({ display }) => ({ - width: '100%', - textOverflow: 'ellipsis', - wordWrap: 'break-word', - overflowWrap: 'break-word', - wordBreak: 'break-all', - display: display || 'block', - gap: display === 'flex' ? '0.5rem' : '0' -})); - -export const KeyValField = styled('span')(({ theme }) => ({ - color: theme.palette.mode === 'dark' ? charcoal[60] : charcoal[20], - fontWeight: 'bold' -})); - -export const State = styled('span')(() => ({ - verticalAlign: 'middle', - paddingRight: '8px', - display: 'flex' -})); - -export const Heading = styled('div')({ - display: 'flex', - alignItems: 'center', - paddingInline: '1rem', - margin: '1.5rem auto' -}); - -export const ElementDataWrap = styled('span')({ - paddingLeft: '0', - width: '100%', - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis' -}); - -export const Details = styled('div', { - shouldForwardProp: (prop): prop is keyof StyledProps => prop !== 'noPadding' -})<StyledProps>(({ noPadding }) => ({ - fontSize: '1rem', - paddingLeft: noPadding ? '' : '1rem', - width: 'fit-content' -})); - -export const StyledTitle = styled(Typography)({ - cursor: 'pointer', - padding: '0.25rem', - width: '100%', - paddingLeft: '0' -}); - -export const CollapsibleSectionContainer = styled(Box)({ - borderRadius: '0.25rem', - marginBottom: '0.5rem', - overflow: 'hidden' -}); - -export const CollapsibleSectionTitle = styled('div', { - shouldForwardProp: (prop): prop is keyof StyledProps => prop !== 'openSection' -})<StyledProps>(({ theme, openSection }) => ({ - display: 'flex', - cursor: 'pointer', - flexDirection: 'row', - justifyContent: 'space-between', - alignItems: 'center', - padding: '0rem', - fontWeight: 'regular', - borderBottom: openSection ? `1px solid ${KEPPEL}` : `1px solid ${theme?.palette.divider}`, - backgroundColor: openSection ? alpha(KEPPEL, 0.1) : 'transparent', - marginBlock: '0.25rem' -})); - -export const CollapsibleSectionContent = styled(Box)({ - display: 'flex', - flexDirection: 'column', - gap: '0.5rem', - padding: '0.2rem', - backgroundColor: 'transparent' -}); - -export const StyledEnvironmentVariablesCode = styled('code')(({ theme }) => ({ - backgroundColor: theme.palette.mode === 'light' ? '#e9eff1' : '#253137', - color: theme.palette.text.primary, - width: '100%', - display: 'flex', - flexDirection: 'column', - gap: '0.5rem' -})); - -export const StyledEnvironmentVariablesPre = styled('pre')(({ theme }) => ({ - backgroundColor: theme.palette.mode === 'light' ? '#e9eff1' : '#253137', - color: theme.palette.text.primary, - padding: '0.5rem', - margin: '0', - width: '100%' -})); - -export const EnvironmentVariablesContainer = styled('div')({ - display: 'flex', - flexDirection: 'column', - gap: '1rem' -}); - -export const EnvironmentVariableValue = styled('span')({ - maxWidth: '50px', - whiteSpace: 'pre-wrap' -}); - -export const CodeFormatterPre = styled('pre')(({ theme }) => ({ - backgroundColor: theme.palette.mode === 'light' ? '#e9eff1' : '#212121', - color: theme.palette.text.primary, - wordWrap: 'break-word', - overflowWrap: 'break-word', - wordBreak: 'break-all', - margin: 0, - padding: '0.5rem', - maxWidth: '100%' -})); - -export const TextValue = styled(Box)({ - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - width: 'inherit', - overflow: 'hidden' -}); - -export const CodeFormatterCode = styled('code')(({ theme }) => ({ - backgroundColor: theme.palette.mode === 'light' ? '#e9eff1' : '#212121', - color: theme.palette.text.primary, - fontFamily: theme.typography.fontFamily -})); - -export const NumberStateContainer = styled('div')({ - textAlign: 'center' -}); - -export const NumberStateTitle = styled(Typography)({ - paddingRight: '1vh', - marginTop: '0.35rem', - marginBottom: '0' -}); - -export const NumberStateValueContainer = styled('div')({ - display: 'inline-flex', - alignItems: 'center', - paddingRight: '1vh' -}); - -export const NumberStateValue = styled(Typography)(({ theme }) => ({ - marginRight: '0.25rem', - marginBottom: '0', - whiteSpace: 'nowrap', - color: theme.palette.mode === 'dark' ? charcoal[60] : charcoal[20] -})); - -export const NumberStateQuantity = styled(Typography)({ - fontSize: '1rem', - marginTop: '1.5rem' -}); - -export const StyledNumberBox = styled(Box)({ - display: 'flex', - flexDirection: 'row', - flexWrap: 'wrap', - gap: '1.5rem' -}); - -export const StyledChip = styled(Chip)({ - borderRadius: '0.25rem', - minHeight: '1.5rem', - height: 'auto', - '& .MuiChip-label': { - display: 'block', - whiteSpace: 'normal' - } -}); - -export const ResourceProgressContainer = styled(Box)({ - marginTop: 1, - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - flexWrap: 'wrap' -}); - -export const FlexResourceContainer = styled(Box)({ - display: 'flex', - flexDirection: 'row', - justifyContent: 'space-between', - width: '100%', - flexWrap: 'wrap' -}); - -export const SecretContainer = styled(Box)({ - display: 'flex', - flexDirection: 'column', - gap: 1 -}); - -export const SecretItemContainer = styled(Box)({ - display: 'flex', - gap: 4, - alignItems: 'center' -}); - -export const SecretValueContainer = styled(Box)({ - display: 'flex', - alignItems: 'center', - gap: 1 -}); - -export const SecretIconButton = styled(IconButton)({ - padding: '4px' -}); - -export const OperatorDataContainer = styled('div')({ - border: '1px solid gray', - padding: '1rem', - borderRadius: '0.5rem', - marginTop: '1rem' -}); - -export const KeyValueGrid = styled(Grid2)(({ theme }) => ({ - borderBottom: `1px solid ${theme.palette.divider}`, - paddingBlock: '0.5rem' -})); - -export const KeyValueGridTitle = styled(Typography)({ - fontWeight: 'bold', - textTransform: 'capitalize' -}); - -export const KeyValueGridCell = styled(Grid2)({ - placeSelf: 'center', - alignItems: 'center' -}); diff --git a/src/custom/ResourceDetailFormatters/types.ts b/src/custom/ResourceDetailFormatters/types.ts deleted file mode 100644 index 8ba20fccc..000000000 --- a/src/custom/ResourceDetailFormatters/types.ts +++ /dev/null @@ -1,270 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { ComponentType, ReactNode } from 'react'; - -export interface PrimaryDetailsProps { - title: string; - value: string; - hide?: boolean; -} - -export interface CopyToClipboardProps { - data: string; -} - -export interface CollapsibleSectionProps { - title: string; - children: ReactNode; - showAll?: boolean; - numberText?: string | number; - level?: number; -} - -export interface SectionHeadingProps { - children: string; -} - -export interface LongDetailsProps { - title: string; - value: string; -} - -export interface NumberStateProps { - title?: string; - value: string | number; - quantity: string; -} - -export interface EnvironmentVariablesProps { - title: string; - value?: string; - hide?: boolean; -} - -export interface CategoryProps { - title: string; - hide?: boolean; -} - -export interface NumberStateData { - title: string; - value: string | number; - quantity: string; -} - -export interface NumberStateFormatterProps { - data: NumberStateData[]; -} - -export interface ActionIconButtonProps { - title: string; - Icon: ComponentType<{ fill: string; height?: number; width?: number }>; - onClick: () => void; -} - -export interface KeyValueProps { - Key: string; - Value: string | number | ReactNode; - showFold?: boolean; -} - -export interface EnvironmentFormatterProps { - data?: { - name: string; - value?: string; - valueFrom?: { - [key: string]: { - apiVersion: string; - fieldPath: string; - }; - }; - }[]; -} - -export interface CodeFormatterProps { - data: any; -} - -export interface PortsFormatterProps { - data?: { - name?: string; - containerPort?: number; - port?: number; - protocol: string; - }[]; -} - -export interface ArrayFormatterProps { - data: any[]; -} - -export interface ListFormatterProps { - data: string[]; -} - -export interface OperatorDynamicFormatterProps { - data: any; - level?: number; -} - -export interface StatusFormatterProps { - status: string; - rightPosition?: string; -} - -export interface LabelFormatterProps { - data: string[]; - onClick: (labels: string[]) => void; - selectedLabels: string[]; -} - -export interface MemoryUsageProps { - allocatable?: { - cpu: string; - memory: string; - 'ephemeral-storage': string; - }; - capacity?: { - cpu: string; - memory: string; - 'ephemeral-storage': string; - }; - height?: number; - width?: number; -} - -export interface TableDataFormatterProps { - title?: string; - data?: any; - showAll?: boolean; - mainTableData?: any[][]; - mainTableCols?: any[]; -} - -export interface TextWithLinkFormatterProps { - title: string; - value: string; - variant: 'row' | 'column'; - onClick: () => void; -} - -export interface JSONViewFormatterProps { - data: any; -} - -export interface DetailSectionProps { - title?: string; - data: any; - formatter: React.ComponentType<any>; -} - -export interface ContainerFormatterProps { - containerSpec: { - ports?: any[]; - imagePullPolicy?: string; - image?: string; - env?: any[]; - volumeMounts?: { - name: string; - mountPath: string; - readOnly?: boolean; - }[]; - command?: any[]; - livenessProbe?: any; - readinessProbe?: any; - startupProbe?: any; - args?: any[]; - resources?: { - requests?: any; - limits?: any; - }; - }; - containerStatus: { - state: { - [key: string]: { - startedAt?: string; - }; - }; - restartCount: number; - containerID: string; - }; -} - -export interface SecretFormatterProps { - data: string; -} - -export interface NumberState { - title: string; - value: number | string; - quantity: string; -} - -export interface Resource { - status?: { - attribute?: string; - containerStatuses?: Array<{ restartCount?: number }>; - nodeInfo?: { kubeletVersion?: string }; - podIP?: string; - hostIP?: string; - qosClass?: string; - replicas?: number; - availableReplicas?: number; - readyReplicas?: number; - loadBalancer?: { ingress?: Array<{ ip?: string }> }; - allocatable?: Record<string, string>; - capacity?: Record<string, string>; - conditions?: Array<{ type?: string }>; - }; - spec?: { - attribute?: string; - containers?: Array<{ image?: string }>; - initContainers?: Array<{ name?: string }>; - nodeSelector?: Record<string, string>; - template?: { - spec?: { - containers?: Array<{ image?: string }>; - nodeSelector?: Record<string, string>; - }; - }; - resources?: { requests?: { storage?: string } }; - claimRef?: { name?: string; namespace?: string }; - storageClassName?: string; - type?: string; - clusterIP?: string; - updateStrategy?: { type?: string }; - externalIPs?: string[]; - finalizers?: string[]; - accessModes?: string[]; - selector?: { matchLabels?: Record<string, string> }; - serviceAccountName?: string; - tolerations?: unknown; - volumes?: unknown; - rules?: Array<{ host?: string }>; - }; - metadata?: { - creationTimestamp?: string; - namespace?: string; - labels?: Array<{ key?: string; value?: string }>; - annotations?: Array<{ key?: string; value?: string }>; - }; - kind?: string; - component?: { - kind?: string; - }; - apiVersion?: string; - configuration?: { - spec?: { strategy?: { type?: string } }; - data?: unknown; - }; - type?: string; - data?: string; -} - -export interface GetResourceCleanDataProps { - resource: Resource; - dispatchMsgToEditor?: (msg: any) => void; - activeLabels?: string[]; - showStatus?: boolean; - router?: any; - container?: any; -} diff --git a/src/custom/ResourceDetailFormatters/useResourceCleanData.ts b/src/custom/ResourceDetailFormatters/useResourceCleanData.ts deleted file mode 100644 index 3e1778f58..000000000 --- a/src/custom/ResourceDetailFormatters/useResourceCleanData.ts +++ /dev/null @@ -1,184 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import _ from 'lodash'; -import moment from 'moment'; -import { GetResourceCleanDataProps, NumberState } from './types'; - -export const useResourceCleanData = () => { - const structureNumberStates = (parsedStatus: any, parsedSpec: any): NumberState[] => { - const numberStates: NumberState[] = []; - - if (parsedSpec?.priority !== undefined) { - numberStates.push({ - title: 'Priority', - value: parsedSpec.priority, - quantity: '' - }); - } - - if (parsedSpec?.containers) { - numberStates.push({ - title: 'Containers', - value: parsedSpec.containers.length, - quantity: 'total' - }); - } - - if (parsedStatus?.containerStatuses) { - const totalRestarts = parsedStatus.containerStatuses.reduce( - (sum: number, container: { restartCount?: number }) => sum + (container.restartCount || 0), - 0 - ); - numberStates.push({ - title: 'Total Restarts', - value: totalRestarts, - quantity: 'times' - }); - } - - return numberStates; - }; - - const getAge = (creationTimestamp?: string): string | undefined => { - if (!creationTimestamp) return undefined; - const creationTime = moment(creationTimestamp); - const currentTime = moment(); - const ageInHours = currentTime.diff(creationTime, 'hours'); - return ageInHours >= 24 ? `${Math.floor(ageInHours / 24)} days` : `${ageInHours} hours`; - }; - - const getStatus = (attribute: any): string | false => { - if (attribute?.phase) { - return attribute.phase; - } - const readyCondition = attribute?.conditions?.find( - (cond: { type: string }) => cond.type === 'Ready' - ); - return readyCondition ? 'Ready' : false; - }; - - const joinwithEqual = (object: Record<string, string> | undefined): string[] => { - if (!object) return []; - return Object.entries(object).map(([key, value]) => { - return `${key}=${value}`; - }); - }; - - const getResourceCleanData = ({ - resource, - activeLabels, - dispatchMsgToEditor, - router, - showStatus = true, - container - }: GetResourceCleanDataProps) => { - const parsedStatus = resource?.status?.attribute && JSON.parse(resource?.status?.attribute); - const parsedSpec = resource?.spec?.attribute && JSON.parse(resource?.spec.attribute); - const numberStates = structureNumberStates(parsedStatus, parsedSpec); - const kind = resource?.kind ?? resource?.component?.kind; - const cleanData = { - container: container, - age: getAge(resource?.metadata?.creationTimestamp), - kind: kind, - status: showStatus && getStatus(parsedStatus), - kubeletVersion: parsedStatus?.nodeInfo?.kubeletVersion, - podIP: parsedStatus?.podIP, - hostIP: parsedStatus?.hostIP, - QoSClass: parsedStatus?.qosClass, - size: parsedSpec?.resources?.requests?.storage, - claim: parsedSpec?.claimRef?.name, - claimNamespace: parsedSpec?.claimRef?.namespace, - apiVersion: resource?.apiVersion, - pods: - parsedStatus?.replicas === undefined - ? parsedStatus?.availableReplicas?.toString() - : `${ - parsedStatus?.availableReplicas?.toString() ?? '0' - } / ${parsedStatus?.replicas?.toString()}`, - replicas: - parsedStatus?.readyReplicas !== undefined && - parsedStatus?.replicas !== undefined && - `${parsedStatus?.readyReplicas} / ${parsedStatus?.replicas}`, - strategyType: resource?.configuration?.spec?.strategy?.type, - storageClass: parsedSpec?.storageClassName, - secretType: resource?.type, - serviceType: parsedSpec?.type, - clusterIp: parsedSpec?.clusterIP, - updateStrategy: parsedSpec?.updateStrategy?.type, - externalIp: parsedSpec?.externalIPs, - finalizers: parsedSpec?.finalizers, - accessModes: parsedSpec?.accessModes, - deeplinks: { - links: [ - { nodeName: parsedSpec?.nodeName, label: 'Node' }, - { namespace: resource?.metadata?.namespace, label: 'Namespace' }, - { - serviceAccount: parsedSpec?.serviceAccountName, - label: 'ServiceAccount', - resourceCategory: 'Security' - } - ], - router: router, - dispatchMsgToEditor: dispatchMsgToEditor - }, - selector: parsedSpec?.selector?.matchLabels - ? joinwithEqual(parsedSpec?.selector?.matchLabels) - : joinwithEqual(parsedSpec?.selector), - images: parsedSpec?.template?.spec?.containers?.map((container: { image?: string }) => { - return container?.image; - }), - numberStates: numberStates, - nodeSelector: - joinwithEqual(parsedSpec?.nodeSelector) || - joinwithEqual(parsedSpec?.template?.spec?.nodeSelector), - loadBalancer: parsedStatus?.loadBalancer?.ingress?.map((ingress: { ip?: string }) => { - return ingress?.ip; - }), - rules: parsedSpec?.rules?.map((rule: { host?: string }) => { - return rule?.host; - }), - usage: { - allocatable: parsedStatus?.allocatable, - capacity: parsedStatus?.capacity - }, - configData: resource?.configuration?.data, - capacity: parsedSpec?.capacity?.storage, - totalCapacity: parsedStatus?.capacity, - totalAllocatable: parsedStatus?.allocatable, - conditions: { - ...parsedStatus?.conditions?.map((condition: { type?: string }) => { - return condition?.type; - }) - }, - tolerations: parsedSpec?.tolerations, - podVolumes: parsedSpec?.volumes, - ingressRules: parsedSpec?.rules, - connections: kind === 'Service' && _.omit(parsedSpec, ['selector', 'type']), - labels: { - data: resource?.metadata?.labels?.map((label) => { - const value = label?.value !== undefined ? label?.value : ''; - return `${label?.key}=${value}`; - }), - dispatchMsgToEditor: dispatchMsgToEditor, - activeViewFilters: activeLabels - }, - annotations: resource?.metadata?.annotations?.map((annotation) => { - const value = annotation?.value !== undefined ? annotation?.value : ''; - return `${annotation?.key}=${value}`; - }), - // secret: resource?.data, //TODO: show it when we have the role based access control for secrets - initContainers: parsedSpec?.initContainers && - parsedStatus?.initContainerStatuses && { - spec: parsedSpec?.initContainers, - status: parsedStatus?.initContainerStatuses - }, - containers: parsedSpec?.containers && - parsedStatus?.containerStatuses && { - spec: parsedSpec?.containers, - status: parsedStatus?.containerStatuses - } - }; - return cleanData; - }; - - return { getResourceCleanData, structureNumberStates, getAge, getStatus, joinwithEqual }; -}; diff --git a/src/custom/ResourceDetailFormatters/utils.ts b/src/custom/ResourceDetailFormatters/utils.ts deleted file mode 100644 index 33c3052ad..000000000 --- a/src/custom/ResourceDetailFormatters/utils.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import _ from 'lodash'; - -interface TableData { - name: string; - [key: string]: string | number | undefined; -} - -interface TableColumn { - name: string; - label: string; - options: { - sort: boolean; - }; -} - -interface TableStructure { - key: string; - columns: TableColumn[]; - rows: TableData[]; -} - -export const splitCamelCaseString = (str: string): string => { - const pluralPatternRegex = /(?<=\w)[A-Z]+s$/; - const pluralMatches = str.match(pluralPatternRegex); - - if (!pluralMatches) { - return _.startCase(str); - } - const reconstructedInput = str.replace(pluralPatternRegex, ''); - - return _.startCase(reconstructedInput) + ' ' + pluralMatches[0]; -}; - -export const extractPodVolumnTables = (data: TableData[] | null): TableStructure[] => { - if (!data) { - return []; - } - const uniqueKeys = _.uniq( - _.flatMap(data, (item) => Object.keys(item).filter((key) => key !== 'name')) - ); - - return uniqueKeys.map((key) => { - const rows = data - .filter((item) => _.has(item, key)) - .map((item) => { - const baseData: TableData = { name: item.name }; - const nestedData = _.get(item, key); - - if (_.isObject(nestedData)) { - Object.entries(nestedData).forEach(([nestedKey, value]) => { - baseData[nestedKey] = - nestedKey === 'defaultMode' - ? value?.toString() - : nestedKey === 'sources' && _.isArray(value) - ? value?.length - : JSON.stringify(value); - }); - } else { - baseData[key] = JSON.stringify(nestedData); - } - - return baseData; - }); - - const columns: TableColumn[] = rows.length - ? Object.keys(rows[0]).map((columnKey) => ({ - name: columnKey, - label: _.startCase(columnKey), - options: { - sort: false - } - })) - : []; - - return { key, columns, rows }; - }); -}; - -export function isEmptyAtAllDepths(input: any): boolean { - if (_.isArray(input)) { - // If the input is an array, check if all items are empty at all depths - return input.every(isEmptyAtAllDepths); - } else if (_.isObject(input)) { - // If the input is an object, check if all properties are empty at all depths - return _.every(input, isEmptyAtAllDepths); - } else { - // If the input is not an array or object, check if it's empty - return _.isEmpty(input); - } -} - -export const convertToReadableUnit = (value: number): string => { - if (!value) return '0'; - - const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB']; - let index = 0; - - while (value >= 1024 && index < units.length - 1) { - value /= 1024; - index++; - } - - return `${value.toFixed(2)} ${units[index]}`; -}; diff --git a/src/custom/ResponsiveDataTable.tsx b/src/custom/ResponsiveDataTable.tsx deleted file mode 100644 index 3b0d4f2cc..000000000 --- a/src/custom/ResponsiveDataTable.tsx +++ /dev/null @@ -1,262 +0,0 @@ -import MUIDataTable, { MUIDataTableColumn } from 'mui-datatables'; -import React, { useCallback } from 'react'; -import { Checkbox, Collapse, ListItemIcon, ListItemText, Menu, MenuItem } from '../base'; -import { ShareIcon } from '../icons'; -import { EllipsisIcon } from '../icons/Ellipsis'; -import { FormattedTime } from '../utils'; -import { styled, useTheme } from './../theme'; -import { ColView } from './Helpers/ResponsiveColumns/responsive-coulmns.tsx'; -import { TooltipIcon } from './TooltipIconButton'; - -export const IconWrapper = styled('div', { - shouldForwardProp: (prop) => prop !== 'disabled' -})<{ disabled?: boolean }>(({ disabled = false }) => ({ - width: 'fit-content', - cursor: disabled ? 'not-allowed' : 'pointer', - opacity: disabled ? '0.5' : '1', - display: 'flex', - '& svg': { - cursor: disabled ? 'not-allowed' : 'pointer' - } -})); - -export const DataTableEllipsisMenu: React.FC<{ - actionsList: NonNullable<Column['options']>['actionsList']; -}> = ({ actionsList }) => { - const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null); - const [isSocialShareOpen, setIsSocialShareOpen] = React.useState(false); - const theme = useTheme(); - const handleClick = (event: React.MouseEvent<HTMLElement>) => { - setAnchorEl(event.currentTarget); - }; - const handleClose = () => { - setAnchorEl(null); - setIsSocialShareOpen(false); - }; - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const handleActionClick = (action: any) => { - if (action.type === 'share-social') { - setIsSocialShareOpen(!isSocialShareOpen); - } else { - if (action.onClick) { - action.onClick(); - } - handleClose(); - } - }; - - return ( - <> - <TooltipIcon - title="View Actions" - onClick={handleClick} - icon={<EllipsisIcon fill={theme.palette.icon.default} />} - arrow - /> - <Menu - id="basic-menu" - anchorEl={anchorEl} - open={Boolean(anchorEl)} - onClose={handleClose} - sx={{ - '& .MuiPaper-root': { - backgroundColor: theme.palette.background.card - } - }} - > - {actionsList && - actionsList.map((action, index) => { - if (action.type === 'share-social') { - return [ - <MenuItem - key={`${index}-menuitem`} - sx={{ - width: '-webkit-fill-available' - }} - onClick={() => handleActionClick(action)} - disabled={action.disabled} - > - <ListItemIcon> - <ShareIcon width={24} height={24} fill={theme.palette.text.primary} /> - </ListItemIcon> - <ListItemText sx={{ color: theme.palette.text.primary }}> - {action.title} - </ListItemText> - </MenuItem>, - <Collapse - key={`${index}-collapse`} - variant="submenu" - in={isSocialShareOpen} - unmountOnExit - > - {action.customComponent} - </Collapse> - ]; - } else { - return ( - <IconWrapper key={index} disabled={action.disabled}> - <MenuItem - sx={{ - width: '-webkit-fill-available' - }} - onClick={() => handleActionClick(action)} - disabled={action.disabled} - > - <ListItemIcon>{action.icon}</ListItemIcon> - <ListItemText sx={{ color: theme.palette.text.primary }}> - {action.title} - </ListItemText> - </MenuItem> - </IconWrapper> - ); - } - })} - </Menu> - </> - ); -}; - -export interface Column { - name: string; - label: string; - options?: { - filter?: boolean; - sort?: boolean; - searchable?: boolean; - display?: boolean; - sortDescFirst?: boolean; - customBodyRender?: (value: string | number | boolean | object) => JSX.Element; - actionsList?: { - title: string; - icon: JSX.Element; - onClick: () => void; - disabled?: boolean; - customComponent?: JSX.Element; - type?: string; - }[]; - }; -} - -export interface ResponsiveDataTableProps { - data: string[][]; - columns: MUIDataTableColumn[]; - options?: object; - tableCols?: MUIDataTableColumn[]; - updateCols?: ((columns: MUIDataTableColumn[]) => void) | undefined; - columnVisibility: Record<string, boolean> | undefined; - colViews?: ColView[]; - rowsPerPageOptions?: number[] | undefined; -} -const ResponsiveDataTable = ({ - data, - columns, - options = {}, - tableCols, - updateCols, - columnVisibility, - rowsPerPageOptions = [10, 25, 50, 100], - ...props -}: ResponsiveDataTableProps): JSX.Element => { - const updatedOptions = { - ...options, - print: false, - download: false, - search: false, - filter: false, - viewColumns: false, - rowsPerPageOptions: rowsPerPageOptions, - onViewColumnsChange: (column: string, action: string) => { - switch (action) { - case 'add': { - const colToAdd = columns.find((obj) => obj.name === column); - if (colToAdd) { - if (colToAdd.options) { - colToAdd.options.display = true; - updateCols && updateCols([...columns]); - } - } - break; - } - case 'remove': { - const colToRemove = columns.find((obj) => obj.name === column); - if (colToRemove) { - if (colToRemove.options) { - colToRemove.options.display = false; - updateCols && updateCols([...columns]); - } - } - break; - } - } - } - }; - - const updateColumnsEffect = useCallback(() => { - columns?.forEach((col) => { - if (typeof col === 'object' && col !== null) { - if (!col.options) { - col.options = {}; - } - col.options.display = columnVisibility && columnVisibility[col.name]; - - if ( - [ - 'updated_at', - 'created_at', - 'deleted_at', - 'last_login_time', - 'joined_at', - 'last_run', - 'next_run' - ].includes(col.name) - ) { - col.options.customBodyRender = (value: string | number | boolean | object) => { - if (value === 'NA' || value === null || value === undefined) { - return <>{value}</>; - } else if (typeof value === 'object' && 'Valid' in value) { - const obj = value as { Valid: boolean; Time: string | undefined }; - if (obj.Valid && obj.Time) { - return <FormattedTime date={obj.Time} />; - } else { - return <>NA</>; - } - } else if (typeof value === 'string') { - return <FormattedTime date={value} />; - } else { - return <>{value}</>; - } - }; - } - } - }); - updateCols && updateCols([...columns]); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [columnVisibility, updateCols]); - - React.useEffect(() => { - updateColumnsEffect(); - }, [updateColumnsEffect]); - - const components = { - ExpandButton: () => '', - Checkbox: Checkbox - }; - - return ( - <MUIDataTable - columns={tableCols ?? []} - data={data || []} - title={undefined} - components={components} - options={{ - ...updatedOptions, - elevation: 0, - enableNestedDataAccess: '.' - }} - {...props} - /> - ); -}; - -export default ResponsiveDataTable; diff --git a/src/custom/SearchBar.tsx b/src/custom/SearchBar.tsx deleted file mode 100644 index 34ee4ba8e..000000000 --- a/src/custom/SearchBar.tsx +++ /dev/null @@ -1,180 +0,0 @@ -/* eslint-disable react-hooks/exhaustive-deps */ -import { outlinedInputClasses } from '@mui/material/OutlinedInput'; -import { Theme, ThemeProvider, createTheme } from '@mui/material/styles'; -import debounce from 'lodash/debounce'; -import React, { useCallback } from 'react'; -import { ClickAwayListener } from '../base/ClickAwayListener'; -import { TextField } from '../base/TextField'; -import { CloseIcon, SearchIcon } from '../icons'; -import { useTheme } from '../theme'; -import { TooltipIcon } from './TooltipIconButton'; - -const customTheme = (theme: Theme) => - createTheme({ - typography: { - fontFamily: theme.typography.fontFamily - }, - components: { - MuiTextField: { - styleOverrides: { - root: { - '--TextField-brandBorderColor': theme.palette.border.strong, - '--TextField-brandBorderHoverColor': theme.palette.background.graphics?.default, - '--TextField-brandBorderFocusedColor': theme.palette.background.graphics?.default, - '& label.Mui-focused': { - color: 'var(--TextField-brandBorderFocusedColor)' - } - } - } - }, - MuiOutlinedInput: { - styleOverrides: { - notchedOutline: { - borderColor: 'var(--TextField-brandBorderColor)' - }, - root: { - [`&:hover .${outlinedInputClasses.notchedOutline}`]: { - borderColor: 'var(--TextField-brandBorderHoverColor)' - }, - [`&.Mui-focused .${outlinedInputClasses.notchedOutline}`]: { - borderColor: 'var(--TextField-brandBorderFocusedColor)' - } - } - } - }, - MuiInput: { - styleOverrides: { - root: { - color: theme.palette.text.default, - '&::before': { - borderBottom: '2px solid var(--TextField-brandBorderColor)' - }, - '&:hover:not(.Mui-disabled, .Mui-error):before': { - borderBottom: '2px solid var(--TextField-brandBorderHoverColor)' - }, - '&.Mui-focused:after': { - borderBottom: '2px solid var(--TextField-brandBorderFocusedColor)' - } - } - } - }, - MuiButton: { - styleOverrides: { - root: { - lineHeight: 'auto' - } - } - } - } - }); - -export interface SearchBarProps { - onSearch: (searchText: string) => void; - style?: React.CSSProperties; - placeholder?: string; - onClear?: () => void; - expanded: boolean; - setExpanded: (expanded: boolean) => void; -} - -function SearchBar({ - onSearch, - placeholder, - onClear, - expanded, - setExpanded -}: SearchBarProps): JSX.Element { - const [searchText, setSearchText] = React.useState(''); - const searchRef = React.useRef<HTMLInputElement | null>(null); - const theme = useTheme(); - - // Debounce the onSearch function - const debouncedOnSearch = useCallback( - debounce((value) => { - onSearch(value); - }, 300), - [onSearch] - ); - - const handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>): void => { - const value = event.target.value; - setSearchText(value); - debouncedOnSearch(value); - }; - - const handleClearIconClick = (e: React.MouseEvent): void => { - e.stopPropagation(); - debouncedOnSearch(''); - setSearchText(''); - setExpanded(false); - if (onClear) { - onClear(); - } - }; - - const handleSearchIconClick = (e: React.MouseEvent): void => { - e.stopPropagation(); - if (expanded) { - debouncedOnSearch(''); - setSearchText(''); - setExpanded(false); - } else { - setExpanded(true); - setTimeout(() => { - if (searchRef.current) { - searchRef.current.focus(); - } - }, 300); - } - }; - - return ( - <ClickAwayListener - onClickAway={(event) => { - event.stopPropagation(); - const isTable = (event.target as HTMLElement)?.closest('#ref'); - - if (searchText !== '') { - return; - } - if (isTable) { - handleClearIconClick(event as unknown as React.MouseEvent); - } - }} - > - <div style={{ display: 'flex' }}> - <ThemeProvider theme={customTheme(theme)}> - <TextField - variant="standard" - value={searchText} - onChange={handleSearchChange} // Updated to use the new handler - inputRef={searchRef} - placeholder={placeholder} - style={{ - width: expanded ? '150px' : '0', - opacity: expanded ? 1 : 0, - transition: 'width 0.3s ease, opacity 0.3s ease' - }} - /> - </ThemeProvider> - {expanded ? ( - <TooltipIcon - title="Close" - onClick={handleClearIconClick} - icon={<CloseIcon fill={theme.palette.icon.default} />} - arrow - /> - ) : ( - <TooltipIcon - title="Search" - onClick={handleSearchIconClick} - icon={<SearchIcon fill={theme.palette.icon.default} />} - arrow - /> - )} - </div> - </ClickAwayListener> - ); -} - -export default SearchBar; diff --git a/src/custom/SetupPrerequisite/SetupPrerequisite.tsx b/src/custom/SetupPrerequisite/SetupPrerequisite.tsx deleted file mode 100644 index 06b141c36..000000000 --- a/src/custom/SetupPrerequisite/SetupPrerequisite.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import React from 'react'; -import { Card, CardHeader, ContainerCardWrapper, SetupPreReqWrapper } from './style'; - -interface SetupItem { - heading: string; - description: string; - Icon: JSX.Element | string; // Updated to allow string (image source) - url: string; -} -interface SetupPreReqProps { - Steps: SetupItem[]; - PrerequisiteLine?: string; -} -const SetupPreReq: React.FC<SetupPreReqProps> = ({ Steps, PrerequisiteLine }) => ( - <SetupPreReqWrapper> - <div className="get-started-desc" id="pre-requisites"> - <h2>Prerequisites</h2> - <p>{PrerequisiteLine}</p> - </div> - <ContainerCardWrapper id="Set up"> - {Steps.map((item, index) => { - return ( - <Card key={index} href={item.url} target="_blank"> - <CardHeader> - <h2>{item.heading}</h2> - {typeof item.Icon === 'string' ? ( - <img src={item.Icon} alt={item.heading} width={'40px'} height={'40px'} /> - ) : ( - item.Icon - )} - </CardHeader> - <p>{item.description}</p> - </Card> - ); - })} - </ContainerCardWrapper> - </SetupPreReqWrapper> -); - -export default SetupPreReq; diff --git a/src/custom/SetupPrerequisite/index.tsx b/src/custom/SetupPrerequisite/index.tsx deleted file mode 100644 index f71d95a98..000000000 --- a/src/custom/SetupPrerequisite/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import SetupPreReq from './SetupPrerequisite'; - -export { SetupPreReq }; diff --git a/src/custom/SetupPrerequisite/style.tsx b/src/custom/SetupPrerequisite/style.tsx deleted file mode 100644 index d0a5a779a..000000000 --- a/src/custom/SetupPrerequisite/style.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { styled } from '@mui/material'; - -const SetupPreReqWrapper = styled('div')({ - padding: '1rem 0', - '& h2': { - margin: '1rem 0' - }, - '.get-started-desc': { - margin: '1rem' - } -}); - -const ContainerCardWrapper = styled('div')(({ theme }) => ({ - display: 'flex', - cursor: 'pointer', - flexDirection: 'row', - flexWrap: 'wrap', - '& a': { - color: theme.palette.text.primary, - margin: '1rem' - } -})); - -const Card = styled('a')(({ theme }) => ({ - flex: '1', - padding: '2rem', - textDecoration: 'none', - background: theme.palette.mode === 'light' ? '#EEEEEE' : '#212121', - minHeight: '21.5rem', - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)', - borderRadius: '10px', - '&:hover': { - boxShadow: `${theme.palette.background.brand?.default} 0px 0px 7px` - }, - '& a': { - margin: '0 !important', - '&:hover': { - color: theme.palette.background.brand?.default - } - } -})); - -const CardHeader = styled('div')({ - display: 'flex', - alignItems: 'center', - gap: '1rem' -}); - -const SetupImgs = styled('div')({ - flex: '0 0 25%', - alignSelf: 'center', - margin: '0 0.5rem' -}); - -const Image = styled('img')({ - height: '3rem', - width: '3rem', - maxWidth: '3rem', - margin: 'auto' -}); - -const SvgIcon = styled('svg')(({ theme }) => ({ - fontSize: '4.15rem', - alignSelf: 'center', - flex: '0 0 25%', - margin: '0 0.5rem', - filter: theme.palette.mode === 'light' ? '0%' : 'invert(100%)', - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' -})); - -const CardTitle = styled('h2')({ - fontSize: '1.75rem', - margin: '1rem 0' -}); - -const CardText = styled('p')(({ theme }) => ({ - color: theme.palette.text.primary, - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' -})); - -export { - Card, - CardHeader, - CardText, - CardTitle, - ContainerCardWrapper, - Image, - SetupImgs, - SetupPreReqWrapper, - SvgIcon -}; diff --git a/src/custom/ShareModal/ShareModal.tsx b/src/custom/ShareModal/ShareModal.tsx deleted file mode 100644 index c26fdbb51..000000000 --- a/src/custom/ShareModal/ShareModal.tsx +++ /dev/null @@ -1,539 +0,0 @@ -import { CircularProgress, SelectChangeEvent } from '@mui/material'; -import React, { useEffect, useState } from 'react'; -import { - Avatar, - IconButton, - List, - ListItem, - ListItemAvatar, - ListItemSecondaryAction, - ListItemText, - MenuItem, - Typography -} from '../../base'; -import { ChainIcon, DeleteIcon, LockIcon, PublicIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { BLACK, WHITE } from '../../theme/colors'; -import { - canShareResourceWithNewUsers, - canUpdateResourceVisibility, - User -} from '../../utils/permissions'; -import { CustomTooltip } from '../CustomTooltip'; -import { Modal, ModalBody, ModalButtonSecondary, ModalFooter } from '../Modal'; -import UserShareSearch from '../UserSearchField/UserSearchField'; -import { - CustomDialogContentText, - CustomListItemText, - CustomSelect, - FormControlWrapper, - IconButtonWrapper, - ListWrapper, - VisibilityIconWrapper -} from './style'; - -const options = { - PUBLIC: 'Anyone with the link can edit', - PRIVATE: 'Only people with access can open with the link' -}; - -const SHARE_MODE = VISIBILITY; - -interface AccessListProps { - accessList: User[]; - ownerData: User; - handleDelete: (email: string) => Promise<{ error: string }>; - hostURL?: string | null; -} - -interface AccessListActorProps { - actor: User; - isOwner: boolean; - hostURL?: string | null; - handleDelete: (email: string) => Promise<{ error: string }>; -} - -const AccessListActor: React.FC<AccessListActorProps> = ({ - actor: actorData, - hostURL, - isOwner, - handleDelete -}) => { - const theme = useTheme(); - const [isRevoking, setIsRevoking] = useState(false); - const revokeAcess = async () => { - setIsRevoking(true); - try { - await handleDelete(actorData.email); - } finally { - setIsRevoking(false); - } - }; - - const openInNewTab = (url: string) => { - window.open(url, '_blank', 'noreferrer'); - }; - - return ( - <ListItem key={actorData.id} style={{ paddingLeft: '0' }}> - <ListItemAvatar> - <Avatar - alt={actorData.first_name} - src={actorData.avatar_url} - imgProps={{ referrerPolicy: 'no-referrer' }} - onClick={() => { - hostURL && openInNewTab(`${hostURL}/user/${actorData.id}`); - }} - /> - </ListItemAvatar> - <ListItemText - primary={`${actorData.first_name || ''} ${actorData.last_name || ''}`} - secondary={actorData.email} - secondaryTypographyProps={{ - sx: { - color: theme.palette.background.neutral?.pressed - } - }} - /> - <ListItemSecondaryAction> - {isOwner && <div>Owner</div>} - - {!isOwner && !isRevoking && ( - <CustomTooltip title="Remove Access" placement="top" arrow> - <IconButton edge="end" aria-label="delete" onClick={revokeAcess}> - <DeleteIcon fill={theme.palette.background.neutral?.default} /> - </IconButton> - </CustomTooltip> - )} - - {isRevoking && <CircularProgress size={24} sx={{ color: theme.palette.icon.default }} />} - </ListItemSecondaryAction> - </ListItem> - ); -}; - -/** - * Custom component to show users list with delete icon and owner tag - */ -const AccessList: React.FC<AccessListProps> = ({ - accessList, - ownerData, - handleDelete, - hostURL -}: AccessListProps) => { - return ( - <> - {accessList.length > 0 && ( - <Typography variant="h6" style={{ marginTop: '0.5rem' }}> - People with Access - </Typography> - )} - <ListWrapper> - <List dense> - {accessList.map((actorData) => ( - <AccessListActor - hostURL={hostURL} - key={actorData.id} - actor={actorData} - handleDelete={handleDelete} - isOwner={ownerData.id == actorData.id} - /> - ))} - </List> - </ListWrapper> - </> - ); -}; - -interface SelectedResource { - visibility: string; - name: string; - [key: string]: unknown; -} - -type SelectedResources = SelectedResource | SelectedResource[]; - -export type ResourceAccessArg = { - resourceType: string; - resourceId: string | string[]; - resourceAccessMappingPayload: { - grant_access: string[]; - revoke_access: string[]; - notify_users: boolean; - }; -}; - -import { startCase } from 'lodash'; -import { VISIBILITY } from '../../constants/constants'; - -interface ShareModalProps { - /** Function to close the share modal */ - handleShareModalClose: () => void; - /** The resource(s) that is selected for sharing.*/ - selectedResource: SelectedResources; - /** The name of the data being shared, like design or filter */ - dataName: string; - /** Data of the user who owns the resource */ - ownerData: User; - /** Function to fetch the list of users who have access to the resource */ - fetchAccessActors: () => Promise<User[]>; - /** Optional URL of the host application. Defaults to `null` if not provided */ - hostURL?: string | null; - handleUpdateVisibility: (value: string) => Promise<{ error: string }>; - handleShareWithNewUsers: (newUsers: User[]) => Promise<{ error: string }>; - canShareWithNewUsers: boolean; - handleRevokeAccess: (revokedUsser: User[]) => Promise<{ error: string }>; - canRevokeAccess: boolean; - - /* eslint-disable @typescript-eslint/no-explicit-any */ - resourceAccessMutator: any; - notify: ({ message, event_type }: { message: string; event_type: 'success' | 'error' }) => void; - - /* eslint-disable @typescript-eslint/no-explicit-any */ - useGetAllUsersQuery: any; - shareableLink: string; - mesheryURL: string; // url to hosted meshery - currentUser: User; -} - -/** - * ShareModal component allows sharing a resource with specified users - * and configuring visibility options. - */ -const ShareModal: React.FC<ShareModalProps> = ({ - handleShareModalClose, - selectedResource, - dataName, - ownerData, - fetchAccessActors, - hostURL = null, - currentUser, - handleUpdateVisibility, - resourceAccessMutator, - notify, - useGetAllUsersQuery, - shareableLink -}: ShareModalProps): JSX.Element => { - console.log('amit selectdResource', selectedResource); - const theme = useTheme(); - const [openMenu, setMenu] = useState<boolean>(false); - const [shareUserData, setShareUserData] = useState<User[]>([]); - const [resourceVisibility, setVisibility] = useState( - Array.isArray(selectedResource) ? selectedResource[0].visibility : selectedResource.visibility - ); - console.log('amit resourceVisibility', resourceVisibility); - const [isUpdatingVisibility, setUpdatingVisibility] = useState(false); - - const userCanUpdateVisibility = Array.isArray(selectedResource) - ? selectedResource.every((resource) => - canUpdateResourceVisibility(resource, currentUser, ownerData) - ) - : canUpdateResourceVisibility(selectedResource, currentUser, ownerData); - - const userCanShareWithNewUsers = Array.isArray(selectedResource) - ? selectedResource.every((resource) => - canShareResourceWithNewUsers(resource, currentUser, ownerData) - ) - : canShareResourceWithNewUsers(selectedResource, currentUser, ownerData); - - const handleCopy = () => { - navigator.clipboard.writeText(shareableLink); - notify({ - message: 'Link copied to clipboard', - event_type: 'success' - }); - }; - - const resourceType = dataName === 'design' ? 'pattern' : dataName; - - const handleShareWithNewUsers = async (newUsers: User[]) => { - const grantAccessList = newUsers.map((user) => ({ - actor_id: user.user_id, - actor_type: 'user' - })); - const emails = newUsers.map((u) => u.email); - - if (Array.isArray(selectedResource)) { - const responses = await Promise.all( - selectedResource.map((resource) => - resourceAccessMutator({ - resourceType, - resourceId: resource.id, - resourceAccessMappingPayload: { - grant_access: [...grantAccessList], - revoke_access: [], - notify_users: true - } - }) - ) - ); - - const hasError = responses.some((response) => response?.error); - - if (!hasError) { - notify({ - message: `${dataName}s shared with ${emails.join(', ')}`, - event_type: 'success' - }); - } else { - notify({ - message: `An error occurred. Some ${dataName}s may not have been shared`, - event_type: 'error' - }); - } - - return { - error: hasError ? 'Some resources failed to share' : '' - }; - } - - const response = await resourceAccessMutator({ - resourceType, - resourceId: !Array.isArray(selectedResource) ? selectedResource.id : selectedResource[0].id, - resourceAccessMappingPayload: { - grant_access: [...grantAccessList], - revoke_access: [], - notify_users: true - } - }); - - if (!response?.error) { - notify({ - message: `${dataName} shared with ${emails.join(', ')}`, - event_type: 'success' - }); - } - - if (response?.error) { - notify({ - message: `An error occurred. ${dataName} not shared`, - event_type: 'error' - }); - } - - return { - error: response?.error?.error - }; - }; - - const handleRevokeAccess = async (revokedUsers: User[]) => { - const revokeAccessList = revokedUsers.map((user) => ({ - actor_id: user.id, - actor_type: 'user' - })); - const emails = revokedUsers.map((u) => u.email); - - const response = await resourceAccessMutator({ - resourceType, - resourceId: !Array.isArray(selectedResource) ? selectedResource.id : selectedResource[0].id, - resourceAccessMappingPayload: { - grant_access: [], - revoke_access: [...revokeAccessList], - notify_users: true - } - }); - - if (!response?.error) { - const msg = `Access to ${dataName} revoked for ${emails.join(', ')} `; - notify({ - message: msg, - event_type: 'success' - }); - } - - if (response?.error) { - notify({ - message: `failed to revokke access to ${dataName}`, - event_type: 'error' - }); - } - - return { - error: response?.error?.error - }; - }; - - const handleDelete = async (email: string) => { - const revoked = shareUserData.find((user) => user.email == email); - if (!revoked) { - console.error('cant revoke user without acesss'); - return { error: '' }; - } - return handleRevokeAccess([revoked]); - }; - - /* eslint-disable @typescript-eslint/no-explicit-any */ - const notifyVisibilityChange = (res: any, value: any) => { - const UPDATE_VISIBILITY_MSG = Array.isArray(selectedResource) - ? `${startCase(dataName)}s (${selectedResource.length}) are now ${value}` - : `${startCase(dataName)} '${selectedResource.name}' is now ${value}`; - const FAILED_TO_UPDATE_VISIBILITY_MSG = `Failed to update visibility. ${res?.error?.error || ''}`; - - if (!res.error) { - notify({ - message: UPDATE_VISIBILITY_MSG, - event_type: 'success' - }); - } else { - notify({ - message: FAILED_TO_UPDATE_VISIBILITY_MSG, - event_type: 'error' - }); - } - }; - - const updateVisisbility = async (event: SelectChangeEvent<unknown>) => { - const value = event.target.value as string; - - if (value == resourceVisibility) { - console.error('visibility is already ', value); - return; - } - - try { - setUpdatingVisibility(true); - const res = await handleUpdateVisibility(value); - notifyVisibilityChange(res, value); - if (!res?.error) { - setVisibility(value); - } - } finally { - setUpdatingVisibility(false); - } - }; - - const handleMenuClose = () => setMenu(false); - - useEffect(() => { - const fetchActors = async () => { - const actors = await fetchAccessActors(); - setShareUserData(actors); - }; - fetchActors(); - }, [fetchAccessActors]); - - return ( - <div style={{ marginBottom: '1rem' }}> - <Modal - open={true} - closeModal={handleShareModalClose} - title={ - Array.isArray(selectedResource) - ? `Share ${selectedResource.length} ${dataName}s` - : `Share ${dataName} "${selectedResource?.name}"` - } - > - <ModalBody> - <UserShareSearch - usersData={shareUserData} - shareWithNewUsers={handleShareWithNewUsers} - disabled={!userCanShareWithNewUsers} - useGetAllUsersQuery={useGetAllUsersQuery} - /> - - <AccessList - accessList={shareUserData} - ownerData={ownerData} - handleDelete={handleDelete} - hostURL={hostURL} - /> - - {!Array.isArray(selectedResource) && resourceVisibility !== 'published' && ( - <> - <CustomListItemText> - <Typography variant="h6">General Access</Typography> - </CustomListItemText> - <CustomDialogContentText> - <FormControlWrapper size="small"> - <div style={{ display: 'flex', justifyContent: 'start', alignItems: 'center' }}> - <VisibilityIconWrapper> - {isUpdatingVisibility && <CircularProgress size={24} />} - - {!isUpdatingVisibility && resourceVisibility === SHARE_MODE.PUBLIC && ( - <PublicIcon - width={24} - height={24} - fill={theme.palette.icon.default} - stroke={theme.palette.mode === 'dark' ? WHITE : BLACK} - /> - )} - - {!isUpdatingVisibility && resourceVisibility == SHARE_MODE.PRIVATE && ( - <LockIcon - width={24} - height={24} - fill={theme.palette.icon.default} - stroke={theme.palette.mode === 'dark' ? WHITE : BLACK} - /> - )} - </VisibilityIconWrapper> - <div style={{ display: 'flex', flexDirection: 'column' }}> - <CustomSelect - variant="outlined" - value={resourceVisibility} - labelId="share-menu-select" - id="share-menu" - open={openMenu} - onClose={handleMenuClose} - onOpen={() => setMenu(true)} - onChange={updateVisisbility} - disabled={!userCanUpdateVisibility || isUpdatingVisibility} - > - {Object.values(SHARE_MODE).map((option) => ( - <MenuItem - key={option} - selected={option === resourceVisibility} - value={option} - > - {option.charAt(0).toUpperCase() + option.slice(1)} - </MenuItem> - ))} - </CustomSelect> - <Typography - sx={{ - color: theme.palette.background.neutral?.pressed - }} - component="span" - variant="body2" - > - {resourceVisibility === SHARE_MODE.PRIVATE - ? options.PRIVATE - : options.PUBLIC} - </Typography> - </div> - </div> - </FormControlWrapper> - </CustomDialogContentText> - </> - )} - </ModalBody> - - <ModalFooter - variant="filled" - helpText="You can share your designs or designs for which you have permission to share with other members of your organization and teams, and you can control access permissions. [Learn More](https://docs.layer5.io/kanvas/designer/share-resource)" - > - <div - style={{ - display: 'flex', - justifyContent: 'end', - gap: '1rem' - }} - > - <ModalButtonSecondary - variant="outlined" - onClick={handleCopy} - style={{ marginRight: '1rem', padding: '7px 16px' }} - > - <IconButtonWrapper> - <ChainIcon width="24" height="24" fill={theme.palette.text.constant?.white} /> - </IconButtonWrapper> - <Typography>Copy Link</Typography> - </ModalButtonSecondary> - </div> - </ModalFooter> - </Modal> - </div> - ); -}; - -export default ShareModal; diff --git a/src/custom/ShareModal/index.tsx b/src/custom/ShareModal/index.tsx deleted file mode 100644 index 47ba38288..000000000 --- a/src/custom/ShareModal/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import ShareModal from './ShareModal'; - -export { ShareModal }; diff --git a/src/custom/ShareModal/style.tsx b/src/custom/ShareModal/style.tsx deleted file mode 100644 index 6139e9e9a..000000000 --- a/src/custom/ShareModal/style.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { styled } from '@mui/material'; -import { DialogContentText, FormControl, ListItemText, Select, Typography } from '../../base'; - -export const CustomText = styled(Typography)(() => ({ - fontFamily: 'Qanelas Soft, sans-serif', - '&.MuiTypography-root': { - fontFamily: 'Qanelas Soft, sans-serif' - } -})); - -export const CustomListItemText = styled(ListItemText)(() => ({ - display: 'flex', - justifyContent: 'space-between' -})); - -export const IconButtonWrapper = styled(`div`)(() => ({ - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - marginRight: '0.2rem' -})); - -export const VisibilityIconWrapper = styled(`div`)(({ theme }) => ({ - width: '36px', - height: '36px', - background: theme.palette.background.hover, - borderRadius: '20px', - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - marginRight: '1rem' -})); - -export const FormControlWrapper = styled(FormControl)(() => ({ - width: '100%' -})); - -export const ListWrapper = styled(`div`)(() => ({ - maxHeight: '16rem', - overflowY: 'auto' -})); - -export const CustomSelect = styled(Select)(() => ({ - width: '6rem', - boxShadow: 'none', - '&:before': { - display: 'none' - }, - '&:after': { - display: 'none' - }, - fontFamily: 'Qanelas Soft, sans-serif', - '&.MuiTypography-root': { - fontFamily: 'Qanelas Soft, sans-serif' - }, - '& .MuiOutlinedInput-notchedOutline': { - border: 'none' - }, - '& .MuiSelect-select': { - padding: 0 - } -})); - -export const CustomDialogContentText = styled(DialogContentText)(() => ({ - display: 'flex', - justifyContent: 'space-between', - marginTop: '0.2rem', - alignItems: 'center', - alignContent: 'center' -})); diff --git a/src/custom/Stepper/index.tsx b/src/custom/Stepper/index.tsx deleted file mode 100644 index 5fd4107f5..000000000 --- a/src/custom/Stepper/index.tsx +++ /dev/null @@ -1,195 +0,0 @@ -import { Box, Stack, Step, StepConnector, StepLabel, Stepper } from '@mui/material'; -import { stepConnectorClasses } from '@mui/material/StepConnector'; -import { StepIconProps } from '@mui/material/StepIcon'; -import { styled } from '@mui/system'; -import React, { useMemo, useState } from 'react'; -import { IconProps } from '../../icons/types'; -import { useTheme } from '../../theme'; - -interface ColorlibStepIconPropsI extends StepIconProps { - icons: React.ComponentType<IconProps>[]; -} - -interface StepI { - label: string; - component: React.ComponentType; - icon: React.ComponentType<IconProps>; -} - -interface UseStepperOptionsI { - steps: StepI[]; -} - -interface CustomizedStepperPropsI { - activeStep: number; - stepLabels: string[]; - children: React.ReactNode; - icons: React.ComponentType<IconProps>[]; - ContentWrapper?: React.ComponentType<{ children: React.ReactNode }>; -} - -interface UseStepperI { - steps: StepI[]; - activeStep: number; - setActiveStep: React.Dispatch<React.SetStateAction<number>>; - handleNext: () => void; - goBack: () => void; - goToStep: (step: number) => void; - canGoBack: boolean; - canGoForward: boolean; - stepLabels: string[]; - icons: React.ComponentType<IconProps>[]; - activeStepComponent: React.ComponentType; -} - -const ColorlibConnector = styled(StepConnector)(({ theme }) => ({ - [`&.${stepConnectorClasses.alternativeLabel}`]: { - top: 22 - }, - [`&.${stepConnectorClasses.active}`]: { - [`& .${stepConnectorClasses.line}`]: { - background: theme.palette.background.brand?.default, - transition: 'all 1s ease-in' - } - }, - [`&.${stepConnectorClasses.completed}`]: { - [`& .${stepConnectorClasses.line}`]: { - background: theme.palette.background.brand?.default, - transition: 'all 1s ease-in' - } - }, - [`& .${stepConnectorClasses.line}`]: { - height: 3, - border: 0, - background: theme.palette.background.tertiary, - borderRadius: 1, - transition: 'all 0.5s ease-out ' - } -})); - -const ColorlibStepIconRoot = styled('div')<{ - ownerState: { completed?: boolean; active?: boolean }; -}>(({ theme, ownerState }) => ({ - background: theme.palette.background.tertiary, - zIndex: 1, - width: 50, - height: 50, - display: 'flex', - borderRadius: '50%', - justifyContent: 'center', - alignItems: 'center', - ...(ownerState.active && { - border: `.2rem solid ${theme.palette.background.brand?.default}`, - transition: 'all 0.5s ease-in' - }), - ...(ownerState.completed && { - background: theme.palette.background.secondary, - border: `.2rem solid ${theme.palette.background.brand?.default}`, - transition: 'all 0.5s ease-in' - }) -})); - -const StepContentWrapper = styled(Box)(({ theme }) => ({ - padding: theme.spacing(2) -})); - -const StyledStepLabel = styled(StepLabel)(({ theme }) => ({ - '& .MuiStepLabel-labelContainer': { - color: theme.palette.text.tertiary - } -})); - -function ColorlibStepIcon(props: ColorlibStepIconPropsI) { - const { active, completed, className, icons } = props; - - const Icon = icons[Number(props.icon) - 1]; - const theme = useTheme(); - return ( - <ColorlibStepIconRoot ownerState={{ completed, active }} className={className}> - {Icon ? <Icon fill={theme.palette.icon.secondary} /> : null} - </ColorlibStepIconRoot> - ); -} - -const CustomizedStepper: React.FC<CustomizedStepperPropsI> = ({ - stepLabels, - activeStep, - children, - icons, - ContentWrapper = StepContentWrapper -}) => { - const theme = useTheme(); - - return ( - <Stack> - <Stack - direction="row" - justifyContent="center" - style={{ paddingBlock: '1rem', backgroundColor: theme.palette.background.blur?.heavy }} - > - <Stepper alternativeLabel activeStep={activeStep} connector={<ColorlibConnector />}> - {stepLabels.map((label) => ( - <Step key={label}> - <StyledStepLabel - StepIconComponent={(props) => <ColorlibStepIcon {...props} icons={icons} />} - > - {label} - </StyledStepLabel> - </Step> - ))} - </Stepper> - </Stack> - <ContentWrapper>{children}</ContentWrapper> - </Stack> - ); -}; - -export const useStepper = ({ steps }: UseStepperOptionsI): UseStepperI => { - const [activeStep, setActiveStep] = useState(0); - - const handleNext = () => { - if (activeStep === steps.length - 1) { - return; - } - setActiveStep((prevActiveStep) => prevActiveStep + 1); - }; - - const goBack = () => { - if (activeStep === 0) { - return; - } - setActiveStep((prevActiveStep) => prevActiveStep - 1); - }; - - const goToStep = (step: number) => { - if (step < 0 || step > steps.length - 1) { - throw new Error('Invalid step'); - } - - setActiveStep(step); - }; - - const canGoBack = activeStep > 0; - const canGoForward = activeStep < steps.length - 1; - - const icons = useMemo(() => steps.map((step) => step.icon), [steps]); - const stepLabels = useMemo(() => steps.map((step) => step.label), [steps]); - - const activeStepComponent = steps[activeStep].component; - - return { - activeStep, - setActiveStep, - handleNext, - goBack, - goToStep, - steps, - canGoBack, - stepLabels, - icons, - canGoForward, - activeStepComponent - }; -}; - -export { ColorlibConnector, CustomizedStepper }; diff --git a/src/custom/StyledChapter/StyledChapter.tsx b/src/custom/StyledChapter/StyledChapter.tsx deleted file mode 100644 index 887b8960d..000000000 --- a/src/custom/StyledChapter/StyledChapter.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import { styled } from '@mui/material'; -import { SLATE_BLUE, TRANSPARENT_WHITE } from '../../theme'; - -const StyledChapter = styled('div')(({ theme }) => ({ - color: theme.palette.text.primary, - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)', - - '.chapter-sub-heading, .chapter-sub-heading a': { - color: theme.palette.mode === 'light' ? SLATE_BLUE : TRANSPARENT_WHITE, - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' - }, - - '.chapter-alt-heading, .chapter-alt-heading a': { - color: 'gray' - }, - - '& a': { - color: theme.palette.background.brand?.default, - textDecoration: 'underline', - '&:hover': { - color: theme.palette.background.brand?.default - } - }, - '& p > code': { - color: 'inherit', - padding: '.2em .4em', - margin: '0', - fontSize: '85%', - wordBreak: 'normal', - backgroundColor: theme.palette.background.code, - borderRadius: '.25rem' - }, - '& pre': { - backgroundColor: '#011627', - padding: '1em', - borderRadius: '0.5rem', - overflowX: 'auto', - color: '#d6deeb', - position: 'relative', - textAlign: 'left', - width: '100%', - margin: '1rem auto autocompleteClasses', - fontFamily: 'Courier New, Courier, monospace' - }, - '& li code': { - color: 'inherit', - padding: '.2em .4em', - margin: '0', - fontSize: '85%', - wordBreak: 'normal', - backgroundColor: theme.palette.background.code, - borderRadius: '.25rem' - }, - '& li a': { - color: theme.palette.text.default, - textDecoration: 'underline', - '&:hover': { - color: theme.palette.background.brand?.default - } - } -})); -export default StyledChapter; diff --git a/src/custom/StyledChapter/index.tsx b/src/custom/StyledChapter/index.tsx deleted file mode 100644 index 955c6b5ca..000000000 --- a/src/custom/StyledChapter/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import StyledChapter from './StyledChapter'; - -export { StyledChapter }; diff --git a/src/custom/StyledSearchBar/StyledSearchBar.tsx b/src/custom/StyledSearchBar/StyledSearchBar.tsx deleted file mode 100644 index b608789c7..000000000 --- a/src/custom/StyledSearchBar/StyledSearchBar.tsx +++ /dev/null @@ -1,107 +0,0 @@ -import { SxProps, Theme } from '@mui/material'; -import { debounce } from 'lodash'; -import React, { useEffect, useMemo, useState } from 'react'; -import { InputAdornment } from '../../base'; -import { SearchIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { InputAdornmentEnd, StyledSearchInput } from './style'; - -interface SearchBarProps { - onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void; - value?: string; - width?: string; - label?: string; - placeholder?: string; - sx?: SxProps<Theme>; - endAdornment?: React.ReactNode; - debounceTime?: number; -} - -/** - * StyledSearchBar component renders a search input field with customizable properties. - * - * @param {Object} props - The component props. - * @param {function} [props.onChange] - Function to handle the change event when the search input value changes. - * @param {string} [props.value] - The current value of the search input. - * @param {string} [props.label] - The label for the search input. - * @param {string} [props.placeholder] - The placeholder text for the search input. - * @param {Object} [props.sx] - The style object for the search input. - * @param {React.ReactNode} [props.endAdornment] - The element to display at the end of the search input. - * @param {number} [props.debounceTime] - The debounce time for the input change handler. - * - * @returns {JSX.Element} The rendered StyledSearchBar component. - */ -function StyledSearchBar({ - onChange, - value = '', - label, - sx, - placeholder, - endAdornment, - debounceTime = 300 -}: SearchBarProps): JSX.Element { - const theme = useTheme(); - const [inputValue, setInputValue] = useState(value); - - // Update local state when controlled value changes - useEffect(() => { - if (value !== inputValue) { - setInputValue(value); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [value]); - - // Create synthetic event helper - const createSyntheticEvent = (value: string): React.ChangeEvent<HTMLInputElement> => - ({ - target: { value }, - persist: () => {} - }) as React.ChangeEvent<HTMLInputElement>; - - // Memoize the debounced handler - const debouncedOnChange = useMemo( - () => - debounce((newValue: string) => { - onChange?.(createSyntheticEvent(newValue)); - }, debounceTime), - [onChange, debounceTime] - ); - - useEffect(() => { - if (!onChange) return; - if (inputValue === '') { - onChange(createSyntheticEvent(inputValue)); - } else { - debouncedOnChange(inputValue); - } - - return () => { - debouncedOnChange.cancel(); - }; - }, [inputValue, onChange, debouncedOnChange]); - - const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => { - const newValue = event.target.value; - setInputValue(newValue); - }; - - return ( - <StyledSearchInput - type="search" - label={label} - fullWidth - value={inputValue} - onChange={handleChange} - sx={sx} - placeholder={placeholder ?? 'Search'} - startAdornment={ - <InputAdornment position="start"> - <SearchIcon fill={theme.palette.background.neutral?.default} /> - </InputAdornment> - } - endAdornment={<InputAdornmentEnd position="end">{endAdornment}</InputAdornmentEnd>} - /> - ); -} - -export default StyledSearchBar; diff --git a/src/custom/StyledSearchBar/index.tsx b/src/custom/StyledSearchBar/index.tsx deleted file mode 100644 index c8fa4ba30..000000000 --- a/src/custom/StyledSearchBar/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import StyledSearchBar from './StyledSearchBar'; - -export { StyledSearchBar }; diff --git a/src/custom/StyledSearchBar/style.tsx b/src/custom/StyledSearchBar/style.tsx deleted file mode 100644 index 863d25013..000000000 --- a/src/custom/StyledSearchBar/style.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { styled } from '@mui/material'; -import { InputAdornment, OutlinedInput } from '../../base'; - -export const StyledSearchInput = styled(OutlinedInput)(({ style, theme }) => ({ - fontFamily: theme.typography.fontFamily, - width: '100%', - '@media (max-width: 590px)': { - marginLeft: '0.25rem', - paddingLeft: '0.25rem' - }, - display: 'flex', - backgroundColor: - theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.background.surfaces, - ...style -})); - -export const InputAdornmentEnd = styled(InputAdornment)(({ theme }) => ({ - borderLeft: `1px solid ${theme.palette.background.tertiary}`, - height: '30px', - paddingLeft: '10px' -})); diff --git a/src/custom/TOCChapter/TOCChapter.tsx b/src/custom/TOCChapter/TOCChapter.tsx deleted file mode 100644 index 125a73804..000000000 --- a/src/custom/TOCChapter/TOCChapter.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import { TOCWrapper } from './style'; - -interface TOCProps { - availableChapters: string[]; - currentChapter: string | undefined | null; - onClick: (item: string, e: React.MouseEvent<HTMLLIElement, MouseEvent>) => void; -} - -const TOC: React.FC<TOCProps> = ({ availableChapters, currentChapter, onClick }) => { - const reformatTOC = (data: string): string => { - const words = data.split('-'); - const formattedString = words - .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) - .join(' '); - return formattedString; - }; - return ( - <TOCWrapper> - <div className="toc-list"> - <ul className={`toc-ul toc-ul-open`}> - {availableChapters.map((item) => ( - <li - key={item} - className={item + '.mdx' === currentChapter ? 'active-link' : ''} - onClick={(e) => { - onClick(item, e); - }} - > - <p className="toc-item"> {reformatTOC(item)}</p> - </li> - ))} - </ul> - </div> - </TOCWrapper> - ); -}; - -export default TOC; diff --git a/src/custom/TOCChapter/index.tsx b/src/custom/TOCChapter/index.tsx deleted file mode 100644 index 1f3b7eb4a..000000000 --- a/src/custom/TOCChapter/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import TOC from './TOCChapter'; - -export { TOC }; diff --git a/src/custom/TOCChapter/style.tsx b/src/custom/TOCChapter/style.tsx deleted file mode 100644 index 40f3ae95b..000000000 --- a/src/custom/TOCChapter/style.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { styled } from '@mui/material'; - -export const TOCWrapper = styled('div')(({ theme }) => ({ - '.chapter-back': { - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - '& a': { - display: 'inline-flex', - '& svg': { - alignSelf: 'center', - fontSize: '1.5rem', - color: theme.palette.grey[600], - width: '100%', - maxWidth: '1.5rem' - }, - '& h4': { - fontWeight: 500, - textTransform: 'capitalize', - fontSize: '1.25rem' - }, - '&:hover': { - '& svg, & h4': { - color: theme.palette.text.primary - } - } - }, - '.toc-toggle-btn': { - display: 'none' - }, - '.toc-menu-icon': { - width: '1.5rem', - height: '1.5rem', - cursor: 'pointer', - fill: theme.palette.secondary.main, - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' - } - }, - '.toc-list': { - '& ul': { - position: 'relative', - paddingInlineStart: '2.65rem', - MozPaddingStart: '2.65rem', - '&::after': { - position: 'absolute', - inset: '1rem auto 1rem 1.7rem', - width: 'auto', - height: 'auto', - borderLeft: `1px solid rgba(177, 182, 184, 0.25)`, - content: '""', - zIndex: 0 - }, - '& li': { - width: 'fit-content', - margin: '1rem 0', - '&::marker': { - color: 'rgba(177, 182, 184, 0.75)' - }, - '& p': { - margin: 0, - fontSize: '1rem', - '& a': { - color: theme.palette.mode === 'light' ? 'rgb(0 0 0 / 0.65)' : 'rgb(255 255 255 / 0.65)', - transition: '0.8s cubic-bezier(0.2, 0.8, 0.2, 1)' - } - }, - '&:hover': { - '&::marker, & p, & a': { - color: theme.palette.background.brand?.default - } - } - }, - '.active-link': { - '&::marker, & p, & a': { - color: theme.palette.background.brand?.default - } - } - } - } -})); diff --git a/src/custom/TOCLearning/TOCLearning.tsx b/src/custom/TOCLearning/TOCLearning.tsx deleted file mode 100644 index 3d717e300..000000000 --- a/src/custom/TOCLearning/TOCLearning.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import React, { useState } from 'react'; -import { CloseIcon, DropDownIcon, OutlinedDoubleChevronIcon } from '../../icons'; -import { TOCWrapper } from './style'; -interface CourseData { - frontmatter: { - courseTitle: string; - }; -} - -const preReqSteps = [ - { name: 'Set up', link: '/cloud-native-management/meshery' }, - { - name: 'Run Meshery', - link: '/cloud-native-management/meshery/getting-started' - }, - { - name: 'Manage Meshery', - link: '/cloud-native-management/meshery/operating-service-meshes' - } -]; - -interface TOCProps { - coursesData: CourseData[]; -} - -const TOCLearning: React.FC<TOCProps> = ({ coursesData }) => { - const [expand, setExpand] = useState(false); - - return ( - <TOCWrapper> - <div className="go-back"> - <a href={'/learn/learning-paths'}> - <OutlinedDoubleChevronIcon /> - <h4>Learning Paths</h4> - </a> - <div className="toc-toggle-btn"> - {expand ? ( - <CloseIcon - className="toc-menu-icon" - onClick={() => { - setExpand(!expand); - }} - /> - ) : ( - <DropDownIcon - className="toc-menu-icon" - onClick={() => { - setExpand(!expand); - }} - /> - )} - </div> - </div> - <div className="toc-list"> - <ul className={`toc-ul ${expand ? 'toc-ul-open' : ''}`}> - <a href="#pre-requisites"> - <h5 className="toc-sub-heading">Pre-requisites</h5> - </a> - {preReqSteps.map((item, index) => ( - <li key={index}> - <p className="toc-item"> - <a href={`#${item.name}`}>{item.name}</a> - </p> - </li> - ))} - - <a href="#courses-list"> - <h5 className="toc-sub-heading">Courses</h5> - </a> - - {coursesData.map((item, index) => ( - <li key={index}> - <p className="toc-item"> - <a href={`#${item.frontmatter.courseTitle}`}>{item.frontmatter.courseTitle}</a> - </p> - </li> - ))} - </ul> - </div> - </TOCWrapper> - ); -}; - -export default TOCLearning; diff --git a/src/custom/TOCLearning/index.tsx b/src/custom/TOCLearning/index.tsx deleted file mode 100644 index cebb9059a..000000000 --- a/src/custom/TOCLearning/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import TOCLearning from './TOCLearning'; - -export { TOCLearning }; diff --git a/src/custom/TOCLearning/style.tsx b/src/custom/TOCLearning/style.tsx deleted file mode 100644 index 3be0d3e07..000000000 --- a/src/custom/TOCLearning/style.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import { styled } from '@mui/material'; - -export const TOCWrapper = styled('div')(({ theme }) => ({ - position: 'sticky', - top: '10rem', - left: 0, - marginLeft: '-3rem', - - '.go-back': { - margin: '1rem 0', - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - '& a': { - display: 'inline-flex', - '& svg': { - alignSelf: 'center', - fontSize: '1.5rem', - color: theme.palette.text.disabled, - width: '100%', - maxWidth: '1.5rem' - }, - '& h4': { - fontWeight: 500, - textTransform: 'capitalize', - fontSize: '1.25rem', - whiteSpace: 'nowrap' - }, - '&:hover': { - '& svg, & h4': { - color: theme.palette.text.primary - } - } - } - }, - - '.toc-toggle-btn': { - display: 'none' - }, - - '.toc-ul-open': { - display: 'flex', - flexDirection: 'column', - marginTop: '0rem', - listStyle: 'none', - height: 'auto !important', - opacity: '1 !important', - transition: 'all .4s !important' - }, - - '.toc-menu-icon': { - width: '1.5rem', - height: '1.5rem', - cursor: 'pointer', - fill: theme.palette.common.white - }, - - '.toc-sub-heading': { - marginTop: '1rem', - fontWeight: 500, - fontSize: '1.15rem' - }, - - '.toc-item': { - lineHeight: '1.5rem' - }, - - '.toc-list': { - '& ul': { - position: 'relative', - paddingInlineStart: '1.5rem', - listStyleType: 'none', - '& li': { - margin: '1rem 0 1rem 0.5rem', - width: 'fit-content', - '&::marker': { - color: 'rgba(177, 182, 184, 0.75)' - }, - '& p': { - margin: 0, - fontSize: '1rem', - '& a': { - color: 'rgba(0, 0, 0, 0.65)' - } - }, - '&:hover': { - '&::marker, & p, & a': { - color: theme.palette.secondary.contrastText - } - } - }, - '.active-link': { - '&::marker, & p, & a': { - color: theme.palette.secondary.contrastText - } - } - } - }, - - '@media only screen and (max-width: 991px)': { - position: 'initial', - marginLeft: '-0.5rem', - width: 'auto', - '.toc-toggle-btn': { - display: 'flex' - }, - '.go-back': { - marginLeft: 0 - }, - '.toc-ul': { - opacity: 0, - height: 0, - transition: 'none', - paddingLeft: '.8rem !important' - }, - '.toc-item': { - lineHeight: '.8rem' - } - } -})); diff --git a/src/custom/TeamTable/TeamTable.tsx b/src/custom/TeamTable/TeamTable.tsx deleted file mode 100644 index 38936d392..000000000 --- a/src/custom/TeamTable/TeamTable.tsx +++ /dev/null @@ -1,89 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { Grid2, TableCell } from '@mui/material'; -import { MUIDataTableColumn } from 'mui-datatables'; -import { styled, useTheme } from '../../theme'; -import { ErrorBoundary } from '../ErrorBoundary/ErrorBoundary.js'; -import { ColView } from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx/index.js'; -import ResponsiveDataTable from '../ResponsiveDataTable.js'; -import UsersTable from '../UsersTable/UsersTable.js'; - -interface TeamTableProps { - teams: any; - tableOptions: object; - columnVisibility: Record<string, boolean>; - colViews: ColView[]; - tableCols: any[]; - columns: MUIDataTableColumn[]; - updateCols: (cols: any) => void; - isRemoveFromTeamAllowed: boolean; - org_id: string; - useGetUsersForOrgQuery: any; - useNotificationHandlers: any; - useRemoveUserFromTeamMutation: any; -} -const StyledGrid = styled(Grid2)(({ theme }) => ({ - display: 'grid', - margin: 'auto', - paddingLeft: '0.5rem', - borderRadius: '0.25rem', - width: 'inherit', - gap: theme.spacing(1) -})); - -const TeamTable: React.FC<TeamTableProps> = ({ - teams, - tableOptions, - columnVisibility, - colViews, - tableCols, - columns, - updateCols, - isRemoveFromTeamAllowed, - org_id, - useGetUsersForOrgQuery, - useNotificationHandlers, - useRemoveUserFromTeamMutation -}) => { - const theme = useTheme(); - return ( - <ErrorBoundary> - <ResponsiveDataTable - columns={columns} - data={teams} - options={{ - ...tableOptions, - renderExpandableRow: (_: any, rowMeta: any) => { - const teamID = teams[rowMeta.dataIndex].id; - return ( - <TableCell - colSpan={6} - sx={{ - paddingInline: '4rem', - backgroundColor: `${theme.palette.background.secondary} !important` - }} - > - <StyledGrid container size={12}> - <UsersTable - teamID={teamID} - isRemoveFromTeamAllowed={isRemoveFromTeamAllowed} - org_id={org_id} - useGetUsersForOrgQuery={useGetUsersForOrgQuery} - useNotificationHandlers={useNotificationHandlers} - useRemoveUserFromTeamMutation={useRemoveUserFromTeamMutation} - theme={theme} - /> - </StyledGrid> - </TableCell> - ); - } - }} - colViews={colViews} - tableCols={tableCols} - updateCols={updateCols} - columnVisibility={columnVisibility} - /> - </ErrorBoundary> - ); -}; - -export default TeamTable; diff --git a/src/custom/TeamTable/TeamTableConfiguration.tsx b/src/custom/TeamTable/TeamTableConfiguration.tsx deleted file mode 100644 index 46ce3404a..000000000 --- a/src/custom/TeamTable/TeamTableConfiguration.tsx +++ /dev/null @@ -1,416 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { MUIDataTableColumn, MUIDataTableMeta } from 'mui-datatables'; -import { useState } from 'react'; -import { DeleteIcon, EditIcon } from '../../icons'; -import LogoutIcon from '../../icons/Logout/LogOutIcon'; -import { CHARCOAL, useTheme } from '../../theme'; -import { CustomTooltip } from '../CustomTooltip'; -import { FormatId } from '../FormatId'; -import { ConditionalTooltip } from '../Helpers/CondtionalTooltip'; -import { useWindowDimensions } from '../Helpers/Dimension'; -import { ColView, updateVisibleColumns } from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx'; -import { IconWrapper } from '../ResponsiveDataTable'; -import { TooltipIcon } from '../TooltipIconButton'; -import { - MesheryDeleteIcon, - TableIconsContainer, - TableIconsDisabledContainer, - TableTopIcon, - TableTopIconsWrapper -} from '../Workspaces/styles'; -import { Team } from '../Workspaces/types'; - -// currently team does not support bulk team delete -interface DeleteTeamsBtnProps { - selected: any; - teams: Team[]; - deleteTeamsModalHandler: (deleteTeams: { team_ids: string[]; team_names: string[] }) => void; -} - -function DeleteTeamsBtn({ selected, teams, deleteTeamsModalHandler }: DeleteTeamsBtnProps) { - const deleteTeams = { - team_ids: [] as string[], - team_names: [] as string[] - }; - selected?.data.forEach((val: any) => { - const idx = val.index; - deleteTeams['team_ids'].push(teams[idx]?.team_id); - deleteTeams['team_names'].push(teams[idx]?.team_name); - }); - - return ( - <TableTopIcon> - <MesheryDeleteIcon> - <CustomTooltip key="delete_teams" title="Delete Teams"> - <DeleteIcon - height={28} - width={28} - fill={CHARCOAL} - onClick={() => { - deleteTeamsModalHandler(deleteTeams); - }} - /> - </CustomTooltip> - </MesheryDeleteIcon> - </TableTopIcon> - ); -} - -interface TeamTableConfigurationProps { - teams: Team[]; - count: number; - page: number; - pageSize: number; - setPage: (page: number) => void; - setPageSize: (pageSize: number) => void; - sortOrder: string; - setSortOrder: (sortOrder: string) => void; - bulkSelect: boolean; - setBulkSelect: (bulkSelect: boolean) => void; - handleTeamView: (ev: React.MouseEvent, rowData: any) => void; - handleDeleteTeam: (ev: React.MouseEvent, rowData: any) => void; - handleleaveTeam: (ev: React.MouseEvent, rowData: any) => void; - handleRemoveTeamFromWorkspace?: (rowData: any) => void; - teamId: string; - workspace?: boolean; - isEditTeamAllowed: boolean; - isLeaveTeamAllowed: boolean; - isRemoveTeamFromWorkspaceAllowed?: boolean; - isDeleteTeamAllowed: boolean; - setSearch: (search: string) => void; -} - -export default function TeamTableConfiguration({ - teams, - count, - page, - pageSize, - setPage, - setPageSize, - sortOrder, - setSortOrder, - bulkSelect, - setBulkSelect, - handleTeamView, - handleDeleteTeam, - handleRemoveTeamFromWorkspace, - handleleaveTeam, - teamId, - workspace = false, - isEditTeamAllowed, - isLeaveTeamAllowed, - isRemoveTeamFromWorkspaceAllowed, - isDeleteTeamAllowed, - setSearch -}: TeamTableConfigurationProps) { - const { width } = useWindowDimensions(); - const theme = useTheme(); - // Keys should be same as the value of 'name' key in columns array - const colViews: ColView[] = [ - ['id', 'na'], - ['name', 'xs'], - ['description', 'm'], - ['owner', 'l'], - ['created_at', 'na'], - ['updated_at', 'xl'], - ['deleted_at', 'na'], - ['actions', 'xs'] - ]; - - const columns: MUIDataTableColumn[] = [ - { - name: 'id', - label: 'ID', - options: { - filter: false, - sort: false, - searchable: false, - customBodyRender: (value: string) => <FormatId id={value} /> - } - }, - { - name: 'name', - label: 'Name', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'description', - label: 'Description', - options: { - filter: false, - sort: true, - searchable: false, - customBodyRender: (value: string) => ( - <ConditionalTooltip value={value ?? ''} maxLength={30} /> - ) - } - }, - { - name: 'owner', - label: 'Owner', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'created_at', - label: 'Created At', - options: { - filter: false, - sort: true, - searchable: false, - sortDescFirst: true - } - }, - { - name: 'updated_at', - label: 'Updated At', - options: { - filter: false, - sort: true, - searchable: false, - sortDescFirst: true - } - }, - { - name: 'deleted_at', - label: 'Deleted At', - options: { - filter: true, - sort: true, - searchable: false, - sortDescFirst: true, - customBodyRender: (v: string) => JSON.stringify(v), - filterOptions: { - names: ['Deleted', 'Not Deleted'], - logic: (val: string, filters: any) => { - if (val != 'NA' && filters.indexOf('Deleted') >= 0) return true; - else if (val == 'NA' && filters.indexOf('Not Deleted') >= 0) return true; - return false; - }, - fullWidth: true - } - } - }, - { - name: 'actions', - label: 'Actions', - options: { - filter: false, - sort: false, - searchable: false, - customBodyRender: (_: string, tableMeta: MUIDataTableMeta) => { - if (bulkSelect || tableMeta.rowData[4].Valid) { - return ( - <TableIconsDisabledContainer> - <EditIcon - style={{ - marginRight: '.5rem' - }} - /> - <DeleteIcon height={28} width={28} fill={CHARCOAL} /> - </TableIconsDisabledContainer> - ); - } - return ( - <TableIconsContainer> - {!workspace && ( - <> - <IconWrapper disabled={!isEditTeamAllowed}> - <TooltipIcon - id={`edit_team-${tableMeta.rowIndex}`} - title="Edit Team" - onClick={(ev) => { - isEditTeamAllowed && handleTeamView(ev, tableMeta.rowData); - }} - iconType="edit" - > - <EditIcon style={{ height: 28.8, width: 28.8 }} fill={CHARCOAL} /> - </TooltipIcon> - </IconWrapper> - <IconWrapper disabled={!isLeaveTeamAllowed}> - <TooltipIcon - id={`leave_team-${tableMeta.rowIndex}`} - title="Leave Team" - onClick={(e) => isLeaveTeamAllowed && handleleaveTeam(e, tableMeta.rowData)} - iconType="delete" - > - <LogoutIcon fill={CHARCOAL} secondaryFill={CHARCOAL} /> - </TooltipIcon> - </IconWrapper> - </> - )} - {workspace ? ( - <IconWrapper disabled={!isRemoveTeamFromWorkspaceAllowed}> - <TooltipIcon - id={`remove_team-${tableMeta.rowIndex}`} - title={'Move Team'} - onClick={() => { - isRemoveTeamFromWorkspaceAllowed && - handleRemoveTeamFromWorkspace && - handleRemoveTeamFromWorkspace(tableMeta.rowData[0]); - }} - iconType="delete" - > - <DeleteIcon height={28} width={28} fill={theme.palette.icon.default} /> - </TooltipIcon> - </IconWrapper> - ) : ( - <IconWrapper disabled={!isDeleteTeamAllowed}> - <TooltipIcon - id={`delete_team-${tableMeta.rowIndex}`} - title={'Delete Team'} - onClick={(ev: React.MouseEvent) => { - isDeleteTeamAllowed && handleDeleteTeam(ev, tableMeta.rowData); - }} - iconType="delete" - > - <DeleteIcon height={28} width={28} fill={CHARCOAL} /> - </TooltipIcon> - </IconWrapper> - )} - </TableIconsContainer> - ); - } - } - } - ]; - const ExpandedRowIdx = teams?.findIndex((team) => team.id === teamId); - - const options = { - filter: false, - selectableRows: 'none' as const, - filterType: 'dropdown' as const, - expandableRows: true, - expandableRowsHeader: false, - expandableRowsOnClick: true, - responsive: 'standard' as const, - count: count, - rowsPerPage: pageSize, - page, - print: false, - download: false, - elevation: 0, - serverSide: true, - viewColumns: false, - search: false, - rowsExpanded: [ExpandedRowIdx], - customToolbarSelect: (selected: any) => ( - <TableTopIconsWrapper> - <DeleteTeamsBtn - selected={selected} - teams={teams} - // deleteTeamsModalHandler={handleDeleteTeamsModalOpen} - deleteTeamsModalHandler={() => {}} - /> - </TableTopIconsWrapper> - ), - textLabels: { - selectedRows: { - text: 'teams(s) selected' - } - }, - onTableChange: (action: string, tableState: any) => { - const sortInfo = tableState.announceText ? tableState.announceText.split(' : ') : []; - let order = ''; - if (tableState.activeColumn) { - order = `${columns[tableState.activeColumn].name} desc`; - } - - switch (action) { - case 'changePage': - setPage(tableState.page); - break; - case 'changeRowsPerPage': - setPageSize(tableState.rowsPerPage); - break; - case 'search': - setSearch(tableState.searchText !== null ? tableState.searchText : ''); - break; - case 'sort': - if (sortInfo.length == 2) { - if (sortInfo[1] === 'ascending') { - order = `${columns[tableState.activeColumn].name} asc`; - } else { - order = `${columns[tableState.activeColumn].name} desc`; - } - } - if (order !== sortOrder) { - setSortOrder(order); - } - break; - case 'rowSelectionChange': - if (tableState.selectedRows.data.length) { - if (!bulkSelect) { - setBulkSelect(true); - } - } else { - setBulkSelect(false); - } - break; - default: - if (tableState.selectedRows.data.length == 0) { - if (bulkSelect) { - setBulkSelect(false); - } - } - } - }, - isRowSelectable: (dataIndx: number) => { - if (teams[dataIndx]['deleted_at'].Valid === true) return false; - return true; - }, - setRowProps: (row: any, rowIndex: number, tableState: any) => { - const selectedRows = - tableState && tableState.selectedRows ? tableState.selectedRows.data : []; - - if (selectedRows.includes(rowIndex)) { - return { - style: { - backgroundColor: theme.palette.background.hover - } - }; - } - - if (row[6].Valid) { - return { - style: { - backgroundColor: theme.palette.icon.disabled - } - }; - } - - return { - style: { - backgroundColor: theme.palette.background.constant?.table - } - }; - } - }; - - const [tableCols, updateCols] = useState(columns); - const [columnVisibility, setColumnVisibility] = useState(() => { - const showCols = updateVisibleColumns(colViews, width); - const initialVisibility: Record<string, boolean> = {}; - columns.forEach((col) => { - initialVisibility[col.name] = showCols[col.name]; - }); - return initialVisibility; - }); - - return { - columns, - tableOptions: options, - tableCols, - updateCols, - columnVisibility, - setColumnVisibility, - colViews - }; -} diff --git a/src/custom/TeamTable/index.ts b/src/custom/TeamTable/index.ts deleted file mode 100644 index 81a3ad87c..000000000 --- a/src/custom/TeamTable/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import TeamTable from './TeamTable'; -import TeamTableConfiguration from './TeamTableConfiguration'; -export { TeamTable, TeamTableConfiguration }; diff --git a/src/custom/Terminal/Terminal.tsx b/src/custom/Terminal/Terminal.tsx deleted file mode 100644 index 52f4d4f54..000000000 --- a/src/custom/Terminal/Terminal.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { FC, Fragment } from 'react'; -import { - CodeWrapper, - Content, - OverflowWrapper, - TerminalWrapper, - TitleBar, - WindowControls -} from './style'; - -interface Line { - short?: boolean; - color?: string; - indent?: number; - code: string; -} - -interface Props { - lines: Line[]; - title?: string; - noScroll?: boolean; -} - -const Terminal: FC<Props> = ({ lines, title, noScroll }) => { - return ( - <TerminalWrapper> - <TitleBar> - <WindowControls> - <li style={{ backgroundColor: 'red' }} /> - <li style={{ backgroundColor: 'yellow' }} /> - <li style={{ backgroundColor: 'green' }} /> - </WindowControls> - {title && <div className="title">{title}</div>} - </TitleBar> - <Content> - <OverflowWrapper className={noScroll ? 'no-scroll-overflow-wrapper' : ''}> - <CodeWrapper> - {lines && - lines.map((line, index) => ( - <Fragment key={index}> - <pre - className={`${line.short ? 'short' : ''}`} - style={{ color: line.color ? line.color : 'blue' }} - > - {line.indent && - new Array(line.indent * 2) - .fill({}) - .map((_, index) => <Fragment key={index}> </Fragment>)} - {line.code} - </pre> - </Fragment> - ))} - </CodeWrapper> - </OverflowWrapper> - </Content> - </TerminalWrapper> - ); -}; - -export default Terminal; diff --git a/src/custom/Terminal/index.tsx b/src/custom/Terminal/index.tsx deleted file mode 100644 index f614b569a..000000000 --- a/src/custom/Terminal/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import Terminal from './Terminal'; - -export { Terminal }; diff --git a/src/custom/Terminal/style.tsx b/src/custom/Terminal/style.tsx deleted file mode 100644 index 4313c5e3e..000000000 --- a/src/custom/Terminal/style.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import { styled } from '@mui/material'; - -export const TerminalWrapper = styled('div')({ - width: '52rem', - maxWidth: '90%' -}); - -export const TitleBar = styled('div')({ - display: 'flex', - alignItems: 'center', - background: '#323339', - width: '100%', - height: '2.875rem', - borderRadius: '2px 2px 0 0' -}); - -export const Title = styled('div')({ - color: '#76767d', - fontFamily: "'Courier New', Courier, monospace", - fontSize: '13.5px', - margin: '0 auto' -}); - -export const WindowControls = styled('ul')({ - position: 'absolute', - display: 'block', - listStyle: 'none', - marginLeft: '1rem', - marginTop: '0', - marginBottom: '0', - padding: '0', - - '& li': { - display: 'inline-block', - width: '0.875rem', - height: '0.875rem', - background: '#1d1e23', - borderRadius: '0.75rem', - marginRight: '7px' - } -}); - -export const Content = styled('div')({ - width: '100%', - height: '100%', - background: '#1d1e23', - borderRadius: '0 0 2px 2px', - padding: '24px 32px' -}); - -export const OverflowWrapper = styled('div')({ - width: '100%', - height: '100%', - position: 'relative', - overflow: 'scroll', - - /* Hides the scrollbars */ - msOverflowStyle: 'none' /* IE and Edge */, - scrollbarWidth: 'none' /* Firefox */, - '&::-webkit-scrollbar': { - /* Safari */ - WebkitAppearance: 'none', - width: '0', - height: '0' - }, - '&.no-scroll-overflow-wrapper': { - '& .code-wrapper': { - bottom: '0', - position: 'absolute', - minHeight: '100%' - } - } -}); - -export const CodeWrapper = styled('div')(({ theme }) => ({ - '& pre': { - padding: '0', - margin: '0', - width: '100%', - height: '100%', - fontStyle: 'normal', - fontWeight: 'normal', - fontSize: '12px', - lineHeight: '27px', - whiteSpace: 'pre-wrap', - color: theme.palette.info.main, - - '&.short': { - lineHeight: '16px' - }, - '&.navy': { - color: '#66a2ff' - }, - '&.gray': { - color: '#bdbec2' - }, - '&.white': { - color: '#fff' - }, - - wrapWord: 'normal', - - [theme.breakpoints.up('sm')]: { - fontSize: '13.5px', - lineHeight: '26px' - } - } -})); diff --git a/src/custom/TooltipIcon.tsx b/src/custom/TooltipIcon.tsx deleted file mode 100644 index 4f6991964..000000000 --- a/src/custom/TooltipIcon.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { IconButton } from '@mui/material'; -import React from 'react'; -import { useTheme } from '../theme'; -import { CustomTooltip } from './CustomTooltip'; -import { IconWrapper } from './ResponsiveDataTable'; - -interface TooltipIconProps { - title: string; - onClick?: (event: React.MouseEvent<HTMLElement>) => void; - icon?: React.ReactNode; - arrow?: boolean; - style?: React.CSSProperties; - iconType?: string; - id?: string; - placement?: 'bottom' | 'top' | 'left' | 'right'; - disabled?: boolean; - children?: React.ReactNode; -} - -export function TooltipIcon({ - children, - title, - onClick, - icon, - style, - arrow = false, - disabled = false, - iconType, - id, - placement -}: TooltipIconProps): JSX.Element { - const theme = useTheme(); - - return ( - <CustomTooltip title={title} arrow={arrow} placement={placement} id={id}> - <IconWrapper disabled={disabled}> - <IconButton - disabled={disabled} - onClick={onClick} - sx={{ - '&:hover': { - '& svg': { - fill: - iconType === 'delete' - ? theme.palette.error.main - : theme.palette.primary.brand?.default - } - }, - ...style - }} - disableRipple - > - {icon || children} - </IconButton> - </IconWrapper> - </CustomTooltip> - ); -} - -export default TooltipIcon; diff --git a/src/custom/TooltipIconButton/TooltipIconButton.tsx b/src/custom/TooltipIconButton/TooltipIconButton.tsx deleted file mode 100644 index b3f2f3620..000000000 --- a/src/custom/TooltipIconButton/TooltipIconButton.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import React from 'react'; -import { IconButton } from '../../base/IconButton'; -import { useTheme } from '../../theme'; -import { CustomTooltip } from '../CustomTooltip'; -import { IconWrapper } from '../ResponsiveDataTable'; - -interface TooltipIconProps { - title: string; - onClick?: (event: React.MouseEvent<HTMLElement>) => void; - icon?: React.ReactNode; - arrow?: boolean; - style?: React.CSSProperties; - iconType?: string; - id?: string; - placement?: 'bottom' | 'top' | 'left' | 'right'; - disabled?: boolean; - children?: React.ReactNode; -} - -export function TooltipIcon({ - children, - title, - onClick, - icon, - style, - arrow = true, - disabled = false, - iconType, - id, - placement -}: TooltipIconProps): JSX.Element { - const theme = useTheme(); - - return ( - <CustomTooltip title={title} arrow={arrow} placement={placement} id={id}> - <IconWrapper disabled={disabled}> - <IconButton - disabled={disabled} - onClick={onClick} - sx={{ - '&:hover': { - '& svg': { - fill: - iconType === 'delete' - ? theme.palette.error.main - : theme.palette.primary.brand?.default - } - }, - ...style - }} - > - {icon || children} - </IconButton> - </IconWrapper> - </CustomTooltip> - ); -} - -export default TooltipIcon; diff --git a/src/custom/TooltipIconButton/index.ts b/src/custom/TooltipIconButton/index.ts deleted file mode 100644 index 5b7ba7460..000000000 --- a/src/custom/TooltipIconButton/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import TooltipIcon from './TooltipIconButton'; - -export { TooltipIcon }; diff --git a/src/custom/TransferModal/TransferList/TransferList.tsx b/src/custom/TransferModal/TransferList/TransferList.tsx deleted file mode 100644 index 690e98008..000000000 --- a/src/custom/TransferModal/TransferList/TransferList.tsx +++ /dev/null @@ -1,359 +0,0 @@ -import React from 'react'; -import { Checkbox, Grid2, List, ListItem, Typography } from '../../../base'; - -import { KubernetesIcon, LeftArrowIcon, RightArrowIcon, SMPIcon } from '../../../icons'; -import { GithubIcon } from '../../../icons/Github'; -import { MesheryIcon } from '../../../icons/Meshery'; -import Tooltip from '../../../patches/Tooltip'; -import { - ButtonGrid, - ListGrid, - ListHeading, - StyledChip, - StyledPaper, - TransferButton -} from './style'; - -export const TRANSFER_COMPONET = { - CHIP: 'chip', - OTHER: 'other' -}; -export function getFallbackImageBasedOnKind(kind: string | undefined): JSX.Element { - if (!kind) { - return <KubernetesIcon />; - } - const fallbackComponents: { [key: string]: JSX.Element } = { - meshery: <MesheryIcon />, - kubernetes: <KubernetesIcon />, - github: <GithubIcon /> - }; - - return fallbackComponents[kind] || null; -} - -export interface TransferListProps { - name?: string; - assignableData: ListItemType[]; - assignedData: (data: ListItemType[]) => void; - originalAssignedData: ListItemType[]; - emptyStateIconLeft: JSX.Element; - emtyStateMessageLeft: string; - emptyStateIconRight: JSX.Element; - emtyStateMessageRight: string; - transferComponentType: string; - assignablePage: () => void; - assignedPage: () => void; - originalLeftCount: number; - originalRightCount: number; - rightPermission: boolean; - leftPermission: boolean; -} - -export interface ListItemType { - id: number; - name: string; - kind: string | undefined; -} - -function not<T>(a: T[], b: T[]): T[] { - return a.filter((value: T) => b.indexOf(value) === -1); -} - -function intersection<T>(a: T[], b: T[]): T[] { - return a.filter((value: T) => b.indexOf(value) !== -1); -} - -/** - * Renders transfer component. - * - * @param {Object} props - The component props. - * @param {String} props.name - This is the name of the data list. - * @param {Array} props.assignableData - The assignable data list. - * @param {Function} props.assignedData - The callback function to transfer assigned data list. - * @param {Array} props.originalAssignedData - The already assigend data list. - * @param {Element} props.emptyStateIconLeft - Icon for empty state of list left. - * @param {String} props.emtyStateMessageLeft - Message for the empty state of the list left. - * @param {Element} props.emptyStateIconRight - Icon for empty state of list right. - * @param {String} props.emtyStateMessageRight - Message for the empty state of the list right. - * @param {String} props.transferComponentType - Type of the component transfer (There is two types: chip and other). - * @param {Boolean} props.leftPermission - Permission to move data from left to right. - * @param {Boolean} props.rightPermission - Permission to move data from right to left. - */ - -function TransferList({ - name, - assignableData, - assignedData, - assignablePage, - assignedPage, - originalAssignedData, - emptyStateIconLeft, - emtyStateMessageLeft, - emptyStateIconRight, - emtyStateMessageRight, - originalLeftCount, - originalRightCount, - leftPermission = true, - rightPermission = true, - transferComponentType = TRANSFER_COMPONET.OTHER -}: TransferListProps): JSX.Element { - const [checked, setChecked] = React.useState<ListItemType[]>([]); - const [left, setLeft] = React.useState<ListItemType[]>([]); - const [right, setRight] = React.useState<ListItemType[]>(originalAssignedData); - const [leftCount, setLeftCount] = React.useState<number>(0); - const [rightCount, setRightCount] = React.useState<number>(0); - - React.useEffect(() => { - setRight(originalAssignedData); - }, [originalAssignedData]); - - React.useEffect(() => { - setLeft(assignableData); - }, [assignableData]); - - React.useEffect(() => { - setLeftCount(originalLeftCount); - setRightCount(originalRightCount); - }, [originalLeftCount, originalRightCount]); - - const leftChecked = intersection(checked, left); - const rightChecked = intersection(checked, right); - - React.useEffect(() => { - assignedData(right); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [right]); - - React.useEffect(() => { - const handleScroll = (entries: IntersectionObserverEntry[]) => { - const target = entries[0]; - if (target.isIntersecting) { - assignablePage(); - } - }; - - const observer = new IntersectionObserver(handleScroll, { threshold: 1 }); - const sentinel = document.getElementById('leftList'); - if (sentinel) { - observer.observe(sentinel); - } - - return () => { - if (sentinel) { - observer.unobserve(sentinel); - } - }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [assignableData]); - - React.useEffect(() => { - const handleScroll = (entries: IntersectionObserverEntry[]) => { - const target = entries[0]; - if (target.isIntersecting) { - assignedPage(); - } - }; - - const observer = new IntersectionObserver(handleScroll, { threshold: 1 }); - const sentinel = document.getElementById('rightList'); - if (sentinel) { - observer.observe(sentinel); - } - - return () => { - if (sentinel) { - observer.unobserve(sentinel); - } - }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [originalAssignedData]); - - const handleToggle = (value: ListItemType) => () => { - const currentIndex = checked.indexOf(value); - const newChecked = [...checked]; - - if (currentIndex === -1) { - newChecked.push(value); - } else { - newChecked.splice(currentIndex, 1); - } - - setChecked(newChecked); - }; - - const handleAllRight = (e: React.MouseEvent) => { - e.stopPropagation(); - setRight(right.concat(left)); - setLeft([]); - setLeftCount(0); - setRightCount((prevRightCount: number) => prevRightCount + leftCount); - }; - - const handleCheckedRight = (e: React.MouseEvent) => { - e.stopPropagation(); - setRight(right.concat(leftChecked)); - setLeft(not(left, leftChecked)); - setChecked(not(checked, leftChecked)); - setLeftCount((prevLeftCount: number) => prevLeftCount - leftChecked.length); - setRightCount((prevRightCount: number) => prevRightCount + leftChecked.length); - }; - - const handleCheckedLeft = (e: React.MouseEvent) => { - e.stopPropagation(); - setLeft(left.concat(rightChecked)); - setRight(not(right, rightChecked)); - setChecked(not(checked, rightChecked)); - setRightCount((prevRightCount: number) => prevRightCount - rightChecked.length); - setLeftCount((prevLeftCount: number) => prevLeftCount + rightChecked.length); - }; - - const handleAllLeft = (e: React.MouseEvent) => { - e.stopPropagation(); - setLeft(left.concat(right)); - setRight([]); - setRightCount(0); - setLeftCount((prevLeftCount: number) => prevLeftCount + rightCount); - }; - - const customList = ( - items: ListItemType[], - emptyStateIcon: JSX.Element, - emtyStateMessage: string, - listId?: string - ) => ( - <StyledPaper> - <List dense component="div" role="list"> - {items.length > 0 ? ( - items.map((item) => { - const labelId = `transfer-list-item-${item.name}-label`; - return ( - <ListItem - key={item.id} - role="listitem" - sx={{ - display: 'flex', - justifyContent: 'space-between', - '&:hover': { - backgroundColor: `#00000010` - } - }} - onClick={handleToggle(item)} - > - {transferComponentType === TRANSFER_COMPONET.CHIP ? ( - <Tooltip title={item.name} placement="top"> - <StyledChip - sx={{ paddingY: '10px' }} - variant="outlined" - label={item.name} - onDelete={() => {}} - deleteIcon={<SMPIcon />} - icon={getFallbackImageBasedOnKind(item?.kind) || <KubernetesIcon />} - /> - </Tooltip> - ) : ( - <Tooltip title={item.name} placement="top"> - <Typography sx={{ maxWidth: '230px', height: '1.5rem', overflow: 'hidden' }}> - {item.name} - </Typography> - </Tooltip> - )} - <Checkbox - checked={checked.indexOf(item) !== -1} - tabIndex={-1} - disableRipple - inputProps={{ - 'aria-labelledby': labelId - }} - /> - </ListItem> - ); - }) - ) : ( - <div - style={{ - textAlign: 'center', - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center', - height: '264px' - }} - > - {emptyStateIcon} - <Typography sx={{ color: '#979797', px: 5, py: 2, lineHeight: 1 }}> - {emtyStateMessage} - </Typography> - </div> - )} - </List> - <div id={listId}></div> - </StyledPaper> - ); - - return ( - <Grid2 container justifyContent="center" alignItems="center"> - <ListGrid> - <ListHeading> - Available {name} ({left.length}) - </ListHeading> - {customList(left, emptyStateIconLeft, emtyStateMessageLeft, 'leftList')} - </ListGrid> - <ButtonGrid> - <Grid2 container direction="column" alignItems="center"> - <TransferButton - variant="outlined" - size="small" - onClick={handleAllRight} - disabled={ - !rightPermission || - (rightPermission && (left?.length === 0 || left.length < leftCount)) - } - aria-label="move all right" - > - <RightArrowIcon width={18} height={18} /> - <RightArrowIcon style={{ position: 'absolute', left: '27px' }} width={18} height={18} /> - </TransferButton> - <TransferButton - variant="outlined" - size="small" - onClick={handleCheckedRight} - disabled={!rightPermission || (rightPermission && leftChecked.length === 0)} - aria-label="move selected right" - > - <RightArrowIcon width={18} height={18} /> - </TransferButton> - <TransferButton - variant="outlined" - size="small" - onClick={handleCheckedLeft} - disabled={!leftPermission || (leftPermission && rightChecked.length === 0)} - aria-label="move selected left" - > - <LeftArrowIcon width={18} height={18} /> - </TransferButton> - <TransferButton - variant="outlined" - size="small" - onClick={handleAllLeft} - disabled={ - !leftPermission || - (leftPermission && (right?.length === 0 || right.length < rightCount)) - } - aria-label="move all left" - > - <LeftArrowIcon width={18} height={18} /> - <LeftArrowIcon style={{ position: 'absolute', left: '27px' }} width={18} height={18} /> - </TransferButton> - </Grid2> - </ButtonGrid> - <ListGrid> - <ListHeading> - Assigned {name} ({right.length}) - </ListHeading> - {customList(right, emptyStateIconRight, emtyStateMessageRight, 'rightList')} - </ListGrid> - </Grid2> - ); -} - -export default TransferList; diff --git a/src/custom/TransferModal/TransferList/index.tsx b/src/custom/TransferModal/TransferList/index.tsx deleted file mode 100644 index d63321244..000000000 --- a/src/custom/TransferModal/TransferList/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import TransferList from './TransferList'; - -export { TransferList }; diff --git a/src/custom/TransferModal/TransferList/style.tsx b/src/custom/TransferModal/TransferList/style.tsx deleted file mode 100644 index 036b7888e..000000000 --- a/src/custom/TransferModal/TransferList/style.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { Grid2, styled } from '@mui/material'; -import { Button, Chip, Paper, Typography } from '../../../base'; - -import { KEPPEL } from '../../../theme'; - -export const StyledChip = styled(Chip)(({ theme }) => ({ - padding: '5px 6px !important', - color: theme.palette.text.default, - fontSize: '0.875rem', - textTransform: 'uppercase', - fontWeight: 400, - height: 'unset', - borderRadius: '100px', - border: `0.5px solid ${theme.palette.border?.normal}`, - background: theme.palette.background.default, - maxWidth: '14.375rem' -})); - -export const StyledPaper = styled(Paper)(({ theme }) => ({ - width: 300, - height: 280, - overflow: 'auto', - backgroundColor: theme.palette.background.secondary, - borderRadius: '10px', - boxShadow: '0px 1px 4px 0px rgba(0, 0, 0, 0.25) inset', - '@media (max-width: 843px)': { - width: 260 - }, - '@media (max-width: 768px)': { - width: 300 - }, - '@media (max-width: 375px)': { - width: '100%' - } -})); - -export const ListHeading = styled(Typography)(({ theme }) => ({ - paddingBottom: '15px', - color: theme.palette.text?.default, - textAlign: 'center', - fontSize: '1rem', - letterSpacing: '0.15px' -})); - -export const TransferButton = styled(Button)(({ theme }) => ({ - margin: '5px 0', - padding: '7px 0', - borderRadius: '10px', - borderColor: theme.palette.border?.strong, - boxShadow: 'none', - display: 'flex', - flexDirection: 'row', - fill: theme.palette.icon.default, - '&:hover': { - borderColor: theme.palette.border?.brand, - backgroundColor: `${KEPPEL} !important`, - fill: theme.palette.icon.inverse - } -})); - -export const ListGrid = styled(Grid2)({ - padding: '0 1rem', - '@media (max-width: 768px)': { - padding: '0', - display: 'flex', - alignItems: 'center', - flexDirection: 'column', - width: '100%' - } -}); - -export const ButtonGrid = styled(Grid2)({ - padding: '2.5rem 1rem 0 1rem', - '@media (max-width: 768px)': { - padding: '1rem', - transform: 'rotate(90deg)', - height: '6.25rem', - marginLeft: '6.25rem' - } -}); diff --git a/src/custom/TypingFilter/TypingFIlterInput.tsx b/src/custom/TypingFilter/TypingFIlterInput.tsx deleted file mode 100644 index 7c02c6b7d..000000000 --- a/src/custom/TypingFilter/TypingFIlterInput.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { TextFieldProps } from '@mui/material/TextField'; -import React from 'react'; -import { TextField } from '../../base/TextField'; - -export type TypingFilterInputProps = { - variant?: string; -} & TextFieldProps; - -export const TypingFilterInput = React.forwardRef(function TypingFilterInput( - props: TypingFilterInputProps, - ref: React.ForwardedRef<HTMLDivElement> -): JSX.Element { - return <TextField ref={ref} {...props} />; -}); - -export default TypingFilterInput; diff --git a/src/custom/TypingFilter/TypingFIlters.tsx b/src/custom/TypingFilter/TypingFIlters.tsx deleted file mode 100644 index b19834b3f..000000000 --- a/src/custom/TypingFilter/TypingFIlters.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import React from 'react'; -import { Divider } from '../../base/Divider'; -import { List } from '../../base/List'; -import { ListItem } from '../../base/ListItem'; -import { Typography } from '../../base/Typography'; -import { FilterSchema, FilterStateType, FilteringEvents } from '../../utils/typing.state'; -import { getCurrentFilterAndValue } from '../../utils/typing.utils'; - -interface TypingFiltersType { - filterStateMachine: FilterStateType; - dispatchFilterMachine: React.Dispatch<{ - type: FilteringEvents; - payload: { value: string }; - }>; - filterSchema: FilterSchema; -} - -export function TypingFilters({ - filterStateMachine, - dispatchFilterMachine, - filterSchema -}: TypingFiltersType) { - const selectFilter = (filter: string) => { - dispatchFilterMachine({ - type: FilteringEvents.SELECT_FILTER, - payload: { - value: filter - } - }); - }; - const { filter: currentFilter } = getCurrentFilterAndValue(filterStateMachine); - - const matchingFilters = currentFilter - ? Object.values(filterSchema).filter((filter) => filter.value.startsWith(currentFilter)) - : Object.values(filterSchema); - return ( - <List> - {matchingFilters.length == 0 && ( - <ListItem> - <Typography variant="body1">Sorry we dont currently support this filter</Typography> - </ListItem> - )} - {matchingFilters.map((filter) => ( - <React.Fragment key={filter}> - <ListItem disableGutters onClick={() => selectFilter(filter.values)}> - <Typography variant="body1">{filter.values}:</Typography> - <Typography variant="body1">{filter.description}</Typography> - </ListItem> - <Divider light /> - </React.Fragment> - ))} - </List> - ); -} diff --git a/src/custom/TypingFilter/TypingFilterSuggestions.tsx b/src/custom/TypingFilter/TypingFilterSuggestions.tsx deleted file mode 100644 index 2cfe03864..000000000 --- a/src/custom/TypingFilter/TypingFilterSuggestions.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import React from 'react'; -import { Divider } from '../../base/Divider'; -import { List } from '../../base/List'; -import { ListItem } from '../../base/ListItem'; -import { Typography } from '../../base/Typography'; -import { FilterSchema, FilterStateType, FilteringEvents } from '../../utils/typing.state'; -import { getCurrentFilterAndValue } from '../../utils/typing.utils'; - -interface TypingFilterValueSuggestionsType { - filterStateMachine: FilterStateType; - dispatchFilterMachine: React.Dispatch<{ - type: FilteringEvents; - payload: { value: string }; - }>; - filterSchema: FilterSchema; -} - -export function TypingFilterValueSuggestions({ - filterStateMachine, - dispatchFilterMachine, - filterSchema -}: TypingFilterValueSuggestionsType) { - const selectValue = (value: string) => { - dispatchFilterMachine({ - type: FilteringEvents.SELECT_FILTER, - payload: { - value - } - }); - }; - - const { filter, value } = getCurrentFilterAndValue(filterStateMachine); - const currentFilter = Object.values(filterSchema).find((f) => f.values == filter); - const suggestions = currentFilter?.values?.filter((v) => v.startsWith(value)) ?? []; - - return ( - <List> - {suggestions.length === 0 && ( - <ListItem disableGutters> - <Typography variant="body1">No results available</Typography> - </ListItem> - )} - {suggestions.map((suggestion) => ( - <React.Fragment key={suggestion}> - <ListItem onClick={() => selectValue(suggestion)} disableGutters> - <Typography variant="body1" component="body"> - {suggestion} - </Typography> - </ListItem> - <Divider light /> - </React.Fragment> - ))} - </List> - ); -} diff --git a/src/custom/TypingFilter/index.tsx b/src/custom/TypingFilter/index.tsx deleted file mode 100644 index b87e59f0c..000000000 --- a/src/custom/TypingFilter/index.tsx +++ /dev/null @@ -1,187 +0,0 @@ -import { Fade, Popper } from '@mui/material'; -import { ContentFilterIcon, CrossCircleIcon } from 'packages/svg/dist'; -import React from 'react'; -import { ClickAwayListener } from '../../base/ClickAwayListener'; -import { IconButton } from '../../base/IconButton'; -import { InputAdornment } from '../../base/Input'; -import { - FilterSchema, - FilteringEvents, - FilteringState, - filterReducer -} from '../../utils/typing.state'; -import { getFilters } from '../../utils/typing.utils'; -import TypingFilterInput from './TypingFIlterInput'; -import { TypingFilters } from './TypingFIlters'; -import { TypingFilterValueSuggestions } from './TypingFilterSuggestions'; - -interface TypingFilterType { - filterSchema: FilterSchema; - handleFilter: (filters: object) => void; - autoFilter: boolean; -} - -export function TypingFilter({ filterSchema, handleFilter, autoFilter = false }: TypingFilterType) { - const inputFieldRef = React.useRef<HTMLInputElement | null>(null); - const [anchorEl, setAnchorEl] = React.useState<HTMLElement | null>(null); - const isPopperOpen = Boolean(anchorEl); - - const [filterState, dispatch] = React.useReducer(filterReducer, { - state: FilteringState.IDLE, - context: { - value: '', - prevValue: [''] - } - }); - - const handleFilterChange = (e: React.ChangeEvent<HTMLInputElement>) => { - if (!anchorEl) { - setAnchorEl(e.currentTarget); - } - - if (e.target.value === '') { - return dispatch({ - type: FilteringEvents.CLEAR - }); - } - - dispatch({ - type: FilteringEvents.INPUT_CHANGE, - payload: { - value: e.target.value - } - }); - }; - - const handleClear = () => { - dispatch({ - type: FilteringEvents.EXIT - }); - - handleFilter({}); - }; - - const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => { - setAnchorEl(e.currentTarget); - dispatch({ type: FilteringEvents.START }); - }; - - const handleClickAway = (e: MouseEvent | TouchEvent) => { - if (inputFieldRef.current && inputFieldRef.current.contains(e.target as Node)) { - return; - } - - setAnchorEl(null); - }; - - React.useEffect(() => { - if (!inputFieldRef.current) { - return; - } - - const inputField = inputFieldRef.current; // Copy the value to a variable - - const handleKeyDown = (e: KeyboardEvent) => { - if (e.key === 'Enter') { - // Perform nullish check before accessing inputField.value - const inputValue = inputField?.value ?? ''; - handleFilter(getFilters(inputValue, filterSchema)); - setAnchorEl(null); - } - }; - - inputField?.addEventListener('keydown', handleKeyDown); - - return () => { - inputField?.removeEventListener('keydown', handleKeyDown); - }; - }, [filterSchema, handleFilter]); - - React.useEffect(() => { - if (autoFilter && filterState.state === FilteringState.SELECTING_FILTER) { - // Perform nullish check before accessing filterState.context - const filterValue = filterState.context?.value ?? ''; - handleFilter(getFilters(filterValue, filterSchema)); - } - }, [filterState.state, autoFilter, filterSchema, filterState.context?.value, handleFilter]); - - return ( - <React.Fragment> - <TypingFilterInput - ref={inputFieldRef} - variant="outlined" - placeholder="Filter Notifications" - fullWidth - size="small" - value={filterState.context?.value} - onChange={handleFilterChange} - onFocus={handleFocus} - InputProps={{ - startAdornment: ( - <InputAdornment position="start"> - {' '} - <ContentFilterIcon - /* - fill={(theme) => { - theme.palette.iconMain; - }} - */ - />{' '} - </InputAdornment> - ), - endAdornment: ( - <InputAdornment position="end"> - <IconButton onClick={handleClear}> - {filterState.state !== FilteringState.IDLE && ( - <CrossCircleIcon - /*fill={(theme) => { - theme.palette.iconMain; - }} - */ - /> - )} - </IconButton> - </InputAdornment> - ) - }} - /> - <Popper - open={filterState.state != FilteringState.IDLE && isPopperOpen} - anchorEl={inputFieldRef.current} - placement="bottom-start" - style={{ zIndex: 2000 }} - transition - className="mui-fixed" - > - {({ TransitionProps }) => { - return ( - <Fade {...TransitionProps} timeout={100}> - <ClickAwayListener onKeydown onClickAway={handleClickAway}> - <div - style={{ - width: inputFieldRef.current ? inputFieldRef.current.clientWidth : 0 - }} - > - {filterState.state == FilteringState.SELECTING_FILTER && ( - <TypingFilters - filterStateMachine={filterState} - dispatchFilterMachine={dispatch} - filterSchema={filterSchema} - /> - )} - {filterState.state == FilteringState.SELECTING_VALUE && ( - <TypingFilterValueSuggestions - filterStateMachine={filterState} - dispatchFilterMachine={dispatch} - filterSchema={filterSchema} - /> - )} - </div> - </ClickAwayListener> - </Fade> - ); - }} - </Popper> - </React.Fragment> - ); -} diff --git a/src/custom/Typography/index.tsx b/src/custom/Typography/index.tsx deleted file mode 100644 index 011112891..000000000 --- a/src/custom/Typography/index.tsx +++ /dev/null @@ -1,306 +0,0 @@ -import { PaletteMode } from '@mui/material'; -import { styled, Theme } from '@mui/material/styles'; -import Typography from '@mui/material/Typography'; -import { common } from '../../theme/colors'; - -export const TextH1Bold = styled(Typography)(({ theme }) => ({ - fontFamily: ['Qanelas Soft Regular'].join(','), - fontSize: '3rem', - lineHeight: '3.5rem', - fontWeight: 700, - display: 'block', - [theme.breakpoints.down('sm')]: { - fontSize: '2.5rem', - lineHeight: '3rem' - } -})); - -export const TextH2Medium = styled(Typography)(({ theme }) => ({ - fontFamily: ['Qanelas Soft Regular'].join(','), - fontSize: '2.25rem', - lineHeight: '2.75rem', - fontWeight: 500, - display: 'block', - [theme.breakpoints.down('sm')]: { - fontSize: '2rem', - lineHeight: '2.5rem' - } -})); - -export const TextH3Medium = styled(Typography)(({ theme }) => ({ - fontFamily: ['Qanelas Soft Regular'].join(','), - fontSize: '1.5rem', - lineHeight: '2.25rem', - fontWeight: 500, - display: 'block', - [theme.breakpoints.down('sm')]: { - fontSize: '1rem', - lineHeight: '1.75rem', - fontWeight: 700 - } -})); - -export const TextB1Regular = styled(Typography)<{ - mode?: 'light' | 'dark' | PaletteMode; -}>(({ theme, mode = 'light' }) => ({ - fontFamily: ['"Open Sans"', 'sans-serif'].join(','), - color: mode === 'light' ? common.black : common.white, - fontSize: '1rem', - fontWeight: 400, - lineHeight: '1.75rem', - display: 'block', - [theme.breakpoints.down('sm')]: { - fontSize: '1rem', - lineHeight: '1.75rem' - } -})); - -export const TextB2SemiBold = styled(Typography)<{ - mode?: 'light' | 'dark' | PaletteMode; -}>(({ theme, mode = 'light' }) => ({ - fontFamily: ['"Open Sans"', 'sans-serif'].join(','), - color: mode === 'light' ? common.black : common.white, - fontSize: '1rem', - fontWeight: 600, - lineHeight: '1.75rem', - textTransform: 'capitalize', - display: 'block', - [theme.breakpoints.down('sm')]: { - fontSize: '1rem', - lineHeight: '1.75rem' - } -})); - -export const TextB3Regular = styled(Typography)(() => ({ - fontFamily: ['"Open Sans"', 'sans-serif'].join(','), - fontSize: '0.875rem', - fontWeight: 400, - lineHeight: '1.25rem', - display: 'block' -})); - -export const TextL1Bold = styled(Typography)(() => ({ - fontFamily: ['"Qanelas Soft Regular"'].join(','), - fontSize: '0.75rem', - fontWeight: 700, - lineHeight: '1rem', - display: 'block' -})); - -export const TextL2Regular = styled(Typography)(() => ({ - fontFamily: ['"Open Sans"', 'sans-serif'].join(','), - fontSize: '0.75rem', - fontWeight: 400, - lineHeight: '1.5rem', - display: 'block' -})); - -export const TextC1Regular = styled(Typography)(() => ({ - fontFamily: ['Consolas', 'monospace'].join(','), - fontSize: '0.75rem', - fontWeight: 400, - lineHeight: '1.5rem', - display: 'block' -})); - -export const TextC2Regular = styled(Typography)(() => ({ - fontFamily: ['Consolas', 'monospace'].join(','), - fontSize: '1rem', - fontWeight: 400, - lineHeight: '1.75rem', - display: 'block' -})); - -const commonTypographyStyles = (theme: Theme) => ({ - fontFamily: theme.typography.fontFamily, - color: theme.palette.text.primary -}); - -export const CardTitle = styled(TextH3Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - marginLeft: '1rem' -})); - -export const CardLowerTitle = styled(TextB2SemiBold)(({ theme }) => ({ - ...commonTypographyStyles(theme), - marginTop: 'auto', - marginBottom: 'auto', - marginLeft: '8%' -})); - -export const HeroTextTypography = styled(TextH2Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - margin: '1.5rem' -})); - -export const ContentDetailsPoints = styled(TextB3Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme) -})); - -export const ContentDetailsText = styled(TextB1Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme), - ['@media (min-width:1200px)']: { - fontSize: '1' - } -})); - -export const SectionTitle = styled(TextH2Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - margin: '3rem auto 1rem', - textTransform: 'uppercase' -})); - -export const PrivacyContentDescTitle = styled(TextH3Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - marginTop: '0.8rem', - marginBottom: '0.8rem' -})); - -export const PrivacyPara = styled(TextB1Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme), - ...(theme.palette.text?.primary && { - color: theme.palette.text.primary - }) -})); - -export const TOSContentDescTitle = styled(TextH3Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - marginTop: '0.8rem', - marginBottom: '0.8rem' -})); - -export const TOSPara = styled(TextB1Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme), - color: theme.palette.text.secondary -})); - -export const UserSignupRequestTitle = styled(TextH2Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - margin: '3rem auto 1rem', - textTransform: 'uppercase' -})); - -export const Caption = styled(TextL2Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme) -})); - -export const ProfileTitle = styled(TextH3Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - padding: '2rem 1rem 0 1rem', - margin: 'auto' -})); - -export const ModalTitle = styled(TextH3Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - flexGrow: 1, - textAlign: 'left' -})); - -export const AccordionTitle = styled(TextB2SemiBold)(({ theme }) => ({ - ...commonTypographyStyles(theme), - display: 'flex', - alignItems: 'center' -})); - -export const CenterContainer = styled(Typography)(({ theme }) => ({ - ...commonTypographyStyles(theme), - display: 'flex', - flexDirection: 'column', - alignItems: 'center' -})); - -export const DesignName = styled(TextB2SemiBold)(({ theme }) => ({ - ...commonTypographyStyles(theme), - textTransform: 'capitalize', - marginTop: '4rem', - padding: '0rem 1.5rem', - position: 'relative', - overflow: 'hidden', - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - textAlign: 'center', - '& :after': { - content: "''", - textAlign: 'right', - position: 'absolute', - bottom: '0', - right: '0', - width: '70%', - background: 'linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 50%)' - } -})); - -export const LogoContainer = styled(Typography)(({ theme }) => ({ - ...commonTypographyStyles(theme), - cursor: 'pointer' -})); - -export const PageTitle = styled(TextH2Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - color: theme.palette.common.white, - alignSelf: 'center', - minWidth: '4rem', - ['@media (max-width: 700px)']: { - padding: '0.625rem 0', - fontSize: '1.875rem' - } -})); - -export const ListHeading = styled(TextB1Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme), - paddingBottom: '15px', - color: theme.palette.text.secondary, - textAlign: 'center', - letterSpacing: '0.15px' -})); - -export const TokensTitle = styled(TextH3Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - padding: '2rem 1rem' -})); - -export const SupportTitle = styled(TextH1Bold)(({ theme }) => ({ - ...commonTypographyStyles(theme), - textAlign: 'center' -})); - -export const Statistic = styled(TextH3Medium)(({ theme }) => ({ - ...commonTypographyStyles(theme), - display: 'flex', - justifyContent: 'center', - paddingX: '5px', - textAlign: 'center' -})); - -export const StatisticName = styled(TextB1Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme), - display: 'flex', - justifyContent: 'center', - paddingX: '5px', - textAlign: 'center' -})); - -export const OrganizationName = styled(TextB3Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme), - display: 'flex', - alignItems: 'end', - padding: '0 5px', - '&:hover': { - cursor: 'default' - } -})); - -export const DateLabel = styled(TextL2Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme), - fontStyle: 'italic', - '&:hover': { - cursor: 'default' - } -})); - -export const EmptyDescription = styled(TextB3Regular)(({ theme }) => ({ - ...commonTypographyStyles(theme), - textAlign: 'left', - fontStyle: 'italic', - color: theme.palette.text.disabled -})); diff --git a/src/custom/UniversalFilter.tsx b/src/custom/UniversalFilter.tsx deleted file mode 100644 index a2c8dccb4..000000000 --- a/src/custom/UniversalFilter.tsx +++ /dev/null @@ -1,175 +0,0 @@ -import { Drawer, styled, useMediaQuery } from '@mui/material'; -import { SelectChangeEvent } from '@mui/material/Select'; -import React from 'react'; -import { Button } from '../base/Button'; -import { ClickAwayListener } from '../base/ClickAwayListener'; -import { InputLabel } from '../base/InputLabel'; -import { MenuItem } from '../base/MenuItem'; -import { Paper } from '../base/Paper'; -import { Select } from '../base/Select'; -import { FilterIcon } from '../icons'; -import { useTheme } from '../theme'; -import { darkModalGradient, lightModalGradient } from '../theme/colors/colors'; -import PopperListener from './PopperListener'; -import { TooltipIcon } from './TooltipIconButton'; - -export interface FilterColumn { - name: string; - options: { label: string; value: string }[]; -} - -export interface UniversalFilterProps { - filters: Record<string, FilterColumn>; - selectedFilters: Record<string, string>; - setSelectedFilters: React.Dispatch<React.SetStateAction<Record<string, string>>>; - variant: 'filled' | 'standard' | 'outlined'; - handleApplyFilter: () => void; - showAllOption?: boolean; - id: string; -} - -export const FilterHeader = styled('div')(({ theme }) => ({ - background: theme.palette.mode === 'light' ? lightModalGradient.header : darkModalGradient.header, - padding: '0.75rem 1rem', - margin: '-1rem -1rem 1rem -1rem', - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - color: theme.palette.text.constant?.white -})); - -function UniversalFilter({ - filters, - selectedFilters, - setSelectedFilters, - variant = 'outlined', - handleApplyFilter, - showAllOption = true, - id -}: UniversalFilterProps): JSX.Element { - const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null); - const [open, setOpen] = React.useState(false); - - const theme = useTheme(); - const isMobile = useMediaQuery(theme.breakpoints.down('sm')); - - const handleClick = (event: React.MouseEvent<HTMLElement>) => { - setAnchorEl(event.currentTarget); - setOpen((prevOpen) => !prevOpen); - }; - - const handleClose = () => { - setAnchorEl(null); - setOpen(false); - }; - - const handleFilterChange = (event: React.ChangeEvent<{ value: string }>, columnName: string) => { - const value = event.target.value; - setSelectedFilters((prevFilters) => ({ - ...prevFilters, - [columnName]: value - })); - }; - - const handleApplyOnClick = () => { - handleClose(); - handleApplyFilter(); - }; - - const renderFilterContent = () => ( - <div> - <FilterHeader> - <h3>Filters: </h3> - </FilterHeader> - {Object.keys(filters).map((filterColumn) => { - const options = filters[filterColumn].options; - return ( - <div key={filterColumn} role="presentation"> - <InputLabel id={filters[filterColumn].name}>{filters[filterColumn].name}</InputLabel> - <Select - defaultValue="All" - key={filterColumn} - value={selectedFilters[filterColumn]} - variant={variant} - onChange={(e: SelectChangeEvent<unknown>) => - handleFilterChange(e as React.ChangeEvent<{ value: string }>, filterColumn) - } - style={{ - width: '20rem', - marginBottom: '1rem' - }} - inputProps={{ 'aria-label': 'Without label' }} - displayEmpty - > - {showAllOption && <MenuItem value="All">All</MenuItem>} - {options.map((option) => ( - <MenuItem key={option.value} value={option.value}> - {option.label} - </MenuItem> - ))} - </Select> - </div> - ); - })} - - <div style={{ display: 'flex', justifyContent: 'center' }}> - <Button variant="contained" onClick={handleApplyOnClick}> - Apply - </Button> - </div> - </div> - ); - - return ( - <> - <div id={id}> - <TooltipIcon - title="Filter" - onClick={handleClick} - icon={<FilterIcon fill={theme.palette.icon.default} />} - arrow - /> - {!isMobile ? ( - <PopperListener - id={open && anchorEl ? 'transition-popper' : undefined} - open={open} - anchorEl={anchorEl} - placement="bottom-end" - > - <ClickAwayListener - onClickAway={handleClose} - mouseEvent="onMouseDown" - touchEvent="onTouchStart" - > - <Paper - sx={{ - padding: '1rem', - paddingTop: '1.8rem', - boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)', - backgroundColor: theme.palette.background.surfaces - }} - > - {renderFilterContent()} - </Paper> - </ClickAwayListener> - </PopperListener> - ) : ( - <Drawer - anchor="bottom" - open={open} - onClose={handleClose} - PaperProps={{ - style: { - padding: '0 1rem 1rem 1rem', - backgroundColor: theme.palette.background.surfaces - } - }} - > - {renderFilterContent()} - </Drawer> - )} - </div> - </> - ); -} -export default UniversalFilter; diff --git a/src/custom/UserSearchField/UserSearchField.tsx b/src/custom/UserSearchField/UserSearchField.tsx deleted file mode 100644 index 9940b3198..000000000 --- a/src/custom/UserSearchField/UserSearchField.tsx +++ /dev/null @@ -1,224 +0,0 @@ -import { Button } from '@mui/material'; -import Autocomplete from '@mui/material/Autocomplete'; -import CircularProgress from '@mui/material/CircularProgress'; -import React, { useState } from 'react'; -import { useDebounce } from 'use-debounce'; -import { Avatar, Box, Chip, Grid2, TextField, Typography } from '../../base'; -import { PersonIcon } from '../../icons/Person'; -import { useTheme } from '../../theme'; - -interface User { - id: string; - user_id: string; - first_name: string; - last_name: string; - email: string; - avatar_url?: string; - deleted_at?: { Valid: boolean }; -} - -interface UserSearchFieldProps { - // Array of user objects currently selected. - usersData: User[]; - disabled?: boolean; - shareWithNewUsers: (newUsers: User[]) => Promise<{ error: string }>; - /* eslint-disable @typescript-eslint/no-explicit-any */ - useGetAllUsersQuery: any; -} - -const UserShareSearch: React.FC<UserSearchFieldProps> = ({ - usersData, - disabled = false, - shareWithNewUsers, - useGetAllUsersQuery -}: UserSearchFieldProps) => { - const [error, setError] = useState<string | false>(false); - const [inputValue, setInputValue] = useState(''); - const [usersToShareWith, setUsersToShareWith] = useState<User[]>([]); - const [isSharing, setIsSharing] = useState(false); - const theme = useTheme(); - const [debouncedInput] = useDebounce(inputValue, 300); - - const { data: usersMatchingSearch, isLoading: searchUserLoading } = useGetAllUsersQuery( - { - search: debouncedInput, - page: 0, - pagesize: 10 - }, - { skip: debouncedInput.trim().length == 0 } - ); - - const suggestions = usersMatchingSearch?.data ?? ([] as User[]); - - // const open = inputValue.trim().length > 0 && suggestions?.length > 0 - - const handleShareWithNewUsers = async () => { - console.log('users to share with', usersToShareWith); - try { - setIsSharing(true); - const result = await shareWithNewUsers(usersToShareWith); - if (!result.error) { - setUsersToShareWith([]); - } else { - setError(result.error); - } - } catch (e) { - console.log('error while sharing', e); - } finally { - setIsSharing(false); - } - }; - - const handleAdd = (_event: React.SyntheticEvent<Element, Event>, value: User[]) => { - if (value) { - setUsersToShareWith(value); - setInputValue(''); - } - }; - - // Handler for input changes - const handleInputChange = (event: React.SyntheticEvent, value: string, reason: string) => { - // Only process actual typing events, not clearing or blurring - if (reason === 'input') { - setInputValue(value); - } else if (reason === 'clear') { - setInputValue(''); - } - }; - - const filteredOptions = suggestions.filter( - (option: User) => !usersToShareWith.concat(usersData).find((u) => u.email === option.email) - ); - - const isShareDisabled = disabled || isSharing || usersToShareWith.length === 0; - - const UserChip = ({ avatarObj, ...props }: { avatarObj: User }) => ( - <Chip - key={avatarObj.user_id} - avatar={ - <Avatar alt={avatarObj.first_name} src={avatarObj.avatar_url}> - {avatarObj.avatar_url ? '' : avatarObj.first_name?.charAt(0)} - </Avatar> - } - label={avatarObj.email} - size="small" - {...props} - /> - ); - - return ( - <> - <Box display="flex" alignItems="center" justifyContent="space-between" gap={1}> - <Autocomplete - id="user-search-field" - sx={{ width: '100%' }} - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - filterOptions={(x) => x} - options={filteredOptions} - renderTags={(value, getTagProps) => - value.map((user, index) => <UserChip avatarObj={user} {...getTagProps({ index })} />) - } - disableClearable - includeInputInList - filterSelectedOptions - multiple - disableListWrap - disabled={isSharing} - // open={open} - inputValue={inputValue} - loading={searchUserLoading} - value={usersToShareWith} - getOptionLabel={(user) => user.email} - noOptionsText={ - searchUserLoading - ? 'Loading...' - : inputValue == '' - ? 'Search using name or email' - : 'No users found' - } - onChange={handleAdd} - onInputChange={handleInputChange} - isOptionEqualToValue={(option, value) => option.email === value.email} - renderInput={(params) => ( - <TextField - {...params} - placeholder="Add Users" - error={!!error} - helperText={error} - fullWidth - label="" - disabled={isShareDisabled} - sx={{ - '& .MuiOutlinedInput-root': { - paddingInline: '0.5rem', - paddingBlock: '0.1rem' - } - }} - InputProps={{ - ...params.InputProps, - endAdornment: ( - <>{searchUserLoading ? <CircularProgress color="inherit" size={20} /> : null}</> - ) - }} - /> - )} - renderOption={(props: React.HTMLAttributes<HTMLLIElement>, option) => ( - // @ts-expect-error Props need to be passed to BOX component to make sure styles getting updated - <Box component="li" sx={{ '& > img': { mr: 2, flexShrink: 0 } }} {...props}> - <Grid2 container alignItems="center"> - <Grid2> - <Box sx={{ color: 'text.secondary', mr: 2 }}> - <Avatar alt={option.first_name} src={option.avatar_url}> - {option.avatar_url ? '' : <PersonIcon />} - </Avatar> - </Box> - </Grid2> - <Grid2 size="grow"> - {option.deleted_at?.Valid ? ( - <Typography variant="body2" color="text.secondary"> - {option.email} (deleted) - </Typography> - ) : ( - <> - <Typography variant="body2"> - {option.first_name} {option.last_name} - </Typography> - <Typography variant="body2" color="text.secondary"> - {option.email} - </Typography> - </> - )} - </Grid2> - </Grid2> - </Box> - )} - /> - <Button - variant="contained" - sx={{ - '&.Mui-disabled': { - color: `${theme.palette.text.secondary} !important`, - backgroundColor: `${theme.palette.action.disabled} !important` // This ensures the color stays when disabled - } - }} - onClick={handleShareWithNewUsers} - disabled={isShareDisabled} - > - {isSharing ? ( - <CircularProgress - size={24} - sx={{ - color: '#fff' - }} - /> - ) : ( - 'Share' - )} - </Button> - </Box> - </> - ); -}; - -export default UserShareSearch; diff --git a/src/custom/UserSearchField/UserSearchFieldInput.tsx b/src/custom/UserSearchField/UserSearchFieldInput.tsx deleted file mode 100644 index 787eb3d79..000000000 --- a/src/custom/UserSearchField/UserSearchFieldInput.tsx +++ /dev/null @@ -1,321 +0,0 @@ -/* eslint-disable react-hooks/exhaustive-deps */ -import { Autocomplete } from '@mui/material'; -import React, { useCallback, useEffect, useMemo, useState } from 'react'; -import { - Avatar, - Box, - Checkbox, - Chip, - CircularProgress, - FormControlLabel, - FormGroup, - Grid2, - TextField, - Tooltip, - Typography -} from '../../base'; - -import { iconSmall } from '../../constants/iconsSizes'; -import { CloseIcon, PersonIcon } from '../../icons'; - -interface User { - user_id: string; - first_name: string; - last_name: string; - email: string; - avatar_url?: string; - deleted_at?: { Valid: boolean }; - deleted?: boolean; -} - -interface UserSearchFieldProps { - usersData: User[]; - setUsersData: React.Dispatch<React.SetStateAction<User[]>>; - label?: string; - setDisableSave?: (disable: boolean) => void; - handleNotifyPref?: () => void; - notifyUpdate?: boolean; - isCreate?: boolean; - searchType?: string; - disabled?: boolean; - currentUserData: User | null; - searchedUsers: User[]; - isUserSearchLoading: boolean; - fetchSearchedUsers: (value: string) => void; - usersSearch: string; - setUsersSearch: React.Dispatch<React.SetStateAction<string>>; -} - -const UserSearchField: React.FC<UserSearchFieldProps> = ({ - usersData, //updatedOrgUsers - setUsersData, //setupdatedOrgUsers - label = 'Add User', - setDisableSave, - handleNotifyPref, - notifyUpdate, - isCreate, - searchType, - disabled = false, - currentUserData, //current logged in user data - searchedUsers = [], //users result by api - isUserSearchLoading, - fetchSearchedUsers, //function to perform search - usersSearch, //username value - setUsersSearch //state to modify username value -}) => { - const [error, setError] = useState(''); - const [open, setOpen] = useState(false); - const [showAllUsers, setShowAllUsers] = useState(false); - const [hasInitialFocus, setHasInitialFocus] = useState(true); - const [inputValue, setInputValue] = useState(''); - const [localUsersData, setLocalUsersData] = useState<User[]>(usersData || []); - - useEffect(() => { - setLocalUsersData(usersData || []); - }, [usersData]); - - const displayOptions = useMemo(() => { - if (hasInitialFocus && !usersSearch && currentUserData) { - return [currentUserData]; - } - - const filteredResults = searchedUsers.filter( - (user: User) => user.user_id !== currentUserData?.user_id - ); - - if (!usersSearch && currentUserData) { - return [currentUserData, ...filteredResults]; - } - - return filteredResults; - }, [searchedUsers, currentUserData, usersSearch, hasInitialFocus, localUsersData]); - - const handleDelete = useCallback( - (idToDelete: string, event: React.MouseEvent) => { - event.stopPropagation(); - - const updatedUsers = localUsersData.filter((user) => user.user_id !== idToDelete); - setLocalUsersData(updatedUsers); - setUsersData(updatedUsers); - - if (setDisableSave) { - setDisableSave(false); - } - }, - [localUsersData, setUsersData, setDisableSave, fetchSearchedUsers, inputValue] - ); - - const handleAdd = useCallback( - (event: React.SyntheticEvent<Element, Event>, value: User | null) => { - if (!value) return; - - const isDuplicate = localUsersData.some((user) => user.user_id === value.user_id); - const isDeleted = value.deleted_at?.Valid === true; - - if (isDuplicate || isDeleted) { - setError(isDuplicate ? 'User already selected' : 'User does not exist'); - return; - } - setInputValue(''); - setUsersSearch(''); - setError(''); - setOpen(false); - - setLocalUsersData((prev) => [...prev, value]); - setUsersData((prev) => [...prev, value]); - - if (setDisableSave) { - setDisableSave(false); - } - }, - [localUsersData, setUsersData, setDisableSave, setUsersSearch] - ); - - const handleInputChange = useCallback( - (event: React.SyntheticEvent<Element, Event>, newValue: string) => { - setInputValue(newValue); - - if (newValue === '') { - setOpen(true); - setUsersSearch(''); - setHasInitialFocus(true); - } else { - const encodedValue = encodeURIComponent(newValue); - fetchSearchedUsers(encodedValue); - setError(''); - setOpen(true); - setHasInitialFocus(false); - } - }, - [fetchSearchedUsers] - ); - return ( - <> - <Autocomplete - id="user-search-field" - style={{ width: '100%' }} - open={open} - options={displayOptions} - getOptionLabel={() => inputValue} - isOptionEqualToValue={(option, value) => option.user_id === value.user_id} - onOpen={() => setOpen(true)} - onClose={() => setOpen(false)} - inputValue={inputValue} - onChange={handleAdd} - onInputChange={handleInputChange} - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - filterOptions={(options, { inputValue }) => { - return options.filter((option: User) => { - const searchStr = inputValue.toLowerCase(); - return ( - option.first_name?.toLowerCase().includes(searchStr) || - option.last_name?.toLowerCase().includes(searchStr) || - option.email?.toLowerCase().includes(searchStr) - ); - }); - }} - loading={isUserSearchLoading} - disabled={disabled} - disableClearable - value={undefined} - selectOnFocus={false} - blurOnSelect={true} - clearOnBlur={true} - popupIcon={null} - forcePopupIcon={false} - noOptionsText={isUserSearchLoading ? 'Loading...' : 'No users found'} - renderInput={(params) => ( - <TextField - {...params} - label={label} - error={!!error} - helperText={error} - InputLabelProps={{ - style: { - fontFamily: 'inherit' - } - }} - InputProps={{ - ...params.InputProps, - endAdornment: ( - <React.Fragment> - {isUserSearchLoading ? <CircularProgress color="inherit" size={20} /> : null} - </React.Fragment> - ) - }} - /> - )} - renderOption={(props, option: User) => ( - <li {...props} id={option.user_id}> - <Box sx={{ '& > img': { mr: 2, flexShrink: 0 } }}> - {' '} - <Grid2 container alignItems="center"> - <Grid2> - <Box sx={{ color: 'text.secondary', mr: 2 }}> - <Avatar alt={option.first_name} src={option.avatar_url}> - {option.avatar_url ? '' : <PersonIcon />} - </Avatar> - </Box> - </Grid2> - <Grid2 size="grow"> - {option.deleted ? ( - <Typography variant="body2" color="text.secondary"> - {option.email} (deleted) - </Typography> - ) : ( - <> - <Typography variant="body2"> - {option.first_name} {option.last_name} - </Typography> - <Typography variant="body2" color="text.secondary"> - {option.email} - </Typography> - </> - )} - </Grid2> - </Grid2> - </Box> - </li> - )} - /> - {!isCreate && ( - <FormGroup row={true}> - <div style={{ display: 'flex', flexWrap: 'nowrap' }}> - <FormControlLabel - control={ - <Checkbox - checked={notifyUpdate} - onChange={handleNotifyPref} - name="notify" - color="primary" - /> - } - label={`Notify ${searchType} of membership change`} - /> - </div> - </FormGroup> - )} - <Box - sx={{ - display: 'flex', - flexWrap: 'wrap', - gap: 0.5, - mt: usersData?.length > 0 ? '0.5rem' : '' - }} - > - {!showAllUsers && localUsersData?.[0] && ( - <Chip - key={localUsersData[0].user_id} - avatar={ - <Avatar alt={localUsersData[0].first_name} src={localUsersData[0].avatar_url}> - {!localUsersData[0].avatar_url && localUsersData[0].first_name?.[0]} - </Avatar> - } - label={localUsersData[0].email} - onDelete={(e) => handleDelete(localUsersData[0].user_id, e)} - deleteIcon={ - <Tooltip title="Remove user"> - <CloseIcon style={iconSmall} /> - </Tooltip> - } - size="small" - /> - )} - - {showAllUsers && - localUsersData?.map((user) => ( - <Chip - key={user.user_id} - avatar={ - <Avatar alt={user.first_name} src={user.avatar_url}> - {!user.avatar_url && user.first_name?.[0]} - </Avatar> - } - label={user.email} - onDelete={(e) => handleDelete(user.user_id, e)} - deleteIcon={ - <Tooltip title="Remove user"> - <CloseIcon style={iconSmall} /> - </Tooltip> - } - size="small" - /> - ))} - - {localUsersData?.length > 1 && ( - <Typography - onClick={() => setShowAllUsers(!showAllUsers)} - sx={{ - cursor: 'pointer' - }} - > - {showAllUsers ? '(hide)' : `(+${localUsersData.length - 1})`} - </Typography> - )} - </Box> - </> - ); -}; - -export default UserSearchField; diff --git a/src/custom/UserSearchField/index.ts b/src/custom/UserSearchField/index.ts deleted file mode 100644 index 29bbf2d52..000000000 --- a/src/custom/UserSearchField/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import UserShareSearch from './UserSearchField'; -import UserSearchField from './UserSearchFieldInput'; - -export { UserSearchField, UserShareSearch }; diff --git a/src/custom/UsersTable/UserTableAvatarInfo.tsx b/src/custom/UsersTable/UserTableAvatarInfo.tsx deleted file mode 100644 index 70cba0f86..000000000 --- a/src/custom/UsersTable/UserTableAvatarInfo.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { Avatar, Box, Grid2, Typography } from '../../base'; -import { MESHERY_CLOUD_PROD } from '../../constants/constants'; - -import { PersonIcon } from '../../icons'; -import { useTheme } from '../../theme'; - -interface UserTableAvatarInfoProps { - userId: string; - userName: string; - userEmail: string; - profileUrl?: string; -} - -const UserTableAvatarInfo: React.FC<UserTableAvatarInfoProps> = ({ - userId, - userName, - userEmail, - profileUrl -}): JSX.Element => { - const theme = useTheme(); - const handleProfileClick = (): void => { - window.open(`${MESHERY_CLOUD_PROD}/user/${userId}`); - }; - - return ( - <Grid2 container alignItems="center"> - <Grid2> - <Box - sx={{ - color: theme.palette.text.default, - mr: 2, - cursor: 'pointer' - }} - > - <Avatar onClick={handleProfileClick} alt={userName} src={profileUrl}> - {profileUrl ? '' : <PersonIcon />} - </Avatar> - </Box> - </Grid2> - <Grid2 size="grow"> - {userName} - <Typography variant="body2" color={theme.palette.text.disabled}> - {userEmail} - </Typography> - </Grid2> - </Grid2> - ); -}; - -export default UserTableAvatarInfo; diff --git a/src/custom/UsersTable/UsersTable.tsx b/src/custom/UsersTable/UsersTable.tsx deleted file mode 100644 index 0f89bacd2..000000000 --- a/src/custom/UsersTable/UsersTable.tsx +++ /dev/null @@ -1,452 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { Theme } from '@mui/material'; -import { MUIDataTableColumn, MUIDataTableMeta } from 'mui-datatables'; -import { useRef, useState } from 'react'; -import { Box, Tooltip } from '../../base'; -import { EditIcon } from '../../icons'; -import Github from '../../icons/Github/GithubIcon'; -import Google from '../../icons/Google/GoogleIcon'; -import LogoutIcon from '../../icons/Logout/LogOutIcon'; -import { CHARCOAL, SistentThemeProviderWithoutBaseLine } from '../../theme'; -import { useWindowDimensions } from '../Helpers/Dimension'; -import { - ColView, - updateVisibleColumns -} from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column'; -import PromptComponent, { PROMPT_VARIANTS } from '../Prompt'; -import ResponsiveDataTable from '../ResponsiveDataTable'; -import { TooltipIcon } from '../TooltipIconButton'; -import { parseDeletionTimestamp } from '../Workspaces/helper'; -import { TableIconsContainer, TableIconsDisabledContainer } from '../Workspaces/styles'; -import UserTableAvatarInfo from './UserTableAvatarInfo'; -interface ActionButtonsProps { - tableMeta: MUIDataTableMeta; - isRemoveFromTeamAllowed: boolean; - handleRemoveFromTeam: (data: any[]) => () => void; - theme?: Theme; -} - -const ActionButtons: React.FC<ActionButtonsProps> = ({ - tableMeta, - handleRemoveFromTeam, - isRemoveFromTeamAllowed, - theme -}) => { - return ( - <div> - {isRemoveFromTeamAllowed ? ( - <TableIconsContainer> - <TooltipIcon - id={`delete_user-${tableMeta.rowIndex}`} - onClick={handleRemoveFromTeam(tableMeta.rowData)} - title="Remove user membership from team" - iconType="delete" - > - <LogoutIcon fill={theme?.palette.icon.default} /> - </TooltipIcon> - </TableIconsContainer> - ) : ( - <TableIconsDisabledContainer> - <LogoutIcon fill={theme?.palette.icon.disabled} secondaryFill={CHARCOAL} /> - </TableIconsDisabledContainer> - )} - </div> - ); -}; - -interface UsersTableProps { - teamID: string; - useGetUsersForOrgQuery: any; - org_id: string; - useRemoveUserFromTeamMutation: any; - useNotificationHandlers: any; - isRemoveFromTeamAllowed: boolean; - theme?: Theme; -} - -const UsersTable: React.FC<UsersTableProps> = ({ - teamID, - useGetUsersForOrgQuery, - org_id, - useRemoveUserFromTeamMutation, - useNotificationHandlers, - isRemoveFromTeamAllowed, - theme -}) => { - const [page, setPage] = useState<number>(0); - const [pageSize, setPageSize] = useState<number>(10); - const [sortOrder, setSortOrder] = useState<string>('last_login_time desc'); - const [search, setSearch] = useState<string>(''); - const availableRoles: string[] = []; - const { handleError, handleSuccess, handleInfo } = useNotificationHandlers(); - const ref: any = useRef(null); - const { width } = useWindowDimensions(); - - const { data: userData } = useGetUsersForOrgQuery({ - page: page, - pagesize: pageSize, - search: search, - order: sortOrder, - teamId: teamID, - orgId: org_id - }); - - const [removeUserFromTeam] = useRemoveUserFromTeamMutation(); - - const users = userData?.data || []; - const count = userData?.total_count || 0; - - const handleRemoveFromTeam = (data: any[]) => async () => { - const user_id = data[0]; - - const response = await ref.current?.show({ - title: `Remove User From Team ?`, - subtitle: removeUserFromTeamModalContent(data[3], data[2]), - primaryOption: 'Proceed', - variant: PROMPT_VARIANTS.DANGER - }); - if (response === 'Proceed') { - removeUserFromTeam({ - orgId: org_id, - teamId: teamID, - userId: user_id - }) - .unwrap() - .then(() => { - handleSuccess(`${data[4] ? data[4] : ''} ${data[5] ? data[5] : ''} removed from team`); - }) - .catch((err: any) => { - const error = err.response?.data?.message || 'Failed to remove user from team'; - if (err.response.status === 404) { - handleInfo(error); - } else { - handleError(error); - } - }); - } - }; - - const getValidColumnValue = (rowData: any, columnName: string, columns: MUIDataTableColumn[]) => { - const columnIndex = columns.findIndex((column: any) => column.name === columnName); - return rowData[columnIndex]; - }; - - const removeUserFromTeamModalContent = (user: string, email: string) => ( - <> - <p>Are you sure you want to remove this user? (This action is irreversible)</p> - <p> - User:{' '} - <i> - <b>{user}</b> - </i> - </p> - <p> - Email:{' '} - <i> - <b>{email}</b> - </i> - </p> - </> - ); - - let searchTimeout: NodeJS.Timeout; - - const options = { - search: false, - viewColumns: false, - filter: false, - rowsPerPageOptions: [10, 20, 25], - responsive: 'standard', - selectableRows: 'none', - count: count, - rowsPerPage: pageSize, - page, - print: false, - download: false, - elevation: 0, - serverSide: true, - sortOrder: { - name: sortOrder.split(' ')[0], - direction: sortOrder.split(' ')[1] - }, - onTableChange: (action: string, tableState: any) => { - const sortInfo = tableState.announceText ? tableState.announceText.split(' : ') : []; - let order = ''; - if (tableState.activeColumn) { - order = `${columns[tableState.activeColumn].name} desc`; - } - - switch (action) { - case 'changePage': - setPage(tableState.page); - break; - case 'changeRowsPerPage': - setPageSize(tableState.rowsPerPage); - break; - case 'search': - if (searchTimeout) { - clearTimeout(searchTimeout); - } - searchTimeout = setTimeout(() => { - if (search !== tableState.searchText) { - setSearch(tableState.searchText); - } - }, 500); - break; - case 'sort': - if (sortInfo.length == 2) { - if (sortInfo[1] === 'ascending') { - order = `${columns[tableState.activeColumn].name} asc`; - } else { - order = `${columns[tableState.activeColumn].name} desc`; - } - } - if (order !== sortOrder) { - setSortOrder(order); - } - break; - } - } - }; - - const colViews: ColView[] = [ - ['user_id', 'na'], - ['avatar_url', 'xs'], - ['email', 'na'], - ['username', 'na'], - ['first_name', 'na'], - ['last_name', 'na'], - ['role_names', 'xs'], - ['status', 'na'], - ['joined_at', 'l'], - ['last_login_time', 'l'], - ['deleted_at', 'na'] - // ["actions", "xs"] - ]; - - const columns: MUIDataTableColumn[] = [ - { - name: 'user_id', - label: 'User ID', - options: { - filter: false, - sort: false, - searchable: false - } - }, - { - name: 'avatar_url', - label: 'Team Member', - options: { - filter: false, - sort: false, - searchable: false, - customBodyRender: (value: string, tableMeta: MUIDataTableMeta) => ( - <Box sx={{ '& > img': { mr: 2, flexShrink: 0 } }}> - <UserTableAvatarInfo - userId={getValidColumnValue(tableMeta.rowData, 'user_id', columns)} - userName={`${tableMeta.rowData[4]} ${tableMeta.rowData[5]}`} - userEmail={tableMeta.rowData[2]} - profileUrl={value} - /> - </Box> - ) - } - }, - { - name: 'email', - label: 'Email', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'username', - label: 'Username', - options: { - filter: false, - sort: true, - searchable: true, - customBodyRender: (value: string, tableMeta: MUIDataTableMeta) => ( - <div style={{ display: 'flex' }}> - {value} - - {value?.includes('@') ? ( - <Tooltip title={`Search "${tableMeta.rowData[3]} ${tableMeta.rowData[4]}" on Google`}> - <a - href={`https://www.google.com/search?q=${tableMeta.rowData[3]}+${tableMeta.rowData[4]}`} - style={{ color: 'inherit' }} - target="_blank" - rel="noreferrer" - > - <div> - <Google width={20} height={20} /> - </div> - </a> - </Tooltip> - ) : ( - <Tooltip title={`Lookup "${value}" on GitHub`}> - <a - href={`https://www.github.com/${value}`} - style={{ color: 'inherit' }} - target="_blank" - rel="noreferrer" - > - <div> - <Github width={22} height={22} /> - </div> - </a> - </Tooltip> - )} - </div> - ) - } - }, - { - name: 'first_name', - label: 'First', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'last_name', - label: 'Last', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'role_names', - label: 'Roles', - options: { - filter: true, - sort: false, - searchable: false, - // filterType: "multiselect", - filterOptions: { - names: availableRoles.concat(availableRoles?.map((role) => `!${role}`)) - }, - customBodyRender: (value: string[]) => <div>{value?.join(', ')}</div> - } - }, - { - name: 'status', - label: 'Status', - options: { - filter: true, - sort: true, - searchable: false - } - }, - { - name: 'joined_at', - label: 'Joined At', - options: { - filter: false, - sort: true, - searchable: false, - sortDescFirst: true - } - }, - { - name: 'last_login_time', - label: 'Last Active At', - options: { - filter: false, - sort: true, - searchable: false, - sortDescFirst: true - } - }, - { - name: 'deleted_at', - label: 'Deleted At', - options: { - filter: true, - sort: true, - searchable: false, - sortDescFirst: true, - filterOptions: { - names: ['Deleted', 'Not Deleted'], - logic: (val: string, filters: string[]) => { - if (val != 'NA' && filters.indexOf('Deleted') >= 0) return true; - else if (val == 'NA' && filters.indexOf('Not Deleted') >= 0) return true; - return false; - }, - fullWidth: true - }, - customBodyRender: (_: string, tableMeta: MUIDataTableMeta) => { - const rowData = users[tableMeta.rowIndex]; - return parseDeletionTimestamp(rowData); - } - } - }, - { - name: 'actions', - label: 'Actions', - options: { - filter: false, - sort: false, - searchable: false, - customBodyRender: (_: string, tableMeta: MUIDataTableMeta) => - getValidColumnValue(tableMeta.rowData, 'deleted_at', columns).Valid !== false ? ( - <TableIconsDisabledContainer> - <EditIcon - style={{ - marginRight: '.5rem' - }} - fill={CHARCOAL} - height="30" - width="30" - /> - <LogoutIcon fill={CHARCOAL} secondaryFill={CHARCOAL} height={30} width={30} /> - </TableIconsDisabledContainer> - ) : ( - <ActionButtons - tableMeta={tableMeta} - handleRemoveFromTeam={handleRemoveFromTeam} - isRemoveFromTeamAllowed={isRemoveFromTeamAllowed} - theme={theme} - /> - ) - } - } - ]; - - const [tableCols, updateCols] = useState<MUIDataTableColumn[]>(columns); - - const [columnVisibility] = useState<Record<string, boolean>>(() => { - const showCols: Record<string, boolean> = updateVisibleColumns(colViews, width); - // Initialize column visibility based on the original columns' visibility - const initialVisibility: Record<string, boolean> = {}; - columns.forEach((col) => { - initialVisibility[col.name] = showCols[col.name]; - }); - return initialVisibility; - }); - return ( - <SistentThemeProviderWithoutBaseLine initialMode={theme?.palette.mode}> - <div style={{ margin: 'auto', width: '100%' }}> - <ResponsiveDataTable - columns={columns} - data={users} - options={options} - colViews={colViews} - tableCols={tableCols} - updateCols={updateCols} - columnVisibility={columnVisibility} - /> - </div> - <PromptComponent ref={ref} /> - </SistentThemeProviderWithoutBaseLine> - ); -}; - -export default UsersTable; diff --git a/src/custom/UsersTable/index.ts b/src/custom/UsersTable/index.ts deleted file mode 100644 index 6fc823904..000000000 --- a/src/custom/UsersTable/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import UsersTable from './UsersTable'; -import UserTableAvatarInfo from './UserTableAvatarInfo'; -export { UserTableAvatarInfo, UsersTable }; diff --git a/src/custom/VisibilityChipMenu/VisibilityChipMenu.tsx b/src/custom/VisibilityChipMenu/VisibilityChipMenu.tsx deleted file mode 100644 index e4b09b2a2..000000000 --- a/src/custom/VisibilityChipMenu/VisibilityChipMenu.tsx +++ /dev/null @@ -1,147 +0,0 @@ -import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'; -import { MouseEvent, useState } from 'react'; -import { Button, Menu, MenuItem } from '../../base'; -import { iconXSmall } from '../../constants/iconsSizes'; -import { ALICE_BLUE, CHINESE_SILVER, NOT_FOUND, styled } from '../../theme'; - -export const VIEW_VISIBILITY = { - PUBLIC: 'public', - PRIVATE: 'private', - PUBLISHED: 'published' -} as const; - -export type VIEW_VISIBILITY = (typeof VIEW_VISIBILITY)[keyof typeof VIEW_VISIBILITY]; - -interface VisibilityChipMenuProps { - value: VIEW_VISIBILITY; - onChange?: (value: string) => void; - options?: [string, React.ElementType][]; - enabled: boolean; -} - -const StyledMenu = styled(Menu)(({ theme }) => ({ - '& .MuiPaper-root': { - backgroundColor: - theme.palette.mode === 'light' ? ALICE_BLUE : theme.palette.background.constant?.table, - color: theme.palette.text.secondary, - border: `1px solid ${theme.palette.border.default}`, - borderRadius: '0.25rem', - padding: '0rem' - }, - '& .MuiMenuItem-root': { - fontSize: '.9rem', - padding: '0.5rem', - '&:hover': { - backgroundColor: theme.palette.mode === 'light' ? CHINESE_SILVER : 'rgba(0, 179, 159, 0.25)' - } - }, - //selected - '& .Mui-selected': { - backgroundColor: theme.palette.mode === 'light' ? CHINESE_SILVER : 'rgba(0, 179, 159, 0.25)' - }, - '& .MuiList-padding': { - padding: '0px' - } -})); - -const StyledButton = styled(Button)(() => ({ - padding: '0px' -})); - -interface StyledDivProps { - enabled: boolean; -} - -const StyledDiv = styled('div')<StyledDivProps>(({ theme, enabled }) => ({ - paddingLeft: '0.3rem', - height: '1.5rem', - width: 'auto', - paddingRight: enabled ? '0' : '0.3rem', - borderRadius: '0.25rem', - border: `1px solid ${NOT_FOUND}`, - background: - theme?.palette.mode === 'light' ? ALICE_BLUE : theme?.palette.background.constant?.table, - textTransform: 'uppercase', - color: theme?.palette.text.default, - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - fontSize: '0.75rem', - fontFamily: theme?.typography.fontFamily -})); - -const StyledMenuItem = styled(MenuItem)(({ theme }) => ({ - textTransform: 'capitalize', - color: theme.palette.icon.default -})); - -const StyledIcon = styled('div')({ - marginRight: '0.5rem' -}); - -const VisibilityChipMenu: React.FC<VisibilityChipMenuProps> = ({ - value, - onChange, - options, - enabled -}) => { - const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null); - const open = Boolean(anchorEl); - const close = (e: MouseEvent) => { - e.stopPropagation(); - setAnchorEl(null); - }; - const handleOpen = (e: MouseEvent<HTMLElement>) => { - e.stopPropagation(); - if (!enabled) return; - setAnchorEl(e.currentTarget); - }; - const handleChange = (e: MouseEvent, value: string) => { - e.stopPropagation(); - if (onChange) { - onChange(value); - } - close(e); - }; - - return ( - <> - <StyledButton - disabled={!enabled} - onClick={handleOpen} - data-testid={`design-visibility-${value.toLowerCase()}`} - > - <StyledDiv enabled={enabled}> - <span style={{ fontSize: '0.85rem' }}>{value}</span> - {enabled && <ArrowDropDownIcon style={{ ...iconXSmall }} />} - </StyledDiv> - </StyledButton> - - <StyledMenu - open={open} - onClose={close} - anchorEl={anchorEl} - anchorReference="anchorPosition" - anchorPosition={{ - top: (anchorEl?.getBoundingClientRect().bottom ?? 0) + 5, - left: (anchorEl?.getBoundingClientRect().left ?? 0) + 5 - }} - > - {options?.map(([visibility, Icon], index) => ( - <StyledMenuItem - key={index} - data-testid={`visibility-toggle-${visibility.toLowerCase()}`} - onClick={(e) => handleChange(e, visibility)} - > - <StyledIcon> - <Icon width={16} height={16} /> - </StyledIcon> - {visibility} - </StyledMenuItem> - ))} - </StyledMenu> - </> - ); -}; - -export default VisibilityChipMenu; diff --git a/src/custom/VisibilityChipMenu/index.ts b/src/custom/VisibilityChipMenu/index.ts deleted file mode 100644 index 6da896b00..000000000 --- a/src/custom/VisibilityChipMenu/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import VisibilityChipMenu from './VisibilityChipMenu'; - -export { VisibilityChipMenu }; diff --git a/src/custom/Workspaces/AssignmentModal.tsx b/src/custom/Workspaces/AssignmentModal.tsx deleted file mode 100644 index 61d20fbe6..000000000 --- a/src/custom/Workspaces/AssignmentModal.tsx +++ /dev/null @@ -1,142 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { Divider } from '../../base'; -import { Modal, ModalBody, ModalButtonPrimary, ModalButtonSecondary, ModalFooter } from '../Modal'; -import { TransferList } from '../TransferModal/TransferList'; -import { ModalActionDiv } from './styles'; - -interface AssignmentModalProps { - open: boolean; - onClose: (e?: React.MouseEvent) => void; - title: string; - headerIcon: JSX.Element; - name: string; - assignableData: any[]; - handleAssignedData: (data: any) => void; - originalAssignedData: any[]; - emptyStateIcon: JSX.Element; - handleAssignablePage: () => void; - handleAssignedPage: () => void; - originalLeftCount: number; - originalRightCount: number; - onAssign: () => void; - disableTransfer: boolean; - isAssignAllowed: boolean; - isRemoveAllowed: boolean; - helpText: string; - showViews?: boolean; - nameViews?: string; - assignableViewsData?: any[]; - handleAssignedViewsData?: (data: any) => void; - originalAssignedViewsData?: any[]; - - emptyStateViewsIcon?: JSX.Element; - handleAssignableViewsPage?: () => void; - handleAssignedViewsPage?: () => void; - originalLeftViewsCount?: number; - originalRightViewsCount?: number; - onAssignViews?: () => void; - disableTransferViews?: boolean; - isAssignAllowedViews?: boolean; - isRemoveAllowedViews?: boolean; -} - -const AssignmentModal: React.FC<AssignmentModalProps> = ({ - open, - onClose, - title, - headerIcon, - name, - assignableData, - handleAssignedData, - originalAssignedData, - emptyStateIcon, - handleAssignablePage, - handleAssignedPage, - originalLeftCount, - originalRightCount, - onAssign, - disableTransfer, - isAssignAllowed, - isRemoveAllowed, - helpText, - showViews, - nameViews, - assignableViewsData, - handleAssignedViewsData, - originalAssignedViewsData, - emptyStateViewsIcon, - handleAssignableViewsPage, - handleAssignedViewsPage, - originalLeftViewsCount, - originalRightViewsCount, - isAssignAllowedViews = false, - isRemoveAllowedViews = false -}) => { - return ( - <Modal - open={open} - closeModal={onClose} - title={title} - headerIcon={headerIcon} - maxWidth="md" - reactNode={undefined} - > - <ModalBody> - <TransferList - name={name} - assignableData={assignableData} - assignedData={handleAssignedData} - originalAssignedData={originalAssignedData} - emptyStateIconLeft={emptyStateIcon} - emtyStateMessageLeft={`No ${name.toLowerCase()} available`} - emptyStateIconRight={emptyStateIcon} - emtyStateMessageRight={`No ${name.toLowerCase()} assigned`} - assignablePage={handleAssignablePage} - assignedPage={handleAssignedPage} - originalLeftCount={originalLeftCount} - originalRightCount={originalRightCount} - leftPermission={isAssignAllowed} - rightPermission={isRemoveAllowed} - transferComponentType={''} - /> - <Divider - style={{ - margin: 'auto', - width: '80%', - marginTop: '22px', - marginBottom: '22px' - }} - /> - {showViews && ( - <TransferList - name={nameViews} - assignableData={assignableViewsData || []} - assignedData={handleAssignedViewsData || (() => {})} - originalAssignedData={originalAssignedViewsData || []} - emptyStateIconLeft={emptyStateViewsIcon || <></>} - emtyStateMessageLeft={`No views available`} - emptyStateIconRight={emptyStateViewsIcon || <></>} - emtyStateMessageRight={`No views assigned`} - assignablePage={handleAssignableViewsPage || (() => {})} - assignedPage={handleAssignedViewsPage || (() => {})} - originalLeftCount={originalLeftViewsCount ?? 0} - originalRightCount={originalRightViewsCount ?? 0} - leftPermission={isAssignAllowedViews} - rightPermission={isRemoveAllowedViews} - transferComponentType={''} - /> - )} - </ModalBody> - <ModalFooter variant="filled" helpText={helpText}> - <ModalActionDiv> - <ModalButtonSecondary onClick={onClose}>Cancel</ModalButtonSecondary> - <ModalButtonPrimary onClick={onAssign} disabled={disableTransfer}> - Save - </ModalButtonPrimary> - </ModalActionDiv> - </ModalFooter> - </Modal> - ); -}; - -export default AssignmentModal; diff --git a/src/custom/Workspaces/DesignTable.tsx b/src/custom/Workspaces/DesignTable.tsx deleted file mode 100644 index 395de1718..000000000 --- a/src/custom/Workspaces/DesignTable.tsx +++ /dev/null @@ -1,305 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import _ from 'lodash'; -import React, { useEffect, useRef, useState } from 'react'; -import { Box } from '../../base'; -import { DesignIcon } from '../../icons'; -import { publishCatalogItemSchema } from '../../schemas'; -import { useTheme } from '../../theme'; -import { - CatalogDesignsTable, - createDesignsColumnsConfig, - designColumnsColViews -} from '../CatalogDesignTable'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { CustomColumnVisibilityControl } from '../CustomColumnVisibilityControl'; -import { useWindowDimensions } from '../Helpers/Dimension'; -import { updateVisibleColumns } from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column'; -import PromptComponent from '../Prompt'; -import SearchBar from '../SearchBar'; -import { VIEW_VISIBILITY } from '../VisibilityChipMenu/VisibilityChipMenu'; -import AssignmentModal from './AssignmentModal'; -import useDesignAssignment from './hooks/useDesignAssignment'; -import { L5EditIcon, TableHeader } from './styles'; -export interface DesignTableProps { - workspaceId: string; - isKanvasEnabled: boolean; - workspaceName: string; - meshModelModelsData: any; - useGetWorkspaceDesignsQuery: any; - useAssignDesignToWorkspaceMutation: any; - useUnassignDesignFromWorkspaceMutation: any; - handleCopyUrl: (type: string, name: string, id: string) => void; - handleClone: (name: string, id: string) => void; - handleWorkspaceDesignDeleteModal: (designId: string, workspaceId: string) => void; - handleBulkWorkspaceDesignDeleteModal: ( - designs: Pattern[], - modalRef: React.RefObject<any>, - workspaceName: string, - workspaceId: string - ) => void; - handlePublish: (publishModal: PublishModalState, data: any) => void; - publishModalHandler: any; - handleUnpublishModal: (design: Pattern, modalRef: React.RefObject<any>) => void; - handleDownload?: (design: Pattern) => void; - handleBulkUnpublishModal: ( - selected: any, - designs: Pattern[], - modalRef: React.RefObject<any> - ) => void; - handleShowDetails: (designId: string, designName: string) => void; - getDownloadUrl?: (id: string) => string; - GenericRJSFModal: any; - isDownloadAllowed: boolean; - isCopyLinkAllowed: boolean; - isDeleteAllowed: boolean; - isPublishAllowed: boolean; - isUnpublishAllowed: boolean; - isAssignAllowed: boolean; - isRemoveAllowed: boolean; - handleOpenInDesigner?: (designId: string, designName: string) => void; - showPlaygroundActions?: boolean; - handleVisibilityChange?: (id: string, visibility: VIEW_VISIBILITY) => void; - currentUserId?: string; -} - -export interface PublishModalState { - open: boolean; - pattern: Partial<Pattern>; -} - -export interface TableColumn { - name: string; - label: string; - [key: string]: any; -} - -const DesignTable: React.FC<DesignTableProps> = ({ - workspaceId, - workspaceName, - meshModelModelsData, - handleBulkUnpublishModal, - handleBulkWorkspaceDesignDeleteModal, - handleClone, - handleCopyUrl, - handlePublish, - handleDownload, - getDownloadUrl, - handleShowDetails, - handleUnpublishModal, - handleWorkspaceDesignDeleteModal, - publishModalHandler, - isCopyLinkAllowed, - isDeleteAllowed, - isDownloadAllowed, - isPublishAllowed, - isUnpublishAllowed, - useAssignDesignToWorkspaceMutation, - useUnassignDesignFromWorkspaceMutation, - GenericRJSFModal, - isAssignAllowed, - isRemoveAllowed, - useGetWorkspaceDesignsQuery, - handleOpenInDesigner, - showPlaygroundActions = true, - handleVisibilityChange, - currentUserId -}) => { - const [publishModal, setPublishModal] = useState<PublishModalState>({ - open: false, - pattern: {} - }); - - const modalRef = useRef(null); - const [search, setSearch] = useState(''); - const [page, setPage] = useState<number>(0); - const [pageSize, setPageSize] = useState<number>(10); - const [sortOrder, setSortOrder] = useState<string>('updated_at desc'); - const [isSearchExpanded, setIsSearchExpanded] = useState(false); - - const { data: designsOfWorkspace, refetch: refetchWorkspaceDesigns } = - useGetWorkspaceDesignsQuery( - { - workspaceId, - page: page, - pagesize: pageSize, - search: search, - order: sortOrder, - expandUser: true - }, - { - skip: !workspaceId - } - ); - const handlePublishModal = (pattern: Pattern): void => { - const result = publishModalHandler(pattern); - setPublishModal({ - open: true, - pattern: result - }); - }; - const theme = useTheme(); - const columns = createDesignsColumnsConfig({ - handleDeleteModal: (design) => () => handleWorkspaceDesignDeleteModal(design.id, workspaceId), - handlePublishModal, - handleUnpublishModal: (design) => () => handleUnpublishModal(design, modalRef), - handleCopyUrl, - handleClone, - handleShowDetails, - handleDownload, - getDownloadUrl, - isCopyLinkAllowed, - isDeleteAllowed, - isDownloadAllowed, - isPublishAllowed, - isUnpublishAllowed, - isFromWorkspaceTable: true, - isRemoveAllowed, - theme, - handleOpenInDesigner, - showPlaygroundActions, - handleVisibilityChange, - currentUserId, - refetchWorkspaceDesigns - }); - - const [publishSchema, setPublishSchema] = useState<{ - rjsfSchema: any; - uiSchema: any; - }>({ - rjsfSchema: {}, - uiSchema: {} - }); - - const { width } = useWindowDimensions(); - const [columnVisibility, setColumnVisibility] = useState<Record<string, boolean>>(() => { - const showCols = updateVisibleColumns(designColumnsColViews, width); - const initialVisibility: Record<string, boolean> = {}; - columns.forEach((col) => { - initialVisibility[col.name] = showCols[col.name]; - }); - return initialVisibility; - }); - - useEffect(() => { - const fetchSchema = async () => { - const modelNames = _.uniq( - meshModelModelsData?.models?.map((model: any) => model.display_name) - ); - const modifiedSchema = _.set( - _.cloneDeep(publishCatalogItemSchema), - 'properties.compatibility.items.enum', - modelNames - ); - setPublishSchema({ - rjsfSchema: modifiedSchema, - uiSchema: publishCatalogItemSchema - }); - }; - fetchSchema(); - }, [meshModelModelsData]); - - const designAssignment = useDesignAssignment({ - workspaceId, - useAssignDesignToWorkspaceMutation, - useUnassignDesignFromWorkspaceMutation, - useGetDesignsOfWorkspaceQuery: useGetWorkspaceDesignsQuery, - isDesignsVisible: isAssignAllowed || isRemoveAllowed - }); - - const tableHeaderContent = ( - <TableHeader style={{ padding: '1rem' }}> - <Box - style={{ - marginRight: '0rem', - width: '100%', - justifyContent: 'end', - display: 'flex', - alignItems: 'center' - }} - > - <SearchBar - onSearch={(value) => { - setSearch(value); - }} - onClear={() => { - setSearch(''); - }} - expanded={isSearchExpanded} - setExpanded={setIsSearchExpanded} - placeholder="Search designs..." - /> - <CustomColumnVisibilityControl - columns={columns} - customToolsProps={{ - columnVisibility, - setColumnVisibility - }} - id={'catalog-table'} - /> - <L5EditIcon - onClick={designAssignment.handleAssignModal} - disabled={!isAssignAllowed} - title="Assign Designs" - /> - </Box> - </TableHeader> - ); - - return ( - <> - {tableHeaderContent} - <CatalogDesignsTable - patterns={designsOfWorkspace?.designs || []} - totalCount={designsOfWorkspace?.total_count} - sortOrder={sortOrder} - setSortOrder={setSortOrder} - pageSize={pageSize} - setPageSize={setPageSize} - page={page} - setPage={setPage} - columnVisibility={columnVisibility} - colViews={designColumnsColViews} - columns={columns} - handleBulkpatternsDataUnpublishModal={handleBulkUnpublishModal} - handleBulkDeleteModal={(designs, modalRef) => - handleBulkWorkspaceDesignDeleteModal(designs, modalRef, workspaceName, workspaceId) - } - filter={'my-designs'} - setSearch={setSearch} - /> - <AssignmentModal - open={designAssignment.assignModal} - onClose={designAssignment.handleAssignModalClose} - title={`Assign Designs to ${workspaceName}`} - headerIcon={<DesignIcon height="40" width="40" />} - name="Designs" - assignableData={designAssignment.data} - handleAssignedData={designAssignment.handleAssignData} - originalAssignedData={designAssignment.workspaceData} - emptyStateIcon={<DesignIcon height="5rem" width="5rem" secondaryFill={'#808080'} />} - handleAssignablePage={designAssignment.handleAssignablePage} - handleAssignedPage={designAssignment.handleAssignedPage} - originalLeftCount={designAssignment.data?.length || 0} - originalRightCount={designAssignment.assignedItems?.length || 0} - onAssign={designAssignment.handleAssign} - disableTransfer={designAssignment.disableTransferButton} - helpText={`Assign Designs to ${workspaceName}`} - isAssignAllowed={isAssignAllowed} - isRemoveAllowed={isRemoveAllowed} - showViews={false} - /> - <GenericRJSFModal - open={publishModal.open} - handleClose={() => setPublishModal({ open: false, pattern: {} })} - schema={publishSchema?.rjsfSchema} - uiSchema={publishSchema?.uiSchema} - handleSubmit={(data: any) => handlePublish(publishModal, data)} - title={`Publish ${publishModal?.pattern?.name}`} - buttonTitle="Publish" - /> - <PromptComponent ref={modalRef} /> - </> - ); -}; - -export default DesignTable; diff --git a/src/custom/Workspaces/EnvironmentTable.tsx b/src/custom/Workspaces/EnvironmentTable.tsx deleted file mode 100644 index 83dd67011..000000000 --- a/src/custom/Workspaces/EnvironmentTable.tsx +++ /dev/null @@ -1,324 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; -import { MUIDataTableColumn, MUIDataTableMeta } from 'mui-datatables'; -import React, { useState } from 'react'; -import { Accordion, AccordionDetails, AccordionSummary, Typography } from '../../base'; -import { DeleteIcon, EnvironmentIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { CustomColumnVisibilityControl } from '../CustomColumnVisibilityControl'; -import { CustomTooltip } from '../CustomTooltip'; -import { ConditionalTooltip } from '../Helpers/CondtionalTooltip'; -import { useWindowDimensions } from '../Helpers/Dimension'; -import { - ColView, - updateVisibleColumns -} from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column'; -import ResponsiveDataTable, { IconWrapper } from '../ResponsiveDataTable'; -import SearchBar from '../SearchBar'; -import { TooltipIcon } from '../TooltipIconButton'; -import AssignmentModal from './AssignmentModal'; -import useEnvironmentAssignment from './hooks/useEnvironmentAssignment'; -import { - CellStyle, - CustomBodyRenderStyle, - L5EditIcon, - TableHeader, - TableRightActionHeader -} from './styles'; - -interface EnvironmentTableProps { - workspaceId: string; - workspaceName: string; - useGetEnvironmentsOfWorkspaceQuery: any; - useUnassignEnvironmentFromWorkspaceMutation: any; - useAssignEnvironmentToWorkspaceMutation: any; - isRemoveAllowed: boolean; - isAssignAllowed: boolean; -} - -const colViews: ColView[] = [ - ['id', 'na'], - ['name', 'xs'], - ['description', 'm'], - ['organization_id', 'l'], - ['created_at', 'na'], - ['updated_at', 'xl'], - ['actions', 'xs'] -]; - -export const ResizableDescriptionCell = ({ value }: { value: string }) => ( - <div style={{ position: 'relative', height: '20px' }}> - <CustomBodyRenderStyle> - <CellStyle> - <CustomTooltip title={value} placement="top-start"> - <span style={{ cursor: 'pointer' }}>{value}</span> - </CustomTooltip> - </CellStyle> - </CustomBodyRenderStyle> - </div> -); - -const EnvironmentTable: React.FC<EnvironmentTableProps> = ({ - workspaceId, - workspaceName, - isRemoveAllowed, - useGetEnvironmentsOfWorkspaceQuery, - useUnassignEnvironmentFromWorkspaceMutation, - useAssignEnvironmentToWorkspaceMutation, - isAssignAllowed -}) => { - const [expanded, setExpanded] = useState<boolean>(false); - const handleAccordionChange = (e: React.SyntheticEvent) => { - e.stopPropagation(); - setExpanded(!expanded); - }; - const [search, setSearch] = useState(''); - const [isSearchExpanded, setIsSearchExpanded] = useState(false); - const [page, setPage] = useState<number>(0); - const [pageSize, setPageSize] = useState<number>(10); - const [sortOrder, setSortOrder] = useState<string>('updated_at desc'); - const { data: environmentsOfWorkspace } = useGetEnvironmentsOfWorkspaceQuery({ - workspaceId, - page: page, - pageSize: pageSize, - search: search, - order: sortOrder - }); - const { width } = useWindowDimensions(); - const theme = useTheme(); - const [unassignEnvironmentFromWorkspace] = useUnassignEnvironmentFromWorkspaceMutation(); - const columns: MUIDataTableColumn[] = [ - { - name: 'id', - label: 'ID', - options: { - filter: false, - customBodyRender: (value: string) => <ConditionalTooltip value={value} maxLength={10} /> - } - }, - { - name: 'name', - label: 'Name', - options: { - filter: false, - sort: true, - searchable: true, - customBodyRender: (value: string) => <ConditionalTooltip value={value} maxLength={10} /> - } - }, - { - name: 'organization_id', - label: 'Organization ID', - options: { - filter: false, - sort: false, - searchable: false - } - }, - - { - name: 'description', - label: 'Description', - options: { - filter: false, - sort: true, - searchable: true, - customBodyRender: (value: string) => <ResizableDescriptionCell value={value} /> - } - }, - { - name: 'created_at', - label: 'Created At', - options: { - filter: false, - sort: true, - searchable: true, - setCellHeaderProps: () => { - return { align: 'center' }; - } - } - }, - { - name: 'updated_at', - label: 'Updated At', - options: { - filter: false, - sort: true, - searchable: true, - setCellHeaderProps: () => { - return { align: 'center' }; - } - } - }, - { - name: 'actions', - label: 'Actions', - options: { - filter: false, - sort: false, - searchable: false, - customBodyRender: (_: string, tableMeta: MUIDataTableMeta) => ( - <IconWrapper disabled={!isRemoveAllowed}> - <TooltipIcon - id={`delete_team-${tableMeta.rowIndex}`} - title="Remove Environment" - onClick={() => { - isRemoveAllowed && - unassignEnvironmentFromWorkspace({ - workspaceId, - environmentId: tableMeta.rowData[0] - }); - }} - iconType="delete" - > - <DeleteIcon height={28} width={28} fill={theme.palette.icon.default} /> - </TooltipIcon> - </IconWrapper> - ) - } - } - ]; - - const environmentAssignment = useEnvironmentAssignment({ - workspaceId, - useGetEnvironmentsOfWorkspaceQuery, - useUnassignEnvironmentFromWorkspaceMutation, - useAssignEnvironmentToWorkspaceMutation, - isEnvironmentsVisible: isAssignAllowed || isRemoveAllowed - }); - - const [columnVisibility, setColumnVisibility] = useState<Record<string, boolean>>(() => { - const showCols = updateVisibleColumns(colViews, width); - const initialVisibility: Record<string, boolean> = {}; - columns.forEach((col) => { - initialVisibility[col.name] = showCols[col.name]; - }); - return initialVisibility; - }); - - const options = { - filter: false, - responsive: 'standard', - selectableRows: 'none', - count: environmentsOfWorkspace?.total_count, - rowsPerPage: pageSize, - page, - elevation: 0, - sortOrder: { - name: sortOrder.split(' ')[0], - direction: sortOrder.split(' ')[1] - }, - serverSide: true, - onTableChange: (action: string, tableState: any) => { - const sortInfo = tableState.announceText ? tableState.announceText.split(' : ') : []; - let order = ''; - if (tableState.activeColumn) { - order = `${columns[tableState.activeColumn].name} desc`; - } - - switch (action) { - case 'changePage': - setPage(tableState.page); - break; - case 'changeRowsPerPage': - setPageSize(tableState.rowsPerPage); - break; - case 'search': - setSearch(tableState.searchText !== null ? tableState.searchText : ''); - break; - case 'sort': - if (sortInfo.length == 2) { - if (sortInfo[1] === 'ascending') { - order = `${columns[tableState.activeColumn].name} asc`; - } else { - order = `${columns[tableState.activeColumn].name} desc`; - } - } - if (order !== sortOrder) { - setSortOrder(order); - } - break; - } - } - }; - const [tableCols, updateCols] = useState(columns); - - return ( - <> - <Accordion expanded={expanded} onChange={handleAccordionChange} style={{ margin: 0 }}> - <AccordionSummary - expandIcon={<ExpandMoreIcon />} - sx={{ - backgroundColor: 'background.paper' - }} - > - <TableHeader> - <Typography variant="body1" fontWeight={'bold'}> - Assigned Environments - </Typography> - <TableRightActionHeader> - <SearchBar - onSearch={(value) => { - setSearch(value); - }} - onClear={() => { - setSearch(''); - }} - expanded={isSearchExpanded} - setExpanded={setIsSearchExpanded} - placeholder="Search workspaces..." - /> - <CustomColumnVisibilityControl - columns={columns} - customToolsProps={{ - columnVisibility, - setColumnVisibility - }} - id={'environments-table'} - /> - <L5EditIcon - onClick={environmentAssignment.handleAssignModal} - disabled={!isAssignAllowed} - title="Assign Environments" - /> - </TableRightActionHeader> - </TableHeader> - </AccordionSummary> - <AccordionDetails style={{ padding: 0 }}> - <ResponsiveDataTable - columns={columns} - data={environmentsOfWorkspace?.environments} - options={options} - colViews={colViews} - tableCols={tableCols} - updateCols={updateCols} - columnVisibility={columnVisibility} - /> - </AccordionDetails> - </Accordion> - - <AssignmentModal - open={environmentAssignment.assignModal} - onClose={environmentAssignment.handleAssignModalClose} - title={`Assign Environments to ${workspaceName}`} - headerIcon={<EnvironmentIcon height="40" width="40" fill={'white'} />} - name="Environments" - assignableData={environmentAssignment.data} - handleAssignedData={environmentAssignment.handleAssignData} - originalAssignedData={environmentAssignment.workspaceData} - emptyStateIcon={<EnvironmentIcon height="5rem" width="5rem" fill={'#808080'} />} - handleAssignablePage={environmentAssignment.handleAssignablePage} - handleAssignedPage={environmentAssignment.handleAssignedPage} - originalLeftCount={environmentAssignment.data?.length || 0} - originalRightCount={environmentsOfWorkspace?.total_count || 0} - onAssign={environmentAssignment.handleAssign} - disableTransfer={environmentAssignment.disableTransferButton} - helpText={`Assign Environments to ${workspaceName}`} - isAssignAllowed={isAssignAllowed} - isRemoveAllowed={isRemoveAllowed} - /> - </> - ); -}; - -export default EnvironmentTable; diff --git a/src/custom/Workspaces/WorkspaceCard.tsx b/src/custom/Workspaces/WorkspaceCard.tsx deleted file mode 100644 index db4ad11a9..000000000 --- a/src/custom/Workspaces/WorkspaceCard.tsx +++ /dev/null @@ -1,423 +0,0 @@ -import { Grid2, useTheme } from '@mui/material'; -import { Backdrop, CircularProgress } from '../../base'; - -import { getRelativeTime } from '../../utils'; -import { FlipCard } from '../FlipCard'; -import { RecordRow, RedirectButton, TransferButton } from './WorkspaceTransferButton'; -import { - AllocationColumnGrid, - AllocationWorkspace, - BulkSelectCheckbox, - CardBackActionsGrid, - CardBackTitleGrid, - CardBackTopGrid, - CardBackWrapper, - CardFrontWrapper, - CardTitle, - DateColumnGrid, - DateGrid, - DateLabel, - DescriptionLabel, - EmptyDescription, - L5DeleteIcon, - L5EditIcon, - RecentActivityGrid, - RecentActivityTitle, - WorkspaceCardGrid -} from './styles'; - -interface WorkspaceDetails { - id: number; - name: string; - description: string; - deleted_at: { Valid: boolean }; - updated_at: string; - created_at: string; -} - -type Activity = { - description: string; - first_name: string; - created_at: string; -}; - -interface CardFrontProps { - onFlip: () => void; - name: string; - description: string; - environmentsCount: number; - onAssignEnvironment: () => void; - teamsCount: number; - onAssignTeam: () => void; - designAndViewOfWorkspaceCount: number; - onAssignDesign: () => void; - isEnvironmentAllowed: boolean; - isTeamAllowed: boolean; - isDesignAllowed: boolean; - isViewAllowed: boolean; - isViewsVisible: boolean; - isDesignsVisible: boolean; - isTeamsVisible: boolean; - isEnvironmentsVisible: boolean; -} - -interface CardBackProps { - onFlipBack: () => void; - onSelect: () => void; - name: string; - onEdit: () => void; - onDelete: () => void; - selectedWorkspaces: number[]; - workspaceId: number; - loadingEvents: boolean; - recentActivities: Activity[]; - updatedDate: string; - createdDate: string; - deleted: boolean; - isDeleteWorkspaceAllowed: boolean; - isEditWorkspaceAllowed: boolean; -} - -interface WorkspaceCardProps { - workspaceDetails: WorkspaceDetails; - onDelete: () => void; - onEdit: () => void; - onSelect: () => void; - selectedWorkspaces: number[]; - onAssignTeam: () => void; - onAssignEnvironment: () => void; - onAssignDesign: () => void; - recentActivities: Activity[]; - onFlip: () => void; - onFlipBack: () => void; - loadingEvents: boolean; - teamsOfWorkspaceCount: number; - environmentsOfWorkspaceCount: number; - designAndViewOfWorkspaceCount: number; - isEnvironmentAllowed: boolean; - isTeamAllowed: boolean; - isDesignAllowed: boolean; - isViewAllowed: boolean; - isDeleteWorkspaceAllowed: boolean; - isEditWorkspaceAllowed: boolean; - isViewsVisible: boolean; - isDesignsVisible: boolean; - isTeamsVisible: boolean; - isEnvironmentsVisible: boolean; -} - -/** - * Renders a Workspace card component. - * - * @param {Object} props - The component props. - * @param {Object} props.environmentDetails - The details of the workspace. - * @param {string} props.environmentDetails.name - The name of the workspace. - * @param {string} props.environmentDetails.description - The description of the workspace. - * @param {Function} props.onDelete - Function to delete the workspace. - * @param {Function} props.onEdit - Function to edit the workspace. - * @param {Function} props.onSelect - Function to select workspace for bulk actions. - * @param {Array} props.selectedWorkspaces - Selected workspace list for delete. - * @param {Function} props.onAssignTeam - Function to open team assignment modal open. - * @param {Function} props.onAssignDesign - Function to open design assignment modal open. - * @param {Array} props.latestActivity - List of latest activity. - * @param {Function} props.onFlip - Click event to trigger when card flip. - * @param {Function} props.onFlipBack - Click event to trigger when card flip back. - * @param {Boolean} props.loadingEvents - Loading state of the events. - * @param {Number} props.teamsOfWorkspaceCount - Count of teams assigned to the workspace. - * @param {Number} props.environmentsOfWorkspaceCount - Count of environments assigned to the workspace. - * @param {Number} props.designAndViewOfWorkspaceCount - Count of designs/views assigned to the workspace. - * @param {Boolean} props.isEnvironmentAllowed - Flag to check if environment assignment is allowed. - * @param {Boolean} props.isTeamAllowed - Flag to check if team assignment is allowed. - * @param {Boolean} props.isDesignAndViewAllowed - Flag to check if design assignment is allowed. - * @param {Boolean} props.isDeleteWorkspaceAllowed - Flag to check if workspace deletion is allowed. - * @param {Boolean} props.isEditWorkspaceAllowed - Flag to check if workspace edit is allowed. - * @returns {React.ReactElement} The Workspace card component. - * - */ - -const WorkspaceCard = ({ - workspaceDetails, - onDelete, - onEdit, - onSelect, - selectedWorkspaces, - onAssignTeam, - onAssignEnvironment, - onAssignDesign, - recentActivities, - onFlip, - onFlipBack, - loadingEvents, - teamsOfWorkspaceCount, - environmentsOfWorkspaceCount, - designAndViewOfWorkspaceCount, - isEnvironmentAllowed, - isTeamAllowed, - isDesignAllowed, - isViewAllowed, - isDeleteWorkspaceAllowed, - isEditWorkspaceAllowed, - isViewsVisible, - isDesignsVisible, - isEnvironmentsVisible, - isTeamsVisible -}: WorkspaceCardProps) => { - const deleted = workspaceDetails.deleted_at.Valid; - return ( - <FlipCard - disableFlip={selectedWorkspaces.includes(workspaceDetails.id) ? true : false} - padding={'0'} - > - <CardFront - onFlip={onFlip} - name={workspaceDetails?.name} - description={workspaceDetails?.description} - environmentsCount={environmentsOfWorkspaceCount} - onAssignEnvironment={onAssignEnvironment} - teamsCount={teamsOfWorkspaceCount} - onAssignTeam={onAssignTeam} - designAndViewOfWorkspaceCount={designAndViewOfWorkspaceCount} - onAssignDesign={onAssignDesign} - isEnvironmentAllowed={isEnvironmentAllowed} - isTeamAllowed={isTeamAllowed} - isDesignAllowed={isDesignAllowed} - isViewAllowed={isViewAllowed} - isViewsVisible={isViewsVisible} - isDesignsVisible={isDesignsVisible} - isEnvironmentsVisible={isEnvironmentsVisible} - isTeamsVisible={isTeamsVisible} - /> - - <CardBack - onFlipBack={onFlipBack} - onSelect={onSelect} - name={workspaceDetails?.name} - onEdit={onEdit} - onDelete={onDelete} - selectedWorkspaces={selectedWorkspaces} - workspaceId={workspaceDetails?.id} - loadingEvents={loadingEvents} - recentActivities={recentActivities} - updatedDate={workspaceDetails?.updated_at} - createdDate={workspaceDetails?.created_at} - deleted={deleted} - isDeleteWorkspaceAllowed={isDeleteWorkspaceAllowed} - isEditWorkspaceAllowed={isEditWorkspaceAllowed} - /> - </FlipCard> - ); -}; - -export default WorkspaceCard; - -const CardFront = ({ - onFlip, - name, - description, - environmentsCount, - onAssignEnvironment, - teamsCount, - onAssignTeam, - designAndViewOfWorkspaceCount, - onAssignDesign, - isEnvironmentAllowed, - isTeamAllowed, - isDesignAllowed, - isViewAllowed, - isViewsVisible, - isDesignsVisible, - isEnvironmentsVisible, - isTeamsVisible -}: CardFrontProps) => { - return ( - <CardFrontWrapper elevation={2} onClick={onFlip}> - <WorkspaceCardGrid> - <CardTitle variant="body2" onClick={(e) => e.stopPropagation()}> - {name} - </CardTitle> - </WorkspaceCardGrid> - <Grid2> - {description ? ( - <DescriptionLabel onClick={(e) => e.stopPropagation()} sx={{ maxHeight: '105px' }}> - {description} - </DescriptionLabel> - ) : ( - <EmptyDescription onClick={(e) => e.stopPropagation()}>No description</EmptyDescription> - )} - </Grid2> - <Grid2 - sx={{ - display: 'flex', - flexDirection: { xs: 'column', sm: 'row' }, - pt: { xs: 1, md: 2 }, - gap: 1 - }} - > - {isEnvironmentsVisible && ( - <AllocationColumnGrid> - <AllocationWorkspace onClick={(e) => e.stopPropagation()}> - {isEnvironmentAllowed ? ( - <TransferButton - title="Environments" - count={environmentsCount} - onAssign={onAssignEnvironment} - disabled={!isEnvironmentAllowed} - /> - ) : ( - <RedirectButton title="Environment" count={environmentsCount} /> - )} - <RedirectButton title="Connections" count={0} /> - </AllocationWorkspace> - </AllocationColumnGrid> - )} - - {isTeamsVisible && ( - <AllocationColumnGrid> - <AllocationWorkspace onClick={(e) => e.stopPropagation()}> - {isTeamAllowed ? ( - <TransferButton - title="Teams" - count={teamsCount} - onAssign={onAssignTeam} - disabled={!isTeamAllowed} - /> - ) : ( - <RedirectButton title="Teams" count={teamsCount} /> - )} - <RedirectButton title="Users" count={0} /> - </AllocationWorkspace> - </AllocationColumnGrid> - )} - - {isDesignsVisible && !isViewsVisible && ( - <AllocationColumnGrid> - <AllocationWorkspace onClick={(e) => e.stopPropagation()}> - {isDesignAllowed ? ( - <TransferButton - title="Designs" - count={designAndViewOfWorkspaceCount} - onAssign={onAssignDesign} - disabled={!isDesignAllowed} - /> - ) : ( - <RedirectButton title="Designs" count={designAndViewOfWorkspaceCount} /> - )} - <RedirectButton title="Deploys" count={0} /> - </AllocationWorkspace> - </AllocationColumnGrid> - )} - - {isDesignsVisible && isViewsVisible && ( - <AllocationColumnGrid> - <AllocationWorkspace onClick={(e) => e.stopPropagation()}> - {isDesignAllowed && isViewAllowed ? ( - <TransferButton - title="Designs/Views" - count={designAndViewOfWorkspaceCount} - onAssign={onAssignDesign} - disabled={!(isDesignAllowed && isViewAllowed)} - /> - ) : ( - <RedirectButton title="Designs/Views" count={designAndViewOfWorkspaceCount} /> - )} - <RedirectButton title="Deploys" count={0} /> - </AllocationWorkspace> - </AllocationColumnGrid> - )} - </Grid2> - </CardFrontWrapper> - ); -}; - -const CardBack = ({ - onFlipBack, - onSelect, - name, - onEdit, - onDelete, - selectedWorkspaces, - workspaceId, - loadingEvents, - recentActivities, - updatedDate, - createdDate, - deleted, - isDeleteWorkspaceAllowed, - isEditWorkspaceAllowed -}: CardBackProps) => { - const isWorkspaceSelected = selectedWorkspaces?.includes(workspaceId); - const isEditButtonDisabled = isWorkspaceSelected ? true : !isEditWorkspaceAllowed; - const isDeleteButtonDisabled = isWorkspaceSelected ? true : !isDeleteWorkspaceAllowed; - - const theme = useTheme(); - return ( - <CardBackWrapper elevation={2} onClick={onFlipBack}> - <CardBackTopGrid size={12}> - <CardBackTitleGrid size={6}> - <BulkSelectCheckbox - onClick={(e) => e.stopPropagation()} - onChange={onSelect} - disabled={deleted ? true : !isDeleteWorkspaceAllowed} - /> - <CardTitle - sx={{ color: theme.palette.background.constant?.white }} - variant="body2" - onClick={(e) => e.stopPropagation()} - > - {name} - </CardTitle> - </CardBackTitleGrid> - <CardBackActionsGrid size={6}> - <L5EditIcon - onClick={onEdit} - disabled={isEditButtonDisabled} - style={{ fill: theme.palette.background.constant?.white }} - bulk={true} - /> - <L5DeleteIcon - onClick={onDelete} - style={{ fill: theme.palette.background.constant?.white }} - disabled={isDeleteButtonDisabled} - bulk={true} - /> - </CardBackActionsGrid> - </CardBackTopGrid> - <Grid2 sx={{ display: 'flex', alignItems: 'center', flexDirection: 'row' }}> - <RecentActivityTitle variant="body2">Recent Activity</RecentActivityTitle> - </Grid2> - <RecentActivityGrid> - {loadingEvents ? ( - <Backdrop sx={{ zIndex: '2010' }} open={loadingEvents}> - <CircularProgress - color="inherit" - style={{ color: theme.palette.background.constant?.white }} - /> - </Backdrop> - ) : ( - recentActivities?.map((activity, index) => { - return ( - <RecordRow - key={index} - title={activity?.description} - name={activity?.first_name} - date={activity?.created_at} - /> - ); - }) - )} - </RecentActivityGrid> - <DateGrid size={12}> - <DateColumnGrid size={6}> - <DateLabel onClick={(e) => e.stopPropagation()}> - Updated At: {getRelativeTime(updatedDate)} - </DateLabel> - </DateColumnGrid> - <DateColumnGrid size={6}> - <DateLabel onClick={(e) => e.stopPropagation()}> - Created At: {getRelativeTime(createdDate)} - </DateLabel> - </DateColumnGrid> - </DateGrid> - </CardBackWrapper> - ); -}; diff --git a/src/custom/Workspaces/WorkspaceContentMoveModal.tsx b/src/custom/Workspaces/WorkspaceContentMoveModal.tsx deleted file mode 100644 index 6eee55ab0..000000000 --- a/src/custom/Workspaces/WorkspaceContentMoveModal.tsx +++ /dev/null @@ -1,239 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ - -import React, { useContext, useState } from 'react'; -import { - Box, - Button, - CircularProgress, - Divider, - List, - ListItemButton, - ListItemText, - Typography -} from '../../base'; -import { EVENT_TYPES, RESOURCE_TYPE } from '../../constants/constants'; -import { OpenFileIcon } from '../../icons'; -import { styled } from '../../theme'; -import { Pattern } from '../CustomCatalog/CustomCard'; -import { Modal, ModalBody, ModalFooter, PrimaryActionButtons } from '../Modal'; - -interface WorkspaceContentMoveModalProps { - workspaceContentMoveModal: boolean; - setWorkspaceContentMoveModal: (open: boolean) => void; - currentWorkspace: any; - type: string; - selectedContent: any; - refetch?: () => void; - useGetWorkspacesQuery: any; - isCreateWorkspaceAllowed: boolean; - isMoveDesignAllowed: boolean; - isMoveViewAllowed: boolean; - assignDesignToWorkspace: (params: { workspaceId: string; designId: string }) => Promise<any>; - assignViewToWorkspace: (params: { workspaceId: string; viewId: string }) => Promise<any>; - WorkspaceModalContext: React.Context<any>; - notify: any; - router: any; - currentOrgId: string; -} - -interface Workspace { - id: string; - name: string; -} - -const WorkspaceItem = styled(ListItemButton)({ - borderRadius: '8px' -}); - -const CurrentWorkspaceSection = styled(Typography)(({ theme }) => ({ - marginBottom: '1rem', - color: theme.palette.text.secondary -})); - -const NoWorkspacesContainer = styled('div')(({ theme }) => ({ - padding: '1rem', - textAlign: 'center', - color: theme.palette.text.secondary, - border: `1px dashed ${theme.palette.border.strong}`, - borderRadius: '8px', - margin: '1rem 0', - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - gap: '1rem' -})); - -const getModalTitle = (type: string, selectedContent: any, multiSelectedContent: any[]): string => { - const itemCount = multiSelectedContent?.length || 1; - const resourceName = selectedContent?.name || itemCount; - const resourceType = type === RESOURCE_TYPE.DESIGN ? 'Design' : 'View'; - - return `Move ${resourceName} ${resourceType}${itemCount > 1 ? 's' : ''}`; -}; - -const WorkspaceContentMoveModal: React.FC<WorkspaceContentMoveModalProps> = ({ - workspaceContentMoveModal, - setWorkspaceContentMoveModal, - currentWorkspace, - type, - selectedContent, - refetch, - useGetWorkspacesQuery, - isCreateWorkspaceAllowed, - isMoveDesignAllowed, - isMoveViewAllowed, - assignDesignToWorkspace, - assignViewToWorkspace, - WorkspaceModalContext, - notify, - router, - currentOrgId -}) => { - const { setMultiSelectedContent, multiSelectedContent, closeModal } = - useContext(WorkspaceModalContext); - const { data: workspaceData, isLoading } = useGetWorkspacesQuery( - { - page: 0, - pagesize: 'all', - order: 'updated_at desc', - orgID: currentOrgId - }, - { - skip: !currentOrgId - } - ); - - const filteredWorkspaces = workspaceData?.workspaces?.filter( - (workspace: Workspace) => workspace.id !== currentWorkspace.id - ); - const [selectedWorkspaceForMove, setSelectedWorkspaceForMove] = useState<Workspace | null>(null); - - const handleMove = async (): Promise<void> => { - setWorkspaceContentMoveModal(false); - - try { - const moveDesign = async (designId: string): Promise<void> => { - await assignDesignToWorkspace({ - workspaceId: selectedWorkspaceForMove!.id, - designId - }); - }; - - const moveView = async (viewId: string): Promise<void> => { - await assignViewToWorkspace({ - workspaceId: selectedWorkspaceForMove!.id, - viewId - }); - }; - - if (RESOURCE_TYPE.DESIGN === type) { - if (multiSelectedContent.length > 0) { - await Promise.all(multiSelectedContent.map((design: Pattern) => moveDesign(design.id))); - setMultiSelectedContent([]); - } - if (selectedContent) { - await moveDesign(selectedContent.id); - } - } else { - if (multiSelectedContent.length > 0) { - await Promise.all(multiSelectedContent.map((view: { id: string }) => moveView(view.id))); - setMultiSelectedContent([]); - } - if (selectedContent) { - await moveView(selectedContent.id); - } - } - if (refetch) { - refetch(); - } - notify({ - message: `Successfully moved ${type === RESOURCE_TYPE.DESIGN ? 'design' : 'view'}${multiSelectedContent.length > 1 ? 's' : ''} to ${selectedWorkspaceForMove!.name}`, - event_type: EVENT_TYPES.SUCCESS - }); - } catch (error) { - notify({ - message: `Failed to move ${type === RESOURCE_TYPE.DESIGN ? 'design' : 'view'}. Please try again.`, - event_type: EVENT_TYPES.ERROR - }); - } - }; - - const handleCreateWorkspace = (): void => { - closeModal(); - setWorkspaceContentMoveModal(false); - router.push('/management/workspaces'); - }; - - const isMoveAllowed = type === RESOURCE_TYPE.DESIGN ? isMoveDesignAllowed : isMoveViewAllowed; - - return ( - <Modal - open={workspaceContentMoveModal} - headerIcon={<OpenFileIcon />} - closeModal={() => setWorkspaceContentMoveModal(false)} - title={getModalTitle(type, selectedContent, multiSelectedContent)} - > - <ModalBody> - <CurrentWorkspaceSection> - Current Workspace: <strong>{currentWorkspace.name}</strong> - </CurrentWorkspaceSection> - <Divider /> - <Box display="flex" flexDirection="column" marginTop={'1rem'}> - {isLoading ? ( - <CircularProgress size={24} /> - ) : !filteredWorkspaces?.length ? ( - <NoWorkspacesContainer> - <Typography>No other workspaces available to move content to.</Typography> - <Button - variant="contained" - color="primary" - onClick={handleCreateWorkspace} - disabled={!isCreateWorkspaceAllowed} - > - Create Workspace - </Button> - </NoWorkspacesContainer> - ) : ( - <> - <Typography style={{ marginBottom: '0.5rem' }}> - Select destination workspace - </Typography> - - <List> - {filteredWorkspaces.map((workspace: Workspace) => ( - <WorkspaceItem - key={workspace.id} - selected={selectedWorkspaceForMove?.id === workspace.id} - onClick={() => isMoveAllowed && setSelectedWorkspaceForMove(workspace)} - disabled={!isMoveAllowed} - > - <ListItemText primary={workspace.name} /> - </WorkspaceItem> - ))} - </List> - </> - )} - </Box> - </ModalBody> - <ModalFooter variant="filled"> - <PrimaryActionButtons - primaryText={'Move'} - secondaryText="Cancel" - primaryButtonProps={{ - onClick: handleMove, - disabled: - isLoading || - !selectedWorkspaceForMove || - !filteredWorkspaces?.length || - !isMoveAllowed - }} - secondaryButtonProps={{ - onClick: () => setWorkspaceContentMoveModal(false) - }} - /> - </ModalFooter> - </Modal> - ); -}; - -export default WorkspaceContentMoveModal; diff --git a/src/custom/Workspaces/WorkspaceEnvironmentSelection.tsx b/src/custom/Workspaces/WorkspaceEnvironmentSelection.tsx deleted file mode 100644 index 6ece1277b..000000000 --- a/src/custom/Workspaces/WorkspaceEnvironmentSelection.tsx +++ /dev/null @@ -1,179 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/ban-ts-comment */ -import { FunctionComponent } from 'react'; -import { Autocomplete, Chip, TextField } from '../../base'; - -interface Environment { - id: string; - name: string; -} - -interface EnvironmentOption { - label: string; - value: string; -} - -interface WorkspaceEnvironmentSelectionProps { - workspaceId: string; - useAssignEnvironmentToWorkspaceMutation: any; - useGetEnvironmentsOfWorkspaceQuery: any; - useUnassignEnvironmentFromWorkspaceMutation: any; - useNotificationHandlers: () => { - handleSuccess: (message: string) => void; - handleError: (message: string) => void; - }; - isAssignedEnvironmentAllowed: boolean; -} - -const WorkspaceEnvironmentSelection: FunctionComponent<WorkspaceEnvironmentSelectionProps> = ({ - workspaceId, - useAssignEnvironmentToWorkspaceMutation, - useGetEnvironmentsOfWorkspaceQuery, - useUnassignEnvironmentFromWorkspaceMutation, - useNotificationHandlers, - isAssignedEnvironmentAllowed -}) => { - const { handleSuccess, handleError } = useNotificationHandlers(); - - const { data: environmentsResponse, isLoading } = useGetEnvironmentsOfWorkspaceQuery({ - workspaceId, - page: 0, - pagesize: 'all', - filter: '{"assigned":false}' - }); - - const { data: environmentsOfWorkspace, isLoading: isEnvLoading } = - useGetEnvironmentsOfWorkspaceQuery({ - workspaceId, - page: 0, - pagesize: 'all' - }); - - const _environmentOptions: EnvironmentOption[] = - environmentsResponse?.environments?.map((env: Environment) => ({ - label: env.name, - value: env.id - })) || []; - - const _environmentValues: EnvironmentOption[] = - environmentsOfWorkspace?.environments?.map((env: Environment) => ({ - label: env.name, - value: env.id - })) || []; - - const [assignEnvironmentToWorkspace] = useAssignEnvironmentToWorkspaceMutation(); - const [unassignEnvironmentFromWorkspace] = useUnassignEnvironmentFromWorkspaceMutation(); - - const handleEnvironmentSelect = ( - selectedValues: EnvironmentOption[], - unselectedValues: EnvironmentOption[] - ): void => { - const selectedEnvs = selectedValues.map((env) => env.value); - const unselectedEnvs = unselectedValues.map((env) => env.value); - - if (unselectedEnvs.length > 0) { - unselectedEnvs.forEach((envId) => { - // Find environment name for the unassigned environment - const envName = - environmentsOfWorkspace?.environments?.find((env: Environment) => env.id === envId) - ?.name || 'Unknown'; - - unassignEnvironmentFromWorkspace({ - workspaceId, - environmentId: envId - }) - .unwrap() - .then(() => handleSuccess(`Environment "${envName}" unassigned`)) - .catch((error: { data: string }) => - handleError(`Environment "${envName}" Unassign Error: ${error?.data}`) - ); - }); - return; - } - - if (selectedEnvs.length > 0) { - selectedEnvs.forEach((envId) => { - if (_environmentValues.find((env) => env.value === envId)) { - return; - } - - // Find environment name for the assigned environment - const envName = - environmentsResponse?.environments?.find((env: Environment) => env.id === envId)?.name || - 'Unknown'; - - assignEnvironmentToWorkspace({ - workspaceId, - environmentId: envId - }) - .unwrap() - .then(() => handleSuccess(`Environment "${envName}" assigned`)) - .catch((error: { data: string }) => - handleError(`Environment "${envName}" Assign Error: ${error?.data}`) - ); - }); - return; - } - }; - - // Handle select change - const handleChange = ( - _event: React.SyntheticEvent, - selectedOptions: EnvironmentOption[] - ): void => { - const currentValues = _environmentValues || []; - const selectedValues = selectedOptions || []; - - // Determine which items were selected and which were unselected - const newlySelected = selectedValues.filter( - (option) => !currentValues.some((item) => item.value === option.value) - ); - - const newlyUnselected = currentValues.filter( - (item) => !selectedValues.some((option) => option.value === item.value) - ); - - handleEnvironmentSelect(newlySelected, newlyUnselected); - }; - - return ( - <div onClick={(e) => e.stopPropagation()} style={{ marginBlock: '1rem', maxWidth: '15rem' }}> - <Autocomplete - //@ts-ignore - multiple - options={_environmentOptions} - value={_environmentValues} - loading={isLoading || isEnvLoading} - //@ts-ignore - onChange={handleChange} - size="small" - disableCloseOnSelect - getOptionLabel={(option: unknown) => (option as EnvironmentOption).label} - renderTags={(value: unknown) => - (value as EnvironmentOption[]).map((option) => ( - <Chip - key={option.value} - label={option.label} - size="small" - style={{ - margin: '0.15rem', - borderRadius: '0.2rem' - }} - onDelete={() => { - unassignEnvironmentFromWorkspace({ - workspaceId, - environmentId: option.value - }); - }} - /> - )) - } - renderInput={(params) => <TextField {...params} placeholder="Assigned Environment" />} - popupIcon={null} - disabled={!isAssignedEnvironmentAllowed} - /> - </div> - ); -}; - -export default WorkspaceEnvironmentSelection; diff --git a/src/custom/Workspaces/WorkspaceRecentActivityModal.tsx b/src/custom/Workspaces/WorkspaceRecentActivityModal.tsx deleted file mode 100644 index f140c7a87..000000000 --- a/src/custom/Workspaces/WorkspaceRecentActivityModal.tsx +++ /dev/null @@ -1,240 +0,0 @@ -import AccessTimeFilledIcon from '@mui/icons-material/AccessTimeFilled'; -import { useCallback, useEffect, useRef, useState } from 'react'; -import { - Avatar, - Box, - CircularProgress, - Divider, - List, - ListItem, - ListItemAvatar, - ListItemText, - Typography -} from '../../base'; -import { iconLarge, iconXSmall } from '../../constants/iconsSizes'; -import { DesignIcon, EnvironmentIcon, TeamsIcon, ViewIcon, WorkspaceIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { getFormatDate, getFullFormattedTime } from '../../utils'; -import { CustomTooltip } from '../CustomTooltip'; -import { Modal, ModalBody, ModalFooter } from '../Modal'; - -interface EventData { - created_at: string; - description: string; - first_name: string; - last_name: string; - avatar_url: string; -} - -interface EventsResponse { - data: EventData[]; - page: number; - total_count: number; -} - -interface RecentActivityModalProps { - workspaceId: string; - workspaceName: string; - open: boolean; - handleClose: () => void; - useGetEventsOfWorkspaceQuery: ( - params: { - workspaceId: string; - page: number; - pagesize: number; - }, - options?: { skip: boolean } - ) => { - data?: EventsResponse; - isLoading: boolean; - isFetching: boolean; - }; -} - -const WorkspaceRecentActivityModal: React.FC<RecentActivityModalProps> = ({ - workspaceId, - workspaceName, - open, - handleClose, - useGetEventsOfWorkspaceQuery -}) => { - const [page, setPage] = useState<number>(0); - const _pageSize = 25; - const [allEvents, setAllEvents] = useState<EventData[]>([]); - const [hasMore, setHasMore] = useState<boolean>(true); - const _observer = useRef<IntersectionObserver | null>(null); - const _loaderRef = useRef<HTMLDivElement | null>(null); - - const { - data: eventsData, - isLoading: isEventsLoading, - isFetching - } = useGetEventsOfWorkspaceQuery( - { - workspaceId, - page: page, - pagesize: _pageSize - }, - { skip: !open } - ); - - // Update events when data is fetched - useEffect(() => { - if (eventsData) { - if (page === 0) { - setAllEvents(eventsData.data); - } else { - setAllEvents((prev) => [...prev, ...eventsData.data]); - } - - // Check if we've loaded all events - setHasMore((eventsData.page + 1) * _pageSize < eventsData.total_count); - } - }, [eventsData, page, _pageSize]); - - // Reset pagination when modal opens - useEffect(() => { - if (open) { - setPage(0); - setAllEvents([]); - setHasMore(true); - } - }, [open]); - - // Callback for the IntersectionObserver - const lastEventElementRef = useCallback( - (node: HTMLDivElement | null) => { - if (isEventsLoading || isFetching) return; - - // Disconnect previous observer if it exists - if (_observer.current) _observer.current.disconnect(); - - // Create a new observer - _observer.current = new IntersectionObserver((entries) => { - // If the loader element is visible and we have more data to load - if (entries[0].isIntersecting && hasMore) { - setPage((prevPage) => prevPage + 1); - } - }); - - // Observe the loader element - if (node) _observer.current.observe(node); - }, - [isEventsLoading, isFetching, hasMore] - ); - const theme = useTheme(); - const getImage = (description: string) => { - const availableTypes = ['design', 'view', 'environment', 'team']; - const type = availableTypes.find((type) => description.includes(type)); - - switch (type) { - case 'design': - return <DesignIcon {...iconXSmall} />; - case 'view': - return <ViewIcon {...iconXSmall} />; - case 'environment': - return <EnvironmentIcon {...iconXSmall} fill={theme.palette.icon.default} />; - case 'team': - return <TeamsIcon {...iconXSmall} primaryFill={theme.palette.icon.default} fill="" />; - default: - return <WorkspaceIcon {...iconXSmall} fill={theme.palette.icon.default} />; - } - }; - - return ( - <> - <Modal - title={`"${workspaceName}" Recent Activity`} - open={open} - closeModal={handleClose} - headerIcon={<AccessTimeFilledIcon />} - maxWidth="md" - > - <ModalBody style={{ maxHeight: '40rem' }}> - {page === 0 && isEventsLoading ? ( - <Box display="flex" justifyContent="center" padding={4}> - <CircularProgress /> - </Box> - ) : allEvents.length > 0 ? ( - <> - {allEvents.map((data, index) => ( - <List - sx={{ width: '100%', padding: '0' }} - key={`${data.created_at}-${data.description}-${index}`} - > - <ListItem - style={{ padding: '0' }} - alignItems="flex-start" - secondaryAction={ - <Box display={'flex'} flexDirection="column" alignItems="flex-end" gap={0.2}> - {getImage(data.description)} - <CustomTooltip title={getFullFormattedTime(data.created_at)}> - <div> - <Typography - variant="caption" - style={{ - display: 'flex', - alignItems: 'center', - fontStyle: 'italic' - }} - > - Updated At: {getFormatDate(data.created_at)} - </Typography> - </div> - </CustomTooltip> - </Box> - } - > - <ListItemAvatar - style={{ - minWidth: '0', - marginTop: '0.75rem', - marginRight: '1rem' - }} - > - <Avatar alt={data.first_name} src={data.avatar_url} sx={iconLarge} /> - </ListItemAvatar> - <ListItemText - primary={data.first_name + ' ' + data.last_name} - secondary={<>{data.description}</>} - /> - </ListItem> - <Divider /> - </List> - ))} - - {/* The loader element that will trigger the next page load */} - <div - ref={hasMore ? lastEventElementRef : null} - style={{ height: '20px', width: '100%' }} - /> - - {isFetching && ( - <Box display="flex" justifyContent="center" padding={2} ref={_loaderRef}> - <CircularProgress size={24} /> - </Box> - )} - - {!hasMore && allEvents.length > 0 && ( - <Typography variant="body2" color="textSecondary" style={{ textAlign: 'center' }}> - No more activities to load - </Typography> - )} - </> - ) : ( - <Box display="flex" justifyContent="center" padding={4}> - <Typography variant="body2" color="textSecondary"> - No recent activity found for this workspace. - </Typography> - </Box> - )} - </ModalBody> - <ModalFooter variant="filled"> - <></> - </ModalFooter> - </Modal> - </> - ); -}; - -export default WorkspaceRecentActivityModal; diff --git a/src/custom/Workspaces/WorkspaceTeamsTable.tsx b/src/custom/Workspaces/WorkspaceTeamsTable.tsx deleted file mode 100644 index 1c4043f9b..000000000 --- a/src/custom/Workspaces/WorkspaceTeamsTable.tsx +++ /dev/null @@ -1,191 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import AddIcon from '@mui/icons-material/Add'; -import { useState } from 'react'; -import { Button } from '../../base'; -import { TeamsIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { CustomColumnVisibilityControl } from '../CustomColumnVisibilityControl'; -import SearchBar from '../SearchBar'; -import { TeamTableConfiguration } from '../TeamTable'; -import TeamTable from '../TeamTable/TeamTable'; -import AssignmentModal from './AssignmentModal'; -import useTeamAssignment from './hooks/useTeamAssignment'; -import { TableHeader, TableRightActionHeader } from './styles'; - -export interface TeamsTableProps { - workspaceId: string; - workspaceName: string; - useGetTeamsOfWorkspaceQuery: any; - useUnassignTeamFromWorkspaceMutation: any; - useAssignTeamToWorkspaceMutation: any; - isEditTeamAllowed: boolean; - isAssignTeamAllowed: boolean; - isRemoveTeamFromWorkspaceAllowed: boolean; - isDeleteTeamAllowed: boolean; - isLeaveTeamAllowed: boolean; - org_id: string; - fetchTeamUsers: any; - useGetUsersForOrgQuery: any; - useNotificationHandlers: any; - useRemoveUserFromTeamMutation: any; -} - -const TeamsTable: React.FC<TeamsTableProps> = ({ - workspaceId, - workspaceName, - useGetTeamsOfWorkspaceQuery, - useAssignTeamToWorkspaceMutation, - useUnassignTeamFromWorkspaceMutation, - isEditTeamAllowed, - isAssignTeamAllowed, - isRemoveTeamFromWorkspaceAllowed, - isLeaveTeamAllowed, - isDeleteTeamAllowed, - org_id, - useGetUsersForOrgQuery, - useNotificationHandlers, - useRemoveUserFromTeamMutation -}) => { - const [page, setPage] = useState<number>(0); - const [pageSize, setPageSize] = useState<number>(10); - const [sortOrder, setSortOrder] = useState<string>('updated_at desc'); - const [bulkSelect, setBulkSelect] = useState<boolean>(false); - const [search, setSearch] = useState<string>(''); - const [isSearchExpanded, setIsSearchExpanded] = useState<boolean>(false); - - const { data: teamsOfWorkspace } = useGetTeamsOfWorkspaceQuery({ - workspaceId, - page: page, - pageSize: pageSize, - order: sortOrder, - search: search - }); - const [unassignTeamFromWorkspace] = useUnassignTeamFromWorkspaceMutation(); - - const teamAssignment = useTeamAssignment({ - workspaceId, - useGetTeamsOfWorkspaceQuery, - useAssignTeamToWorkspaceMutation, - useUnassignTeamFromWorkspaceMutation, - isTeamsVisible: isAssignTeamAllowed || isRemoveTeamFromWorkspaceAllowed - }); - - const handleRemoveTeamFromWorkspace = (teamId: string): void => { - unassignTeamFromWorkspace({ - workspaceId, - teamId - }).unwrap(); - }; - - const tableProps = TeamTableConfiguration({ - teams: teamsOfWorkspace?.teams, - count: teamsOfWorkspace?.total_count, - page, - pageSize, - setPage, - setPageSize, - sortOrder, - setSortOrder, - bulkSelect, - setBulkSelect, - handleRemoveTeamFromWorkspace, - handleTeamView: () => {}, - handleDeleteTeam: () => {}, - handleleaveTeam: () => {}, - teamId: '', - workspace: true, - isEditTeamAllowed, - isLeaveTeamAllowed, - isRemoveTeamFromWorkspaceAllowed, - isDeleteTeamAllowed: isDeleteTeamAllowed, - setSearch - }); - const theme = useTheme(); - return ( - <> - <TableHeader> - <Button - variant="contained" - startIcon={<AddIcon />} - onClick={teamAssignment.handleAssignModal} - style={{ margin: '1rem' }} - > - Assign Teams - </Button> - <TableRightActionHeader> - <SearchBar - onSearch={(value) => { - setSearch(value); - }} - onClear={() => { - setSearch(''); - }} - expanded={isSearchExpanded} - setExpanded={setIsSearchExpanded} - placeholder="Search workspaces..." - /> - <CustomColumnVisibilityControl - columns={tableProps.columns} - customToolsProps={{ - columnVisibility: tableProps.columnVisibility, - setColumnVisibility: tableProps.setColumnVisibility - }} - id={'teams-table'} - /> - </TableRightActionHeader> - </TableHeader> - <TeamTable - teams={teamsOfWorkspace?.teams} - tableOptions={tableProps.tableOptions} - columnVisibility={tableProps.columnVisibility} - colViews={tableProps.colViews} - tableCols={tableProps.tableCols} - updateCols={tableProps.updateCols} - columns={tableProps.columns} - isRemoveFromTeamAllowed={isRemoveTeamFromWorkspaceAllowed} - org_id={org_id} - useGetUsersForOrgQuery={useGetUsersForOrgQuery} - useNotificationHandlers={useNotificationHandlers} - useRemoveUserFromTeamMutation={useRemoveUserFromTeamMutation} - /> - - <AssignmentModal - open={teamAssignment.assignModal} - onClose={teamAssignment.handleAssignModalClose} - title={`Assign Teams to ${workspaceName}`} - headerIcon={ - <TeamsIcon - height="40" - width="40" - primaryFill={theme.palette.common.white} - fill={theme.palette.icon.disabled} - /> - } - name="Teams" - assignableData={teamAssignment.data} - handleAssignedData={teamAssignment.handleAssignData} - originalAssignedData={teamAssignment.workspaceData} - emptyStateIcon={ - <TeamsIcon - height="5rem" - width="5rem" - primaryFill={'#808080'} - secondaryFill={theme.palette.icon.disabled} - fill={'#808080'} - /> - } - handleAssignablePage={teamAssignment.handleAssignablePage} - handleAssignedPage={teamAssignment.handleAssignedPage} - originalLeftCount={teamAssignment.data?.length || 0} - originalRightCount={teamsOfWorkspace?.total_count || 0} - onAssign={teamAssignment.handleAssign} - disableTransfer={teamAssignment.disableTransferButton} - helpText={`Assign Teams to ${workspaceName}`} - isAssignAllowed={isAssignTeamAllowed} - isRemoveAllowed={isRemoveTeamFromWorkspaceAllowed} - /> - </> - ); -}; - -export default TeamsTable; diff --git a/src/custom/Workspaces/WorkspaceTransferButton.tsx b/src/custom/Workspaces/WorkspaceTransferButton.tsx deleted file mode 100644 index b4cc7f801..000000000 --- a/src/custom/Workspaces/WorkspaceTransferButton.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { SyncAlt as SyncAltIcon } from '@mui/icons-material'; -import { Grid2, Typography } from '../../base'; -import { useTheme } from '../../theme'; -import { getFullFormattedTime, getRelativeTime } from '../../utils'; -import { CustomTooltip } from '../CustomTooltip'; -import { PopupButton, Record, TabCount, TabTitle } from './styles'; - -interface TransferButtonProps { - title: string; - count: number; - onAssign: () => void; - disabled: boolean; -} - -interface RedirectButtonProps { - title: string; - count: number; - disabled?: boolean; -} - -export const TransferButton: React.FC<TransferButtonProps> = ({ - title, - count, - onAssign, - disabled -}) => { - const theme = useTheme(); - return ( - <PopupButton - onClick={onAssign} - disabled={disabled} - color="primary" - sx={{ - color: theme.palette.background.neutral?.default, - backgroundColor: theme.palette.background.constant?.table, - margin: '0px 0px 10px', - padding: '20px 10px', - '&:hover': { - backgroundColor: theme.palette.background.constant?.table, - boxShadow: 'none' - } - }} - > - <Grid2> - <TabCount textColor={theme.palette.text.default}>{count}</TabCount> - <TabTitle textColor={theme.palette.text.default}>{title}</TabTitle> - <SyncAltIcon sx={{ position: 'absolute', top: '10px', right: '10px' }} /> - </Grid2> - </PopupButton> - ); -}; - -export const RedirectButton: React.FC<RedirectButtonProps> = ({ - title, - count, - disabled = true -}) => { - return ( - <PopupButton disabled={disabled} color="primary" sx={{ boxShadow: 'none' }}> - <Grid2> - <TabCount>{count}</TabCount> - <TabTitle>{title}</TabTitle> - {/* <ArrowForward /> */} - </Grid2> - </PopupButton> - ); -}; - -interface RecordRowProps { - title: string; - name: string; - date?: string | Date; -} - -export const RecordRow: React.FC<RecordRowProps> = ({ title, name, date }) => { - const theme = useTheme(); - - return ( - <Record> - <Grid2 sx={{ display: 'flex', maxHeight: '140px' }} size={10}> - <Typography - sx={{ - fontSize: 14, - textAlign: 'left', - color: theme.palette.background.constant?.white, - maxWidth: 'max-content', - overflowX: 'hidden' - }} - > - {title} - </Typography> - <Typography - sx={{ - marginInline: '0.5rem', - fontStyle: 'italic', - color: theme.palette.background.brand?.default, - textWrap: 'nowrap' - }} - > - {name} - </Typography> - </Grid2> - <Grid2 sx={{ display: 'flex', justifyContent: 'flex-end' }} size={2}> - <CustomTooltip title={date ? getFullFormattedTime(date as string) : ''} placement="top"> - <div> - <Typography - sx={{ - fontSize: 14, - fontStyle: 'italic', - color: `${theme.palette.text.disabled}`, - paddingRight: '12px', - textAlign: 'end' - }} - > - {date ? getRelativeTime(date as string) : '-'} - </Typography> - </div> - </CustomTooltip> - </Grid2> - </Record> - ); -}; diff --git a/src/custom/Workspaces/WorkspaceViewsTable.tsx b/src/custom/Workspaces/WorkspaceViewsTable.tsx deleted file mode 100644 index ff4a29709..000000000 --- a/src/custom/Workspaces/WorkspaceViewsTable.tsx +++ /dev/null @@ -1,406 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { Lock, Public } from '@mui/icons-material'; -import RemoveCircleIcon from '@mui/icons-material/RemoveCircle'; -import { MUIDataTableColumn, MUIDataTableMeta } from 'mui-datatables'; -import React, { useState } from 'react'; -import { Box } from '../../base'; -import { EnvironmentIcon } from '../../icons'; -import { useTheme } from '../../theme'; -import { NameDiv } from '../CatalogDesignTable/style'; -import { RESOURCE_TYPES } from '../CatalogDetail/types'; -import { CustomColumnVisibilityControl } from '../CustomColumnVisibilityControl'; -import { CustomTooltip } from '../CustomTooltip'; -import { ErrorBoundary } from '../ErrorBoundary'; -import { ConditionalTooltip } from '../Helpers/CondtionalTooltip'; -import { useWindowDimensions } from '../Helpers/Dimension'; -import { - ColView, - updateVisibleColumns -} from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column'; -import ResponsiveDataTable, { IconWrapper } from '../ResponsiveDataTable'; -import SearchBar from '../SearchBar'; -import { TooltipIcon } from '../TooltipIconButton'; -import { UserTableAvatarInfo } from '../UsersTable'; -import VisibilityChipMenu, { VIEW_VISIBILITY } from '../VisibilityChipMenu/VisibilityChipMenu'; -import AssignmentModal from './AssignmentModal'; -import useViewAssignment from './hooks/useViewsAssignment'; -import { CellStyle, CustomBodyRenderStyle, L5EditIcon, TableHeader } from './styles'; - -interface ViewsTableProps { - workspaceId: string; - workspaceName: string; - useGetViewsOfWorkspaceQuery: any; - useUnassignViewFromWorkspaceMutation: any; - useAssignViewToWorkspaceMutation: any; - isRemoveAllowed: boolean; - isAssignAllowed: boolean; - handleShowDetails: (viewId: string, viewName: string, filterType: string) => void; - handleOpenInOperator?: (designId: string, viewName: string, filterType: string) => void; - showPlaygroundActions?: boolean; - handleVisibilityChange?: (id: string, visibility: VIEW_VISIBILITY) => void; - currentUserId?: string; -} - -const colViews: ColView[] = [ - ['id', 'na'], - ['avatar_url', 'xs'], - ['email', 'na'], - ['name', 'xs'], - ['first_name', 'na'], - ['last_name', 'na'], - ['organization_id', 'xl'], - ['created_at', 'na'], - ['updated_at', 'xl'], - ['visibility', 'l'], - ['actions', 'xs'] -]; - -export const ResizableDescriptionCell = ({ value }: { value: string }) => ( - <div style={{ position: 'relative', height: '20px' }}> - <CustomBodyRenderStyle> - <CellStyle> - <CustomTooltip title={value} placement="top-start"> - <span style={{ cursor: 'pointer' }}>{value}</span> - </CustomTooltip> - </CellStyle> - </CustomBodyRenderStyle> - </div> -); - -const WorkspaceViewsTable: React.FC<ViewsTableProps> = ({ - workspaceId, - workspaceName, - isRemoveAllowed, - useGetViewsOfWorkspaceQuery, - useUnassignViewFromWorkspaceMutation, - useAssignViewToWorkspaceMutation, - isAssignAllowed, - handleShowDetails, - handleVisibilityChange, - currentUserId -}) => { - const theme = useTheme(); - - const [search, setSearch] = useState(''); - const [isSearchExpanded, setIsSearchExpanded] = useState(false); - const [page, setPage] = useState<number>(0); - const [pageSize, setPageSize] = useState<number>(10); - const [sortOrder, setSortOrder] = useState<string>('updated_at desc'); - const { data: viewsOfWorkspace, refetch } = useGetViewsOfWorkspaceQuery( - { - workspaceId, - page: page, - pagesize: pageSize, - search: search, - order: sortOrder, - expandUser: true - }, - { - skip: !workspaceId - } - ); - const { width } = useWindowDimensions(); - const [unassignviewFromWorkspace] = useUnassignViewFromWorkspaceMutation(); - const columns: MUIDataTableColumn[] = [ - { - name: 'id', - label: 'ID', - options: { - filter: false, - customBodyRender: (value) => <ConditionalTooltip value={value} maxLength={10} /> - } - }, - { - name: 'name', - label: 'Name', - options: { - filter: false, - sort: true, - searchable: true, - customBodyRender: (value, tableMeta) => { - const viewId = tableMeta.tableData[tableMeta.rowIndex]?.id ?? ''; - const viewName = tableMeta.tableData[tableMeta.rowIndex]?.name ?? ''; - return ( - <NameDiv onClick={() => handleShowDetails(viewId, viewName, RESOURCE_TYPES.VIEW)}> - {value} - </NameDiv> - ); - } - } - }, - { - name: 'avatar_url', - label: 'Author', - options: { - filter: false, - sort: false, - searchable: false, - customBodyRender: (value: string, tableMeta: MUIDataTableMeta) => { - const getValidColumnValue = ( - rowData: any, - columnName: string, - columns: MUIDataTableColumn[] - ) => { - const columnIndex = columns.findIndex((column: any) => column.name === columnName); - return rowData[columnIndex]; - }; - return ( - <Box sx={{ '& > img': { mr: 2, flexShrink: 0 } }}> - <UserTableAvatarInfo - userId={getValidColumnValue(tableMeta.rowData, 'user_id', columns)} - userName={`${tableMeta.rowData[4]} ${tableMeta.rowData[5]}`} - userEmail={tableMeta.rowData[3]} - profileUrl={value} - /> - </Box> - ); - } - } - }, - { - name: 'email', - label: 'Email', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'first_name', - label: 'First Name', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'last_name', - label: 'Last Name', - options: { - filter: false, - sort: true, - searchable: true - } - }, - { - name: 'created_at', - label: 'Created At', - options: { - filter: false, - sort: true, - searchable: true, - setCellHeaderProps: () => { - return { align: 'center' }; - } - } - }, - { - name: 'updated_at', - label: 'Updated At', - options: { - filter: false, - sort: true, - searchable: true, - setCellHeaderProps: () => { - return { align: 'center' }; - } - } - }, - { - name: 'visibility', - label: 'Visibility', - options: { - filter: false, - sort: false, - searchable: true, - customBodyRender: (value: VIEW_VISIBILITY, tableMeta) => { - const rowIndex = tableMeta.rowIndex; - const viewId = tableMeta.tableData[rowIndex]?.id; - const viewVisibility = tableMeta.tableData[rowIndex]?.visibility; - const ownerId = tableMeta.tableData[rowIndex]?.user_id; - const isOwner = ownerId === currentUserId; - const isEnabled = viewVisibility !== VIEW_VISIBILITY.PUBLISHED && isOwner; - return ( - <VisibilityChipMenu - value={value as VIEW_VISIBILITY} - onChange={(value) => { - if (handleVisibilityChange) { - handleVisibilityChange(viewId, value as VIEW_VISIBILITY); - refetch(); - } - }} - enabled={isEnabled} - options={[ - [VIEW_VISIBILITY.PUBLIC, Public], - [VIEW_VISIBILITY.PRIVATE, Lock] - ]} - /> - ); - } - } - }, - { - name: 'actions', - label: 'Actions', - options: { - filter: false, - sort: false, - searchable: false, - customBodyRender: (_: string, tableMeta: MUIDataTableMeta) => ( - <IconWrapper disabled={!isRemoveAllowed}> - <TooltipIcon - id={`delete_view-${tableMeta.rowIndex}`} - title="Move View" - onClick={() => { - isRemoveAllowed && - unassignviewFromWorkspace({ - workspaceId, - viewId: tableMeta.rowData[0] - }); - }} - iconType="delete" - > - <RemoveCircleIcon style={{ color: theme?.palette.icon.default }} />{' '} - </TooltipIcon> - </IconWrapper> - ) - } - } - ]; - - const viewAssignment = useViewAssignment({ - workspaceId, - useGetViewsOfWorkspaceQuery, - useUnassignViewFromWorkspaceMutation, - useAssignViewToWorkspaceMutation, - isViewsVisible: isAssignAllowed || isRemoveAllowed - }); - - const [columnVisibility, setColumnVisibility] = useState<Record<string, boolean>>(() => { - const showCols = updateVisibleColumns(colViews, width); - const initialVisibility: Record<string, boolean> = {}; - columns.forEach((col) => { - initialVisibility[col.name] = showCols[col.name]; - }); - return initialVisibility; - }); - - const options = { - filter: false, - responsive: 'standard', - selectableRows: 'none', - count: viewsOfWorkspace?.total_count, - rowsPerPage: pageSize, - serverSide: true, - page, - elevation: 0, - sortOrder: { - name: sortOrder.split(' ')[0], - direction: sortOrder.split(' ')[1] - }, - onTableChange: (action: string, tableState: any) => { - const sortInfo = tableState.announceText ? tableState.announceText.split(' : ') : []; - let order = ''; - if (tableState.activeColumn) { - order = `${columns[tableState.activeColumn].name} desc`; - } - switch (action) { - case 'changePage': - setPage(tableState.page); - break; - case 'changeRowsPerPage': - setPageSize(tableState.rowsPerPage); - break; - case 'sort': - if (sortInfo.length == 2) { - if (sortInfo[1] === 'ascending') { - order = `${columns[tableState.activeColumn].name} asc`; - } else { - order = `${columns[tableState.activeColumn].name} desc`; - } - } - if (order !== sortOrder) { - setSortOrder(order); - } - break; - } - } - }; - const [tableCols, updateCols] = useState(columns); - - return ( - <ErrorBoundary> - <TableHeader style={{ padding: '1rem' }}> - <Box - style={{ - marginRight: '0rem', - width: '100%', - justifyContent: 'end', - display: 'flex', - alignItems: 'center' - }} - > - <SearchBar - onSearch={(value) => { - setSearch(value); - }} - onClear={() => { - setSearch(''); - }} - expanded={isSearchExpanded} - setExpanded={setIsSearchExpanded} - placeholder="Search workspaces..." - /> - <CustomColumnVisibilityControl - columns={columns} - customToolsProps={{ - columnVisibility, - setColumnVisibility - }} - id={'views-table'} - /> - <L5EditIcon - onClick={viewAssignment.handleAssignModal} - disabled={!isAssignAllowed} - title="Assign Views" - /> - </Box> - </TableHeader> - - <ResponsiveDataTable - columns={columns} - data={viewsOfWorkspace?.views} - options={options} - colViews={colViews} - tableCols={tableCols} - updateCols={updateCols} - columnVisibility={columnVisibility} - /> - - <AssignmentModal - open={viewAssignment.assignModal} - onClose={viewAssignment.handleAssignModalClose} - title={`Assign Views to ${workspaceName}`} - headerIcon={<EnvironmentIcon height="40" width="40" fill={'white'} />} - name="Views" - assignableData={viewAssignment.data} - handleAssignedData={viewAssignment.handleAssignData} - originalAssignedData={viewAssignment.workspaceData} - emptyStateIcon={<EnvironmentIcon height="5rem" width="5rem" fill={'#808080'} />} - handleAssignablePage={viewAssignment.handleAssignablePage} - handleAssignedPage={viewAssignment.handleAssignedPage} - originalLeftCount={viewAssignment.data?.length || 0} - originalRightCount={viewsOfWorkspace?.total_count || 0} - onAssign={viewAssignment.handleAssign} - disableTransfer={viewAssignment.disableTransferButton} - helpText={`Assign Views to ${workspaceName}`} - isAssignAllowed={isAssignAllowed} - isRemoveAllowed={isRemoveAllowed} - /> - </ErrorBoundary> - ); -}; - -export default WorkspaceViewsTable; diff --git a/src/custom/Workspaces/helper.ts b/src/custom/Workspaces/helper.ts deleted file mode 100644 index b33b4c25d..000000000 --- a/src/custom/Workspaces/helper.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { getFormatDate } from '../../utils'; - -/** - * Helper function to parse and format the value of a field representing a deletion timestamp in the provided data object. - * @param {Object} data - The data object containing the field representing the deletion timestamp. - * @returns {string} - The formatted date string if the deletion timestamp is valid; otherwise, "N/A". - */ - -export const DEFAULT_DATE = 'N/A'; // a constant to represent the default date value -export const parseDeletionTimestamp = (data: { - deleted_at: { Valid: boolean; Time: string | number | Date }; -}) => { - if (data && data.deleted_at && data.deleted_at.Valid === true) { - return getFormatDate(data.deleted_at.Time as string); - } else { - return DEFAULT_DATE; - } -}; - -/** - * Formats a date into a short date-time string (e.g., "Jan 1, 2024, 09:30 AM") - * - * @param {Date | string} date - The date to format. Can be a Date object or date string - * @returns {string} Formatted date string in the format "MMM D, YYYY, HH:MM AM/PM" - * - * @example - * formatShortDateTime("2024-01-01T09:30:00") // Returns "Jan 1, 2024, 09:30 AM" - * formatShortDateTime(new Date()) // Returns current date-time in short format - * - */ -export const formatShortDateTime = (date: Date | string): string => { - return new Date(date).toLocaleDateString('en-US', { - day: 'numeric', - month: 'short', - year: 'numeric', - hour: '2-digit', - minute: '2-digit' - }); -}; - -/** - * Formats a date into a short date string (e.g., "Jan 1, 2024") - * - * @param {Date | string} date - The date to format. Can be a Date object or date string - * @returns {string} Formatted date string in the format "MMM D, YYYY" - * - * @example - * formatShortDate("2024-01-01") // Returns "Jan 1, 2024" - * formatShortDate(new Date()) // Returns current date in short format - * - */ -export const formatShortDate = (date: Date | string): string => { - return new Date(date).toLocaleDateString('en-US', { - day: 'numeric', - month: 'short', - year: 'numeric' - }); -}; - -/** - * Formats a date into a long date string (e.g., "January 1, 2024") - * - * @param {Date | string} date - The date to format. Can be a Date object or date string - * @returns {string} Formatted date string in the format "MMMM D, YYYY" - * - * @example - * formattoLongDate("2024-01-01") // Returns "January 1, 2024" - * formattoLongDate(new Date()) // Returns current date in long format - * - */ -export const formattoLongDate = (date: Date | string): string => { - return new Date(date).toLocaleDateString('en-US', { - day: 'numeric', - month: 'long', - year: 'numeric' - }); -}; diff --git a/src/custom/Workspaces/hooks/useDesignAssignment.tsx b/src/custom/Workspaces/hooks/useDesignAssignment.tsx deleted file mode 100644 index d7c3a60d3..000000000 --- a/src/custom/Workspaces/hooks/useDesignAssignment.tsx +++ /dev/null @@ -1,160 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { useEffect, useState } from 'react'; -import { Pattern } from '../../CustomCatalog/CustomCard'; -import { withDefaultPageArgs } from '../../PerformersSection/PerformersSection'; -import { AssignmentHookResult } from '../types'; - -interface AddedAndRemovedDesigns { - addedDesignsIds: string[]; - removedDesignsIds: string[]; -} - -interface useDesignAssignmentProps { - workspaceId: string; - useGetDesignsOfWorkspaceQuery: any; - useAssignDesignToWorkspaceMutation: any; - useUnassignDesignFromWorkspaceMutation: any; - isDesignsVisible?: boolean; -} - -const useDesignAssignment = ({ - workspaceId, - useGetDesignsOfWorkspaceQuery, - useAssignDesignToWorkspaceMutation, - useUnassignDesignFromWorkspaceMutation, - isDesignsVisible -}: useDesignAssignmentProps): AssignmentHookResult<Pattern> => { - const [designsPage, setDesignsPage] = useState<number>(0); - const [designsData, setDesignsData] = useState<Pattern[]>([]); - const designsPageSize = 25; - const [designsOfWorkspacePage, setDesignsOfWorkspacePage] = useState<number>(0); - const [workspaceDesignsData, setWorkspaceDesignsData] = useState<Pattern[]>([]); - const [assignDesignModal, setAssignDesignModal] = useState<boolean>(false); - const [skipDesigns, setSkipDesigns] = useState<boolean>(true); - const [disableTransferButton, setDisableTransferButton] = useState<boolean>(true); - const [assignedDesigns, setAssignedDesigns] = useState<Pattern[]>([]); - - const { data: designs } = useGetDesignsOfWorkspaceQuery( - withDefaultPageArgs({ - workspaceId, - page: designsPage, - pagesize: designsPageSize, - filter: '{"assigned":false}' - }), - { - skip: skipDesigns || !isDesignsVisible - } - ); - - const { data: designsOfWorkspace } = useGetDesignsOfWorkspaceQuery( - withDefaultPageArgs({ - workspaceId, - page: designsOfWorkspacePage, - pagesize: designsPageSize - }), - { - skip: skipDesigns || !isDesignsVisible - } - ); - - const [assignDesignToWorkspace] = useAssignDesignToWorkspaceMutation(); - const [unassignDesignFromWorkspace] = useUnassignDesignFromWorkspaceMutation(); - - useEffect(() => { - const designsDataRtk = designs?.designs ? designs.designs : []; - setDesignsData((prevData) => [...prevData, ...designsDataRtk]); - }, [designs]); - - useEffect(() => { - const designsOfWorkspaceDataRtk = designsOfWorkspace?.designs ? designsOfWorkspace.designs : []; - setWorkspaceDesignsData((prevData) => [...prevData, ...designsOfWorkspaceDataRtk]); - }, [designsOfWorkspace]); - - const handleAssignDesignModal = (e?: React.MouseEvent): void => { - e?.stopPropagation(); - setAssignDesignModal(true); - setSkipDesigns(false); - }; - - const handleAssignDesignModalClose = (e?: React.MouseEvent): void => { - e?.stopPropagation(); - setAssignDesignModal(false); - setSkipDesigns(true); - }; - - const handleAssignablePageDesign = (): void => { - const pagesCount = Math.ceil(Number(designs?.total_count) / designsPageSize); - if (designsPage < pagesCount - 1) { - setDesignsPage((prevDesignsPage) => prevDesignsPage + 1); - } - }; - - const handleAssignedPageDesign = (): void => { - const pagesCount = Math.ceil(Number(designsOfWorkspace?.total_count) / designsPageSize); - if (designsOfWorkspacePage < pagesCount - 1) { - setDesignsOfWorkspacePage((prevPage) => prevPage + 1); - } - }; - - const getAddedAndRemovedDesigns = (allAssignedDesigns: Pattern[]): AddedAndRemovedDesigns => { - const originalDesignsIds = workspaceDesignsData.map((design) => design.id); - const updatedDesignsIds = allAssignedDesigns.map((design) => design.id); - - const addedDesignsIds = updatedDesignsIds.filter((id) => !originalDesignsIds.includes(id)); - const removedDesignsIds = originalDesignsIds.filter((id) => !updatedDesignsIds.includes(id)); - - return { addedDesignsIds, removedDesignsIds }; - }; - - const isDesignsActivityOccurred = (allAssignedDesigns: Pattern[]): boolean => { - const { addedDesignsIds, removedDesignsIds } = getAddedAndRemovedDesigns(allAssignedDesigns); - return addedDesignsIds.length > 0 || removedDesignsIds.length > 0; - }; - - const handleAssignDesigns = async (): Promise<void> => { - const { addedDesignsIds, removedDesignsIds } = getAddedAndRemovedDesigns(assignedDesigns); - - addedDesignsIds.map((id) => - assignDesignToWorkspace({ - workspaceId, - designId: id - }).unwrap() - ); - - removedDesignsIds.map((id) => - unassignDesignFromWorkspace({ - workspaceId, - designId: id - }).unwrap() - ); - - setDesignsData([]); - setWorkspaceDesignsData([]); - setDesignsPage(0); - setDesignsOfWorkspacePage(0); - handleAssignDesignModalClose(); - }; - - const handleAssignDesignsData = (updatedAssignedData: Pattern[]): void => { - const { addedDesignsIds, removedDesignsIds } = getAddedAndRemovedDesigns(updatedAssignedData); - setDisableTransferButton(!(addedDesignsIds.length > 0 || removedDesignsIds.length > 0)); - setAssignedDesigns(updatedAssignedData); - }; - - return { - data: designsData, - workspaceData: workspaceDesignsData, - assignModal: assignDesignModal, - handleAssignModal: handleAssignDesignModal, - handleAssignModalClose: handleAssignDesignModalClose, - handleAssignablePage: handleAssignablePageDesign, - handleAssignedPage: handleAssignedPageDesign, - handleAssign: handleAssignDesigns, - handleAssignData: handleAssignDesignsData, - isActivityOccurred: isDesignsActivityOccurred, - disableTransferButton, - assignedItems: assignedDesigns - }; -}; - -export default useDesignAssignment; diff --git a/src/custom/Workspaces/hooks/useEnvironmentAssignment.tsx b/src/custom/Workspaces/hooks/useEnvironmentAssignment.tsx deleted file mode 100644 index 1e34ea422..000000000 --- a/src/custom/Workspaces/hooks/useEnvironmentAssignment.tsx +++ /dev/null @@ -1,161 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { useEffect, useState } from 'react'; -import { withDefaultPageArgs } from '../../PerformersSection/PerformersSection'; -import { AssignmentHookResult, Environment } from '../types'; - -interface UseEnvironmentAssignmentProps { - workspaceId: string; - useGetEnvironmentsOfWorkspaceQuery: any; - useAssignEnvironmentToWorkspaceMutation: any; - useUnassignEnvironmentFromWorkspaceMutation: any; - isEnvironmentsVisible?: boolean; -} - -const useEnvironmentAssignment = ({ - workspaceId, - useGetEnvironmentsOfWorkspaceQuery, - useAssignEnvironmentToWorkspaceMutation, - useUnassignEnvironmentFromWorkspaceMutation, - isEnvironmentsVisible -}: UseEnvironmentAssignmentProps): AssignmentHookResult<Environment> => { - const [environmentsPage, setEnvironmentsPage] = useState<number>(0); - const [environmentsData, setEnvironmentsData] = useState<Environment[]>([]); - const environmentsPageSize = 25; - const [environmentsOfWorkspacePage, setEnvironmentsOfWorkspacePage] = useState<number>(0); - const [workspaceEnvironmentsData, setWorkspaceEnvironmentsData] = useState<Environment[]>([]); - const [assignEnvironmentModal, setAssignEnvironmentModal] = useState<boolean>(false); - const [skipEnvironments, setSkipEnvironments] = useState<boolean>(true); - const [disableTransferButton, setDisableTransferButton] = useState<boolean>(true); - const [assignedEnvironments, setAssignedEnvironments] = useState<Environment[]>([]); - - const { data: environments } = useGetEnvironmentsOfWorkspaceQuery( - withDefaultPageArgs({ - workspaceId, - page: environmentsPage, - pagesize: environmentsPageSize, - filter: '{"assigned":false}' - }), - { - skip: skipEnvironments || !isEnvironmentsVisible - } - ); - - const { data: environmentsOfWorkspace } = useGetEnvironmentsOfWorkspaceQuery( - withDefaultPageArgs({ - workspaceId, - page: environmentsOfWorkspacePage, - pagesize: environmentsPageSize - }), - { - skip: skipEnvironments || !isEnvironmentsVisible - } - ); - - const [assignEnvironmentToWorkspace] = useAssignEnvironmentToWorkspaceMutation(); - const [unassignEnvironmentFromWorkspace] = useUnassignEnvironmentFromWorkspaceMutation(); - - useEffect(() => { - const environmentsDataRtk = environments?.environments ? environments.environments : []; - setEnvironmentsData((prevData) => [...prevData, ...environmentsDataRtk]); - }, [environments]); - - useEffect(() => { - const environmentsOfWorkspaceDataRtk = environmentsOfWorkspace?.environments - ? environmentsOfWorkspace.environments - : []; - setWorkspaceEnvironmentsData((prevData) => [...prevData, ...environmentsOfWorkspaceDataRtk]); - }, [environmentsOfWorkspace]); - - const handleAssignEnvironmentModal = (e?: React.MouseEvent) => { - e?.stopPropagation(); - setAssignEnvironmentModal(true); - setSkipEnvironments(false); - }; - - const handleAssignEnvironmentModalClose = (e?: React.MouseEvent) => { - e?.stopPropagation(); - setAssignEnvironmentModal(false); - setSkipEnvironments(true); - }; - - const handleAssignablePageEnvironment = () => { - const pagesCount = Math.ceil(Number(environments?.total_count) / environmentsPageSize); - if (environmentsPage < pagesCount - 1) { - setEnvironmentsPage((prevEnvironmentsPage) => prevEnvironmentsPage + 1); - } - }; - - const handleAssignedPageEnvironment = () => { - const pagesCount = Math.ceil( - Number(environmentsOfWorkspace?.total_count) / environmentsPageSize - ); - if (environmentsOfWorkspacePage < pagesCount - 1) { - setEnvironmentsOfWorkspacePage((prevPage) => prevPage + 1); - } - }; - - const getAddedAndRemovedEnvironments = (allAssignedEnvironments: Environment[]) => { - const originalEnvironmentsIds = workspaceEnvironmentsData.map((env) => env.id); - const updatedEnvironmentsIds = allAssignedEnvironments.map((env) => env.id); - - const addedEnvironmentsIds = updatedEnvironmentsIds.filter( - (id) => !originalEnvironmentsIds.includes(id) - ); - const removedEnvironmentsIds = originalEnvironmentsIds.filter( - (id) => !updatedEnvironmentsIds.includes(id) - ); - - return { addedEnvironmentsIds, removedEnvironmentsIds }; - }; - - const handleAssignEnvironments = async () => { - const { addedEnvironmentsIds, removedEnvironmentsIds } = - getAddedAndRemovedEnvironments(assignedEnvironments); - - addedEnvironmentsIds.map((id) => - assignEnvironmentToWorkspace({ - workspaceId, - environmentId: id - }).unwrap() - ); - - removedEnvironmentsIds.map((id) => - unassignEnvironmentFromWorkspace({ - workspaceId, - environmentId: id - }).unwrap() - ); - - setEnvironmentsData([]); - setWorkspaceEnvironmentsData([]); - setEnvironmentsPage(0); - setEnvironmentsOfWorkspacePage(0); - handleAssignEnvironmentModalClose(); - }; - - const handleAssignEnvironmentsData = (updatedAssignedData: Environment[]) => { - const { addedEnvironmentsIds, removedEnvironmentsIds } = - getAddedAndRemovedEnvironments(updatedAssignedData); - addedEnvironmentsIds.length > 0 || removedEnvironmentsIds.length > 0 - ? setDisableTransferButton(false) - : setDisableTransferButton(true); - - setAssignedEnvironments(updatedAssignedData); - }; - - return { - data: environmentsData, - workspaceData: workspaceEnvironmentsData, - assignModal: assignEnvironmentModal, - handleAssignModal: handleAssignEnvironmentModal, - handleAssignModalClose: handleAssignEnvironmentModalClose, - handleAssignablePage: handleAssignablePageEnvironment, - handleAssignedPage: handleAssignedPageEnvironment, - handleAssign: handleAssignEnvironments, - handleAssignData: handleAssignEnvironmentsData, - disableTransferButton, - assignedItems: assignedEnvironments - }; -}; - -export default useEnvironmentAssignment; diff --git a/src/custom/Workspaces/hooks/useTeamAssignment.tsx b/src/custom/Workspaces/hooks/useTeamAssignment.tsx deleted file mode 100644 index e3f177595..000000000 --- a/src/custom/Workspaces/hooks/useTeamAssignment.tsx +++ /dev/null @@ -1,148 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { useEffect, useState } from 'react'; -import { withDefaultPageArgs } from '../../PerformersSection/PerformersSection'; -import { AssignmentHookResult, Team } from '../types'; - -interface UseTeamAssignmentProps { - workspaceId: string; - useGetTeamsOfWorkspaceQuery: any; - useAssignTeamToWorkspaceMutation: any; - useUnassignTeamFromWorkspaceMutation: any; - isTeamsVisible?: boolean; -} - -const useTeamAssignment = ({ - workspaceId, - useGetTeamsOfWorkspaceQuery, - useAssignTeamToWorkspaceMutation, - useUnassignTeamFromWorkspaceMutation, - isTeamsVisible -}: UseTeamAssignmentProps): AssignmentHookResult<Team> => { - const [teamsPage, setTeamsPage] = useState<number>(0); - const [teamsData, setTeamsData] = useState<Team[]>([]); - const teamsPageSize = 25; - const [teamsOfWorkspacePage, setTeamsOfWorkspacePage] = useState<number>(0); - const [workspaceTeamsData, setWorkspaceTeamsData] = useState<Team[]>([]); - const [assignTeamModal, setAssignTeamModal] = useState<boolean>(false); - const [skipTeams, setSkipTeams] = useState<boolean>(true); - const [assignTeamToWorkspace] = useAssignTeamToWorkspaceMutation(); - const [unassignTeamFromWorkspace] = useUnassignTeamFromWorkspaceMutation(); - const [disableTransferButton, setDisableTransferButton] = useState<boolean>(true); - const [assignedTeams, setAssignedTeams] = useState<Team[]>([]); - - const { data: teams } = useGetTeamsOfWorkspaceQuery( - withDefaultPageArgs({ - workspaceId, - page: teamsPage, - pagesize: teamsPageSize, - filter: '{"assigned":false}' - }), - { - skip: skipTeams || !isTeamsVisible - } - ); - - const { data: teamsOfWorkspace } = useGetTeamsOfWorkspaceQuery( - withDefaultPageArgs({ - workspaceId, - page: teamsOfWorkspacePage, - pagesize: teamsPageSize - }), - { - skip: skipTeams || !isTeamsVisible - } - ); - - useEffect(() => { - const teamsDataRtk = teams?.teams ? teams.teams : []; - setTeamsData((prevData) => [...prevData, ...teamsDataRtk]); - }, [teams]); - - useEffect(() => { - const teamsOfWorkspaceDataRtk = teamsOfWorkspace?.teams ? teamsOfWorkspace.teams : []; - setWorkspaceTeamsData((prevData) => [...prevData, ...teamsOfWorkspaceDataRtk]); - }, [teamsOfWorkspace]); - - const handleAssignTeamModal = (e?: React.MouseEvent) => { - e?.stopPropagation(); - setAssignTeamModal(true); - setSkipTeams(false); - }; - - const handleAssignTeamModalClose = (e?: React.MouseEvent) => { - e?.stopPropagation(); - setAssignTeamModal(false); - setSkipTeams(true); - }; - - const handleAssignablePageTeam = () => { - const pagesCount = Math.ceil(Number(teams?.total_count) / teamsPageSize); - if (teamsPage < pagesCount - 1) { - setTeamsPage((prevTeamsPage) => prevTeamsPage + 1); - } - }; - - const handleAssignedPageTeam = () => { - const pagesCount = Math.ceil(Number(teamsOfWorkspace?.total_count) / teamsPageSize); - - if (teamsOfWorkspacePage < pagesCount - 1) { - setTeamsOfWorkspacePage((prevPage) => prevPage + 1); - } - }; - - const handleAssignTeams = () => { - const { addedTeamsIds, removedTeamsIds } = getAddedAndRemovedTeams(assignedTeams); - - addedTeamsIds.map((id) => - assignTeamToWorkspace({ - workspaceId, - teamId: id - }).unwrap() - ); - - removedTeamsIds.map((id) => - unassignTeamFromWorkspace({ - workspaceId, - teamId: id - }).unwrap() - ); - - setTeamsData([]); - setWorkspaceTeamsData([]); - handleAssignTeamModalClose(); - }; - - const getAddedAndRemovedTeams = (allAssignedTeams: Team[]) => { - const originalTeamsIds = workspaceTeamsData.map((team) => team.id); - const updatedTeamsIds = allAssignedTeams.map((team) => team.id); - - const addedTeamsIds = updatedTeamsIds.filter((id) => !originalTeamsIds.includes(id)); - const removedTeamsIds = originalTeamsIds.filter((id) => !updatedTeamsIds.includes(id)); - - return { addedTeamsIds, removedTeamsIds }; - }; - - const handleAssignTeamsData = (updatedAssignedData: Team[]) => { - const { addedTeamsIds, removedTeamsIds } = getAddedAndRemovedTeams(updatedAssignedData); - addedTeamsIds.length > 0 || removedTeamsIds.length > 0 - ? setDisableTransferButton(false) - : setDisableTransferButton(true); - setAssignedTeams(updatedAssignedData); - }; - - return { - data: teamsData, - workspaceData: workspaceTeamsData, - assignModal: assignTeamModal, - handleAssignModal: handleAssignTeamModal, - handleAssignModalClose: handleAssignTeamModalClose, - handleAssignablePage: handleAssignablePageTeam, - handleAssignedPage: handleAssignedPageTeam, - handleAssign: handleAssignTeams, - handleAssignData: handleAssignTeamsData, - disableTransferButton, - assignedItems: assignedTeams - }; -}; - -export default useTeamAssignment; diff --git a/src/custom/Workspaces/hooks/useViewsAssignment.tsx b/src/custom/Workspaces/hooks/useViewsAssignment.tsx deleted file mode 100644 index 9f274bcf0..000000000 --- a/src/custom/Workspaces/hooks/useViewsAssignment.tsx +++ /dev/null @@ -1,160 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { useEffect, useState } from 'react'; -import { Pattern } from '../../CustomCatalog/CustomCard'; -import { withDefaultPageArgs } from '../../PerformersSection/PerformersSection'; -import { AssignmentHookResult } from '../types'; - -interface AddedAndRemovedViews { - addedviewsIds: string[]; - removedviewsIds: string[]; -} - -interface useViewAssignmentProps { - workspaceId: string; - useGetViewsOfWorkspaceQuery: any; - useAssignViewToWorkspaceMutation: any; - useUnassignViewFromWorkspaceMutation: any; - isViewsVisible: boolean; -} - -const useViewAssignment = ({ - workspaceId, - useGetViewsOfWorkspaceQuery, - useAssignViewToWorkspaceMutation, - useUnassignViewFromWorkspaceMutation, - isViewsVisible -}: useViewAssignmentProps): AssignmentHookResult<Pattern> => { - const [viewsPage, setviewsPage] = useState<number>(0); - const [viewsData, setviewsData] = useState<Pattern[]>([]); - const viewsPageSize = 25; - const [viewsOfWorkspacePage, setviewsOfWorkspacePage] = useState<number>(0); - const [workspaceviewsData, setWorkspaceviewsData] = useState<Pattern[]>([]); - const [assignviewModal, setAssignviewModal] = useState<boolean>(false); - const [skipviews, setSkipviews] = useState<boolean>(true); - const [disableTransferButton, setDisableTransferButton] = useState<boolean>(true); - const [assignedviews, setAssignedviews] = useState<Pattern[]>([]); - - const { data: views } = useGetViewsOfWorkspaceQuery( - withDefaultPageArgs({ - workspaceId, - page: viewsPage, - pagesize: viewsPageSize, - filter: '{"assigned":false}' - }), - { - skip: skipviews || !isViewsVisible - } - ); - - const { data: viewsOfWorkspace } = useGetViewsOfWorkspaceQuery( - withDefaultPageArgs({ - workspaceId, - page: viewsOfWorkspacePage, - pagesize: viewsPageSize - }), - { - skip: skipviews || !isViewsVisible - } - ); - - const [assignviewToWorkspace] = useAssignViewToWorkspaceMutation(); - const [unassignviewFromWorkspace] = useUnassignViewFromWorkspaceMutation(); - - useEffect(() => { - const viewsDataRtk = views?.views ? views.views : []; - setviewsData((prevData) => [...prevData, ...viewsDataRtk]); - }, [views]); - - useEffect(() => { - const viewsOfWorkspaceDataRtk = viewsOfWorkspace?.views ? viewsOfWorkspace.views : []; - setWorkspaceviewsData((prevData) => [...prevData, ...viewsOfWorkspaceDataRtk]); - }, [viewsOfWorkspace]); - - const handleAssignviewModal = (e?: React.MouseEvent): void => { - e?.stopPropagation(); - setAssignviewModal(true); - setSkipviews(false); - }; - - const handleAssignviewModalClose = (e?: React.MouseEvent): void => { - e?.stopPropagation(); - setAssignviewModal(false); - setSkipviews(true); - }; - - const handleAssignablePageview = (): void => { - const pagesCount = Math.ceil(Number(views?.total_count) / viewsPageSize); - if (viewsPage < pagesCount - 1) { - setviewsPage((prevviewsPage) => prevviewsPage + 1); - } - }; - - const handleAssignedPageview = (): void => { - const pagesCount = Math.ceil(Number(viewsOfWorkspace?.total_count) / viewsPageSize); - if (viewsOfWorkspacePage < pagesCount - 1) { - setviewsOfWorkspacePage((prevPage) => prevPage + 1); - } - }; - - const getAddedAndRemovedviews = (allAssignedviews: Pattern[]): AddedAndRemovedViews => { - const originalviewsIds = workspaceviewsData.map((view) => view.id); - const updatedviewsIds = allAssignedviews.map((view) => view.id); - - const addedviewsIds = updatedviewsIds.filter((id) => !originalviewsIds.includes(id)); - const removedviewsIds = originalviewsIds.filter((id) => !updatedviewsIds.includes(id)); - - return { addedviewsIds, removedviewsIds }; - }; - - const isViewsActivityOccurred = (allViews: Pattern[]): boolean => { - const { addedviewsIds, removedviewsIds } = getAddedAndRemovedviews(allViews); - return addedviewsIds.length > 0 || removedviewsIds.length > 0; - }; - - const handleAssignviews = async (): Promise<void> => { - const { addedviewsIds, removedviewsIds } = getAddedAndRemovedviews(assignedviews); - - addedviewsIds.map((id) => - assignviewToWorkspace({ - workspaceId, - viewId: id - }).unwrap() - ); - - removedviewsIds.map((id) => - unassignviewFromWorkspace({ - workspaceId, - viewId: id - }).unwrap() - ); - - setviewsData([]); - setWorkspaceviewsData([]); - setviewsPage(0); - setviewsOfWorkspacePage(0); - handleAssignviewModalClose(); - }; - - const handleAssignviewsData = (updatedAssignedData: Pattern[]): void => { - const { addedviewsIds, removedviewsIds } = getAddedAndRemovedviews(updatedAssignedData); - setDisableTransferButton(!(addedviewsIds.length > 0 || removedviewsIds.length > 0)); - setAssignedviews(updatedAssignedData); - }; - - return { - data: viewsData, - workspaceData: workspaceviewsData, - assignModal: assignviewModal, - handleAssignModal: handleAssignviewModal, - handleAssignModalClose: handleAssignviewModalClose, - handleAssignablePage: handleAssignablePageview, - handleAssignedPage: handleAssignedPageview, - handleAssign: handleAssignviews, - isActivityOccurred: isViewsActivityOccurred, - handleAssignData: handleAssignviewsData, - disableTransferButton, - assignedItems: assignedviews - }; -}; - -export default useViewAssignment; diff --git a/src/custom/Workspaces/index.ts b/src/custom/Workspaces/index.ts deleted file mode 100644 index 52c295604..000000000 --- a/src/custom/Workspaces/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -import AssignmentModal from './AssignmentModal'; -import DesignTable from './DesignTable'; -import EnvironmentTable from './EnvironmentTable'; -import WorkspaceCard from './WorkspaceCard'; -import WorkspaceContentMoveModal from './WorkspaceContentMoveModal'; -import WorkspaceEnvironmentSelection from './WorkspaceEnvironmentSelection'; -import WorkspaceRecentActivityModal from './WorkspaceRecentActivityModal'; -import WorkspaceTeamsTable from './WorkspaceTeamsTable'; -import WorkspaceViewsTable from './WorkspaceViewsTable'; -import useDesignAssignment from './hooks/useDesignAssignment'; -import useEnvironmentAssignment from './hooks/useEnvironmentAssignment'; -import useTeamAssignment from './hooks/useTeamAssignment'; -import useViewAssignment from './hooks/useViewsAssignment'; -import { L5DeleteIcon, L5EditIcon } from './styles'; - -export { - AssignmentModal, - DesignTable, - EnvironmentTable, - L5DeleteIcon, - L5EditIcon, - useDesignAssignment, - useEnvironmentAssignment, - useTeamAssignment, - useViewAssignment, - WorkspaceCard, - WorkspaceContentMoveModal, - WorkspaceEnvironmentSelection, - WorkspaceRecentActivityModal, - WorkspaceTeamsTable, - WorkspaceViewsTable -}; diff --git a/src/custom/Workspaces/styles.tsx b/src/custom/Workspaces/styles.tsx deleted file mode 100644 index b943ecd4f..000000000 --- a/src/custom/Workspaces/styles.tsx +++ /dev/null @@ -1,421 +0,0 @@ -import { Box, Button, Card, Checkbox, Grid2, IconButton, Typography } from '../../base'; - -import { DeleteIcon, EditIcon } from '../../icons'; -import { styled, useTheme } from '../../theme'; -import { charcoal } from '../../theme/colors/colors'; -import { CustomTooltip } from '../CustomTooltip'; - -export const ModalActionDiv = styled('div')({ - display: 'flex', - gap: '1rem' -}); - -interface ExtendedEditIconProps { - onClick: () => void; - disabled?: boolean; - bulk?: boolean; - style?: React.CSSProperties; - title?: string; -} - -export const TableHeader = styled('div')({ - display: 'flex', - justifyContent: 'space-between', - width: '100%', - alignItems: 'center' -}); - -export const TableRightActionHeader = styled('div')({ - display: 'flex', - alignItems: 'center', - marginRight: '1rem' -}); - -export const CellStyle = styled('div')({ - boxSizing: 'border-box', - overflow: 'hidden', - textOverflow: 'ellipsis', - whiteSpace: 'nowrap' -}); - -export const CustomBodyRenderStyle = styled('div')({ - position: 'absolute', - top: 0, - right: 0, - bottom: 0, - left: 0, - boxSizing: 'border-box', - display: 'block', - width: '100%' -}); - -export const TableTopIcon = styled('span')(() => ({ - '& svg': { - cursor: 'pointer', - width: '2rem', - height: '2rem' - } -})); - -export const DisabledTableTopIcon = styled('span')(() => ({ - '& svg': { - width: '2rem', - height: '2rem' - } -})); - -export const MesheryDeleteIcon = styled('span')(({ theme }) => ({ - '& svg': { - color: '#3C494F', - '&:hover': { - color: theme.palette.error.error - } - } -})); - -export const TableIconsDisabledContainer = styled('span')(() => ({ - color: '#455a64', - opacity: '0.5', - '& svg': { - cursor: 'not-allowed' - } -})); - -export const TableTopIconsWrapper = styled('div')(() => ({ - display: 'flex', - justifyContent: 'space-between', - paddingRight: '26px' -})); - -export const TableIconsContainer = styled('div')(() => ({ - color: '#455a64', - display: 'flex', - cursor: 'not-allowed', - '& svg': { - cursor: 'pointer' - } -})); - -export const BulkSelectCheckbox = styled(Checkbox)({ - padding: 0, - marginRight: '0.5rem', - height: '28px', - '& .MuiSvgIcon-root': { - borderColor: 'white' - }, - color: 'white', - '&:hover': { - color: 'white', - cursor: 'pointer' - }, - '&.Mui-checked': { - color: 'white' - } -}); - -export const CardTitle = styled(Typography)({ - fontSize: '1.25rem', - fontWeight: 800, - '&:hover': { - cursor: 'default' - } -}); - -export const OrganizationName = styled(Typography)({ - fontSize: '0.9rem', - display: 'flex', - alignItems: 'end', - padding: '0 5px', - '&:hover': { - cursor: 'default' - } -}); - -export const StyledIconButton = styled('button')({ - background: 'transparent', - border: 'none', - '&:hover': { - cursor: 'default' - } -}); - -export const DateLabel = styled(Typography)({ - fontStyle: 'italic', - fontSize: '12px', - '&:hover': { - cursor: 'default' - } -}); - -export const EmptyDescription = styled(Typography)({ - fontSize: '0.9rem', - textAlign: 'left', - fontStyle: 'italic' -}); - -export const DescriptionLabel = styled(EmptyDescription)({ - height: 'fit-content', - fontStyle: 'normal', - '&:hover': { - cursor: 'default' - } -}); - -export const AllocationButton = styled(Box)(({ theme }) => ({ - background: theme.palette.background.brand?.default, - padding: '10px 10px 1px 10px', - borderRadius: '4px', - height: '100%', - display: 'flex', - width: '100%' -})); - -export const AllocationWorkspace = styled(AllocationButton)({ - display: 'flex', - width: '100%', - gap: '10px', - ['@media (min-width : 600px)']: { - flexDirection: 'column', - gap: '0' - } -}); - -export const PopupButton = styled(Button)(({ theme }) => ({ - width: '100%', - borderRadius: '4px', - background: theme.palette.background.brand?.default, - boxShadow: '0px 4px 4px 0px rgba(0, 0, 0, 0.25)', - display: 'flex', - flexDirection: 'column', - marginBottom: '10px', - color: theme.palette.text.default, - '&:hover': { - background: theme.palette.text.default - }, - padding: '15px 10px' -})); - -interface TabStyleProps { - textColor?: string; -} - -export const TabTitle = styled('p')<TabStyleProps>(({ theme, textColor }) => ({ - margin: '0', - fontSize: '14px', - fontWeight: '400', - display: 'flex', - color: textColor || theme.palette.text.constant?.white -})); - -export const TabCount = styled('p')<TabStyleProps>(({ theme, textColor }) => ({ - margin: '0', - fontSize: '60px', - fontWeight: '500', - lineHeight: 1, - marginBottom: '5px', - color: textColor || theme.palette.text.constant?.white -})); - -export const ViewButton = styled(Button)(({ theme }) => ({ - width: '100%', - borderRadius: '4px', - background: theme.palette.text.default, - boxShadow: '0px 4px 4px 0px rgba(0, 0, 0, 0.25)', - display: 'flex', - flexDirection: 'column', - marginBottom: '10px', - color: `${charcoal[40]}30 !important`, - '&:hover': { - background: theme.palette.text.default - }, - padding: '15px 10px' -})); - -interface IconWrapperProps { - disabled?: boolean; -} - -export const IconWrapper = styled('div')<IconWrapperProps>(({ disabled = false }) => ({ - cursor: disabled ? 'not-allowed' : 'pointer', - opacity: disabled ? '0.5' : '1', - display: 'flex', - '& svg': { - cursor: disabled ? 'not-allowed' : 'pointer' - } -})); - -export const Record = styled(Grid2)(({ theme }) => ({ - borderBottom: `1px solid ${theme.palette.divider}`, - display: 'flex', - flexDirection: 'row', - padding: '5px 0' -})); - -export const L5DeleteIcon = ({ - onClick, - bulk, - disabled, - style, - key, - title = 'Delete' -}: { - onClick: () => void; - bulk?: boolean; - disabled?: boolean; - style?: React.CSSProperties; - key?: string; - title?: string; -}) => { - const theme = useTheme(); - return ( - <CustomTooltip title={title} key={key} arrow> - <div> - <IconButton - sx={{ - '&:hover': { - '& svg': { - fill: disabled ? theme.palette.icon.disabled : theme.palette.background.error?.hover - } - }, - ...style - }} - disableRipple - disabled={disabled} - onClick={onClick} - > - <DeleteIcon - fill={disabled ? theme.palette.icon.disabled : theme.palette.icon.default} - width={bulk ? '28' : '24'} - height={bulk ? '28' : '24'} - style={style} - /> - </IconButton> - </div> - </CustomTooltip> - ); -}; - -export const L5EditIcon = ({ - onClick, - disabled, - bulk, - style, - title = 'Edit' -}: ExtendedEditIconProps) => { - const theme = useTheme(); - return ( - <CustomTooltip title={title} arrow> - <div> - <IconButton - onClick={onClick} - sx={{ - '&:hover': { - '& svg': { - fill: disabled - ? theme.palette.icon.disabled - : theme.palette.background.brand?.default - } - }, - ...style - }} - disableRipple - disabled={disabled} - > - <EditIcon - fill={disabled ? theme.palette.icon.disabled : theme.palette.icon.default} - width={bulk ? '28' : '24'} - height={bulk ? '28' : '24'} - style={style} - /> - </IconButton> - </div> - </CustomTooltip> - ); -}; - -export const WorkspaceCardGrid = styled(Grid2)({ - display: 'flex', - flexDirection: 'row' -}); - -export const DescriptionGrid = styled(Grid2)({ - display: 'flex', - alignItems: 'center', - marginTop: 1 -}); - -export const AllocationColumnGrid = styled(Grid2)({ - width: '100%' -}); - -export const CardWrapper = styled(Card)(({ theme }) => ({ - width: '100%', - display: 'flex', - flexDirection: 'column', - backgroundColor: theme.palette.background.paper, - padding: theme.spacing(2.5), - cursor: 'pointer' -})); - -export const CardBackWrapper = styled(CardWrapper)(({ theme }) => ({ - minHeight: theme.spacing(50), - background: 'linear-gradient(180deg, #007366 0%, #000 100%)' -})); - -export const CardFrontWrapper = styled(CardWrapper)(({ theme }) => ({ - minHeight: theme.spacing(50), - - backgroundColor: theme.palette.background.paper, - boxShadow: 'none' -})); - -export const CardBackTopGrid = styled(Grid2)({ - display: 'flex', - flexDirection: 'row', - justifyContent: 'space-between' -}); - -export const CardBackTitleGrid = styled(Grid2)({ - display: 'flex', - alignItems: 'flex-start' -}); - -export const CardBackActionsGrid = styled(Grid2)({ - display: 'flex', - alignItems: 'center', - justifyContent: 'flex-end' -}); - -export const RecentActivityTitle = styled(Typography)(({ theme }) => ({ - fontSize: '1.25rem', - fontWeight: 600, - padding: '0.5rem 0', - color: theme.palette.background.constant?.white -})); - -export const RecentActivityGrid = styled(Grid2)({ - display: 'flex', - flexDirection: 'column', - maxHeight: '14.5rem', - overflowY: 'scroll', - scrollbarWidth: 'none', - '&::-webkit-scrollbar': { - display: 'none' - }, - '-ms-overflow-style': 'none' -}); - -export const DateGrid = styled(Grid2)(({ theme }) => ({ - display: 'flex', - flexDirection: 'row', - position: 'absolute', - bottom: '20px', - width: '100%', - color: `${theme.palette.background.constant?.white}99`, - justifyContent: 'space-between', - paddingRight: '40px' -})); - -export const DateColumnGrid = styled(Grid2)({ - textAlign: 'left' -}); diff --git a/src/custom/Workspaces/types.ts b/src/custom/Workspaces/types.ts deleted file mode 100644 index 280c4ec97..000000000 --- a/src/custom/Workspaces/types.ts +++ /dev/null @@ -1,45 +0,0 @@ -export interface AssignmentHookResult<T> { - data: T[]; - workspaceData: T[]; - assignModal: boolean; - handleAssignModal: (e?: React.MouseEvent) => void; - handleAssignModalClose: (e?: React.MouseEvent) => void; - handleAssignablePage: () => void; - handleAssignedPage: () => void; - handleAssign: () => void; - handleAssignData: (data: T[]) => void; - isActivityOccurred?: (allItems: T[]) => boolean; - disableTransferButton: boolean; - assignedItems: T[]; -} - -export interface Workspace { - id: string; - name: string; - description?: string; - created_at: string; - updated_at: string; - deleted_at: { - Valid: boolean; - }; -} - -export interface Environment { - id: string; - name: string; - description?: string; - organization_id: string; - created_at: string; - updated_at: string; -} - -export interface Team { - id: string; - name: string; - team_id: string; - description?: string; - team_name: string; - deleted_at: { - Valid: boolean; - }; -} diff --git a/src/custom/index.tsx b/src/custom/index.tsx deleted file mode 100644 index 8cea123bb..000000000 --- a/src/custom/index.tsx +++ /dev/null @@ -1,169 +0,0 @@ -import { ActionButton } from './ActionButton'; -import { BBChart } from './BBChart'; -import { BookmarkNotification } from './BookmarkNotification'; -import { Carousel } from './Carousel'; -import CatalogFilter, { CatalogFilterProps } from './CatalogFilter/CatalogFilter'; -import { ChapterCard } from './ChapterCard'; -import { CollaboratorAvatarGroup } from './CollaboratorAvatarGroup'; -import { ConnectionChip } from './ConnectionChip'; -import { CatalogCardDesignLogo, CustomCatalogCard, EmptyStateCard } from './CustomCatalog'; -import { - CustomColumn, - CustomColumnVisibilityControl, - CustomColumnVisibilityControlProps -} from './CustomColumnVisibilityControl/CustomColumnVisibilityControl'; -import { CustomImage } from './CustomImage'; -import { CustomTooltip, InfoTooltip } from './CustomTooltip'; -import { - CustomDialog, - StyledDialogActions, - StyledDialogContent, - StyledDialogTitle -} from './Dialog'; -import { CustomDialogProps } from './Dialog/CustomDialog'; -import { EmptyState } from './EmptyState'; -import { - ErrorBoundary, - Fallback, - withErrorBoundary, - withSuppressedErrorBoundary -} from './ErrorBoundary'; -import { FeedbackButton } from './Feedback'; -import { FlipCard, FlipCardProps } from './FlipCard'; -import { FormatId } from './FormatId'; -import { useWindowDimensions } from './Helpers/Dimension'; -import { useNotificationHandler } from './Helpers/Notification'; -import { ColView, updateVisibleColumns } from './Helpers/ResponsiveColumns/responsive-coulmns.tsx'; -import { LearningCard } from './LearningCard'; -import { BasicMarkdown, RenderMarkdown } from './Markdown'; -import { ModalCard } from './ModalCard'; -import PopperListener, { IPopperListener } from './PopperListener'; -import { PROMPT_VARIANTS, PromptComponent } from './Prompt'; -import ResponsiveDataTable, { - DataTableEllipsisMenu, - ResponsiveDataTableProps -} from './ResponsiveDataTable'; -import SearchBar, { SearchBarProps } from './SearchBar'; -import { TeamTable, TeamTableConfiguration } from './TeamTable'; -import { TooltipIcon } from './TooltipIconButton'; -import { TransferList } from './TransferModal/TransferList'; -import { TransferListProps } from './TransferModal/TransferList/TransferList'; -import UniversalFilter, { UniversalFilterProps } from './UniversalFilter'; -import { UserTableAvatarInfo, UsersTable } from './UsersTable'; -import { VisibilityChipMenu } from './VisibilityChipMenu'; -export { CatalogCard } from './CatalogCard'; -export { CatalogFilterSidebar } from './CatalogFilterSection'; -export type { FilterListType } from './CatalogFilterSection'; -export { StyledChartDialog } from './ChartDialog'; -export { InputSearchField } from './InputSearchField'; -export { LearningContent } from './LearningContent'; -export { NavigationNavbar } from './NavigationNavbar'; -export { Note } from './Note'; -export { Panel } from './Panel'; -export { - OpenLeaderBoardButton, - PerformersSection, - PerformersSectionButton -} from './PerformersSection'; -export { SetupPreReq } from './SetupPrerequisite'; -export { StyledChapter } from './StyledChapter'; -export { StyledSearchBar } from './StyledSearchBar'; -export { Terminal } from './Terminal'; -export { TOC } from './TOCChapter'; -export { TOCLearning } from './TOCLearning'; -export { UserSearchField } from './UserSearchField'; - -export { - ActionButton, - BBChart, - BookmarkNotification, - Carousel, - CatalogCardDesignLogo, - CatalogFilter, - ChapterCard, - CollaboratorAvatarGroup, - ConnectionChip, - CustomCatalogCard, - CustomColumnVisibilityControl, - CustomDialog, - CustomImage, - CustomTooltip, - DataTableEllipsisMenu, - EmptyState, - EmptyStateCard, - ErrorBoundary, - Fallback, - FeedbackButton, - FlipCard, - FormatId, - InfoTooltip, - LearningCard, - ModalCard, - PROMPT_VARIANTS, - PopperListener, - PromptComponent, - ResponsiveDataTable, - SearchBar, - StyledDialogActions, - StyledDialogContent, - StyledDialogTitle, - TeamTable, - TeamTableConfiguration, - TooltipIcon, - TransferList, - UniversalFilter, - UserTableAvatarInfo, - UsersTable, - VisibilityChipMenu, - updateVisibleColumns, - useNotificationHandler, - useWindowDimensions, - withErrorBoundary, - withSuppressedErrorBoundary -}; - -//Custom Modal -export { - CloseBtn, - Modal, - ModalBody, - ModalButtonDanger, - ModalButtonPrimary, - ModalButtonSecondary, - ModalButtonTertiary, - ModalFooter, - ModalStyledHeader, - PrimaryActionButtons, - useModal -} from './Modal'; - -// Markdown -export { StyledMarkdown } from './Markdown/style'; -export { BasicMarkdown, RenderMarkdown }; - -// Stepper -export { CustomizedStepper, useStepper } from './Stepper'; - -export type { - CatalogFilterProps, - ColView, - CustomColumn, - CustomColumnVisibilityControlProps, - CustomDialogProps, - FlipCardProps, - IPopperListener, - ResponsiveDataTableProps, - SearchBarProps, - TransferListProps, - UniversalFilterProps -}; - -export * from './CatalogDesignTable'; -export * from './CatalogDetail'; -export * from './DashboardWidgets'; -export * from './Dialog'; -export * from './permissions'; -export * from './ResourceDetailFormatters'; -export * from './ShareModal'; -export * from './UserSearchField'; -export * from './Workspaces'; diff --git a/src/custom/permissions.tsx b/src/custom/permissions.tsx deleted file mode 100644 index 0951708d3..000000000 --- a/src/custom/permissions.tsx +++ /dev/null @@ -1,110 +0,0 @@ -// import { CAN, getCapabilitiesRegistry, getMesheryEventBus } from '@/globals/mesherySdk'; -import React from 'react'; -import { EventBus } from '../actors/eventBus'; - -export interface Key { - subject: string; - action: string; -} - -export type InvertAction = 'disable' | 'hide'; - -export type MissingPermissionReason = { - type: 'MISSING_PERMISSION'; - data: { - keyId: string; - }; -}; - -export type MissingCapabilityReason = { - type: 'MISSING_CAPABILITY'; - data: { - capabilityId: string; - }; -}; - -export type ReasonEvent = MissingPermissionReason | MissingCapabilityReason; - -export interface HasKeyProps<ReasonEvent> { - Key?: Key; - predicate?: (capabilitiesRegistry: unknown) => [boolean, ReasonEvent]; // returns a boolean and an event if the user does not have the permission - children: React.ReactNode; - notifyOnclick?: boolean; - invert_action?: InvertAction[]; -} - -// returns the children if the user has the permission to view the component or if a key is not provided -// if the user does not have the permission to view the component, it will return null or a disabled version of the component specified by the invert_action prop -export const createCanShow = ( - getCapabilitiesRegistry = () => {}, - CAN: (action: string, subject: string) => boolean, - eventBus: () => EventBus<ReasonEvent> -) => { - return ({ - Key, - children, - notifyOnclick = true, - predicate, - invert_action = ['disable'] - }: HasKeyProps<ReasonEvent>) => { - if (!children) { - return null; - } - - const hasKey = Key?.subject ? CAN(Key?.action, Key?.subject) : true; - const predicateRes = predicate && predicate(getCapabilitiesRegistry()); - - const can = predicateRes ? predicateRes[0] && hasKey : hasKey; - - const reason = predicateRes?.[1] || { - type: 'MISSING_PERMISSION', - data: { - keyId: Key?.action as string - } - }; - - if (can) { - return children; - } - - if (invert_action.includes('hide')) { - return null; - } - - const pointerEvents = notifyOnclick ? 'auto' : 'none'; - - const onClick = notifyOnclick - ? (e: React.MouseEvent<HTMLDivElement | HTMLElement>) => { - e.stopPropagation(); - console.log('cant perform action : reason', reason, eventBus); - const mesheryEventBus = eventBus(); - mesheryEventBus.publish(reason); - } - : () => {}; - - const opacity = invert_action.includes('disable') ? 0.5 : 1; - - return ( - <div - style={{ - cursor: 'pointer', - pointerEvents, - opacity: opacity - }} - onClick={onClick} - > - {React.cloneElement(children as React.ReactElement, { - style: { - ...((children as React.ReactElement).props.style as React.CSSProperties), - cursor: 'pointer', - pointerEvents, - opacity: opacity - }, - onClick: onClick - })} - </div> - ); - - return null; - }; -}; diff --git a/src/custom/readme.md b/src/custom/readme.md deleted file mode 100644 index ca8238825..000000000 --- a/src/custom/readme.md +++ /dev/null @@ -1,111 +0,0 @@ -# Custom Components - -## Responsive Data Table Component - -This custom React component, `ResponsiveDataTable`, is a wrapper around the Material-UI (MUI) DataTables library (`mui-datatables`). It provides a responsive and customizable table with additional features tailored for specific use cases. Below is an explanation of each component and its functionalities. - -## Props - -### Column Interface - -| Property | Type | Description | -| -------------------------- | --------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `name` | `string` | The key representing the column in the data array. | -| `label` | `string` | The label to be displayed for the column. | -| `options` | `object` | (Optional) Additional options for customizing the column behavior. | -| `options.filter` | `boolean` | (Optional) Enable or disable filtering for the column. | -| `options.sort` | `boolean` | (Optional) Enable or disable sorting for the column. | -| `options.searchable` | `boolean` | (Optional) Enable or disable searching for the column. | -| `options.display` | `boolean` | (Optional) Set to `true` if the column should be displayed initially. | -| `options.sortDescFirst` | `boolean` | (Optional) Set to `true` to sort the column in descending order initially. | -| `options.customBodyRender` | `(value: string \| number \| boolean \| object) => JSX.Element` | (Optional) Custom function for rendering the column's body. | - -### DataTableProps Interface - -| Property | Type | Description | -| ------------------ | -------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| `data` | `string[][]` | The data to be displayed in the table. | -| `columns` | `Column[]` | An array of column definitions. | -| `options` | `object` | (Optional) Additional options for customizing the MUI DataTable. | -| `tableCols` | `Column[]` | (Optional) Columns to be displayed in the MUI DataTable. If not provided, all columns will be displayed. | -| `updateCols` | `(columns: Column[]) => void` | (Optional) Callback function to update column visibility. | -| `columnVisibility` | `Record<string, boolean> \| undefined` | (Optional) Object representing the visibility status of each column. | -| `theme` | `object` | (Optional) Theme object for styling the table. | -| `colViews` | `Record<string, boolean> \| undefined` | (Optional) Object representing the visibility status of each column. This is similar to `columnVisibility`. | - -### Standard Props - -| Property | Type | Description | -| -------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `rowsPerPageOptions` | `number[]` | (Optional) Array of numbers representing the number of rows per page. If not provided, the default values will be used(20, 50, 100). | - -### Customization - -### Column Visibility - -The `ResponsiveDataTable` component allows for columns to be hidden or shown based on the user's preference. This is done by passing a `columnVisibility` object to the component. The keys of the object should be the column names, and the values should be booleans representing the visibility status of each column. The `updateCols` prop is also required to be passed to the component. This prop is a callback function that will be called whenever the user changes the visibility of a column. The function will be passed an array of column definitions, which can be used to update the `columns` prop of the component. The `ResponsiveDataTable` component will then re-render with the updated columns. - -### Custom rendering - -Custom rendering for specific columns can be achieved using the `options.customBodyRender` property in the column definition. This is useful for formatting dates or rendering complex data. - -### Date formatting - -The component includes a formatDate function to format date values consistently. You can customize the date formatting by modifying the formatDate function. - -<hr> - -## Custom Search Component - -## Overview - -The `SearchBar` component is a reusable search bar. This component provides a user-friendly interface for searching within your application. It features a text input field with the ability to expand and collapse, a search icon, and a clear icon for removing the entered search text. - -## Props - -| Property | Type | Description | -| ------------- | -------- | ------------------------------------------------------------------------------------- | -| `onSearch` | `func` | Callback function to handle the search logic. | -| `onClear` | `func` | Callback function to handle the clear logic. | -| `placeholder` | `string` | (Optional) Placeholder text to be displayed in the search bar. | -| `expanded` | `bool` | (Optional) Set to `true` if the search bar should be expanded initially. | -| `setExpanded` | `func` | (Optional) Callback function to update the expanded state of the search bar. | -| `iconFill` | `string` | (Optional) Color of the search icon. If not provided, the default color will be used. | - -## Usage - -```javascript -import React, { useState } from 'react'; -import SearchBar from '@sistent/sistent/components'; - -function App() { - const [searchText, setSearchText] = useState(''); - - // this handles the search logic only will be needed if the api doesn't have search param - const handleSearch = (text) => { - // Handle the search logic here - setSearchText(text); - }; - - const handleClear = () => { - // Handle the clear logic here - setSearchText(''); - }; - - return ( - <div> - <SearchBar - onSearch={handleSearch} - onClear={handleClear} - placeholder="Search..." - expanded={searchText !== ''} - setExpanded={(isExpanded) => setSearchText(isExpanded)} - iconFill="#000" // Optional: customize the icon color - /> - {/* Your application content here */} - </div> - ); -} - -export default App; -``` diff --git a/src/hooks/index.ts b/src/hooks/index.ts deleted file mode 100644 index 855448bb6..000000000 --- a/src/hooks/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './useRoomActivity'; diff --git a/src/hooks/useRoomActivity.ts b/src/hooks/useRoomActivity.ts deleted file mode 100644 index 361f1dd20..000000000 --- a/src/hooks/useRoomActivity.ts +++ /dev/null @@ -1,220 +0,0 @@ -import { MutableRefObject, useEffect, useRef, useState } from 'react'; -import { - ICE_SERVERS, - ICEServer, - MESHERY_CLOUD_PROD, - MESHERY_CLOUD_STAGING, - MESHERY_CLOUD_WS_PROD, - MESHERY_CLOUD_WS_STAGING -} from '../constants/constants'; - -interface UserProfile { - [key: string]: unknown; -} - -interface CollaborationConfigParams { - provider_url: string; - getUserProfile: () => Promise<{ data: UserProfile }>; - getUserAccessToken: () => Promise<{ data: string }>; -} - -interface CollaborationConfig { - signalingUrl: string[]; - user: UserProfile; - authToken: string; - refreshAuthToken: () => Promise<string>; - websocketCallbacks: string[]; - peerOpts: { - config: { - iceServers: ICEServer[]; - }; - }; -} - -interface SubscribeToRoomsActivityMessage { - type: string; -} - -interface UserMapChangeMessage { - type: string; - user_map?: UserMapping; -} - -interface UserMapping { - [roomId: string]: { - [userId: string]: unknown; - }; -} - -interface UseRoomActivityParams { - provider_url: string; - getUserProfile: () => Promise<{ data: UserProfile }>; - getUserAccessToken: () => Promise<{ data: string }>; -} - -const SUBSCRIBE_TO_ROOMS_ACTIVITY_MSG: SubscribeToRoomsActivityMessage = { - type: 'subscribe_to_rooms_activity' -}; -const USER_MAP_CHANGE_MSG = 'user_map'; - -/** - * Determines the appropriate websocket host based on the provider host - * @param {string} providerHost - The provider host - * @returns {string} - The websocket host - */ -const getWebsocketHost = (providerHost: string): string => { - if (providerHost === MESHERY_CLOUD_PROD) { - return MESHERY_CLOUD_WS_PROD; - } else if (providerHost === MESHERY_CLOUD_STAGING) { - return MESHERY_CLOUD_WS_STAGING; - } - - return providerHost; -}; - -/** - * Determines the appropriate WebSocket protocol based on current page protocol - * @returns {string} - WebSocket protocol ('ws://' or 'wss://') - */ -export function getWebSocketProtocol(): string { - const isSecure = window.location.protocol === 'https:'; // https only accepts secure websockets - return isSecure ? 'wss://' : 'ws://'; -} - -/** - * Constructs a signaling URL from a provider URL - * @param {string} providerUrl - The provider URL - * @returns {string} - The signaling URL - */ -const getSignalingUrlFromProviderUrl = (providerUrl: string): string => { - const parsedUrl = new URL(providerUrl); - const websocketHost = getWebsocketHost(parsedUrl.host); - const protocol = websocketHost === MESHERY_CLOUD_WS_PROD ? 'wss://' : getWebSocketProtocol(); - return `${protocol}${websocketHost}/collaboration`; -}; - -/** - * Gets collaboration configuration for WebRTC - */ -export const getCollaborationConfig = async ({ - provider_url, - getUserProfile, - getUserAccessToken -}: CollaborationConfigParams): Promise<CollaborationConfig> => { - const { data: userProfile } = await getUserProfile(); - - const websocketCallbacks = ['user_info', 'user_left', 'user_joined', 'user_map']; - - // Fetch token after fetching provider and user so that it - // gets refreshed if necessary. - const { data: accessToken } = await getUserAccessToken(); - const refreshToken = async () => { - return (await getUserAccessToken()).data; - }; - - return { - signalingUrl: [getSignalingUrlFromProviderUrl(provider_url)], - user: userProfile, - authToken: accessToken, - refreshAuthToken: refreshToken, - websocketCallbacks, - peerOpts: { - config: { - iceServers: ICE_SERVERS - } - } - }; -}; - -/** - * Subscribes to room activity via WebSocket - */ -const subscribeToRoomActivity = async ( - wsRef: React.MutableRefObject<WebSocket | null>, - onUserMapChange: (userMap: UserMapping) => void, - provider_url: string, - getUserProfile: () => Promise<{ data: UserProfile }>, - getUserAccessToken: () => Promise<{ data: string }> -): Promise<void> => { - const config = await getCollaborationConfig({ - provider_url, - getUserProfile, - getUserAccessToken - }); - - // Create the websocket connection with proper headers - const ws = new WebSocket(config.signalingUrl[0], ['auth', config.authToken]); - wsRef.current = ws; - - ws.addEventListener('open', () => { - console.log('[RoomActivity] connected to room activity'); - ws.send(JSON.stringify(SUBSCRIBE_TO_ROOMS_ACTIVITY_MSG)); - }); - - ws.addEventListener('message', (event: MessageEvent) => { - console.log('[RoomActivity] new message', event); - const data = JSON.parse(event.data) as UserMapChangeMessage; - if (data.type === USER_MAP_CHANGE_MSG && data.user_map) { - onUserMapChange(data.user_map); - } - }); - - ws.addEventListener('close', () => { - console.log('[RoomActivity] subscription to room activity closed'); - }); - - ws.addEventListener('error', (err: Event) => { - console.error('[RoomActivity] error in room activity subscription', err); - }); -}; - -/** - * Hook to subscribe to and get room activity data - */ -export const useRoomActivity = ({ - provider_url, - getUserProfile, - getUserAccessToken -}: UseRoomActivityParams): [UserMapping, MutableRefObject<WebSocket | null>] => { - const [allRoomsUserMapping, setAllRoomsUserMapping] = useState<UserMapping>({}); - const wsRef = useRef<WebSocket | null>(null); - - useEffect(() => { - subscribeToRoomActivity( - wsRef, - setAllRoomsUserMapping, - provider_url, - getUserProfile, - getUserAccessToken - ); - - const ws = wsRef.current; - - return () => { - if (ws) { - console.log('closing websocket', ws); - ws.close(); - } - }; - }, [provider_url, getUserProfile, getUserAccessToken]); - - return [allRoomsUserMapping, wsRef]; -}; - -export const subscribeToRoom = (ws: WebSocket, room: string) => { - ws.send( - JSON.stringify({ - type: 'subscribe', - topic: room - }) - ); -}; - -export const unSubscribeRoom = (ws: WebSocket, room: string) => { - ws.send( - JSON.stringify({ - type: 'unsubscribe', - topic: room - }) - ); -}; diff --git a/src/icons/Add/AddIcon.tsx b/src/icons/Add/AddIcon.tsx deleted file mode 100644 index 563551257..000000000 --- a/src/icons/Add/AddIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const AddIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="add-icon-svg" - {...props} - > - <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" fill={fill} /> - </svg> - ); -}; - -export default AddIcon; diff --git a/src/icons/Add/index.ts b/src/icons/Add/index.ts deleted file mode 100644 index f9daca9f1..000000000 --- a/src/icons/Add/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as AddIcon } from './AddIcon'; diff --git a/src/icons/AddCircle/AddCircleIcon.tsx b/src/icons/AddCircle/AddCircleIcon.tsx deleted file mode 100644 index ce8be4836..000000000 --- a/src/icons/AddCircle/AddCircleIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const AddIconCircleBordered = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 48 48" - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path d="M0 0h48v48h-48z" fill={fill} /> - <path d="M26 14h-4v8h-8v4h8v8h4v-8h8v-4h-8v-8zm-2-10c-11.05 0-20 8.95-20 20s8.95 20 20 20 20-8.95 20-20-8.95-20-20-20zm0 36c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z" /> - </svg> - ); -}; - -export default AddIconCircleBordered; diff --git a/src/icons/AddCircle/index.ts b/src/icons/AddCircle/index.ts deleted file mode 100644 index 2b4a88c06..000000000 --- a/src/icons/AddCircle/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as AddCircleIcon } from './AddCircleIcon'; diff --git a/src/icons/Alert/index.tsx b/src/icons/Alert/index.tsx deleted file mode 100644 index 535fb8b2e..000000000 --- a/src/icons/Alert/index.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -function AlertIcon({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}: IconProps): JSX.Element { - return ( - <svg - viewBox="0 0 20 20" - xmlns="http://www.w3.org/2000/svg" - height={height} - width={width} - fill="#fff" - style={props.style} - > - <path - d="M11.6042 11.6667H9.89591V7.49999H11.6042V11.6667ZM11.6042 15H9.89591V13.3333H11.6042V15ZM1.35425 17.5H20.1459L10.7501 1.66666L1.35425 17.5Z" - fill={fill} - /> - </svg> - ); -} - -export default AlertIcon; - -export { AlertIcon }; diff --git a/src/icons/Application/ApplicationIcon.tsx b/src/icons/Application/ApplicationIcon.tsx deleted file mode 100644 index 177c70781..000000000 --- a/src/icons/Application/ApplicationIcon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const ApplicationIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 53 47" - data-testid="application-icon-svg" - {...props} - > - <path d="M34.208 2.886A3.938 3.938 0 0 0 32.406.521a3.868 3.868 0 0 0-5.3 1.432l-.59 1.042-.59-1.042A3.92 3.92 0 0 0 20.61.521a3.903 3.903 0 0 0-1.416 5.322l2.845 4.933-10.506 18.175H3.885a3.892 3.892 0 0 0 0 7.78h29.516l-4.492-7.78h-8.408L33.82 5.845a3.784 3.784 0 0 0 .388-2.959Z" /> - <path d="M49.113 28.95h-7.646l-8.688-15.063-4.492 7.78 13.49 23.389a3.802 3.802 0 0 0 2.364 1.809 3.806 3.806 0 0 0 2.952-.39 3.889 3.889 0 0 0 1.415-5.306l-2.55-4.44h3.157a3.892 3.892 0 0 0 0-7.78l-.002.001Z" /> - <path d="m5.254 39.843-.762 1.322a3.88 3.88 0 0 0 1.43 5.306c.59.343 1.26.52 1.942.514a3.897 3.897 0 0 0 3.375-1.945l2.984-5.197H5.254Z" /> - </svg> - ); -}; - -export default ApplicationIcon; diff --git a/src/icons/Application/KeppelApplicationIcon.tsx b/src/icons/Application/KeppelApplicationIcon.tsx deleted file mode 100644 index 9810dbe66..000000000 --- a/src/icons/Application/KeppelApplicationIcon.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { FC } from 'react'; -import { - CARIBBEAN_GREEN_FILL, - DEFAULT_HEIGHT, - DEFAULT_WIDTH, - KEPPEL_GREEN_FILL -} from '../../constants/constants'; -import { IconProps } from '../types'; - -type KeppelApplicationIconProps = { - primaryFill: string; - secondaryFill: string; -} & IconProps; - -export const KeppelApplicationIcon: FC<KeppelApplicationIconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - primaryFill = KEPPEL_GREEN_FILL, - secondaryFill = CARIBBEAN_GREEN_FILL, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 53 47" - {...props} - > - <path - d="M34.208 2.886A3.938 3.938 0 0 0 32.406.521a3.868 3.868 0 0 0-5.3 1.432l-.59 1.042-.59-1.042A3.92 3.92 0 0 0 20.61.521a3.903 3.903 0 0 0-1.416 5.322l2.845 4.933-10.506 18.175H3.885a3.892 3.892 0 0 0 0 7.78h29.516l-4.492-7.78h-8.408L33.82 5.845a3.784 3.784 0 0 0 .388-2.959Z" - fill={primaryFill} - /> - <path - d="M49.113 28.95h-7.646l-8.688-15.063-4.492 7.78 13.49 23.389a3.802 3.802 0 0 0 2.364 1.809 3.806 3.806 0 0 0 2.952-.39 3.889 3.889 0 0 0 1.415-5.306l-2.55-4.44h3.157a3.892 3.892 0 0 0 0-7.78l-.002.001Z" - fill={secondaryFill} - /> - <path - d="m5.254 39.843-.762 1.322a3.88 3.88 0 0 0 1.43 5.306c.59.343 1.26.52 1.942.514a3.897 3.897 0 0 0 3.375-1.945l2.984-5.197H5.254Z" - fill={primaryFill} - /> - </svg> - ); -}; - -export default KeppelApplicationIcon; diff --git a/src/icons/Application/OutlinedApplicationIcon.tsx b/src/icons/Application/OutlinedApplicationIcon.tsx deleted file mode 100644 index 588ff1676..000000000 --- a/src/icons/Application/OutlinedApplicationIcon.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { FC } from 'react'; -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const OutlinedApplicationIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - stroke = DEFAULT_STROKE, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 53 47" - data-testid="outlined-application-icon-svg" - {...props} - > - <path - d="M34.208 2.886A3.938 3.938 0 0 0 32.406.521a3.868 3.868 0 0 0-5.3 1.432l-.59 1.042-.59-1.042A3.92 3.92 0 0 0 20.61.521a3.903 3.903 0 0 0-1.416 5.322l2.845 4.933-10.506 18.175H3.885a3.892 3.892 0 0 0 0 7.78h29.516l-4.492-7.78h-8.408L33.82 5.845a3.784 3.784 0 0 0 .388-2.959Z" - fill={fill} - stroke={stroke} - /> - <path - opacity={0.8} - d="M49.113 28.95h-7.646l-8.688-15.063-4.492 7.78 13.49 23.389a3.802 3.802 0 0 0 2.364 1.809 3.806 3.806 0 0 0 2.952-.39 3.889 3.889 0 0 0 1.415-5.306l-2.55-4.44h3.157a3.892 3.892 0 0 0 0-7.78l-.002.001Z" - fill={fill} - stroke={stroke} - /> - <path - d="m5.254 39.843-.762 1.322a3.88 3.88 0 0 0 1.43 5.306c.59.343 1.26.52 1.942.514a3.897 3.897 0 0 0 3.375-1.945l2.984-5.197H5.254Z" - fill={fill} - stroke={stroke} - /> - </svg> - ); -}; - -export default OutlinedApplicationIcon; diff --git a/src/icons/Application/index.ts b/src/icons/Application/index.ts deleted file mode 100644 index 9854399b4..000000000 --- a/src/icons/Application/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { default as ApplicationIcon } from './ApplicationIcon'; -export { default as KeppelApplicationIcon } from './KeppelApplicationIcon'; -export { default as OutlinedApplicationIcon } from './OutlinedApplicationIcon'; diff --git a/src/icons/ArrowCompress/ArrowCompressIcon.tsx b/src/icons/ArrowCompress/ArrowCompressIcon.tsx deleted file mode 100644 index ed8380c6c..000000000 --- a/src/icons/ArrowCompress/ArrowCompressIcon.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const ArrowCompressIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 24 24" - fill="none" - xmlns="http://www.w3.org/2000/svg" - xmlnsXlink="http://www.w3.org/1999/xlink" - transform="matrix(-1,0,0,1,0,0)" - {...props} - > - <path - d="m5 5 5 5m0 0V5m0 5H5m14 9-5-5m0 0v5m0-5h5" - stroke="#000" - strokeWidth={2} - strokeLinecap="round" - strokeLinejoin="round" - /> - </svg> - ); -}; - -export default ArrowCompressIcon; diff --git a/src/icons/ArrowCompress/index.ts b/src/icons/ArrowCompress/index.ts deleted file mode 100644 index 4ca84f6fc..000000000 --- a/src/icons/ArrowCompress/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ArrowCompressIcon } from './ArrowCompressIcon'; diff --git a/src/icons/ArrowDropDown/ArrowDropDownIcon.tsx b/src/icons/ArrowDropDown/ArrowDropDownIcon.tsx deleted file mode 100644 index 422eb94bf..000000000 --- a/src/icons/ArrowDropDown/ArrowDropDownIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ArrowDropDownIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="arrow-drop-down-icon-svg" - {...props} - > - <path d="M7 10l5 5 5-5z" fill={fill} /> - </svg> - ); -}; - -export default ArrowDropDownIcon; diff --git a/src/icons/ArrowDropDown/index.ts b/src/icons/ArrowDropDown/index.ts deleted file mode 100644 index 9488a4113..000000000 --- a/src/icons/ArrowDropDown/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ArrowDropDownIcon } from './ArrowDropDownIcon'; diff --git a/src/icons/ArrowExpand/ArrowExpandIcon.tsx b/src/icons/ArrowExpand/ArrowExpandIcon.tsx deleted file mode 100644 index 0cce7ea11..000000000 --- a/src/icons/ArrowExpand/ArrowExpandIcon.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const ArrowCompressIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - stroke = 'currentColor', - ...props -}) => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 24 24" - xmlns="http://www.w3.org/2000/svg" - fill="none" - {...props} - > - <path - d="m5 5 5 5m0 0V5m0 5H5m14 9-5-5m0 0v5m0-5h5" - stroke={stroke} - strokeWidth={2} - strokeLinecap="round" - strokeLinejoin="round" - /> - </svg> - ); -}; - -export default ArrowCompressIcon; diff --git a/src/icons/ArrowExpand/index.ts b/src/icons/ArrowExpand/index.ts deleted file mode 100644 index a1f07b9ad..000000000 --- a/src/icons/ArrowExpand/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ArrowExpandIcon } from './ArrowExpandIcon'; diff --git a/src/icons/Article/ArticleIcon.tsx b/src/icons/Article/ArticleIcon.tsx deleted file mode 100644 index 01de32647..000000000 --- a/src/icons/Article/ArticleIcon.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ArticleIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="article-icon-svg" - {...props} - > - <path - d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-8v-2h8v2zm0-4h-8v-2h8v2zm0-4h-8V7h8v2z" - fill={fill} - /> - </svg> - ); -}; - -export default ArticleIcon; diff --git a/src/icons/Article/index.ts b/src/icons/Article/index.ts deleted file mode 100644 index 22171c173..000000000 --- a/src/icons/Article/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ArticleIcon } from './ArticleIcon'; diff --git a/src/icons/Bell/BellIcon.tsx b/src/icons/Bell/BellIcon.tsx deleted file mode 100644 index c90fefec4..000000000 --- a/src/icons/Bell/BellIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const BellIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z" /> - </svg> - ); -}; - -export default BellIcon; diff --git a/src/icons/Bell/index.ts b/src/icons/Bell/index.ts deleted file mode 100644 index da92c82fb..000000000 --- a/src/icons/Bell/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as BellIcon } from './BellIcon'; diff --git a/src/icons/Bus/BusIcon.tsx b/src/icons/Bus/BusIcon.tsx deleted file mode 100644 index be0e4bcd8..000000000 --- a/src/icons/Bus/BusIcon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const BusIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 70 64" - data-testid="bus-icon-svg" - {...props} - > - <path d="M39.178 40.59a5.762 5.762 0 1 1 11.523 0 5.762 5.762 0 0 1-11.523 0Z" /> - <path d="M39.178 40.59a5.762 5.762 0 1 1 11.523 0 5.762 5.762 0 0 1-11.523 0Zm-18.98-17.12v11.303m-5.762 5.762a5.762 5.762 0 1 1 11.524 0 5.762 5.762 0 0 1-11.524 0Z" /> - <path d="M14.436 40.535a5.762 5.762 0 1 1 11.524 0 5.762 5.762 0 0 1-11.524 0Zm30.503-16.599V34.83m7.578-27.206a5.762 5.762 0 1 1 11.523 0 5.762 5.762 0 0 1-11.523 0Z" /> - <path d="M52.517 7.624a5.762 5.762 0 1 1 11.523 0 5.762 5.762 0 0 1-11.523 0Zm5.761 5.762v10.563M28.935 7.397a5.762 5.762 0 1 1 11.523 0 5.762 5.762 0 0 1-11.523 0Z" /> - <path d="M28.935 7.397a5.762 5.762 0 1 1 11.523 0 5.762 5.762 0 0 1-11.523 0Zm5.762 5.761v10.563M5.825 7.17a5.762 5.762 0 1 1 11.523 0 5.762 5.762 0 0 1-11.523 0Z" /> - <path d="M5.825 7.17a5.762 5.762 0 1 1 11.523 0 5.762 5.762 0 0 1-11.523 0Zm5.762 5.761v10.563M0 23.942h69.55" /> - </svg> - ); -}; - -export default BusIcon; diff --git a/src/icons/Bus/index.ts b/src/icons/Bus/index.ts deleted file mode 100644 index 7d4670896..000000000 --- a/src/icons/Bus/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as BusIcon } from './BusIcon'; diff --git a/src/icons/Calender/CalenderIcon.tsx b/src/icons/Calender/CalenderIcon.tsx deleted file mode 100644 index 5b04635c6..000000000 --- a/src/icons/Calender/CalenderIcon.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { FC } from 'react'; -import { KEPPEL_GREEN_FILL } from '../../constants/constants'; -import { IconProps } from '../types'; - -const CalenderIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - version="1.1" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 19 24" - stroke="none" - {...props} - > - <path d="M14 9H4V11H14V9Z" /> - <path d="M2 18V7H16V13H18V4C18 3.46957 17.7893 2.96086 17.4142 2.58579C17.0391 2.21071 16.5304 2 16 2H15V0H13V2H5V0H3V2H2C1.46957 2 0.960859 2.21071 0.585786 2.58579C0.210714 2.96086 0 3.46957 0 4L0 18C0 18.5304 0.210714 19.0391 0.585786 19.4142C0.960859 19.7893 1.46957 20 2 20H12V18H2Z" /> - <path d="M11 13H4V15H11V13Z" /> - <path - d="M15.256 20V17.744H13V16.244H15.256V14H16.756V16.244H19V17.744H16.756V20H15.256Z" - fill={props.stroke || KEPPEL_GREEN_FILL} - /> - </svg> - ); -}; - -export default CalenderIcon; diff --git a/src/icons/Calender/index.ts b/src/icons/Calender/index.ts deleted file mode 100644 index 3784f2ecf..000000000 --- a/src/icons/Calender/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as CalenderIcon } from './CalenderIcon'; diff --git a/src/icons/CaretDown/CaretDownIcon.tsx b/src/icons/CaretDown/CaretDownIcon.tsx deleted file mode 100644 index 262599a4b..000000000 --- a/src/icons/CaretDown/CaretDownIcon.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CaretDownIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - stroke = DEFAULT_STROKE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 320 512" - width={width} - height={height} - {...props} - > - <path - d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z" - fill={fill} - stroke={stroke} - /> - </svg> - ); -}; - -export default CaretDownIcon; diff --git a/src/icons/CaretDown/index.ts b/src/icons/CaretDown/index.ts deleted file mode 100644 index 11fa7e5a7..000000000 --- a/src/icons/CaretDown/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as CaretDownIcon } from './CaretDownIcon'; diff --git a/src/icons/CatalogIcon/CatalogIcon.tsx b/src/icons/CatalogIcon/CatalogIcon.tsx deleted file mode 100644 index 12771597e..000000000 --- a/src/icons/CatalogIcon/CatalogIcon.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { CARIBBEAN_GREEN, DARK_SLATE_GRAY, KEPPEL, useTheme } from '../../theme'; -import { IconProps } from '../types'; - -type CatalogIconProps = { - primaryFill?: string; - secondaryFill?: string; - tertiaryFill?: string; -} & IconProps; - -export const CatalogIcon: FC<CatalogIconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - primaryFill, - secondaryFill, - style = {}, - ...props -}) => { - const theme = useTheme(); - const themeMode = theme?.palette?.mode ?? 'light'; - const themePrimaryFill = primaryFill ?? (themeMode === 'dark' ? KEPPEL : DARK_SLATE_GRAY); - const themeSecondaryFill = secondaryFill ?? (themeMode === 'dark' ? CARIBBEAN_GREEN : KEPPEL); - - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 64 64" - style={style} - {...props} - > - <path - d="M32.03,60H5.1c-2.38,0-4.18-1.23-4.86-3.33-.15-.52-.25-1.11-.25-1.67C0,46.11-.04,37.19,0,28.3c0-.74.12-1.48.34-2.19,2.26-6.92,4.52-13.8,6.78-20.68.43-1.3.62-1.42,2.01-1.42h45.34c1.36,0,1.55.12,1.95,1.36,2.14,6.3,4.24,12.63,6.38,18.92.19.56.5,1.08.68,1.64.22.74.53,1.48.53,2.22.03,9.01.03,18.06,0,27.07,0,2.66-2.17,4.75-4.89,4.75-9.04.03-18.04.03-27.08.03ZM41.19,23.26h18.75c-.06-.28-.09-.43-.15-.62-1.76-5.25-3.53-10.47-5.26-15.71-.19-.59-.56-.65-1.05-.65H10.08c-.62,0-.9.22-1.08.8-1.67,5.19-3.37,10.37-5.08,15.53-.06.22-.12.43-.19.68h19.06c.31,2.38.99,2.99,3.37,2.99h11.67c2.32.03,3.09-.62,3.34-3.03ZM23.24,43.08c.22-.77.43-1.48.62-2.19.37-1.42-.34-2.75-1.64-3.12-1.36-.37-2.63.34-3.06,1.76-.53,1.73-1.05,3.49-1.55,5.25-.5,1.76.62,3.21,2.44,3.21h24.67c1.61,0,2.82-1.42,2.38-2.96-.59-2.01-1.27-3.95-1.98-5.93-.37-1.02-1.33-1.48-2.41-1.42-.99.06-1.89.71-2.1,1.67-.12.59-.03,1.2.06,1.82.12.65.37,1.23.62,1.91h-18.04Z" - fill={themePrimaryFill} - /> - - <path - d="M32.11,18.48h22.13c.34,0,.8,0,1.02.19.28.28.56.77.53,1.14-.03.62-.53.93-1.11.93-1.21.03-2.41,0-3.62,0H9.58c-.84-.03-1.36-.46-1.36-1.17s.53-1.14,1.39-1.14h11.14c3.78.06,7.55.06,11.36.06Z" - fill={themeSecondaryFill} - opacity={0.8} - /> - <path - d="M31.98,13.66h20.64c.31,0,.62,0,.93.03.62.09.99.43,1.02,1.08.03.65-.34,1.05-.99,1.2-.25.06-.53.03-.77.03H10.97c-.31,0-.71.03-.9-.12-.31-.31-.68-.8-.65-1.14.03-.37.53-.71.9-.99.19-.12.56-.06.84-.06,6.96-.03,13.9-.03,20.83-.03Z" - fill={themeSecondaryFill} - opacity={0.8} - /> - <path - d="M32,11.16H12.9c-.22,0-.46.03-.68-.03-.62-.12-1.02-.52-1.02-1.17s.4-1.02,1.05-1.14c.19-.03.4-.03.62-.03h38.25c.22,0,.4-.03.62.03.62.12,1.02.49,1.05,1.14.03.56-.46,1.11-1.11,1.2-.22.03-.4,0-.62,0h-19.06Z" - fill={themeSecondaryFill} - opacity={0.8} - /> - </svg> - ); -}; - -export default CatalogIcon; diff --git a/src/icons/CatalogIcon/index.ts b/src/icons/CatalogIcon/index.ts deleted file mode 100644 index 95db98012..000000000 --- a/src/icons/CatalogIcon/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as CatalogIcon } from './CatalogIcon'; diff --git a/src/icons/Chain/ChainIcon.tsx b/src/icons/Chain/ChainIcon.tsx deleted file mode 100644 index 147b7b7e6..000000000 --- a/src/icons/Chain/ChainIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; - -interface ChainIconProps { - width: string; - height: string; - fill?: string; - style?: React.CSSProperties; - secondaryFill?: string; -} - -const ChainIcon: React.FC<ChainIconProps> = ({ width, height, style, fill = '#3C494F' }) => ( - <svg - width={width} - height={height} - viewBox="0 0 24 24" - fill={fill} - xmlns="http://www.w3.org/2000/svg" - style={style} - > - <path d="M10,17.55,8.23,19.27a2.47,2.47,0,0,1-3.5-3.5l4.54-4.55a2.46,2.46,0,0,1,3.39-.09l.12.1a1,1,0,0,0,1.4-1.43A2.75,2.75,0,0,0,14,9.59a4.46,4.46,0,0,0-6.09.22L3.31,14.36a4.48,4.48,0,0,0,6.33,6.33L11.37,19A1,1,0,0,0,10,17.55ZM20.69,3.31a4.49,4.49,0,0,0-6.33,0L12.63,5A1,1,0,0,0,14,6.45l1.73-1.72a2.47,2.47,0,0,1,3.5,3.5l-4.54,4.55a2.46,2.46,0,0,1-3.39.09l-.12-.1a1,1,0,0,0-1.4,1.43,2.75,2.75,0,0,0,.23.21,4.47,4.47,0,0,0,6.09-.22l4.55-4.55A4.49,4.49,0,0,0,20.69,3.31Z" /> - </svg> -); - -export default ChainIcon; diff --git a/src/icons/Chain/index.ts b/src/icons/Chain/index.ts deleted file mode 100644 index 043710db5..000000000 --- a/src/icons/Chain/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ChainIcon } from './ChainIcon'; diff --git a/src/icons/Chain/index.tsx b/src/icons/Chain/index.tsx deleted file mode 100644 index 043710db5..000000000 --- a/src/icons/Chain/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as ChainIcon } from './ChainIcon'; diff --git a/src/icons/Challenges/ChallengesIcon.tsx b/src/icons/Challenges/ChallengesIcon.tsx deleted file mode 100644 index 94b9b7b7a..000000000 --- a/src/icons/Challenges/ChallengesIcon.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import React from 'react'; - -interface ChallengesIconProps { - width?: string; - height?: string; - primaryFill?: string; - brandFill?: string; - secondaryFill?: string; - style?: React.CSSProperties; -} - -const ChallengesIcon: React.FC<ChallengesIconProps> = ({ - width = '32px', - height = '32px', - primaryFill = '#B1B9BC', - brandFill = '#00B39F', - secondaryFill = '#51636B', - style = {} -}) => ( - <svg - width={width} - height={height} - fill={primaryFill} - style={style} - version="1.1" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 254 187" - > - <path d="M137.75 186.964L195.857 81.2227L253.994 186.964H137.75Z" fill={secondaryFill} /> - <path - d="M217.85 121.244L207.007 132.244L195.51 121.244L183.639 132.244L173.852 121.244L195.852 81.2227L217.85 121.244Z" - fill={primaryFill} - /> - <path d="M0 186.879L42.5621 109.473L85.1469 186.879H0Z" fill={secondaryFill} /> - <path - d="M58.6074 138.964L50.7041 147.07L42.3246 138.964L33.6726 147.07L26.5391 138.964L42.5736 109.473L58.6074 138.964Z" - fill={primaryFill} - /> - <path d="M70.9531 24.245H125.504V0H70.9531L89.6349 12.1225L70.9531 24.245Z" fill={brandFill} /> - <path d="M51 186.89L128.281 45.4609L205.562 186.89H51Z" fill={primaryFill} /> - <path - d="M157.592 99.3499L143.115 114.155L127.831 99.3499L112.02 114.155L99 99.3499L128.297 45.4609L157.592 99.3499Z" - fill="#F6F8F8" - /> - <line - x1="128.516" - y1="8.74229e-08" - x2="118.414" - y2="57.5818" - stroke={brandFill} - strokeWidth="4" - /> - </svg> -); - -export default ChallengesIcon; diff --git a/src/icons/Challenges/index.ts b/src/icons/Challenges/index.ts deleted file mode 100644 index e9cf9c6d5..000000000 --- a/src/icons/Challenges/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ChallengesIcon } from './ChallengesIcon'; diff --git a/src/icons/Chat/ChatIcon.tsx b/src/icons/Chat/ChatIcon.tsx deleted file mode 100644 index 6c931ce4f..000000000 --- a/src/icons/Chat/ChatIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ChatIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 30 30" - {...props} - > - <path d="M15 3C7.82 3 2 7.925 2 14c0 3.368 1.793 6.378 4.611 8.396.072 1.536-.166 3.657-2.285 4.635a.5.5 0 0 0-.004.002A.5.5 0 0 0 4 27.5a.5.5 0 0 0 .5.5l.035-.002a.5.5 0 0 0 .008 0c2.434-.016 4.5-1.331 5.926-2.72.452-.442 1.082-.659 1.703-.542.91.173 1.856.264 2.828.264 7.18 0 13-4.925 13-11S22.18 3 15 3z" /> - </svg> - ); -}; - -export default ChatIcon; diff --git a/src/icons/Chat/index.ts b/src/icons/Chat/index.ts deleted file mode 100644 index 124ca3d9d..000000000 --- a/src/icons/Chat/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ChatIcon } from './ChatIcon'; diff --git a/src/icons/Check/CheckIcon.tsx b/src/icons/Check/CheckIcon.tsx deleted file mode 100644 index 0ae69c483..000000000 --- a/src/icons/Check/CheckIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CheckIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - height={height} - width={width} - viewBox="0 0 24 24" - fill={props.fill || 'currentColor'} - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z" /> - </svg> - ); -}; - -export default CheckIcon; diff --git a/src/icons/Check/index.ts b/src/icons/Check/index.ts deleted file mode 100644 index 216ae5001..000000000 --- a/src/icons/Check/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import CheckIcon from './CheckIcon'; - -export { CheckIcon }; diff --git a/src/icons/CheckCircle/CheckCircleIcon.tsx b/src/icons/CheckCircle/CheckCircleIcon.tsx deleted file mode 100644 index fea57cfd1..000000000 --- a/src/icons/CheckCircle/CheckCircleIcon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CheckCircleIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - aria-hidden="true" - viewBox="0 0 24 24" - data-testid="CheckCircleIcon" - fill={props.fill || 'currentColor'} - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"></path> - </svg> - ); -}; - -export default CheckCircleIcon; diff --git a/src/icons/CheckCircle/index.ts b/src/icons/CheckCircle/index.ts deleted file mode 100644 index a146979f8..000000000 --- a/src/icons/CheckCircle/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { CheckCircleIcon } from './CheckCircleIcon'; diff --git a/src/icons/CheckCircleOutline/CheckCircleOutlineIcon.tsx b/src/icons/CheckCircleOutline/CheckCircleOutlineIcon.tsx deleted file mode 100644 index 9f1e7e42c..000000000 --- a/src/icons/CheckCircleOutline/CheckCircleOutlineIcon.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CheckCircleOutlineIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="check-circle-outline-icon-svg" - {...props} - > - <path - d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-5.41 7.29-7.29 1.41 1.41L11 16l-4.29-4.29 1.41-1.41L11 14.17z" - fill={fill} - /> - </svg> - ); -}; - -export default CheckCircleOutlineIcon; diff --git a/src/icons/CheckCircleOutline/index.ts b/src/icons/CheckCircleOutline/index.ts deleted file mode 100644 index e03ed8289..000000000 --- a/src/icons/CheckCircleOutline/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as CheckCircleOutlineIcon } from './CheckCircleOutlineIcon'; diff --git a/src/icons/Chevron/OutlinedDoubleChevron.tsx b/src/icons/Chevron/OutlinedDoubleChevron.tsx deleted file mode 100644 index d9d57fcd0..000000000 --- a/src/icons/Chevron/OutlinedDoubleChevron.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const OutlinedDoubleChevronIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 17 20.6" - {...props} - > - <path d="M8.5,0L17,8.4l-2.2,2.2L8.4,4.3l-6.3,6.3L0,8.5L8.5,0z M8.5,10l8.5,8.5l-2.2,2.1l-6.4-6.3l-6.3,6.3L0,18.5L8.5,10z" /> - </svg> - ); -}; - -export default OutlinedDoubleChevronIcon; diff --git a/src/icons/Chevron/index.ts b/src/icons/Chevron/index.ts deleted file mode 100644 index d065bab53..000000000 --- a/src/icons/Chevron/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedDoubleChevronIcon } from './OutlinedDoubleChevron'; diff --git a/src/icons/ChevronLeft/ChevronLeft.tsx b/src/icons/ChevronLeft/ChevronLeft.tsx deleted file mode 100644 index 82d044c8a..000000000 --- a/src/icons/ChevronLeft/ChevronLeft.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { ONYX_BLACK } from '../../theme'; -import { IconProps } from '../types'; - -export const ChevronLeft = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 20 20" - {...props} - > - <path - d="M12 16a.997.997 0 01-.707-.293l-5-5a.999.999 0 010-1.414l5-5a.999.999 0 111.414 1.414L8.414 10l4.293 4.293A.999.999 0 0112 16z" - fill={fill || ONYX_BLACK} - /> - </svg> - ); -}; - -export default ChevronLeft; diff --git a/src/icons/ChevronLeft/index.ts b/src/icons/ChevronLeft/index.ts deleted file mode 100644 index b9c0c4085..000000000 --- a/src/icons/ChevronLeft/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ChevronLeft } from './ChevronLeft'; diff --git a/src/icons/Circle/CircleIcon.tsx b/src/icons/Circle/CircleIcon.tsx deleted file mode 100644 index e6ca6523f..000000000 --- a/src/icons/Circle/CircleIcon.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { DEFAULT_FILL, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CircleIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 40 40" - data-testid="circle-icon-svg" - {...props} - > - <path - d="M11.366 38.035c-9.96-4.769-14.17-16.71-9.401-26.672A19.996 19.996 0 0 1 28.634 1.96c9.96 4.77 14.17 16.71 9.401 26.673-4.768 9.961-16.708 14.171-26.669 9.402Z" - fill={fill} - /> - </svg> - ); -}; - -export default CircleIcon; diff --git a/src/icons/Circle/OutlinedCircleIcon.tsx b/src/icons/Circle/OutlinedCircleIcon.tsx deleted file mode 100644 index 0af52fa99..000000000 --- a/src/icons/Circle/OutlinedCircleIcon.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_STROKE_WIDTH, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const OutlinedCircleIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - stroke = DEFAULT_STROKE, - strokeWidth = DEFAULT_STROKE_WIDTH, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 40 40" - {...props} - > - <path - fillRule="evenodd" - clipRule="evenodd" - d="M11.3661 38.0349C1.40555 33.2661 -2.80363 21.3246 1.96473 11.3628C4.25461 6.57899 8.35082 2.90088 13.3523 1.13757C18.3537 -0.62574 23.8507 -0.329761 28.6338 1.96035C38.5946 6.72929 42.8037 18.6709 38.0351 28.6325C33.2669 38.5944 21.3267 42.804 11.3661 38.0349Z" - fill={fill} - stroke={stroke} - strokeWidth={strokeWidth} - /> - </svg> - ); -}; - -export default OutlinedCircleIcon; diff --git a/src/icons/Circle/index.ts b/src/icons/Circle/index.ts deleted file mode 100644 index ab03e9cd7..000000000 --- a/src/icons/Circle/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as CircleIcon } from './CircleIcon'; -export { default as OutlinedCircleIcon } from './OutlinedCircleIcon'; diff --git a/src/icons/Clone/CloneIcon.tsx b/src/icons/Clone/CloneIcon.tsx deleted file mode 100644 index cc8302d40..000000000 --- a/src/icons/Clone/CloneIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CloneIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 16 16" - {...props} - > - <path d="M14.5 0h-10A1.5 1.5 0 0 0 3 1.5V3H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V13h1.5a1.5 1.5 0 0 0 1.5-1.5v-10A1.5 1.5 0 0 0 14.5 0Zm-3.188 14.5H1.688a.188.188 0 0 1-.188-.188V4.688a.187.187 0 0 1 .188-.188H3v7A1.5 1.5 0 0 0 4.5 13h7v1.313a.188.188 0 0 1-.188.187Zm3-3H4.688a.188.188 0 0 1-.188-.188V1.688a.187.187 0 0 1 .188-.188h9.625a.188.188 0 0 1 .187.188v9.624a.188.188 0 0 1-.188.188Z" /> - </svg> - ); -}; - -export default CloneIcon; diff --git a/src/icons/Clone/index.ts b/src/icons/Clone/index.ts deleted file mode 100644 index 2006b27b6..000000000 --- a/src/icons/Clone/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as CloneIcon } from './CloneIcon'; diff --git a/src/icons/Close/CloseIcon.tsx b/src/icons/Close/CloseIcon.tsx deleted file mode 100644 index 7b291a6eb..000000000 --- a/src/icons/Close/CloseIcon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CloseIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - width={width} - height={height} - fill={fill} - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" /> - </svg> - ); -}; - -export default CloseIcon; diff --git a/src/icons/Close/index.ts b/src/icons/Close/index.ts deleted file mode 100644 index a81325c42..000000000 --- a/src/icons/Close/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as CloseIcon } from './CloseIcon'; diff --git a/src/icons/Cloud/CloudSavedIcon.tsx b/src/icons/Cloud/CloudSavedIcon.tsx deleted file mode 100644 index 754eed630..000000000 --- a/src/icons/Cloud/CloudSavedIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CloudSavedIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 19.8 13.3" - {...props} - > - <path d="M6.6 7.6c-.2-.2-.2-.5 0-.7.2-.2.5-.2.7 0l1.4 1.4 3.5-3.5c.2-.2.5-.2.7 0 .2.2.2.5 0 .7L8.7 9.7 6.6 7.6zM3.2 6c.3-.1.4-.3.4-.5v-.1c-.1-.3-.1-.5 0-.8 0-.6.4-1.1 1-1.3.2-.1.4-.1.5-.1.3 0 .7.1 1 .3l.1.1c.2.2.5.1.6-.1l.1-.1c.8-1.6 2.5-2.5 4.2-2.3 1.8.2 3.3 1.6 3.6 3.4.1.6.1 1.2-.1 1.8v.2c-.1.3.2.6.5.5h.2c.4-.1.8-.1 1.2-.1 1.2.1 2.1 1.1 2.3 2.3.1.8-.2 1.6-.7 2.2-.5.6-1.3.8-2 .8H4.4c-1.8 0-3.2-1.3-3.3-3C1 7.7 1.9 6.4 3.2 6zM0 9.2c.1 2.3 2 4 4.3 4h11.8c1 0 2-.4 2.7-1.2.7-.7 1.1-1.7 1-2.7-.1-1.9-1.6-3.4-3.5-3.6h-.6c.1-.5 0-1 0-1.5-.4-2.3-2.3-4-4.6-4.3-2-.2-3.9.7-5 2.4-.5-.2-1-.3-1.5-.2-1.1.2-2 1-2.2 2.1-.1.3-.1.6 0 .9C.9 5.9-.1 7.5 0 9.2z" /> - </svg> - ); -}; - -export default CloudSavedIcon; diff --git a/src/icons/Cloud/index.ts b/src/icons/Cloud/index.ts deleted file mode 100644 index b06c1387f..000000000 --- a/src/icons/Cloud/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as CloudSavedIcon } from './CloudSavedIcon'; diff --git a/src/icons/CollapseAll/CollapseAllIcon.tsx b/src/icons/CollapseAll/CollapseAllIcon.tsx deleted file mode 100644 index 66afdc313..000000000 --- a/src/icons/CollapseAll/CollapseAllIcon.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react'; - -interface CollapsAllIconProps { - height?: string; - width?: string; - fill?: string; - strokeWidth?: string; - style?: React.CSSProperties; -} - -const CollapsAllIcon: React.FC<CollapsAllIconProps> = ({ - height = '24', - width = '24', - fill = 'none', - strokeWidth = '2', - style -}) => ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - height={height} - width={width} - style={style} - > - <path - d="M17 16l-5-5-5 5" - fill={fill} - stroke="currentColor" - strokeWidth={strokeWidth} - strokeLinecap="round" - strokeLinejoin="round" - /> - <path - d="M17 10l-5-5-5 5" - fill={fill} - stroke="currentColor" - strokeWidth={strokeWidth} - strokeLinecap="round" - strokeLinejoin="round" - /> - </svg> -); - -export default CollapsAllIcon; diff --git a/src/icons/CollapseAll/index.tsx b/src/icons/CollapseAll/index.tsx deleted file mode 100644 index dd1fa97d4..000000000 --- a/src/icons/CollapseAll/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as CollapseAllIcon } from './CollapseAllIcon'; diff --git a/src/icons/Column/ColumnIcon.tsx b/src/icons/Column/ColumnIcon.tsx deleted file mode 100644 index bbd50b91f..000000000 --- a/src/icons/Column/ColumnIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React, { SVGProps } from 'react'; -import { CARIBBEAN_GREEN_FILL, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; - -const ColumnIcon: React.FC<SVGProps<SVGSVGElement>> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = CARIBBEAN_GREEN_FILL, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 -960 960 960" - fill={fill} - {...props} - > - <path d="M120-200v-560h220v560H120Zm250 0v-560h220v560H370Zm250 0v-560h220v560H620Z" /> - </svg> - ); -}; - -export default ColumnIcon; diff --git a/src/icons/Column/index.tsx b/src/icons/Column/index.tsx deleted file mode 100644 index 4b24a424b..000000000 --- a/src/icons/Column/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as ColumnIcon } from './ColumnIcon'; diff --git a/src/icons/Component/ComponentIcon.tsx b/src/icons/Component/ComponentIcon.tsx deleted file mode 100644 index 64e5a7d69..000000000 --- a/src/icons/Component/ComponentIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ComponentIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 95.1 76.8" - {...props} - > - <path d="M87.2 30.5c-3.5 0-6.5 2.4-7.5 5.6H68.9V24.8c0-4.2-3.4-7.6-7.6-7.6h-2.7v-7h11.3c1 3.2 3.9 5.6 7.5 5.6 4.3 0 7.9-3.5 7.9-7.9 0-4.3-3.5-7.9-7.9-7.9-3.5 0-6.5 2.4-7.5 5.6H56.3c-1.3 0-2.3 1-2.3 2.3v9.3H41.3V7.9c0-1.3-1-2.3-2.3-2.3H25.2c-1-3.2-3.9-5.6-7.5-5.6-4.3 0-7.9 3.5-7.9 7.9 0 4.3 3.5 7.9 7.9 7.9 3.5 0 6.5-2.4 7.5-5.6h11.5v7H34c-4.2 0-7.6 3.4-7.6 7.6v11.3h-11c-1-3.2-3.9-5.6-7.5-5.6C3.6 30.5 0 34 0 38.4s3.5 7.9 7.9 7.9c3.5 0 6.5-2.4 7.5-5.6h10.9V52c0 4.2 3.4 7.6 7.6 7.6h2.7v7H25.2c-1-3.2-3.9-5.6-7.5-5.6-4.3 0-7.9 3.5-7.9 7.9 0 4.3 3.5 7.9 7.9 7.9 3.5 0 6.5-2.4 7.5-5.6H39c1.3 0 2.3-1 2.3-2.3v-9.3h12.8v9.3c0 1.3 1 2.3 2.3 2.3H70c1 3.2 3.9 5.6 7.5 5.6 4.3 0 7.9-3.5 7.9-7.9 0-4.3-3.5-7.9-7.9-7.9-3.5 0-6.5 2.4-7.5 5.6H58.6v-7h2.6c4.2 0 7.6-3.4 7.6-7.6V40.7h10.9c1 3.2 3.9 5.6 7.5 5.6 4.3 0 7.9-3.5 7.9-7.9s-3.5-7.9-7.9-7.9zM77.4 4.6c1.8 0 3.3 1.5 3.3 3.3s-1.5 3.3-3.3 3.3-3.3-1.5-3.3-3.3c.1-1.8 1.5-3.3 3.3-3.3zm-59.6 6.5c-1.8 0-3.3-1.5-3.3-3.3s1.5-3.3 3.3-3.3 3.3 1.5 3.3 3.3c-.1 1.9-1.5 3.3-3.3 3.3zM8 41.7c-1.8 0-3.3-1.5-3.3-3.3s1.5-3.3 3.3-3.3 3.3 1.5 3.3 3.3-1.5 3.3-3.3 3.3zm9.8 30.5c-1.8 0-3.3-1.5-3.3-3.3s1.5-3.3 3.3-3.3 3.3 1.5 3.3 3.3c-.1 1.8-1.5 3.3-3.3 3.3zm59.6-6.5c1.8 0 3.3 1.5 3.3 3.3s-1.5 3.3-3.3 3.3-3.3-1.5-3.3-3.3c.1-1.9 1.5-3.3 3.3-3.3zM59.1 47.6c0 1.3-1 2.3-2.3 2.3H38.4c-1.3 0-2.3-1-2.3-2.3V29.2c0-1.3 1-2.3 2.3-2.3h18.3c1.3 0 2.3 1 2.3 2.3v18.4h.1zm28.1-5.9c-1.8 0-3.3-1.5-3.3-3.3s1.5-3.3 3.3-3.3 3.3 1.5 3.3 3.3-1.5 3.3-3.3 3.3z" /> - <path d="M40.7 31.5H54.5V45.3H40.7z" /> - </svg> - ); -}; - -export default ComponentIcon; diff --git a/src/icons/Component/index.ts b/src/icons/Component/index.ts deleted file mode 100644 index 1e2fcab59..000000000 --- a/src/icons/Component/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ComponentIcon } from './ComponentIcon'; diff --git a/src/icons/Configuration/ConfigurationIcon.tsx b/src/icons/Configuration/ConfigurationIcon.tsx deleted file mode 100644 index 51f760e59..000000000 --- a/src/icons/Configuration/ConfigurationIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ConfigurationIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 64 64" - {...props} - > - <path d="M58.17 44.55a9.57 9.57 0 0 0-9.75-2.34L21.79 15.58c2.35-6.79-3.95-13.91-11-12.4a1 1 0 0 0-.79.88 1 1 0 0 0 .28.81l4 4-1.18 4.23-4.27 1.14-4-4a1.1 1.1 0 0 0-.77-.24 1 1 0 0 0-.88.79c-1.55 7 5.7 13.41 12.42 11l26.61 26.63c-2.36 6.79 4 13.91 11 12.4a1 1 0 0 0 .79-.88 1 1 0 0 0-.28-.81l-4-4 1.18-4.23 4.27-1.14 4 4a1.29 1.29 0 0 0 .71.3 1 1 0 0 0 1-.81 9.59 9.59 0 0 0-2.71-8.7Z" /> - <path d="M39.28 29.52a1 1 0 0 0 1.41 0l7.46-7.45c9 2.57 15.59-8.52 9-15.21s-17.75 0-15.19 9l-7.47 7.47a1 1 0 0 0 0 1.41Zm6.56-15.42 1-3.88a1 1 0 0 1 .71-.71l3.88-1a1 1 0 0 1 1 .26l2.84 2.84a1 1 0 0 1 .26 1l-1 3.88a1 1 0 0 1-.71.71l-3.88 1a1.07 1.07 0 0 1-.25 0 1 1 0 0 1-.71-.29l-2.88-2.85a1 1 0 0 1-.26-.96ZM24.72 34.48a1 1 0 0 0-1.41 0L15.84 42c-9-2.56-15.56 8.5-9 15.19s17.79 0 15.19-9l7.47-7.47a1 1 0 0 0 0-1.41Zm-7.23 15.6-.86 3.21a1 1 0 0 1-.71.71l-3.21.86a1 1 0 0 1-1-.26L9.4 52.25a1 1 0 0 1-.26-1l.86-3.17a1 1 0 0 1 .71-.71l3.21-.86a1 1 0 0 1 1 .26l2.35 2.35a1 1 0 0 1 .22.96Z" /> - </svg> - ); -}; - -export default ConfigurationIcon; diff --git a/src/icons/Configuration/index.ts b/src/icons/Configuration/index.ts deleted file mode 100644 index f64599477..000000000 --- a/src/icons/Configuration/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ConfigurationIcon } from './ConfigurationIcon'; diff --git a/src/icons/ContentClassIcons/CommunityClassIcon.tsx b/src/icons/ContentClassIcons/CommunityClassIcon.tsx deleted file mode 100644 index 393c609bd..000000000 --- a/src/icons/ContentClassIcons/CommunityClassIcon.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { FC } from 'react'; -import { CustomIconProps } from '../types'; -export const CommunityClassIcon: FC<CustomIconProps> = ({ - width = '16', - height = '13', - fill = '#293B43', - secondaryFill = '#647176', - style = {} -}) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 16 13" - width={width} - > - <path - d="M12.2766 4.69141C11.656 4.69141 11.0624 4.85321 10.5497 5.12287C10.5446 5.20494 10.5356 5.28627 10.5228 5.36662C10.387 6.2221 10.594 7.73615 11.1773 8.37646C11.4175 8.64006 11.6242 8.93297 11.7909 9.24871H15.7032C15.8651 9.24871 16 9.11388 16 8.95208V8.38579C16 6.36332 14.3271 4.69141 12.2766 4.69141Z" - fill={fill} - /> - <path - d="M3.72344 4.69141C1.67285 4.69141 0 6.36331 0 8.41275V8.97905C0 9.14084 0.134907 9.27568 0.296796 9.27568H4.23609C4.40826 8.94965 4.62303 8.64795 4.87325 8.37773C5.45802 7.74624 5.64335 6.28753 5.48869 5.44087C5.46973 5.33709 5.45681 5.23097 5.45025 5.12287C4.91062 4.85321 4.34401 4.69141 3.72344 4.69141Z" - fill={fill} - /> - <path - d="M7.98491 2.99219C6.87867 2.99219 5.98828 3.88207 5.98828 4.98769C5.98828 6.09331 6.87867 6.9832 7.98491 6.9832C9.09115 6.9832 9.98154 6.09331 9.98154 4.98769C9.98154 3.88207 9.09115 2.99219 7.98491 2.99219Z" - fill={secondaryFill} - /> - <path - d="M7.98516 7.54688C5.93457 7.54688 4.26172 9.21878 4.26172 11.2682V11.8345C4.26172 11.9963 4.39663 12.1311 4.55851 12.1311H11.4118C11.5737 12.1311 11.7086 11.9963 11.7086 11.8345V11.2682C11.7086 9.19182 10.0357 7.54688 7.98516 7.54688Z" - fill={secondaryFill} - /> - <path - d="M12.2779 0.132812C11.1716 0.132812 10.2812 1.0227 10.2812 2.12832C10.2812 3.23393 11.1716 4.12382 12.2779 4.12382C13.3841 4.12382 14.2745 3.23393 14.2745 2.12832C14.2745 1.0227 13.3841 0.132812 12.2779 0.132812Z" - fill={fill} - /> - <path - d="M3.72319 0.132812C2.61695 0.132812 1.72656 1.0227 1.72656 2.12832C1.72656 3.23393 2.61695 4.12382 3.72319 4.12382C4.82943 4.12382 5.71982 3.23393 5.71982 2.12832C5.71982 1.0227 4.80245 0.132812 3.72319 0.132812Z" - fill={fill} - /> - </svg> -); - -export default CommunityClassIcon; diff --git a/src/icons/ContentClassIcons/OfficialClassIcon.tsx b/src/icons/ContentClassIcons/OfficialClassIcon.tsx deleted file mode 100644 index 62d6097ed..000000000 --- a/src/icons/ContentClassIcons/OfficialClassIcon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; -export const OfficialClassIcon: FC<IconProps> = ({ - width = '16', - height = '13', - fill = '#293B43', - style = {} -}) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 12 13" - width={width} - > - <path - fill-rule="evenodd" - clip-rule="evenodd" - d="M1.85613 1.20703L10.1439 1.20703C10.6167 1.20703 11 1.59034 11 2.06316V4.65658C11 7.6542 9.03375 10.2969 6.16254 11.1583C6.05652 11.1901 5.94349 11.1901 5.83746 11.1583C2.96626 10.2969 1 7.6542 1 4.65658V2.06316C1 1.59033 1.3833 1.20703 1.85613 1.20703ZM6.56129 5.43269L6 3.70601L5.43872 5.43269L3.62236 5.43269L5.09182 6.49984L4.53054 8.22651L6 7.15937L7.46947 8.22651L6.90818 6.49984L8.37764 5.43269L6.56129 5.43269Z" - fill={fill} - /> - </svg> -); - -export default OfficialClassIcon; diff --git a/src/icons/ContentClassIcons/VerificationClassIcon.tsx b/src/icons/ContentClassIcons/VerificationClassIcon.tsx deleted file mode 100644 index 5f59f41ec..000000000 --- a/src/icons/ContentClassIcons/VerificationClassIcon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; -export const VerificationClassIcon: FC<IconProps> = ({ - width = '16', - height = '13', - fill = '#F6F8F8', - style = {} -}) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 12 13" - width={width} - fill={fill} - > - <path - fill-rule="evenodd" - clip-rule="evenodd" - d="M6.87297 1.42151C6.50993 1.13554 5.99007 1.13554 5.62703 1.42151L5.1892 1.76637C5.00453 1.91184 4.77201 1.98781 4.53428 1.98035L3.97592 1.96283C3.52026 1.94853 3.11362 2.23851 2.99154 2.66478L2.81687 3.27476C2.75625 3.48645 2.62259 3.67153 2.43823 3.79906L1.91481 4.16114C1.55855 4.40759 1.4116 4.85198 1.55356 5.25359L1.78056 5.89574C1.85188 6.0975 1.85188 6.31656 1.78056 6.51832L1.55356 7.16047C1.4116 7.56208 1.55855 8.00648 1.91481 8.25292L2.43823 8.615C2.62259 8.74253 2.75625 8.92762 2.81687 9.13931L2.99154 9.74928C3.11362 10.1756 3.52026 10.4655 3.97592 10.4512L4.53428 10.4337C4.77201 10.4263 5.00453 10.5022 5.1892 10.6477L5.62703 10.9926C5.99007 11.2785 6.50993 11.2785 6.87297 10.9926L7.3108 10.6477C7.49547 10.5022 7.72799 10.4263 7.96572 10.4337L8.52408 10.4512C8.97974 10.4655 9.38638 10.1756 9.50845 9.74928L9.68313 9.13931C9.74375 8.92762 9.87741 8.74253 10.0618 8.615L10.5852 8.25292C10.9415 8.00648 11.0884 7.56208 10.9464 7.16047L10.7194 6.51832C10.6481 6.31656 10.6481 6.0975 10.7194 5.89575L10.9464 5.25359C11.0884 4.85198 10.9415 4.40759 10.5852 4.16114L10.0618 3.79906C9.87741 3.67153 9.74375 3.48645 9.68313 3.27476L9.50845 2.66478C9.38638 2.23851 8.97974 1.94853 8.52408 1.96283L7.96572 1.98035C7.72799 1.98781 7.49547 1.91184 7.3108 1.76637L6.87297 1.42151ZM8.79938 5.35136C8.97414 5.14785 8.9458 4.8454 8.7361 4.67581C8.52639 4.50622 8.21473 4.53372 8.03998 4.73722L5.85299 7.28406L4.73974 6.56382C4.51262 6.41688 4.20574 6.47644 4.05433 6.69686C3.90291 6.91727 3.96428 7.21508 4.19141 7.36202L5.6742 8.32134C5.88437 8.45731 6.16636 8.41762 6.32807 8.22931L8.79938 5.35136Z" - fill={fill} - /> - </svg> -); - -export default VerificationClassIcon; diff --git a/src/icons/ContentClassIcons/index.tsx b/src/icons/ContentClassIcons/index.tsx deleted file mode 100644 index da65be26a..000000000 --- a/src/icons/ContentClassIcons/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import CommunityClassIcon from './CommunityClassIcon'; -import OfficialClassIcon from './OfficialClassIcon'; -import VerificationClassIcon from './VerificationClassIcon'; -export { CommunityClassIcon, OfficialClassIcon, VerificationClassIcon }; diff --git a/src/icons/ContentFilter/index.tsx b/src/icons/ContentFilter/index.tsx deleted file mode 100644 index 1b5ec2c93..000000000 --- a/src/icons/ContentFilter/index.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -function ContentFilterIcon({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element { - return ( - <svg - viewBox="0 0 24 24" - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - // fill={props.fill} - style={{ ...props.style }} - {...props} - > - <path - fillRule="evenodd" - clipRule="evenodd" - d="M10 18H14V16H10V18ZM3 6V8H21V6H3ZM6 13H18V11H6V13Z" - fillOpacity=".54" - // fill={props.fill} - /> - </svg> - ); -} - -export default ContentFilterIcon; - -export { ContentFilterIcon }; diff --git a/src/icons/Copy/CopyIcon.tsx b/src/icons/Copy/CopyIcon.tsx deleted file mode 100644 index 5e1affdce..000000000 --- a/src/icons/Copy/CopyIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; - -interface CopyIconProps { - width: number; - height: number; - fill?: string; - style?: React.CSSProperties; - secondaryFill?: string; -} - -const CopyIcon: React.FC<CopyIconProps> = ({ width, height, fill = '#3C494F', style }) => ( - <svg - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - viewBox="0 0 24 24" - fill={fill} - style={style} - > - <path d="M15.5 3H5.5C4.4 3 3.5 3.9 3.5 5V17H5.5V5H15.5V3ZM18.5 7H9.5C8.4 7 7.5 7.9 7.5 9V21C7.5 22.1 8.4 23 9.5 23H18.5C19.6 23 20.5 22.1 20.5 21V9C20.5 7.9 19.6 7 18.5 7ZM18.5 21H9.5V9H18.5V21Z" /> - </svg> -); - -export default CopyIcon; diff --git a/src/icons/Copy/CopyLinkIcon.tsx b/src/icons/Copy/CopyLinkIcon.tsx deleted file mode 100644 index b376f227a..000000000 --- a/src/icons/Copy/CopyLinkIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CopyLinkIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 18 18" - {...props} - > - <path d="M6.354 5.5H4a3 3 0 0 0 0 6h3a3 3 0 0 0 2.83-4H9c-.086 0-.17.01-.25.031A2 2 0 0 1 7 10.5H4a2 2 0 1 1 0-4h1.535c.218-.376.495-.714.82-1z" /> - <path d="M9 5.5a3 3 0 0 0-2.83 4h1.098A2 2 0 0 1 9 6.5h3a2 2 0 1 1 0 4h-1.535a4.02 4.02 0 0 1-.82 1H12a3 3 0 1 0 0-6H9z" /> - </svg> - ); -}; - -export default CopyLinkIcon; diff --git a/src/icons/Copy/index.ts b/src/icons/Copy/index.ts deleted file mode 100644 index cd7aaba8a..000000000 --- a/src/icons/Copy/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as CopyIcon } from './CopyIcon'; -export { default as CopyLinkIcon } from './CopyLinkIcon'; diff --git a/src/icons/CreateNew/CreateNewIcon.tsx b/src/icons/CreateNew/CreateNewIcon.tsx deleted file mode 100644 index 2360f5a0d..000000000 --- a/src/icons/CreateNew/CreateNewIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CreateNewIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0V0z" fill="none" /> - <path d="M3 17.46v3.04c0 0.28 0.22 0.5 0.5 0.5h3.04c0.13 0 0.26 -0.05 0.35 -0.15L17.81 9.94l-3.75 -3.75L3.15 17.1c-0.1 0.1 -0.15 0.22 -0.15 0.36zM20.71 7.04a0.996 0.996 0 0 0 0 -1.41l-2.34 -2.34a0.996 0.996 0 0 0 -1.41 0l-1.83 1.83 3.75 3.75 1.83 -1.83z" /> - </svg> - ); -}; - -export default CreateNewIcon; diff --git a/src/icons/CreateNew/index.ts b/src/icons/CreateNew/index.ts deleted file mode 100644 index b9ef26668..000000000 --- a/src/icons/CreateNew/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as CreateNewIcon } from './CreateNewIcon'; diff --git a/src/icons/Credential/CredentialIcon.tsx b/src/icons/Credential/CredentialIcon.tsx deleted file mode 100644 index c4385be10..000000000 --- a/src/icons/Credential/CredentialIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const CredentialIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 18 19" - {...props} - > - <path d="M13.358 3.853a.348.348 0 0 1-.173-.046C11.745 3.066 10.5 2.75 9.008 2.75A8.58 8.58 0 0 0 4.83 3.808a.382.382 0 0 1-.51-.15.38.38 0 0 1 .15-.51A9.417 9.417 0 0 1 9.008 2c1.597 0 2.992.353 4.522 1.14a.367.367 0 0 1 .158.502.368.368 0 0 1-.33.21ZM2.625 7.79a.374.374 0 0 1-.308-.593A7.754 7.754 0 0 1 5.13 4.745c2.355-1.215 5.37-1.223 7.733-.008a7.784 7.784 0 0 1 2.812 2.438.375.375 0 0 1-.09.525.374.374 0 0 1-.525-.09 7.04 7.04 0 0 0-2.542-2.205c-2.153-1.103-4.905-1.103-7.05.007a7.115 7.115 0 0 0-2.55 2.22.327.327 0 0 1-.293.158Zm4.688 9.053a.352.352 0 0 1-.263-.113c-.652-.652-1.005-1.072-1.507-1.98-.518-.922-.788-2.047-.788-3.255C4.755 9.268 6.66 7.453 9 7.453s4.245 1.814 4.245 4.042c0 .21-.165.375-.375.375a.371.371 0 0 1-.375-.375c0-1.815-1.567-3.292-3.495-3.292-1.927 0-3.495 1.477-3.495 3.292 0 1.08.24 2.078.698 2.888.48.862.81 1.23 1.387 1.815a.385.385 0 0 1 0 .532.411.411 0 0 1-.277.113Zm5.377-1.388c-.892 0-1.68-.225-2.325-.668C9.248 14.03 8.58 12.8 8.58 11.495c0-.21.165-.375.375-.375s.375.165.375.375c0 1.058.54 2.055 1.455 2.67.533.36 1.155.533 1.905.533.18 0 .48-.023.78-.075a.374.374 0 0 1 .435.307.374.374 0 0 1-.307.435 5.18 5.18 0 0 1-.908.09ZM11.183 17a.439.439 0 0 1-.098-.015c-1.192-.33-1.972-.773-2.79-1.575a5.472 5.472 0 0 1-1.627-3.915c0-1.215 1.035-2.205 2.31-2.205 1.275 0 2.31.99 2.31 2.205 0 .803.697 1.455 1.56 1.455.862 0 1.56-.652 1.56-1.455 0-2.827-2.438-5.122-5.438-5.122-2.13 0-4.08 1.184-4.957 3.022-.293.607-.443 1.32-.443 2.1 0 .585.053 1.508.503 2.708a.366.366 0 0 1-.218.48.372.372 0 0 1-.48-.218 8.355 8.355 0 0 1-.547-2.97c0-.9.172-1.717.51-2.43.997-2.092 3.21-3.45 5.632-3.45 3.413 0 6.188 2.633 6.188 5.873 0 1.215-1.035 2.205-2.31 2.205-1.275 0-2.31-.99-2.31-2.205 0-.803-.698-1.455-1.56-1.455-.863 0-1.56.652-1.56 1.455 0 1.282.495 2.482 1.402 3.382.713.705 1.395 1.095 2.453 1.388a.372.372 0 0 1 .262.457.366.366 0 0 1-.352.285Z" /> - </svg> - ); -}; - -export default CredentialIcon; diff --git a/src/icons/Credential/index.ts b/src/icons/Credential/index.ts deleted file mode 100644 index 25e831539..000000000 --- a/src/icons/Credential/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as CredentialIcon } from './CredentialIcon'; diff --git a/src/icons/CrossCircle/index.tsx b/src/icons/CrossCircle/index.tsx deleted file mode 100644 index 1a4ad5d0d..000000000 --- a/src/icons/CrossCircle/index.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -function CrossCircleIcon({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}: IconProps): JSX.Element { - return ( - <svg - viewBox="0 0 24 24" - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - fill={fill} - style={{ ...props.style }} - {...props} - > - <g clipPath="url(#a)"> - <path - d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2Zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59Z" - fillOpacity=".54" - /> - </g> - <defs> - <clipPath id="a"> - <path d="M0 0h24v24H0z" fill={props.stroke || '#FFFFF'} /> - </clipPath> - </defs> - </svg> - ); -} - -export default CrossCircleIcon; - -export { CrossCircleIcon }; diff --git a/src/icons/Dashboard/DashboardIcon.tsx b/src/icons/Dashboard/DashboardIcon.tsx deleted file mode 100644 index ae8da55e2..000000000 --- a/src/icons/Dashboard/DashboardIcon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const DashboardIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 24 24" - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <g> - <path fill="none" d="M0 0h24v24H0z" /> - <path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z" /> - </g> - </svg> - ); -}; - -export default DashboardIcon; diff --git a/src/icons/Dashboard/index.ts b/src/icons/Dashboard/index.ts deleted file mode 100644 index 1034f7914..000000000 --- a/src/icons/Dashboard/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as DashboardIcon } from './DashboardIcon'; diff --git a/src/icons/DataObject/OutlinedDataObjectIcon.tsx b/src/icons/DataObject/OutlinedDataObjectIcon.tsx deleted file mode 100644 index 5d5f31c2b..000000000 --- a/src/icons/DataObject/OutlinedDataObjectIcon.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedDataObjectIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 256 256" - {...props} - > - <path d="M54.79785,119.48535A34.95033,34.95033,0,0,1,49.05078,128a34.95033,34.95033,0,0,1,5.74707,8.51465C60,147.24414,60,159.8291,60,172c0,25.93652,1.84424,32,20,32a12,12,0,0,1,0,24c-19.14453,0-32.19775-6.90234-38.79785-20.51465C36,196.75586,36,184.1709,36,172c0-25.93652-1.84424-32-20-32a12,12,0,0,1,0-24c18.15576,0,20-6.06348,20-32,0-12.1709,0-24.75586,5.20215-35.48535C47.80225,34.90234,60.85547,28,80,28a12,12,0,0,1,0,24c-18.15576,0-20,6.06348-20,32C60,96.1709,60,108.75586,54.79785,119.48535ZM240,116c-18.15576,0-20-6.06348-20-32,0-12.1709,0-24.75586-5.20215-35.48535C208.19775,34.90234,195.14453,28,176,28a12,12,0,0,0,0,24c18.15576,0,20,6.06348,20,32,0,12.1709,0,24.75586,5.20215,35.48535A34.95033,34.95033,0,0,0,206.94922,128a34.95033,34.95033,0,0,0-5.74707,8.51465C196,147.24414,196,159.8291,196,172c0,25.93652-1.84424,32-20,32a12,12,0,0,0,0,24c19.14453,0,32.19775-6.90234,38.79785-20.51465C220,196.75586,220,184.1709,220,172c0-25.93652,1.84424-32,20-32a12,12,0,0,0,0-24Z" /> - </svg> - ); -}; - -export default OutlinedDataObjectIcon; diff --git a/src/icons/DataObject/index.ts b/src/icons/DataObject/index.ts deleted file mode 100644 index d8ee6d712..000000000 --- a/src/icons/DataObject/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedDataObjectIcon } from './OutlinedDataObjectIcon'; diff --git a/src/icons/Database/DatabaseIcon.tsx b/src/icons/Database/DatabaseIcon.tsx deleted file mode 100644 index ce9c2ee9e..000000000 --- a/src/icons/Database/DatabaseIcon.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const DatabaseIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - stroke = DEFAULT_STROKE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 448 512" - width={width} - height={height} - {...props} - > - <path - d="M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0s224 35.8 224 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6v85.9c0 44.2-100.3 80-224 80S0 476.2 0 432v-85.9z" - fill={fill} - stroke={stroke} - /> - </svg> - ); -}; - -export default DatabaseIcon; diff --git a/src/icons/Database/index.ts b/src/icons/Database/index.ts deleted file mode 100644 index 0fe2cc7ac..000000000 --- a/src/icons/Database/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as DatabaseIcon } from './DatabaseIcon'; diff --git a/src/icons/Delete/DeleteIcon.tsx b/src/icons/Delete/DeleteIcon.tsx deleted file mode 100644 index 0877592e3..000000000 --- a/src/icons/Delete/DeleteIcon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const DeleteIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = '#455a64', - style, - ...props -}: IconProps): JSX.Element => { - const _finalFill = style?.fill || fill; - - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - width={width} - height={height} - fill={_finalFill} - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" /> - </svg> - ); -}; - -export default DeleteIcon; diff --git a/src/icons/Delete/index.ts b/src/icons/Delete/index.ts deleted file mode 100644 index 6e9b85bbb..000000000 --- a/src/icons/Delete/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as DeleteIcon } from './DeleteIcon'; diff --git a/src/icons/Deploy/OutlinedDeployIcon.tsx b/src/icons/Deploy/OutlinedDeployIcon.tsx deleted file mode 100644 index 63e38e1cc..000000000 --- a/src/icons/Deploy/OutlinedDeployIcon.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedDeployIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z" /> - </svg> - ); -}; - -export default OutlinedDeployIcon; diff --git a/src/icons/Deploy/index.ts b/src/icons/Deploy/index.ts deleted file mode 100644 index 563f0a5db..000000000 --- a/src/icons/Deploy/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedDeployIcon } from './OutlinedDeployIcon'; diff --git a/src/icons/Deployments/DeploymentsIcon.tsx b/src/icons/Deployments/DeploymentsIcon.tsx deleted file mode 100644 index 98bee2547..000000000 --- a/src/icons/Deployments/DeploymentsIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; -export const DeploymentsIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = '#51636B', - style = {} -}) => ( - <svg - width={width} - height={height} - viewBox="0 0 20 20" - fill={fill} - style={style} - xmlns="http://www.w3.org/2000/svg" - > - <path d="M15.0021 5.83516L13.8271 4.66016L8.54375 9.94349L9.71875 11.1185L15.0021 5.83516ZM18.5354 4.66016L9.71875 13.4768L6.23542 10.0018L5.06042 11.1768L9.71875 15.8352L19.7188 5.83516L18.5354 4.66016ZM0.34375 11.1768L5.00208 15.8352L6.17708 14.6602L1.52708 10.0018L0.34375 11.1768Z" /> - </svg> -); - -export default DeploymentsIcon; diff --git a/src/icons/Deployments/index.tsx b/src/icons/Deployments/index.tsx deleted file mode 100644 index 00e3903e9..000000000 --- a/src/icons/Deployments/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -import DeploymentsIcon from './DeploymentsIcon'; -export { DeploymentsIcon }; diff --git a/src/icons/Design/DesignIcon.tsx b/src/icons/Design/DesignIcon.tsx deleted file mode 100644 index e207d8979..000000000 --- a/src/icons/Design/DesignIcon.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { CustomIconProps } from '../types'; -export const DesignIcon: FC<CustomIconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - primaryFill = '#00B39F', - secondaryFill = '#00D3A9', - style = {} -}) => ( - <svg - width={width} - height={height} - viewBox="0 0 320 320" - fill="none" - style={style} - xmlns="http://www.w3.org/2000/svg" - > - <path - d="M216.838 52.305C223.847 61.0548 228.978 70.8642 232.903 81.2842C237.971 94.7212 240.283 108.698 237.388 122.872C233.506 141.894 222.389 155.289 203.801 161.731C196.582 164.229 189.083 165.239 181.625 162.11C180.596 161.747 179.633 161.222 178.772 160.552C178.67 164.989 176.998 169.246 174.055 172.565C175.031 172.127 176.065 171.832 177.125 171.688C178.148 171.498 179.227 171.351 180.23 171.26C190.176 170.439 199.75 168.333 208.841 163.983C222.859 157.254 234.606 147.67 244.587 135.818C250.293 129.163 255.069 121.762 258.787 113.821C264.043 102.107 267.421 89.6378 268.796 76.8705C270.078 65.8613 269.735 55.0626 268.634 44.1586C268.368 41.5274 267.233 40.4397 264.871 40.0188C258.801 38.9382 252.724 37.7243 246.752 36.2718C231.137 32.4758 215.394 29.2552 199.75 25.6345C194.185 24.3364 188.599 23.1646 183.02 21.9297C187.113 25.8379 191.508 29.0516 195.762 32.4547C203.311 38.475 210.754 44.6709 216.838 52.305Z" - fill={secondaryFill} - /> - <path - d="M44.9646 187.783C49.7518 167.631 57.672 149.142 74.031 135.516C88.925 123.103 105.789 119.237 124.377 125.692C133.755 128.941 141.794 134.196 146.07 143.746C146.495 144.59 146.8 145.49 146.974 146.419C149.887 143.632 153.621 141.861 157.621 141.368C157.375 141.206 157.123 141.024 156.843 140.799C151.137 136.203 145.713 131.201 139.082 127.818C115.517 115.798 90.7615 114.248 65.6062 120.662C38.9299 127.446 18.3093 143.648 1.38956 164.964C-0.509885 167.358 -0.355687 168.901 1.20733 171.322C14.3282 191.754 27.323 212.272 40.3597 232.76C42.0839 235.476 43.8643 238.142 46.2333 241.721C46.4856 235.679 45.21 230.852 44.5301 225.99C42.7428 213.219 41.9438 200.49 44.9646 187.783Z" - fill={primaryFill} - /> - <path - d="M85.1637 45.9311C94.2262 44.4097 103.366 43.3977 112.541 42.8999C120.868 42.4438 128.998 44.0857 137.073 46.1908C156.123 51.1796 173.204 59.5225 185.736 75.3171C197.693 90.3748 200.567 107.272 194.147 125.389C190.866 134.65 185.323 142.341 175.854 146.509C175.198 146.837 174.483 147.031 173.751 147.077C176.589 150.103 178.345 153.984 178.748 158.114C179.175 157.427 179.658 156.778 180.192 156.17C187.131 147.912 193.411 139.246 197.013 128.904C201.739 115.336 203.71 100.961 202.81 86.6213C202.123 72.6001 198.586 58.8668 192.416 46.2609C183.571 28.3893 170.828 13.6823 155.268 1.31185C152.948 -0.53355 151.266 -0.316032 148.848 1.24168C128.816 14.1313 108.658 26.8386 88.6264 39.6722C85.5141 41.6649 82.1706 43.3981 79.1641 46.2258C81.1684 46.3532 83.1816 46.2544 85.1637 45.9311Z" - fill={primaryFill} - /> - <path - d="M28.7856 128.971C36.6707 118.994 44.2054 108.672 54.8031 101.29C74.4283 87.6636 95.6236 78.8369 119.987 82.233C139.612 84.9831 153.798 95.698 160.885 114.63C163.927 122.761 164.88 131.168 161.319 139.566C161.096 140.134 160.807 140.674 160.457 141.174C164.487 141.276 168.376 142.679 171.546 145.173C171.465 144.896 171.399 144.615 171.349 144.331C171.167 143.3 171.16 142.226 171.075 141.202C170.452 132.915 169.099 124.803 166.127 116.966C159.82 100.35 149.033 87.166 135.722 75.6934C116.097 58.7761 92.9673 51.5208 67.5735 50.5526C60.3682 50.2789 53.1349 50.2017 45.9156 51.1489C40.9322 51.8015 40.5537 51.8506 39.4814 56.7623C34.8508 77.9481 30.199 99.1314 25.5264 120.313C24.3138 125.835 23.1293 131.357 21.7695 137.658C24.9727 134.76 26.6548 131.673 28.7856 128.971Z" - fill={secondaryFill} - /> - <path - d="M318.817 148.986C305.64 128.455 292.611 107.826 279.454 87.2809C277.71 84.5588 276.321 81.5135 273.392 78.4961C274.233 85.6598 274.843 91.8978 275.726 98.1006C277.563 111.04 277.548 123.859 274.128 136.587C268.766 156.585 259.829 174.352 243.022 187.262C233.819 194.363 223.172 197.577 211.72 197.724C203.694 197.829 196.061 195.507 188.961 191.697C182.765 188.37 177.494 184.049 174.375 177.551C173.394 175.495 172.973 174.253 173.289 173.418C170.267 176.43 166.313 178.323 162.074 178.786C163.182 179.494 164.236 180.281 165.229 181.143C171.116 185.929 176.997 190.721 183.915 194.019C203.204 203.19 223.579 205.141 244.318 201.871C275.6 196.959 299.304 179.354 318.747 155.189C320.513 152.965 320.296 151.287 318.817 148.986Z" - fill={primaryFill} - /> - <path - d="M277.35 208.209C257.977 227.716 234.721 238.613 206.762 238.69C187.248 238.746 166.586 225.92 159.655 207.114C156.788 199.327 154.881 191.425 157.832 183.215C158.617 181.041 159.15 179.658 159.745 178.964C155.506 178.917 151.406 177.433 148.117 174.754C148.472 175.804 148.687 176.896 148.755 178.003C149.372 184.023 149.687 190.127 151.489 195.944C161.091 226.951 181.74 248.162 210.918 261.017C229.562 269.227 249.405 271.731 269.794 269.613C278.905 268.658 278.955 268.827 280.77 260.835C285.775 238.774 290.807 216.714 295.657 194.618C296.471 190.899 297.949 187.223 297.879 182.423C296.737 183.974 296.119 184.788 295.524 185.622C289.868 193.453 284.162 201.361 277.35 208.209Z" - fill={secondaryFill} - /> - <path - d="M106.388 271.889C97.4938 261.897 91.13 250.354 86.7076 237.822C82.5019 225.845 80.0279 213.531 82.0395 200.704C84.9551 182.068 94.4031 168.14 111.799 160.358C120.21 156.576 129.119 154.787 138.294 158.309C139.297 158.642 140.257 159.094 141.153 159.657C141.231 155.609 142.616 151.695 145.1 148.5C144.357 148.65 143.605 148.748 142.85 148.794C137.856 149.103 132.888 149.735 127.976 150.689C110.993 154.295 96.9051 163.192 84.5207 174.918C68.0002 190.516 57.3535 209.467 52.8958 231.858C50.1833 245.457 49.8048 259.097 50.8351 272.878C51.2276 278.196 53.4284 280.098 58.7553 281.179C81.0093 285.704 103.115 291.002 125.306 295.829C129.084 296.658 132.798 298.061 137.796 298.215C134.158 295.409 131.334 293.262 128.502 291.108C120.722 285.171 112.928 279.235 106.388 271.889Z" - fill={secondaryFill} - /> - <path - d="M238.968 273.688C231.055 275.092 223.093 276.06 215.138 276.832C208.613 277.463 201.989 277.786 195.583 276.832C186.335 275.523 177.291 273.042 168.668 269.45C155.253 263.837 143.092 256.406 134.065 244.681C123.172 230.529 119.5 214.762 124.861 197.55C127.903 187.81 132.901 179.117 142.756 174.395C144.508 173.56 145.713 173.167 146.568 173.286C143.611 170.325 141.727 166.461 141.214 162.305C140.778 162.934 140.31 163.541 139.812 164.123C135.284 169.602 130.645 175.012 127.357 181.404C119.43 196.841 116.535 213.254 116.963 230.522C117.195 243.264 119.822 255.85 124.708 267.619C133.231 287.968 146.793 304.534 164 318.245C166.684 320.391 168.619 320.616 171.626 318.658C188.952 307.431 206.439 296.401 223.865 285.308C229.632 281.631 235.373 277.926 241.204 274.179C240.916 273.895 240.553 273.697 240.157 273.61C239.762 273.523 239.349 273.55 238.968 273.688Z" - fill={primaryFill} - /> - </svg> -); - -export default DesignIcon; diff --git a/src/icons/Design/index.tsx b/src/icons/Design/index.tsx deleted file mode 100644 index 2bafdf05c..000000000 --- a/src/icons/Design/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -import DesignIcon from './DesignIcon'; -export { DesignIcon }; diff --git a/src/icons/Designer/DesignerBottomRightIcon.tsx b/src/icons/Designer/DesignerBottomRightIcon.tsx deleted file mode 100644 index 53326a5a9..000000000 --- a/src/icons/Designer/DesignerBottomRightIcon.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const DesignerBottomRightIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 147 218" - {...props} - > - <path d="M0,123.3L70.2,0v93.4c-7.9,1.6-13.9,8.6-13.9,17c0,9.6,7.8,17.3,17.3,17.3s17.3-7.8,17.3-17.3 c0-8.5-6.2-15.6-14.3-17.1V0l70,123.5c-23,14.9-34.9,35.1-35.6,60.7H34.7C33.7,157.4,21.4,137.5,0,123.3z" /> - <path d="M73.6,121.4c6,0,10.9-4.9,10.9-10.9c0-6-4.9-10.9-10.9-10.9s-10.9,4.9-10.9,10.9 C62.7,116.6,67.6,121.4,73.6,121.4z" /> - <rect x="12.7" y="199.6" width="121.3" height="18.4" /> - </svg> - ); -}; - -export default DesignerBottomRightIcon; diff --git a/src/icons/Designer/index.ts b/src/icons/Designer/index.ts deleted file mode 100644 index 3a7f27b8a..000000000 --- a/src/icons/Designer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as DesignerBottomRightIcon } from './DesignerBottomRightIcon'; diff --git a/src/icons/Detail/DetailIcon.tsx b/src/icons/Detail/DetailIcon.tsx deleted file mode 100644 index d394e84f6..000000000 --- a/src/icons/Detail/DetailIcon.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -const DetailIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 205 162" - {...props} - > - <path d="M0.00975227 68H22.6764V45.3333H0.00975227V68ZM0.00975227 113.333H22.6764V90.6667H0.00975227V113.333ZM0.00975227 22.6667H22.6764V0H0.00975227V22.6667ZM45.3431 68H204.01V45.3333H45.3431V68ZM45.3431 113.333H204.01V90.6667H45.3431V113.333ZM45.3431 0V22.6667H204.01V0H45.3431Z" /> - <path d="M0 161.667H22.6667V139H0V161.667ZM45.3333 139V161.667H204V139H45.3333Z" /> - <path d="M0.00975227 68H22.6764V45.3333H0.00975227V68ZM0.00975227 113.333H22.6764V90.6667H0.00975227V113.333ZM0.00975227 22.6667H22.6764V0H0.00975227V22.6667ZM45.3431 68H204.01V45.3333H45.3431V68ZM45.3431 113.333H204.01V90.6667H45.3431V113.333ZM45.3431 0V22.6667H204.01V0H45.3431Z" /> - <path d="M0 161.667H22.6667V139H0V161.667ZM45.3333 139V161.667H204V139H45.3333Z" /> - </svg> - ); -}; - -export default DetailIcon; diff --git a/src/icons/Detail/DetailsIcon.tsx b/src/icons/Detail/DetailsIcon.tsx deleted file mode 100644 index 026f0abc0..000000000 --- a/src/icons/Detail/DetailsIcon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -const DetailsIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 122.88 122.566" - xmlns="http://www.w3.org/2000/svg" - enableBackground="new 0 0 122.88 122.566" - {...props} - > - <g> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M3.78,66.082h47.875c2.045,0,3.717,1.988,3.717,4.414v46.479 c0,2.43-1.671,4.416-3.717,4.416H3.78c-2.043,0-3.717-1.986-3.717-4.416V70.496C0.063,68.07,1.737,66.082,3.78,66.082L3.78,66.082z M71.224,0H119.1c2.046,0,3.717,1.986,3.717,4.415v46.479c0,2.429-1.671,4.413-3.717,4.413H71.224 c-2.045,0-3.714-1.984-3.714-4.413V4.415C67.51,1.986,69.179,0,71.224,0L71.224,0z M3.714,0h47.878 c2.045,0,3.717,1.986,3.717,4.415v46.479c0,2.429-1.671,4.413-3.717,4.413H3.714C1.671,55.307,0,53.323,0,50.894V4.415 C0,1.986,1.671,0,3.714,0L3.714,0z M71.287,67.26h47.876c2.043,0,3.717,1.986,3.717,4.416v46.479c0,2.426-1.674,4.412-3.717,4.412 H71.287c-2.045,0-3.717-1.986-3.717-4.412V71.676C67.57,69.246,69.242,67.26,71.287,67.26L71.287,67.26z" - /> - </g> - </svg> - ); -}; - -export default DetailsIcon; diff --git a/src/icons/Detail/index.ts b/src/icons/Detail/index.ts deleted file mode 100644 index 6bcc6d7d1..000000000 --- a/src/icons/Detail/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as DetailIcon, default as DetailsIcon } from './DetailsIcon'; diff --git a/src/icons/Document/DocumentIcon.tsx b/src/icons/Document/DocumentIcon.tsx deleted file mode 100644 index 2dad86a8c..000000000 --- a/src/icons/Document/DocumentIcon.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const DocumentIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - style, - fill, - secondaryFill, - ...props -}: IconProps & { secondaryFill?: string }): JSX.Element => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 28 29" - width={width} - fill={fill} - {...props} - > - <g clipPath="url(#clip0_12752_37613)"> - <path - d="M27.5889 23.8943L25.313 21.6184C25.0617 21.3673 24.7389 21.2319 24.4104 21.2111L23.6373 20.4381C24.7858 18.6122 24.566 16.1658 22.9777 14.5776C21.1341 12.7339 18.1345 12.7339 16.2907 14.5776C14.4473 16.4212 14.4473 19.4209 16.2909 21.2645C17.8792 22.8529 20.3256 23.0725 22.1512 21.9241L22.9244 22.6971C22.9449 23.0257 23.0806 23.3486 23.3318 23.5997L25.6077 25.8757C26.1548 26.4228 27.0418 26.4227 27.5891 25.8757C28.1359 25.3286 28.1361 24.4415 27.5889 23.8943ZM21.9873 20.274C20.6899 21.5713 18.579 21.5713 17.2815 20.274C15.9843 18.9767 15.9843 16.8658 17.2815 15.5684C18.5787 14.271 20.6895 14.271 21.9873 15.5684C23.2845 16.8657 23.2845 18.9767 21.9873 20.274Z" - fill={secondaryFill} - /> - - <path - d="M15.5006 13.8603C16.584 12.777 18.0261 12.1804 19.5615 12.1804C21.0969 12.1804 22.5391 12.7769 23.6224 13.8603C24.5473 14.785 25.1323 16.0107 25.2701 17.3119C25.376 18.3127 25.2171 19.328 24.8106 20.2492L24.8244 20.263C25.2533 20.368 25.645 20.5885 25.9575 20.9008L26.1822 21.1256V5.4155C26.1822 5.16814 26.0597 4.93669 25.8549 4.7976C23.849 3.43482 21.5707 2.71436 19.2656 2.71436C17.1178 2.71436 14.9933 3.34017 13.0911 4.52819C11.1881 3.34017 9.06313 2.71436 6.91535 2.71436C4.61087 2.71436 2.33256 3.43476 0.327145 4.7976C0.122467 4.93676 0 5.16821 0 5.4155V22.9281C0 23.2049 0.152904 23.459 0.397575 23.5886C0.642247 23.7182 0.938105 23.7017 1.1672 23.5463C2.92376 22.3527 4.9117 21.7215 6.91561 21.7215C8.91966 21.7215 10.908 22.3527 12.6652 23.5464C12.791 23.6322 12.9378 23.6756 13.0846 23.6756C13.0854 23.6756 13.0863 23.6755 13.0872 23.6755C13.2378 23.6775 13.3883 23.634 13.517 23.5463C14.2684 23.0357 15.0624 22.6289 15.8818 22.3295C15.7506 22.2197 15.6231 22.1044 15.5008 21.982C13.2614 19.7429 13.2614 16.0994 15.5006 13.8603ZM15.2532 7.75042C16.6544 6.79242 18.5693 6.6494 19.5862 6.6494C20.603 6.6494 22.518 6.79248 23.9192 7.75042C24.2642 7.98625 24.3526 8.45694 24.1169 8.80183C23.8811 9.14671 23.4102 9.23521 23.0655 8.99944C22.2874 8.46748 21.0192 8.16233 19.5863 8.16233C18.1533 8.16233 16.885 8.46742 16.1071 8.99944C15.9766 9.08865 15.8279 9.13153 15.6809 9.13153C15.4394 9.13153 15.2022 9.01626 15.0555 8.80189C14.8198 8.45701 14.9084 7.98625 15.2532 7.75042ZM15.2532 11.0232C16.6544 10.0652 18.5693 9.92216 19.5862 9.92216C20.603 9.92216 22.518 10.0652 23.9192 11.0232C24.2642 11.259 24.3526 11.7297 24.1169 12.0746C23.8811 12.4195 23.4102 12.508 23.0655 12.2722C22.2874 11.7402 21.0192 11.4351 19.5863 11.4351C18.1533 11.4351 16.885 11.7402 16.1071 12.2722C15.9766 12.3614 15.8279 12.4043 15.6809 12.4043C15.4394 12.4043 15.2022 12.289 15.0555 12.0747C14.8198 11.7298 14.9084 11.259 15.2532 11.0232ZM11.1265 18.6202C10.8907 18.9651 10.4199 19.0536 10.075 18.8179C9.29694 18.2858 8.02874 17.9808 6.5958 17.9808C5.16285 17.9808 3.89459 18.2858 3.11659 18.8179C2.98607 18.907 2.83736 18.95 2.69034 18.95C2.44888 18.95 2.21167 18.8347 2.06505 18.6204C1.82928 18.2754 1.91777 17.8047 2.26272 17.569C3.66399 16.6109 5.57895 16.468 6.5958 16.468C7.61265 16.468 9.52761 16.6112 10.9289 17.569C11.2738 17.8045 11.3622 18.2753 11.1265 18.6202ZM11.1265 15.3474C10.8907 15.6924 10.4199 15.7808 10.075 15.5451C9.29694 15.0131 8.02874 14.708 6.5958 14.708C5.16285 14.708 3.89459 15.0131 3.11659 15.5451C2.98607 15.6342 2.83736 15.6772 2.69034 15.6772C2.44888 15.6772 2.21167 15.562 2.06505 15.3476C1.82928 15.0027 1.91777 14.532 2.26272 14.2962C3.66399 13.3382 5.57895 13.1952 6.5958 13.1952C7.61265 13.1952 9.52761 13.3383 10.9289 14.2962C11.2738 14.5318 11.3622 15.0025 11.1265 15.3474ZM11.1265 12.0747C10.8907 12.4195 10.4199 12.508 10.075 12.2723C9.29694 11.7403 8.02874 11.4352 6.5958 11.4352C5.16285 11.4352 3.89459 11.7402 3.11659 12.2723C2.98607 12.3615 2.83736 12.4044 2.69034 12.4044C2.44888 12.4044 2.21167 12.2891 2.06505 12.0747C1.82928 11.7298 1.91777 11.2591 2.26272 11.0233C3.66399 10.0653 5.57895 9.92229 6.5958 9.92229C7.61265 9.92229 9.52761 10.0654 10.9289 11.0233C11.2738 11.259 11.3622 11.7298 11.1265 12.0747ZM11.1265 8.80189C10.8907 9.14678 10.4199 9.23527 10.075 8.9995C9.29694 8.46755 8.02874 8.1624 6.5958 8.1624C5.16285 8.1624 3.89459 8.46748 3.11659 8.9995C2.98607 9.08872 2.83736 9.13159 2.69034 9.13159C2.44888 9.13159 2.21167 9.01632 2.06505 8.80196C1.82928 8.45707 1.91777 7.98632 2.26272 7.75055C3.66399 6.79255 5.57895 6.64953 6.5958 6.64953C7.61265 6.64953 9.52761 6.79261 10.9289 7.75055C11.2738 7.98625 11.3622 8.45701 11.1265 8.80189Z" - fill={fill ?? '#00b39f'} - /> - </g> - <defs> - <clipPath id="clip0_12752_37613"> - <rect width="28" height="28" fill="white" transform="translate(0 0.5)" /> - </clipPath> - </defs> - </svg> -); - -export default DocumentIcon; diff --git a/src/icons/Document/index.ts b/src/icons/Document/index.ts deleted file mode 100644 index f6dab49e7..000000000 --- a/src/icons/Document/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import DocumentIcon from './DocumentIcon'; - -export { DocumentIcon }; diff --git a/src/icons/Done/DoneAllIcon.tsx b/src/icons/Done/DoneAllIcon.tsx deleted file mode 100644 index 30768d523..000000000 --- a/src/icons/Done/DoneAllIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const DoneAllIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 -960 960 960" - width={width} - height={height} - {...props} - > - <path d="M268-240 42-466l57-56 170 170 56 56-57 56Zm226 0L268-466l56-57 170 170 368-368 56 57-424 424Zm0-226-57-56 198-198 57 56-198 198Z" /> - </svg> - ); -}; - -export default DoneAllIcon; diff --git a/src/icons/Done/DoneIcon.tsx b/src/icons/Done/DoneIcon.tsx deleted file mode 100644 index c125dd66f..000000000 --- a/src/icons/Done/DoneIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const DoneIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 -960 960 960" - width={width} - height={height} - {...props} - > - <path d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z" /> - </svg> - ); -}; - -export default DoneIcon; diff --git a/src/icons/Done/index.tsx b/src/icons/Done/index.tsx deleted file mode 100644 index a6d037a0c..000000000 --- a/src/icons/Done/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -export { default as DoneAllIcon } from './DoneAllIcon'; -export { default as DoneIcon } from './DoneIcon'; diff --git a/src/icons/Download/Download.tsx b/src/icons/Download/Download.tsx deleted file mode 100644 index b4a7715ad..000000000 --- a/src/icons/Download/Download.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; -export const DownloadIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = '#455a64', - style = {} -}) => ( - <svg - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 -960 960 960" - width={width} - fill={fill} - style={style} - > - <path d="M480-320 280-520l56-58 104 104v-326h80v326l104-104 56 58-200 200ZM240-160q-33 0-56.5-23.5T160-240v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-160H240Z" /> - </svg> -); - -export default DownloadIcon; diff --git a/src/icons/Download/index.tsx b/src/icons/Download/index.tsx deleted file mode 100644 index c21784e76..000000000 --- a/src/icons/Download/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -import DownloadIcon from './Download'; -export { DownloadIcon }; diff --git a/src/icons/Drag/DragIcon.tsx b/src/icons/Drag/DragIcon.tsx deleted file mode 100644 index d399b904b..000000000 --- a/src/icons/Drag/DragIcon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const DragIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - - ...props -}: IconProps): JSX.Element => { - return ( - <svg - fill={props.fill} - width={width} - height={height} - viewBox="0 0 1920 1920" - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path - d="M600 1440c132.36 0 240 107.64 240 240s-107.64 240-240 240-240-107.64-240-240 107.64-240 240-240Zm720 0c132.36 0 240 107.64 240 240s-107.64 240-240 240-240-107.64-240-240 107.64-240 240-240ZM600 720c132.36 0 240 107.64 240 240s-107.64 240-240 240-240-107.64-240-240 107.64-240 240-240Zm720 0c132.36 0 240 107.64 240 240s-107.64 240-240 240-240-107.64-240-240 107.64-240 240-240ZM600 0c132.36 0 240 107.64 240 240S732.36 480 600 480 360 372.36 360 240 467.64 0 600 0Zm720 0c132.36 0 240 107.64 240 240s-107.64 240-240 240-240-107.64-240-240S1187.64 0 1320 0Z" - fill-rule="evenodd" - /> - </svg> - ); -}; -export default DragIcon; diff --git a/src/icons/Drag/index.ts b/src/icons/Drag/index.ts deleted file mode 100644 index fa1672782..000000000 --- a/src/icons/Drag/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import DragIcon from './DragIcon'; - -export { DragIcon }; diff --git a/src/icons/DropDownIcon/DropDownIcon.tsx b/src/icons/DropDownIcon/DropDownIcon.tsx deleted file mode 100644 index 4ed159b9f..000000000 --- a/src/icons/DropDownIcon/DropDownIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const DropDownIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="-6.5 0 32 32" - width={width} - height={height} - fill={props.fill || 'currentColor'} - {...props} - > - <path d="M18.813 11.406l-7.906 9.906c-0.75 0.906-1.906 0.906-2.625 0l-7.906-9.906c-0.75-0.938-0.375-1.656 0.781-1.656h16.875c1.188 0 1.531 0.719 0.781 1.656z"></path> - </svg> - ); -}; - -export default DropDownIcon; diff --git a/src/icons/DropDownIcon/index.ts b/src/icons/DropDownIcon/index.ts deleted file mode 100644 index f05b787dc..000000000 --- a/src/icons/DropDownIcon/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as DropDownIcon } from './DropDownIcon'; diff --git a/src/icons/Edit/EditIcon.tsx b/src/icons/Edit/EditIcon.tsx deleted file mode 100644 index cb24ce79e..000000000 --- a/src/icons/Edit/EditIcon.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const EditIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg viewBox="0 0 24 24" width={height} height={width} {...props}> - <path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"></path> - </svg> - ); -}; - -export default EditIcon; diff --git a/src/icons/Edit/index.tsx b/src/icons/Edit/index.tsx deleted file mode 100644 index e6465b573..000000000 --- a/src/icons/Edit/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as EditIcon } from './EditIcon'; diff --git a/src/icons/Ellipsis/Ellipsisicon.tsx b/src/icons/Ellipsis/Ellipsisicon.tsx deleted file mode 100644 index 9b99ea0cd..000000000 --- a/src/icons/Ellipsis/Ellipsisicon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const EllipsisIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 -960 960 960" - width={width} - height={height} - fill={props.fill || 'currentColor'} - {...props} - > - <path d="M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z" /> - </svg> - ); -}; - -export default EllipsisIcon; diff --git a/src/icons/Ellipsis/index.tsx b/src/icons/Ellipsis/index.tsx deleted file mode 100644 index 1ac661d14..000000000 --- a/src/icons/Ellipsis/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as EllipsisIcon } from './Ellipsisicon'; diff --git a/src/icons/EmptyStyle/EmptyStyleIcon.tsx b/src/icons/EmptyStyle/EmptyStyleIcon.tsx deleted file mode 100644 index dcd90aae1..000000000 --- a/src/icons/EmptyStyle/EmptyStyleIcon.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { CSSProperties, FC } from 'react'; - -interface EmptyStyleIconProps { - width?: string; - height?: string; - fill?: string; - style?: CSSProperties; - onClick?: () => void; -} - -const EmptyStyleIcon: FC<EmptyStyleIconProps> = ({ - width = '24px', - height = '24px', - fill, - style = {}, - onClick = () => {} -}) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 -960 960 960" - width={width} - fill={fill} - onClick={onClick} - > - <path d="m159-168-34-14q-31-13-41.5-45t3.5-63l72-156v278Zm160 88q-33 0-56.5-23.5T239-160v-240l106 294q3 7 6 13.5t8 12.5h-40Zm206-4q-32 12-62-3t-42-47L243-622q-12-32 2-62.5t46-41.5l302-110q32-12 62 3t42 47l178 488q12 32-2 62.5T827-194L525-84Zm-86-476q17 0 28.5-11.5T479-600q0-17-11.5-28.5T439-640q-17 0-28.5 11.5T399-600q0 17 11.5 28.5T439-560Z" /> - </svg> -); - -export default EmptyStyleIcon; diff --git a/src/icons/EmptyStyle/index.tsx b/src/icons/EmptyStyle/index.tsx deleted file mode 100644 index 97ba77dd5..000000000 --- a/src/icons/EmptyStyle/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as EmptyStyleIcon } from './EmptyStyleIcon'; diff --git a/src/icons/Environment/EnvironmentIcon.tsx b/src/icons/Environment/EnvironmentIcon.tsx deleted file mode 100644 index 4be9e571b..000000000 --- a/src/icons/Environment/EnvironmentIcon.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH, KEPPEL_GREEN_FILL } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const EnvironmentIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 18 19" - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path - d="M3.9375 2C2.5913 2 1.5 3.0913 1.5 4.4375V13.0625C1.5 14.4087 2.5913 15.5 3.9375 15.5H9.5V15V14.5L3.9375 14.5326C3.21263 14.5326 2.5 13.7874 2.5 13.0625V5.5H14.0909V6.50701C14.4567 6.42083 14.6213 6.46756 15 6.50701V4.4375C15 3.0913 14.4371 2 13.0909 2H3.9375Z" - fill={props.fill} - /> - <path - d="M14.8921 7.24992C14.7305 7.23496 14.5688 7.23515 14.4089 7.24992C13.5892 7.32566 12.8177 7.78464 12.3748 8.5517C11.8433 9.47232 11.9329 10.581 12.5134 11.3928L10.2443 15.323C10.2112 15.3804 10.1838 15.4396 10.1621 15.4999C9.98586 15.9886 10.179 16.5482 10.6447 16.8171C11.1678 17.1191 11.8368 16.9398 12.1388 16.4167L14.4121 12.4792C15.3988 12.5676 16.3936 12.091 16.9215 11.1767C17.493 10.1869 17.3465 8.97965 16.6438 8.1578L15.406 10.3017C15.1643 10.7202 14.6292 10.8636 14.2107 10.622C13.7922 10.3803 13.6488 9.84522 13.8904 9.42672L15.1282 7.28275C15.0497 7.26815 14.9709 7.25723 14.8921 7.24992Z" - fill={KEPPEL_GREEN_FILL || props.fill} - /> - <path - d="M11.3737 10.6811C11.2462 10.1702 11.2374 9.62906 11.3596 9.10256L9.64327 7.38395C9.49695 7.2374 9.2595 7.23723 9.11295 7.38358C8.9664 7.52993 8.96625 7.76736 9.11257 7.91391L11.0949 9.89891L9.11257 11.8839C8.96625 12.0305 8.9664 12.2679 9.11295 12.4143C9.2595 12.5606 9.49695 12.5604 9.64327 12.4139L11.3737 10.6811Z" - fill={props.fill} - /> - <path - d="M7.39254 7.91424C7.53907 7.76787 7.53922 7.53044 7.39283 7.38391C7.24647 7.23738 7.00903 7.23725 6.86251 7.38362L4.60998 9.63364C4.53956 9.70399 4.5 9.79939 4.5 9.89891C4.5 9.99844 4.53957 10.0939 4.60999 10.1643L6.86251 12.4143C7.00903 12.5606 7.24647 12.5604 7.39283 12.414C7.53922 12.2674 7.53907 12.03 7.39254 11.8836L5.40562 9.89891L7.39254 7.91424Z" - fill={props.fill} - /> - </svg> - ); -}; - -export default EnvironmentIcon; diff --git a/src/icons/Environment/index.ts b/src/icons/Environment/index.ts deleted file mode 100644 index d662bb795..000000000 --- a/src/icons/Environment/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as EnvironmentIcon } from './EnvironmentIcon'; diff --git a/src/icons/Error/index.tsx b/src/icons/Error/index.tsx deleted file mode 100644 index 95cd9bdd8..000000000 --- a/src/icons/Error/index.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -function ErrorIcon({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}: IconProps): JSX.Element { - return ( - <svg - viewBox="0 0 24 24" - xmlns="http://www.w3.org/2000/svg" - height={height} - width={width} - fill={fill} - style={props.style} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" /> - </svg> - ); -} - -export default ErrorIcon; - -export { ErrorIcon }; diff --git a/src/icons/ErrorOutline/ErrorOutlineIcon.tsx b/src/icons/ErrorOutline/ErrorOutlineIcon.tsx deleted file mode 100644 index 2006983ab..000000000 --- a/src/icons/ErrorOutline/ErrorOutlineIcon.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ErrorOutlineIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="error-outline-icon-svg" - {...props} - > - <path - d="M11 15h2v2h-2zm0-8h2v6h-2zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" - fill={fill} - /> - </svg> - ); -}; - -export default ErrorOutlineIcon; diff --git a/src/icons/ErrorOutline/index.ts b/src/icons/ErrorOutline/index.ts deleted file mode 100644 index c8b22c4ba..000000000 --- a/src/icons/ErrorOutline/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ErrorOutlineIcon } from './ErrorOutlineIcon'; diff --git a/src/icons/ExpandAll/ExpandAllIcon.tsx b/src/icons/ExpandAll/ExpandAllIcon.tsx deleted file mode 100644 index d9e790048..000000000 --- a/src/icons/ExpandAll/ExpandAllIcon.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react'; - -interface ExpandAllIconProps { - height?: string; - width?: string; - fill?: string; - strokeWidth?: string; - style?: React.CSSProperties; -} - -const ExpandAllIcon: React.FC<ExpandAllIconProps> = ({ - height = '24', - width = '24', - fill = 'none', - strokeWidth = '2', - style -}) => ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - height={height} - width={width} - style={style} - > - <path - d="M7 8l5 5 5-5" - fill={fill} - stroke="currentColor" - strokeWidth={strokeWidth} - strokeLinecap="round" - strokeLinejoin="round" - /> - <path - d="M7 14l5 5 5-5" - fill={fill} - stroke="currentColor" - strokeWidth={strokeWidth} - strokeLinecap="round" - strokeLinejoin="round" - /> - </svg> -); - -export default ExpandAllIcon; diff --git a/src/icons/ExpandAll/index.tsx b/src/icons/ExpandAll/index.tsx deleted file mode 100644 index 0f9a8c8f9..000000000 --- a/src/icons/ExpandAll/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as ExpandAllIcon } from './ExpandAllIcon'; diff --git a/src/icons/ExpandMore/ExpandMoreIcon.tsx b/src/icons/ExpandMore/ExpandMoreIcon.tsx deleted file mode 100644 index ed0178fce..000000000 --- a/src/icons/ExpandMore/ExpandMoreIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ExpandMoreIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="expand-more-icon-svg" - {...props} - > - <path d="M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z" fill={fill} /> - </svg> - ); -}; - -export default ExpandMoreIcon; diff --git a/src/icons/ExpandMore/index.ts b/src/icons/ExpandMore/index.ts deleted file mode 100644 index 9eb1646bb..000000000 --- a/src/icons/ExpandMore/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ExpandMoreIcon } from './ExpandMoreIcon'; diff --git a/src/icons/Export/ExportIcon.tsx b/src/icons/Export/ExportIcon.tsx deleted file mode 100644 index e6ed6aa04..000000000 --- a/src/icons/Export/ExportIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const DownloadIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = '#455a64', - style = {} -}) => ( - <svg - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 24 24" - width={width} - fill={fill} - style={style} - > - <path d="M19 9h-4V3H9v6H5l7 7zM5 18v2h14v-2z"></path> - </svg> -); - -export default DownloadIcon; diff --git a/src/icons/Export/index.ts b/src/icons/Export/index.ts deleted file mode 100644 index c95515046..000000000 --- a/src/icons/Export/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ExportIcon } from './ExportIcon'; diff --git a/src/icons/ExternalLink/Externallink.tsx b/src/icons/ExternalLink/Externallink.tsx deleted file mode 100644 index b4aebf133..000000000 --- a/src/icons/ExternalLink/Externallink.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ExternalLinkIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 -960 960 960" - {...props} - > - <path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z" /> - </svg> - ); -}; - -export default ExternalLinkIcon; diff --git a/src/icons/ExternalLink/index.ts b/src/icons/ExternalLink/index.ts deleted file mode 100644 index ffc06afa3..000000000 --- a/src/icons/ExternalLink/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ExternalLinkIcon } from './Externallink'; diff --git a/src/icons/Favorite/FavoriteIcon.tsx b/src/icons/Favorite/FavoriteIcon.tsx deleted file mode 100644 index 3def6b400..000000000 --- a/src/icons/Favorite/FavoriteIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const FavoriteIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" /> - </svg> - ); -}; - -export default FavoriteIcon; diff --git a/src/icons/Favorite/index.ts b/src/icons/Favorite/index.ts deleted file mode 100644 index 6f1a29b3f..000000000 --- a/src/icons/Favorite/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as FavoriteIcon } from './FavoriteIcon'; diff --git a/src/icons/Feedback/FeedbackIcon.tsx b/src/icons/Feedback/FeedbackIcon.tsx deleted file mode 100644 index 42f566ef3..000000000 --- a/src/icons/Feedback/FeedbackIcon.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -type KeppelApplicationIconProps = { - primaryFill?: string; - secondaryFill?: string; -} & IconProps; -const FeedbackIcon: FC<KeppelApplicationIconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - version="1.1" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - fill={props.fill} - {...props} - > - <path - stroke="none" - d="M20 2H4C2.9 2 2.01 2.9 2.01 4L2 22L6 18H20C21.1 18 22 17.1 22 16V4C22 2.9 21.1 2 20 2ZM13 14H11V12H13V14ZM13 10H11V6H13V10Z" - /> - <line x1="12" y1="6" x2="12" y2="10" stroke="inherit" stroke-width="2" /> - <line x1="12" y1="12" x2="12" y2="14" stroke="inherit" stroke-width="2" /> - </svg> - ); -}; - -export default FeedbackIcon; diff --git a/src/icons/Feedback/index.ts b/src/icons/Feedback/index.ts deleted file mode 100644 index 29781cfbf..000000000 --- a/src/icons/Feedback/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as FeedbackIcon } from './FeedbackIcon'; diff --git a/src/icons/File/FileIcon.tsx b/src/icons/File/FileIcon.tsx deleted file mode 100644 index 8b622d0e0..000000000 --- a/src/icons/File/FileIcon.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const FileIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - stroke = DEFAULT_STROKE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 384 512" - width={width} - height={height} - {...props} - > - <path - d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm0 32l0 64 192 0 0-64L96 256zM240 416l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z" - fill={fill} - stroke={stroke} - /> - </svg> - ); -}; - -export default FileIcon; diff --git a/src/icons/File/index.ts b/src/icons/File/index.ts deleted file mode 100644 index 8466f3ea7..000000000 --- a/src/icons/File/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as FileIcon } from './FileIcon'; diff --git a/src/icons/FilledCircleIcon.tsx b/src/icons/FilledCircleIcon.tsx deleted file mode 100644 index 3972b1b65..000000000 --- a/src/icons/FilledCircleIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from './types'; - -export const FilledCircleIcon: FC<IconProps> = ({ - width, - height, - fill = 'currentColor', - ...props -}) => { - return ( - <svg width={width} height={height} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M11.3661 38.0349C1.40555 33.2661 -2.80363 21.3246 1.96473 11.3628C4.25461 6.57899 8.35082 2.90088 13.3523 1.13757C18.3537 -0.62574 23.8507 -0.329761 28.6338 1.96035C38.5946 6.72929 42.8037 18.6709 38.0351 28.6325C33.2669 38.5944 21.3267 42.804 11.3661 38.0349Z" - fill={fill} - {...props} - /> - </svg> - ); -}; - -export default { Filled: FilledCircleIcon }; diff --git a/src/icons/Filter/FilterIcon.tsx b/src/icons/Filter/FilterIcon.tsx deleted file mode 100644 index cc54ef01b..000000000 --- a/src/icons/Filter/FilterIcon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const FilterIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - width={width} - height={height} - fill={props.fill} - fill-opacity={props.fillOpacity} - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z" /> - </svg> - ); -}; - -export default FilterIcon; diff --git a/src/icons/Filter/index.ts b/src/icons/Filter/index.ts deleted file mode 100644 index f6fff5112..000000000 --- a/src/icons/Filter/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as FilterIcon } from './FilterIcon'; diff --git a/src/icons/FolderRounded/FolderRoundedIcon.tsx b/src/icons/FolderRounded/FolderRoundedIcon.tsx deleted file mode 100644 index 3910f5ce6..000000000 --- a/src/icons/FolderRounded/FolderRoundedIcon.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const FolderRoundedIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="folder-rounded-icon-svg" - {...props} - > - <path - d="M10 4c-0.55 0-1 0.45-1 1H4c-1.1 0-2 0.9-2 2v10c0 1.1 0.9 2 2 2h16c1.1 0 2-0.9 2-2V8c0-1.1-0.9-2-2-2h-8l-2-2z" - fill={fill} - /> - </svg> - ); -}; - -export default FolderRoundedIcon; diff --git a/src/icons/FolderRounded/index.ts b/src/icons/FolderRounded/index.ts deleted file mode 100644 index c53a02550..000000000 --- a/src/icons/FolderRounded/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as FolderRoundedIcon } from './FolderRoundedIcon'; diff --git a/src/icons/Fullscreen/FullScreenExitIcon.tsx b/src/icons/Fullscreen/FullScreenExitIcon.tsx deleted file mode 100644 index 5c0d80bb0..000000000 --- a/src/icons/Fullscreen/FullScreenExitIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const FullScreenExitIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z" /> - </svg> - ); -}; - -export default FullScreenExitIcon; diff --git a/src/icons/Fullscreen/FullScreenIcon.tsx b/src/icons/Fullscreen/FullScreenIcon.tsx deleted file mode 100644 index 9e63a74e8..000000000 --- a/src/icons/Fullscreen/FullScreenIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const FullScreenIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z" /> - </svg> - ); -}; - -export default FullScreenIcon; diff --git a/src/icons/Fullscreen/index.ts b/src/icons/Fullscreen/index.ts deleted file mode 100644 index 110fca6e7..000000000 --- a/src/icons/Fullscreen/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as FullScreenIconExit } from './FullScreenExitIcon'; -export { default as FullScreenIcon } from './FullScreenIcon'; diff --git a/src/icons/GetStarted/GetStartedIcon.tsx b/src/icons/GetStarted/GetStartedIcon.tsx deleted file mode 100644 index 1b4c3c522..000000000 --- a/src/icons/GetStarted/GetStartedIcon.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const GetStartedIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill, - ...props -}) => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 32 35" - fill="none" - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path - d="M12.0511 7.32533C11.5656 7.14537 11.8398 6.41708 12.3253 6.5973C13.9775 7.21583 15.0971 8.79753 15.0971 10.5827V27.683C15.0971 29.4605 16.4359 30.9479 18.182 31.1359C18.6911 31.1907 18.6048 31.9736 18.096 31.9111C15.9586 31.6763 14.3141 29.8442 14.3141 27.6751L14.3138 10.5824C14.3138 9.12611 13.39 7.82644 12.0511 7.32533ZM4.4325 17.9193L5.01962 18.9371L5.66163 20.0488C5.81811 20.315 5.62258 20.6359 5.32492 20.6359L4.43247 20.6362V29.5621C6.01415 29.8674 6.6327 31.8407 5.47376 32.9915C4.19765 34.2602 2.013 33.3519 2.013 31.551C2.013 30.5723 2.70991 29.7424 3.64928 29.5545V20.6285H2.75683C2.46709 20.6285 2.24781 20.3153 2.43568 20.01L3.06213 18.9294L3.64925 17.9116V14.8815C3.64925 14.3648 4.43215 14.3648 4.43215 14.8815L4.4325 17.9193ZM25.7609 17.9193L26.9903 20.049C27.1468 20.3153 26.9513 20.6362 26.6536 20.6362H25.7609V22.531C25.7609 23.0477 24.978 23.0477 24.978 22.531V20.6362H24.0855C23.7958 20.6362 23.5765 20.315 23.7644 20.0256L24.9779 17.9272V14.6229C22.5508 14.3017 21.5172 11.3186 23.2633 9.56485C23.7174 9.11072 24.3125 8.80544 24.9779 8.7191V6.41729H18.7375C18.3773 6.41729 18.1894 5.96315 18.5026 5.71275L25.1188 0.0911155C25.3695 -0.120246 25.7609 0.0597111 25.7609 0.388772V8.71978C27.2251 8.91558 28.3447 10.1682 28.3447 11.6715C28.3447 13.1827 27.2172 14.4278 25.7609 14.6233L25.7609 17.9193Z" - fill={fill} - fillOpacity="0.6" - /> - <path - d="M1.6561 3.66928C-0.552034 5.87742 -0.552034 9.46324 1.6561 11.671C3.86423 13.8792 7.45006 13.8792 9.65784 11.671C11.866 9.46289 11.866 5.87707 9.65784 3.66928C7.44971 1.46115 3.86388 1.46115 1.6561 3.66928ZM21.3948 25.3424C19.1867 27.5505 19.1867 31.1363 21.3948 33.3441C23.6029 35.5522 27.1888 35.5522 29.3965 33.3441C31.6047 31.136 31.6047 27.5501 29.3965 25.3424C27.1963 23.1342 23.6105 23.1342 21.3948 25.3424ZM2.96339 7.44365C2.70506 6.99744 3.38612 6.60587 3.63681 7.05205L4.62343 8.7667L7.73192 5.65821C8.09211 5.2901 8.64807 5.84609 8.28791 6.2142L4.81925 9.68286C4.63929 9.86282 4.33371 9.82377 4.20072 9.60448L2.96339 7.44365ZM22.7098 29.1167C22.4515 28.6705 23.1325 28.2789 23.3832 28.7251L24.3698 30.4398L27.4783 27.3313C27.8385 26.9711 28.3945 27.5192 28.0343 27.8873L24.5656 31.3559C24.3857 31.5359 24.0801 31.4968 23.9471 31.2776L22.7098 29.1167Z" - fill={fill} - fillOpacity="0.8" - /> - </svg> - ); -}; - -export default GetStartedIcon; diff --git a/src/icons/GetStarted/index.ts b/src/icons/GetStarted/index.ts deleted file mode 100644 index 18b4a5fea..000000000 --- a/src/icons/GetStarted/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import GetStartedIcon from './GetStartedIcon'; - -export { GetStartedIcon }; diff --git a/src/icons/Github/GithubIcon.tsx b/src/icons/Github/GithubIcon.tsx deleted file mode 100644 index d5ada581e..000000000 --- a/src/icons/Github/GithubIcon.tsx +++ /dev/null @@ -1,33 +0,0 @@ -interface GithubIconProps { - height?: string | number; - width?: string | number; - className?: string; -} - -export default function GithubIcon({ - height = '1.45rem', - width = '1.45rem', - className -}: GithubIconProps) { - return ( - <svg - height={height} - width={width} - className={className} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 400 400" - > - <path - fill="currentColor" - fillRule="evenodd" - clipRule="evenodd" - d="M203.9,60c-75.6,0-137,61.3-137,137c0,60.5,39.2,111.9,93.7,130c6.8,1.3,9.3-3,9.3-6.6c0-3.3-0.1-11.9-0.2-23.3 - c-38.1,8.3-46.1-18.4-46.1-18.4c-6.2-15.8-15.2-20-15.2-20c-12.4-8.5,0.9-8.3,0.9-8.3c13.7,1,21,14.1,21,14.1 - c12.2,20.9,32.1,14.9,39.9,11.4c1.2-8.9,4.8-14.9,8.7-18.3c-30.4-3.5-62.4-15.2-62.4-67.7c0-15,5.3-27.2,14.1-36.8 - c-1.4-3.5-6.1-17.4,1.3-36.3c0,0,11.5-3.7,37.7,14c10.9-3,22.6-4.6,34.3-4.6c11.6,0.1,23.4,1.6,34.3,4.6c26.2-17.7,37.6-14,37.6-14 - c7.5,18.9,2.8,32.8,1.4,36.3c8.8,9.6,14.1,21.8,14.1,36.8c0,52.6-32,64.2-62.5,67.6c4.9,4.2,9.3,12.6,9.3,25.4 - c0,18.3-0.2,33.1-0.2,37.6c0,3.7,2.5,7.9,9.4,6.6c54.4-18.2,93.6-69.5,93.6-130C340.9,121.3,279.5,60,203.9,60z" - /> - </svg> - ); -} diff --git a/src/icons/Github/index.ts b/src/icons/Github/index.ts deleted file mode 100644 index b9e50f274..000000000 --- a/src/icons/Github/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import GithubIcon from './GithubIcon'; - -export { GithubIcon }; diff --git a/src/icons/Google/GoogleIcon.tsx b/src/icons/Google/GoogleIcon.tsx deleted file mode 100644 index cf669a8bf..000000000 --- a/src/icons/Google/GoogleIcon.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import React from 'react'; - -interface GoogleIconProps { - height: number; - width: number; - style?: React.CSSProperties; -} - -const GoogleIcon: React.FC<GoogleIconProps> = ({ height, width, style }) => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - viewBox="0 0 256 256" - style={style} - > - <g - fillOpacity="0" - strokeMiterlimit="10" - fontFamily="none" - fontSize="none" - fontWeight="none" - textAnchor="none" - style={{ mixBlendMode: 'normal' }} - > - <path d="M0 256V0h256v256z"></path> - </g> - <g - fill="none" - strokeMiterlimit="10" - fontFamily="none" - fontSize="none" - fontWeight="none" - textAnchor="none" - style={{ mixBlendMode: 'normal' }} - > - <path - fill="#ffc107" - d="M43.611 20.083H42V20H24v8h11.303c-1.649 4.657-6.08 8-11.303 8-6.627 0-12-5.373-12-12s5.373-12 12-12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4 12.955 4 4 12.955 4 24s8.955 20 20 20 20-8.955 20-20c0-1.341-.138-2.65-.389-3.917z" - transform="scale(5.33333)" - ></path> - <path - fill="#ff3d00" - d="M6.306 14.691l6.571 4.819C14.655 15.108 18.961 12 24 12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4 16.318 4 9.656 8.337 6.306 14.691z" - transform="scale(5.33333)" - ></path> - <path - fill="#4caf50" - d="M24 44c5.166 0 9.86-1.977 13.409-5.192l-6.19-5.238A11.91 11.91 0 0124 36c-5.202 0-9.619-3.317-11.283-7.946l-6.522 5.025C9.505 39.556 16.227 44 24 44z" - transform="scale(5.33333)" - ></path> - <path - fill="#1976d2" - d="M43.611 20.083H42V20H24v8h11.303a12.04 12.04 0 01-4.087 5.571l.003-.002 6.19 5.238C36.971 39.205 44 34 44 24c0-1.341-.138-2.65-.389-3.917z" - transform="scale(5.33333)" - ></path> - </g> - </svg> - ); -}; - -export default GoogleIcon; diff --git a/src/icons/Google/index.ts b/src/icons/Google/index.ts deleted file mode 100644 index e3327269f..000000000 --- a/src/icons/Google/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import GoogleIcon from './GoogleIcon'; - -export { GoogleIcon }; diff --git a/src/icons/GridView/GridViewIcon.tsx b/src/icons/GridView/GridViewIcon.tsx deleted file mode 100644 index 049d05f90..000000000 --- a/src/icons/GridView/GridViewIcon.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react'; - -interface GridViewIconProps { - width?: string; - height?: string; - fill?: string; - opacity?: number; - style?: React.CSSProperties; -} - -export const GridViewIcon: React.FC<GridViewIconProps> = ({ - width = '24', - height = '28.8', - fill, - opacity, - style = {} -}) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 24 24" - width={width} - fill={fill} - fillOpacity={opacity} - > - <path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z"></path> - </svg> -); - -export default GridViewIcon; diff --git a/src/icons/GridView/index.ts b/src/icons/GridView/index.ts deleted file mode 100644 index 43f10c663..000000000 --- a/src/icons/GridView/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as GridViewIcon } from './GridViewIcon'; diff --git a/src/icons/HelpIcon/HelpOutlinedIcon.tsx b/src/icons/HelpIcon/HelpOutlinedIcon.tsx deleted file mode 100644 index 5fe617263..000000000 --- a/src/icons/HelpIcon/HelpOutlinedIcon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const HelpOutlinedIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - fill={fill} - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z" /> - </svg> - ); -}; - -export default HelpOutlinedIcon; diff --git a/src/icons/HelpIcon/index.ts b/src/icons/HelpIcon/index.ts deleted file mode 100644 index 425e8c463..000000000 --- a/src/icons/HelpIcon/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as HelpOutlinedIcon } from './HelpOutlinedIcon'; diff --git a/src/icons/Hierarchical/OutlinedHierarchicalIcon.tsx b/src/icons/Hierarchical/OutlinedHierarchicalIcon.tsx deleted file mode 100644 index f9bc4a18b..000000000 --- a/src/icons/Hierarchical/OutlinedHierarchicalIcon.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedHierarchicalIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 65 64" - {...props} - > - <path - fillRule="evenodd" - clipRule="evenodd" - d="M30.4404 5.04718C30.4404 3.0609 32.0507 1.45068 34.0369 1.45068C34.9908 1.45068 35.9056 1.82961 36.58 2.50407C37.2545 3.17856 37.6334 4.09334 37.6334 5.04718C37.6334 7.03346 36.0232 8.64368 34.0369 8.64368C32.0507 8.64368 30.4404 7.03346 30.4404 5.04718V5.04718Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M30.4404 5.04718C30.4404 3.0609 32.0507 1.45068 34.0369 1.45068C34.9908 1.45068 35.9056 1.82961 36.58 2.50407C37.2545 3.17856 37.6334 4.09334 37.6334 5.04718C37.6334 7.03346 36.0232 8.64368 34.0369 8.64368C32.0507 8.64368 30.4404 7.03346 30.4404 5.04718V5.04718Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M34.037 8.64355L33.9727 14.9615" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M30.3789 18.5633C30.3789 16.577 31.9891 14.9668 33.9753 14.9668C34.9292 14.9668 35.844 15.3457 36.5185 16.0202C37.1929 16.6947 37.5718 17.6094 37.5718 18.5633C37.5718 20.5496 35.9617 22.1598 33.9753 22.1598C31.9891 22.1598 30.3789 20.5496 30.3789 18.5633Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M30.3789 18.5633C30.3789 16.577 31.9891 14.9668 33.9753 14.9668C34.9292 14.9668 35.844 15.3457 36.5185 16.0202C37.1929 16.6947 37.5718 17.6094 37.5718 18.5633C37.5718 20.5496 35.9617 22.1598 33.9753 22.1598C31.9891 22.1598 30.3789 20.5496 30.3789 18.5633Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M42.1833 29.5394C42.1833 27.5531 43.7936 25.9429 45.7798 25.9429C46.7337 25.9429 47.6485 26.3218 48.3229 26.9963C48.9974 27.6707 49.3763 28.5855 49.3763 29.5394C49.3763 31.5257 47.7662 33.1358 45.7798 33.1358C43.7936 33.1358 42.1833 31.5257 42.1833 29.5394V29.5394Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M42.1833 29.5394C42.1833 27.5531 43.7936 25.9429 45.7798 25.9429C46.7337 25.9429 47.6485 26.3218 48.3229 26.9963C48.9974 27.6707 49.3763 28.5855 49.3763 29.5394C49.3763 31.5257 47.7662 33.1358 45.7798 33.1358C43.7936 33.1358 42.1833 31.5257 42.1833 29.5394V29.5394Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M43.2367 32.0825L39.6338 39.1854" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M36.0391 42.7869C36.0391 40.8006 37.6493 39.1904 39.6356 39.1904C40.5894 39.1904 41.5042 39.5694 42.1786 40.2438C42.8531 40.9183 43.2321 41.8331 43.2321 42.7869C43.2321 44.7732 41.6218 46.3834 39.6356 46.3834C37.6493 46.3834 36.0391 44.7732 36.0391 42.7869V42.7869Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M36.0391 42.7869C36.0391 40.8006 37.6493 39.1904 39.6356 39.1904C40.5894 39.1904 41.5042 39.5694 42.1786 40.2438C42.8531 40.9183 43.2321 41.8331 43.2321 42.7869C43.2321 44.7732 41.6218 46.3834 39.6356 46.3834C37.6493 46.3834 36.0391 44.7732 36.0391 42.7869V42.7869Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M17.1958 29.2703C17.1958 27.284 18.806 25.6738 20.7923 25.6738C21.7462 25.6738 22.6609 26.0527 23.3354 26.7272C24.0099 27.4017 24.3888 28.3165 24.3888 29.2703C24.3888 31.2566 22.7786 32.8668 20.7923 32.8668C18.806 32.8668 17.1958 31.2566 17.1958 29.2703Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M17.1958 29.2703C17.1958 27.284 18.806 25.6738 20.7923 25.6738C21.7462 25.6738 22.6609 26.0527 23.3354 26.7272C24.0099 27.4017 24.3888 28.3165 24.3888 29.2703C24.3888 31.2566 22.7786 32.8668 20.7923 32.8668C18.806 32.8668 17.1958 31.2566 17.1958 29.2703Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M23.3354 31.8135L27.9935 39.1866" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M24.3943 42.7869C24.3943 40.8006 26.0045 39.1904 27.9908 39.1904C28.9446 39.1904 29.8594 39.5694 30.5339 40.2438C31.2084 40.9183 31.5873 41.8331 31.5873 42.7869C31.5873 44.7732 29.9771 46.3834 27.9908 46.3834C26.0045 46.3834 24.3943 44.7732 24.3943 42.7869V42.7869Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M24.3943 42.7869C24.3943 40.8006 26.0045 39.1904 27.9908 39.1904C28.9446 39.1904 29.8594 39.5694 30.5339 40.2438C31.2084 40.9183 31.5873 41.8331 31.5873 42.7869C31.5873 44.7732 29.9771 46.3834 27.9908 46.3834C26.0045 46.3834 24.3943 44.7732 24.3943 42.7869V42.7869Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M36.5186 21.1064L43.2354 26.9998" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path d="M31.4321 21.1064L23.3384 26.7296" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path d="M48.3228 32.0825L51.9257 39.1211" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M48.3276 42.7195C48.3276 40.7332 49.9378 39.123 51.9241 39.123C52.878 39.123 53.7927 39.502 54.4672 40.1764C55.1417 40.8509 55.5206 41.7657 55.5206 42.7195C55.5206 44.7058 53.9104 46.316 51.9241 46.316C49.9378 46.316 48.3276 44.7058 48.3276 42.7195V42.7195Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M48.3276 42.7195C48.3276 40.7332 49.9378 39.123 51.9241 39.123C52.878 39.123 53.7927 39.502 54.4672 40.1764C55.1417 40.8509 55.5206 41.7657 55.5206 42.7195C55.5206 44.7058 53.9104 46.316 51.9241 46.316C49.9378 46.316 48.3276 44.7058 48.3276 42.7195V42.7195Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M18.2491 31.8135L14.1572 39.1223" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M10.5635 42.7195C10.5635 40.7332 12.1737 39.123 14.16 39.123C15.1138 39.123 16.0286 39.502 16.7031 40.1764C17.3776 40.8509 17.7565 41.7657 17.7565 42.7195C17.7565 44.7058 16.1462 46.316 14.16 46.316C12.1737 46.316 10.5635 44.7058 10.5635 42.7195V42.7195Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M10.5635 42.7195C10.5635 40.7332 12.1737 39.123 14.16 39.123C15.1138 39.123 16.0286 39.502 16.7031 40.1764C17.3776 40.8509 17.7565 41.7657 17.7565 42.7195C17.7565 44.7058 16.1462 46.316 14.16 46.316C12.1737 46.316 10.5635 44.7058 10.5635 42.7195V42.7195Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - </svg> - ); -}; - -export default OutlinedHierarchicalIcon; diff --git a/src/icons/Hierarchical/index.ts b/src/icons/Hierarchical/index.ts deleted file mode 100644 index 84527297d..000000000 --- a/src/icons/Hierarchical/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedHierarchicalIcon } from './OutlinedHierarchicalIcon'; diff --git a/src/icons/Idea/IdeaIcon.tsx b/src/icons/Idea/IdeaIcon.tsx deleted file mode 100644 index a736cf1b6..000000000 --- a/src/icons/Idea/IdeaIcon.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH, KEPPEL_GREEN_FILL } from '../../constants/constants'; -import { IconProps } from '../types'; - -const IdeaIcon: FC<IconProps> = ({ width = DEFAULT_WIDTH, height = DEFAULT_HEIGHT, ...props }) => { - return ( - <svg - width={width} - height={height} - version="1.1" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 15 24" - stroke="none" - {...props} - > - <path d="M7.49634 0C3.81658 0 0.833008 3.0072 0.833008 6.71664C0.833008 7.938 1.17348 9.07344 1.72134 10.0702C3.35777 13.0418 3.7911 14.7106 4.05801 16.3255C4.28206 17.6794 4.59206 17.9938 5.60658 17.9938C6.03801 17.9938 6.74444 17.9938 7.49634 17.9938C8.24825 17.9938 8.95467 17.9938 9.38586 17.9938C10.4009 17.9938 10.7106 17.6789 10.9347 16.3255C11.2016 14.7106 11.6351 13.0416 13.2716 10.0702C13.8197 9.07368 14.1597 7.938 14.1597 6.71664C14.1599 3.0072 11.1763 0 7.49634 0Z" /> - <path - d="M9.87735 18.4805H5.11544C4.9183 18.4805 4.7583 18.6415 4.7583 18.8405V19.0805C4.7583 19.2794 4.9183 19.4405 5.11544 19.4405H9.87735C10.0745 19.4405 10.2345 19.2794 10.2345 19.0805V18.8405C10.2345 18.6415 10.0745 18.4805 9.87735 18.4805Z" - fill={props.stroke || KEPPEL_GREEN_FILL} - /> - <path - d="M9.87735 19.9199H5.11544C4.9183 19.9199 4.7583 20.081 4.7583 20.2799V20.5199C4.7583 20.7189 4.9183 20.8799 5.11544 20.8799H9.87735C10.0745 20.8799 10.2345 20.7189 10.2345 20.5199V20.2799C10.2345 20.081 10.0745 19.9199 9.87735 19.9199Z" - fill={props.stroke || KEPPEL_GREEN_FILL} - /> - <path - d="M9.87735 21.3604H5.11544C4.9183 21.3604 4.7583 21.5214 4.7583 21.7204V21.9604C4.7583 22.1593 4.9183 22.3204 5.11544 22.3204H9.87735C10.0745 22.3204 10.2345 22.1593 10.2345 21.9604V21.7204C10.2345 21.5214 10.0745 21.3604 9.87735 21.3604Z" - fill={props.stroke || KEPPEL_GREEN_FILL} - /> - <path d="M5.71045 22.7998H9.28188C9.28188 23.5198 8.3295 23.9998 7.49616 23.9998C6.66283 23.9998 5.71045 23.5198 5.71045 22.7998Z" /> - </svg> - ); -}; - -export default IdeaIcon; diff --git a/src/icons/Idea/index.ts b/src/icons/Idea/index.ts deleted file mode 100644 index a501d9c68..000000000 --- a/src/icons/Idea/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as IdeaIcon } from './IdeaIcon'; diff --git a/src/icons/Info/InfoCircle.tsx b/src/icons/Info/InfoCircle.tsx deleted file mode 100644 index f286cee30..000000000 --- a/src/icons/Info/InfoCircle.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export function InfoCircleIcon({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}: IconProps): JSX.Element { - return ( - <svg - width={width} - height={height} - viewBox="0 0 24 24" - fill="none" - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path - fillRule="evenodd" - clipRule="evenodd" - d="M11 8C11 7.448 11.448 7 12 7C12.552 7 13 7.448 13 8C13 8.552 12.552 9 12 9C11.448 9 11 8.552 11 8ZM11 11C11 10.448 11.448 10 12 10C12.552 10 13 10.448 13 11V16C13 16.552 12.552 17 12 17C11.448 17 11 16.552 11 16V11ZM12 20C7.589 20 4 16.411 4 12C4 7.589 7.589 4 12 4C16.411 4 20 7.589 20 12C20 16.411 16.411 20 12 20ZM12 2C6.477 2 2 6.477 2 12C2 17.523 6.477 22 12 22C17.522 22 22 17.523 22 12C22 6.477 17.522 2 12 2Z" - fill={fill} - /> - <mask - id="mask0_29221_14093" - maskUnits="userSpaceOnUse" - x="2" - y="2" - width={width} - height={height} - > - <path - fill-rule="evenodd" - clip-rule="evenodd" - d="M11 8C11 7.448 11.448 7 12 7C12.552 7 13 7.448 13 8C13 8.552 12.552 9 12 9C11.448 9 11 8.552 11 8ZM11 11C11 10.448 11.448 10 12 10C12.552 10 13 10.448 13 11V16C13 16.552 12.552 17 12 17C11.448 17 11 16.552 11 16V11ZM12 20C7.589 20 4 16.411 4 12C4 7.589 7.589 4 12 4C16.411 4 20 7.589 20 12C20 16.411 16.411 20 12 20ZM12 2C6.477 2 2 6.477 2 12C2 17.523 6.477 22 12 22C17.522 22 22 17.523 22 12C22 6.477 17.522 2 12 2Z" - fill="none" - /> - </mask> - <g mask="url(#mask0_29221_14093)"></g> - </svg> - ); -} diff --git a/src/icons/Info/index.tsx b/src/icons/Info/index.tsx deleted file mode 100644 index 1794545e4..000000000 --- a/src/icons/Info/index.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -function InfoIcon({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}: IconProps): JSX.Element { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - style={props.style} - viewBox="0 0 20 20" - fill="none" - > - <g clip-path="url(#clip0_19460_1750)"> - <path - d="M10.0003 1.66666C5.40033 1.66666 1.66699 5.39999 1.66699 9.99999C1.66699 14.6 5.40033 18.3333 10.0003 18.3333C14.6003 18.3333 18.3337 14.6 18.3337 9.99999C18.3337 5.39999 14.6003 1.66666 10.0003 1.66666ZM10.8337 14.1667H9.16699V9.16666H10.8337V14.1667ZM10.8337 7.49999H9.16699V5.83332H10.8337V7.49999Z" - fill={fill} - /> - </g> - <defs> - <clipPath id="clip0_19460_1750"> - <rect width={width} height={height} fill="none" /> - </clipPath> - </defs> - </svg> - ); -} - -export default InfoIcon; - -export { InfoCircleIcon } from './InfoCircle'; -export { InfoIcon }; diff --git a/src/icons/InfoOutlined/InfoOutlined.tsx b/src/icons/InfoOutlined/InfoOutlined.tsx deleted file mode 100644 index 8299f77f6..000000000 --- a/src/icons/InfoOutlined/InfoOutlined.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { CSSProperties, FC } from 'react'; - -interface InfoOutlinedIconProps { - height?: number; - width?: number; - fill?: string; - style?: CSSProperties; - className?: string; -} - -const InfoOutlinedIcon: FC<InfoOutlinedIconProps> = ({ - height, - width, - fill = 'currentColor', - style = {}, - className = '' -}) => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 24 24" - width={width} - style={style} - className={className} - fill={fill} - > - <path d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path> - </svg> - ); -}; - -export default InfoOutlinedIcon; diff --git a/src/icons/InfoOutlined/index.ts b/src/icons/InfoOutlined/index.ts deleted file mode 100644 index 9b59b950d..000000000 --- a/src/icons/InfoOutlined/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as InfoOutlined } from './InfoOutlined'; diff --git a/src/icons/InsertChartIcon.tsx b/src/icons/InsertChartIcon.tsx deleted file mode 100644 index fd3aa7020..000000000 --- a/src/icons/InsertChartIcon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from './types'; - -export const InsertChartIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <g clipPath="url(#clip0_1_6)"> - <path d="M21.3333 0H2.66667C1.2 0 0 1.2 0 2.66667V21.3333C0 22.8 1.2 24 2.66667 24H21.3333C22.8 24 24 22.8 24 21.3333V2.66667C24 1.2 22.8 0 21.3333 0ZM8 18.6667H5.33333V9.33333H8V18.6667ZM13.3333 18.6667H10.6667V5.33333H13.3333V18.6667ZM18.6667 18.6667H16V13.3333H18.6667V18.6667Z" /> - </g> - <defs> - <clipPath id="clip0_1_6"> - <rect width="24" height="24" fill="white" /> - </clipPath> - </defs> - </svg> - ); -}; - -export default InsertChartIcon; diff --git a/src/icons/InviteUser/InviteUserIcon.tsx b/src/icons/InviteUser/InviteUserIcon.tsx deleted file mode 100644 index d0ed5b463..000000000 --- a/src/icons/InviteUser/InviteUserIcon.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const InviteUserIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 20 20" - fill={fill} - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path - d="M9.06164 2.30469C10.0545 2.30469 11.0067 2.69911 11.7088 3.4012C12.411 4.10328 12.8054 5.0555 12.8054 6.0484C12.8054 7.0413 12.411 7.99352 11.7088 8.6956C11.0067 9.39769 10.0545 9.79211 9.06164 9.79211C8.06875 9.79211 7.11652 9.39769 6.41444 8.6956C5.71236 7.99352 5.31793 7.0413 5.31793 6.0484C5.31793 5.0555 5.71236 4.10328 6.41444 3.4012C7.11652 2.69911 8.06875 2.30469 9.06164 2.30469ZM9.06164 11.664C10.3769 11.664 10.0669 11.8603 10.0669 14.7837V17.2795H1.57422V15.4077C1.57422 13.3393 4.92484 11.664 9.06164 11.664Z" - fill={fill} - /> - <path - d="M17.7026 11.9219H11.9253C11.5281 11.9219 11.2068 12.2468 11.2068 12.644L11.2031 16.977C11.2031 17.3743 11.5281 17.6992 11.9253 17.6992H17.7026C18.0998 17.6992 18.4248 17.3743 18.4248 16.977V12.644C18.4248 12.2468 18.0998 11.9219 17.7026 11.9219ZM17.7026 13.3662L14.814 15.1716L11.9253 13.3662V12.644L14.814 14.4495L17.7026 12.644V13.3662Z" - fill={fill} - /> - </svg> - ); -}; - -export default InviteUserIcon; diff --git a/src/icons/InviteUser/index.ts b/src/icons/InviteUser/index.ts deleted file mode 100644 index c172054d4..000000000 --- a/src/icons/InviteUser/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import InviteUserIcon from './InviteUserIcon'; - -export { InviteUserIcon }; diff --git a/src/icons/Kanvas/KanvasIcon.tsx b/src/icons/Kanvas/KanvasIcon.tsx deleted file mode 100644 index affe38816..000000000 --- a/src/icons/Kanvas/KanvasIcon.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react'; - -interface KanvasIconProps { - width: number; - height: number; - fill?: string; - style?: React.CSSProperties; - primaryFill?: string; - secondaryFill?: string; -} - -const KanvasIcon: React.FC<KanvasIconProps> = ({ - width, - height, - fill, - style, - primaryFill = 'white' -}) => ( - <svg - id="Layer_1" - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - viewBox="0 0 500 500" - fill={fill} - style={style} - > - <polygon fill={primaryFill} points="261.82 30.1 261.82 228.75 433.99 129.07 261.82 30.1" /> - <polygon fill={primaryFill} points="261.82 270.3 261.82 469.9 435.56 370.56 261.82 270.3" /> - <g opacity=".8"> - <polygon fill={primaryFill} points="237.03 227.38 237.03 31.77 66.97 129.25 237.03 227.38" /> - </g> - <g opacity=".8"> - <polygon fill={primaryFill} points="237.03 468.98 237.03 271.74 66.56 370.43 237.03 468.98" /> - </g> - <g opacity=".8"> - <polygon fill={primaryFill} points="447.37 348.75 447.37 149.97 275.4 249.52 447.37 348.75" /> - </g> - <polygon fill={primaryFill} points="52.63 149.59 52.63 349.85 225.87 249.56 52.63 149.59" /> - </svg> -); - -export default KanvasIcon; diff --git a/src/icons/Kanvas/index.ts b/src/icons/Kanvas/index.ts deleted file mode 100644 index 3d2dcdd5c..000000000 --- a/src/icons/Kanvas/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as KanvasIcon } from './KanvasIcon'; diff --git a/src/icons/Kubernetes/KubernetesIcon.tsx b/src/icons/Kubernetes/KubernetesIcon.tsx deleted file mode 100644 index 045f529c9..000000000 --- a/src/icons/Kubernetes/KubernetesIcon.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const KubernetesIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - viewBox="0 0 26 25" - {...props} - > - <path - d="M12.9133 0.494304C12.6923 0.505324 12.4758 0.559563 12.2764 0.653838L3.58519 4.76432C3.36024 4.87066 3.16258 5.02538 3.0069 5.217C2.85122 5.40862 2.74152 5.63221 2.68594 5.87116L0.541755 15.1043C0.492243 15.3171 0.486702 15.5374 0.52546 15.7523C0.564218 15.9671 0.646488 16.1722 0.767401 16.3553C0.796719 16.4001 0.828251 16.4434 0.861883 16.4851L6.87761 23.8886C7.03332 24.0802 7.23099 24.2349 7.45595 24.3412C7.6809 24.4474 7.92736 24.5026 8.17701 24.5026L17.8242 24.5004C18.0737 24.5005 18.3201 24.4455 18.5451 24.3395C18.77 24.2334 18.9678 24.0789 19.1236 23.8875L25.1371 16.4829C25.2929 16.2913 25.4027 16.0676 25.4583 15.8285C25.5139 15.5895 25.5139 15.3412 25.4583 15.1021L23.3108 5.86896C23.2552 5.63 23.1455 5.40641 22.9898 5.2148C22.8342 5.02318 22.6365 4.86846 22.4116 4.76212L13.7192 0.653838C13.4684 0.535247 13.1913 0.480391 12.9133 0.494304Z" - fill={props.fill || '#326CE5'} - /> - <path - d="M12.9992 3.63281C12.7119 3.63284 12.479 3.88898 12.479 4.20494C12.479 4.20978 12.48 4.21442 12.4801 4.21924C12.4797 4.26217 12.4776 4.31389 12.479 4.35127C12.4859 4.5335 12.526 4.67298 12.5502 4.84087C12.5939 5.20022 12.6306 5.4981 12.608 5.77497C12.586 5.87938 12.5083 5.97486 12.439 6.04123L12.4268 6.25908C12.1146 6.28468 11.8003 6.33156 11.4864 6.40211C10.1357 6.70567 8.97269 7.39436 8.08727 8.32422C8.02982 8.28542 7.92931 8.21405 7.89942 8.19219C7.80654 8.20461 7.71267 8.23297 7.59041 8.16249C7.35761 8.00737 7.14558 7.79327 6.88902 7.53535C6.77146 7.41198 6.68633 7.2945 6.54666 7.17557C6.51494 7.14857 6.46653 7.11204 6.43106 7.08425C6.32186 6.99808 6.19307 6.95314 6.06869 6.94892C5.90877 6.9435 5.75483 7.00539 5.65408 7.13046C5.47498 7.35281 5.53232 7.69266 5.78191 7.88963C5.78444 7.89162 5.78714 7.89317 5.78969 7.89513C5.82399 7.92265 5.86599 7.95791 5.89751 7.98095C6.04573 8.08926 6.18112 8.14471 6.32879 8.2307C6.63992 8.42088 6.89785 8.57858 7.10243 8.76871C7.18232 8.85301 7.19629 9.00154 7.20692 9.06578L7.37365 9.21321C6.48109 10.5428 6.068 12.1851 6.31212 13.8584L6.09426 13.9211C6.03684 13.9945 5.9557 14.11 5.87083 14.1445C5.60317 14.2279 5.30192 14.2586 4.93824 14.2963C4.7675 14.3104 4.62017 14.302 4.43915 14.3359C4.39931 14.3434 4.3438 14.3577 4.30021 14.3678C4.29869 14.3681 4.29728 14.3686 4.29576 14.3689C4.29339 14.3695 4.29027 14.3706 4.28798 14.3711C3.98137 14.4444 3.7844 14.7234 3.84781 14.9983C3.91123 15.2732 4.21073 15.4403 4.51919 15.3745C4.52141 15.374 4.52465 15.3739 4.52697 15.3734C4.53045 15.3726 4.53351 15.371 4.53697 15.3701C4.57997 15.3608 4.63385 15.3504 4.67147 15.3404C4.84944 15.2933 4.97833 15.224 5.13832 15.1633C5.48253 15.0411 5.76761 14.939 6.04535 14.8992C6.16135 14.8902 6.28356 14.9701 6.34436 15.0038L6.57111 14.9652C7.09293 16.5666 8.18648 17.8609 9.57119 18.673L9.47671 18.8975C9.51077 18.9846 9.54833 19.1026 9.52296 19.1886C9.42199 19.4478 9.24904 19.7214 9.0521 20.0263C8.95674 20.1672 8.85915 20.2766 8.7731 20.4378C8.75251 20.4764 8.72628 20.5357 8.70641 20.5765C8.5727 20.8596 8.67078 21.1857 8.9276 21.3081C9.18604 21.4313 9.50684 21.3014 9.64567 21.0176C9.64588 21.0172 9.64658 21.0169 9.64678 21.0165C9.64692 21.0162 9.64663 21.0158 9.64678 21.0154C9.66655 20.9752 9.69457 20.9223 9.71125 20.8845C9.78495 20.7174 9.80948 20.5742 9.86131 20.4125C9.99895 20.0703 10.0746 19.7112 10.264 19.4875C10.3159 19.4262 10.4005 19.4026 10.4882 19.3794L10.606 19.1682C11.8132 19.6268 13.1645 19.7499 14.5143 19.4465C14.8222 19.3773 15.1195 19.2877 15.4068 19.1803C15.44 19.2384 15.5015 19.3502 15.518 19.3783C15.6071 19.407 15.7044 19.4218 15.7837 19.5378C15.9254 19.7776 16.0224 20.0612 16.1405 20.4037C16.1923 20.5654 16.2179 20.7086 16.2916 20.8757C16.3084 20.9138 16.3363 20.9674 16.3561 21.0077C16.4946 21.2924 16.8165 21.4227 17.0753 21.2993C17.3321 21.1769 17.4303 20.8508 17.2965 20.5677C17.2766 20.5269 17.2493 20.4676 17.2287 20.429C17.1426 20.2678 17.045 20.1595 16.9497 20.0186C16.7527 19.7137 16.5894 19.4603 16.4884 19.2012C16.4462 19.0675 16.4955 18.9844 16.5284 18.8975C16.5087 18.8751 16.4666 18.7489 16.4417 18.6895C17.8808 17.8485 18.9422 16.5059 19.4407 14.9553C19.508 14.9658 19.625 14.9863 19.663 14.9939C19.7412 14.9428 19.8132 14.8761 19.9542 14.8871C20.2319 14.9269 20.517 15.029 20.8612 15.1512C21.0212 15.2119 21.1501 15.2823 21.3281 15.3294C21.3657 15.3394 21.4196 15.3487 21.4626 15.358C21.466 15.3589 21.4691 15.3605 21.4726 15.3613C21.4749 15.3618 21.4781 15.3619 21.4804 15.3624C21.7888 15.4282 22.0884 15.2611 22.1517 14.9862C22.2151 14.7113 22.0182 14.4323 21.7116 14.359C21.667 14.349 21.6037 14.3319 21.5604 14.3238C21.3794 14.2899 21.2321 14.2982 21.0613 14.2842C20.6976 14.2465 20.3964 14.2158 20.1287 14.1324C20.0196 14.0905 19.9419 13.9619 19.9042 13.909L19.6941 13.8485C19.803 13.0685 19.7737 12.2567 19.5852 11.4445C19.3949 10.6247 19.0587 9.87491 18.6103 9.21431C18.6642 9.16582 18.766 9.07662 18.7949 9.05038C18.8033 8.95799 18.796 8.86112 18.8927 8.75881C19.0972 8.56867 19.3552 8.411 19.6663 8.2208C19.814 8.1348 19.9505 8.07937 20.0987 7.97105C20.1322 7.94655 20.178 7.90776 20.2132 7.87973C20.4627 7.68269 20.5202 7.34287 20.341 7.12056C20.1619 6.89826 19.8147 6.87732 19.5652 7.07435C19.5296 7.1022 19.4814 7.13852 19.4496 7.16567C19.3099 7.2846 19.2236 7.40207 19.1061 7.52545C18.8495 7.78338 18.6375 7.99856 18.4047 8.15368C18.3038 8.21181 18.1561 8.1917 18.089 8.18779L17.8912 8.32752C16.7629 7.1565 15.2268 6.40781 13.5728 6.26238C13.5682 6.19377 13.5621 6.06975 13.5606 6.03243C13.4928 5.96829 13.411 5.91354 13.3905 5.77497C13.3679 5.4981 13.4056 5.20022 13.4494 4.84087C13.4736 4.67298 13.5137 4.5335 13.5205 4.35127C13.5221 4.30984 13.5196 4.24973 13.5194 4.20494C13.5194 3.88898 13.2865 3.63278 12.9992 3.63281H12.9992ZM12.3479 7.62667L12.1933 10.3277L12.1822 10.3333C12.1719 10.5749 11.971 10.7678 11.7243 10.7678C11.6232 10.7678 11.53 10.7357 11.4542 10.6809L11.4497 10.6831L9.21216 9.11309C9.89986 8.44375 10.7795 7.94911 11.7932 7.72129C11.9784 7.67967 12.1635 7.64879 12.3479 7.62667ZM13.6517 7.62667C14.8352 7.77075 15.9298 8.30121 16.7685 9.11419L14.5454 10.6743L14.5376 10.671C14.3403 10.8137 14.0623 10.7783 13.9085 10.5874C13.8455 10.5092 13.8124 10.4173 13.8084 10.3245L13.8062 10.3234L13.6517 7.62667ZM8.40073 10.122L10.4438 11.9308L10.4415 11.9418C10.6259 12.1005 10.6531 12.3758 10.4993 12.5667C10.4363 12.6449 10.352 12.6974 10.2615 12.7219L10.2592 12.7307L7.64043 13.4788C7.50714 12.2724 7.79439 11.0997 8.40073 10.122ZM17.5833 10.1231C17.8868 10.6101 18.1167 11.1541 18.2535 11.7438C18.3887 12.3264 18.4227 12.908 18.3669 13.47L15.7348 12.7197L15.7325 12.7087C15.4968 12.6449 15.352 12.4076 15.4068 12.1695C15.4293 12.072 15.4816 11.9895 15.5525 11.9286L15.5514 11.9231L17.5833 10.1231H17.5833ZM12.5802 12.0705H13.4172L13.9374 12.7142L13.7506 13.5173L12.9992 13.8749L12.2456 13.5162L12.0589 12.7131L12.5802 12.0705ZM15.2635 14.2732C15.299 14.2714 15.3344 14.2746 15.3691 14.2809L15.3735 14.2754L18.0824 14.7287C17.6859 15.8312 16.9273 16.7862 15.9137 17.4254L14.8622 14.9113L14.8655 14.9069C14.7689 14.6848 14.8656 14.4243 15.0878 14.3183C15.1447 14.2912 15.2042 14.2762 15.2635 14.2732H15.2635ZM10.7139 14.2842C10.9206 14.2871 11.106 14.4291 11.154 14.6374C11.1765 14.7349 11.1656 14.8315 11.1285 14.9168L11.1363 14.9267L10.0958 17.4155C9.12312 16.7976 8.34833 15.8725 7.93388 14.7375L10.6194 14.2864L10.6238 14.2919C10.6539 14.2864 10.6843 14.2838 10.7139 14.2842V14.2842ZM12.9826 15.3745C13.0546 15.3719 13.1276 15.3865 13.1971 15.4196C13.2881 15.463 13.3585 15.5314 13.4027 15.6133H13.4127L14.7366 17.981C14.5648 18.038 14.3881 18.0867 14.2075 18.1273C13.195 18.3549 12.1858 18.2859 11.2719 17.9777L12.5924 15.6144H12.5946C12.6739 15.4678 12.8241 15.3803 12.9826 15.3745Z" - fill="white" - stroke="white" - strokeWidth="0.25" - /> - </svg> - ); -}; - -export default KubernetesIcon; diff --git a/src/icons/Kubernetes/index.ts b/src/icons/Kubernetes/index.ts deleted file mode 100644 index 918829900..000000000 --- a/src/icons/Kubernetes/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as KubernetesIcon } from './KubernetesIcon'; diff --git a/src/icons/LeaderBoard/LeaderBoardIcon.tsx b/src/icons/LeaderBoard/LeaderBoardIcon.tsx deleted file mode 100644 index f344e4be9..000000000 --- a/src/icons/LeaderBoard/LeaderBoardIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const LeaderboardIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}: IconProps): JSX.Element => ( - <svg - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 20 20" - width={width} - fill={fill} - {...props} - > - <rect fill={fill} x="14" y="0" width="6" height="20" /> - <rect fill={fill} x="7" y="5" width="6" height="15" /> - <rect fill={fill} y="10" width="6" height="10" /> - </svg> -); - -export default LeaderboardIcon; diff --git a/src/icons/LeaderBoard/index.ts b/src/icons/LeaderBoard/index.ts deleted file mode 100644 index 8ad628cc8..000000000 --- a/src/icons/LeaderBoard/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import LeaderBoardIcon from './LeaderBoardIcon'; - -export { LeaderBoardIcon }; diff --git a/src/icons/Learning/LearningIcon.tsx b/src/icons/Learning/LearningIcon.tsx deleted file mode 100644 index cf485d448..000000000 --- a/src/icons/Learning/LearningIcon.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react'; - -interface LearningIconProps { - width?: string; - height?: string; - primaryFill?: string; - secondaryFill?: string; - style?: React.CSSProperties; -} - -const LearningIcon: React.FC<LearningIconProps> = ({ - width = '32px', - height = '32px', - primaryFill = '#FDFDFD', - secondaryFill = '#FDFDFD', - style = {} -}) => ( - <svg - width={width} - height={height} - fill={primaryFill} - style={style} - version="1.1" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 40 40" - > - <path - fill={primaryFill} - d="M20,6c-0.5,0-1,0.1-1.5,0.3L1,12.6c-0.6,0.2-1,0.8-1,1.4c0,0.6,0.4,1.2,1,1.4l3.6,1.3c-1,1.6-1.6,3.5-1.6,5.5 - V24c0,1.8-0.7,3.6-1.4,5c-0.4,0.8-0.9,1.6-1.4,2.3C0,31.7-0.1,32,0.1,32.3c0.1,0.3,0.4,0.6,0.7,0.6l4,1c0.3,0.1,0.5,0,0.8-0.1 - s0.4-0.4,0.4-0.6c0.5-2.7,0.3-5.1-0.1-6.8c-0.2-0.9-0.5-1.8-0.8-2.6v-1.5c0-1.9,0.6-3.7,1.7-5.1c0.8-1,1.8-1.7,3.1-2.2l9.8-3.9 - c0.5-0.2,1.1,0,1.3,0.6c0.2,0.5,0,1.1-0.6,1.3l-9.8,3.9c-0.8,0.3-1.5,0.8-2,1.3l10,3.6c0.5,0.2,1,0.3,1.5,0.3c0.5,0,1-0.1,1.5-0.3 - L39,15.4c0.6-0.2,1-0.8,1-1.4c0-0.6-0.4-1.2-1-1.4L21.5,6.3C21,6.1,20.5,6,20,6z" - /> - <path - fill={secondaryFill} - d="M8,29.5c0,2.2,5.4,4.5,12,4.5s12-2.3,12-4.5l-1-9.1l-8.9,3.2C21.5,23.9,20.7,24,20,24c-0.7,0-1.5-0.1-2.2-0.4 - L9,20.4L8,29.5z" - /> - </svg> -); - -export default LearningIcon; diff --git a/src/icons/Learning/index.ts b/src/icons/Learning/index.ts deleted file mode 100644 index 4849b25e4..000000000 --- a/src/icons/Learning/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as LearningIcon } from './LearningIcon'; diff --git a/src/icons/LeftAngledArrow/LeftAngledArrowIcon.tsx b/src/icons/LeftAngledArrow/LeftAngledArrowIcon.tsx deleted file mode 100644 index c45ecbda1..000000000 --- a/src/icons/LeftAngledArrow/LeftAngledArrowIcon.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { - DEFAULT_FILL, - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const LeftAngledArrowIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - viewBox="0 0 50 73" - fill={DEFAULT_FILL_NONE} - {...props} - > - <path - d="M11.6836 8.50538L10.1837 8.49039L11.6836 8.50538ZM12.8198 0.949356C12.2399 0.357744 11.2902 0.348252 10.6986 0.928158L1.05775 10.3782C0.466141 10.9581 0.456653 11.9078 1.03656 12.4994C1.61646 13.0911 2.56616 13.1005 3.15777 12.5206L11.7274 4.12057L20.1275 12.6902C20.7074 13.2818 21.6571 13.2913 22.2487 12.7114C22.8403 12.1315 22.8498 11.1818 22.2699 10.5902L12.8198 0.949356ZM13.1835 8.52037L13.2485 2.01435L10.2487 1.98437L10.1837 8.49039L13.1835 8.52037ZM49.3092 70.0002C26.8233 57.7658 12.9277 34.1179 13.1835 8.52037L10.1837 8.49039C9.91679 35.1976 24.4147 59.8706 47.8755 72.6354L49.3092 70.0002Z" - fill={fill} - /> - </svg> - ); -}; - -export default LeftAngledArrowIcon; diff --git a/src/icons/LeftAngledArrow/index.ts b/src/icons/LeftAngledArrow/index.ts deleted file mode 100644 index acd89dcd5..000000000 --- a/src/icons/LeftAngledArrow/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as LeftAngledArrowIcon } from './LeftAngledArrowIcon'; diff --git a/src/icons/LeftArrow/LeftArrowIcon.tsx b/src/icons/LeftArrow/LeftArrowIcon.tsx deleted file mode 100644 index bfcbe3033..000000000 --- a/src/icons/LeftArrow/LeftArrowIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const LeftArrowIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <polygon points="15.293 3.293 6.586 12 15.293 20.707 16.707 19.293 9.414 12 16.707 4.707 15.293 3.293" /> - </svg> - ); -}; - -export default LeftArrowIcon; diff --git a/src/icons/LeftArrow/index.ts b/src/icons/LeftArrow/index.ts deleted file mode 100644 index 1bb5158fc..000000000 --- a/src/icons/LeftArrow/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as LeftArrowIcon } from './LeftArrowIcon'; diff --git a/src/icons/Lock/LockIcon.tsx b/src/icons/Lock/LockIcon.tsx deleted file mode 100644 index 27759981e..000000000 --- a/src/icons/Lock/LockIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const LockIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = '#3C494F', - ...props -}: IconProps): JSX.Element => ( - <svg - width={width} - height={height} - viewBox="0 -960 960 960" - fill={fill} - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path d="M240-80q-33 0-56.5-23.5T160-160v-400q0-33 23.5-56.5T240-640h40v-80q0-83 58.5-141.5T480-920q83 0 141.5 58.5T680-720v80h40q33 0 56.5 23.5T800-560v400q0 33-23.5 56.5T720-80H240Zm240-200q33 0 56.5-23.5T560-360q0-33-23.5-56.5T480-440q-33 0-56.5 23.5T400-360q0 33 23.5 56.5T480-280ZM360-640h240v-80q0-50-35-85t-85-35q-50 0-85 35t-35 85v80Z" /> - </svg> -); - -export default LockIcon; diff --git a/src/icons/Lock/index.tsx b/src/icons/Lock/index.tsx deleted file mode 100644 index a46fa12c4..000000000 --- a/src/icons/Lock/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as LockIcon } from './LockIcon'; diff --git a/src/icons/LockClockOutlinedIcon/LockClockOutlinedIcon.tsx b/src/icons/LockClockOutlinedIcon/LockClockOutlinedIcon.tsx deleted file mode 100644 index 828123498..000000000 --- a/src/icons/LockClockOutlinedIcon/LockClockOutlinedIcon.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const LockClockOutlinedIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="lock-clock-outlined-icon-svg" - {...props} - > - <path - d="M6 20V10h12v1c.7 0 1.37.1 2 .29V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h6.26c-.42-.6-.75-1.28-.97-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9z" - fill={fill} - /> - <path - d="M18 13c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m1.65 7.35L17.5 18.2V15h1v2.79l1.85 1.85z" - fill={fill} - /> - </svg> - ); -}; - -export default LockClockOutlinedIcon; diff --git a/src/icons/LockClockOutlinedIcon/index.ts b/src/icons/LockClockOutlinedIcon/index.ts deleted file mode 100644 index a92429df4..000000000 --- a/src/icons/LockClockOutlinedIcon/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as LockClockOutlinedIcon } from './LockClockOutlinedIcon'; diff --git a/src/icons/Logout/LogOutIcon.tsx b/src/icons/Logout/LogOutIcon.tsx deleted file mode 100644 index 695e1c76d..000000000 --- a/src/icons/Logout/LogOutIcon.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react'; - -interface LogoutIconProps { - width?: number; - height?: number; - fill?: string; - style?: React.CSSProperties; - secondaryFill?: string; -} - -const LogoutIcon: React.FC<LogoutIconProps> = ({ - width = 24, - height = 24, - fill, - style = {}, - secondaryFill = '#00B39F' -}) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 17 19" - width={width} - fill={secondaryFill} - > - <path d="M11.7 14V11.3H5.4V7.7H11.7V5L16.2 9.5L11.7 14Z" fill={fill} /> - <path d="M9.9 0.5C10.3774 0.5 10.8352 0.689642 11.1728 1.02721C11.5104 1.36477 11.7 1.82261 11.7 2.3V4.1H9.9V2.3H1.8V16.7H9.9V14.9H11.7V16.7C11.7 17.1774 11.5104 17.6352 11.1728 17.9728C10.8352 18.3104 10.3774 18.5 9.9 18.5H1.8C1.32261 18.5 0.864773 18.3104 0.527208 17.9728C0.189642 17.6352 0 17.1774 0 16.7V2.3C0 1.82261 0.189642 1.36477 0.527208 1.02721C0.864773 0.689642 1.32261 0.5 1.8 0.5H9.9Z" /> - </svg> -); - -export default LogoutIcon; diff --git a/src/icons/Logout/index.ts b/src/icons/Logout/index.ts deleted file mode 100644 index e6831ee78..000000000 --- a/src/icons/Logout/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import LogoutIcon from './LogOutIcon'; - -export { LogoutIcon }; diff --git a/src/icons/Mendeley/MendeleyIcon.tsx b/src/icons/Mendeley/MendeleyIcon.tsx deleted file mode 100644 index 809cc72c5..000000000 --- a/src/icons/Mendeley/MendeleyIcon.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const MendeleyIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - stroke = DEFAULT_STROKE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 640 512" - width={width} - height={height} - {...props} - > - <path - d="M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4 .7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1 .1-.2 .2-.3 .4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z" - fill={fill} - stroke={stroke} - /> - </svg> - ); -}; - -export default MendeleyIcon; diff --git a/src/icons/Mendeley/index.ts b/src/icons/Mendeley/index.ts deleted file mode 100644 index 44d43d081..000000000 --- a/src/icons/Mendeley/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as MendeleyIcon } from './MendeleyIcon'; diff --git a/src/icons/Menu/MenuIcon.tsx b/src/icons/Menu/MenuIcon.tsx deleted file mode 100644 index 101ab13f8..000000000 --- a/src/icons/Menu/MenuIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const MenuIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="menu-icon-svg" - {...props} - > - <path fill={fill} d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path> - </svg> - ); -}; - -export default MenuIcon; diff --git a/src/icons/Menu/index.ts b/src/icons/Menu/index.ts deleted file mode 100644 index 9490dc0ae..000000000 --- a/src/icons/Menu/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as MenuIcon } from './MenuIcon'; diff --git a/src/icons/MergeActionIcon.tsx b/src/icons/MergeActionIcon.tsx deleted file mode 100644 index fd98c1322..000000000 --- a/src/icons/MergeActionIcon.tsx +++ /dev/null @@ -1,377 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_FILL_NONE } from '../constants/constants'; -import { IconProps } from './types'; - -type MergeActionIconProps = { - width?: string; - height: string; - fill?: string; -} & IconProps; - -export const MergeActionIcon: FC<MergeActionIconProps> = ({ - width = 340, - height = 278, - fill = DEFAULT_FILL_NONE, - ...props -}) => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 340 278" - fill={fill} - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <g filter="url(#filter0_d_7826_30152)"> - <rect x="8" y="152" width="118" height="118" rx="20" fill="white" /> - </g> - <g filter="url(#filter1_d_7826_30152)"> - <rect x="214" y="39" width="118" height="197" rx="20" fill="white" /> - </g> - <g clipPath="url(#clip0_7826_30152)"> - <path - d="M38.2398 209.559C31.9477 209.559 28.8017 195.811 25.6517 182.058C22.5017 168.305 19.3556 154.557 13.0596 154.557" - stroke="#BF9000" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M76.943 245.914C74.1938 245.914 71.557 244.823 69.6119 242.88C67.6668 240.937 66.5725 238.302 66.5693 235.552C66.5704 232.801 67.6637 230.163 69.6089 228.218C71.5541 226.273 74.1921 225.18 76.943 225.179C79.6936 225.18 82.3312 226.273 84.2758 228.218C86.2204 230.164 87.3128 232.802 87.3128 235.552C87.3107 238.301 86.2172 240.937 84.2727 242.88C82.3283 244.823 79.6919 245.914 76.943 245.914Z" - fill="#00B39F" - /> - <path - d="M48.6129 219.933C45.862 219.932 43.224 218.839 41.2788 216.893C39.3336 214.948 38.2403 212.31 38.2393 209.559C38.2413 206.809 39.3351 204.172 41.2802 202.228C43.2253 200.283 45.8627 199.19 48.6129 199.189C49.9747 199.189 51.3232 199.458 52.5813 199.979C53.8394 200.5 54.9825 201.264 55.9455 202.227C56.9084 203.19 57.6722 204.333 58.1933 205.591C58.7145 206.849 58.9827 208.197 58.9827 209.559C58.9827 212.31 57.8903 214.948 55.9457 216.893C54.0011 218.838 51.3635 219.932 48.6129 219.933Z" - fill="#00B39F" - /> - <path - d="M76.943 219.933C74.1921 219.932 71.5541 218.839 69.6089 216.893C67.6637 214.948 66.5704 212.31 66.5693 209.559C66.5714 206.809 67.6652 204.172 69.6103 202.228C71.5554 200.283 74.1928 199.19 76.943 199.189C79.6932 199.189 82.3308 200.282 84.2755 202.227C86.2202 204.171 87.3128 206.809 87.3128 209.559C87.3128 212.31 86.2204 214.948 84.2758 216.893C82.3312 218.838 79.6936 219.932 76.943 219.933Z" - fill="#00B39F" - /> - <path - d="M66.5699 235.553C64.6831 235.553 63.7396 229.056 62.7962 222.562C61.8528 216.069 60.9212 209.567 59.0146 209.567" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M58.9824 209.56C60.8732 209.56 61.8166 209.595 62.7601 209.627C63.7035 209.658 64.6469 209.694 66.5377 209.694" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M76.9434 225.172C76.9434 223.865 76.9749 223.198 77.0065 222.559C77.0381 221.919 77.0736 221.248 77.0736 219.938" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M76.9547 193.947C74.2045 193.947 71.5669 192.855 69.6222 190.91C67.6775 188.966 66.585 186.328 66.585 183.578C66.585 180.828 67.6775 178.19 69.6222 176.245C71.5669 174.301 74.2045 173.208 76.9547 173.208C79.7053 173.208 82.3433 174.3 84.2886 176.245C86.2339 178.19 87.3273 180.827 87.3284 183.578C87.3273 186.328 86.2339 188.966 84.2886 190.91C82.3433 192.855 79.7053 193.947 76.9547 193.947Z" - fill="#00B39F" - /> - <path - d="M76.9434 199.189C76.9434 197.883 76.9749 197.216 77.0065 196.576C77.0381 195.937 77.0736 195.266 77.0736 193.955" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M58.9824 209.56C60.889 209.56 61.8403 203.066 62.7916 196.573C63.7429 190.079 64.6982 183.582 66.6048 183.582" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - </g> - <g clipPath="url(#clip1_7826_30152)"> - <path - d="M247.24 176.559C240.948 176.559 237.802 162.811 234.652 149.058C231.502 135.305 228.356 121.557 222.06 121.557" - stroke="#BF9000" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M285.943 212.914C283.194 212.914 280.557 211.823 278.612 209.88C276.667 207.937 275.572 205.302 275.569 202.552C275.57 199.801 276.664 197.163 278.609 195.218C280.554 193.273 283.192 192.18 285.943 192.179C288.694 192.18 291.331 193.273 293.276 195.218C295.22 197.164 296.313 199.802 296.313 202.552C296.311 205.301 295.217 207.937 293.273 209.88C291.328 211.823 288.692 212.914 285.943 212.914Z" - fill="#00B39F" - /> - <path - d="M257.613 186.933C254.862 186.932 252.224 185.839 250.279 183.893C248.334 181.948 247.24 179.31 247.239 176.559C247.241 173.809 248.335 171.172 250.28 169.228C252.225 167.283 254.863 166.19 257.613 166.189C258.975 166.189 260.323 166.458 261.581 166.979C262.839 167.5 263.983 168.264 264.945 169.227C265.908 170.19 266.672 171.333 267.193 172.591C267.714 173.849 267.983 175.197 267.983 176.559C267.983 179.31 266.89 181.948 264.946 183.893C263.001 185.838 260.364 186.932 257.613 186.933Z" - fill="#00B39F" - /> - <path - d="M285.943 186.933C283.192 186.932 280.554 185.839 278.609 183.893C276.664 181.948 275.57 179.31 275.569 176.559C275.571 173.809 276.665 171.172 278.61 169.228C280.555 167.283 283.193 166.19 285.943 166.189C288.693 166.189 291.331 167.282 293.276 169.227C295.22 171.171 296.313 173.809 296.313 176.559C296.313 179.31 295.22 181.948 293.276 183.893C291.331 185.838 288.694 186.932 285.943 186.933Z" - fill="#00B39F" - /> - <path - d="M275.57 202.553C273.683 202.553 272.74 196.056 271.796 189.562C270.853 183.069 269.921 176.567 268.015 176.567" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M267.982 176.56C269.873 176.56 270.817 176.595 271.76 176.627C272.703 176.658 273.647 176.694 275.538 176.694" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M285.943 192.172C285.943 190.865 285.975 190.198 286.007 189.559C286.038 188.919 286.074 188.248 286.074 186.938" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M285.955 160.947C283.204 160.947 280.567 159.855 278.622 157.91C276.677 155.966 275.585 153.328 275.585 150.578C275.585 147.828 276.677 145.19 278.622 143.245C280.567 141.301 283.204 140.208 285.955 140.208C288.705 140.208 291.343 141.3 293.289 143.245C295.234 145.19 296.327 147.827 296.328 150.578C296.327 153.328 295.234 155.966 293.289 157.91C291.343 159.855 288.705 160.947 285.955 160.947Z" - fill="#00B39F" - /> - <path - d="M285.943 166.189C285.943 164.883 285.975 164.216 286.007 163.576C286.038 162.937 286.074 162.266 286.074 160.955" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M267.982 176.56C269.889 176.56 270.84 170.066 271.792 163.573C272.743 157.079 273.698 150.582 275.605 150.582" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - </g> - <g filter="url(#filter2_d_7826_30152)"> - <rect x="8" y="8" width="118" height="118" rx="20" fill="white" /> - </g> - <g clipPath="url(#clip2_7826_30152)"> - <path - d="M38.2398 67.5593C31.9477 67.5593 28.8017 53.8106 25.6517 40.058C22.5017 26.3053 19.3556 12.5566 13.0596 12.5566" - stroke="#BF9000" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M76.943 103.914C74.1938 103.914 71.557 102.823 69.6119 100.88C67.6668 98.9372 66.5725 96.3016 66.5693 93.5524C66.5704 90.8014 67.6637 88.1635 69.6089 86.2182C71.5541 84.273 74.1921 83.1798 76.943 83.1787C79.6936 83.1798 82.3312 84.2732 84.2758 86.2185C86.2204 88.1638 87.3128 90.8018 87.3128 93.5524C87.3107 96.3013 86.2172 98.9368 84.2727 100.88C82.3283 102.823 79.6919 103.914 76.943 103.914Z" - fill="#00B39F" - /> - <path - d="M48.6129 77.9329C45.862 77.9318 43.224 76.8386 41.2788 74.8933C39.3336 72.9481 38.2403 70.3101 38.2393 67.5592C38.2413 64.8089 39.3351 62.172 41.2802 60.2276C43.2253 58.2832 45.8627 57.1905 48.6129 57.1895C49.9747 57.1895 51.3232 57.4577 52.5813 57.9788C53.8394 58.4999 54.9825 59.2638 55.9455 60.2267C56.9084 61.1896 57.6722 62.3328 58.1933 63.5909C58.7145 64.849 58.9827 66.1974 58.9827 67.5592C58.9827 70.3098 57.8903 72.9478 55.9457 74.8931C54.0011 76.8384 51.3635 77.9318 48.6129 77.9329Z" - fill="#00B39F" - /> - <path - d="M76.943 77.9329C74.1921 77.9318 71.5541 76.8386 69.6089 74.8933C67.6637 72.9481 66.5704 70.3101 66.5693 67.5592C66.5714 64.8089 67.6652 62.172 69.6103 60.2276C71.5554 58.2832 74.1928 57.1905 76.943 57.1895C79.6932 57.1895 82.3308 58.282 84.2755 60.2267C86.2202 62.1714 87.3128 64.809 87.3128 67.5592C87.3128 70.3098 86.2204 72.9478 84.2758 74.8931C82.3312 76.8384 79.6936 77.9318 76.943 77.9329Z" - fill="#00B39F" - /> - <path - d="M66.5699 93.5529C64.6831 93.5529 63.7396 87.0555 62.7962 80.5621C61.8528 74.0687 60.9212 67.5674 59.0146 67.5674" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M58.9824 67.5596C60.8732 67.5596 61.8166 67.5951 62.7601 67.6267C63.7035 67.6583 64.6469 67.6938 66.5377 67.6938" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M76.9434 83.1717C76.9434 81.8651 76.9749 81.198 77.0065 80.5586C77.0381 79.9191 77.0736 79.248 77.0736 77.9375" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M76.9547 51.9475C74.2045 51.9475 71.5669 50.855 69.6222 48.9103C67.6775 46.9656 66.585 44.328 66.585 41.5777C66.585 38.8275 67.6775 36.1899 69.6222 34.2452C71.5669 32.3005 74.2045 31.208 76.9547 31.208C79.7053 31.208 82.3433 32.3004 84.2886 34.245C86.2339 36.1896 87.3273 38.8272 87.3284 41.5777C87.3273 44.3283 86.2339 46.9659 84.2886 48.9105C82.3433 50.8551 79.7053 51.9475 76.9547 51.9475Z" - fill="#00B39F" - /> - <path - d="M76.9434 57.1893C76.9434 55.8827 76.9749 55.2156 77.0065 54.5761C77.0381 53.9367 77.0736 53.2656 77.0736 51.9551" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M58.9824 67.5597C60.889 67.5597 61.8403 61.0662 62.7916 54.5728C63.7429 48.0794 64.6982 41.582 66.6048 41.582" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - </g> - <g clipPath="url(#clip3_7826_30152)"> - <path - d="M248.24 97.4407C241.948 97.4407 238.802 111.189 235.652 124.942C232.502 138.695 229.356 152.443 223.06 152.443" - stroke="#BF9000" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M286.943 61.0858C284.194 61.0858 281.557 62.1771 279.612 64.12C277.667 66.0628 276.572 68.6984 276.569 71.4476C276.57 74.1986 277.664 76.8365 279.609 78.7818C281.554 80.727 284.192 81.8202 286.943 81.8213C289.694 81.8202 292.331 80.7268 294.276 78.7815C296.22 76.8362 297.313 74.1982 297.313 71.4476C297.311 68.6987 296.217 66.0632 294.273 64.1202C292.328 62.1772 289.692 61.0858 286.943 61.0858Z" - fill="#00B39F" - /> - <path - d="M258.613 87.0671C255.862 87.0682 253.224 88.1614 251.279 90.1067C249.334 92.0519 248.24 94.6899 248.239 97.4408C248.241 100.191 249.335 102.828 251.28 104.772C253.225 106.717 255.863 107.81 258.613 107.811C259.975 107.811 261.323 107.542 262.581 107.021C263.839 106.5 264.983 105.736 265.945 104.773C266.908 103.81 267.672 102.667 268.193 101.409C268.714 100.151 268.983 98.8026 268.983 97.4408C268.983 94.6902 267.89 92.0522 265.946 90.1069C264.001 88.1616 261.364 87.0682 258.613 87.0671Z" - fill="#00B39F" - /> - <path - d="M286.943 87.0671C284.192 87.0682 281.554 88.1614 279.609 90.1067C277.664 92.0519 276.57 94.6899 276.569 97.4408C276.571 100.191 277.665 102.828 279.61 104.772C281.555 106.717 284.193 107.81 286.943 107.811C289.693 107.811 292.331 106.718 294.276 104.773C296.22 102.829 297.313 100.191 297.313 97.4408C297.313 94.6902 296.22 92.0522 294.276 90.1069C292.331 88.1616 289.694 87.0682 286.943 87.0671Z" - fill="#00B39F" - /> - <path - d="M276.57 71.4471C274.683 71.4471 273.74 77.9445 272.796 84.4379C271.853 90.9313 270.921 97.4326 269.015 97.4326" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M268.982 97.4404C270.873 97.4404 271.817 97.4049 272.76 97.3733C273.703 97.3417 274.647 97.3062 276.538 97.3062" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M286.943 81.8283C286.943 83.1349 286.975 83.802 287.007 84.4414C287.038 85.0809 287.074 85.752 287.074 87.0625" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M286.955 113.053C284.204 113.053 281.567 114.145 279.622 116.09C277.677 118.034 276.585 120.672 276.585 123.422C276.585 126.172 277.677 128.81 279.622 130.755C281.567 132.699 284.204 133.792 286.955 133.792C289.705 133.792 292.343 132.7 294.289 130.755C296.234 128.81 297.327 126.173 297.328 123.422C297.327 120.672 296.234 118.034 294.289 116.09C292.343 114.145 289.705 113.053 286.955 113.053Z" - fill="#00B39F" - /> - <path - d="M286.943 107.811C286.943 109.117 286.975 109.784 287.007 110.424C287.038 111.063 287.074 111.734 287.074 113.045" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M268.982 97.4403C270.889 97.4403 271.84 103.934 272.792 110.427C273.743 116.921 274.698 123.418 276.605 123.418" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - </g> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M195.091 155.594L208.906 141.779L208.906 137.228L195.091 123.407L190.54 127.958L197.57 134.994L191.01 134.994L191.01 134.865L188.074 134.865L188.068 135.026L186.014 135.065C184.811 135.091 183.575 135.194 182.319 135.387C181.064 135.58 179.809 135.831 178.547 136.14C177.292 136.449 175.946 136.874 174.511 137.428C172.071 138.425 169.863 139.636 167.874 141.065C165.884 142.487 164.024 144.026 162.292 145.668C160.554 147.309 158.848 148.938 157.162 150.56C155.475 152.169 153.679 153.637 151.767 154.944C149.855 156.251 147.769 157.313 145.503 158.124C143.244 158.929 140.643 159.334 137.695 159.334L132.004 159.334L132.004 168.469L137.695 168.469C140.709 168.464 143.712 168.105 146.643 167.401C149.111 166.789 151.49 165.866 153.724 164.652C155.764 163.536 157.697 162.234 159.498 160.763C161.237 159.334 162.891 157.847 164.481 156.302C166.065 154.757 167.648 153.27 169.232 151.841C170.813 150.416 172.503 149.116 174.285 147.953C176.113 146.765 178.092 145.828 180.169 145.165C182.526 144.445 184.98 144.098 187.444 144.135L191.01 144.135L191.01 144.129L197.447 144.129L190.534 151.043L195.091 155.594ZM162.292 133.333C163.063 134.063 163.855 134.769 164.668 135.451C166.984 133.858 169.467 132.52 172.071 131.46L172.213 131.415C172.773 131.2 173.337 130.996 173.906 130.803C172.258 129.709 170.7 128.492 169.232 127.166C167.648 125.737 166.065 124.25 164.481 122.705C162.891 121.16 161.237 119.679 159.498 118.244C157.76 116.821 155.842 115.521 153.73 114.356C151.492 113.141 149.108 112.217 146.636 111.607C143.708 110.903 140.707 110.544 137.695 110.538L132.004 110.538L132.004 119.679L137.695 119.679C140.637 119.679 143.244 120.078 145.503 120.89C147.769 121.694 149.855 122.756 151.767 124.063C153.679 125.37 155.475 126.831 157.162 128.454C158.848 130.069 160.554 131.698 162.292 133.346L162.292 133.333Z" - fill="#252E31" - /> - <defs> - <filter - id="filter0_d_7826_30152" - x="0" - y="144" - width="134" - height="134" - filterUnits="userSpaceOnUse" - colorInterpolationFilters="sRGB" - > - <feFlood floodOpacity="0" result="BackgroundImageFix" /> - <feColorMatrix - in="SourceAlpha" - type="matrix" - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" - result="hardAlpha" - /> - <feMorphology - radius="2" - operator="dilate" - in="SourceAlpha" - result="effect1_dropShadow_7826_30152" - /> - <feOffset /> - <feGaussianBlur stdDeviation="3" /> - <feComposite in2="hardAlpha" operator="out" /> - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" /> - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7826_30152" /> - <feBlend - mode="normal" - in="SourceGraphic" - in2="effect1_dropShadow_7826_30152" - result="shape" - /> - </filter> - <filter - id="filter1_d_7826_30152" - x="206" - y="31" - width="134" - height="213" - filterUnits="userSpaceOnUse" - colorInterpolationFilters="sRGB" - > - <feFlood floodOpacity="0" result="BackgroundImageFix" /> - <feColorMatrix - in="SourceAlpha" - type="matrix" - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" - result="hardAlpha" - /> - <feMorphology - radius="2" - operator="dilate" - in="SourceAlpha" - result="effect1_dropShadow_7826_30152" - /> - <feOffset /> - <feGaussianBlur stdDeviation="3" /> - <feComposite in2="hardAlpha" operator="out" /> - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" /> - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7826_30152" /> - <feBlend - mode="normal" - in="SourceGraphic" - in2="effect1_dropShadow_7826_30152" - result="shape" - /> - </filter> - <filter - id="filter2_d_7826_30152" - x="0" - y="0" - width="134" - height="134" - filterUnits="userSpaceOnUse" - colorInterpolationFilters="sRGB" - > - <feFlood floodOpacity="0" result="BackgroundImageFix" /> - <feColorMatrix - in="SourceAlpha" - type="matrix" - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" - result="hardAlpha" - /> - <feMorphology - radius="2" - operator="dilate" - in="SourceAlpha" - result="effect1_dropShadow_7826_30152" - /> - <feOffset /> - <feGaussianBlur stdDeviation="3" /> - <feComposite in2="hardAlpha" operator="out" /> - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" /> - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7826_30152" /> - <feBlend - mode="normal" - in="SourceGraphic" - in2="effect1_dropShadow_7826_30152" - result="shape" - /> - </filter> - <clipPath id="clip0_7826_30152"> - <rect width="75" height="75" fill="white" transform="translate(25 172)" /> - </clipPath> - <clipPath id="clip1_7826_30152"> - <rect width="75" height="75" fill="white" transform="translate(234 139)" /> - </clipPath> - <clipPath id="clip2_7826_30152"> - <rect width="75" height="75" fill="white" transform="translate(25 30)" /> - </clipPath> - <clipPath id="clip3_7826_30152"> - <rect width="75" height="75" fill="white" transform="matrix(1 0 0 -1 235 135)" /> - </clipPath> - </defs> - </svg> - ); -}; - -export default MergeActionIcon; diff --git a/src/icons/Mesh/OutlinedMesh.tsx b/src/icons/Mesh/OutlinedMesh.tsx deleted file mode 100644 index 80efa9314..000000000 --- a/src/icons/Mesh/OutlinedMesh.tsx +++ /dev/null @@ -1,144 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedMeshIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 52 64" - {...props} - > - <path d="M35.9926 38.1797H18.0493" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M13.1826 43.0496C13.1826 40.36 15.363 38.1797 18.0526 38.1797C19.3442 38.1797 20.5828 38.6928 21.4962 39.606C22.4094 40.5193 22.9225 41.758 22.9225 43.0496C22.9225 45.7392 20.7421 47.9195 18.0526 47.9195C15.363 47.9195 13.1826 45.7392 13.1826 43.0496V43.0496Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M13.1826 43.0496C13.1826 40.36 15.363 38.1797 18.0526 38.1797C19.3442 38.1797 20.5828 38.6928 21.4962 39.606C22.4094 40.5193 22.9225 41.758 22.9225 43.0496C22.9225 45.7392 20.7421 47.9195 18.0526 47.9195C15.363 47.9195 13.1826 45.7392 13.1826 43.0496V43.0496Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M17.9937 11.3511L35.9918 38.1837" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M31.1226 43.0496C31.1226 40.36 33.3029 38.1797 35.9925 38.1797C37.2841 38.1797 38.5228 38.6928 39.436 39.606C40.3494 40.5193 40.8624 41.758 40.8624 43.0496C40.8624 45.7392 38.6821 47.9195 35.9925 47.9195C33.3029 47.9195 31.1226 45.7392 31.1226 43.0496V43.0496Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M31.1226 43.0496C31.1226 40.36 33.3029 38.1797 35.9925 38.1797C37.2841 38.1797 38.5228 38.6928 39.436 39.606C40.3494 40.5193 40.8624 41.758 40.8624 43.0496C40.8624 45.7392 38.6821 47.9195 35.9925 47.9195C33.3029 47.9195 31.1226 45.7392 31.1226 43.0496V43.0496Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M13.1235 6.48077C13.1235 9.17036 15.3039 11.3507 17.9935 11.3507C19.285 11.3507 20.5237 10.8376 21.437 9.92433C22.3503 9.01105 22.8634 7.77235 22.8634 6.48077C22.8634 3.79118 20.683 1.61084 17.9935 1.61084C15.3039 1.61084 13.1235 3.79118 13.1235 6.48077V6.48077Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M13.1235 6.48077C13.1235 9.17036 15.3039 11.3507 17.9935 11.3507C19.285 11.3507 20.5237 10.8376 21.437 9.92433C22.3503 9.01105 22.8634 7.77235 22.8634 6.48077C22.8634 3.79118 20.683 1.61084 17.9935 1.61084C15.3039 1.61084 13.1235 3.79118 13.1235 6.48077V6.48077Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M18.0527 38.1798L35.996 11.3472" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M31.1226 6.48077C31.1226 9.17036 33.3029 11.3507 35.9925 11.3507C37.2841 11.3507 38.5228 10.8376 39.436 9.92433C40.3494 9.01105 40.8624 7.77235 40.8624 6.48077C40.8624 3.79118 38.6821 1.61084 35.9925 1.61084C33.3029 1.61084 31.1226 3.79118 31.1226 6.48077V6.48077Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M31.1226 6.48077C31.1226 9.17036 33.3029 11.3507 35.9925 11.3507C37.2841 11.3507 38.5228 10.8376 39.436 9.92433C40.3494 9.01105 40.8624 7.77235 40.8624 6.48077C40.8624 3.79118 38.6821 1.61084 35.9925 1.61084C33.3029 1.61084 31.1226 3.79118 31.1226 6.48077V6.48077Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M17.9937 11.3511L40.8206 32.9708" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.833 32.9588C40.833 30.2692 43.0134 28.0889 45.7029 28.0889C46.9945 28.0889 48.2332 28.6019 49.1465 29.5152C50.0598 30.4285 50.5729 31.6672 50.5729 32.9588C50.5729 35.6484 48.3925 37.8287 45.7029 37.8287C43.0134 37.8287 40.833 35.6484 40.833 32.9588V32.9588Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.833 32.9588C40.833 30.2692 43.0134 28.0889 45.7029 28.0889C46.9945 28.0889 48.2332 28.6019 49.1465 29.5152C50.0598 30.4285 50.5729 31.6672 50.5729 32.9588C50.5729 35.6484 48.3925 37.8287 45.7029 37.8287C43.0134 37.8287 40.833 35.6484 40.833 32.9588V32.9588Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M18.0525 38.1797L10.7271 32.9668" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M10.7399 32.9588C10.7399 30.2692 8.55957 28.0889 5.86993 28.0889C4.57837 28.0889 3.33966 28.6019 2.42639 29.5152C1.51312 30.4285 1 31.6672 1 32.9588C1 35.6484 3.18036 37.8287 5.86993 37.8287C8.55957 37.8287 10.7399 35.6484 10.7399 32.9588V32.9588Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M10.7399 32.9588C10.7399 30.2692 8.55957 28.0889 5.86993 28.0889C4.57837 28.0889 3.33966 28.6019 2.42639 29.5152C1.51312 30.4285 1 31.6672 1 32.9588C1 35.6484 3.18036 37.8287 5.86993 37.8287C8.55957 37.8287 10.7399 35.6484 10.7399 32.9588V32.9588Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.833 18.2537C40.833 15.5641 43.0134 13.3838 45.7029 13.3838C46.9945 13.3838 48.2332 13.8969 49.1465 14.8102C50.0598 15.7234 50.5729 16.9621 50.5729 18.2537C50.5729 20.9433 48.3925 23.1236 45.7029 23.1236C43.0134 23.1236 40.833 20.9433 40.833 18.2537V18.2537Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.833 18.2537C40.833 15.5641 43.0134 13.3838 45.7029 13.3838C46.9945 13.3838 48.2332 13.8969 49.1465 14.8102C50.0598 15.7234 50.5729 16.9621 50.5729 18.2537C50.5729 20.9433 48.3925 23.1236 45.7029 23.1236C43.0134 23.1236 40.833 20.9433 40.833 18.2537V18.2537Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M10.7399 18.2537C10.7399 15.5641 8.55957 13.3838 5.86993 13.3838C4.57837 13.3838 3.33966 13.8969 2.42639 14.8102C1.51312 15.7234 1 16.9621 1 18.2537C1 20.9433 3.18036 23.1236 5.86993 23.1236C8.55957 23.1236 10.7399 20.9433 10.7399 18.2537V18.2537Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M10.7399 18.2537C10.7399 15.5641 8.55957 13.3838 5.86993 13.3838C4.57837 13.3838 3.33966 13.8969 2.42639 14.8102C1.51312 15.7234 1 16.9621 1 18.2537C1 20.9433 3.18036 23.1236 5.86993 23.1236C8.55957 23.1236 10.7399 20.9433 10.7399 18.2537V18.2537Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M18.0527 38.1799L40.8248 18.2612" strokeMiterlimit="800" /> - <path d="M35.9924 38.1797L40.8212 32.9668" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path d="M10.74 32.9586L35.9813 11.3389" strokeMiterlimit="800" /> - <path d="M10.74 18.2538L35.9813 11.3398" strokeMiterlimit="800" /> - <path d="M10.74 18.2381L35.9813 11.3242" strokeMiterlimit="800" /> - <path d="M17.9937 11.3511L40.8206 18.265" strokeMiterlimit="800" /> - <path d="M17.9937 11.3511L10.7505 18.265" strokeMiterlimit="800" /> - <path d="M17.9557 11.394L10.74 32.9589" strokeMiterlimit="800" /> - <path d="M40.8331 32.959L18.061 38.1719" strokeMiterlimit="800" /> - <path d="M17.9978 12.9937L18.0527 38.1801" strokeMiterlimit="800" /> - <path d="M10.74 18.2539L18.0655 38.1726" strokeMiterlimit="800" /> - <path d="M35.9924 38.1799L40.8212 18.2612" strokeMiterlimit="800" /> - <path d="M35.9924 38.1798V11.3472" strokeMiterlimit="800" /> - <path d="M40.8332 32.9586L36.0044 11.3389" strokeMiterlimit="800" /> - <path d="M10.74 32.9588L40.8375 18.2529" strokeMiterlimit="800" /> - <path d="M10.74 32.959H40.8375" /> - <path d="M10.74 18.2539L35.9813 38.1726" strokeMiterlimit="800" /> - <path d="M17.9937 11.3511L18.0485 38.1837" strokeMiterlimit="800" /> - <path d="M10.74 18.2539H40.8375" /> - <path d="M10.74 18.2539L40.8375 32.9597" strokeMiterlimit="800" /> - <path d="M10.74 32.959L35.9813 38.1719" strokeMiterlimit="800" /> - <path d="M10.74 32.959L18.0655 38.1719" strokeMiterlimit="800" /> - <path d="M40.833 18.2539V32.9597" /> - <path d="M10.74 18.2539V32.9597" /> - <path d="M40.8332 18.2538L36.0044 11.3398" strokeMiterlimit="800" /> - <path d="M17.9937 11.3511H35.9918" strokeMiterlimit="800" /> - </svg> - ); -}; - -export default OutlinedMeshIcon; diff --git a/src/icons/Mesh/index.ts b/src/icons/Mesh/index.ts deleted file mode 100644 index 6b0fd1eb3..000000000 --- a/src/icons/Mesh/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedMeshIcon } from './OutlinedMesh'; diff --git a/src/icons/Meshery/MesheryIcon.tsx b/src/icons/Meshery/MesheryIcon.tsx deleted file mode 100644 index c8421126f..000000000 --- a/src/icons/Meshery/MesheryIcon.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { CustomIconProps } from '../types'; - -const MesheryIcon: FC<CustomIconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - primaryFill = '#00B39F', - secondaryFill = '#00D3A9', - ...props -}) => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 135 135" - {...props} - xmlns="http://www.w3.org/2000/svg" - > - <path d="M69.5 31.82V64.07L97.45 47.89L69.5 31.82Z" fill={secondaryFill} /> - <path d="M69.5 70.81V103.22L97.7 87.09L69.5 70.81Z" fill={secondaryFill} /> - <path d="M65.47 63.85V32.09L37.87 47.92L65.47 63.85Z" fill={primaryFill} /> - <path - d="M10.1 103.1C15.5182 111.811 22.842 119.179 31.52 124.65V90.71L10.1 103.1Z" - fill={primaryFill} - /> - <path d="M65.47 103.06V71.05L37.8 87.07L65.47 103.06Z" fill={primaryFill} /> - <path d="M35.54 122.63L63.56 106.61L35.54 90.41V122.63Z" fill={secondaryFill} /> - <path d="M99.62 122.8V90.63L71.64 106.63L99.62 122.8Z" fill={primaryFill} /> - <path - d="M127.03 99.37C131.817 90.4433 134.524 80.5502 134.95 70.43L105.78 87.11L127.03 99.37Z" - fill={primaryFill} - /> - <path d="M103.64 83.69L131.76 67.61L103.64 51.45V83.69Z" fill={secondaryFill} /> - <path d="M99.62 44.5V12.52L71.77 28.49L99.62 44.5Z" fill={primaryFill} /> - <path d="M99.62 83.55V51.28L71.7 67.44L99.62 83.55Z" fill={primaryFill} /> - <path d="M35.54 51.22V83.73L63.66 67.45L35.54 51.22Z" fill={secondaryFill} /> - <path - d="M65.47 0C55.1388 0.298791 45.016 2.97835 35.89 7.83L65.52 24.83L65.47 0Z" - fill={primaryFill} - /> - <path d="M35.54 12.3V44.62L63.69 28.48L35.54 12.3Z" fill={secondaryFill} /> - <path - d="M31.52 10.34C22.8442 15.8136 15.521 23.1813 10.1 31.89L31.52 44.25V10.34Z" - fill={primaryFill} - /> - <path - d="M99.43 8C90.2123 3.0393 79.9635 0.299881 69.5 0V25.15L99.43 8Z" - fill={secondaryFill} - /> - <path - d="M0 69.87C0.348236 80.2825 3.1145 90.4711 8.08 99.63L29.77 87.07L0 69.87Z" - fill={secondaryFill} - /> - <path - d="M8.07001 35.37C3.13121 44.4917 0.372439 54.6334 0.0100098 65L29.8 47.91L8.07001 35.37Z" - fill={secondaryFill} - /> - <path - d="M35.78 127.13C44.9355 132.013 55.0981 134.706 65.47 135V110.15L35.78 127.13Z" - fill={primaryFill} - /> - <path - d="M124.89 32C119.512 23.3126 112.237 15.9553 103.61 10.48V44.3L124.89 32Z" - fill={secondaryFill} - /> - <path - d="M103.64 124.54C112.314 119.022 119.624 111.61 125.02 102.86L103.64 90.52V124.54Z" - fill={secondaryFill} - /> - <path - d="M134.96 64.81C134.572 54.5437 131.835 44.5032 126.96 35.46L105.5 47.88L134.96 64.81Z" - fill={primaryFill} - /> - <path - d="M69.5 135C79.845 134.709 89.9825 132.029 99.12 127.17L69.5 110V135Z" - fill={secondaryFill} - /> - <path d="M31.52 83.44V51.56L3.83002 67.43L31.52 83.44Z" fill={primaryFill} /> - </svg> - ); -}; - -export default MesheryIcon; diff --git a/src/icons/Meshery/index.ts b/src/icons/Meshery/index.ts deleted file mode 100644 index 5e90c5e7e..000000000 --- a/src/icons/Meshery/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as MesheryIcon } from './MesheryIcon'; diff --git a/src/icons/MesheryFilter/MesheryFilterIcon.tsx b/src/icons/MesheryFilter/MesheryFilterIcon.tsx deleted file mode 100644 index ac9ee4da4..000000000 --- a/src/icons/MesheryFilter/MesheryFilterIcon.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { CustomIconProps } from '../types'; - -const MesheryFilterIcon: FC<CustomIconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - primaryFill = '#654ff0', - secondaryFill = '#ffffff', - ...props -}) => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - viewBox="0 0 120 120" - {...props} - > - <path - fill={primaryFill} - d="M 73.726562 0 C 73.726562 0.210938 73.726562 0.421875 73.726562 0.648438 C 73.726562 8.246094 67.566406 14.40625 59.964844 14.40625 C 52.367188 14.40625 46.207031 8.246094 46.207031 0.648438 C 46.207031 0.421875 46.207031 0.210938 46.207031 0 L 0 0 L 0 120 L 120 120 L 120 0 Z M 73.726562 0 " - /> - <path - fill={secondaryFill} - d="M 27.875 64.667969 L 35.828125 64.667969 L 41.257812 93.585938 L 41.355469 93.585938 L 47.878906 64.667969 L 55.320312 64.667969 L 61.214844 93.9375 L 61.328125 93.9375 L 67.519531 64.667969 L 75.316406 64.667969 L 65.183594 107.15625 L 57.289062 107.15625 L 51.445312 78.242188 L 51.292969 78.242188 L 45.035156 107.15625 L 36.996094 107.15625 Z M 84.285156 64.667969 L 96.820312 64.667969 L 109.273438 107.15625 L 101.070312 107.15625 L 98.359375 97.703125 L 84.078125 97.703125 L 81.988281 107.15625 L 73.996094 107.15625 Z M 89.058594 75.140625 L 85.589844 90.730469 L 96.382812 90.730469 L 92.402344 75.140625 Z M 89.058594 75.140625 " - /> - </svg> - ); -}; - -export default MesheryFilterIcon; diff --git a/src/icons/MesheryFilter/index.tsx b/src/icons/MesheryFilter/index.tsx deleted file mode 100644 index c6a3c59e4..000000000 --- a/src/icons/MesheryFilter/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as MesheryFilterIcon } from './MesheryFilterIcon'; diff --git a/src/icons/MesheryOperator/MesheryOperator.tsx b/src/icons/MesheryOperator/MesheryOperator.tsx deleted file mode 100644 index b3b731693..000000000 --- a/src/icons/MesheryOperator/MesheryOperator.tsx +++ /dev/null @@ -1,232 +0,0 @@ -import { FC } from 'react'; -import { CARIBBEAN_GREEN } from '../../theme'; -import { IconProps } from '../types'; - -export const MesheryOperator: FC<IconProps> = ({ width = '24px', height = '24px', ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 1218.7 1218.7" - {...props} - > - <g id="Layer_1_1_"> - <g> - <g> - <g> - <path - fill={'#3c494e'} - d="M610.1,584.3c-68,0-132.2-26.5-180.7-74.7c-48.6-48.2-75.4-112.2-75.4-180c0-141.2,114.9-256.1,256.1-256.1 c68,0,132.1,26.5,180.7,74.7c48.6,48.3,75.4,112.2,75.4,180C866.2,469.4,751.3,584.3,610.1,584.3z M610.1,80.5 C472.7,80.5,361,192.2,361,329.6c0,66,26,128.1,73.3,175.1c47.2,46.8,109.6,72.6,175.8,72.6c137.4,0,249.1-111.7,249.1-249.1 c0-65.9-26.1-128.1-73.4-175C738.6,106.3,676.2,80.5,610.1,80.5z M610.1,528.6c-109.7,0-199-89.3-199-199s89.3-199,199-199 s199,89.3,199,199S719.8,528.6,610.1,528.6z M610.1,137.6c-105.9,0-192,86.1-192,192s86.1,192,192,192c105.9,0,192-86.1,192-192 S716,137.6,610.1,137.6z" - /> - </g> - <g> - <path - fill={'#3c494e'} - d="M921.1,1222.2H297.5c-50.6,0-98.1-19.6-133.7-55.3c-35.6-35.6-55.3-83.1-55.3-133.7V894.8 c0-158.4,123.7-291.6,281.5-303.3l0.3,0c8.8,0,17.9,3.7,23.9,9.6c53.7,50.9,123.2,79,195.8,79c36.6,0,72.2-6.9,105.9-20.4 c33.9-13.6,64.1-33.3,90-58.5c6.4-6.4,14.4-9.6,23.8-9.6l0.3,0c76.3,5.6,147.2,39.8,199.6,96.4c52.6,56.7,81.2,130.2,80.4,206.9 v138.4c0,50.6-19.6,98.1-55.3,133.7S971.7,1222.2,921.1,1222.2z M390.4,598.5C236.3,610,115.5,740.1,115.5,894.8v138.4 c0,48.7,18.9,94.5,53.2,128.8s80.1,53.2,128.8,53.2h623.6c48.7,0,94.5-18.9,128.8-53.2s53.2-80.1,53.2-128.8V894.8 c0.7-74.9-27.2-146.6-78.6-202.1c-51.2-55.2-120.4-88.6-194.9-94.1c-7.6,0-13.7,2.5-18.8,7.6c-26.6,25.9-57.6,46.1-92.3,60 c-34.6,13.9-71.1,20.9-108.5,20.9c-74.4,0-145.7-28.8-200.7-81C404.7,601.5,397.3,598.5,390.4,598.5z M922.6,1165.1h-625 c-35.5,0-68.6-13.7-93.5-38.5c-24.8-24.8-38.4-58-38.4-93.4V894.8c0-123.4,92.7-228.6,215.6-244.7l1.6-0.2l1.2,1.1 c30.8,28,66,49.6,104.5,64.2c38.2,14.5,79.1,21.9,121.5,21.9c41.9,0,82.7-7.5,121.4-22.4c38.2-14.7,73.4-36.1,104.5-63.7l1.2-1 l1.6,0.2c59,7,113.5,35.8,153.5,81.1c40.1,45.4,62.2,103.5,62.2,163.6v138.4c0,35.5-13.7,68.6-38.5,93.5 C991.2,1151.4,958,1165.1,922.6,1165.1z M380.7,657.3c-118.7,16.4-208,118.2-208,237.5v138.4c0,33.6,12.9,65,36.4,88.5 c23.5,23.5,54.9,36.4,88.5,36.4h625c33.6,0,65-12.9,88.5-36.4c23.5-23.5,36.4-54.9,36.4-88.5V894.8c0-58.4-21.5-114.9-60.5-159 c-38.5-43.6-90.8-71.4-147.5-78.6c-31.5,27.7-67,49.2-105.5,64c-39.5,15.2-81.2,22.9-124,22.9c-43.2,0-84.9-7.5-123.9-22.3 C447.3,707,411.8,685.4,380.7,657.3z" - /> - </g> - <g> - <g> - <g> - <g> - <path - fill={'#3c494e'} - d="M625.8,1073.8h-28.5c-4.8,0-9.2-4.4-9.2-9.2v-17.3c-9.5-2.6-18.3-6.2-27.3-11.1l-12.4,12.4 c-2.4,2.4-5.1,2.4-6.8,2.4s-4.3,0-6.8-2.4l-20-20c-2.1-2.1-3.2-4.4-3.2-6.8c0-2.4,1.1-4.7,3.2-6.8l12.4-12.4 c-4.8-8.5-9.6-17.4-11.4-27.3h-17c-4.8,0-9.2-4.4-9.2-9.2v-28.5c0-4.8,4.4-9.2,9.2-9.2h17.3c2.9-10.8,6.7-20.2,11-27.4 l-12.3-12.3c-4.2-4.2-4.2-9.3,0-13.5l19.6-19.6c1.1-1.8,2.9-3.1,5.1-3.4c3-0.5,6.3,0.6,8.8,3.1l12.4,12.4 c8.5-4.8,17.4-9.6,27.3-11.4v-17c0-4.8,4.4-9.2,9.2-9.2h28.5c4.8,0,9.2,4.4,9.2,9.2v17.3c9.5,2.6,18.3,6.2,27.3,11.1 l12.1-12.1c1.1-1.8,2.9-3.1,5.1-3.4c3-0.5,6.3,0.6,8.8,3.1l20,20c4.2,4.2,4.2,9.3,0,13.5l-12.4,12.4 c4.8,8.5,9.6,17.4,11.4,27.3h17c4.8,0,9.2,4.4,9.2,9.2v28.5c0,4.8-4.4,9.2-9.2,9.2H707c-2.9,10.8-6.7,20.2-11,27.4l12.3,12.3 c2.1,2.1,3.2,4.4,3.2,6.8c0,2.4-1.1,4.7-3.2,6.8l-19.6,19.6c-1.1,1.8-2.9,3.1-5.1,3.4c-3,0.5-6.3-0.6-8.8-3.1l-12.4-12.4 c-8.5,4.8-17.4,9.6-27.3,11.4v17C635,1070.1,631.3,1073.8,625.8,1073.8z M559.6,1027.4l2.3,1.3c10.1,5.8,19.8,9.7,30.5,12.4 l2.6,0.7v22.7c0,0.9,1.3,2.2,2.2,2.2h28.5c2,0,2.2-1,2.2-2.2v-23.1l3.1-0.4c10.7-1.3,20.1-6.7,30.1-12.4l2.3-1.3l16.2,16.2 c0.9,0.9,2,1.2,2.6,1.1c0.3,0,0.3-0.1,0.3-0.2l0.3-0.5l20.4-20.4c0.7-0.7,1.2-1.4,1.2-1.8s-0.4-1.1-1.2-1.8l-16.3-16.3 l1.6-2.4c4.9-7.4,9.2-17.9,12.3-30.3l0.7-2.6h22.7c0.9,0,2.2-1.3,2.2-2.2v-28.5c0-0.9-1.3-2.2-2.2-2.2h-23.1l-0.4-3.1 c-1.3-10.7-6.7-20.1-12.4-30.1l-1.3-2.3l16.2-16.2c1.5-1.5,1.5-2.1,0-3.7l-20-20c-0.9-0.9-2-1.2-2.6-1.1 c-0.3,0-0.3,0.1-0.3,0.2l-0.3,0.5l-16.6,16.6l-2.3-1.3c-10.1-5.8-19.8-9.7-30.5-12.5l-2.6-0.7v-22.7c0-0.9-1.3-2.2-2.2-2.2 h-28.5c-0.9,0-2.2,1.3-2.2,2.2v23.1l-3.1,0.4c-10.7,1.3-20.1,6.7-30.1,12.4l-2.3,1.3l-16.2-16.2c-0.9-0.9-2-1.2-2.6-1.1 c-0.3,0-0.3,0.1-0.3,0.2l-0.3,0.5l-20.4,20.4c-1.5,1.5-1.5,2.1,0,3.7l16.3,16.3l-1.6,2.4c-4.9,7.4-9.2,17.9-12.3,30.3 l-0.7,2.6h-22.7c-0.9,0-2.2,1.3-2.2,2.2v28.5c0,0.9,1.3,2.2,2.2,2.2h23.1l0.4,3.1c1.3,10.7,6.7,20.1,12.4,30.1l1.3,2.3 l-16.2,16.2c-0.7,0.7-1.1,1.4-1.1,1.8s0.4,1.1,1.1,1.8l20,20c0.3,0.3,0.5,0.4,1.8,0.4c1.3,0,1.5-0.1,1.8-0.4L559.6,1027.4z M623.5,1063.8h-24.1v-24.9c0-1.2-0.4-2.2-0.8-2.2l-0.4,0c-12.6-1.5-25.8-6.8-37.3-14.9l-0.7-0.5l-0.2-0.5 c-0.5,0-1.3,0.4-1.6,0.6l-16.8,16.8l-17.7-17.8l16.8-16.8c0-0.1,0.2-1.1-0.6-2.9c-8-11.2-13.4-24.7-14.7-37.1l0-0.4 c0-0.5-1.2-0.8-2.2-0.8h-23.5v-24.2H523c1.2,0,2.2-0.4,2.2-0.8l0-0.4c1.5-12.6,6.8-25.8,14.9-37.3l0.5-0.7l0.5-0.2 c0-0.5-0.4-1.3-0.6-1.6l-16.8-16.8l17.7-17.8l16.8,16.8c0.1,0,1.1,0.2,2.9-0.6c11.2-8,24.7-13.4,37.1-14.7l0.4,0 c0.5,0,0.8-1.2,0.8-2.2v-23.5h24.1v23.5c0,1.2,0.4,2.2,0.8,2.2l0.4,0c12.6,1.5,25.8,6.8,37.3,14.9l0.7,0.5l0.2,0.5 c0.5,0,1.3-0.4,1.6-0.6l16.8-16.8l17.8,17.7l-16.8,16.8c0,0.1-0.2,1.1,0.6,2.9c8,11.2,13.4,24.7,14.7,37.1l0,0.4 c0,0.5,1.2,0.8,2.2,0.8h23.5v25.6h-23.5c-1.2,0-2.2,0.4-2.2,0.8l0,0.4c-1.5,12.6-6.8,25.8-14.9,37.3l-0.5,0.7l-0.5,0.2 c0,0.5,0.4,1.3,0.6,1.6l16.8,16.8l-17.8,17.7l-16.8-16.8c-0.1,0-1.1-0.2-2.9,0.6c-11.2,8-24.7,13.4-37.1,14.7l-0.4,0 c-0.5,0-0.8,1.2-0.8,2.2V1063.8z M606.4,1056.8h10.1v-16.5c0-5.2,3.2-9.1,7.6-9.2c11.2-1.3,23.6-6.2,33.9-13.6l0.2-0.2 l0.3-0.1c4.3-2.1,8.6-1.8,11.1,0.7l11.8,11.8l7.8-7.9l-11.8-11.8c-1.6-1.6-3.1-5-2.6-8c0.3-1.8,1.2-3.2,2.6-4.2 c7.1-10.2,11.9-22.3,13.2-33.3c0.1-4.4,4-7.6,9.2-7.6h16.5v-11.6h-16.5c-5.2,0-9.1-3.2-9.2-7.6c-1.3-11.2-6.2-23.6-13.6-33.9 l-0.2-0.2l-0.1-0.3c-2.1-4.3-1.8-8.6,0.7-11.1l11.8-11.8l-7.8-7.9l-11.8,11.8c-1.6,1.6-5,3.1-8,2.6c-1.8-0.3-3.2-1.2-4.2-2.6 c-10.2-7.1-22.3-11.9-33.3-13.2c-4.4-0.1-7.6-4-7.6-9.2v-16.5h-10.1v16.5c0,5.2-3.2,9.1-7.6,9.2 c-11.2,1.3-23.6,6.2-33.9,13.6l-0.2,0.2l-0.3,0.1c-4.3,2.1-8.6,1.8-11.1-0.7l-11.8-11.8l-7.9,7.8l11.8,11.8 c1.6,1.6,3.1,5,2.6,8c-0.3,1.8-1.2,3.2-2.6,4.2c-7.1,10.2-11.9,22.3-13.2,33.3c-0.1,4.4-4,7.6-9.2,7.6h-16.5v10.2H523 c5.2,0,9.1,3.2,9.2,7.6c1.3,11.2,6.2,23.6,13.6,33.9l0.2,0.2l0.1,0.3c2.1,4.3,1.8,8.6-0.7,11.1l-11.8,11.8l7.9,7.8l11.8-11.8 c1.6-1.6,5-3.1,8-2.6c1.8,0.3,3.2,1.2,4.2,2.6c10.2,7.1,22.3,11.9,33.3,13.2c4.4,0.1,7.6,4,7.6,9.2V1056.8z" - /> - </g> - <g> - <path - fill={'#3c494e'} - d="M611.5,1002.4c-27.9,0-50.6-23.3-50.6-52s22.7-52,50.6-52c27.9,0,50.6,23.3,50.6,52 S639.4,1002.4,611.5,1002.4z M611.5,905.4c-24,0-43.6,20.2-43.6,45s19.6,45,43.6,45s43.6-20.2,43.6-45 S635.5,905.4,611.5,905.4z M611.5,992.4c-21.6,0-39.2-18.2-39.2-40.6c0-22.4,17.6-40.6,39.2-40.6c22.3,0,39.2,17.5,39.2,40.6 C650.7,974.2,633.1,992.4,611.5,992.4z M611.5,918.2c-17.8,0-32.2,15.1-32.2,33.6s14.4,33.6,32.2,33.6 c17.8,0,32.2-15.1,32.2-33.6C643.7,932.6,629.9,918.2,611.5,918.2z" - /> - </g> - </g> - <g> - <g> - <g> - <path - fill={'#3c494e'} - d="M758.5,869.7c-2.3,0-6.7-1.8-7.6-5.1c-29.7-44.8-85.1-74.9-138-74.9c-49.1,0-94.8,22.3-125.4,61.2 c-0.9,1.7-2.4,2.9-4.3,3.5c-2.7,0.9-6.1,0.6-8.9-0.9c-1.8-0.9-3.1-2.4-3.8-4.5c-0.9-2.7-0.6-6.1,0.9-8.9l0.1-0.3l0.2-0.2 c33.3-43.5,84.3-68.5,139.8-68.5c29.1,0,59.2,7.9,86.9,22.9c27.5,14.8,50.7,35.6,67.3,60l0.3,0.4c2.1,4.3,1.5,8.2-1.3,10.6 C764.1,867.5,762.5,869.7,758.5,869.7z M757.7,862.4c0.1,0,0.1,0.1,0.2,0.1l0.1-1.6l1.9-0.9c0.2-0.1,0.8-0.4-0.1-2.2 c-15.9-23.4-38.2-43.2-64.7-57.5c-26.7-14.4-55.6-22-83.6-22c-53.2,0-102,23.8-134,65.5c-0.5,1.1-0.6,2.4-0.3,3.2 c0.1,0.3,0.2,0.4,0.3,0.4c1.2,0.6,2.6,0.8,3.5,0.5c0.3-0.1,0.4-0.2,0.4-0.3l0.2-0.3l0.2-0.3c32-40.8,79.8-64.1,131.2-64.1 c55.4,0,113.3,31.6,144.2,78.7l0.6,0.9V862.4z" - /> - </g> - <g> - <path - fill={'#3c494e'} - d="M758.5,869.7h-27.1c-4.8,0-9.2-4.4-9.2-9.2s4.4-9.2,9.2-9.2h17.9v-16.5c0-4.8,4.4-9.2,9.2-9.2 c4.7,0,9.2,4.5,9.2,9.2v25.7c0,1.6,0,4.4-2.4,6.8l-0.1,0.1C762.7,869.7,760.2,869.7,758.5,869.7z M731.4,858.3 c-0.9,0-2.2,1.3-2.2,2.2s1.3,2.2,2.2,2.2h27.1c1.2,0,1.4,0,1.9-0.4c0.3-0.3,0.3-0.5,0.3-1.8v-25.7c0-0.9-1.3-2.2-2.2-2.2 c-0.9,0-2.2,1.3-2.2,2.2v23.5H731.4z" - /> - </g> - </g> - <g> - <g> - <path - d="M656.3,1119.4h-22.6l14.1-4.6c-0.3-0.6-0.6-1.1-0.9-1.7c-1.2-2.5-0.9-5.3,0.8-7.7 c1.2-1.6,3-3.1,5.1-4.1l0.5-0.2c68-20.8,117.4-84.8,117.4-152.2c0-18.6-3.7-37.9-11.1-57.1c-2.1-4.5-0.1-9.3,4.6-11.6 c2.3-1.1,4.8-1.2,7-0.2c2,0.9,3.7,2.6,4.7,4.8l0.1,0.4c7.7,21.7,11.6,43.2,11.6,64c0,73.8-55.1,145.4-130.9,170.1l-0.5-1.4 V1119.4z M655.6,1107.8c-1.7,0.9-2.5,2-2.5,2.3c0.9,1.9,1.4,2.3,2.1,2.4c72.8-24,125.5-92.6,125.5-163.3 c0-19.9-3.7-40.6-11.1-61.4c-0.3-0.6-0.7-1-1.2-1.2c-0.2-0.1-0.6-0.2-1.2,0.1c-0.7,0.3-1.2,0.8-1.4,1.2 c-0.1,0.2-0.2,0.6,0.1,1.2l0.1,0.3c7.7,20.1,11.6,40.2,11.6,59.8C777.7,1019.2,726.4,1086,655.6,1107.8z" - fill={'#3c494e'} - /> - </g> - <g> - <path - d="M678.6,1130.9H675l-23-10.1c-3-0.5-5.5-3.2-5.5-6.3v-5.3l13.2-22.1c1.1-2.2,3.3-3.7,5.9-4.1 c2.4-0.4,4.7,0.2,6.3,1.5c2,1.2,3.4,3.2,3.7,5.7c0.4,2.4-0.2,4.8-1.6,6.4l-7.6,11.9l13.4,5.6c2.4,1.2,4.2,3.1,5,5.4 c0.5,1.5,0.6,3.1,0.2,4.7c0.2,0.9,0.2,1.9-0.2,2.8C683.8,1129.7,680.5,1130.9,678.6,1130.9z M676.4,1123.9h1.2l0.5-1.1 c0.2-0.5,0.2-0.8,0.1-1c-0.2-0.5-0.7-1-1.3-1.3l-20.8-8.7l12.5-19.6l0.2-0.1c0.1-0.4,0-1.4-0.4-1.5l-0.6-0.3l-0.3-0.3 c-0.4-0.1-1.4,0-1.5,0.4l-0.1,0.3l-12.3,20.6v2.7h0.1L676.4,1123.9z" - fill={'#3c494e'} - /> - </g> - </g> - <g> - <g> - <path - d="M611.5,1126.6c-97.2,0-176.2-79.7-176.2-177.6c0-20,8.5-43.7,15.3-62.6c0.7-1.9,1.4-3.8,2-5.6l0.1-0.4 l1.4-2.9c1.2-2.4,3.1-4.2,5.4-5c2.1-0.7,4.4-0.5,6.4,0.5c2.4,1.2,4.2,3.1,4.9,5.4c0.7,2.1,0.5,4.4-0.5,6.4l-1.3,2.7 c-0.6,1.5-1.1,3-1.7,4.5c-6.7,17.5-15.1,39.2-15.1,56.9c0,87.8,71.4,159.2,159.2,159.2h7.1c4.8,0,9.2,4.4,9.2,9.2 c0,4.8-4.3,9.1-9.1,9.2C617.2,1126.6,614.4,1126.6,611.5,1126.6z M459.1,883.3c-0.6,1.8-1.3,3.6-2,5.5 c-6.6,18.5-14.9,41.4-14.9,60.3c0,94.1,75.9,170.6,169.2,170.6c2.6,0,5.6,0,6.9-0.1l0.2,0c0.9,0,2.2-1.3,2.2-2.2 s-1.3-2.2-2.2-2.2h-7.1c-44.4,0-86.2-17.3-117.5-48.7c-31.4-31.4-48.7-73.1-48.7-117.5c0-19,8.6-41.4,15.5-59.4 c0.6-1.6,1.2-3.1,1.8-4.6l0.1-0.3l1.4-2.9c0.3-0.5,0.2-0.9,0.1-1.1c-0.2-0.5-0.7-1-1.4-1.4c-0.5-0.3-0.9-0.2-1.1-0.1 c-0.5,0.2-1,0.7-1.4,1.4L459.1,883.3z" - fill={'#3c494e'} - /> - </g> - <g> - <path - d="M476.8,915.4h-3.7c-4.5,0-6.9-2.5-8.3-4l-0.4-0.4l-7.3-15.7l-12.6,6.9c-2.3,1.1-4.8,1.2-7,0.2 c-2-0.9-3.7-2.6-4.7-4.8c-2.2-4.5-0.3-9.5,4.5-11.8l23.5-11.7h0.7c0.1,0,0.3-0.1,0.4-0.1c0.9-0.3,3.2-1,5.4,0.3 c2.5,0.6,4.6,2.8,4.9,5.4l9.8,23.7c2.1,4.5,0.2,9.4-4.6,11.7L476.8,915.4z M470.3,907c1,1,1.5,1.4,2.8,1.4h2 c0.8-0.6,1.1-1.3,0.7-2.1l-0.1-0.2l-10.3-25h-0.8l-0.4-0.4c-0.4,0.1-0.9,0.3-1.4,0.4l-22.2,11.1c-1.4,0.7-1.8,1.5-1.3,2.4 c0.3,0.7,0.8,1.2,1.2,1.4c0.2,0.1,0.6,0.2,1.1-0.1l18.9-10.3L470.3,907z" - fill={'#3c494e'} - /> - </g> - </g> - </g> - </g> - </g> - </g> - <g> - <path - d="M904,320.3c-14.5,0-26.3-11.2-26.3-24.9c0-136.6-120-247.7-267.6-247.7c-147.6,0-267.7,111.1-267.7,247.7 c0,13.7-11.8,24.9-26.3,24.9s-26.3-11.2-26.3-24.9C289.1,220.2,319,148.3,374,92.8c29.7-30,65.1-53.7,105-70.3 C520.4,5.2,564.5-3.5,610.1-3.5c85.7,0,166.2,31.1,226.6,87.6c60.4,56.5,93.7,131.5,93.7,211.3 C930.4,309.1,918.6,320.3,904,320.3z M610.1,40.7c151.4,0,274.6,114.3,274.6,254.7c0,9.7,8.8,17.9,19.3,17.9 c10.7,0,19.4-8,19.4-17.9c0-77.8-32.5-151-91.4-206.2C772.8,34,694,3.5,610.1,3.5c-44.7,0-87.9,8.5-128.4,25.4 C442.6,45.2,408.1,68.3,379,97.7c-53.7,54.2-82.8,124.4-82.2,197.7c0,9.7,8.8,17.9,19.3,17.9c10.5,0,19.3-8.2,19.3-17.9 C335.4,155,458.6,40.7,610.1,40.7z" - fill={'#3c494e'} - /> - </g> - <g> - <path - d="M948.3,477.3H904c-14.5,0-26.3-11.2-26.3-24.9V266.9c0-13.7,11.8-24.9,26.3-24.9h44.2 c38.9,0,70.6,29.7,70.6,66.3v104.2C1018.8,447.6,986.5,477.3,948.3,477.3z M904,249c-10.5,0-19.3,8.2-19.3,17.9v185.5 c0,9.7,8.8,17.9,19.3,17.9h44.3c34.4,0,63.5-26.5,63.5-57.8V308.3c0-32.7-28.5-59.3-63.6-59.3H904z M946.9,433h-23.5V284.7h23.5 c13,0,23.5,9.9,23.5,22.1v104.1C970.4,423.1,959.9,433,946.9,433z M930.4,426h16.5c9.1,0,16.5-6.8,16.5-15.1V306.8 c0-8.3-7.4-15.1-16.5-15.1h-16.5V426z" - fill={'#3c494e'} - /> - </g> - <g> - <g> - <path - d="M696.2,519.3c-30,0-61.3-2.6-93.8-7.8l-0.3-0.1c-14.3-3.6-22.7-15.8-19.7-28.3c1.8-13.4,15-23,29.5-21.4 l0.2,0c111.9,17.2,203.7,2,272.9-45.1c5.5-3.9,12.4-5.4,19.4-4.1c6.9,1.3,12.8,5.1,16.8,10.7c8.1,11.4,5.3,26.4-6.5,34.9 l-0.1,0.1c-41.9,27.5-89.2,46-140.6,54.9C749.2,517.2,723.2,519.3,696.2,519.3z M603.6,504.6c61,9.8,117.9,10.3,169.1,1.4 c50.5-8.7,96.9-26.8,137.9-53.8c8.7-6.3,10.7-16.8,4.8-25.1c-2.9-4.1-7.4-6.9-12.4-7.8c-5.1-0.9-10.1,0.1-14.1,3 c-52,35.4-116.3,53.2-191.9,53.2c-27.2,0-55.9-2.3-86-6.9c-10.8-1.1-20.6,5.8-21.8,15.6l-0.1,0.4 C586.7,494.5,594.7,502.2,603.6,504.6z" - fill={'#3c494e'} - /> - </g> - </g> - <g> - <path - d="M316,477.3h-44.2c-38.9,0-70.6-29.7-70.6-66.3V306.8c0.1-16.7,7.6-33.3,20.8-45.5 c13.4-12.5,31.1-19.3,49.8-19.3H316c14.5,0,26.3,11.2,26.3,24.9v185.5C342.3,466.1,330.5,477.3,316,477.3z M271.8,249 c-34.4,0-63.5,26.5-63.6,57.8V411c0,32.7,28.5,59.3,63.6,59.3H316c10.5,0,19.3-8.2,19.3-17.9V266.9c0-9.7-8.8-17.9-19.3-17.9 H271.8z M296.6,434.6h-23.5c-13,0-23.5-9.9-23.5-22.1V308.4c0-12.2,10.5-22.1,23.5-22.1h23.5V434.6z M273.1,293.3 c-9.1,0-16.5,6.8-16.5,15.1v104.1c0,8.3,7.4,15.1,16.5,15.1h16.5V293.3H273.1z" - fill={'#3c494e'} - /> - </g> - </g> - </g> - <g> - <path - d="M829.8,595.1c-8.6,0-15.7,2.9-21.4,8.6c-52.8,51.4-124.2,79.9-198.4,79.9s-144.1-28.6-198.3-80 c-5.7-5.7-14.3-8.6-21.4-8.6C234.7,606.5,112,737.8,112,894.8v138.4c0,102.7,82.8,185.5,185.5,185.5h623.6 c102.7,0,185.5-82.8,185.5-185.5V894.8C1108.1,737.8,985.4,606.5,829.8,595.1z" - fill={'#3c494e'} - /> - <g> - <g> - <g> - <path - d="M758.5,866.2c-1.4,0-4.3-1.4-4.3-2.9c-30-45.7-87-77.1-141.3-77.1c-49.9,0-97,22.8-128.4,62.8 c-1.4,2.9-5.7,2.9-8.6,1.4c-2.9-1.4-2.9-5.7-1.4-8.6c32.8-42.8,82.8-67.1,137-67.1c58.5,0,118.4,32.8,151.3,81.3 c1.4,2.9,1.4,5.7-1.4,7.1C761.3,866.2,759.9,866.2,758.5,866.2z" - fill={'#3c494e'} - /> - <path - d="M758.5,866.2h-27.1c-2.9,0-5.7-2.9-5.7-5.7c0-2.9,2.9-5.7,5.7-5.7h21.4v-20c0-2.9,2.9-5.7,5.7-5.7 s5.7,2.9,5.7,5.7v25.7c0,1.4,0,2.9-1.4,4.3C761.3,866.2,759.9,866.2,758.5,866.2z" - fill={'#3c494e'} - /> - </g> - <g> - <path - d="M655.7,1115.9c-2.9,0-4.3-1.4-5.7-4.3s1.4-5.7,4.3-7.1c69.9-21.4,119.9-87,119.9-155.5 c0-20-4.3-40-11.4-58.5c-1.4-2.9,0-5.7,2.9-7.1c2.9-1.4,5.7,0,7.1,2.9c7.1,20,11.4,41.4,11.4,62.8 C784.2,1021.8,729.9,1091.7,655.7,1115.9C657.1,1115.9,655.7,1115.9,655.7,1115.9z" - fill={'#3c494e'} - /> - <path - d="M678.6,1127.4c-1.4,0-1.4,0-2.9,0l-22.8-10c-1.4,0-2.9-1.4-2.9-2.9c0-1.4,0-2.9,0-4.3l12.8-21.4 c1.4-2.9,5.7-2.9,7.1-1.4c2.9,1.4,2.9,5.7,1.4,7.1l-10,15.7l17.1,7.1c2.9,1.4,4.3,4.3,2.9,7.1 C682.8,1125.9,680,1127.4,678.6,1127.4z" - fill={'#3c494e'} - /> - </g> - <g> - <path - d="M611.5,1123.1c-95.6,0-172.7-78.5-172.7-174.1c0-21.4,10-47.1,17.1-67.1l1.4-2.9c1.4-2.9,4.3-4.3,7.1-2.9 c2.9,1.4,4.3,4.3,2.9,7.1l-1.4,2.9c-7.1,18.6-17.1,42.8-17.1,62.8c0,89.9,72.8,162.7,162.7,162.7c2.9,0,4.3,0,7.1,0 c2.9,0,5.7,2.9,5.7,5.7c0,2.9-2.9,5.7-5.7,5.7C617.2,1123.1,614.3,1123.1,611.5,1123.1z" - fill={'#3c494e'} - /> - <path - d="M473.1,911.9c-2.9,0-4.3-1.4-5.7-2.9l-8.6-18.6l-15.7,8.6c-2.9,1.4-5.7,0-7.1-2.9s0-5.7,2.9-7.1l22.8-11.4 c1.4,0,2.9-1.4,4.3,0c1.4,0,2.9,1.4,2.9,2.9l10,24.3c1.4,2.9,0,5.7-2.9,7.1C474.5,911.9,474.5,911.9,473.1,911.9z" - fill={'#3c494e'} - /> - </g> - <g> - <path - d="M625.8,1070.3h-28.5c-2.9,0-5.7-2.9-5.7-5.7v-20c-11.4-2.9-21.4-7.1-31.4-12.8l-14.3,14.3 c-1.4,1.4-2.9,1.4-4.3,1.4l0,0c-1.4,0-2.9,0-4.3-1.4l-20-20c-2.9-2.9-2.9-5.7,0-8.6l14.3-14.3c-5.7-10-11.4-20-12.8-31.4h-20 c-2.9,0-5.7-2.9-5.7-5.7v-28.5c0-2.9,2.9-5.7,5.7-5.7h20c2.9-11.4,7.1-22.8,12.8-31.4l-14.3-14.3c-2.9-2.9-2.9-5.7,0-8.6l20-20 c1.4-2.9,5.7-2.9,8.6,0l14.3,14.3c10-5.7,20-11.4,31.4-12.8v-20c0-2.9,2.9-5.7,5.7-5.7h28.5c2.9,0,5.7,2.9,5.7,5.7v20 c11.4,2.9,21.4,7.1,31.4,12.8l14.3-14.3c1.4-2.9,5.7-2.9,8.6,0l20,20c2.9,2.9,2.9,5.7,0,8.6l-14.3,14.3 c5.7,10,11.4,20,12.8,31.4h20c2.9,0,5.7,2.9,5.7,5.7v28.5c0,2.9-2.9,5.7-5.7,5.7h-20c-2.9,11.4-7.1,22.8-12.8,31.4l14.3,14.3 c2.9,2.9,2.9,5.7,0,8.6l-20,20c-1.4,2.9-5.7,2.9-8.6,0l-14.3-14.3c-10,5.7-20,11.4-31.4,12.8v20 C631.5,1068.9,628.6,1070.3,625.8,1070.3z M602.9,1060.3H620v-20c0-2.9,1.4-5.7,4.3-5.7c12.8-1.4,25.7-7.1,35.7-14.3 c2.9-1.4,5.7-1.4,7.1,0l14.3,14.3l12.8-12.8l-14.3-14.3c-1.4-1.4-2.9-5.7,0-7.1c7.1-10,12.8-22.8,14.3-35.7 c0-2.9,2.9-4.3,5.7-4.3h20v-18.6h-20c-2.9,0-5.7-1.4-5.7-4.3c-1.4-12.8-7.1-25.7-14.3-35.7c-1.4-2.9-1.4-5.7,0-7.1l14.3-14.3 l-12.8-12.8l-14.3,14.3c-1.4,1.4-5.7,2.9-7.1,0c-10-7.1-22.8-12.8-35.7-14.3c-2.9,0-4.3-2.9-4.3-5.7v-20h-17.1v20 c0,2.9-1.4,5.7-4.3,5.7c-12.8,1.4-25.7,7.1-35.7,14.3c-2.9,1.4-5.7,1.4-7.1,0l-14.3-14.3l-12.8,12.8l14.3,14.3 c1.4,1.4,2.9,5.7,0,7.1c-7.1,10-12.8,22.8-14.3,35.7c0,2.9-2.9,4.3-5.7,4.3h-20V959h20c2.9,0,5.7,1.4,5.7,4.3 c1.4,12.8,7.1,25.7,14.3,35.7c1.4,2.9,1.4,5.7,0,7.1l-14.3,14.3l12.8,12.8l14.3-14.3c1.4-1.4,5.7-2.9,7.1,0 c10,7.1,22.8,12.8,35.7,14.3c2.9,0,4.3,2.9,4.3,5.7V1060.3L602.9,1060.3z" - fill={'#3c494e'} - /> - <path - d="M611.5,998.9c-25.7,0-47.1-21.4-47.1-48.5s21.4-48.5,47.1-48.5s47.1,21.4,47.1,48.5 S637.2,998.9,611.5,998.9z M611.5,914.7c-20,0-35.7,17.1-35.7,37.1s15.7,37.1,35.7,37.1s35.7-17.1,35.7-37.1 C647.2,930.4,631.5,914.7,611.5,914.7z" - fill={'#3c494e'} - /> - </g> - </g> - <path - d="M610.1,580.8L610.1,580.8c138.4,0,252.6-112.7,252.6-252.6C862.7,189.8,748.5,77,610.1,77 S357.5,189.8,357.5,329.6C357.5,468.1,471.6,580.8,610.1,580.8z M610.1,134.1c107,0,195.5,87,195.5,195.5 c0,107-87,195.5-195.5,195.5l0,0c-107,0-195.5-87-195.5-195.5S503,134.1,610.1,134.1z" - fill={'#3c494e'} - /> - </g> - </g> - <path d="M973.1,445.1h-52.5c-6.6,0-12-5.4-12-12V284.6c0-6.6,5.4-12,12-12h52.5c6.6,0,12,5.4,12,12v148.5 C985.1,439.7,979.7,445.1,973.1,445.1z" /> - <path d="M299.3,446.7h-52.5c-6.6,0-12-5.4-12-12V286.2c0-6.6,5.4-12,12-12h52.5c6.6,0,12,5.4,12,12v148.5 C311.3,441.3,305.9,446.7,299.3,446.7z" /> - <path - d="M948.2,245.5h-25.8C897,106.4,767.3,0,610.1,0S322,106.4,297.4,245.5h-25.6c-37.2,0-67,28.6-67.1,61.3V411 c0,34.3,30,62.8,67.1,62.8H316c12.8,0,22.8-10,22.8-21.4V297.3c0.1-0.6,0.1-1.3,0.1-1.9c0-138.4,121.4-251.2,271.2-251.2 S881.2,157,881.2,295.4v127.8c-70.5,45.6-161.3,58.6-269.7,41.9c-12.9-1.4-24.3,7.2-25.7,18.6c-2.9,11.5,5.7,21.4,17.1,24.3 c113,18.2,208.2,4.5,286.8-39c3.9,3,8.9,4.8,14.3,4.8h44.3c37.1,0,67-28.6,67-61.3V308.3C1015.3,274,985.3,245.5,948.2,245.5z M293.1,431.1h-20c-11.4,0-20-8.6-20-18.6V308.4c0-10,8.6-18.6,20-18.6h20V431.1z M966.9,410.9c0,10-8.6,18.6-20,18.6h-20V288.2h20 c11.4,0,20,8.6,20,18.6V410.9z" - fill={'#3c494e'} - /> - <g id="Layer_2_1_"> - <g> - <g> - <path - d="M480.7,883.4c20.9-38.5,58.9-66.6,103.4-74.2l-8.8-50.6C514.8,769,463.7,807,435.1,858.7L480.7,883.4z" - fill={CARIBBEAN_GREEN} - /> - <path - d="M482.9,1030.2c-13.2-22-20.9-47.8-20.9-75.9c0-18.1,3.3-35.2,9.3-51.1L423,885.6 c-7.7,21.5-12.1,44.6-12.1,68.8c0,37.4,10.5,72.6,28.1,102.3L482.9,1030.2z" - fill={CARIBBEAN_GREEN} - /> - <path - d="M610.9,1101.8h-1.7c-45.7,0-86.3-20.9-113.9-53.9l-39.6,33c36.3,44,91.9,72.6,153.4,72.6c0.5,0,1.7,0,2.2,0 L610.9,1101.8z" - fill={CARIBBEAN_GREEN} - /> - <path - d="M737.4,1026.9c-21.5,38-60,65.5-104.5,72.6l8.2,51.1c60.5-9.9,111.6-46.8,140.8-98.4L737.4,1026.9z" - fill={CARIBBEAN_GREEN} - /> - <path - d="M736.3,880.1c12.7,22,19.8,46.8,19.8,74.2c0,18.7-3.3,36.3-9.9,52.8l48.4,18.7c8.2-22,13.2-46.2,13.2-70.9 c0-36.3-9.9-71-27-100.1L736.3,880.1z" - fill={CARIBBEAN_GREEN} - /> - </g> - <g> - <g> - <g> - <rect width="48.4" height="74.6" x="687.3" y="778.1" fill="none" /> - <g> - <polygon - points="698.3 852.7 687.3 841.6 713.5 815.4 687.3 789.2 698.3 778.1 735.6 815.4" - fill="#20bdab" - /> - </g> - </g> - <g> - <rect width="48.4" height="74.6" x="612.6" y="778.1" fill="none" /> - <g> - <polygon - points="623.7 852.7 612.6 841.6 638.9 815.4 612.6 789.2 623.7 778.1 661 815.4" - fill="#20bdab" - /> - </g> - </g> - </g> - </g> - </g> - </g> - </svg> - ); -}; - -export default MesheryOperator; diff --git a/src/icons/MesheryOperator/index.ts b/src/icons/MesheryOperator/index.ts deleted file mode 100644 index e74098485..000000000 --- a/src/icons/MesheryOperator/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as MesheryOperator } from './MesheryOperator'; diff --git a/src/icons/ModifiedApplicationFileIcon.tsx b/src/icons/ModifiedApplicationFileIcon.tsx deleted file mode 100644 index 25dd92868..000000000 --- a/src/icons/ModifiedApplicationFileIcon.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from './types'; - -export const ModifiedApplicationFileIcon: FC<IconProps> = ({ width, height, ...props }) => ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 76 82" - {...props} - > - <g clipPath="url(#clip0_8624_30273)"> - <path - d="M30.3341 35.3818C24.2675 33.7126 17.5869 46.1341 10.9014 58.5584C4.21593 70.9826 -2.46469 83.4041 -8.53516 81.7339" - stroke="#BF9000" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M15.75 62C9.50294 62 6.37941 66.9993 3.25196 72C0.12451 77.0007 -2.99902 82 -9.25 82" - stroke="#BF9000" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M24.8629 48.4329C22.112 48.4318 19.474 47.3386 17.5288 45.3933C15.5836 43.4481 14.4903 40.8101 14.4893 38.0592C14.4913 35.3089 15.5851 32.672 17.5302 30.7276C19.4753 28.7832 22.1127 27.6905 24.8629 27.6895C26.2247 27.6895 27.5732 27.9577 28.8313 28.4788C30.0894 28.9999 31.2325 29.7638 32.1955 30.7267C33.1584 31.6896 33.9222 32.8328 34.4433 34.0909C34.9645 35.349 35.2327 36.6974 35.2327 38.0592C35.2327 40.8098 34.1403 43.4478 32.1957 45.3931C30.2511 47.3384 27.6135 48.4318 24.8629 48.4329Z" - fill="#00B39F" - /> - <path - d="M53.193 48.4329C50.4421 48.4318 47.8041 47.3386 45.8589 45.3933C43.9137 43.4481 42.8204 40.8101 42.8193 38.0592C42.8214 35.3089 43.9152 32.672 45.8603 30.7276C47.8054 28.7832 50.4428 27.6905 53.193 27.6895C55.9432 27.6895 58.5808 28.782 60.5255 30.7267C62.4702 32.6714 63.5628 35.309 63.5628 38.0592C63.5628 40.8098 62.4704 43.4478 60.5258 45.3931C58.5812 47.3384 55.9436 48.4318 53.193 48.4329Z" - fill="#00B39F" - /> - <path - d="M42.8199 64.0529C40.9331 64.0529 39.9896 57.5555 39.0462 51.0621C38.1028 44.5687 37.1712 38.0674 35.2646 38.0674" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M35.2324 38.0596C37.1232 38.0596 38.0666 38.0951 39.0101 38.1267C39.9535 38.1583 40.8969 38.1938 42.7877 38.1938" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M53.1934 53.6717C53.1934 52.3651 53.2249 51.698 53.2565 51.0586C53.2881 50.4191 53.3236 49.748 53.3236 48.4375" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M53.2047 22.4475C50.4545 22.4475 47.8169 21.355 45.8722 19.4103C43.9275 17.4656 42.835 14.828 42.835 12.0777C42.835 9.32752 43.9275 6.68994 45.8722 4.74523C47.8169 2.80053 50.4545 1.70801 53.2047 1.70801C55.9553 1.70801 58.5933 2.8004 60.5386 4.74499C62.4839 6.68958 63.5773 9.32716 63.5784 12.0777C63.5773 14.8283 62.4839 17.4659 60.5386 19.4105C58.5933 21.3551 55.9553 22.4475 53.2047 22.4475Z" - fill="#00B39F" - /> - <path - d="M53.1934 27.6893C53.1934 26.3827 53.2249 25.7156 53.2565 25.0761C53.2881 24.4367 53.3236 23.7656 53.3236 22.4551" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M35.2324 38.0597C37.139 38.0597 38.0903 31.5662 39.0416 25.0728C39.9929 18.5794 40.9482 12.082 42.8548 12.082" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M26.9046 67.8707C27.1496 65.9799 33.7114 65.8707 40.2732 65.7614C46.835 65.6522 53.4013 65.5396 53.6462 63.6488" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M25.3737 73.7355C22.6245 73.7355 19.9877 72.6442 18.0426 70.7013C16.0975 68.7584 15.0031 66.1229 15 63.3737C15.001 60.6227 16.0943 57.9848 18.0395 56.0395C19.9848 54.0943 22.6227 53.001 25.3737 53C28.1243 53.001 30.7618 54.0944 32.7064 56.0398C34.651 57.9851 35.7434 60.6231 35.7434 63.3737C35.7413 66.1225 34.6479 68.7581 32.7034 70.7011C30.7589 72.6441 28.1225 73.7355 25.3737 73.7355Z" - fill="#00B39F" - /> - <path - d="M53.193 74.4142C50.4438 74.4142 47.807 73.3229 45.8619 71.38C43.9168 69.4372 42.8225 66.8016 42.8193 64.0524C42.8204 61.3014 43.9137 58.6635 45.8589 56.7182C47.8041 54.773 50.4421 53.6798 53.193 53.6787C55.9436 53.6798 58.5812 54.7732 60.5258 56.7185C62.4704 58.6638 63.5628 61.3018 63.5628 64.0524C63.5607 66.8013 62.4672 69.4368 60.5227 71.3798C58.5783 73.3228 55.9419 74.4142 53.193 74.4142Z" - fill="#00B39F" - /> - </g> - <defs> - <clipPath id="clip0_8624_30273"> - <rect width="75" height="82" fill="white" transform="translate(0.75)" /> - </clipPath> - </defs> - </svg> -); - -export default ModifiedApplicationFileIcon; diff --git a/src/icons/MoveFile/MoveFileIcon.tsx b/src/icons/MoveFile/MoveFileIcon.tsx deleted file mode 100644 index e0fd0c90b..000000000 --- a/src/icons/MoveFile/MoveFileIcon.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { useTheme } from '../../theme'; -import { IconProps } from '../types'; - -export const MoveFileIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill, - style = {} -}) => { - const theme = useTheme(); - - return ( - <> - <svg - xmlns="http://www.w3.org/2000/svg" - width={width || '24'} - height={height || '24'} - viewBox="0 0 24 24" - > - <g> - <path - fill={fill || theme.palette.icon.default} - fill-rule="evenodd" - d="M2 6a3 3 0 0 1 3-3h4.172a3 3 0 0 1 2.12.879L12.415 5H19a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3zm11.08 10.664 2.667-3a1 1 0 0 0 0-1.328l-2.666-3a1 1 0 1 0-1.495 1.328L12.773 12H9a1 1 0 1 0 0 2h3.773l-1.187 1.336a1 1 0 0 0 1.495 1.328z" - clip-rule="evenodd" - opacity="1" - data-original="#000000" - style={style} - ></path> - </g> - </svg> - </> - ); -}; - -export default MoveFileIcon; diff --git a/src/icons/MoveFile/index.ts b/src/icons/MoveFile/index.ts deleted file mode 100644 index 282500179..000000000 --- a/src/icons/MoveFile/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import MoveFileIcon from './MoveFileIcon'; - -export { MoveFileIcon }; diff --git a/src/icons/Open/OpenFileIcon.tsx b/src/icons/Open/OpenFileIcon.tsx deleted file mode 100644 index 82869c471..000000000 --- a/src/icons/Open/OpenFileIcon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const OpenFileIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_WIDTH, - fill = 'currentColor', - ...props -}) => ( - <svg - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - viewBox="0 0 256 256" - fill={fill} - {...props} - > - <path - d="M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Z" - fill={fill} - ></path> - </svg> -); - -export default OpenFileIcon; diff --git a/src/icons/Open/OpenIcon.tsx b/src/icons/Open/OpenIcon.tsx deleted file mode 100644 index 92a2824c1..000000000 --- a/src/icons/Open/OpenIcon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const OpenIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = '#293B43', - style = {} -}) => ( - <svg - width={width} - height={height} - viewBox="0 0 17 16" - fill={fill} - style={style} - xmlns="http://www.w3.org/2000/svg" - > - <path d="M13.0651 12.6667H3.73177V3.33333H8.39844V2H3.73177C2.99177 2 2.39844 2.6 2.39844 3.33333V12.6667C2.39844 13.4 2.99177 14 3.73177 14H13.0651C13.7984 14 14.3984 13.4 14.3984 12.6667V8H13.0651V12.6667ZM9.73177 2V3.33333H12.1251L5.57177 9.88667L6.51177 10.8267L13.0651 4.27333V6.66667H14.3984V2H9.73177Z" /> - <clipPath id="clip0_32146_29398"> - <rect width="16" height="16" fill="white" transform="translate(0.398438)" /> - </clipPath> - </svg> -); - -export default OpenIcon; diff --git a/src/icons/Open/index.tsx b/src/icons/Open/index.tsx deleted file mode 100644 index 96932605e..000000000 --- a/src/icons/Open/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import OpenFileIcon from './OpenFileIcon'; -import OpenIcon from './OpenIcon'; -export { OpenFileIcon, OpenIcon }; diff --git a/src/icons/OpenInNew/OpenInNewIcon.tsx b/src/icons/OpenInNew/OpenInNewIcon.tsx deleted file mode 100644 index 2ca3b3d2b..000000000 --- a/src/icons/OpenInNew/OpenInNewIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -const OpenInNewIcon: FC<IconProps> = ({ - width = '24px', - height = '24px', - fill, - style = {}, - onClick -}) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 -960 960 960" - width={width} - fill={fill} - onClick={onClick} - > - <path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z" /> - </svg> -); - -export default OpenInNewIcon; diff --git a/src/icons/OpenInNew/index.ts b/src/icons/OpenInNew/index.ts deleted file mode 100644 index 4c17a13ce..000000000 --- a/src/icons/OpenInNew/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import OpenInNewIcon from './OpenInNewIcon'; -export { OpenInNewIcon }; diff --git a/src/icons/Organization/OrgIcon.tsx b/src/icons/Organization/OrgIcon.tsx deleted file mode 100644 index 94ea08d68..000000000 --- a/src/icons/Organization/OrgIcon.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import React from 'react'; - -interface OrgIconProps { - width?: number; - height?: number; - fill?: string; - secondaryFill?: string; -} - -const OrgIcon: React.FC<OrgIconProps> = ({ - width = 24, - height = 24, - fill = '#F6F8F8', - secondaryFill = '#294957' -}) => ( - <svg - width={width} - height={height} - viewBox="0 0 154 142" - fill="none" - xmlns="http://www.w3.org/2000/svg" - > - <path - d="M76.6481 101.891C67.2607 101.891 59.7891 109.554 59.7891 118.75V140.781H93.6987V118.941C93.5072 109.554 86.0355 101.891 76.6481 101.891Z" - fill={fill} - /> - <path - d="M113.156 140.987H150.706V56.1172H113.156V140.987ZM124.076 63.3972C124.076 62.8225 124.459 62.4393 125.034 62.4393H139.02C139.594 62.4393 139.977 62.8225 139.977 63.3972V74.7005C139.977 75.2752 139.594 75.6584 139.02 75.6584H125.226C124.651 75.6584 124.268 75.2752 124.268 74.7005V63.3972H124.076ZM124.076 83.13C124.076 82.5552 124.459 82.1721 125.034 82.1721H139.02C139.594 82.1721 139.977 82.5552 139.977 83.13V94.4332C139.977 95.008 139.594 95.3911 139.02 95.3911H125.226C124.651 95.3911 124.268 95.008 124.268 94.4332V83.13H124.076ZM124.076 102.671C124.076 102.096 124.459 101.713 125.034 101.713H139.02C139.594 101.713 139.977 102.096 139.977 102.671V113.974C139.977 114.549 139.594 114.932 139.02 114.932H125.226C124.651 114.932 124.268 114.549 124.268 113.974V102.671H124.076ZM124.076 122.212C124.076 121.638 124.459 121.254 125.034 121.254H139.02C139.594 121.254 139.977 121.638 139.977 122.212V133.516C139.977 134.09 139.594 134.473 139.02 134.473H125.226C124.651 134.473 124.268 134.09 124.268 133.516V122.212H124.076Z" - fill={secondaryFill} - /> - <path d="M138.065 64.5625H126.188V73.9499H138.065V64.5625Z" fill={fill} /> - <path d="M138.065 84.0859H126.188V93.4734H138.065V84.0859Z" fill={fill} /> - <path d="M138.065 103.609H126.188V112.997H138.065V103.609Z" fill={fill} /> - <path d="M138.065 123.375H126.188V132.762H138.065V123.375Z" fill={fill} /> - <path d="M153.262 47.6719H110.156V54.1856H153.262V47.6719Z" fill={secondaryFill} /> - <path d="M95.2488 0H57.8906V6.51373H95.2488V0Z" fill={secondaryFill} /> - <path d="M113.798 8.625H39.6562V15.1387H113.798V8.625Z" fill={secondaryFill} /> - <path - d="M45.0391 141.03H57.6833V118.999C57.6833 108.653 66.1129 100.032 76.6498 100.032C86.9951 100.032 95.6162 108.462 95.6162 118.999V141.03H108.261V17.0781H45.0391V141.03ZM81.6309 24.3582C81.6309 23.7834 82.014 23.4003 82.5888 23.4003H96.3825C96.9573 23.4003 97.3404 23.7834 97.3404 24.3582V35.6614C97.3404 36.2361 96.9573 36.6193 96.3825 36.6193H82.5888C82.014 36.6193 81.6309 36.2361 81.6309 35.6614V24.3582ZM81.6309 44.0909C81.6309 43.5162 82.014 43.133 82.5888 43.133H96.3825C96.9573 43.133 97.3404 43.5162 97.3404 44.0909V55.3941C97.3404 55.9689 96.9573 56.3521 96.3825 56.3521H82.5888C82.014 56.3521 81.6309 55.9689 81.6309 55.3941V44.0909ZM81.6309 61.7163C81.6309 61.1416 82.014 60.7584 82.5888 60.7584H96.3825C96.9573 60.7584 97.3404 61.1416 97.3404 61.7163V73.0195C97.3404 73.5943 96.9573 73.9774 96.3825 73.9774H82.5888C82.014 73.9774 81.6309 73.5943 81.6309 73.0195V61.7163ZM81.6309 81.449C81.6309 80.8743 82.014 80.4911 82.5888 80.4911H96.3825C96.9573 80.4911 97.3404 80.8743 97.3404 81.449V92.7523C97.3404 93.327 96.9573 93.7102 96.3825 93.7102H82.5888C82.014 93.7102 81.6309 93.327 81.6309 92.7523V81.449ZM55.9591 24.3582C55.9591 23.7834 56.3423 23.4003 56.917 23.4003H70.7108C71.2855 23.4003 71.6687 23.7834 71.6687 24.3582V35.6614C71.6687 36.2361 71.2855 36.6193 70.7108 36.6193H56.917C56.3423 36.6193 55.9591 36.2361 55.9591 35.6614V24.3582ZM55.9591 44.0909C55.9591 43.5162 56.3423 43.133 56.917 43.133H70.7108C71.2855 43.133 71.6687 43.5162 71.6687 44.0909V55.3941C71.6687 55.9689 71.2855 56.3521 70.7108 56.3521H56.917C56.3423 56.3521 55.9591 55.9689 55.9591 55.3941V44.0909ZM55.9591 61.7163C55.9591 61.1416 56.3423 60.7584 56.917 60.7584H70.7108C71.2855 60.7584 71.6687 61.1416 71.6687 61.7163V73.0195C71.6687 73.5943 71.2855 73.9774 70.7108 73.9774H56.917C56.3423 73.9774 55.9591 73.5943 55.9591 73.0195V61.7163ZM55.9591 81.449C55.9591 80.8743 56.3423 80.4911 56.917 80.4911H70.7108C71.2855 80.4911 71.6687 80.8743 71.6687 81.449V92.7523C71.6687 93.327 71.2855 93.7102 70.7108 93.7102H56.917C56.3423 93.7102 55.9591 93.327 55.9591 92.7523V81.449Z" - fill="#00b39f" - /> - <path d="M69.7686 82.375H57.8906V91.7624H69.7686V82.375Z" fill={fill} /> - <path d="M95.4092 82.375H83.5312V91.7624H95.4092V82.375Z" fill={fill} /> - <path d="M95.4092 45.0391H83.5312V54.4265H95.4092V45.0391Z" fill={fill} /> - <path d="M95.4092 25.4609H83.5312V34.8484H95.4092V25.4609Z" fill={fill} /> - <path d="M69.7686 25.4609H57.8906V34.8484H69.7686V25.4609Z" fill={fill} /> - <path d="M69.7686 45.0391H57.8906V54.4265H69.7686V45.0391Z" fill={fill} /> - <path d="M69.7686 62.8516H57.8906V72.239H69.7686V62.8516Z" fill={fill} /> - <path d="M95.4092 62.8516H83.5312V72.239H95.4092V62.8516Z" fill={fill} /> - <path - d="M2.75781 140.987H40.3075V56.1172H2.75781V140.987ZM13.6779 63.3972C13.6779 62.8225 14.061 62.4393 14.6358 62.4393H28.4296C29.0043 62.4393 29.3875 62.8225 29.3875 63.3972V74.7005C29.3875 75.2752 29.0043 75.6584 28.4296 75.6584H14.6358C14.061 75.6584 13.6779 75.2752 13.6779 74.7005V63.3972ZM13.6779 83.13C13.6779 82.5552 14.061 82.1721 14.6358 82.1721H28.4296C29.0043 82.1721 29.3875 82.5552 29.3875 83.13V94.4332C29.3875 95.008 29.0043 95.3911 28.4296 95.3911H14.6358C14.061 95.3911 13.6779 95.008 13.6779 94.4332V83.13ZM13.6779 102.671C13.6779 102.096 14.061 101.713 14.6358 101.713H28.4296C29.0043 101.713 29.3875 102.096 29.3875 102.671V113.974C29.3875 114.549 29.0043 114.932 28.4296 114.932H14.6358C14.061 114.932 13.6779 114.549 13.6779 113.974V102.671ZM13.6779 122.212C13.6779 121.638 14.061 121.254 14.6358 121.254H28.4296C29.0043 121.254 29.3875 121.638 29.3875 122.212V133.516C29.3875 134.09 29.0043 134.473 28.4296 134.473H14.6358C14.061 134.473 13.6779 134.09 13.6779 133.516V122.212Z" - fill={secondaryFill} - /> - <path d="M27.6748 123.375H15.7969V132.762H27.6748V123.375Z" fill={fill} /> - <path d="M27.6748 103.609H15.7969V112.997H27.6748V103.609Z" fill={fill} /> - <path d="M27.6748 64.5625H15.7969V73.9499H27.6748V64.5625Z" fill={fill} /> - <path d="M27.6748 84.0859H15.7969V93.4734H27.6748V84.0859Z" fill={fill} /> - <path d="M43.1055 47.6719H0V54.1856H43.1055V47.6719Z" fill={secondaryFill} /> - </svg> -); - -export default OrgIcon; diff --git a/src/icons/Organization/index.ts b/src/icons/Organization/index.ts deleted file mode 100644 index 064cfa999..000000000 --- a/src/icons/Organization/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import OrgIcon from './OrgIcon'; -export { OrgIcon }; diff --git a/src/icons/OriginalApplicationFileIcon.tsx b/src/icons/OriginalApplicationFileIcon.tsx deleted file mode 100644 index 694b1fbbf..000000000 --- a/src/icons/OriginalApplicationFileIcon.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from './types'; - -export const OriginalApplicationFileIcon: FC<IconProps> = ({ width, height, ...props }) => ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 76 75" - {...props} - > - <g clipPath="url(#clip0_8624_30319)"> - <path - d="M13.4898 37.5593C7.19773 37.5593 4.05168 23.8106 0.901676 10.058C-2.24832 -3.69468 -5.39438 -17.4434 -11.6904 -17.4434" - stroke="#BF9000" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M52.193 73.9142C49.4438 73.9142 46.807 72.8229 44.8619 70.88C42.9168 68.9372 41.8225 66.3016 41.8193 63.5524C41.8204 60.8014 42.9137 58.1635 44.8589 56.2182C46.8041 54.273 49.4421 53.1798 52.193 53.1787C54.9436 53.1798 57.5812 54.2732 59.5258 56.2185C61.4704 58.1638 62.5628 60.8018 62.5628 63.5524C62.5607 66.3013 61.4672 68.9368 59.5227 70.8798C57.5783 72.8228 54.9419 73.9142 52.193 73.9142Z" - fill="#00B39F" - /> - <path - d="M23.8629 47.9329C21.112 47.9318 18.474 46.8386 16.5288 44.8933C14.5836 42.9481 13.4903 40.3101 13.4893 37.5592C13.4913 34.8089 14.5851 32.172 16.5302 30.2276C18.4753 28.2832 21.1127 27.1905 23.8629 27.1895C25.2247 27.1895 26.5732 27.4577 27.8313 27.9788C29.0894 28.4999 30.2325 29.2638 31.1955 30.2267C32.1584 31.1896 32.9222 32.3328 33.4433 33.5909C33.9645 34.849 34.2327 36.1974 34.2327 37.5592C34.2327 40.3098 33.1403 42.9478 31.1957 44.8931C29.2511 46.8384 26.6135 47.9318 23.8629 47.9329Z" - fill="#00B39F" - /> - <path - d="M52.193 47.9329C49.4421 47.9318 46.8041 46.8386 44.8589 44.8933C42.9137 42.9481 41.8204 40.3101 41.8193 37.5592C41.8214 34.8089 42.9152 32.172 44.8603 30.2276C46.8054 28.2832 49.4428 27.1905 52.193 27.1895C54.9432 27.1895 57.5808 28.282 59.5255 30.2267C61.4702 32.1714 62.5628 34.809 62.5628 37.5592C62.5628 40.3098 61.4704 42.9478 59.5258 44.8931C57.5812 46.8384 54.9436 47.9318 52.193 47.9329Z" - fill="#00B39F" - /> - <path - d="M41.8199 63.5529C39.9331 63.5529 38.9896 57.0555 38.0462 50.5621C37.1028 44.0687 36.1712 37.5674 34.2646 37.5674" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M34.2324 37.5596C36.1232 37.5596 37.0666 37.5951 38.0101 37.6267C38.9535 37.6583 39.8969 37.6938 41.7877 37.6938" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M52.1934 53.1717C52.1934 51.8651 52.2249 51.198 52.2565 50.5586C52.2881 49.9191 52.3236 49.248 52.3236 47.9375" - stroke="#CD502F" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M52.2047 21.9475C49.4545 21.9475 46.8169 20.855 44.8722 18.9103C42.9275 16.9656 41.835 14.328 41.835 11.5777C41.835 8.82752 42.9275 6.18994 44.8722 4.24523C46.8169 2.30053 49.4545 1.20801 52.2047 1.20801C54.9553 1.20801 57.5933 2.3004 59.5386 4.24499C61.4839 6.18958 62.5773 8.82716 62.5784 11.5777C62.5773 14.3283 61.4839 16.9659 59.5386 18.9105C57.5933 20.8551 54.9553 21.9475 52.2047 21.9475Z" - fill="#00B39F" - /> - <path - d="M52.1934 27.1893C52.1934 25.8827 52.2249 25.2156 52.2565 24.5761C52.2881 23.9367 52.3236 23.2656 52.3236 21.9551" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - <path - d="M34.2324 37.5597C36.139 37.5597 37.0903 31.0662 38.0416 24.5728C38.9929 18.0794 39.9482 11.582 41.8548 11.582" - stroke="#359AC0" - strokeWidth="2" - strokeLinejoin="round" - /> - </g> - <defs> - <clipPath id="clip0_8624_30319"> - <rect width="75" height="75" fill="white" transform="translate(0.25)" /> - </clipPath> - </defs> - </svg> -); - -export default OriginalApplicationFileIcon; diff --git a/src/icons/PanTool/PanToolIcon.tsx b/src/icons/PanTool/PanToolIcon.tsx deleted file mode 100644 index 5ecc61550..000000000 --- a/src/icons/PanTool/PanToolIcon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const PanToolIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - enableBackground="new 0 0 24 24" - {...props} - > - <g> - <rect fill="none" height="24" width="24" /> - </g> - <g> - <g> - <g> - <path d="M23,5.5V20c0,2.2-1.8,4-4,4h-7.3c-1.08,0-2.1-0.43-2.85-1.19L1,14.83c0,0,1.26-1.23,1.3-1.25 c0.22-0.19,0.49-0.29,0.79-0.29c0.22,0,0.42,0.06,0.6,0.16C3.73,13.46,8,15.91,8,15.91V4c0-0.83,0.67-1.5,1.5-1.5S11,3.17,11,4v7 h1V1.5C12,0.67,12.67,0,13.5,0S15,0.67,15,1.5V11h1V2.5C16,1.67,16.67,1,17.5,1S19,1.67,19,2.5V11h1V5.5C20,4.67,20.67,4,21.5,4 S23,4.67,23,5.5z" /> - </g> - </g> - </g> - </svg> - ); -}; - -export default PanToolIcon; diff --git a/src/icons/PanTool/index.ts b/src/icons/PanTool/index.ts deleted file mode 100644 index 2b4c392a4..000000000 --- a/src/icons/PanTool/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as PanToolIcon } from './PanToolIcon'; diff --git a/src/icons/PanelDragHandle/PanelDragHandleIcon.tsx b/src/icons/PanelDragHandle/PanelDragHandleIcon.tsx deleted file mode 100644 index 31f4a9e22..000000000 --- a/src/icons/PanelDragHandle/PanelDragHandleIcon.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const PanelDragHandleIcon: FC<IconProps> = ({ - height = 24, - width = 24, - fill = '#E8EFF3', - ...props -}) => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 24 24" - fill="none" - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <g clipPath="url(#clip0_34897_172744)"> - <path - d="M6 10C4.9 10 4 10.9 4 12C4 13.1 4.9 14 6 14C7.1 14 8 13.1 8 12C8 10.9 7.1 10 6 10ZM18 10C16.9 10 16 10.9 16 12C16 13.1 16.9 14 18 14C19.1 14 20 13.1 20 12C20 10.9 19.1 10 18 10ZM12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10Z" - fill={fill} - /> - </g> - <defs> - <clipPath id="clip0_34897_172744"> - <rect width="24" height="24" fill="white" /> - </clipPath> - </defs> - </svg> - ); -}; - -export default PanelDragHandleIcon; diff --git a/src/icons/PanelDragHandle/index.tsx b/src/icons/PanelDragHandle/index.tsx deleted file mode 100644 index 3abe60e39..000000000 --- a/src/icons/PanelDragHandle/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as PanelDragHandleIcon } from './PanelDragHandleIcon'; diff --git a/src/icons/Pattern/OutlinedPatternIcon.tsx b/src/icons/Pattern/OutlinedPatternIcon.tsx deleted file mode 100644 index 9c0f74e0e..000000000 --- a/src/icons/Pattern/OutlinedPatternIcon.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -const OutlinedPatternIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - viewBox="0 0 57 57" - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path - d="M38.6219 9.30732C39.8705 10.8693 40.7821 12.6188 41.4814 14.4682C42.3804 16.855 42.7925 19.3542 42.2805 21.8785C41.5937 25.2649 39.6083 27.6517 36.2993 28.8013C35.0132 29.2512 33.6771 29.4261 32.3535 28.8638C32.1693 28.8 31.9965 28.7072 31.8415 28.5889C31.8217 29.3773 31.5255 30.1337 31.0049 30.7257C31.1804 30.6511 31.3652 30.6007 31.5543 30.5758C31.7356 30.5386 31.9191 30.5135 32.1037 30.5008C33.8769 30.3509 35.5876 29.976 37.1984 29.2012C39.6957 28.0016 41.7935 26.3021 43.5667 24.1902C44.5866 23.0042 45.4394 21.684 46.1015 20.2665C47.063 18.1671 47.6124 15.9803 47.8871 13.681C48.1119 11.7191 48.0494 9.79467 47.8621 7.85777C47.8122 7.39541 47.6124 7.19547 47.1878 7.12049C46.1015 6.93305 45.0276 6.70812 43.9537 6.4582C41.1692 5.7834 38.3721 5.20858 35.5751 4.55878C34.5886 4.33385 33.5897 4.12391 32.5907 3.89648C33.315 4.59627 34.1016 5.1586 34.8633 5.77091C36.2119 6.83308 37.5355 7.94524 38.6219 9.30732Z" - fillOpacity="0.8" - /> - <path d="M8.00372 33.4249C8.85283 29.8385 10.2638 26.5396 13.1858 24.1153C15.8455 21.9035 18.8423 21.2162 22.1513 22.3658C23.8246 22.9407 25.2606 23.8779 26.0223 25.5773C26.0949 25.7287 26.1493 25.8881 26.1846 26.0522C26.7023 25.5532 27.3688 25.2373 28.0826 25.1525C28.0451 25.1275 27.9952 25.09 27.9452 25.0525C26.9338 24.2403 25.9598 23.3405 24.7861 22.7407C20.5905 20.6039 16.1826 20.329 11.6998 21.4661C6.94234 22.6782 3.2712 25.5649 0.261872 29.3637C-0.0752731 29.7886 -0.0502994 30.0635 0.224411 30.5008C2.55945 34.1372 4.88201 37.7986 7.20456 41.4475C7.51674 41.9348 7.82891 42.4097 8.25346 43.047C8.30341 41.9723 8.06616 41.1101 7.95378 40.2478C7.60414 37.961 7.46679 35.6992 8.00372 33.4249Z" /> - <path d="M15.159 8.18269C16.7748 7.90976 18.405 7.73035 20.0414 7.64535C21.5273 7.55788 22.9758 7.85778 24.3993 8.23267C27.7957 9.1199 30.8425 10.6069 33.0652 13.4186C35.2004 16.1053 35.7124 19.1043 34.5636 22.3408C33.9767 23.9903 32.9903 25.3649 31.3045 26.1022C31.1875 26.1601 31.0602 26.1941 30.9299 26.2022C31.4397 26.7376 31.7561 27.4281 31.829 28.1641C31.9052 28.0394 31.993 27.9223 32.0912 27.8142C33.3274 26.3396 34.4512 24.8026 35.0881 22.9531C35.9364 20.5367 36.2889 17.9739 36.1245 15.418C36.0029 12.9268 35.374 10.4869 34.2764 8.24767C32.7031 5.06114 30.4305 2.44945 27.6584 0.237624C27.2463 -0.0872761 26.9466 -0.0497876 26.5096 0.225128C22.9383 2.52442 19.3546 4.78623 15.7834 7.07303C15.234 7.42292 14.6346 7.73532 14.0977 8.23517C14.4523 8.24888 14.8075 8.23132 15.159 8.18269V8.18269Z" /> - <path - d="M5.1571 23.0283C6.55563 21.2413 7.87923 19.3919 9.76475 18.0673C13.2361 15.6181 17.0071 14.0185 21.3526 14.6059C24.8489 15.0682 27.3962 16.9676 28.6698 20.3291C29.2193 21.7787 29.3941 23.2657 28.7697 24.7652C28.7324 24.8671 28.682 24.9637 28.6199 25.0527C29.3394 25.0679 30.0351 25.3131 30.6053 25.7524L30.5679 25.6025C30.5388 25.4164 30.5221 25.2285 30.5179 25.0402C30.393 23.5656 30.1433 22.1286 29.6064 20.729C28.4701 17.7799 26.5346 15.4431 24.1496 13.4062C20.6283 10.4197 16.5076 9.14505 11.9874 9.00759C10.7013 8.9701 9.41512 8.9576 8.12897 9.13255C7.2424 9.25751 7.17997 9.25751 6.99267 10.1322C6.19351 13.9186 5.38602 17.7008 4.57021 21.4788C4.35794 22.466 4.15815 23.4532 3.9209 24.5653C4.48281 24.078 4.78249 23.5281 5.1571 23.0283Z" - fillOpacity="0.8" - /> - <path d="M56.7776 26.5271C54.4301 22.8657 52.1075 19.1919 49.76 15.543C49.4478 15.0556 49.1981 14.5183 48.6861 13.981C48.836 15.2556 48.9484 16.3677 49.0982 17.4674C49.4229 19.7667 49.4228 22.0535 48.811 24.3278C47.8495 27.8892 46.2637 31.0507 43.2668 33.35C41.6311 34.6121 39.7331 35.187 37.6852 35.2119C36.2492 35.2244 34.9006 34.8121 33.627 34.1373C32.5281 33.55 31.5791 32.7752 31.0297 31.613C30.8549 31.2507 30.78 31.0257 30.8299 30.8758C30.2944 31.415 29.588 31.7507 28.832 31.8255C29.0325 31.9488 29.2206 32.0911 29.3939 32.2504C30.4428 33.1001 31.4917 33.9623 32.7279 34.5496C36.1618 36.1866 39.7955 36.5365 43.4916 35.9492C49.0607 35.0745 53.2938 31.9379 56.7526 27.6393C57.0773 27.2419 57.0398 26.927 56.7776 26.5271Z" /> - <path - d="M49.3851 37.0737C45.9263 40.5477 41.7931 42.4846 36.8109 42.4971C33.3395 42.5096 29.6559 40.2228 28.4197 36.8738C27.9077 35.4867 27.5706 34.0747 28.095 32.6126C28.2324 32.2252 28.3323 31.9753 28.4322 31.8504C27.6768 31.8399 26.9469 31.5759 26.3594 31.1006C26.4219 31.2864 26.4597 31.4797 26.4718 31.6754C26.5841 32.7501 26.6341 33.8372 26.9587 34.8744C28.6694 40.3977 32.3531 44.1716 37.5476 46.4584C40.8691 47.9204 44.4029 48.3703 48.0366 47.9829C49.6598 47.808 49.6723 47.8454 49.997 46.4209C50.8836 42.4971 51.7826 38.5608 52.6442 34.6245C52.794 33.9622 53.0563 33.3124 53.0438 32.4502C52.844 32.7251 52.7316 32.875 52.6192 33.025C51.6203 34.4496 50.6088 35.8491 49.3851 37.0737Z" - fillOpacity="0.8" - /> - <path - d="M18.9423 48.4077C17.3564 46.6332 16.2201 44.5714 15.4334 42.3471C14.6842 40.2102 14.2472 38.0234 14.5968 35.7366C15.1213 32.4126 16.7945 29.9384 19.9037 28.5513C21.4022 27.8765 22.988 27.5641 24.6238 28.1889C24.8022 28.25 24.9738 28.3296 25.1357 28.4263C25.151 27.7063 25.396 27.0101 25.835 26.4395C25.6976 26.4644 25.5728 26.4769 25.4354 26.4894C24.5474 26.5518 23.6635 26.6645 22.7882 26.8268C19.7664 27.4641 17.2565 29.0511 15.0464 31.138C12.1376 33.829 10.1644 37.3798 9.41478 41.2724C8.9278 43.6966 8.86536 46.1209 9.05267 48.5826C9.12759 49.5324 9.51468 49.8697 10.4637 50.0572C14.4345 50.8569 18.3679 51.8067 22.3262 52.6689C23.0005 52.8188 23.6623 53.0688 24.5488 53.0938C23.8995 52.5939 23.4001 52.2065 22.8881 51.8316C21.4896 50.782 20.1035 49.7198 18.9423 48.4077Z" - fillOpacity="0.8" - /> - <path d="M42.5805 48.7352C41.1695 48.9851 39.7585 49.1601 38.3225 49.2975C37.1612 49.41 35.9749 49.4725 34.8386 49.2975C33.1906 49.0681 31.579 48.6271 30.0437 47.9854C27.6587 46.9857 25.486 45.6612 23.8752 43.5743C21.9397 41.0501 21.2779 38.2509 22.2394 35.1769C22.7763 33.4399 23.6754 31.8904 25.4235 31.0531C25.7357 30.9032 25.948 30.8282 26.0978 30.8532C25.5721 30.3282 25.2379 29.6417 25.1488 28.9038C25.0726 29.0173 24.9892 29.1259 24.8991 29.2287C24.0875 30.2034 23.2633 31.1656 22.6764 32.3028C21.2654 35.0519 20.7535 37.976 20.8284 41.0501C20.8759 43.3194 21.3416 45.5604 22.2019 47.6605C23.7253 51.2844 26.1353 54.2335 29.2071 56.6828C29.6816 57.0701 30.0312 57.1076 30.5681 56.7577C33.6524 54.7584 36.7741 52.7965 39.8708 50.8221C40.8948 50.1723 41.9187 49.51 42.9551 48.8352C42.9077 48.7859 42.8477 48.7505 42.7817 48.7329C42.7157 48.7153 42.6461 48.7161 42.5805 48.7352V48.7352Z" /> - </svg> - ); -}; - -export default OutlinedPatternIcon; diff --git a/src/icons/Pattern/OutlinedPatternSwitchIcon.tsx b/src/icons/Pattern/OutlinedPatternSwitchIcon.tsx deleted file mode 100644 index 04a275ab7..000000000 --- a/src/icons/Pattern/OutlinedPatternSwitchIcon.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedPatternSwitchIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg width={width} height={height} xmlns="http://www.w3.org/2000/svg" {...props}> - <path - d="M38.6219 9.30732C39.8705 10.8693 40.7821 12.6188 41.4814 14.4682C42.3804 16.855 42.7925 19.3542 42.2805 21.8785C41.5937 25.2649 39.6083 27.6517 36.2993 28.8013C35.0132 29.2512 33.6771 29.4261 32.3535 28.8638C32.1693 28.8 31.9965 28.7072 31.8415 28.5889C31.8217 29.3773 31.5255 30.1337 31.0049 30.7257C31.1804 30.6511 31.3652 30.6007 31.5543 30.5758C31.7356 30.5386 31.9191 30.5135 32.1037 30.5008C33.8769 30.3509 35.5876 29.976 37.1984 29.2012C39.6957 28.0016 41.7935 26.3021 43.5667 24.1902C44.5866 23.0042 45.4394 21.684 46.1015 20.2665C47.063 18.1671 47.6124 15.9803 47.8871 13.681C48.1119 11.7191 48.0494 9.79467 47.8621 7.85777C47.8122 7.39541 47.6124 7.19547 47.1878 7.12049C46.1015 6.93305 45.0276 6.70812 43.9537 6.4582C41.1692 5.7834 38.3721 5.20858 35.5751 4.55878C34.5886 4.33385 33.5897 4.12391 32.5907 3.89648C33.315 4.59627 34.1016 5.1586 34.8633 5.77091C36.2119 6.83308 37.5355 7.94524 38.6219 9.30732Z" - fillOpacity="0.8" - /> - <path d="M8.00372 33.4249C8.85283 29.8385 10.2638 26.5396 13.1858 24.1153C15.8455 21.9035 18.8423 21.2162 22.1513 22.3658C23.8246 22.9407 25.2606 23.8779 26.0223 25.5773C26.0949 25.7287 26.1493 25.8881 26.1846 26.0522C26.7023 25.5532 27.3688 25.2373 28.0826 25.1525C28.0451 25.1275 27.9952 25.09 27.9452 25.0525C26.9338 24.2403 25.9598 23.3405 24.7861 22.7407C20.5905 20.6039 16.1826 20.329 11.6998 21.4661C6.94234 22.6782 3.2712 25.5649 0.261872 29.3637C-0.0752731 29.7886 -0.0502994 30.0635 0.224411 30.5008C2.55945 34.1372 4.88201 37.7986 7.20456 41.4475C7.51674 41.9348 7.82891 42.4097 8.25346 43.047C8.30341 41.9723 8.06616 41.1101 7.95378 40.2478C7.60414 37.961 7.46679 35.6992 8.00372 33.4249Z" /> - <path d="M15.159 8.18269C16.7748 7.90976 18.405 7.73035 20.0414 7.64535C21.5273 7.55788 22.9758 7.85778 24.3993 8.23267C27.7957 9.1199 30.8425 10.6069 33.0652 13.4186C35.2004 16.1053 35.7124 19.1043 34.5636 22.3408C33.9767 23.9903 32.9903 25.3649 31.3045 26.1022C31.1875 26.1601 31.0602 26.1941 30.9299 26.2022C31.4397 26.7376 31.7561 27.4281 31.829 28.1641C31.9052 28.0394 31.993 27.9223 32.0912 27.8142C33.3274 26.3396 34.4512 24.8026 35.0881 22.9531C35.9364 20.5367 36.2889 17.9739 36.1245 15.418C36.0029 12.9268 35.374 10.4869 34.2764 8.24767C32.7031 5.06114 30.4305 2.44945 27.6584 0.237624C27.2463 -0.0872761 26.9466 -0.0497876 26.5096 0.225128C22.9383 2.52442 19.3546 4.78623 15.7834 7.07303C15.234 7.42292 14.6346 7.73532 14.0977 8.23517C14.4523 8.24888 14.8075 8.23132 15.159 8.18269V8.18269Z" /> - <path - d="M5.1571 23.0283C6.55563 21.2413 7.87923 19.3919 9.76475 18.0673C13.2361 15.6181 17.0071 14.0185 21.3526 14.6059C24.8489 15.0682 27.3962 16.9676 28.6698 20.3291C29.2193 21.7787 29.3941 23.2657 28.7697 24.7652C28.7324 24.8671 28.682 24.9637 28.6199 25.0527C29.3394 25.0679 30.0351 25.3131 30.6053 25.7524L30.5679 25.6025C30.5388 25.4164 30.5221 25.2285 30.5179 25.0402C30.393 23.5656 30.1433 22.1286 29.6064 20.729C28.4701 17.7799 26.5346 15.4431 24.1496 13.4062C20.6283 10.4197 16.5076 9.14505 11.9874 9.00759C10.7013 8.9701 9.41512 8.9576 8.12897 9.13255C7.2424 9.25751 7.17997 9.25751 6.99267 10.1322C6.19351 13.9186 5.38602 17.7008 4.57021 21.4788C4.35794 22.466 4.15815 23.4532 3.9209 24.5653C4.48281 24.078 4.78249 23.5281 5.1571 23.0283Z" - fillOpacity="0.8" - /> - <path d="M56.7776 26.5271C54.4301 22.8657 52.1075 19.1919 49.76 15.543C49.4478 15.0556 49.1981 14.5183 48.6861 13.981C48.836 15.2556 48.9484 16.3677 49.0982 17.4674C49.4229 19.7667 49.4228 22.0535 48.811 24.3278C47.8495 27.8892 46.2637 31.0507 43.2668 33.35C41.6311 34.6121 39.7331 35.187 37.6852 35.2119C36.2492 35.2244 34.9006 34.8121 33.627 34.1373C32.5281 33.55 31.5791 32.7752 31.0297 31.613C30.8549 31.2507 30.78 31.0257 30.8299 30.8758C30.2944 31.415 29.588 31.7507 28.832 31.8255C29.0325 31.9488 29.2206 32.0911 29.3939 32.2504C30.4428 33.1001 31.4917 33.9623 32.7279 34.5496C36.1618 36.1866 39.7955 36.5365 43.4916 35.9492C49.0607 35.0745 53.2938 31.9379 56.7526 27.6393C57.0773 27.2419 57.0398 26.927 56.7776 26.5271Z" /> - <path - d="M49.3851 37.0737C45.9263 40.5477 41.7931 42.4846 36.8109 42.4971C33.3395 42.5096 29.6559 40.2228 28.4197 36.8738C27.9077 35.4867 27.5706 34.0747 28.095 32.6126C28.2324 32.2252 28.3323 31.9753 28.4322 31.8504C27.6768 31.8399 26.9469 31.5759 26.3594 31.1006C26.4219 31.2864 26.4597 31.4797 26.4718 31.6754C26.5841 32.7501 26.6341 33.8372 26.9587 34.8744C28.6694 40.3977 32.3531 44.1716 37.5476 46.4584C40.8691 47.9204 44.4029 48.3703 48.0366 47.9829C49.6598 47.808 49.6723 47.8454 49.997 46.4209C50.8836 42.4971 51.7826 38.5608 52.6442 34.6245C52.794 33.9622 53.0563 33.3124 53.0438 32.4502C52.844 32.7251 52.7316 32.875 52.6192 33.025C51.6203 34.4496 50.6088 35.8491 49.3851 37.0737Z" - fillOpacity="0.8" - /> - <path - d="M18.9423 48.4077C17.3564 46.6332 16.2201 44.5714 15.4334 42.3471C14.6842 40.2102 14.2472 38.0234 14.5968 35.7366C15.1213 32.4126 16.7945 29.9384 19.9037 28.5513C21.4022 27.8765 22.988 27.5641 24.6238 28.1889C24.8022 28.25 24.9738 28.3296 25.1357 28.4263C25.151 27.7063 25.396 27.0101 25.835 26.4395C25.6976 26.4644 25.5728 26.4769 25.4354 26.4894C24.5474 26.5518 23.6635 26.6645 22.7882 26.8268C19.7664 27.4641 17.2565 29.0511 15.0464 31.138C12.1376 33.829 10.1644 37.3798 9.41478 41.2724C8.9278 43.6966 8.86536 46.1209 9.05267 48.5826C9.12759 49.5324 9.51468 49.8697 10.4637 50.0572C14.4345 50.8569 18.3679 51.8067 22.3262 52.6689C23.0005 52.8188 23.6623 53.0688 24.5488 53.0938C23.8995 52.5939 23.4001 52.2065 22.8881 51.8316C21.4896 50.782 20.1035 49.7198 18.9423 48.4077Z" - fillOpacity="0.8" - /> - <path d="M42.5805 48.7352C41.1695 48.9851 39.7585 49.1601 38.3225 49.2975C37.1612 49.41 35.9749 49.4725 34.8386 49.2975C33.1906 49.0681 31.579 48.6271 30.0437 47.9854C27.6587 46.9857 25.486 45.6612 23.8752 43.5743C21.9397 41.0501 21.2779 38.2509 22.2394 35.1769C22.7763 33.4399 23.6754 31.8904 25.4235 31.0531C25.7357 30.9032 25.948 30.8282 26.0978 30.8532C25.5721 30.3282 25.2379 29.6417 25.1488 28.9038C25.0726 29.0173 24.9892 29.1259 24.8991 29.2287C24.0875 30.2034 23.2633 31.1656 22.6764 32.3028C21.2654 35.0519 20.7535 37.976 20.8284 41.0501C20.8759 43.3194 21.3416 45.5604 22.2019 47.6605C23.7253 51.2844 26.1353 54.2335 29.2071 56.6828C29.6816 57.0701 30.0312 57.1076 30.5681 56.7577C33.6524 54.7584 36.7741 52.7965 39.8708 50.8221C40.8948 50.1723 41.9187 49.51 42.9551 48.8352C42.9077 48.7859 42.8477 48.7505 42.7817 48.7329C42.7157 48.7153 42.6461 48.7161 42.5805 48.7352V48.7352Z" /> - </svg> - ); -}; -export default OutlinedPatternSwitchIcon; diff --git a/src/icons/Pattern/index.ts b/src/icons/Pattern/index.ts deleted file mode 100644 index 2ce7e0c28..000000000 --- a/src/icons/Pattern/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as OutlinedPatternIcon } from './OutlinedPatternIcon'; -export { default as OutlinedPatternSwitchIcon } from './OutlinedPatternSwitchIcon'; diff --git a/src/icons/Person/PersonIcon.tsx b/src/icons/Person/PersonIcon.tsx deleted file mode 100644 index 3d6dec76f..000000000 --- a/src/icons/Person/PersonIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const PersonIcon: FC<IconProps> = ({ - width, - height, - fill = '#5f6368', - ...props -}: IconProps) => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 -960 960 960" - width={width} - fill={fill} - {...props} - > - <path d="M480-480q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 66-47 113t-113 47ZM160-160v-112q0-34 17.5-62.5T224-378q62-31 126-46.5T480-440q66 0 130 15.5T736-378q29 15 46.5 43.5T800-272v112H160Z" /> - </svg> - ); -}; - -export default PersonIcon; diff --git a/src/icons/Person/index.ts b/src/icons/Person/index.ts deleted file mode 100644 index c31dfbfe5..000000000 --- a/src/icons/Person/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as PersonIcon } from './PersonIcon'; diff --git a/src/icons/Pod/OutlinedPodIcon.tsx b/src/icons/Pod/OutlinedPodIcon.tsx deleted file mode 100644 index 5c719986b..000000000 --- a/src/icons/Pod/OutlinedPodIcon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedPodIcon: FC<IconProps> = ({ width, height, ...props }) => ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 124 124" - {...props} - > - <rect - x="2.5" - y="2.5" - width="119" - height="119" - rx="21.5" - fill="white" - stroke="#359AC0" - strokeWidth="5" - /> - </svg> -); - -export default OutlinedPodIcon; diff --git a/src/icons/Pod/index.ts b/src/icons/Pod/index.ts deleted file mode 100644 index 66e16d3e5..000000000 --- a/src/icons/Pod/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedPodIcon } from './OutlinedPodIcon'; diff --git a/src/icons/Poll/PollIcon.tsx b/src/icons/Poll/PollIcon.tsx deleted file mode 100644 index 68ce7d523..000000000 --- a/src/icons/Poll/PollIcon.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const PollIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - stroke = DEFAULT_STROKE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 448 512" - width={width} - height={height} - {...props} - > - <path - d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 192c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192zM320 288c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z" - fill={fill} - stroke={stroke} - /> - </svg> - ); -}; - -export default PollIcon; diff --git a/src/icons/Poll/index.ts b/src/icons/Poll/index.ts deleted file mode 100644 index f875afed2..000000000 --- a/src/icons/Poll/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as PollIcon } from './PollIcon'; diff --git a/src/icons/Public/PublicIcon.tsx b/src/icons/Public/PublicIcon.tsx deleted file mode 100644 index 65bcd83fe..000000000 --- a/src/icons/Public/PublicIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const PublicIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = '#3C494F', - ...props -}: IconProps): JSX.Element => ( - <svg - width={width} - height={height} - viewBox="0 -960 960 960" - fill={fill} - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path d="M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm-40-82v-78q-33 0-56.5-23.5T360-320v-40L168-552q-3 18-5.5 36t-2.5 36q0 121 79.5 212T440-162Zm276-102q20-22 36-47.5t26.5-53q10.5-27.5 16-56.5t5.5-59q0-98-54.5-179T600-776v16q0 33-23.5 56.5T520-680h-80v80q0 17-11.5 28.5T400-560h-80v80h240q17 0 28.5 11.5T600-440v120h40q26 0 47 15.5t29 40.5Z" /> - </svg> -); - -export default PublicIcon; diff --git a/src/icons/Public/index.tsx b/src/icons/Public/index.tsx deleted file mode 100644 index 32de4ff75..000000000 --- a/src/icons/Public/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as PublicIcon } from './PublicIcon'; diff --git a/src/icons/Publish/PublishIcon.tsx b/src/icons/Publish/PublishIcon.tsx deleted file mode 100644 index f00b9d0f1..000000000 --- a/src/icons/Publish/PublishIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const PublishIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 -960 960 960" - width={width} - height={height} - {...props} - > - <path d="M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm-40-82v-78q-33 0-56.5-23.5T360-320v-40L168-552q-3 18-5.5 36t-2.5 36q0 121 79.5 212T440-162Zm276-102q20-22 36-47.5t26.5-53q10.5-27.5 16-56.5t5.5-59q0-98-54.5-179T600-776v16q0 33-23.5 56.5T520-680h-80v80q0 17-11.5 28.5T400-560h-80v80h240q17 0 28.5 11.5T600-440v120h40q26 0 47 15.5t29 40.5Z" /> - </svg> - ); -}; - -export default PublishIcon; diff --git a/src/icons/Publish/index.tsx b/src/icons/Publish/index.tsx deleted file mode 100644 index fa81689ef..000000000 --- a/src/icons/Publish/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as PublishIcon } from './PublishIcon'; diff --git a/src/icons/Question/QuestionIcon.tsx b/src/icons/Question/QuestionIcon.tsx deleted file mode 100644 index ddff94314..000000000 --- a/src/icons/Question/QuestionIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const QuestionIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path - d="M11 18H13V16H11V18ZM12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2ZM12 20C7.6 20 4 16.4 4 12C4 7.6 7.6 4 12 4C16.4 4 20 7.6 20 12C20 16.4 16.4 20 12 20ZM12 6C9.8 6 8 7.8 8 10H10C10 8.9 10.9 8 12 8C13.1 8 14 8.9 14 10C14 12 11 11.8 11 15H13C13 12.8 16 12.5 16 10C16 7.8 14.2 6 12 6Z" - fill="white" - /> - </svg> -); - -export default QuestionIcon; diff --git a/src/icons/Question/index.ts b/src/icons/Question/index.ts deleted file mode 100644 index 3d4173dc5..000000000 --- a/src/icons/Question/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as QuestionIcon } from './QuestionIcon'; diff --git a/src/icons/Read/index.tsx b/src/icons/Read/index.tsx deleted file mode 100644 index 1fb96211c..000000000 --- a/src/icons/Read/index.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -function ReadIcon({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = 'currentColor', - ...props -}: IconProps): JSX.Element { - return ( - <svg - viewBox="0 0 20 19" - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - x="0px" - y="0px" - fill={fill} - style={{ ...props.style }} - {...props} - > - <path - d="M20,7c0-0.7-0.4-1.3-0.9-1.7L10,0L1,5.3C0.4,5.7,0,6.3,0,7v10c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2L20,7z M10,12L1.7,6.8 - L10,2l8.3,4.8L10,12z" - fill={fill} - /> - </svg> - ); -} - -export default ReadIcon; - -export { ReadIcon }; diff --git a/src/icons/Rectangle/KeppelRectangleIcon.tsx b/src/icons/Rectangle/KeppelRectangleIcon.tsx deleted file mode 100644 index 000a3ecc4..000000000 --- a/src/icons/Rectangle/KeppelRectangleIcon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH, KEPPEL_GREEN_FILL } from '../../constants/constants'; -import { IconProps } from '../types'; - -type KeppelRectangleIconProps = { - primaryFill: string; -} & IconProps; - -export const KeppelRectangleIcon: FC<KeppelRectangleIconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - primaryFill = KEPPEL_GREEN_FILL, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 40 40" - {...props} - > - <path d="M40 0H0V40H40V0Z" fill={primaryFill} /> - </svg> - ); -}; - -export default KeppelRectangleIcon; diff --git a/src/icons/Rectangle/OutlinedRectangleIcon.tsx b/src/icons/Rectangle/OutlinedRectangleIcon.tsx deleted file mode 100644 index 577f4cfef..000000000 --- a/src/icons/Rectangle/OutlinedRectangleIcon.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { FC } from 'react'; -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_STROKE_WIDTH, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const OutlinedRectangleIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - stroke = DEFAULT_STROKE, - strokeWidth = DEFAULT_STROKE_WIDTH, - fill = DEFAULT_FILL_NONE, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 40 40" - {...props} - > - <path d="M38 2H2V38H38V2Z" fill={fill} stroke={stroke} strokeWidth={strokeWidth} /> - </svg> - ); -}; - -export default OutlinedRectangleIcon; diff --git a/src/icons/Rectangle/RectangleIcon.tsx b/src/icons/Rectangle/RectangleIcon.tsx deleted file mode 100644 index 0e345d117..000000000 --- a/src/icons/Rectangle/RectangleIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const RectangleIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 40 40" - {...props} - > - <path d="M40 0H0V40H40V0Z" /> - </svg> - ); -}; - -export default RectangleIcon; diff --git a/src/icons/Rectangle/index.ts b/src/icons/Rectangle/index.ts deleted file mode 100644 index a12af6893..000000000 --- a/src/icons/Rectangle/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { default as KeppelRectangleIcon } from './KeppelRectangleIcon'; -export { default as OutlinedRectangleIcon } from './OutlinedRectangleIcon'; -export { default as RectangleIcon } from './RectangleIcon'; diff --git a/src/icons/Redo/OutlinedRedoIcon.tsx b/src/icons/Redo/OutlinedRedoIcon.tsx deleted file mode 100644 index 82ed46489..000000000 --- a/src/icons/Redo/OutlinedRedoIcon.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedRedoIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z" /> - </svg> - ); -}; - -export default OutlinedRedoIcon; diff --git a/src/icons/Redo/index.ts b/src/icons/Redo/index.ts deleted file mode 100644 index 29032cbdb..000000000 --- a/src/icons/Redo/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedRedoIcon } from './OutlinedRedoIcon'; diff --git a/src/icons/Remove/RemoveDoneIcon.tsx b/src/icons/Remove/RemoveDoneIcon.tsx deleted file mode 100644 index 1ddf2cc46..000000000 --- a/src/icons/Remove/RemoveDoneIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const RemoveDoneIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0zm0 0h24v24H0V0z" fill="none" /> - <path d="M1.79 12l5.58 5.59L5.96 19 .37 13.41 1.79 12zm.45-7.78L12.9 14.89l-1.28 1.28L7.44 12l-1.41 1.41L11.62 19l2.69-2.69 4.89 4.89 1.41-1.41L3.65 2.81 2.24 4.22zm14.9 9.27L23.62 7 22.2 5.59l-6.48 6.48 1.42 1.42zM17.96 7l-1.41-1.41-3.65 3.66 1.41 1.41L17.96 7z" /> - </svg> - ); -}; - -export default RemoveDoneIcon; diff --git a/src/icons/Remove/RemoveIcon.tsx b/src/icons/Remove/RemoveIcon.tsx deleted file mode 100644 index 21987e0f5..000000000 --- a/src/icons/Remove/RemoveIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const RemoveIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 -960 960 960" - {...props} - > - <path d="M200-440v-80h560v80H200Z" /> - </svg> - ); -}; - -export default RemoveIcon; diff --git a/src/icons/Remove/index.ts b/src/icons/Remove/index.ts deleted file mode 100644 index 8b5f26d86..000000000 --- a/src/icons/Remove/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as RemoveDoneIcon } from './RemoveDoneIcon'; -export { default as RemoveIcon } from './RemoveIcon'; diff --git a/src/icons/Remove/remove.svg b/src/icons/Remove/remove.svg deleted file mode 100644 index 101953302..000000000 --- a/src/icons/Remove/remove.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M200-440v-80h560v80H200Z"/></svg> \ No newline at end of file diff --git a/src/icons/Reset/OutlinedResetIcon.tsx b/src/icons/Reset/OutlinedResetIcon.tsx deleted file mode 100644 index 13552996a..000000000 --- a/src/icons/Reset/OutlinedResetIcon.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedResetIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z" /> - </svg> - ); -}; - -export default OutlinedResetIcon; diff --git a/src/icons/Reset/index.ts b/src/icons/Reset/index.ts deleted file mode 100644 index ee34c5d6c..000000000 --- a/src/icons/Reset/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedResetIcon } from './OutlinedResetIcon'; diff --git a/src/icons/Response/Responseicon.tsx b/src/icons/Response/Responseicon.tsx deleted file mode 100644 index 17dbb9366..000000000 --- a/src/icons/Response/Responseicon.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { DARK_PRIMARY_COLOR } from '../../theme'; -import { IconProps } from '../types'; - -export const ResponseIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - primaryFill = DARK_PRIMARY_COLOR, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 175 144" - width={width} - height={height} - fill={props.fill} - fill-opacity={props.fillOpacity} - {...props} - > - <path - d="M88.625 71.57H87.6092L88.2288 72.375L95.0297 81.2105C95.3494 81.6258 94.8959 82.1906 94.4213 81.9682L72.9422 71.9008C72.4773 71.6829 71.9702 71.57 71.4568 71.57H3.9375C2.55679 71.57 1.4375 70.4507 1.4375 69.07V3.89013C1.4375 2.50942 2.55679 1.39014 3.9375 1.39014H94.9375C96.3182 1.39014 97.4375 2.50943 97.4375 3.89014V69.07C97.4375 70.4507 96.3182 71.57 94.9375 71.57H88.625Z" - fill="#FBFBFB" - stroke={primaryFill} - /> - <path - d="M22.3701 32.2664L18.4261 27.8124C19.9221 27.3874 21.0271 25.9934 21.0271 24.3614C21.0271 22.3894 19.4291 20.7914 17.4571 20.7914H14.3971H13.5471C13.3261 20.7914 13.2071 20.9104 13.2071 21.1314V32.3514C13.2071 32.5724 13.3261 32.6914 13.5471 32.6914H14.0571C14.2781 32.6914 14.3971 32.5724 14.3971 32.3514V27.9314H17.0491L21.0611 32.5044C21.1801 32.6404 21.3161 32.6914 21.4861 32.6914H22.1661C22.4551 32.6914 22.5401 32.4874 22.3531 32.2664H22.3701ZM14.3971 21.9134H17.4571C18.7661 21.9134 19.8371 23.0014 19.8371 24.3614C19.8371 25.7044 18.7661 26.8094 17.4571 26.8094H14.3971V21.9134ZM27.0895 23.9874C24.4545 23.9874 22.7375 25.9424 22.7375 28.4414C22.7375 31.0084 24.4885 32.8954 27.0895 32.8954C28.8235 32.8954 30.2175 31.9944 30.7955 30.7024C30.8805 30.4984 30.7445 30.3624 30.4895 30.3624H29.9455C29.7585 30.3624 29.6395 30.4474 29.5375 30.6004C29.1125 31.2974 28.2455 31.8074 27.1065 31.8074C25.3725 31.8074 24.1145 30.7364 23.8935 29.0024H30.0645H30.8635C31.0675 29.0024 31.2035 28.9004 31.2205 28.6794V28.4754C31.2205 26.1464 29.6905 23.9874 27.0895 23.9874ZM27.0895 25.0754C28.5345 25.0754 29.8435 26.0444 30.0475 27.9144H23.8765C24.0975 26.2654 25.2875 25.0754 27.0895 25.0754ZM33.7932 26.4184C33.7932 25.4664 34.7452 25.0754 35.6462 25.0754C36.4622 25.0754 37.3122 25.3984 37.4652 26.3334C37.5162 26.5374 37.6182 26.6564 37.8222 26.6564H38.2642C38.4852 26.6564 38.6212 26.5374 38.6042 26.2994C38.4342 24.8714 37.2442 23.9874 35.6462 23.9874C33.9292 23.9874 32.6712 25.0244 32.6712 26.4184C32.6712 29.5974 37.6692 28.3054 37.6692 30.4644C37.6692 31.4164 36.7172 31.8074 35.6462 31.8074C34.6772 31.8074 33.8102 31.4844 33.6572 30.5494C33.6062 30.3454 33.5042 30.2264 33.3002 30.2264H32.8582C32.6372 30.2264 32.5012 30.3454 32.5182 30.5834C32.6882 32.0114 33.8952 32.8954 35.6462 32.8954C37.5332 32.8954 38.7912 31.8584 38.7912 30.4644C38.7912 27.2854 33.7932 28.5774 33.7932 26.4184ZM45.3015 23.9874C43.7715 23.9874 42.5645 24.7184 41.8675 25.8574V24.5314C41.8675 24.3104 41.7485 24.1914 41.5275 24.1914H41.0855C40.8645 24.1914 40.7455 24.3104 40.7455 24.5314V35.7514C40.7455 35.9724 40.8645 36.0914 41.0855 36.0914H41.5275C41.7485 36.0914 41.8675 35.9724 41.8675 35.7514V31.0424C42.5645 32.1814 43.7715 32.8954 45.3015 32.8954C47.6985 32.8954 49.6875 30.9574 49.6875 28.4414C49.6875 25.9254 47.6985 23.9874 45.3015 23.9874ZM45.2165 31.8074C43.3295 31.8074 41.8675 30.3284 41.8675 28.4414C41.8675 26.5544 43.3295 25.0754 45.2165 25.0754C47.1035 25.0754 48.5655 26.5544 48.5655 28.4414C48.5655 30.3284 47.1035 31.8074 45.2165 31.8074ZM55.5141 32.8954C57.9961 32.8954 59.9851 30.9574 59.9851 28.4414C59.9851 25.9254 57.9961 23.9874 55.5141 23.9874C53.0321 23.9874 51.0431 25.9254 51.0431 28.4414C51.0431 30.9574 53.0321 32.8954 55.5141 32.8954ZM55.5141 31.8074C53.6271 31.8074 52.1651 30.3284 52.1651 28.4414C52.1651 26.5544 53.6271 25.0754 55.5141 25.0754C57.4011 25.0754 58.8631 26.5544 58.8631 28.4414C58.8631 30.3284 57.4011 31.8074 55.5141 31.8074ZM65.6027 23.9874C64.5657 23.9874 63.6477 24.3104 62.9847 25.3304V24.5314C62.9847 24.3104 62.8657 24.1914 62.6447 24.1914H62.2027C61.9817 24.1914 61.8627 24.3104 61.8627 24.5314V32.3514C61.8627 32.5724 61.9817 32.6914 62.2027 32.6914H62.6447C62.8657 32.6914 62.9847 32.5724 62.9847 32.3514V27.8974C62.9847 25.7894 64.2427 25.0754 65.3987 25.0754C66.5377 25.0754 67.3707 25.7894 67.3707 27.1324V32.3514C67.3707 32.5724 67.4897 32.6914 67.7107 32.6914H68.1527C68.3737 32.6914 68.4927 32.5724 68.4927 32.3514V27.1324C68.4927 25.1774 67.1837 23.9874 65.6027 23.9874ZM71.5285 26.4184C71.5285 25.4664 72.4805 25.0754 73.3815 25.0754C74.1975 25.0754 75.0475 25.3984 75.2005 26.3334C75.2515 26.5374 75.3535 26.6564 75.5575 26.6564H75.9995C76.2205 26.6564 76.3565 26.5374 76.3395 26.2994C76.1695 24.8714 74.9795 23.9874 73.3815 23.9874C71.6645 23.9874 70.4065 25.0244 70.4065 26.4184C70.4065 29.5974 75.4045 28.3054 75.4045 30.4644C75.4045 31.4164 74.4525 31.8074 73.3815 31.8074C72.4125 31.8074 71.5455 31.4844 71.3925 30.5494C71.3415 30.3454 71.2395 30.2264 71.0355 30.2264H70.5935C70.3725 30.2264 70.2365 30.3454 70.2535 30.5834C70.4235 32.0114 71.6305 32.8954 73.3815 32.8954C75.2685 32.8954 76.5265 31.8584 76.5265 30.4644C76.5265 27.2854 71.5285 28.5774 71.5285 26.4184ZM82.1568 23.9874C79.5218 23.9874 77.8048 25.9424 77.8048 28.4414C77.8048 31.0084 79.5558 32.8954 82.1568 32.8954C83.8908 32.8954 85.2848 31.9944 85.8628 30.7024C85.9478 30.4984 85.8118 30.3624 85.5568 30.3624H85.0128C84.8258 30.3624 84.7068 30.4474 84.6048 30.6004C84.1798 31.2974 83.3128 31.8074 82.1738 31.8074C80.4398 31.8074 79.1818 30.7364 78.9608 29.0024H85.1318H85.9308C86.1348 29.0024 86.2708 28.9004 86.2878 28.6794V28.4754C86.2878 26.1464 84.7578 23.9874 82.1568 23.9874ZM82.1568 25.0754C83.6018 25.0754 84.9108 26.0444 85.1148 27.9144H78.9438C79.1648 26.2654 80.3548 25.0754 82.1568 25.0754ZM18.6471 44.0724C17.7121 44.1574 16.8791 44.5314 16.3011 45.5004V44.5314C16.3011 44.3104 16.1821 44.1914 15.9611 44.1914H15.5191C15.2981 44.1914 15.1791 44.3104 15.1791 44.5314V52.3514C15.1791 52.5724 15.2981 52.6914 15.5191 52.6914H15.9611C16.1821 52.6914 16.3011 52.5724 16.3011 52.3514V47.9654C16.3011 45.9764 17.4911 45.2284 18.7661 45.1434C18.9021 45.1434 18.9871 45.0074 18.9871 44.8034V44.3954C18.9871 44.1744 18.8681 44.0554 18.6471 44.0724ZM23.8522 43.9874C21.2172 43.9874 19.5002 45.9424 19.5002 48.4414C19.5002 51.0084 21.2512 52.8954 23.8522 52.8954C25.5862 52.8954 26.9802 51.9944 27.5582 50.7024C27.6432 50.4984 27.5072 50.3624 27.2522 50.3624H26.7082C26.5212 50.3624 26.4022 50.4474 26.3002 50.6004C25.8752 51.2974 25.0082 51.8074 23.8692 51.8074C22.1352 51.8074 20.8772 50.7364 20.6562 49.0024H26.8272H27.6262C27.8302 49.0024 27.9662 48.9004 27.9832 48.6794V48.4754C27.9832 46.1464 26.4532 43.9874 23.8522 43.9874ZM23.8522 45.0754C25.2972 45.0754 26.6062 46.0444 26.8102 47.9144H20.6392C20.8602 46.2654 22.0502 45.0754 23.8522 45.0754ZM37.3219 49.9714H36.8289C36.6419 49.9714 36.5059 50.0564 36.4209 50.2264C35.9279 51.1784 34.8909 51.8074 33.6499 51.8074C31.7629 51.8074 30.3009 50.3284 30.3009 48.4414C30.3009 46.5544 31.7629 45.0754 33.6499 45.0754C34.8739 45.0754 35.9109 45.6874 36.4209 46.6564C36.5059 46.8264 36.6419 46.9114 36.8289 46.9114H37.3219C37.5599 46.9114 37.6959 46.7584 37.5939 46.5204C36.9819 45.0074 35.4519 43.9874 33.6499 43.9874C31.0829 43.9874 29.1789 45.9254 29.1789 48.4414C29.1789 50.9574 31.0829 52.8954 33.6499 52.8954C35.4519 52.8954 36.9989 51.8754 37.5939 50.3624C37.6959 50.1244 37.5599 49.9714 37.3219 49.9714ZM43.395 52.8954C45.877 52.8954 47.866 50.9574 47.866 48.4414C47.866 45.9254 45.877 43.9874 43.395 43.9874C40.913 43.9874 38.924 45.9254 38.924 48.4414C38.924 50.9574 40.913 52.8954 43.395 52.8954ZM43.395 51.8074C41.508 51.8074 40.046 50.3284 40.046 48.4414C40.046 46.5544 41.508 45.0754 43.395 45.0754C45.282 45.0754 46.744 46.5544 46.744 48.4414C46.744 50.3284 45.282 51.8074 43.395 51.8074ZM53.2116 44.0724C52.2766 44.1574 51.4436 44.5314 50.8656 45.5004V44.5314C50.8656 44.3104 50.7466 44.1914 50.5256 44.1914H50.0836C49.8626 44.1914 49.7436 44.3104 49.7436 44.5314V52.3514C49.7436 52.5724 49.8626 52.6914 50.0836 52.6914H50.5256C50.7466 52.6914 50.8656 52.5724 50.8656 52.3514V47.9654C50.8656 45.9764 52.0556 45.2284 53.3306 45.1434C53.4666 45.1434 53.5516 45.0074 53.5516 44.8034V44.3954C53.5516 44.1744 53.4326 44.0554 53.2116 44.0724ZM62.6666 40.7914H62.2246C62.0036 40.7914 61.8846 40.9104 61.8846 41.1314V45.8574C61.1706 44.7184 59.9636 43.9874 58.4506 43.9874C56.0536 43.9874 54.0646 45.9254 54.0646 48.4414C54.0646 50.9574 56.0536 52.8954 58.4506 52.8954C59.9636 52.8954 61.1706 52.1814 61.8846 51.0424V52.3514C61.8846 52.5724 62.0036 52.6914 62.2246 52.6914H62.6666C62.8876 52.6914 63.0066 52.5724 63.0066 52.3514V41.1314C63.0066 40.9104 62.8876 40.7914 62.6666 40.7914ZM58.5356 51.8074C56.6486 51.8074 55.1866 50.3284 55.1866 48.4414C55.1866 46.5544 56.6486 45.0754 58.5356 45.0754C60.4226 45.0754 61.8846 46.5544 61.8846 48.4414C61.8846 50.3284 60.4226 51.8074 58.5356 51.8074ZM69.2242 43.9874C66.5892 43.9874 64.8722 45.9424 64.8722 48.4414C64.8722 51.0084 66.6232 52.8954 69.2242 52.8954C70.9582 52.8954 72.3522 51.9944 72.9302 50.7024C73.0152 50.4984 72.8792 50.3624 72.6242 50.3624H72.0802C71.8932 50.3624 71.7742 50.4474 71.6722 50.6004C71.2472 51.2974 70.3802 51.8074 69.2412 51.8074C67.5072 51.8074 66.2492 50.7364 66.0282 49.0024H72.1992H72.9982C73.2022 49.0024 73.3382 48.9004 73.3552 48.6794V48.4754C73.3552 46.1464 71.8252 43.9874 69.2242 43.9874ZM69.2242 45.0754C70.6692 45.0754 71.9782 46.0444 72.1822 47.9144H66.0112C66.2322 46.2654 67.4222 45.0754 69.2242 45.0754ZM83.1529 40.7914H82.7109C82.4899 40.7914 82.3709 40.9104 82.3709 41.1314V45.8574C81.6569 44.7184 80.4499 43.9874 78.9369 43.9874C76.5399 43.9874 74.5509 45.9254 74.5509 48.4414C74.5509 50.9574 76.5399 52.8954 78.9369 52.8954C80.4499 52.8954 81.6569 52.1814 82.3709 51.0424V52.3514C82.3709 52.5724 82.4899 52.6914 82.7109 52.6914H83.1529C83.3739 52.6914 83.4929 52.5724 83.4929 52.3514V41.1314C83.4929 40.9104 83.3739 40.7914 83.1529 40.7914ZM79.0219 51.8074C77.1349 51.8074 75.6729 50.3284 75.6729 48.4414C75.6729 46.5544 77.1349 45.0754 79.0219 45.0754C80.9089 45.0754 82.3709 46.5544 82.3709 48.4414C82.3709 50.3284 80.9089 51.8074 79.0219 51.8074Z" - fill={primaryFill} - /> - <path - d="M151.486 91.828C151.162 91.8193 150.84 91.8775 150.54 91.9992C150.24 92.1208 149.968 92.3033 149.74 92.5353C145.433 96.7622 139.61 99.1059 133.557 99.1059C127.505 99.1059 121.804 96.7539 117.383 92.527C116.918 92.0583 116.216 91.8198 115.637 91.8198C102.946 92.7655 92.9375 103.563 92.9375 116.474V127.855C92.9341 129.86 93.3231 131.845 94.0823 133.697C94.8414 135.549 95.9558 137.232 97.3615 138.65C98.7672 140.067 100.436 141.19 102.274 141.956C104.111 142.721 106.08 143.113 108.068 143.11H158.933C160.921 143.113 162.89 142.721 164.727 141.956C166.564 141.19 168.233 140.067 169.639 138.65C171.045 137.232 172.159 135.549 172.918 133.697C173.678 131.845 174.067 129.86 174.063 127.855V116.474C174.185 103.563 164.177 92.7655 151.486 91.828Z" - fill={primaryFill} - /> - <path - d="M133.566 90.6517C144.855 90.6517 154.17 81.3838 154.17 69.8792C154.17 58.4978 144.855 49.2217 133.566 49.2217C122.278 49.2217 112.963 58.4978 112.963 69.9943C112.963 81.3838 122.27 90.6517 133.566 90.6517ZM133.566 53.9173C142.294 53.9173 149.513 61.0718 149.513 69.9943C149.513 78.7934 142.416 86.0712 133.566 86.0712C124.839 86.0712 117.62 78.9168 117.62 69.9943C117.62 61.0718 124.831 53.9173 133.566 53.9173Z" - fill={primaryFill} - /> - <path - d="M163.173 79.4932H158.891C158.631 79.4932 158.382 79.3892 158.199 79.2041C158.015 79.0191 157.912 78.7681 157.912 78.5064V66.2944C157.912 66.0327 158.015 65.7817 158.199 65.5966C158.382 65.4116 158.631 65.3076 158.891 65.3076H163.173C163.433 65.3076 163.682 65.4116 163.865 65.5966C164.049 65.7817 164.152 66.0327 164.152 66.2944V78.5064C164.152 78.7681 164.049 79.0191 163.865 79.2041C163.682 79.3892 163.433 79.4932 163.173 79.4932Z" - fill="#3C494F" - /> - <path - d="M108.214 79.6245H103.932C103.672 79.6245 103.423 79.5206 103.24 79.3355C103.056 79.1504 102.953 78.8994 102.953 78.6377V66.4258C102.953 66.1641 103.056 65.9131 103.24 65.728C103.423 65.5429 103.672 65.439 103.932 65.439H108.214C108.474 65.439 108.723 65.5429 108.906 65.728C109.09 65.9131 109.193 66.1641 109.193 66.4258V78.6377C109.193 78.8994 109.09 79.1504 108.906 79.3355C108.723 79.5206 108.474 79.6245 108.214 79.6245Z" - fill="#3C494F" - /> - <path - d="M161.142 63.0789H159.038C156.966 51.64 146.387 42.8901 133.565 42.8901C120.743 42.8901 110.066 51.64 108.059 63.0789H105.971C102.937 63.0789 100.506 65.4308 100.498 68.1199V76.6888C100.498 79.5094 102.945 81.8531 105.971 81.8531H109.576C110.62 81.8531 111.436 81.0308 111.436 80.0933V67.3386C111.443 67.2869 111.446 67.2346 111.444 67.1824C111.444 55.8011 121.346 46.5249 133.565 46.5249C145.783 46.5249 155.677 55.8011 155.677 67.1824V77.6921C149.927 81.442 142.521 82.511 133.679 81.1377C132.627 81.0226 131.697 81.7298 131.583 82.6673C131.346 83.613 132.048 84.4271 132.978 84.6656C142.195 86.1623 149.96 85.0356 156.371 81.4584C156.706 81.7159 157.116 81.8547 157.537 81.8531H161.151C164.177 81.8531 166.615 79.5012 166.615 76.8121V68.2432C166.615 65.4226 164.168 63.0789 161.142 63.0789ZM107.708 78.3417H106.077C105.147 78.3417 104.446 77.6345 104.446 76.8121V68.2515C104.446 67.4291 105.147 66.7219 106.077 66.7219H107.708V78.3417ZM162.668 76.6806C162.668 77.5029 161.966 78.2101 161.036 78.2101H159.405V66.5903H161.036C161.966 66.5903 162.668 67.2975 162.668 68.1199V76.6806Z" - fill="#3C494F" - /> - <path - d="M123.012 115.537C123.871 113.945 125.076 112.569 126.536 111.512C127.997 110.456 129.675 109.745 131.446 109.435L130.729 105.274C125.794 106.129 121.626 109.254 119.293 113.506L123.012 115.537Z" - fill="#00D3A9" - /> - <path - d="M123.191 127.609C122.069 125.724 121.48 123.566 121.486 121.368C121.485 119.932 121.742 118.508 122.245 117.166L118.305 115.718C117.655 117.533 117.321 119.447 117.318 121.376C117.321 124.337 118.112 127.242 119.61 129.789L123.191 127.609Z" - fill="#00B39F" - /> - <path - d="M133.632 133.497H133.493C129.765 133.497 126.454 131.779 124.203 129.065L120.973 131.779C123.934 135.397 128.469 137.749 133.485 137.749H133.664L133.632 133.497Z" - fill="#00D3A9" - /> - <path - d="M143.949 127.337C143.061 128.911 141.835 130.265 140.36 131.298C138.885 132.331 137.199 133.018 135.426 133.308L136.095 137.51C138.488 137.114 140.762 136.182 142.75 134.781C144.738 133.381 146.388 131.548 147.579 129.418L143.949 127.337Z" - fill="#00B39F" - /> - <path - d="M143.859 115.266C144.927 117.118 145.484 119.225 145.474 121.367C145.484 122.854 145.21 124.328 144.667 125.709L148.615 127.247C149.314 125.384 149.678 123.409 149.691 121.417C149.694 118.525 148.934 115.683 147.489 113.185L143.859 115.266Z" - fill="#00D3A9" - /> - <path - d="M140.759 113.012L139.861 112.099L141.998 109.945L139.861 107.79L140.759 106.877L143.801 109.945L140.759 113.012Z" - fill="#20BDAB" - /> - <path - d="M134.677 113.012L133.771 112.099L135.917 109.945L133.771 107.79L134.677 106.877L137.719 109.945L134.677 113.012Z" - fill="#20BDAB" - /> - </svg> - ); -}; - -export default FilterIcon; diff --git a/src/icons/Response/index.ts b/src/icons/Response/index.ts deleted file mode 100644 index 22422c340..000000000 --- a/src/icons/Response/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ResponseIcon } from './responseicon'; diff --git a/src/icons/RightArrow/RightArrowIcon.tsx b/src/icons/RightArrow/RightArrowIcon.tsx deleted file mode 100644 index 30e10c8c2..000000000 --- a/src/icons/RightArrow/RightArrowIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const RightArrowIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <polygon points="7.293 4.707 14.586 12 7.293 19.293 8.707 20.707 17.414 12 8.707 3.293 7.293 4.707" /> - </svg> - ); -}; - -export default RightArrowIcon; diff --git a/src/icons/RightArrow/index.ts b/src/icons/RightArrow/index.ts deleted file mode 100644 index 1af2e66c8..000000000 --- a/src/icons/RightArrow/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as RightArrowIcon } from './RightArrowIcon'; diff --git a/src/icons/Ring/OutlinedRingIcon.tsx b/src/icons/Ring/OutlinedRingIcon.tsx deleted file mode 100644 index a6c5ac390..000000000 --- a/src/icons/Ring/OutlinedRingIcon.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedRingIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 51 64" - {...props} - > - <path d="M28.8913 41.7109H21.2366" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M12.2358 41.711C12.2358 39.2259 14.2504 37.2114 16.7354 37.2114C17.9287 37.2114 19.0732 37.6855 19.9171 38.5293C20.7609 39.3731 21.2349 40.5176 21.2349 41.711C21.2349 44.196 19.2204 46.2105 16.7354 46.2105C14.2504 46.2105 12.2358 44.196 12.2358 41.711V41.711Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M12.2358 41.711C12.2358 39.2259 14.2504 37.2114 16.7354 37.2114C17.9287 37.2114 19.0732 37.6855 19.9171 38.5293C20.7609 39.3731 21.2349 40.5176 21.2349 41.711C21.2349 44.196 19.2204 46.2105 16.7354 46.2105C14.2504 46.2105 12.2358 44.196 12.2358 41.711V41.711Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M28.8911 41.711C28.8911 39.2259 30.9056 37.2114 33.3906 37.2114C34.584 37.2114 35.7285 37.6855 36.5723 38.5293C37.4161 39.3731 37.8902 40.5176 37.8902 41.711C37.8902 44.196 35.8757 46.2105 33.3906 46.2105C30.9056 46.2105 28.8911 44.196 28.8911 41.711V41.711Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M28.8911 41.711C28.8911 39.2259 30.9056 37.2114 33.3906 37.2114C34.584 37.2114 35.7285 37.6855 36.5723 38.5293C37.4161 39.3731 37.8902 40.5176 37.8902 41.711C37.8902 44.196 35.8757 46.2105 33.3906 46.2105C30.9056 46.2105 28.8911 44.196 28.8911 41.711V41.711Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M5.49951 12.3233L12.2488 5.93066" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M12.2358 5.93851C12.2358 8.42352 14.2504 10.438 16.7354 10.438C17.9287 10.438 19.0732 9.96399 19.9171 9.12015C20.7609 8.27632 21.2349 7.13185 21.2349 5.93851C21.2349 3.45348 19.2204 1.43896 16.7354 1.43896C14.2504 1.43896 12.2358 3.45348 12.2358 5.93851V5.93851Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M12.2358 5.93851C12.2358 8.42352 14.2504 10.438 16.7354 10.438C17.9287 10.438 19.0732 9.96399 19.9171 9.12015C20.7609 8.27632 21.2349 7.13185 21.2349 5.93851C21.2349 3.45348 19.2204 1.43896 16.7354 1.43896C14.2504 1.43896 12.2358 3.45348 12.2358 5.93851V5.93851Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M28.8911 5.93851C28.8911 8.42352 30.9056 10.438 33.3906 10.438C34.584 10.438 35.7285 9.96399 36.5723 9.12015C37.4161 8.27632 37.8902 7.13185 37.8902 5.93851C37.8902 3.45348 35.8757 1.43896 33.3906 1.43896C30.9056 1.43896 28.8911 3.45348 28.8911 5.93851Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M28.8911 5.93851C28.8911 8.42352 30.9056 10.438 33.3906 10.438C34.584 10.438 35.7285 9.96399 36.5723 9.12015C37.4161 8.27632 37.8902 7.13185 37.8902 5.93851C37.8902 3.45348 35.8757 1.43896 33.3906 1.43896C30.9056 1.43896 28.8911 3.45348 28.8911 5.93851Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.5166 30.4561C40.5166 27.9711 42.5311 25.9565 45.0162 25.9565C46.2095 25.9565 47.354 26.4306 48.1978 27.2744C49.0416 28.1183 49.5157 29.2627 49.5157 30.4561C49.5157 32.9411 47.5012 34.9556 45.0162 34.9556C42.5311 34.9556 40.5166 32.9411 40.5166 30.4561V30.4561Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.5166 30.4561C40.5166 27.9711 42.5311 25.9565 45.0162 25.9565C46.2095 25.9565 47.354 26.4306 48.1978 27.2744C49.0416 28.1183 49.5157 29.2627 49.5157 30.4561C49.5157 32.9411 47.5012 34.9556 45.0162 34.9556C42.5311 34.9556 40.5166 32.9411 40.5166 30.4561V30.4561Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M12.2356 41.7107L5.48633 34.9614" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M9.99908 30.4541C9.99908 27.9691 7.98456 25.9546 5.49954 25.9546C4.30618 25.9546 3.16171 26.4286 2.31787 27.2725C1.47406 28.1163 1 29.2608 1 30.4541C1 32.9392 3.01453 34.9537 5.49954 34.9537C7.98456 34.9537 9.99908 32.9392 9.99908 30.4541V30.4541Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M9.99908 30.4541C9.99908 27.9691 7.98456 25.9546 5.49954 25.9546C4.30618 25.9546 3.16171 26.4286 2.31787 27.2725C1.47406 28.1163 1 29.2608 1 30.4541C1 32.9392 3.01453 34.9537 5.49954 34.9537C7.98456 34.9537 9.99908 32.9392 9.99908 30.4541V30.4541Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.5166 16.8233C40.5166 14.3382 42.5311 12.3237 45.0162 12.3237C46.2095 12.3237 47.354 12.7978 48.1978 13.6416C49.0416 14.4854 49.5157 15.6299 49.5157 16.8233C49.5157 19.3083 47.5012 21.3228 45.0162 21.3228C42.5311 21.3228 40.5166 19.3083 40.5166 16.8233V16.8233Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.5166 16.8233C40.5166 14.3382 42.5311 12.3237 45.0162 12.3237C46.2095 12.3237 47.354 12.7978 48.1978 13.6416C49.0416 14.4854 49.5157 15.6299 49.5157 16.8233C49.5157 19.3083 47.5012 21.3228 45.0162 21.3228C42.5311 21.3228 40.5166 19.3083 40.5166 16.8233V16.8233Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M9.99908 16.8233C9.99908 14.3382 7.98456 12.3237 5.49954 12.3237C4.30618 12.3237 3.16171 12.7978 2.31787 13.6416C1.47406 14.4854 1 15.6299 1 16.8233C1 19.3083 3.01453 21.3228 5.49954 21.3228C7.98456 21.3228 9.99908 19.3083 9.99908 16.8233V16.8233Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M9.99908 16.8233C9.99908 14.3382 7.98456 12.3237 5.49954 12.3237C4.30618 12.3237 3.16171 12.7978 2.31787 13.6416C1.47406 14.4854 1 15.6299 1 16.8233C1 19.3083 3.01453 21.3228 5.49954 21.3228C7.98456 21.3228 9.99908 19.3083 9.99908 16.8233V16.8233Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M5.49951 25.9546V21.3179" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path d="M45.0161 25.9565V21.3198" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path d="M37.8904 41.7107L45.0238 34.9614" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path d="M37.8904 5.93848L45.0238 12.3311" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path d="M21.2349 5.93848H28.8896" strokeWidth="1.33333" strokeMiterlimit="800" /> - </svg> - ); -}; - -export default OutlinedRingIcon; diff --git a/src/icons/Ring/index.ts b/src/icons/Ring/index.ts deleted file mode 100644 index e683a8c89..000000000 --- a/src/icons/Ring/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedRingIcon } from './OutlinedRingIcon'; diff --git a/src/icons/SMP/SMPIcon.tsx b/src/icons/SMP/SMPIcon.tsx deleted file mode 100644 index f34b9f846..000000000 --- a/src/icons/SMP/SMPIcon.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const SMPIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - viewBox="0 0 26 25" - {...props} - > - <g clip-path="url(#clip0_21266_800)"> - <path - d="M17.3458 12.2052C17.1694 12.2052 17.0237 12.2647 16.9068 12.3816C15.8237 13.436 14.359 14.0206 12.8369 14.0206C11.3148 14.0206 9.88088 13.4339 8.76904 12.3795C8.65212 12.2626 8.4757 12.2031 8.33005 12.2031C5.13812 12.439 2.62109 15.1325 2.62109 18.3531V21.1922C2.62109 23.299 4.31963 24.9975 6.42638 24.9975H19.2187C21.3255 24.9975 23.024 23.299 23.024 21.1922V18.3531C23.0548 15.1325 20.5377 12.439 17.3458 12.2052Z" - fill="#3C494E" - /> - <path - d="M12.838 11.9129C15.6771 11.9129 18.0197 9.60102 18.0197 6.73116C18.0197 3.89207 15.6771 1.57812 12.838 1.57812C9.99891 1.57812 7.65625 3.89207 7.65625 6.75987C7.65625 9.60102 9.99686 11.9129 12.838 11.9129ZM12.838 2.74945C15.033 2.74945 16.8484 4.53414 16.8484 6.75987C16.8484 8.95484 15.0637 10.7703 12.838 10.7703C10.643 10.7703 8.82758 8.98561 8.82758 6.75987C8.82758 4.53414 10.641 2.74945 12.838 2.74945Z" - fill="#3C494E" - /> - <path - d="M20.288 9.13236H19.211C19.0756 9.13236 18.9648 9.02158 18.9648 8.88619V5.83991C18.9648 5.70452 19.0756 5.59375 19.211 5.59375H20.288C20.4234 5.59375 20.5341 5.70452 20.5341 5.83991V8.88619C20.5341 9.02158 20.4234 9.13236 20.288 9.13236Z" - fill="#647881" - /> - <path - d="M6.46376 9.16361H5.38679C5.2514 9.16361 5.14062 9.05283 5.14062 8.91744V5.87116C5.14062 5.73577 5.2514 5.625 5.38679 5.625H6.46376C6.59915 5.625 6.70992 5.73577 6.70992 5.87116V8.91744C6.70992 9.05283 6.59915 9.16361 6.46376 9.16361Z" - fill="#647881" - /> - <path - d="M19.7754 5.0361H19.2461C18.7251 2.18265 16.0644 0 12.8397 0C9.61493 0 6.92969 2.18265 6.42505 5.0361H5.8999C5.1368 5.0361 4.52549 5.62279 4.52344 6.29359V8.43112C4.52344 9.13473 5.13885 9.71937 5.8999 9.71937H6.80661C7.06918 9.71937 7.27432 9.51424 7.27432 9.28038V6.09871C7.27637 6.0864 7.27637 6.07204 7.27637 6.05974C7.27637 3.22065 9.76673 0.906704 12.8397 0.906704C15.9126 0.906704 18.4009 3.22065 18.4009 6.05974V8.68138C16.9547 9.61681 15.0921 9.88348 12.8684 9.5409C12.6038 9.51219 12.3699 9.6886 12.3412 9.92246C12.2817 10.1584 12.4581 10.3615 12.692 10.4209C15.01 10.7943 16.9629 10.5133 18.5753 9.62091C18.6553 9.68245 18.7579 9.71937 18.8686 9.71937H19.7774C20.5385 9.71937 21.1518 9.13268 21.1518 8.46189V6.32436C21.1518 5.62074 20.5364 5.0361 19.7754 5.0361ZM6.33685 8.84344H5.92657C5.69272 8.84344 5.5163 8.66702 5.5163 8.46189V6.32641C5.5163 6.12128 5.69272 5.94486 5.92657 5.94486H6.33685V8.84344ZM20.159 8.42906C20.159 8.6342 19.9825 8.81062 19.7487 8.81062H19.3384V5.91204H19.7487C19.9825 5.91204 20.159 6.08845 20.159 6.29359V8.42906Z" - fill="#3C494E" - /> - <path - d="M10.1854 18.1226C10.6142 17.3328 11.3937 16.7564 12.3065 16.6005L12.126 15.5625C10.8849 15.7758 9.83669 16.5554 9.25 17.6159L10.1854 18.1226Z" - fill="#00D3A9" - /> - <path - d="M10.2309 21.1303C9.96011 20.679 9.80216 20.1498 9.80216 19.5734C9.80216 19.2021 9.86985 18.8513 9.99293 18.5251L9.00212 18.1641C8.84417 18.6051 8.75391 19.079 8.75391 19.5754C8.75391 20.3426 8.9693 21.0647 9.33034 21.6739L10.2309 21.1303Z" - fill="#00B39F" - /> - <path - d="M12.8556 22.6057H12.8207C11.8832 22.6057 11.0504 22.177 10.4842 21.5L9.67188 22.177C10.4165 23.0796 11.5571 23.6662 12.8187 23.6662C12.8289 23.6662 12.8535 23.6662 12.8638 23.6662L12.8556 22.6057Z" - fill="#00D3A9" - /> - <path - d="M15.4523 21.0625C15.0112 21.842 14.2215 22.4061 13.3086 22.5518L13.4768 23.6C14.7179 23.397 15.7661 22.64 16.3651 21.5815L15.4523 21.0625Z" - fill="#00B39F" - /> - <path - d="M15.4297 18.0581C15.6902 18.5094 15.8359 19.0181 15.8359 19.5802C15.8359 19.9638 15.7682 20.3248 15.6328 20.6633L16.6256 21.0469C16.7938 20.5956 16.8964 20.0992 16.8964 19.5925C16.8964 18.8478 16.6933 18.136 16.3425 17.5391L15.4297 18.0581Z" - fill="#00D3A9" - /> - <path - d="M14.6475 17.4913L14.4219 17.2636L14.9593 16.7261L14.4219 16.1886L14.6475 15.9609L15.4127 16.7261L14.6475 17.4913Z" - fill="#20BDAB" - /> - <path - d="M13.1183 17.4913L12.8906 17.2636L13.4301 16.7261L12.8906 16.1886L13.1183 15.9609L13.8835 16.7261L13.1183 17.4913Z" - fill="#20BDAB" - /> - </g> - <defs> - <clipPath id="clip0_21266_800"> - <rect width="25" height="25" fill="white" transform="translate(0.324219)" /> - </clipPath> - </defs> - </svg> - ); -}; - -export default SMPIcon; diff --git a/src/icons/SMP/index.ts b/src/icons/SMP/index.ts deleted file mode 100644 index f061820ea..000000000 --- a/src/icons/SMP/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as SMPIcon } from './SMPIcon'; diff --git a/src/icons/Save/OutlinedCloudSavingIcon.tsx b/src/icons/Save/OutlinedCloudSavingIcon.tsx deleted file mode 100644 index 4279a3335..000000000 --- a/src/icons/Save/OutlinedCloudSavingIcon.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedCloudSavingIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 19.8 17.5" - {...props} - > - <path d="M17.9 7c-.2 0-.4-.1-.4-.3C16.4 2.4 12 0 7.8 1.1 5.1 1.9 3 4 2.2 6.7c0 .2-.3.3-.5.2-.2 0-.3-.2-.3-.5C2.7 1.8 7.6-1 12.2.3c3 .8 5.3 3.1 6.1 6.1.1.2-.1.5-.3.5 0 .1 0 .1-.1.1zm-8 10.5c-3.9 0-7.4-2.6-8.5-6.4-.1-.2.1-.5.3-.5.2-.1.4.1.5.3 1.2 4.2 5.5 6.7 9.8 5.5 2.7-.7 4.8-2.8 5.5-5.5.1-.2.3-.3.5-.3.2.1.3.3.3.5-1 3.8-4.5 6.5-8.4 6.4z" /> - <path d="M17.9 7h-.2l-3-1.4c-.2-.1-.3-.4-.2-.6.1-.2.3-.3.5-.2L17.7 6 19 3.4c.1-.2.4-.3.6-.2.2.1.3.3.2.5l-1.4 3c-.2.2-.3.3-.5.3zM.4 14.4c-.2 0-.4-.1-.4-.4v-.2l1.4-3c.1-.2.3-.3.6-.2L5 12c.2.1.3.4.2.6-.1.2-.3.3-.5.2L2 11.6.8 14.2c-.1.1-.2.2-.4.2z" /> - </svg> - ); -}; - -export default OutlinedCloudSavingIcon; diff --git a/src/icons/Save/SaveAsIcon.tsx b/src/icons/Save/SaveAsIcon.tsx deleted file mode 100644 index b45ace193..000000000 --- a/src/icons/Save/SaveAsIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const SaveAsIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0V0z" fill="none" /> - <path d="M17.59 3.59c-.38-.38-.89-.59-1.42-.59H5c-1.11 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7.83c0-.53-.21-1.04-.59-1.41l-2.82-2.83zM12 19c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm1-10H7c-1.1 0-2-.9-2-2s.9-2 2-2h6c1.1 0 2 .9 2 2s-.9 2-2 2z" /> - </svg> - ); -}; - -export default SaveAsIcon; diff --git a/src/icons/Save/index.ts b/src/icons/Save/index.ts deleted file mode 100644 index cdfee1c4d..000000000 --- a/src/icons/Save/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as OutlinedCloudSavingIcon } from './OutlinedCloudSavingIcon'; -export { default as SaveAsIcon } from './SaveAsIcon'; diff --git a/src/icons/Screenshot/OutlinedScreenshotIcon.tsx b/src/icons/Screenshot/OutlinedScreenshotIcon.tsx deleted file mode 100644 index e41aa8e55..000000000 --- a/src/icons/Screenshot/OutlinedScreenshotIcon.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedScreenshotIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M9.4 10.5l4.77-8.26C13.47 2.09 12.75 2 12 2c-2.4 0-4.6.85-6.32 2.25l3.66 6.35.06-.1zM21.54 9c-.92-2.92-3.15-5.26-6-6.34L11.88 9h9.66zm.26 1h-7.49l.29.5 4.76 8.25C21 16.97 22 14.61 22 12c0-.69-.07-1.35-.2-2zM8.54 12l-3.9-6.75C3.01 7.03 2 9.39 2 12c0 .69.07 1.35.2 2h7.49l-1.15-2zm-6.08 3c.92 2.92 3.15 5.26 6 6.34L12.12 15H2.46zm11.27 0l-3.9 6.76c.7.15 1.42.24 2.17.24 2.4 0 4.6-.85 6.32-2.25l-3.66-6.35-.93 1.6z" /> - </svg> - ); -}; - -export default OutlinedScreenshotIcon; diff --git a/src/icons/Screenshot/index.ts b/src/icons/Screenshot/index.ts deleted file mode 100644 index c0342dcb4..000000000 --- a/src/icons/Screenshot/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedScreenshotIcon } from './OutlinedScreenshotIcon'; diff --git a/src/icons/Search/SearchIcon.tsx b/src/icons/Search/SearchIcon.tsx deleted file mode 100644 index bd5a48421..000000000 --- a/src/icons/Search/SearchIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const SearchIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 -960 960 960" - width={width} - height={height} - fill={props.fill} - {...props} - > - <path d="M796-121 533-384q-30 26-69.959 40.5T378-329q-108.162 0-183.081-75Q120-479 120-585t75-181q75-75 181.5-75t181 75Q632-691 632-584.85 632-542 618-502q-14 40-42 75l264 262-44 44ZM377-389q81.25 0 138.125-57.5T572-585q0-81-56.875-138.5T377-781q-82.083 0-139.542 57.5Q180-666 180-585t57.458 138.5Q294.917-389 377-389Z" /> - </svg> - ); -}; - -export default SearchIcon; diff --git a/src/icons/Search/index.ts b/src/icons/Search/index.ts deleted file mode 100644 index 92d574a9e..000000000 --- a/src/icons/Search/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as SearchIcon } from './SearchIcon'; diff --git a/src/icons/Settings/OutlinedSettingsIcon.tsx b/src/icons/Settings/OutlinedSettingsIcon.tsx deleted file mode 100644 index 3712c0601..000000000 --- a/src/icons/Settings/OutlinedSettingsIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedSettingsIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - enableBackground="new 0 0 24 24" - {...props} - > - <g> - <path d="M0,0h24v24H0V0z" fill="none" /> - <path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z" /> - </g> - </svg> - ); -}; - -export default OutlinedSettingsIcon; diff --git a/src/icons/Settings/index.ts b/src/icons/Settings/index.ts deleted file mode 100644 index e1819d516..000000000 --- a/src/icons/Settings/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedSettingsIcon } from './OutlinedSettingsIcon'; diff --git a/src/icons/Shapes/KeppelTallRoundedRectangleIcon.tsx b/src/icons/Shapes/KeppelTallRoundedRectangleIcon.tsx deleted file mode 100644 index 61f087231..000000000 --- a/src/icons/Shapes/KeppelTallRoundedRectangleIcon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH, KEPPEL_GREEN_FILL } from '../../constants/constants'; -import { IconProps } from '../types'; - -type KeppelTallRoundedRectangleIconProps = { - primaryFill: string; -} & IconProps; - -export const KeppelTallRoundedRectangleIcon: FC<KeppelTallRoundedRectangleIconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - primaryFill = KEPPEL_GREEN_FILL, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 32 40" - {...props} - > - <rect width="32" height="40" rx="5" fill={primaryFill} /> - </svg> - ); -}; - -export default KeppelTallRoundedRectangleIcon; diff --git a/src/icons/Shapes/OutlinedTallRoundedRectangleIcon.tsx b/src/icons/Shapes/OutlinedTallRoundedRectangleIcon.tsx deleted file mode 100644 index d7501fe47..000000000 --- a/src/icons/Shapes/OutlinedTallRoundedRectangleIcon.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { FC } from 'react'; -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_STROKE_WIDTH, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const OutlinedTallRoundedRectangleIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - stroke = DEFAULT_STROKE, - strokeWidth = DEFAULT_STROKE_WIDTH, - fill = DEFAULT_FILL_NONE, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 32 40" - {...props} - > - <rect - width="28" - height="36" - x="2" - y="2" - rx="5" - fill={fill} - stroke={stroke} - strokeWidth={strokeWidth} - /> - </svg> - ); -}; - -export default OutlinedTallRoundedRectangleIcon; diff --git a/src/icons/Shapes/RoundedPentagonShapeIcon.tsx b/src/icons/Shapes/RoundedPentagonShapeIcon.tsx deleted file mode 100644 index e9e725978..000000000 --- a/src/icons/Shapes/RoundedPentagonShapeIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const RoundedPentagonShape: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 40 40" - {...props} - > - <path d="M17.6249 0.76393C19.0411 -0.254644 20.9589 -0.254642 22.3751 0.76393L38.3341 12.2416C39.7503 13.2602 40.3429 15.0657 39.8019 16.7138L33.7063 35.2851C33.1653 36.9332 31.6137 38.049 29.8631 38.049H10.1369C8.38627 38.049 6.83477 36.9332 6.29382 35.2851L0.198047 16.7138C-0.342914 15.0657 0.249705 13.2602 1.66596 12.2416L17.6249 0.76393Z" /> - </svg> - ); -}; - -export default RoundedPentagonShape; diff --git a/src/icons/Shapes/RoundedRectangleShapeIcon.tsx b/src/icons/Shapes/RoundedRectangleShapeIcon.tsx deleted file mode 100644 index 657e9a4db..000000000 --- a/src/icons/Shapes/RoundedRectangleShapeIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const RoundedRectangleShapeIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 40 40" - {...props} - > - <rect width="40" height="40" rx="9" /> - </svg> - ); -}; - -export default RoundedRectangleShapeIcon; diff --git a/src/icons/Shapes/RoundedTriangleShapeIcon.tsx b/src/icons/Shapes/RoundedTriangleShapeIcon.tsx deleted file mode 100644 index bee932e80..000000000 --- a/src/icons/Shapes/RoundedTriangleShapeIcon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const RoundTriangleShapeIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 40 40" - {...props} - > - <path d="M26.0622 3.5C23.3679 -1.16667 16.6321 -1.16667 13.9378 3.5L1.06218 25.8013C-1.63212 30.4679 1.73576 36.3013 7.12436 36.3013H32.8756C38.2642 36.3013 41.6321 30.4679 38.9378 25.8013L26.0622 3.5Z" /> - </svg> - ); -}; - -export default RoundTriangleShapeIcon; diff --git a/src/icons/Shapes/TallRoundedRectangleIcon.tsx b/src/icons/Shapes/TallRoundedRectangleIcon.tsx deleted file mode 100644 index 615d56929..000000000 --- a/src/icons/Shapes/TallRoundedRectangleIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_FILL, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const TallRoundedRectangleIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 32 40" - {...props} - > - <rect width="32" height="40" rx="5" fill={fill} /> - </svg> - ); -}; - -export default TallRoundedRectangleIcon; diff --git a/src/icons/Shapes/index.ts b/src/icons/Shapes/index.ts deleted file mode 100644 index 85a6beba3..000000000 --- a/src/icons/Shapes/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { default as KeppelTallRoundedRectangleIcon } from './KeppelTallRoundedRectangleIcon'; -export { default as OutlinedTallRoundedRectangleIcon } from './OutlinedTallRoundedRectangleIcon'; -export { default as RoundedRectangleShapeIcon } from './RoundedRectangleShapeIcon'; -export { default as RoundedTriangleShapeIcon } from './RoundedTriangleShapeIcon'; -export { default as TallRoundedRectangleIcon } from './TallRoundedRectangleIcon'; diff --git a/src/icons/Share/ShareIcon.tsx b/src/icons/Share/ShareIcon.tsx deleted file mode 100644 index f4120d6d9..000000000 --- a/src/icons/Share/ShareIcon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; -export const ShareIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = '#51636B', - style = {} -}) => ( - <svg - width={width} - height={height} - viewBox="0 0 18 16" - style={style} - xmlns="http://www.w3.org/2000/svg" - > - <path - d="M11.5 4.95703V5.39068L11.0707 5.45201C7.68596 5.93554 5.29546 7.37866 3.62629 9.28628C2.43591 10.6467 1.60118 12.2567 1.04239 13.9499C3.51457 11.4886 6.75712 10.357 11 10.357H11.5V10.857V13.7499L17.2929 7.95703L11.5 2.16414V4.95703Z" - stroke={fill} - strokeWidth={1.5} - fill={fill} - /> - </svg> -); - -export default ShareIcon; diff --git a/src/icons/Share/ShareLineIcon.tsx b/src/icons/Share/ShareLineIcon.tsx deleted file mode 100644 index 6a4c6fd3a..000000000 --- a/src/icons/Share/ShareLineIcon.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import React from 'react'; - -interface ShareLineIconProps { - width: string; - height: string; - fill?: string; - style?: React.CSSProperties; - secondaryFill?: string; -} - -const ShareLineIcon: React.FC<ShareLineIconProps> = ({ - width, - height, - style, - fill = '#3C494F' -}) => ( - <svg - width={width} - height={height} - viewBox="0 0 19 22" - fill="none" - xmlns="http://www.w3.org/2000/svg" - style={style} - > - <path - d="M15.3933 14.2675C14.2628 14.2675 13.2529 14.826 12.5924 15.7011L6.97152 12.2207C7.12457 11.7889 7.21318 11.3255 7.21318 10.8359C7.21318 10.3752 7.13262 9.9318 6.99569 9.52315L12.5494 6.23845C13.2101 7.14534 14.2359 7.73246 15.3934 7.73246C17.386 7.73246 19 6.00228 19 3.86623C19 1.73018 17.386 0 15.3934 0C13.4008 0 11.7868 1.73018 11.7868 3.86623C11.7868 4.32689 11.8674 4.77029 12.0043 5.17893L6.45059 8.46364C5.78991 7.55675 4.76409 6.96962 3.60659 6.96962C1.61399 6.96962 0 8.69981 0 10.8359C0 12.9719 1.61399 14.7021 3.60659 14.7021C4.73709 14.7021 5.74699 14.1436 6.40748 13.2685L12.0283 16.7489C11.8753 17.1807 11.7867 17.6442 11.7867 18.1338C11.7867 20.2698 13.4007 22 15.3933 22C17.3859 22 18.9999 20.2698 18.9999 18.1338C18.9999 15.9977 17.3859 14.2675 15.3933 14.2675Z" - fill={fill} - /> - </svg> -); - -export default ShareLineIcon; diff --git a/src/icons/Share/index.tsx b/src/icons/Share/index.tsx deleted file mode 100644 index 5abf944db..000000000 --- a/src/icons/Share/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import ShareIcon from './ShareIcon'; -import ShareLineIcon from './ShareLineIcon'; -export { ShareIcon, ShareLineIcon }; diff --git a/src/icons/SocialMedial/FacebookIcon.tsx b/src/icons/SocialMedial/FacebookIcon.tsx deleted file mode 100644 index 0fcf1ea65..000000000 --- a/src/icons/SocialMedial/FacebookIcon.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import React from 'react'; -import { IconProps } from './types'; - -const FacebookIcon: React.FC<IconProps> = ({ width = 40, height = 40 }) => ( - <svg - width={width} - height={height} - viewBox="0 0 28 29" - fill="none" - xmlns="http://www.w3.org/2000/svg" - > - <g filter="url(#filter0_d_6961_29756)"> - <rect x="3.87598" y="3" width="20.2472" height="20.2472" rx="4.82076" fill="#252E31" /> - </g> - <path - d="M16.5443 12.8065H15.1772V17.4103H13.5977V12.8065H12.7277V12.0453L13.5977 11.6207V11.196C13.5977 10.5366 13.76 10.055 14.0845 9.7512C14.409 9.44739 14.9286 9.29549 15.6432 9.29549C16.1887 9.29549 16.6738 9.37662 17.0984 9.53888L16.6945 10.6989C16.3769 10.5988 16.0834 10.5487 15.8141 10.5487C15.5897 10.5487 15.4275 10.616 15.3274 10.7507C15.2272 10.8819 15.1772 11.051 15.1772 11.2582V11.6207H16.5443V12.8065Z" - fill="white" - /> - <defs> - <filter - id="filter0_d_6961_29756" - x="0.0193691" - y="0.107544" - width="27.9603" - height="27.9604" - filterUnits="userSpaceOnUse" - colorInterpolationFilters="sRGB" - > - <feFlood floodOpacity="0" result="BackgroundImageFix" /> - <feColorMatrix - in="SourceAlpha" - type="matrix" - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" - result="hardAlpha" - /> - <feOffset dy="0.964152" /> - <feGaussianBlur stdDeviation="1.9283" /> - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0" /> - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_6961_29756" /> - <feBlend - mode="normal" - in="SourceGraphic" - in2="effect1_dropShadow_6961_29756" - result="shape" - /> - </filter> - </defs> - </svg> -); - -export default FacebookIcon; diff --git a/src/icons/SocialMedial/LinkedinIcon.tsx b/src/icons/SocialMedial/LinkedinIcon.tsx deleted file mode 100644 index 5ca0d4948..000000000 --- a/src/icons/SocialMedial/LinkedinIcon.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import React from 'react'; -import { IconProps } from './types'; - -const LinkedinIcon: React.FC<IconProps> = ({ width = 40, height = 40 }) => ( - <svg - width={width} - height={height} - viewBox="0 0 29 29" - fill="none" - xmlns="http://www.w3.org/2000/svg" - > - <g filter="url(#filter0_d_6961_29759)"> - <rect x="4.12402" y="3" width="20.2472" height="20.2472" rx="4.82076" fill="#252E31" /> - </g> - <path - d="M17.9658 8.78503H10.5261C10.1852 8.78503 9.9082 9.06589 9.9082 9.41066V16.8368C9.9082 17.1815 10.1852 17.4624 10.5261 17.4624H17.9658C18.3067 17.4624 18.5856 17.1815 18.5856 16.8368V9.41066C18.5856 9.06589 18.3067 8.78503 17.9658 8.78503ZM12.5327 16.2228H11.2447V12.0817H12.5327V16.2228ZM11.8877 11.5161C11.4752 11.5161 11.142 11.181 11.142 10.7704C11.142 10.3597 11.4752 10.0247 11.8877 10.0247C12.2984 10.0247 12.6334 10.3597 12.6334 10.7704C12.6334 11.1829 12.3003 11.5161 11.8877 11.5161ZM17.3518 16.2228H16.0656V14.2084C16.0656 13.728 16.056 13.1102 15.3974 13.1102C14.7272 13.1102 14.6246 13.6331 14.6246 14.1735V16.2228H13.3385V12.0817H14.5723V12.6472H14.5897C14.7621 12.3218 15.1824 11.979 15.808 11.979C17.1096 11.979 17.3518 12.8371 17.3518 13.9527V16.2228V16.2228Z" - fill="white" - /> - <defs> - <filter - id="filter0_d_6961_29759" - x="0.267416" - y="0.107544" - width="27.9603" - height="27.9604" - filterUnits="userSpaceOnUse" - colorInterpolationFilters="sRGB" - > - <feFlood floodOpacity="0" result="BackgroundImageFix" /> - <feColorMatrix - in="SourceAlpha" - type="matrix" - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" - result="hardAlpha" - /> - <feOffset dy="0.964152" /> - <feGaussianBlur stdDeviation="1.9283" /> - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0" /> - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_6961_29759" /> - <feBlend - mode="normal" - in="SourceGraphic" - in2="effect1_dropShadow_6961_29759" - result="shape" - /> - </filter> - </defs> - </svg> -); - -export default LinkedinIcon; diff --git a/src/icons/SocialMedial/TwitterIcon.tsx b/src/icons/SocialMedial/TwitterIcon.tsx deleted file mode 100644 index df8172d42..000000000 --- a/src/icons/SocialMedial/TwitterIcon.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import React from 'react'; -import { IconProps } from './types'; - -const TwitterIcon: React.FC<IconProps> = ({ width = 40, height = 40 }) => ( - <svg - width={width} - height={height} - viewBox="0 0 29 29" - fill="none" - xmlns="http://www.w3.org/2000/svg" - > - <g filter="url(#filter0_d_6961_29753)"> - <rect x="4.62891" y="3" width="20.2472" height="20.2472" rx="4.82076" fill="#252E31" /> - </g> - <path - d="M19.0914 10.5854C18.7722 10.7266 18.429 10.8226 18.0689 10.865C18.4361 10.6447 18.7186 10.2958 18.8513 9.88061C18.5081 10.084 18.1268 10.2323 17.7215 10.3128C17.3966 9.96677 16.9334 9.74927 16.4221 9.74927C15.4391 9.74927 14.6412 10.5472 14.6412 11.5302C14.6412 11.67 14.6567 11.8056 14.6878 11.9356C13.2077 11.8621 11.8956 11.1531 11.0185 10.0755C10.8646 10.3382 10.777 10.6447 10.777 10.9709C10.777 11.5881 11.0906 12.1333 11.5694 12.4525C11.277 12.4426 11.003 12.3635 10.7629 12.2293C10.7629 12.2378 10.7629 12.2449 10.7629 12.2519C10.7629 13.1149 11.3759 13.8351 12.1908 13.9976C12.0411 14.0385 11.8843 14.0611 11.7219 14.0611C11.6075 14.0611 11.4945 14.0498 11.3872 14.0286C11.6131 14.7362 12.2713 15.2503 13.0495 15.2658C12.4408 15.7432 11.6725 16.0271 10.8392 16.0271C10.6951 16.0271 10.5539 16.0186 10.4141 16.0017C11.2021 16.5073 12.1371 16.8025 13.1427 16.8025C16.4179 16.8025 18.2087 14.0894 18.2087 11.7364C18.2087 11.6602 18.2059 11.5825 18.2031 11.5062C18.5505 11.2548 18.8527 10.9413 19.0914 10.5854Z" - fill="white" - /> - <defs> - <filter - id="filter0_d_6961_29753" - x="0.772299" - y="0.107544" - width="27.9603" - height="27.9604" - filterUnits="userSpaceOnUse" - colorInterpolationFilters="sRGB" - > - <feFlood floodOpacity="0" result="BackgroundImageFix" /> - <feColorMatrix - in="SourceAlpha" - type="matrix" - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" - result="hardAlpha" - /> - <feOffset dy="0.964152" /> - <feGaussianBlur stdDeviation="1.9283" /> - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0" /> - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_6961_29753" /> - <feBlend - mode="normal" - in="SourceGraphic" - in2="effect1_dropShadow_6961_29753" - result="shape" - /> - </filter> - </defs> - </svg> -); - -export default TwitterIcon; diff --git a/src/icons/SocialMedial/index.ts b/src/icons/SocialMedial/index.ts deleted file mode 100644 index 1b3be9b14..000000000 --- a/src/icons/SocialMedial/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import FacebookIcon from './FacebookIcon'; -import LinkedinIcon from './LinkedinIcon'; -import TwitterIcon from './TwitterIcon'; - -export { FacebookIcon, LinkedinIcon, TwitterIcon }; diff --git a/src/icons/SocialMedial/types.ts b/src/icons/SocialMedial/types.ts deleted file mode 100644 index f1505e285..000000000 --- a/src/icons/SocialMedial/types.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface IconProps { - width?: number; - height?: number; - fill?: string; - style?: React.CSSProperties; -} diff --git a/src/icons/Star/OutlinedStarIcon.tsx b/src/icons/Star/OutlinedStarIcon.tsx deleted file mode 100644 index 4797f6ad4..000000000 --- a/src/icons/Star/OutlinedStarIcon.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedStarIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 53 64" - {...props} - > - <path d="M22.8098 27.3584L17.8164 37.1257" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M12.8965 42.043C12.8965 39.3231 15.1014 37.1182 17.8213 37.1182C19.1274 37.1182 20.3801 37.637 21.3036 38.5606C22.2272 39.4842 22.7461 40.7368 22.7461 42.043C22.7461 44.7629 20.5412 46.9678 17.8213 46.9678C15.1014 46.9678 12.8965 44.7629 12.8965 42.043V42.043Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M12.8965 42.043C12.8965 39.3231 15.1014 37.1182 17.8213 37.1182C19.1274 37.1182 20.3801 37.637 21.3036 38.5606C22.2272 39.4842 22.7461 40.7368 22.7461 42.043C22.7461 44.7629 20.5412 46.9678 17.8213 46.9678C15.1014 46.9678 12.8965 44.7629 12.8965 42.043V42.043Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M23.2263 19.4135L17.8213 11.4844" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M12.8965 6.55957C12.8965 9.27946 15.1014 11.4844 17.8213 11.4844C19.1274 11.4844 20.3801 10.9655 21.3036 10.0419C22.2272 9.11835 22.7461 7.86571 22.7461 6.55957C22.7461 3.83968 20.5412 1.63477 17.8213 1.63477C15.1014 1.63477 12.8965 3.83968 12.8965 6.55957V6.55957Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M12.8965 6.55957C12.8965 9.27946 15.1014 11.4844 17.8213 11.4844C19.1274 11.4844 20.3801 10.9655 21.3036 10.0419C22.2272 9.11835 22.7461 7.86571 22.7461 6.55957C22.7461 3.83968 20.5412 1.63477 17.8213 1.63477C15.1014 1.63477 12.8965 3.83968 12.8965 6.55957V6.55957Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M21.3634 23.8662L9.81274 29.9571" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M11.2593 33.4497C11.2593 30.7298 9.05438 28.5249 6.33447 28.5249C5.02832 28.5249 3.7757 29.0438 2.85211 29.9673C1.92853 30.8909 1.40967 32.1436 1.40967 33.4497C1.40967 36.1696 3.61456 38.3745 6.33447 38.3745C9.05438 38.3745 11.2593 36.1696 11.2593 33.4497V33.4497Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M11.2593 33.4497C11.2593 30.7298 9.05438 28.5249 6.33447 28.5249C5.02832 28.5249 3.7757 29.0438 2.85211 29.9673C1.92853 30.8909 1.40967 32.1436 1.40967 33.4497C1.40967 36.1696 3.61456 38.3745 6.33447 38.3745C9.05438 38.3745 11.2593 36.1696 11.2593 33.4497V33.4497Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M10.8496 18.0693C10.8496 15.3494 8.64465 13.1445 5.9248 13.1445C4.61865 13.1445 3.36603 13.6634 2.44244 14.587C1.51886 15.5106 1 16.7632 1 18.0693C1 20.7892 3.2049 22.9941 5.9248 22.9941C8.64465 22.9941 10.8496 20.7892 10.8496 18.0693V18.0693Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M10.8496 18.0693C10.8496 15.3494 8.64465 13.1445 5.9248 13.1445C4.61865 13.1445 3.36603 13.6634 2.44244 14.587C1.51886 15.5106 1 16.7632 1 18.0693C1 20.7892 3.2049 22.9941 5.9248 22.9941C8.64465 22.9941 10.8496 20.7892 10.8496 18.0693V18.0693Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M21.3635 23.8662L10.8555 18.0771" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path d="M29.7939 27.3584L35.1989 37.0983" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.1162 42.0171C40.1162 39.2972 37.9113 37.0923 35.1914 37.0923C33.8853 37.0923 32.6326 37.6111 31.709 38.5347C30.7855 39.4583 30.2666 40.711 30.2666 42.0171C30.2666 44.737 32.4715 46.9419 35.1914 46.9419C37.9113 46.9419 40.1162 44.737 40.1162 42.0171V42.0171Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.1162 42.0171C40.1162 39.2972 37.9113 37.0923 35.1914 37.0923C33.8853 37.0923 32.6326 37.6111 31.709 38.5347C30.7855 39.4583 30.2666 40.711 30.2666 42.0171C30.2666 44.737 32.4715 46.9419 35.1914 46.9419C37.9113 46.9419 40.1162 44.737 40.1162 42.0171V42.0171Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M29.7939 20.3743L35.1989 11.4575" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.1162 6.53369C40.1162 9.25359 37.9113 11.4585 35.1914 11.4585C33.8853 11.4585 32.6326 10.9396 31.709 10.0161C30.7855 9.09248 30.2666 7.83983 30.2666 6.53369C30.2666 3.8138 32.4715 1.60889 35.1914 1.60889C37.9113 1.60889 40.1162 3.8138 40.1162 6.53369V6.53369Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M40.1162 6.53369C40.1162 9.25359 37.9113 11.4585 35.1914 11.4585C33.8853 11.4585 32.6326 10.9396 31.709 10.0161C30.7855 9.09248 30.2666 7.83983 30.2666 6.53369C30.2666 3.8138 32.4715 1.60889 35.1914 1.60889C37.9113 1.60889 40.1162 3.8138 40.1162 6.53369V6.53369Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M31.2402 23.8662L43.2025 29.9296" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M41.7534 33.4233C41.7534 30.7034 43.9583 28.4985 46.6782 28.4985C47.9844 28.4985 49.237 29.0174 50.1606 29.941C51.0842 30.8646 51.603 32.1172 51.603 33.4233C51.603 36.1432 49.3981 38.3481 46.6782 38.3481C43.9583 38.3481 41.7534 36.1432 41.7534 33.4233V33.4233Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M41.7534 33.4233C41.7534 30.7034 43.9583 28.4985 46.6782 28.4985C47.9844 28.4985 49.237 29.0174 50.1606 29.941C51.0842 30.8646 51.603 32.1172 51.603 33.4233C51.603 36.1432 49.3981 38.3481 46.6782 38.3481C43.9583 38.3481 41.7534 36.1432 41.7534 33.4233V33.4233Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M42.1628 18.0435C42.1628 15.3236 44.3677 13.1187 47.0876 13.1187C48.3937 13.1187 49.6464 13.6375 50.57 14.5611C51.4935 15.4847 52.0125 16.7373 52.0125 18.0435C52.0125 20.7634 49.8075 22.9683 47.0876 22.9683C44.3677 22.9683 42.1628 20.7634 42.1628 18.0435V18.0435Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M42.1628 18.0435C42.1628 15.3236 44.3677 13.1187 47.0876 13.1187C48.3937 13.1187 49.6464 13.6375 50.57 14.5611C51.4935 15.4847 52.0125 16.7373 52.0125 18.0435C52.0125 20.7634 49.8075 22.9683 47.0876 22.9683C44.3677 22.9683 42.1628 20.7634 42.1628 18.0435V18.0435Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - <path d="M31.2402 23.8663L42.1599 18.0498" strokeWidth="1.33333" strokeMiterlimit="800" /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M21.3633 23.8663C21.3633 21.1388 23.5743 18.9277 26.3018 18.9277C27.6116 18.9277 28.8677 19.448 29.7939 20.3742C30.72 21.3004 31.2403 22.5565 31.2403 23.8663C31.2403 26.5937 29.0293 28.8048 26.3018 28.8048C23.5743 28.8048 21.3633 26.5937 21.3633 23.8663V23.8663Z" - /> - <path - fillRule="evenodd" - clipRule="evenodd" - d="M21.3633 23.8663C21.3633 21.1388 23.5743 18.9277 26.3018 18.9277C27.6116 18.9277 28.8677 19.448 29.7939 20.3742C30.72 21.3004 31.2403 22.5565 31.2403 23.8663C31.2403 26.5937 29.0293 28.8048 26.3018 28.8048C23.5743 28.8048 21.3633 26.5937 21.3633 23.8663V23.8663Z" - strokeWidth="1.33333" - strokeMiterlimit="800" - /> - </svg> - ); -}; - -export default OutlinedStarIcon; diff --git a/src/icons/Star/index.ts b/src/icons/Star/index.ts deleted file mode 100644 index 41c95d59b..000000000 --- a/src/icons/Star/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedStarIcon } from './OutlinedStarIcon'; diff --git a/src/icons/Success/SuccessIcon.tsx b/src/icons/Success/SuccessIcon.tsx deleted file mode 100644 index 2ef641ff6..000000000 --- a/src/icons/Success/SuccessIcon.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { FC } from 'react'; -import { KEPPEL_GREEN_FILL } from '../../constants/constants'; -import { WHITE } from '../../theme'; -import { IconProps } from '../types'; - -const SuccessIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - version="1.1" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 50 50" - {...props} - > - <circle fill={props.stroke || KEPPEL_GREEN_FILL} cx="25" cy="25" r="25" /> - <polyline - fill="none" - stroke={WHITE} - strokeWidth="2" - strokeLinecap="round" - strokeLinejoin="round" - strokeMiterlimit="10" - points="38,15 22,33 12,25 " - /> - </svg> - ); -}; - -export default SuccessIcon; diff --git a/src/icons/Success/index.ts b/src/icons/Success/index.ts deleted file mode 100644 index c9b33ae20..000000000 --- a/src/icons/Success/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as SuccessIcon } from './SuccessIcon'; diff --git a/src/icons/SwapVert/SwapVertIcon.tsx b/src/icons/SwapVert/SwapVertIcon.tsx deleted file mode 100644 index 84ce7a89a..000000000 --- a/src/icons/SwapVert/SwapVertIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { DEFAULT_FILL_NONE, DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const SwapVertIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - data-testid="swap-vert-icon-svg" - {...props} - > - <path d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM8 7V13h2V7h3L9 3 5 7h3z" fill={fill} /> - </svg> - ); -}; - -export default SwapVertIcon; diff --git a/src/icons/SwapVert/index.ts b/src/icons/SwapVert/index.ts deleted file mode 100644 index 63d29077a..000000000 --- a/src/icons/SwapVert/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as SwapVertIcon } from './SwapVertIcon'; diff --git a/src/icons/TableView/TableViewIcon.tsx b/src/icons/TableView/TableViewIcon.tsx deleted file mode 100644 index 6bd33018d..000000000 --- a/src/icons/TableView/TableViewIcon.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react'; - -interface TableViewIconProps { - width?: string; - height?: string; - fill?: string; - opacity?: number; - style?: React.CSSProperties; -} - -export const TableViewIcon: React.FC<TableViewIconProps> = ({ - width = '24', - height = '28.8', - fill, - opacity, - style = {} -}) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 -960 960 960" - width={width} - fill={fill} - fillOpacity={opacity} - > - <path d="M80-160v-160h160v160H80Zm240 0v-160h560v160H320ZM80-400v-160h160v160H80Zm240 0v-160h560v160H320ZM80-640v-160h160v160H80Zm240 0v-160h560v160H320Z" /> - </svg> -); - -export default TableViewIcon; diff --git a/src/icons/TableView/index.ts b/src/icons/TableView/index.ts deleted file mode 100644 index 742c66580..000000000 --- a/src/icons/TableView/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TableViewIcon } from './TableViewIcon'; diff --git a/src/icons/TachographDigital/TachographDigitalIcon.tsx b/src/icons/TachographDigital/TachographDigitalIcon.tsx deleted file mode 100644 index 75eb5922a..000000000 --- a/src/icons/TachographDigital/TachographDigitalIcon.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const TachographDigitalIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - stroke = DEFAULT_STROKE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 640 512" - width={width} - height={height} - {...props} - > - <path - d="M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l512 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm32 64l224 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16l256 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z" - fill={fill} - stroke={stroke} - /> - </svg> - ); -}; - -export default TachographDigitalIcon; diff --git a/src/icons/TachographDigital/index.ts b/src/icons/TachographDigital/index.ts deleted file mode 100644 index e1f62b5bd..000000000 --- a/src/icons/TachographDigital/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TachographDigitalIcon } from './TachographDigitalIcon'; diff --git a/src/icons/Tachometer/TachometerIcon.tsx b/src/icons/Tachometer/TachometerIcon.tsx deleted file mode 100644 index 9366c48c3..000000000 --- a/src/icons/Tachometer/TachometerIcon.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { - DEFAULT_FILL_NONE, - DEFAULT_HEIGHT, - DEFAULT_STROKE, - DEFAULT_WIDTH -} from '../../constants/constants'; -import { IconProps } from '../types'; - -export const TachometerIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - fill = DEFAULT_FILL_NONE, - stroke = DEFAULT_STROKE, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 576 512" - width={width} - height={height} - {...props} - > - <path - d="M288 32C128.9 32 0 160.9 0 320c0 52.8 14.3 102.3 39.1 144.8 5.6 9.6 16.3 15.2 27.4 15.2h443c11.1 0 21.8-5.6 27.4-15.2C561.8 422.3 576 372.8 576 320c0-159.1-128.9-288-288-288zm0 64c14.7 0 26.6 10.1 30.3 23.7-1.1 2.3-2.6 4.2-3.5 6.7l-9.2 27.7c-5.1 3.5-11 6-17.6 6-17.7 0-32-14.3-32-32S270.3 96 288 96zM96 384c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm48-160c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm246.8-72.4l-61.3 184C343.1 347.3 352 364.5 352 384c0 11.7-3.4 22.6-8.9 32H232.9c-5.5-9.5-8.9-20.3-8.9-32 0-33.9 26.5-61.4 59.9-63.6l61.3-184c4.2-12.6 17.7-19.5 30.4-15.2 12.6 4.2 19.4 17.8 15.2 30.4zm14.7 57.2l15.5-46.6c3.5-1.3 7.1-2.2 11.1-2.2 17.7 0 32 14.3 32 32s-14.3 32-32 32c-11.4 0-20.9-6.3-26.6-15.2zM480 384c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z" - fill={fill} - stroke={stroke} - /> - </svg> - ); -}; - -export default TachometerIcon; diff --git a/src/icons/Tachometer/index.ts b/src/icons/Tachometer/index.ts deleted file mode 100644 index 160ce76a7..000000000 --- a/src/icons/Tachometer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TachometerIcon } from './TachometerIcon'; diff --git a/src/icons/Teams/TeamsIcon.tsx b/src/icons/Teams/TeamsIcon.tsx deleted file mode 100644 index 94fdb16f1..000000000 --- a/src/icons/Teams/TeamsIcon.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react'; - -interface TeamsIconProps { - width: string | number; - height: string | number; - fill: string; - primaryFill?: string; - secondaryFill?: string; - style?: React.CSSProperties; -} - -const TeamsIcon: React.FC<TeamsIconProps> = ({ - width, - height, - fill, - primaryFill = '#51636B', - secondaryFill = '#00B39F', - style = {} -}) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 18 18" - width={width} - fill={fill} - > - <path - fill={secondaryFill} - d="M3.8,5.4c0.4,0,0.8,0.1,1.1,0.3c-0.1,1.1,0.2,2.1,0.8,3c-0.4,0.7-1.1,1.2-2,1.2c-0.6,0-1.2-0.2-1.6-0.7 - c-0.4-0.4-0.7-1-0.7-1.6s0.2-1.2,0.7-1.6S3.2,5.4,3.8,5.4z M14.2,5.4c0.6,0,1.2,0.2,1.6,0.7c0.4,0.4,0.7,1,0.7,1.6s-0.2,1.2-0.7,1.6 - c-0.4,0.4-1,0.7-1.6,0.7c-0.9,0-1.6-0.5-2-1.2c0.6-0.8,1-1.9,0.8-3C13.4,5.6,13.8,5.4,14.2,5.4z M0,14.4v-1.1c0-1,1.4-1.9,3.3-2.2 - c-0.4,0.5-0.7,1.2-0.7,2v1.3H0z M18,14.4h-2.6v-1.3c0-0.8-0.3-1.5-0.7-2c1.9,0.3,3.3,1.1,3.3,2.2V14.4z" - /> - <path - fill={primaryFill} - d="M9,3.6c0.7,0,1.4,0.3,1.9,0.8c0.5,0.5,0.8,1.2,0.8,1.9S11.3,7.6,10.9,8C10.4,8.5,9.7,8.8,9,8.8S7.6,8.5,7.1,8 - C6.7,7.6,6.4,6.9,6.4,6.2s0.3-1.4,0.8-1.9C7.6,3.8,8.3,3.6,9,3.6z" - /> - <path fill={primaryFill} d="M4.1,13.1c0-1.6,2.2-2.8,4.9-2.8s4.9,1.3,4.9,2.8v1.3H4.1V13.1z" /> - </svg> -); - -export default TeamsIcon; diff --git a/src/icons/Teams/index.ts b/src/icons/Teams/index.ts deleted file mode 100644 index 9f0b15b65..000000000 --- a/src/icons/Teams/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import TeamsIcon from './TeamsIcon'; - -export { TeamsIcon }; diff --git a/src/icons/TerminalIcon/TerminalIcon.tsx b/src/icons/TerminalIcon/TerminalIcon.tsx deleted file mode 100644 index 3b7967ca9..000000000 --- a/src/icons/TerminalIcon/TerminalIcon.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { FC } from 'react'; -import { ONYX_BLACK } from '../../theme'; -import { IconProps } from '../types'; - -const TerminalIcon: FC<IconProps> = ({ width, height, fill, ...props }) => { - return ( - <svg - width={width} - fill={fill || ONYX_BLACK} - height={height} - version="1.1" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 512 512" - {...props} - > - <path d="M432,32H80A64.07,64.07,0,0,0,16,96V416a64.07,64.07,0,0,0,64,64H432a64.07,64.07,0,0,0,64-64V96A64.07,64.07,0,0,0,432,32ZM96,256a16,16,0,0,1-10-28.49L150.39,176,86,124.49a16,16,0,1,1,20-25l80,64a16,16,0,0,1,0,25l-80,64A16,16,0,0,1,96,256Zm160,0H192a16,16,0,0,1,0-32h64a16,16,0,0,1,0,32Z" /> - </svg> - ); -}; - -export default TerminalIcon; diff --git a/src/icons/TerminalIcon/index.ts b/src/icons/TerminalIcon/index.ts deleted file mode 100644 index 31ff476e3..000000000 --- a/src/icons/TerminalIcon/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TerminalIcon } from './TerminalIcon'; diff --git a/src/icons/Toolkit/ToolkitIcon.tsx b/src/icons/Toolkit/ToolkitIcon.tsx deleted file mode 100644 index 0e2aeb1ae..000000000 --- a/src/icons/Toolkit/ToolkitIcon.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const ToolkitIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 122.88 101.9" - {...props} - > - <path - className="cls-1" - d="M3.34,0h116.2a3.35,3.35,0,0,1,3.34,3.34v77a3.35,3.35,0,0,1-3.34,3.34H3.34A3.35,3.35,0,0,1,0,80.32v-77A3.35,3.35,0,0,1,3.34,0Zm43,88.27h30.3c.08,5.24,2.24,9.94,8.09,13.63H38.2c4.68-3.39,8.11-7.51,8.09-13.63Zm-39-83.5H115.56a3,3,0,0,1,3,3V68a3,3,0,0,1-3,3H7.33a3,3,0,0,1-2.95-3V7.72a3,3,0,0,1,3-2.95Z" - /> - </svg> - ); -}; - -export default ToolkitIcon; diff --git a/src/icons/Toolkit/index.ts b/src/icons/Toolkit/index.ts deleted file mode 100644 index 0fbe43af0..000000000 --- a/src/icons/Toolkit/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ToolkitIcon } from './ToolkitIcon'; diff --git a/src/icons/Touch/TouchAppIcon.tsx b/src/icons/Touch/TouchAppIcon.tsx deleted file mode 100644 index 96977bfb9..000000000 --- a/src/icons/Touch/TouchAppIcon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const TouchAppIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 18 24" - {...props} - > - <g clipPath="url(#clip0_1_9)"> - <path d="M4.85714 9.41714V5.14286C4.85714 3.56571 6.13714 2.28571 7.71429 2.28571C9.29143 2.28571 10.5714 3.56571 10.5714 5.14286V9.41714C11.9543 8.49143 12.8571 6.92571 12.8571 5.14286C12.8571 2.29714 10.56 0 7.71429 0C4.86857 0 2.57143 2.29714 2.57143 5.14286C2.57143 6.92571 3.47429 8.49143 4.85714 9.41714ZM16.1029 14.7086L10.9143 12.1257C10.72 12.0457 10.5143 12 10.2971 12H9.42857V5.14286C9.42857 4.19429 8.66286 3.42857 7.71429 3.42857C6.76571 3.42857 6 4.19429 6 5.14286V17.4171C1.88571 16.5486 1.95429 16.56 1.80571 16.56C1.45143 16.56 1.13143 16.7086 0.902857 16.9371L0 17.8514L5.64571 23.4971C5.95428 23.8057 6.38857 24 6.85714 24H14.6171C15.4743 24 16.1371 23.3714 16.2629 22.5371L17.12 16.5143C17.1314 16.4343 17.1429 16.3543 17.1429 16.2857C17.1429 15.5771 16.7086 14..96 16.1029 14.7086Z" /> - </g> - <defs> - <clipPath id="clip0_1_9"> - <rect width="17.14" height="24" fill="white" /> - </clipPath> - </defs> - </svg> - ); -}; - -export default TouchAppIcon; diff --git a/src/icons/Touch/index.ts b/src/icons/Touch/index.ts deleted file mode 100644 index d25d14458..000000000 --- a/src/icons/Touch/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TouchAppIcon } from './TouchAppIcon'; diff --git a/src/icons/Triangle/TriangleIcon.tsx b/src/icons/Triangle/TriangleIcon.tsx deleted file mode 100644 index 1eb18d656..000000000 --- a/src/icons/Triangle/TriangleIcon.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const TriangleIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 32 28.364" - {...props} - > - <path - d="m18.603 2.181 11.967 20.727c1.12 1.939 -0.279 4.364 -2.519 4.364H4.116c-2.239 0 -3.638 -2.425 -2.519 -4.364L13.564 2.181c1.12 -1.939 3.919 -1.939 5.039 0Z" - strokeWidth="1.4549333333333334" - /> - </svg> - ); -}; - -export default TriangleIcon; diff --git a/src/icons/Triangle/index.ts b/src/icons/Triangle/index.ts deleted file mode 100644 index 6423c9743..000000000 --- a/src/icons/Triangle/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TriangleIcon } from './TriangleIcon'; diff --git a/src/icons/Tropy/TropyIcon.tsx b/src/icons/Tropy/TropyIcon.tsx deleted file mode 100644 index 61c27069b..000000000 --- a/src/icons/Tropy/TropyIcon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; - -interface TrophyIconProps { - width?: string; - height?: string; - fill?: string; - style?: React.CSSProperties; -} - -const TrophyIcon: React.FC<TrophyIconProps> = ({ - width = '24', - height = '24', - fill = 'currentColor', - style = {} -}) => ( - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - width={width} - height={height} - fill={fill} - style={style} - > - <path d="M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v1c0 2.55 1.92 4.63 4.39 4.94.63 1.5 1.98 2.63 3.61 2.96V19H7v2h10v-2h-4v-3.1c1.63-.33 2.98-1.46 3.61-2.96C19.08 12.63 21 10.55 21 8V7c0-1.1-.9-2-2-2M5 8V7h2v3.82C5.84 10.4 5 9.3 5 8m14 0c0 1.3-.84 2.4-2 2.82V7h2z"></path> - </svg> -); - -export default TrophyIcon; diff --git a/src/icons/Tropy/index.ts b/src/icons/Tropy/index.ts deleted file mode 100644 index 7f82f5ccc..000000000 --- a/src/icons/Tropy/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TropyIcon } from './TropyIcon'; diff --git a/src/icons/Undeploy/OutlinedUndeployIcon.tsx b/src/icons/Undeploy/OutlinedUndeployIcon.tsx deleted file mode 100644 index 1076fdd59..000000000 --- a/src/icons/Undeploy/OutlinedUndeployIcon.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedUndeployIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path fill="none" d="M0 0h24v24H0zm0 0h24v24H0V0z"></path> - <path d="M1.79 12l5.58 5.59L5.96 19 .37 13.41 1.79 12zm.45-7.78L12.9 14.89l-1.28 1.28L7.44 12l-1.41 1.41L11.62 19l2.69-2.69 4.89 4.89 1.41-1.41L3.65 2.81 2.24 4.22zm14.9 9.27L23.62 7 22.2 5.59l-6.48 6.48 1.42 1.42zM17.96 7l-1.41-1.41-3.65 3.66 1.41 1.41L17.96 7z"></path> - </svg> - ); -}; - -export default OutlinedUndeployIcon; diff --git a/src/icons/Undeploy/index.ts b/src/icons/Undeploy/index.ts deleted file mode 100644 index 802fe7277..000000000 --- a/src/icons/Undeploy/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedUndeployIcon } from './OutlinedUndeployIcon'; diff --git a/src/icons/Undo/OutlinedUndoIcon.tsx b/src/icons/Undo/OutlinedUndoIcon.tsx deleted file mode 100644 index a7685381f..000000000 --- a/src/icons/Undo/OutlinedUndoIcon.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedUndoIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z" /> - </svg> - ); -}; - -export default OutlinedUndoIcon; diff --git a/src/icons/Undo/index.ts b/src/icons/Undo/index.ts deleted file mode 100644 index b5eaa3f40..000000000 --- a/src/icons/Undo/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedUndoIcon } from './OutlinedUndoIcon'; diff --git a/src/icons/Validate/OutlinedValidateIcon.tsx b/src/icons/Validate/OutlinedValidateIcon.tsx deleted file mode 100644 index 03c0e3035..000000000 --- a/src/icons/Validate/OutlinedValidateIcon.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedValidateIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z" /> - </svg> - ); -}; - -export default OutlinedValidateIcon; diff --git a/src/icons/Validate/index.ts b/src/icons/Validate/index.ts deleted file mode 100644 index 4763b681e..000000000 --- a/src/icons/Validate/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedValidateIcon } from './OutlinedValidateIcon'; diff --git a/src/icons/View/ViewIcon.tsx b/src/icons/View/ViewIcon.tsx deleted file mode 100644 index 0ccc69c28..000000000 --- a/src/icons/View/ViewIcon.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -const ViewsIcon: FC<IconProps> = ({ width, height, style = {}, fill }) => ( - <svg - style={style} - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 26 23" - width={width} - > - <g clip-path="url(#clip0_23433_12271)"> - <path - d="M20.5866 8.85328L14.5 17.99L12.5 13.9993L20.7388 1.03498C20.8625 0.818834 21.0289 0.629639 21.2282 0.478725C21.4274 0.327812 21.6553 0.218281 21.8982 0.156693C22.0596 0.111893 22.2263 0.0891113 22.3938 0.0889721C22.7289 0.0883636 23.0579 0.176991 23.3465 0.345577C23.7828 0.596529 24.1009 1.0086 24.231 1.49149C24.3611 1.97438 24.2927 2.48869 24.0408 2.9217L22.7901 5.07719L20.5866 8.85328Z" - fill={fill} - /> - <path - d="M16.4299 21.5991C16.2979 22.0816 15.9805 22.4937 15.5455 22.7472C15.3289 22.8713 15.0897 22.9518 14.8416 22.984C14.5935 23.0163 14.3414 22.9996 14.0998 22.935C13.8582 22.8704 13.6319 22.7591 13.4339 22.6076C13.2359 22.456 13.07 22.2672 12.9459 22.052L12.6559 21.5462L12.3664 22.052C12.1113 22.4842 11.6946 22.7994 11.2065 22.9295C10.7185 23.0597 10.1984 22.9941 9.75875 22.7472C9.32185 22.4949 9.00355 22.0815 8.87345 21.5974C8.74336 21.1132 8.81205 20.5978 9.0645 20.1637L10.4599 17.769L5.30832 8.94596C5.30596 8.94596 5.31068 8.94596 5.30832 8.94596L3.5 5H7.49997L9.70534 8.94596L16.2393 20.1626C16.3677 20.3767 16.4509 20.6145 16.4836 20.8614C16.5164 21.1084 16.4981 21.3593 16.4299 21.5991Z" - fill={fill} - /> - <path - d="M3.5 5L2.20444 2.9245C2.07914 2.70986 1.99788 2.47281 1.96534 2.22696C1.9328 1.98111 1.94962 1.73132 2.01483 1.49193C2.08004 1.25255 2.19235 1.02828 2.34531 0.832035C2.49828 0.635786 2.68888 0.471418 2.90616 0.348377C3.19532 0.181919 3.52446 0.0958281 3.85887 0.0991778C4.1941 0.0989971 4.5235 0.1861 4.81405 0.351759C5.1046 0.517418 5.34611 0.755816 5.51438 1.04307L7.5 5H3.5Z" - fill={fill} - /> - </g> - <defs> - <clipPath id="clip0_23433_12271"> - <rect width="26" height="22.8163" fill="white" transform="matrix(1 0 0 -1 0 22.9082)" /> - </clipPath> - </defs> - </svg> -); - -export default ViewsIcon; diff --git a/src/icons/View/index.ts b/src/icons/View/index.ts deleted file mode 100644 index 07e933a55..000000000 --- a/src/icons/View/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ViewIcon } from './ViewIcon'; diff --git a/src/icons/Visibility/OutlinedVisibilityOffIcon.tsx b/src/icons/Visibility/OutlinedVisibilityOffIcon.tsx deleted file mode 100644 index af9c0acda..000000000 --- a/src/icons/Visibility/OutlinedVisibilityOffIcon.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedVisibilityOffIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <svg> - <path d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"></path> - </svg> - </svg> - ); -}; - -export default OutlinedVisibilityOffIcon; diff --git a/src/icons/Visibility/OutlinedVisibilityOnIcon.tsx b/src/icons/Visibility/OutlinedVisibilityOnIcon.tsx deleted file mode 100644 index 45b37ecb5..000000000 --- a/src/icons/Visibility/OutlinedVisibilityOnIcon.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedVisibilityOnIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <svg> - <path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"></path> - </svg> - </svg> - ); -}; - -export default OutlinedVisibilityOnIcon; diff --git a/src/icons/Visibility/index.ts b/src/icons/Visibility/index.ts deleted file mode 100644 index 5f92ea44a..000000000 --- a/src/icons/Visibility/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as OutlinedVisibilityOffIcon } from './OutlinedVisibilityOffIcon'; -export { default as OutlinedVisibilityOnIcon } from './OutlinedVisibilityOnIcon'; diff --git a/src/icons/Visualizer/OutlinedVisualizerSwitcherIcon.tsx b/src/icons/Visualizer/OutlinedVisualizerSwitcherIcon.tsx deleted file mode 100644 index 8ba61fbb2..000000000 --- a/src/icons/Visualizer/OutlinedVisualizerSwitcherIcon.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import { IconProps } from '../types'; - -export const OutlinedVisualizerSwitcherIcon: FC<IconProps> = ({ width, height, ...props }) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z" /> - </svg> - ); -}; - -export default OutlinedVisualizerSwitcherIcon; diff --git a/src/icons/Visualizer/index.ts b/src/icons/Visualizer/index.ts deleted file mode 100644 index 369cb6c82..000000000 --- a/src/icons/Visualizer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as OutlinedVisualizerSwitcherIcon } from './OutlinedVisualizerSwitcherIcon'; diff --git a/src/icons/Warning/WarningIcon.tsx b/src/icons/Warning/WarningIcon.tsx deleted file mode 100644 index 5a861d1e2..000000000 --- a/src/icons/Warning/WarningIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const WarningIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - aria-hidden="true" - viewBox="0 0 24 24" - data-testid="WarningIcon" - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - {...props} - > - <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"></path> - </svg> - ); -}; - -export default WarningIcon; diff --git a/src/icons/Warning/index.ts b/src/icons/Warning/index.ts deleted file mode 100644 index d309e5490..000000000 --- a/src/icons/Warning/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { WarningIcon } from './WarningIcon'; diff --git a/src/icons/Wasm/WasmIcon.tsx b/src/icons/Wasm/WasmIcon.tsx deleted file mode 100644 index bf8065a74..000000000 --- a/src/icons/Wasm/WasmIcon.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -const WasmIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}: IconProps): JSX.Element => { - return ( - <svg - viewBox="0 0 100 100" - xmlns="http://www.w3.org/2000/svg" - width={width} - height={height} - fill={props.fill} - {...props} - > - <g> - <path d="M61.4379 0C61.4379 0.176471 61.4379 0.352941 61.4379 0.539216C61.4379 6.87255 56.3039 12.0049 49.9722 12.0049C43.6389 12.0049 38.5065 6.87092 38.5065 0.539216C38.5065 0.352941 38.5065 0.176471 38.5065 0L0 0V100H100V0H61.4379Z" /> - <path - d="M23.2285 53.8905H29.856L34.3805 77.9869H34.4622L39.9001 53.8905H46.0994L51.0112 78.2827H51.1076L56.2644 53.8905H62.7644L54.3184 89.2974H47.7416L42.8707 65.201H42.7432L37.5292 89.2974H30.8298L23.2285 53.8905ZM70.2367 53.8905H80.6844L91.0602 89.2974H84.2236L81.9671 81.4183H70.0651L68.3233 89.2974H61.6648L70.2367 53.8905ZM74.2138 62.6176L71.3233 75.6078H80.32L77.0014 62.6176H74.2138Z" - fill="black" - /> - </g> - <defs> - <clipPath> - <rect width="100" height="100" fill="white" /> - </clipPath> - </defs> - </svg> - ); -}; - -export default WasmIcon; diff --git a/src/icons/Wasm/index.tsx b/src/icons/Wasm/index.tsx deleted file mode 100644 index 11af41e1e..000000000 --- a/src/icons/Wasm/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as WasmIcon } from './WasmIcon'; diff --git a/src/icons/Workspace/WorkspaceIcon.tsx b/src/icons/Workspace/WorkspaceIcon.tsx deleted file mode 100644 index d4cc66089..000000000 --- a/src/icons/Workspace/WorkspaceIcon.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH, KEPPEL_GREEN_FILL } from '../../constants/constants'; -import { CustomIconProps } from '../types'; - -export const WorkspaceIcon = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - secondaryFill = KEPPEL_GREEN_FILL, - fill = 'currentColor', - ...props -}: CustomIconProps): JSX.Element => { - return ( - <svg - xmlns="http://www.w3.org/2000/svg" - height={height} - viewBox="0 0 24 24" - width={width} - fill={fill} - stroke={fill} - stroke-width="2" - stroke-linecap="round" - stroke-linejoin="round" - {...props} - > - <path - d="M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z" - stroke={fill} - fill={fill} - ></path> - <rect - x="3" - y="14" - width="7" - height="7" - rx="1" - stroke={secondaryFill} - fill={secondaryFill} - ></rect> - <circle cx="17.5" cy="17.5" r="3.5" stroke={fill} fill={fill}></circle> - </svg> - ); -}; - -export default WorkspaceIcon; diff --git a/src/icons/Workspace/index.ts b/src/icons/Workspace/index.ts deleted file mode 100644 index eddf60bf0..000000000 --- a/src/icons/Workspace/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as WorkspaceIcon } from './WorkspaceIcon'; diff --git a/src/icons/Zoom/ZoomInIcon.tsx b/src/icons/Zoom/ZoomInIcon.tsx deleted file mode 100644 index 3bb324337..000000000 --- a/src/icons/Zoom/ZoomInIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ZoomInIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" /> - </svg> - ); -}; - -export default ZoomInIcon; diff --git a/src/icons/Zoom/ZoomOutIcon.tsx b/src/icons/Zoom/ZoomOutIcon.tsx deleted file mode 100644 index 84fb73996..000000000 --- a/src/icons/Zoom/ZoomOutIcon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '../../constants/constants'; -import { IconProps } from '../types'; - -export const ZoomOutIcon: FC<IconProps> = ({ - width = DEFAULT_WIDTH, - height = DEFAULT_HEIGHT, - ...props -}) => { - return ( - <svg - width={width} - height={height} - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - {...props} - > - <path d="M0 0h24v24H0z" fill="none" /> - <path d="M19 13H5v-2h14v2z" /> - </svg> - ); -}; - -export default ZoomOutIcon; diff --git a/src/icons/Zoom/index.ts b/src/icons/Zoom/index.ts deleted file mode 100644 index 3115a75a5..000000000 --- a/src/icons/Zoom/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as ZoomInIcon } from './ZoomInIcon'; -export { default as ZoomOutIcon } from './ZoomOutIcon'; diff --git a/src/icons/index.ts b/src/icons/index.ts deleted file mode 100644 index 284941302..000000000 --- a/src/icons/index.ts +++ /dev/null @@ -1,129 +0,0 @@ -export * from './Add'; -export * from './AddCircle'; -export * from './Application'; -export * from './ArrowCompress'; -export * from './ArrowExpand'; -export * from './Bell'; -export * from './Bus'; -export * from './CatalogIcon'; -export * from './Chevron'; -export * from './Circle'; -export * from './Clone'; -export * from './Close'; -export * from './Cloud'; -export * from './CollapseAll'; -export * from './Column'; -export * from './Component'; -export * from './Configuration'; -export * from './ContentFilter'; -export * from './Copy'; -export * from './CreateNew'; -export * from './Credential'; -export * from './CrossCircle'; -export * from './Dashboard'; -export * from './DataObject'; -export * from './Delete'; -export * from './Deploy'; -export * from './Designer'; -export * from './Detail'; -export * from './DropDownIcon'; -export * from './Error'; -export * from './ExpandAll'; -export * from './Favorite'; -export * from './Filter'; -export * from './Fullscreen'; -export * from './Hierarchical'; -export * from './Info'; -export { default as InsertChartIcon } from './InsertChartIcon'; -export * from './Rectangle'; -export * from './Shapes'; -// export { default as MergeActionIcon } from "./MergeActionIcon"; -export * from './Mesh'; -// export { default as ModifiedApplicationFileIcon } from "./ModifiedApplicationFileIcon"; -// export { default as OriginalApplicationFileIcon } from "./OriginalApplicationFileIcon"; -export * from './Calender'; -export * from './CaretDown'; -export * from './Chain'; -export * from './Challenges'; -export * from './CheckCircle'; -export * from './ChevronLeft'; -export * from './ContentClassIcons'; -export * from './Database'; -export * from './Deployments'; -export * from './Design'; -export * from './Document'; -export * from './Done'; -export * from './Download'; -export * from './Drag'; -export * from './Edit'; -export * from './EmptyStyle'; -export * from './Environment'; -export * from './Export'; -export * from './ExternalLink'; -export * from './Feedback'; -export * from './File'; -export * from './GetStarted'; -export * from './Github'; -export * from './Google'; -export * from './GridView'; -export * from './HelpIcon'; -export * from './Idea'; -export * from './InfoOutlined'; -export * from './InviteUser'; -export * from './Kanvas'; -export * from './Kubernetes'; -export * from './LeaderBoard'; -export * from './Learning'; -export * from './LeftAngledArrow'; -export * from './LeftArrow'; -export * from './Lock'; -export * from './Logout'; -export * from './Mendeley'; -export * from './Menu'; -export * from './MesheryFilter'; -export * from './MesheryOperator'; -export * from './MoveFile'; -export * from './Open'; -export * from './OpenInNew'; -export * from './Organization'; -export * from './PanTool'; -export * from './Pattern'; -export * from './Person'; -export * from './Pod'; -export * from './Poll'; -export * from './Public'; -export * from './Publish'; -export * from './Question'; -export * from './Read'; -export * from './Rectangle'; -export * from './Redo'; -export * from './Remove'; -export * from './Reset'; -export * from './RightArrow'; -export * from './Ring'; -export * from './Save'; -export * from './Screenshot'; -export * from './Search'; -export * from './Settings'; -export * from './Share'; -export * from './SMP'; -export * from './SocialMedial'; -export * from './Star'; -export * from './Success'; -export * from './TableView'; -export * from './TachographDigital'; -export * from './Tachometer'; -export * from './Teams'; -export * from './TerminalIcon'; -export * from './Toolkit'; -export * from './Touch'; -export * from './Triangle'; -export * from './Tropy'; -export * from './Undeploy'; -export * from './Undo'; -export * from './Validate'; -export * from './View'; -export * from './Visibility'; -export * from './Visualizer'; -export * from './Warning'; -export * from './Workspace'; diff --git a/src/icons/types.ts b/src/icons/types.ts deleted file mode 100644 index 01083842b..000000000 --- a/src/icons/types.ts +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; - -export type IconProps = { - children?: never; - color?: string; - title?: string; - width?: number | string; - height?: number | string; - fill?: string; -} & React.SVGProps<SVGSVGElement>; - -export type CustomIconProps = { - primaryFill?: string; - secondaryFill?: string; -} & IconProps; diff --git a/src/index.tsx b/src/index.tsx deleted file mode 100644 index 233a6c021..000000000 --- a/src/index.tsx +++ /dev/null @@ -1,10 +0,0 @@ -export * from './actors'; -export * from './base'; -export * from './colors'; -export * from './custom'; -export * from './hooks'; -export * from './icons'; -export * from './redux-persist'; -export * from './schemas'; -export * from './theme'; -export * from './utils'; diff --git a/src/patches/Tooltip.tsx b/src/patches/Tooltip.tsx deleted file mode 100644 index c06ad59fb..000000000 --- a/src/patches/Tooltip.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import MuiTooltip, { TooltipProps } from '@mui/material/Tooltip'; -import React from 'react'; - -export interface ChildrenPropType<T> { - children?: T; -} - -/** - * Create a custom Tooltip component to resolve the React.forwardRef warning - */ -export const Tooltip = React.forwardRef< - HTMLDivElement, - TooltipProps & ChildrenPropType<React.ReactNode> ->( - (props, ref): JSX.Element => ( - <MuiTooltip {...props} ref={ref}> - <span>{props.children}</span> - </MuiTooltip> - ) -); - -export default Tooltip; diff --git a/src/redux-persist/PersistedStateProvider.tsx b/src/redux-persist/PersistedStateProvider.tsx deleted file mode 100644 index 80dd097cd..000000000 --- a/src/redux-persist/PersistedStateProvider.tsx +++ /dev/null @@ -1,43 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { ThunkDispatch } from '@reduxjs/toolkit'; -import { FC, ReactNode, useEffect, useState } from 'react'; -import { useDispatch } from 'react-redux'; -import { Dispatch } from 'redux'; -import { RehydrateStateAction } from './initReduxPersist'; - -interface PersistedStateProviderProps { - children: ReactNode; - loadPersistedState: () => (dispatch: Dispatch<RehydrateStateAction>) => void; -} - -export const PersistedStateProvider: FC<PersistedStateProviderProps> = ({ - children, - loadPersistedState -}) => { - const [loading, setLoading] = useState(true); - const [error, setError] = useState<Error | null>(null); - - const dispatch = useDispatch<ThunkDispatch<any, unknown, RehydrateStateAction>>(); - - useEffect(() => { - if (!loading) { - return; - } - try { - dispatch(loadPersistedState()); - } catch (e) { - setError(e as Error); - } - setLoading(false); - }, [loading, dispatch, loadPersistedState]); - - if (error) { - console.error('Error Loading Persisted State', error); - } - - if (loading) { - return null; - } - - return <>{children}</>; -}; diff --git a/src/redux-persist/index.ts b/src/redux-persist/index.ts deleted file mode 100644 index 565e0ee5d..000000000 --- a/src/redux-persist/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './initReduxPersist'; -export * from './PersistedStateProvider'; diff --git a/src/redux-persist/initReduxPersist.ts b/src/redux-persist/initReduxPersist.ts deleted file mode 100644 index 5c3e9cbee..000000000 --- a/src/redux-persist/initReduxPersist.ts +++ /dev/null @@ -1,95 +0,0 @@ -import _ from 'lodash'; -import { Dispatch, Store } from 'redux'; - -const INVALID_REDUCER_PATH = Symbol('INVALID_REDUCER_PATH'); -const REHYDRATE_STATE_ACTION = 'REHYDRATE_STATE_ACTION'; - -export interface RehydrateStateAction { - type: typeof REHYDRATE_STATE_ACTION; - payload: { - reducerPath: string; - inflatedState: unknown; - }; -} - -type Action = RehydrateStateAction | { type: string; [key: string]: unknown }; - -interface ActionsToPersist { - [actionType: string]: string[]; -} - -const rehydrateState = (reducerPath: string, inflatedState: unknown): RehydrateStateAction => ({ - type: REHYDRATE_STATE_ACTION, - payload: { - reducerPath, - inflatedState - } -}); - -const rehydrateStateReducer = (state: unknown, action: Action): unknown => { - if (action.type === REHYDRATE_STATE_ACTION) { - const appState = _.cloneDeep(state); - _.set( - appState as object, - (action.payload as RehydrateStateAction['payload']).reducerPath.split('/'), - (action.payload as RehydrateStateAction['payload']).inflatedState - ); - return appState; - } - return state; -}; - -export const initReduxPersist = (actionsToPersist: ActionsToPersist) => { - const createPersistEnhancedReducer = - (reducer: (state: unknown, action: Action) => unknown) => - (state: unknown, action: Action): unknown => { - const newState = rehydrateStateReducer(state, action); - return reducer(newState, action); - }; - - const persistMiddleware = - (store: Store) => - (next: (action: Action) => unknown) => - (action: Action): unknown => { - const result = next(action); - - const reducersToPersist = actionsToPersist[action.type]; - - if (reducersToPersist) { - const appState = store.getState(); - reducersToPersist.forEach((reducerPath) => { - const path = reducerPath.split('/'); - const stateToPersist = _.get(appState, path, INVALID_REDUCER_PATH); - - if (stateToPersist === INVALID_REDUCER_PATH) { - throw new Error(`Reducer Path to Persist Is Invalid: ${reducerPath}`); - } - - localStorage.setItem(reducerPath, JSON.stringify(stateToPersist)); - }); - } - return result; - }; - - const loadPersistedState = () => (dispatch: Dispatch<RehydrateStateAction>) => { - Object.values(actionsToPersist).forEach((reducerPaths) => { - reducerPaths.forEach((path) => { - let inflatedState = localStorage.getItem(path); - try { - if (inflatedState) { - inflatedState = JSON.parse(inflatedState); - dispatch(rehydrateState(path, inflatedState)); - } - } catch (e) { - console.error(`Error rehydrating state for reducer ${path}`, inflatedState); - } - }); - }); - }; - - return { - persistMiddleware, - createPersistEnhancedReducer, - loadPersistedState - }; -}; diff --git a/src/schemas/createAndEditEnvironment/schema.tsx b/src/schemas/createAndEditEnvironment/schema.tsx deleted file mode 100644 index 3b6bdcde3..000000000 --- a/src/schemas/createAndEditEnvironment/schema.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { EnvironmentDefinitionV1Beta1OpenApiSchema } from '@layer5/schemas'; - -const environmentSchema = EnvironmentDefinitionV1Beta1OpenApiSchema.components.schemas; -const createAndEditEnvironmentSchema = { - title: 'Environment', - required: ['name'], - properties: { - description: { - description: environmentSchema.environmentPayload.properties.description.description, - format: 'textarea', - title: 'Description', - type: environmentSchema.environmentPayload.properties.description.type, - 'x-rjsf-grid-area': '12' - }, - name: { - description: environmentSchema.environmentPayload.properties.name.description, - title: 'Name', - type: environmentSchema.environmentPayload.properties.name.type, - 'x-rjsf-grid-area': '12' - }, - organization: { - type: environmentSchema.environmentPayload.properties.OrganizationID.type, - title: 'Organization', - description: environmentSchema.environmentPayload.properties.OrganizationID.description, - enum: [], - enumNames: [], - 'x-rjsf-grid-area': '12' - } - }, - type: 'object' -}; - -export default createAndEditEnvironmentSchema; diff --git a/src/schemas/createAndEditEnvironment/uiSchema.tsx b/src/schemas/createAndEditEnvironment/uiSchema.tsx deleted file mode 100644 index 5ec3d11f9..000000000 --- a/src/schemas/createAndEditEnvironment/uiSchema.tsx +++ /dev/null @@ -1,8 +0,0 @@ -const createAndEditEnvironmentUiSchema = { - organization: { - 'ui:disabled': false - }, - 'ui:order': ['organization', 'name', 'description'] -}; - -export default createAndEditEnvironmentUiSchema; diff --git a/src/schemas/createAndEditWorkspace/schema.tsx b/src/schemas/createAndEditWorkspace/schema.tsx deleted file mode 100644 index 3d378ccd9..000000000 --- a/src/schemas/createAndEditWorkspace/schema.tsx +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Schema for create or edit workspace modals - */ -import { WorkspaceDefinitionV1Beta1OpenApiSchema } from '@layer5/schemas'; - -const workspaceSchema = WorkspaceDefinitionV1Beta1OpenApiSchema.components.schemas; -const createAndEditWorkspace = { - properties: { - description: { - description: workspaceSchema.workspacePayload.properties.description.description, - format: 'textarea', - title: 'Description', - type: workspaceSchema.workspacePayload.properties.description.type, - 'x-rjsf-grid-area': '12' - }, - name: { - description: workspaceSchema.workspacePayload.properties.name.description, - title: 'Name', - type: workspaceSchema.workspacePayload.properties.name.type, - 'x-rjsf-grid-area': '12' - }, - organization: { - type: workspaceSchema.workspacePayload.properties.organization_id.type, - description: workspaceSchema.workspacePayload.properties.organization_id.description, - title: 'Organization', - enum: [], - enumNames: [], - 'x-rjsf-grid-area': '12' - } - }, - type: 'object', - required: ['name', 'organization'] -}; - -export default createAndEditWorkspace; diff --git a/src/schemas/createAndEditWorkspace/uiSchema.tsx b/src/schemas/createAndEditWorkspace/uiSchema.tsx deleted file mode 100644 index 0a256ff0a..000000000 --- a/src/schemas/createAndEditWorkspace/uiSchema.tsx +++ /dev/null @@ -1,9 +0,0 @@ -const createAndEditWorkspaceUiSchema = { - organization: { - 'ui:disabled': false, - 'ui:widget': 'select' - }, - 'ui:order': ['organization', 'name', 'description'] -}; - -export default createAndEditWorkspaceUiSchema; diff --git a/src/schemas/grafanaCredential/schema.tsx b/src/schemas/grafanaCredential/schema.tsx deleted file mode 100644 index 8607fbcf4..000000000 --- a/src/schemas/grafanaCredential/schema.tsx +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Schema for creating grafana credential; - */ -const grafanaCredentialSchema = { - type: 'object', - title: 'Grafana', - properties: { - credentialName: { - title: 'Credential Name', - type: 'string', - description: 'Name of your credential' - }, - secret: { - type: 'object', - title: 'Credential Secret', - description: 'Credential secret for the Grafana instance', - properties: { - grafanaURL: { - type: 'string', - title: 'URL', - description: 'URL of the Grafana instance' - }, - grafanaAPIKey: { - type: 'string', - title: 'API Key', - description: 'API Key for the Grafana instance' - } - }, - required: ['grafanaURL', 'grafanaAPIKey'] - } - }, - required: ['credentialName'] -}; - -export default grafanaCredentialSchema; diff --git a/src/schemas/grafanaCredential/uiSchema.tsx b/src/schemas/grafanaCredential/uiSchema.tsx deleted file mode 100644 index 85f8c332a..000000000 --- a/src/schemas/grafanaCredential/uiSchema.tsx +++ /dev/null @@ -1,3 +0,0 @@ -const grafanaCredentialUiSchema = {}; - -export default grafanaCredentialUiSchema; diff --git a/src/schemas/helmConnection/schema.tsx b/src/schemas/helmConnection/schema.tsx deleted file mode 100644 index 18d0798e2..000000000 --- a/src/schemas/helmConnection/schema.tsx +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Schema for configuring Helm repository connections. This schema is designed for use in a wizard or form - * where users can provide information about connecting to a Helm repository for initiating connection. - */ -const helmConnectionSchema = { - type: 'object', - properties: { - name: { - type: 'string', - title: 'Name', - minLength: 1, - description: 'A short, memorable name of the Helm repository connection.', - 'x-rjsf-grid-area': '12' - }, - description: { - type: 'string', - title: 'Description', - format: 'textarea', - description: 'An explanation as to the purpose and/or use of this Helm repository.', - 'x-rjsf-grid-area': '12' - }, - url: { - type: 'string', - title: 'URL', - format: 'uri', - description: - 'The URL (must be http/s) of the Helm repository in which one or more Helm charts are hosted.', - 'x-rjsf-grid-area': '12' - } - }, - required: ['name', 'url'] -}; - -export default helmConnectionSchema; diff --git a/src/schemas/helmConnection/uiSchema.tsx b/src/schemas/helmConnection/uiSchema.tsx deleted file mode 100644 index 7ac222110..000000000 --- a/src/schemas/helmConnection/uiSchema.tsx +++ /dev/null @@ -1,5 +0,0 @@ -const helmConnectionUiSchema = { - 'ui:order': ['name', 'description', 'url'] -}; - -export default helmConnectionUiSchema; diff --git a/src/schemas/helpAndSupportModal/schema.tsx b/src/schemas/helpAndSupportModal/schema.tsx deleted file mode 100644 index bbafa84fd..000000000 --- a/src/schemas/helpAndSupportModal/schema.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Represents the JSON Schema for the Help and Support modal form. - * This schema is designed to capture information for support request. - * - * Playground link - - */ -const helpAndSupportModalSchema = { - title: 'Support Form', - properties: { - subject: { - type: 'string', - title: 'Subject', - description: - 'Enter a concise and descriptive title for your support request. This will help us quickly understand the nature of your inquiry.', - minLength: 1, - 'x-rjsf-grid-area': '12' - }, - message: { - type: 'string', - title: 'Description', - description: - 'Please provide a detailed description of your issue or question. Include any relevant information that you think will help us assist you more effectively. The more details you provide, the better we can understand and address your concerns.', - minLength: 10, - format: 'textarea', - 'x-rjsf-grid-area': '12' - }, - scope: { - type: 'string', - enum: ['Support', 'Community', 'Account', 'Commercial'], - title: 'Scope of Questions', - description: 'Select the category that best represents the nature of your inquiry.', - default: 'Technical' - } - }, - required: ['subject', 'message'] -}; - -export default helpAndSupportModalSchema; diff --git a/src/schemas/helpAndSupportModal/uiSchema.tsx b/src/schemas/helpAndSupportModal/uiSchema.tsx deleted file mode 100644 index 912c2fb0c..000000000 --- a/src/schemas/helpAndSupportModal/uiSchema.tsx +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Represents UI schema for help and support modal - */ -const helpAndSupportModalUiSchema = { - subject: { - 'ui:placeholder': 'Summary or title for your support request' - }, - message: { - 'ui:placeholder': 'Detailed description of your support request' - }, - scope: { - 'ui:widget': 'radio' - } -}; - -export default helpAndSupportModalUiSchema; diff --git a/src/schemas/importDesign/schema.tsx b/src/schemas/importDesign/schema.tsx deleted file mode 100644 index 0d3b21774..000000000 --- a/src/schemas/importDesign/schema.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { DesignDefinitionV1Beta1OpenApiSchema } from '@layer5/schemas'; - -const DesignSchema = DesignDefinitionV1Beta1OpenApiSchema.components.schemas; - -const importDesignSchema = { - type: 'object', - properties: { - name: { - type: DesignSchema.MesheryPatternImportRequestBody.properties.name.type, - title: 'Design file name', - default: DesignSchema.MesheryPatternImportRequestBody.properties.name.default, - 'x-rjsf-grid-area': '12', - description: DesignSchema.MesheryPatternImportRequestBody.properties.name.description - }, - - uploadType: { - title: 'Upload method', - enum: ['File Upload', 'URL Import'], - default: 'URL Import', - 'x-rjsf-grid-area': '12', - description: DesignSchema.MesheryPatternImportRequestBody.description - } - }, - - allOf: [ - { - if: { - properties: { - uploadType: { - const: 'File Upload' - } - } - }, - then: { - properties: { - file: { - type: DesignSchema.MesheryPatternImportRequestBody.properties.file.type, - format: DesignSchema.MesheryPatternImportRequestBody.properties.file.format, - description: DesignSchema.MesheryPatternImportRequestBody.properties.file.description, - 'x-rjsf-grid-area': '12' - } - }, - required: ['file'] - } - }, - { - if: { - properties: { - uploadType: { - const: 'URL Import' - } - } - }, - then: { - properties: { - url: { - type: DesignSchema.MesheryPatternImportRequestBody.properties.url.type, - format: DesignSchema.MesheryPatternImportRequestBody.properties.url.format, - title: 'URL', - description: DesignSchema.MesheryPatternImportRequestBody.properties.url.description, - 'x-rjsf-grid-area': '12' - } - }, - required: ['url'] - } - } - ], - required: ['uploadType', 'name'] -}; - -export default importDesignSchema; diff --git a/src/schemas/importDesign/uiSchema.tsx b/src/schemas/importDesign/uiSchema.tsx deleted file mode 100644 index 538272477..000000000 --- a/src/schemas/importDesign/uiSchema.tsx +++ /dev/null @@ -1,8 +0,0 @@ -const importDesignUiSchema = { - uploadType: { - 'ui:widget': 'radio' - }, - 'ui:order': ['name', 'uploadType', 'file', 'url'] -}; - -export default importDesignUiSchema; diff --git a/src/schemas/importFilter/schema.tsx b/src/schemas/importFilter/schema.tsx deleted file mode 100644 index d1204b119..000000000 --- a/src/schemas/importFilter/schema.tsx +++ /dev/null @@ -1,75 +0,0 @@ -const importFilterSchema = { - type: 'object', - properties: { - name: { - type: 'string', - title: 'Name', - description: 'The name of Filter', - default: 'Unitled Filter File', - 'x-rjsf-grid-area': '6' - }, - config: { - type: 'string', - title: 'WASM Filter Config', - format: 'textarea', - description: - 'Enter the configuration details. The configuration detail is the yaml string with running details', - default: - 'This is an Exmaple config, config could be Yaml or JSON\ntyped_config:\r\n "@type": type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm\r\n config:\r\n name: example-filter\r\n rootId: my_root_id\r\n vmConfig:\r\n code:\r\n local:\r\n filename: /var/local/lib/wasm-filters/example-filter.wasm\r\n runtime: envoy.wasm.runtime.v8\r\n vmId: example-filter\r\n allow_precompiled: true\r\nname: envoy.filters.http.wasm', - 'x-rjsf-grid-area': '12' - }, - uploadType: { - title: 'Select the Upload Method', - enum: ['File Upload', 'URL Upload'], - default: 'File Upload', - 'x-rjsf-grid-area': '6' - } - }, - allOf: [ - { - if: { - properties: { - uploadType: { - const: 'File Upload' - } - } - }, - then: { - title: 'via File', - properties: { - file: { - type: 'string', - format: 'file', - description: 'Browse the filter file from your file system', - 'x-rjsf-grid-area': '12' - } - }, - required: ['file'] - } - }, - { - if: { - properties: { - uploadType: { - const: 'URL Upload' - } - } - }, - then: { - title: 'via URL', - properties: { - url: { - type: 'string', - title: 'URL', - format: 'uri', - description: 'raw url of the filter file, example: https://raw.github.com/...', - 'x-rjsf-grid-area': '12' - } - }, - required: ['url'] - } - } - ] -}; - -export default importFilterSchema; diff --git a/src/schemas/importFilter/uiSchema.tsx b/src/schemas/importFilter/uiSchema.tsx deleted file mode 100644 index 3d9a9501a..000000000 --- a/src/schemas/importFilter/uiSchema.tsx +++ /dev/null @@ -1,5 +0,0 @@ -const importFilterUiSchema = { - 'ui:order': ['name', 'uploadType', 'config', 'file', 'url'] -}; - -export default importFilterUiSchema; diff --git a/src/schemas/importModel/schema.tsx b/src/schemas/importModel/schema.tsx deleted file mode 100644 index c15ec750b..000000000 --- a/src/schemas/importModel/schema.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { ModelDefinitionV1Beta1OpenApiSchema } from '@layer5/schemas'; - -const ModelSchema = ModelDefinitionV1Beta1OpenApiSchema.components.schemas; -const importModelSchema = { - type: 'object', - required: ['uploadType'], - properties: { - uploadType: { - type: ModelSchema.ImportRequest.properties.uploadType.type, - title: 'Upload method', - enum: ['File Import', 'URL Import', 'CSV Import'], - enumDescriptions: ModelSchema.ImportRequest.properties.uploadType.enumDescriptions, - default: 'Select the Upload Method', - 'x-rjsf-grid-area': '12', - description: ModelSchema.ImportRequest.properties.uploadType.description - } - }, - allOf: [ - { - if: { - properties: { - uploadType: { - const: 'File Import' - } - } - }, - then: { - properties: { - file: { - type: ModelSchema.ImportBody.oneOf[0].properties.modelFile?.type, - format: ModelSchema.ImportBody.oneOf[0].properties.modelFile?.format, - description: ModelSchema.ImportBody.oneOf[0].properties.modelFile?.description, - 'x-rjsf-grid-area': '12' - } - }, - required: ['file'] - } - }, - { - if: { - properties: { - uploadType: { - const: 'URL Import' - } - } - }, - then: { - properties: { - url: { - type: ModelSchema.ImportBody.oneOf[1].properties.url?.type, - format: ModelSchema.ImportBody.oneOf[1].properties.url?.format, - title: 'URL', - description: ModelSchema.ImportBody.oneOf[1].properties.url?.description, - 'x-rjsf-grid-area': '12', - disabled: true - } - }, - required: ['url'] - } - } - ] -}; - -export default importModelSchema; diff --git a/src/schemas/importModel/uiSchema.tsx b/src/schemas/importModel/uiSchema.tsx deleted file mode 100644 index 648273c68..000000000 --- a/src/schemas/importModel/uiSchema.tsx +++ /dev/null @@ -1,8 +0,0 @@ -const importModelUiSchema = { - uploadType: { - 'ui:widget': 'radio' - }, - 'ui:order': ['uploadType', 'file', 'url', 'csv'] -}; - -export default importModelUiSchema; diff --git a/src/schemas/index.tsx b/src/schemas/index.tsx deleted file mode 100644 index 1031148be..000000000 --- a/src/schemas/index.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import helpAndSupportModalSchema from './helpAndSupportModal/schema'; -import helpAndSupportModalUiSchema from './helpAndSupportModal/uiSchema'; - -import createAndEditEnvironmentSchema from './createAndEditEnvironment/schema'; -import createAndEditEnvironmentUiSchema from './createAndEditEnvironment/uiSchema'; - -import createAndEditWorkspaceSchema from './createAndEditWorkspace/schema'; -import createAndEditWorkspaceUiSchema from './createAndEditWorkspace/uiSchema'; - -import helmConnectionSchema from './helmConnection/schema'; -import helmConnectionUiSchema from './helmConnection/uiSchema'; - -import importDesignSchema from './importDesign/schema'; -import importDesignUiSchema from './importDesign/uiSchema'; - -import importFilterSchema from './importFilter/schema'; -import importFilterUiSchema from './importFilter/uiSchema'; - -import importModelSchema from './importModel/schema'; -import importModelUiSchema from './importModel/uiSchema'; - -import publishCatalogItemSchema from './publishCatalogItem/schema'; -import publishCatalogItemUiSchema from './publishCatalogItem/uiSchema'; - -import kubernetesCredentialSchema from './kubernetesCredential/schema'; -import kubernetesCredentialUiSchema from './kubernetesCredential/uiSchema'; - -import prometheusCredentialSchema from './prometheusCredential/schema'; -import prometheusCredentialUiSchema from './prometheusCredential/uiSchema'; - -import grafanaCredentialSchema from './grafanaCredential/schema'; -import grafanaCredentialSUiSchema from './grafanaCredential/uiSchema'; - -export { - createAndEditEnvironmentSchema, - createAndEditEnvironmentUiSchema, - createAndEditWorkspaceSchema, - createAndEditWorkspaceUiSchema, - grafanaCredentialSUiSchema, - grafanaCredentialSchema, - helmConnectionSchema, - helmConnectionUiSchema, - helpAndSupportModalSchema, - helpAndSupportModalUiSchema, - importDesignSchema, - importDesignUiSchema, - importFilterSchema, - importFilterUiSchema, - importModelSchema, - importModelUiSchema, - kubernetesCredentialSchema, - kubernetesCredentialUiSchema, - prometheusCredentialSchema, - prometheusCredentialUiSchema, - publishCatalogItemSchema, - publishCatalogItemUiSchema -}; diff --git a/src/schemas/kubernetesCredential/schema.tsx b/src/schemas/kubernetesCredential/schema.tsx deleted file mode 100644 index b11f10ee8..000000000 --- a/src/schemas/kubernetesCredential/schema.tsx +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Schema for creating grafana credential; - */ -const kubernetesCredentialSchema = { - type: 'object', - title: 'Kubernetes', - properties: { - credentialName: { - title: 'Credential Name', - type: 'string', - description: 'Name of your credential' - }, - secret: { - type: 'object', - title: 'Credential Secret', - description: 'Credential secret for the Kubernetes cluster', - properties: { - clusterName: { - type: 'string', - title: 'Cluster Name', - description: 'Name of the Kubernetes cluster' - }, - clusterServerURL: { - type: 'string', - title: 'Server URL', - description: 'URL of the Kubernetes cluster' - }, - auth: { - type: 'object', - title: 'Auth', - description: 'Kubernetes cluster authentication', - properties: { - clusterUserName: { - type: 'string', - title: 'User Name', - description: 'Name of the Kubernetes cluster user' - }, - clusterToken: { - type: 'string', - title: 'Token', - description: 'Token of the Kubernetes cluster user' - }, - clusterClientCertificateData: { - type: 'string', - title: 'Client Certificate Data', - description: 'Certificate data of the Kubernetes cluster' - }, - clusterClientKeyData: { - type: 'string', - title: 'Client Key Data', - description: 'Client Key data of the Kubernetes cluster' - }, - clusterCertificateAuthorityData: { - type: 'string', - title: 'Certificate Authority Data', - description: 'Certificate Authority data of the Kubernetes cluster' - } - }, - required: [ - 'clusterUserName', - 'clusterToken', - 'clusterClientCertificateData', - 'clusterClientKeyData', - 'clusterCertificateAuthorityData' - ] - } - }, - required: ['clusterName', 'clusterServerURL'] - } - }, - required: ['credentialName'] -}; - -export default kubernetesCredentialSchema; diff --git a/src/schemas/kubernetesCredential/uiSchema.tsx b/src/schemas/kubernetesCredential/uiSchema.tsx deleted file mode 100644 index 64ad52f6e..000000000 --- a/src/schemas/kubernetesCredential/uiSchema.tsx +++ /dev/null @@ -1,3 +0,0 @@ -const kubernetesCredentialUiSchema = {}; - -export default kubernetesCredentialUiSchema; diff --git a/src/schemas/prometheusCredential/schema.tsx b/src/schemas/prometheusCredential/schema.tsx deleted file mode 100644 index f1ecf146d..000000000 --- a/src/schemas/prometheusCredential/schema.tsx +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Schema for creating prometheus credential; - */ -const prometheusCredentialSchema = { - type: 'object', - title: 'Prometheus', - properties: { - credentialName: { - title: 'Credential Name', - type: 'string', - description: 'Name of your credential' - }, - secret: { - type: 'object', - title: 'Credential Secret', - description: 'Credential secret for the Prometheus instance', - properties: { - prometheusURL: { - type: 'string', - title: 'URL', - description: 'URL of the Prometheus instance' - } - }, - required: ['prometheusURL'] - } - }, - required: ['credentialName'] -}; - -export default prometheusCredentialSchema; diff --git a/src/schemas/prometheusCredential/uiSchema.tsx b/src/schemas/prometheusCredential/uiSchema.tsx deleted file mode 100644 index 0c5266b84..000000000 --- a/src/schemas/prometheusCredential/uiSchema.tsx +++ /dev/null @@ -1,3 +0,0 @@ -const prometheusCredentialUiSchema = {}; - -export default prometheusCredentialUiSchema; diff --git a/src/schemas/publishCatalogItem/schema.tsx b/src/schemas/publishCatalogItem/schema.tsx deleted file mode 100644 index 06295112f..000000000 --- a/src/schemas/publishCatalogItem/schema.tsx +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Schema for publish catalog item modal; - * Can be use for publishing filters and designs - */ -const publishCatalogItemSchema = { - type: 'object', - properties: { - compatibility: { - type: 'array', - title: 'Technology', - items: { - enum: ['kubernetes'], - type: 'string' - }, - uniqueItems: true, - minItems: 1, - description: - 'A list of technologies included in or implicated by this design; a list of relevant technology tags.', - 'x-rjsf-grid-area': 6 - }, - pattern_caveats: { - type: 'string', - title: 'Caveats and Considerations', - description: - 'Specific stipulations to consider and known behaviors to be aware of when using this design.', - format: 'textarea', - 'x-rjsf-grid-area': 12, - 'x-encode-in-uri': true - }, - pattern_info: { - type: 'string', - title: 'Description', - description: 'Purpose of the design along with its intended and unintended uses.', - format: 'textarea', - 'x-rjsf-grid-area': 12, - 'x-encode-in-uri': true - }, - type: { - type: 'string', - title: 'Type', - enum: [ - 'Deployment', - 'Observability', - 'Resiliency', - 'Scaling', - 'Security', - 'Traffic-management', - 'Troubleshooting', - 'Workloads' - ], - default: 'Deployment', - description: - 'Categorization of the type of design or operational flow depicted in this design.', - 'x-rjsf-grid-area': 6 - } - }, - required: ['compatibility', 'pattern_caveats', 'pattern_info', 'type'] -}; - -export default publishCatalogItemSchema; diff --git a/src/schemas/publishCatalogItem/uiSchema.tsx b/src/schemas/publishCatalogItem/uiSchema.tsx deleted file mode 100644 index 2e2e9f695..000000000 --- a/src/schemas/publishCatalogItem/uiSchema.tsx +++ /dev/null @@ -1,5 +0,0 @@ -const publishCatalogItemUiSchema = { - 'ui:order': ['type', 'compatibility', 'pattern_info', 'pattern_caveats'] -}; - -export default publishCatalogItemUiSchema; diff --git a/src/schemas/readme.md b/src/schemas/readme.md deleted file mode 100644 index 20fc817c9..000000000 --- a/src/schemas/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# RJSF Schemas - -RJSF, or React JSON Schema Form, schemas play a crucial role in defining the structure and behavior of forms. These schemas, written in JSON format, provide a blueprint for rendering forms dynamically and handling user input effectively. - -### What are RJSF Schemas? - -RJSF Schemas, based on the React JSON Schema Form library, define the structure, validation rules, and UI elements of dynamic forms in a standardized way. They enable the creation of consistent and flexible forms across our applications. - -### How to Use RJSF Schemas - -1. **Importing Schemas:** - Include the required schema in your React component by importing it. For example: - - ```javascript - import MyFormSchema from '@sistent/sistent'; - ``` - -1. **Rendering Forms:** - Integrate the schema into your component to render the form dynamically. Use already created generic RJSF components or use RJSF Form component directly. - - ```javascript - import { sampleSchema, sampleUiSchema } from '@sistent/sistent'; - <Form schema={sampleSchema} uiSchema={sampleUiSchema} onSubmit={handleFormSubmission} />; - ``` - -1. **Customization:** - Adjust the schema properties to tailor the form's appearance and behavior. Refer to the specific schema's documentation for customization options. - -### File Conventions for Schemas - -Follow a consistent file structure convention to enhance clarity and organization when adding new schema: - -1. Use the same name as the schema for the directory. -1. Use CamelCase for multi-word schema names, e.g., UserRegistrationFormSchema. -1. Create two separate files, schema.tsx and uiSchema.tsx, to store both schemas separately. - -### Naming Conventions for Schemas - -Follow a consistent naming convention to enhance clarity and organization when adding new schema: - -1. Use descriptive names that convey the purpose of the form. -1. CamelCase for multi-word schema names, e.g., UserRegistrationFormSchema. -1. Include "Schema" in the name to explicitly indicate that it's a schema, e.g., ProfileSettingsSchema. -1. Include "UiSchema" in the name to explicitly indicate that it's a UI schema, e.g., ProfileSettingsUiSchema. - -### Custom Properties - -In addition to the properties offered by the JSON schema, we have introduced the following custom properties that you can include in new schema: - -1. `x-rjsf-grid-area:` This property accepts an integer that defines the width of the field. For instance, specifying 6 means it will take up half of the parent width, while 12 signifies full width. -1. `x-encode-in-uri:` When set to true, this property enables RJSF to encode data in URI format and return it. diff --git a/src/theme/README.md b/src/theme/README.md deleted file mode 100644 index f9c47af12..000000000 --- a/src/theme/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# Sistent Theme Palette - -This document provides an overview of the custom palette used for theme components. - -## Palette Options - -### Interactiveness - -Defines the interaction color options used in the palette. - -- `default`: Default interaction color. -- `hover`: Color on hover. -- `disabled`: Color when disabled (optional). -- `pressed`: Color when pressed. -- `secondary`: Secondary interaction color. -- `tertiary`: Tertiary interaction color. - -### TypeBackground - -Defines the extended background color options used in the palette. - -- `secondary`: Secondary background color. -- `graphics`: Graphics background color. -- `tertiary`: Tertiary background color. -- `hover`: Hover background color. -- `blur`: Blur effect colors (heavy and light). -- `brand`: Brand interaction colors. -- `cta`: Call to action interaction colors. -- `info`: Information interaction colors. -- `success`: Success interaction colors. -- `warning`: Warning interaction colors. -- `error`: Error interaction colors. -- `code`: Code background color. - -To add a new background color, add a new key to the `TypeBackground` type and update the `background` property in the `PaletteColor` type. - -### TypeText - -Defines the extended text color options used in the palette. - -- `default`: Default text color. -- `secondary`: Secondary text color. -- `tertiary`: Tertiary text color. -- `inverse`: Inverse text color. -- `brand`: Brand text color. -- `info`: Information text color. -- `success`: Success text color. -- `warning`: Warning text color. -- `error`: Error text color. - -To add a new text color, add a new key to the `TypeText` type and update the `text` property in the `PaletteColor` type. - -### PaletteColor - -Defines the color options for the palette. - -### SimplePaletteColorOptions - -Defines the simple palette color options. - -## Palette Configuration - -The palette configuration includes the following sections: - -### lightModePalette - -Defines the palette options for the light mode. - -### darkModePalette - -Defines the palette options for the dark mode. - -## Color Definitions - -The color definitions are imported from the `./colors` module and include various shades and hues used throughout the palette. diff --git a/src/theme/ThemeProvider.tsx b/src/theme/ThemeProvider.tsx deleted file mode 100644 index 488e2ee9f..000000000 --- a/src/theme/ThemeProvider.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { EmotionCache } from '@emotion/react'; -import { CssBaseline, Interactiveness, PaletteMode, Theme, ThemeProvider } from '@mui/material'; -import React from 'react'; -import { createCustomTheme } from './theme'; - -interface SistentProviderContextType { - emotionCache?: EmotionCache; -} - -export const SistentThemeProviderContext = React.createContext<SistentProviderContextType>({}); - -export interface SistentThemeProviderProps { - children: React.ReactNode; - emotionCache?: EmotionCache; - initialMode?: PaletteMode; - customTheme?: Interactiveness; -} - -function SistentThemeProvider({ - children, - emotionCache, - initialMode = 'light', - customTheme -}: SistentThemeProviderProps): JSX.Element { - const theme = React.useMemo<Theme>( - () => createCustomTheme(initialMode, customTheme), - [initialMode, customTheme] - ); - return ( - <SistentThemeProviderContext.Provider value={{ emotionCache }}> - <ThemeProvider theme={theme}> - <CssBaseline /> - {children} - </ThemeProvider> - </SistentThemeProviderContext.Provider> - ); -} - -export function SistentThemeProviderWithoutBaseLine({ - children, - emotionCache, - initialMode = 'light' -}: SistentThemeProviderProps): JSX.Element { - const theme = React.useMemo<Theme>(() => createCustomTheme(initialMode), [initialMode]); - return ( - <SistentThemeProviderContext.Provider value={{ emotionCache }}> - <ThemeProvider theme={theme}>{children}</ThemeProvider> - </SistentThemeProviderContext.Provider> - ); -} - -export default SistentThemeProvider; - -export { SistentThemeProvider }; diff --git a/src/theme/colors/colors.ts b/src/theme/colors/colors.ts deleted file mode 100644 index 7da397736..000000000 --- a/src/theme/colors/colors.ts +++ /dev/null @@ -1,389 +0,0 @@ -import { alpha } from '@mui/material'; - -/** - * Define the base common colors to derive from - */ -export const KEPPEL = '#00B39F'; -export const DARK_KEPPEL = '#00A18F'; -export const CARIBBEAN_GREEN = '#00D3A9'; -export const TEAL_BLUE = '#477E96'; -export const DARK_TEAL_BLUE = '#3B687B'; -export const CHARCOAL = '#3C494F'; -export const BLACK = '#000000'; -export const MIDNIGHT_BLACK = '#111111'; -export const ALABASTER_WHITE = '#FAFAFA'; -export const WHITE = '#FFFFFF'; -export const ONYX_BLACK = '#1D1817'; -export const SLATE_BLUE = '#3C494F'; -export const TRANSPARENT_WHITE = '#ffffff66'; -export const SILVER_GRAY = '#E6E6E6'; -export const DARK_SHADE_GRAY = '#222222'; -export const CHINESE_SILVER = '#CCCCCC'; // same as lightGray -export const SAFFRON = '#EBC017'; -export const GRAY = '#696969'; -export const GRAY97 = '#f7f7f7'; -export const DARK_SLATE_GRAY = '#294957'; -export const LIGHT_GRAY = '#d3d3d3'; // same as tableBorder -export const STEEL_GRAY = '#525252'; -export const ALICE_BLUE = '#EBEFF1'; -export const LIMED_SPRUCE = '#3C494F'; -export const WHITESMOKE = '#F5F5F5'; -export const PRIMARY_COLOR = '#647881'; -export const DARK_PRIMARY_COLOR = '#51636B'; -export const SLATE_GRAY = '#7a848e'; -export const DARK_JUNGLE_GREEN = '#1E2117'; -export const CASPER = '#b1b6b8'; -export const EERIE_BLACK = '#b1b6b8'; -export const PATTERNS_BLUE = '#D9E0E2'; -export const GREEN = 'green'; -export const DARK_TEAL = '#455a64'; -export const LIGHT_TEAL = '#607d8b'; -export const CULTURED = '#F6F8F8'; -export const ANAKIWA = '#9EFFEC'; -export const NOT_FOUND = '#666666'; -export const YELLOW_SEA = '#F0A303'; -export const PINE_GREEN = '#008071'; -export const DARK_BLUE_GRAY = '#263238'; -export const BUTTON_MODAL = '#396679'; -export const BUTTON_MODAL_DARK = '#202020'; -export const SLIGHT_BLUE = '#548194'; -export const SLIGHT_BLACK_2 = '#23365f'; -export const SNOW_WHITE = '#FBFBFB'; -export const MEDIUM_GREY = '#DDDDDD'; -export const common = { - black: BLACK, - white: WHITE -}; - -export const keppel = { - 70: '#daf3eb', - 60: '#93E6D1', - 50: '#41CCB3', - 40: '#00B39F', - 30: '#007763', - 20: '#006661', - 10: '#00403f' -}; - -export const carribean = { - 70: '#E6FFF6', - 60: '#A3FFE0', - 50: '#78FAD3', - 40: '#00D3A9', - 30: '#00AD90', - 20: '#006157', - 10: '#003B37' -}; - -export const saffron = { - 70: '#FFFEE6', - 60: '#fffbbd', - 50: '#ffeb6b', - 40: '#ebc017', - 30: '#c4990a', - 20: '#785400', - 10: '#523600' -}; - -/** - * Grayscale Colors - */ -export const charcoal = { - 110: '#525252', - 100: '#FDFDFD', - 90: '#EAEDEE', - 80: '#D2D8DA', - 70: '#B1B9BC', - 60: '#8C999E', - 50: '#647176', - 40: '#3C494F', - 30: '#28353A', - 20: '#142126', - 10: '#000D12' -}; - -export const gray = { - 10: '#1A1A1A', - 20: '#212121', - 30: '#303030' -}; - -export const accentGrey = { - 100: '#F6F8F8', - 90: '#E8EFF3', - 80: '#C9DBE3', - 70: '#ABBDC5', - 60: '#8D9FA7', - 50: '#6F8189', - 40: '#51636B', - 30: '#3D4F57', - 20: '#293B43', - 10: '#15272F' -}; - -/** - * Function Colors - */ -export const blue = { - 70: '#F0FBFF', - 60: '#9EDDFF', - 50: '#75CAFF', - 40: '#2196F3', - 30: '#1272CC', - 20: '#0754A6', - 10: '#003980' -}; - -export const green = { - 70: '#EFFCED', - 60: '#B2E3AF', - 50: '#5BC95B', - 40: '#36BC3B', - 30: '#15701E', - 20: '#0A4A13', - 10: '#05340A' -}; - -export const yellow = { - 70: '#FFFCE6', - 60: '#FFE57D', - 50: '#FFC72B', - 40: '#FFB302', - 30: '#D99100', - 20: '#8C5400', - 10: '#663A00' -}; - -export const red = { - 70: '#FFF0F0', - 60: '#FFB3B9', - 50: '#FF6179', - 40: '#ff385c', - 30: '#B3153D', - 20: '#8C0a2F', - 10: '#660624' -}; - -export const redOrange = { - 70: '#E8BEB3', - 60: '#E1A999', - 50: '#D99380', - 40: '#D17D66', - 30: '#CA684D', - 20: '#C25233', - 10: '#BB3D1A' -}; - -export const defaultPalette = { - keppel: ['#DAF3EB', '#93E6D1', '#41CCB3', '#00B39F', '#007763', '#006661', '#00403F'] -}; - -type BackgroundColor = { - [key in - | 'default' - | 'secondary' - | 'tertiary' - | 'hover' - | 'brand-default' - | 'info-default' - | 'success-default' - | 'warning-default' - | 'error-default']: string; -}; - -export const background: BackgroundColor = { - default: charcoal[100], - secondary: accentGrey[90], - tertiary: accentGrey[80], - hover: charcoal[90], - 'brand-default': accentGrey[40], - 'info-default': blue[30], - 'success-default': green[30], - 'warning-default': yellow[30], - 'error-default': red[30] -}; - -interface TextColor { - default: string; - secondary: string; - tertiary: string; - inverse: string; - brand: string; - info: string; - success: string; - warning: string; - error: string; -} - -export const text: TextColor = { - default: charcoal[10], - secondary: charcoal[90], - tertiary: charcoal[50], - inverse: charcoal[100], - brand: accentGrey[40], - info: blue[30], - success: green[30], - warning: yellow[30], - error: red[30] -}; - -interface BorderColor { - default: string; - strong: string; - brand: string; -} - -export const border: BorderColor = { - default: charcoal[90], - strong: charcoal[50], - brand: accentGrey[40] -}; - -/** - * Use the colors below that provides the action that you want to use - */ -export const primaryColor = { - main: PRIMARY_COLOR, - dark: DARK_PRIMARY_COLOR -}; - -export const patternsBlue = { - main: PATTERNS_BLUE -}; - -export const cultured = { - main: CULTURED -}; - -export const darkTeal = { - main: DARK_TEAL, - dark: LIGHT_TEAL -}; - -export const actionIcon = { - main: darkTeal.main, - hover: darkTeal.dark -}; - -export const tabMenu = { - main: darkTeal.main, - hover: darkTeal.dark -}; - -export const darkSlateGray = { - main: DARK_SLATE_GRAY, - dark: alpha(DARK_SLATE_GRAY, 0.65) -}; - -export const eerieBlack = { - main: EERIE_BLACK, - light: alpha(EERIE_BLACK, 0.8), - lighter: alpha(EERIE_BLACK, 0.6) -}; - -export const casper = { - main: CASPER, - light: alpha(CASPER, 0.8), - lighter: alpha(CASPER, 0.6) -}; - -export const slateGray = { - main: SLATE_GRAY, - light: alpha(SLATE_GRAY, 0.8) -}; - -export const white = { - main: WHITE, - light: alpha(WHITE, 0.8), - lighter: alpha(WHITE, 0.6) -}; - -export const black = { - main: BLACK, - light: alpha(BLACK, 0.8), - lighter: alpha(BLACK, 0.6), - dark: alpha(BLACK, 0.2) -}; - -export const jungleGreen = { - main: DARK_JUNGLE_GREEN, - light: alpha(DARK_JUNGLE_GREEN, 0.8), - lighter: alpha(DARK_JUNGLE_GREEN, 0.6) -}; - -export const buttonDisabled = { - main: '#b0bec5' -}; - -export const tableBackgroundHover = { - main: '#ADD8E6' -}; - -export const DELETE = '#8F1F00'; -export const HOVER_DELETE = '#b32700'; - -export const redDelete = { - main: DELETE, - light: HOVER_DELETE -}; - -export const buttonDelete = { - main: redDelete.main, - hover: redDelete.light -}; - -export const darkModalGradient = { - header: `linear-gradient(90deg, ${charcoal[30]} 0%, ${accentGrey[30]} 100%)`, - fotter: `linear-gradient(90deg, ${accentGrey[30]} 0%, ${charcoal[30]} 100%)` -}; - -export const lightModalGradient = { - header: `linear-gradient(90deg, ${TEAL_BLUE} 0%, ${DARK_TEAL_BLUE} 100%)`, - fotter: `linear-gradient(90deg, ${DARK_TEAL_BLUE} 0%, ${TEAL_BLUE} 100%)` -}; -/** - * Notification Colors - */ -export const notificationColors = { - info: { - main: '#2196F3' - }, - error: { - main: '#F91313', - dark: '#B32700' - }, - warning: { - main: '#F0A303', - light: '#E75225' - }, - success: { - main: '#206D24' - } -}; - -export const CONNECTED = KEPPEL; -export const REGISTERED = TEAL_BLUE; -export const DISCOVERED = notificationColors.info.main; -export const IGNORED = primaryColor.dark; -export const DELETED = redDelete.main; -export const MAINTAINENCE = notificationColors.warning.main; -export const DISCONNECTED = notificationColors.warning.light; - -export const connected = { - main: CONNECTED -}; - -export const anakiwa = { - main: ANAKIWA -}; - -/** - * Social media or equivalent icons colors - */ -export const socialIcons = { - slack: '#4A154B', - twitter: '#1da1f2', - github: '#24292e', - youtube: '#ff0000', - docker: '#2496ed' -}; diff --git a/src/theme/colors/index.ts b/src/theme/colors/index.ts deleted file mode 100644 index 3d1a19607..000000000 --- a/src/theme/colors/index.ts +++ /dev/null @@ -1,76 +0,0 @@ -export { - ALABASTER_WHITE, - ALICE_BLUE, - ANAKIWA, - BLACK, - CARIBBEAN_GREEN, - CASPER, - CHARCOAL, - CHINESE_SILVER, - CONNECTED, - CULTURED, - DARK_BLUE_GRAY, - DARK_PRIMARY_COLOR, - DARK_SHADE_GRAY, - DARK_SLATE_GRAY, - DARK_TEAL, - DELETED, - DISCONNECTED, - DISCOVERED, - EERIE_BLACK, - GRAY, - GRAY97, - GREEN, - IGNORED, - KEPPEL, - LIGHT_GRAY, - LIGHT_TEAL, - LIMED_SPRUCE, - MAINTAINENCE, - MIDNIGHT_BLACK, - NOT_FOUND, - ONYX_BLACK, - PATTERNS_BLUE, - PRIMARY_COLOR, - REGISTERED, - SAFFRON, - SILVER_GRAY, - SLATE_BLUE, - TEAL_BLUE, - TRANSPARENT_WHITE, - WHITE, - WHITESMOKE, - YELLOW_SEA, - accentGrey, - actionIcon, - anakiwa, - black, - blue, - buttonDelete, - buttonDisabled, - carribean, - casper, - charcoal, - common, - connected, - cultured, - darkSlateGray, - darkTeal, - eerieBlack, - gray, - green, - jungleGreen, - keppel, - notificationColors, - patternsBlue, - primaryColor, - red, - redDelete, - saffron, - slateGray, - socialIcons, - tabMenu, - tableBackgroundHover, - white, - yellow -} from './colors'; diff --git a/src/theme/components.ts b/src/theme/components.ts deleted file mode 100644 index cfb23dcd1..000000000 --- a/src/theme/components.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Components, Theme } from '@mui/material'; -import { MuiAppBar } from './components/appbar.modifiter'; -import { MuiButton } from './components/button.modifier'; -import { MuiButtonGroup } from './components/buttongroup.modifier'; -import { MuiCard } from './components/card.modifier'; -import { MuiCheckbox } from './components/checkbox.modifier'; -import { MuiCollapse } from './components/collapse.modifier'; -import { MuiCssBaseline } from './components/cssbaseline.modifier'; -import { MuiDrawer } from './components/drawer.modifier'; -import { MuiFormLabel } from './components/formlabel.modifier'; -import { MuiIconButton } from './components/iconbutton.modifier'; -import { MuiLink } from './components/link.modifier'; -import { MuiListItem } from './components/listitem.modifier'; -import { MuiMenu } from './components/menu.modifier'; -import { MuiMenuItem } from './components/menuitem.modifier'; -import { MuiOutlinedInput } from './components/outlinedinput.modifier'; -import { MuiPagination } from './components/pagination.modifier'; -import { MuiSvgIcon } from './components/svgicon.modifier'; -import { MuiSwitch } from './components/switch.modifier'; -import { MuiTab } from './components/tab.modifier'; -import { MuiTableCombineTheme } from './components/table.modifier'; -import { MuiTabs } from './components/tabs.modifier'; - -export const components: Components<Theme> = { - MuiAppBar, - MuiCard, - MuiCheckbox, - MuiCollapse, - MuiCssBaseline, - MuiDrawer, - MuiFormLabel, - MuiIconButton, - MuiLink, - MuiMenu, - MuiMenuItem, - MuiOutlinedInput, - MuiPagination, - MuiSvgIcon, - MuiTab, - MuiTabs, - MuiSwitch, - MuiButtonGroup, - MuiButton, - MuiListItem, - ...MuiTableCombineTheme -}; diff --git a/src/theme/components/appbar.modifiter.ts b/src/theme/components/appbar.modifiter.ts deleted file mode 100644 index fc393fbaa..000000000 --- a/src/theme/components/appbar.modifiter.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiAppBar: Components<Theme>['MuiAppBar'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - background: { default: defaultBackground } - } - } = theme; - return { - elevation: 2, - background: defaultBackground - }; - } - } -}; diff --git a/src/theme/components/button.modifier.ts b/src/theme/components/button.modifier.ts deleted file mode 100644 index 7d2788b75..000000000 --- a/src/theme/components/button.modifier.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiButton: Components<Theme>['MuiButton'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - background: { brand, hover }, - text: { disabled, constant, neutral: TextNeutral }, - border: { neutral } - }, - typography: { textB2SemiBold } - } = theme; - return { - ...textB2SemiBold, - fontWeight: 500, - '&.MuiButton-contained': { - color: constant?.white, - backgroundColor: brand?.default, - '&:hover': { - backgroundColor: brand?.hover - } - }, - '&.MuiButton-outlined': { - border: `1px solid ${neutral?.default}`, - '&:hover': { - backgroundColor: hover, - color: TextNeutral?.default - } - }, - '&.MuiButton-contained.Mui-disabled': { - color: disabled, - backgroundColor: brand?.disabled - }, - '&.MuiButton-outlined.Mui-disabled': { - border: `1px solid ${disabled}`, - backgroundColor: brand?.disabled, - color: disabled - } - }; - } - } -}; diff --git a/src/theme/components/buttongroup.modifier.ts b/src/theme/components/buttongroup.modifier.ts deleted file mode 100644 index 28cb2fee6..000000000 --- a/src/theme/components/buttongroup.modifier.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiButtonGroup: Components<Theme>['MuiButtonGroup'] = { - styleOverrides: { - grouped: ({ theme }) => ({ - borderColor: theme.palette.common.white - }) - } -}; diff --git a/src/theme/components/card.modifier.ts b/src/theme/components/card.modifier.ts deleted file mode 100644 index 13369d9ab..000000000 --- a/src/theme/components/card.modifier.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiCard: Components<Theme>['MuiCard'] = { - styleOverrides: { - root: { - backgroundImage: - 'radial-gradient( circle 3000px at 50% 50%, rgba(30,33,23,0) 0%, rgba(30,33,23,0.05) 10%, rgba(30,33,23,.1) 100% )' - } - } -}; diff --git a/src/theme/components/checkbox.modifier.ts b/src/theme/components/checkbox.modifier.ts deleted file mode 100644 index 4a08a6fe9..000000000 --- a/src/theme/components/checkbox.modifier.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiCheckbox: Components<Theme>['MuiCheckbox'] = { - styleOverrides: { - root: ({ theme, ownerState }) => { - const { - palette: { - text: { default: defaultText }, - icon: { inverse: inverseColor }, - background: { brand }, - border: { strong } - } - } = theme; - - const inverseBackground = ownerState.inverseBackground || false; - - return { - color: 'transparent', - '&.Mui-checked': { - color: defaultText, - '& .MuiSvgIcon-root': { - width: '1.25rem', - height: '1.25rem', - borderColor: brand?.default, - marginLeft: '0px', - fill: inverseBackground ? inverseColor : defaultText, - padding: '0px' - } - }, - '& .MuiSvgIcon-root': { - width: '1.25rem', - height: '1.25rem', - border: `.75px solid ${inverseBackground ? inverseColor : strong}`, - borderRadius: '2px', - padding: '0px' - }, - '&:hover': { - backgroundColor: 'transparent' - } - }; - } - } -}; diff --git a/src/theme/components/collapse.modifier.ts b/src/theme/components/collapse.modifier.ts deleted file mode 100644 index a7d58f88b..000000000 --- a/src/theme/components/collapse.modifier.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -declare module '@mui/material/Collapse' { - interface CollapseProps { - variant?: 'submenu'; - } - interface CollapsePropsVariantOverrides { - submenu: true; - } -} - -export const MuiCollapse: Components<Theme>['MuiCollapse'] = { - styleOverrides: { - root: {} - }, - variants: [ - { - props: { variant: 'submenu' }, - style: ({ theme }) => { - const { - palette: { - background: { hover, secondary } - } - } = theme; - return { - backgroundColor: hover, - '&:active': { - backgroundColor: secondary - } - }; - } - } - ] -}; diff --git a/src/theme/components/cssbaseline.modifier.ts b/src/theme/components/cssbaseline.modifier.ts deleted file mode 100644 index d7964a0f2..000000000 --- a/src/theme/components/cssbaseline.modifier.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiCssBaseline: Components<Theme>['MuiCssBaseline'] = { - styleOverrides: ` - @font-face { - font-family: 'Qanelas Soft Regular'; - font-style: normal; - font-display: swap; - font-weight: 400; - src: - local('QanelasSoftRegular'), - local('Quanelas Soft Regular') - } - ` -}; diff --git a/src/theme/components/drawer.modifier.ts b/src/theme/components/drawer.modifier.ts deleted file mode 100644 index efc130d70..000000000 --- a/src/theme/components/drawer.modifier.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Components, Theme } from '@mui/material'; -import { DARK_BLUE_GRAY } from '../colors'; - -export const MuiDrawer: Components<Theme>['MuiDrawer'] = { - styleOverrides: { - root: { - '& .MuiDrawer-paper': { - boxSize: 'border-box', - background: DARK_BLUE_GRAY - } - } - } -}; diff --git a/src/theme/components/formlabel.modifier.ts b/src/theme/components/formlabel.modifier.ts deleted file mode 100644 index 571ad63ae..000000000 --- a/src/theme/components/formlabel.modifier.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiFormLabel: Components<Theme>['MuiFormLabel'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - background: { brand } - }, - typography: { textB1Regular } - } = theme; - return { - ...textB1Regular, - '&.Mui-focused': { - color: brand?.default - } - }; - } - } -}; diff --git a/src/theme/components/iconbutton.modifier.ts b/src/theme/components/iconbutton.modifier.ts deleted file mode 100644 index 103039a6e..000000000 --- a/src/theme/components/iconbutton.modifier.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiIconButton: Components<Theme>['MuiIconButton'] = { - styleOverrides: { - root: { - '@media (max-width: 400px)': { - padding: '2px' - }, - '&.Mui-disabled': { - '&:hover': { - cursor: 'not-allowed' - } - }, - '& .MuiSvgIcon-root': { - '&.Mui-disabled': { - '&:hover': { - cursor: 'not-allowed' - } - } - } - } - } -}; diff --git a/src/theme/components/input.modifier.ts b/src/theme/components/input.modifier.ts deleted file mode 100644 index 9ff507054..000000000 --- a/src/theme/components/input.modifier.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Components, Theme } from '@mui/material/styles'; - -export const MuiInput: Components<Theme>['MuiInput'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - background: { graphics } - }, - typography: { textB1Regular } - } = theme; - return { - ...textB1Regular, - '&:before': { - borderBottom: '2px solid rgba(0, 0, 0, 0.5)' - }, - '&.Mui-focused:after': { - borderBottom: ` 2px solid ${graphics?.default}` - }, - '&:hover:not(.Mui-disabled):before': { - borderBottom: `2px solid ${graphics?.default}` - } - }; - } - } -}; diff --git a/src/theme/components/link.modifier.ts b/src/theme/components/link.modifier.ts deleted file mode 100644 index b52484072..000000000 --- a/src/theme/components/link.modifier.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiLink: Components<Theme>['MuiLink'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - text: { default: defaultText }, - background: { brand } - } - } = theme; - return { - fontWeight: '600', - textDecoration: 'none', - color: defaultText, - '&:visited': { - textDecoration: 'none' - }, - '&:hover': { - textDecoration: 'underline' - }, - '&.keppel': { - color: brand?.default - }, - '&.Mui-disabled': { - '&:hover': { - cursor: 'not-allowed' - } - } - }; - } - } -}; diff --git a/src/theme/components/listitem.modifier.ts b/src/theme/components/listitem.modifier.ts deleted file mode 100644 index 349af2f13..000000000 --- a/src/theme/components/listitem.modifier.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { Components, ListItemProps, Theme } from '@mui/material'; - -declare module '@mui/material/ListItem' { - interface ListItemPropsVariantOverrides { - menu: true; - submenu: true; - } -} - -export const MuiListItem: Components<Theme>['MuiListItem'] = { - styleOverrides: { - root: {} - }, - variants: [ - { - props: { variant: 'menu' } as ListItemProps, - style: ({ theme }) => { - const { - palette: { - text: { default: defaultText }, - icon: { default: defaultIcon }, - background: { brand } - } - } = theme; - return { - textTransform: 'none', - margin: '.5rem 0rem .5rem .5rem', - padding: '0rem', - color: defaultText, - fontSize: '.9rem', - fill: defaultText, - '&.Mui-selected': { - fontWeight: 'bold', - color: defaultText, - fill: defaultText, - '&:hover': { - color: defaultText, - '& svg': { - fill: defaultIcon - } - } - }, - '&:has(> .MuiListItem-root.MuiMenuItem-root)': { - backgroundColor: brand?.default - }, - '& svg': { - marginRight: '.75rem', - paddingLeft: '0rem', - marginLeft: '0rem' - } - }; - } - }, - { - props: { variant: 'submenu' } as ListItemProps, - style: ({ theme }) => { - const { - palette: { - text: { default: defaultText }, - icon: { default: defaultIcon }, - background: { secondary } - } - } = theme; - return { - textTransform: 'none', - margin: '.0rem 0rem 0rem .5rem', - justifyContent: 'center', - alignItems: 'center', - color: defaultText, - fontSize: '.9rem', - fill: defaultText, - '&.Mui-selected': { - fontWeight: 'bold', - backgroundColor: secondary, - color: defaultText, - fill: defaultText, - '&:hover': { - color: defaultText, - '& svg': { - fill: defaultIcon - } - } - }, - '& svg': { - marginRight: '.5rem' - } - }; - } - } - ] -}; diff --git a/src/theme/components/menu.modifier.ts b/src/theme/components/menu.modifier.ts deleted file mode 100644 index ca85aa823..000000000 --- a/src/theme/components/menu.modifier.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiMenu: Components<Theme>['MuiMenu'] = { - styleOverrides: { - paper: { - '& .MuiMenuItem-root.Mui-selected': { - backgroundColor: 'rgba(0, 0, 0, 0.08)', - '&:hover': { - backgroundColor: 'rgba(0, 0, 0, 0.08)' - } - } - } - } -}; diff --git a/src/theme/components/menuitem.modifier.ts b/src/theme/components/menuitem.modifier.ts deleted file mode 100644 index c0030b152..000000000 --- a/src/theme/components/menuitem.modifier.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiMenuItem: Components<Theme>['MuiMenuItem'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - text: { tertiary } - } - } = theme; - return { - '&:hover': { - '& li': { - color: tertiary, - fill: tertiary - } - }, - - '& svg': { - '&:hover': { - fill: tertiary - } - }, - - '&.Mui-disabled': { - '&:hover': { - cursor: 'not-allowed' - } - } - }; - } - } -}; diff --git a/src/theme/components/outlinedinput.modifier.ts b/src/theme/components/outlinedinput.modifier.ts deleted file mode 100644 index 7e3d9d27b..000000000 --- a/src/theme/components/outlinedinput.modifier.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Components, Theme } from '@mui/material'; -import { outlinedInputClasses } from '@mui/material/OutlinedInput'; - -export const MuiOutlinedInput: Components<Theme>['MuiOutlinedInput'] = { - styleOverrides: { - notchedOutline: { - borderColor: 'rgba(0, 0, 0, 0.5)' - }, - root: ({ theme }) => { - const { - palette: { - background: { graphics, brand }, - border: { strong } - }, - typography: { textB1Regular } - } = theme; - return { - ...textB1Regular, - [`&:hover .${outlinedInputClasses.notchedOutline}`]: { - borderColor: graphics?.default - }, - [`&.Mui-focused .${outlinedInputClasses.notchedOutline}`]: { - borderColor: graphics?.default - }, - '&.Mui-focused .MuiOutlinedInput-notchedOutline': { - borderColor: brand?.default - }, - '&:hover .MuiOutlinedInput-notchedOutline': { - borderColor: brand?.default - }, - '& .MuiOutlinedInput-notchedOutline': { - borderColor: strong - } - }; - } - } -}; diff --git a/src/theme/components/pagination.modifier.ts b/src/theme/components/pagination.modifier.ts deleted file mode 100644 index 9b7244aab..000000000 --- a/src/theme/components/pagination.modifier.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Components, Theme } from '@mui/material'; -import { white } from '../colors'; - -export const MuiPagination: Components<Theme>['MuiPagination'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - background: { brand } - } - } = theme; - return { - button: { - '&:hover': { - backgroundColor: brand?.hover - }, - '&.Mui-selected': { - color: white.main, - backgroundColor: brand?.default - } - } - }; - } - } -}; diff --git a/src/theme/components/svgicon.modifier.ts b/src/theme/components/svgicon.modifier.ts deleted file mode 100644 index 581c8c1ea..000000000 --- a/src/theme/components/svgicon.modifier.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiSvgIcon: Components<Theme>['MuiSvgIcon'] = { - styleOverrides: { - root: { - height: 24, - width: 24 - } - } -}; diff --git a/src/theme/components/switch.modifier.ts b/src/theme/components/switch.modifier.ts deleted file mode 100644 index a99052e5f..000000000 --- a/src/theme/components/switch.modifier.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiSwitch: Components<Theme>['MuiSwitch'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - background: { graphics }, - border: { strong } - } - } = theme; - return { - '& .MuiSwitch-switchBase': { - color: strong, - '&:hover': { - backgroundColor: 'rgba(60, 73, 79, 0.06)' - } - }, - '& .MuiSwitch-switchBase.Mui-checked': { - color: graphics?.default, - '&:hover': { - backgroundColor: 'rgba(0, 211, 169, 0.06)' - } - }, - '& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track': { - backgroundColor: graphics?.default - } - }; - } - } -}; diff --git a/src/theme/components/tab.modifier.ts b/src/theme/components/tab.modifier.ts deleted file mode 100644 index 58e49f42e..000000000 --- a/src/theme/components/tab.modifier.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiTab: Components<Theme>['MuiTab'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - text: { default: defaultText }, - background: { tabs: defaultBackground } - } - } = theme; - return { - '&.Mui-selected': { - color: defaultText, - backgroundColor: defaultBackground - }, - backgroundColor: 'none', - color: defaultText - }; - } - } -}; diff --git a/src/theme/components/table.modifier.ts b/src/theme/components/table.modifier.ts deleted file mode 100644 index 8fa463cba..000000000 --- a/src/theme/components/table.modifier.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { Components, Theme } from '@mui/material/styles'; - -const MuiTable: Components<Theme>['MuiTable'] = { - styleOverrides: { - root: { - borderCollapse: 'separate', - borderSpacing: '0' - } - } -}; - -const MuiTableBody: Components<Theme>['MuiTableBody'] = { - styleOverrides: { - root: ({ theme }) => { - return { backgroundColor: theme.palette.background.constant?.table }; - } - } -}; - -const MuiTableCell: Components<Theme>['MuiTableCell'] = { - styleOverrides: { - root: ({ theme }) => { - return { - borderBottom: `1px solid ${theme.palette.icon.disabled}`, - backgroundColor: 'transparent !important' - }; - }, - head: { - '& div': { - fontSize: '1rem', - fontWeight: 'bold' - }, - '& .MuiButton-root': { - fontWeight: 'bold', - textTransform: 'uppercase !important' - } - } - } -}; - -const MuiTableFooter: Components<Theme>['MuiTableFooter'] = { - styleOverrides: { - root: ({ theme }) => { - return { - backgroundColor: - theme.palette.mode == 'dark' - ? theme.palette.background.card - : theme.palette.background.surfaces - }; - } - } -}; - -const MuiTableHead: Components<Theme>['MuiTableHead'] = { - styleOverrides: { - root: ({ theme }) => { - return { - backgroundColor: - theme.palette.mode == 'dark' - ? theme.palette.background.card - : theme.palette.background.surfaces, - fontWeight: 'bold', - textTransform: 'uppercase' - }; - } - } -}; - -const MuiTableRow: Components<Theme>['MuiTableRow'] = { - styleOverrides: { - root: { - '&.Mui-disabled': { - cursor: 'not-allowed' - } - } - } -}; - -const MuiTableSortLabel: Components<Theme>['MuiTableSortLabel'] = { - styleOverrides: { - root: ({ theme }) => { - return { - '& .MuiTableSortLabel-icon': { - color: `${theme.palette.icon.default} !important`, - height: 'auto !important' - } - }; - } - } -}; - -const MUIDataTableSelectCell: Components<Theme>['MUIDataTableSelectCell'] = { - styleOverrides: { - root: { - backgroundColor: 'transparent' - } - } -}; - -const MuiToolbar: Components<Theme>['MuiToolbar'] = { - styleOverrides: { - root: ({ theme }) => { - return { - backgroundColor: - theme.palette.mode == 'dark' - ? theme.palette.background.card - : theme.palette.background.surfaces, - color: theme.palette.text.default - }; - } - } -}; - -export const MuiTableCombineTheme = { - MuiTable, - MuiTableBody, - MuiTableCell, - MuiTableFooter, - MuiTableHead, - MuiTableRow, - MuiTableSortLabel, - MUIDataTableSelectCell, - MuiToolbar -}; diff --git a/src/theme/components/tabs.modifier.ts b/src/theme/components/tabs.modifier.ts deleted file mode 100644 index 1fb4ed457..000000000 --- a/src/theme/components/tabs.modifier.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiTabs: Components<Theme>['MuiTabs'] = { - styleOverrides: { - root: ({ theme }) => ({ - backgroundColor: theme.palette.background.tabs - }), - indicator: ({ theme }) => ({ - backgroundColor: theme.palette.background.brand?.default - }) - } -}; diff --git a/src/theme/components/textfield.modifier.ts b/src/theme/components/textfield.modifier.ts deleted file mode 100644 index 3202d47ce..000000000 --- a/src/theme/components/textfield.modifier.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Components, Theme } from '@mui/material'; - -export const MuiTextField: Components<Theme>['MuiTextField'] = { - styleOverrides: { - root: ({ theme }) => { - const { - palette: { - background: { graphics } - }, - typography: { textB1Regular } - } = theme; - return { - ...textB1Regular, - '--TextField-brandBorderColor': 'rgba(0, 0, 0, 0.5)', - '--TextField-brandBorderHoverColor': graphics?.default, - '--TextField-brandBorderFocusedColor': graphics?.default, - '& label.Mui-focused': { - color: 'var(--TextField-brandBorderFocusedColor)' - } - }; - } - } -}; diff --git a/src/theme/components/toggle.modifier.ts b/src/theme/components/toggle.modifier.ts deleted file mode 100644 index 236dedee9..000000000 --- a/src/theme/components/toggle.modifier.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Components, Theme } from '@mui/material'; -import { CARIBBEAN_GREEN, CHARCOAL } from '../colors'; - -export const MuiSwitch: Components<Theme>['MuiSwitch'] = { - styleOverrides: { - root: { - '& .MuiSwitch-switchBase': { - color: CHARCOAL, - '&:hover': { - backgroundColor: 'rgba(60, 73, 79, 0.06)' - } - }, - '& .MuiSwitch-switchBase.Mui-checked': { - color: CARIBBEAN_GREEN, - '&:hover': { - backgroundColor: 'rgba(0, 211, 169, 0.06)' - } - }, - '& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track': { - backgroundColor: CARIBBEAN_GREEN - } - } - } -}; diff --git a/src/theme/createEmotionCache.ts b/src/theme/createEmotionCache.ts deleted file mode 100644 index 876743096..000000000 --- a/src/theme/createEmotionCache.ts +++ /dev/null @@ -1,19 +0,0 @@ -import createCache from '@emotion/cache'; - -const isBrowser = typeof document !== 'undefined'; - -// On the client side, Create a meta tag at the top of the <head> and set it as insertionPoint. -// This assures that MUI styles are loaded first. -// It allows developers to easily override MUI styles with other styling solutions, like CSS modules. -export default function createEmotionCache() { - let insertionPoint; - - if (isBrowser) { - const emotionInsertionPoint = document.querySelector<HTMLMetaElement>( - 'meta[name="emotion-insertion-point"]' - ); - insertionPoint = emotionInsertionPoint ?? undefined; - } - - return createCache({ key: 'mui-style', insertionPoint }); -} diff --git a/src/theme/index.tsx b/src/theme/index.tsx deleted file mode 100644 index bf54c1f4c..000000000 --- a/src/theme/index.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - Theme, - ThemeProvider, - alpha, - createTheme, - keyframes, - lighten, - styled, - useMediaQuery, - useTheme -} from '@mui/material'; -export { darkModePalette, lightModePalette } from './palette'; -export { typography } from './typography'; - -export * from './colors'; -export { - default as SistentThemeProvider, - SistentThemeProviderWithoutBaseLine -} from './ThemeProvider'; - -export { ThemeProvider, alpha, createTheme, keyframes, lighten, styled, useMediaQuery, useTheme }; -export type { Theme }; diff --git a/src/theme/palette.ts b/src/theme/palette.ts deleted file mode 100644 index fe18a6db1..000000000 --- a/src/theme/palette.ts +++ /dev/null @@ -1,442 +0,0 @@ -import { PaletteOptions, alpha } from '@mui/material'; -import * as Colors from './colors'; - -declare module '@mui/material/styles' { - // Defines the interaction color options used in the palette. - interface Interactiveness { - default: string; - hover: string; - disabled?: string; - pressed: string; - secondary: string; - tertiary: string; - } - // Defines the extended background color options used in the palette. - interface TypeBackground { - secondary?: string; - supplementary?: string; - graphics?: { - default: string; - }; - tabs?: string; - elevatedComponents?: string; - card?: string; - tertiary?: string; - hover?: string; - blur?: { - heavy: string; - light: string; - }; - //additional color palette {neutral} - neutral?: { - default: string; - hover: string; - pressed: string; - }; - constant?: { - disabled: string; - white: string; - table: string; - }; - inverse?: string; - brand?: Interactiveness; - cta?: Interactiveness; - info?: Interactiveness; - success?: Interactiveness; - warning?: Interactiveness; - error?: Interactiveness; - code?: string; - surfaces?: string; - } - - // Defines the extended text color options used in the palette. - interface TypeText { - default?: string; - secondary: string; - tertiary?: string; - disabled: string; - inverse?: string; - brand?: string; - info?: string; - success?: string; - warning?: string; - error?: string; - neutral?: { - default: string; - alt: string; - }; - constant?: { - white: string; - disabled: string; - }; - } - - // Defines the color options for the palette - interface PaletteColor { - secondary?: string; - supplementary?: string; - blur?: { - heavy: string; - light: string; - }; - neutral?: { - default: string; - hover: string; - pressed: string; - alt: string; - }; - constant?: { - white: string; - disabled: string; - table: string; - }; - inverse?: string; - brand?: Interactiveness; - cta?: Interactiveness; - info?: Interactiveness; - success?: Interactiveness; - warning?: Interactiveness; - error?: Interactiveness; - code?: string; - strong?: string; - normal?: string; - disabled?: string; - surfaces?: string; - } - - // Defines the simple palette color options. - interface SimplePaletteColorOptions { - secondary?: string; - supplementary?: string; - blur?: { - heavy: string; - light: string; - }; - neutral?: { - default: string; - hover: string; - pressed: string; - alt: string; - }; - constant?: { - white: string; - disabled: string; - table: string; - }; - inverse?: string; - brand?: Interactiveness; - cta?: Interactiveness; - info?: Interactiveness; - success?: Interactiveness; - warning?: Interactiveness; - error?: Interactiveness; - code?: string; - strong?: string; - normal?: string; - disabled?: string; - surfaces?: string; - } - - /* Defines the palette containing border and icon color options. - To define any additional custom color options, you can extend the interface here. - */ - interface Palette { - border: { - default: string; - strong: string; - brand: string; - normal: string; - neutral?: { - default: string; - alt: string; - }; - }; - icon: { - default: string; - secondary: string; - brand: string; - inverse: string; - weather: string; - disabled: string; - neutral?: { - default: string; - alt: string; - }; - }; - } - - // Defines the options available for the palette. - interface PaletteOptions { - border: { - default: string; - strong: string; - brand: string; - normal: string; - neutral?: { - default: string; - alt: string; - }; - }; - icon: { - default: string; - secondary: string; - brand: string; - inverse: string; - weather: string; - disabled: string; - neutral?: { - default: string; - alt: string; - }; - }; - } -} - -export const lightModePalette: PaletteOptions = { - primary: { - main: Colors.KEPPEL - }, - secondary: { - main: Colors.charcoal[40] - }, - background: { - default: Colors.charcoal[100], - secondary: Colors.accentGrey[90], - tertiary: Colors.accentGrey[80], - tabs: Colors.accentGrey[100], // TODO: Make this name or token to more genric - card: Colors.charcoal[100], - elevatedComponents: Colors.WHITE, - hover: Colors.charcoal[90], - supplementary: Colors.accentGrey[40], - blur: { - heavy: alpha(Colors.charcoal[90], 0.8), - light: alpha(Colors.charcoal[90], 0.5) - }, - neutral: { - default: Colors.charcoal[40], - hover: Colors.charcoal[30], - pressed: Colors.charcoal[20] - }, - inverse: Colors.charcoal[10], - brand: { - default: Colors.keppel[40], - hover: Colors.keppel[50], - disabled: Colors.charcoal[90], - pressed: Colors.keppel[60], - secondary: Colors.keppel[50], - tertiary: Colors.keppel[70] - }, - graphics: { - default: Colors.carribean[30] - }, - cta: { - default: Colors.saffron[40], - hover: Colors.saffron[50], - pressed: Colors.saffron[60], - secondary: Colors.saffron[60], - tertiary: Colors.saffron[70] - }, - info: { - default: Colors.blue[40], - hover: Colors.blue[20], - pressed: Colors.blue[10], - secondary: Colors.blue[60], - tertiary: Colors.blue[70] - }, - success: { - default: Colors.KEPPEL, - hover: Colors.green[20], - pressed: Colors.green[10], - secondary: Colors.green[60], - tertiary: Colors.green[70] - }, - warning: { - default: Colors.yellow[30], - hover: Colors.yellow[20], - pressed: Colors.yellow[10], - secondary: Colors.yellow[60], - tertiary: Colors.yellow[70] - }, - error: { - default: Colors.red[30], - hover: Colors.red[20], - pressed: Colors.red[10], - secondary: Colors.red[60], - tertiary: Colors.red[70] - }, - code: Colors.charcoal[90], - - constant: { - white: Colors.accentGrey[100], - disabled: Colors.charcoal[70], - table: Colors.charcoal[100] - }, - surfaces: Colors.accentGrey[100] - }, - text: { - default: Colors.charcoal[10], - secondary: Colors.charcoal[40], - tertiary: Colors.charcoal[50], - disabled: Colors.charcoal[70], - inverse: Colors.charcoal[100], - brand: Colors.keppel[40], - info: Colors.blue[40], - success: Colors.green[30], - warning: Colors.yellow[30], - error: Colors.red[30], - neutral: { - default: Colors.charcoal[40], - alt: Colors.charcoal[40] - }, - constant: { - white: Colors.charcoal[100], - disabled: Colors.charcoal[50] - } - }, - border: { - default: Colors.charcoal[90], - strong: Colors.charcoal[30], - brand: Colors.keppel[40], - normal: Colors.charcoal[60], - neutral: { - default: Colors.charcoal[40], - alt: Colors.charcoal[40] - } - }, - icon: { - default: Colors.accentGrey[10], - secondary: Colors.charcoal[40], - brand: Colors.keppel[40], - inverse: Colors.charcoal[100], - weather: Colors.accentGrey[50], - disabled: Colors.charcoal[70], - neutral: { - default: Colors.charcoal[40], - alt: Colors.charcoal[40] - } - } -}; - -export const darkModePalette: PaletteOptions = { - primary: { - main: Colors.KEPPEL - }, - secondary: { - main: Colors.charcoal[70] - }, - background: { - default: Colors.charcoal[10], - secondary: Colors.accentGrey[20], - tertiary: Colors.accentGrey[30], - tabs: Colors.gray[10], // TODO: Make this name or token to more genric - card: Colors.gray[20], - elevatedComponents: Colors.gray[30], - hover: Colors.charcoal[20], - supplementary: Colors.accentGrey[40], - blur: { - heavy: alpha(Colors.charcoal[10], 0.8), - light: alpha(Colors.charcoal[10], 0.5) - }, - neutral: { - default: Colors.accentGrey[100], - hover: Colors.charcoal[90], - pressed: Colors.charcoal[80] - }, - brand: { - default: Colors.keppel[40], - hover: Colors.keppel[50], - disabled: Colors.charcoal[30], - pressed: Colors.keppel[60], - secondary: Colors.keppel[20], - tertiary: Colors.keppel[10] - }, - graphics: { - default: Colors.carribean[40] - }, - cta: { - default: Colors.saffron[40], - hover: Colors.saffron[50], - pressed: Colors.saffron[60], - secondary: Colors.saffron[20], - tertiary: Colors.saffron[10] - }, - info: { - default: Colors.blue[40], - hover: Colors.blue[50], - pressed: Colors.blue[60], - secondary: Colors.blue[20], - tertiary: Colors.blue[10] - }, - success: { - default: Colors.KEPPEL, - hover: Colors.green[50], - pressed: Colors.green[60], - secondary: Colors.green[20], - tertiary: Colors.green[10] - }, - warning: { - default: Colors.yellow[40], - hover: Colors.yellow[50], - pressed: Colors.yellow[60], - secondary: Colors.yellow[20], - tertiary: Colors.yellow[10] - }, - error: { - default: Colors.red[40], - hover: Colors.red[50], - pressed: Colors.red[60], - secondary: Colors.red[20], - tertiary: Colors.red[10] - }, - code: Colors.charcoal[10], - constant: { - white: Colors.accentGrey[100], - disabled: Colors.charcoal[70], - table: '#363636' - }, - surfaces: Colors.accentGrey[10] - }, - text: { - default: Colors.charcoal[100], - secondary: Colors.charcoal[70], - tertiary: Colors.charcoal[60], - disabled: Colors.charcoal[60], - inverse: Colors.charcoal[10], - brand: Colors.keppel[40], - info: Colors.blue[40], - success: Colors.green[40], - warning: Colors.yellow[40], - error: Colors.red[40], - neutral: { - default: Colors.accentGrey[100], - alt: Colors.keppel[40] - }, - constant: { - white: Colors.charcoal[100], - disabled: Colors.charcoal[50] - } - }, - border: { - default: Colors.accentGrey[10], - strong: Colors.accentGrey[60], - brand: Colors.keppel[40], - normal: Colors.accentGrey[30], - neutral: { - default: Colors.accentGrey[100], - alt: Colors.keppel[40] - } - }, - - icon: { - default: Colors.charcoal[80], - secondary: Colors.charcoal[70], - brand: Colors.keppel[40], - inverse: Colors.charcoal[10], - weather: Colors.saffron[40], - disabled: Colors.charcoal[50], - neutral: { - default: Colors.accentGrey[100], - alt: Colors.keppel[40] - } - } -}; diff --git a/src/theme/theme.ts b/src/theme/theme.ts deleted file mode 100644 index f0e560815..000000000 --- a/src/theme/theme.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Interactiveness, PaletteMode, createTheme } from '@mui/material'; -import { components } from './components'; -import { darkModePalette, lightModePalette } from './palette'; -import { typography } from './typography'; - -export const drawerWidth = 240; - -export const createCustomTheme = (mode: PaletteMode, brandPalette?: Interactiveness) => { - const basePalette = mode == 'light' ? lightModePalette : darkModePalette; - - const themePalette = { - ...basePalette, - background: { - ...(basePalette.background || {}), - brand: { - ...((basePalette?.background?.brand || {}) as Interactiveness), - ...(brandPalette || {}) - } - } - }; - - return createTheme({ - palette: { - mode, - ...themePalette - }, - components, - typography: typography(mode), - breakpoints: {} - }); -}; diff --git a/src/theme/typography.ts b/src/theme/typography.ts deleted file mode 100644 index 75cf301e1..000000000 --- a/src/theme/typography.ts +++ /dev/null @@ -1,149 +0,0 @@ -import { PaletteMode, createTheme } from '@mui/material'; -import { TypographyOptions } from '@mui/material/styles/createTypography'; -import { common } from './colors'; - -declare module '@mui/material/styles' { - interface TypographyVariants { - textH1Bold: React.CSSProperties; - textH2Medium: React.CSSProperties; - textH3Medium: React.CSSProperties; - textB1Regular: React.CSSProperties; - textB2SemiBold: React.CSSProperties; - textB3Regular: React.CSSProperties; - textL1Bold: React.CSSProperties; - textL2Regular: React.CSSProperties; - textC1Regular: React.CSSProperties; - textC2Regular: React.CSSProperties; - } - - // allow configuration using `createTheme` - interface TypographyVariantsOptions { - textH1Bold?: React.CSSProperties; - textH2Medium?: React.CSSProperties; - textH3Medium?: React.CSSProperties; - textB1Regular?: React.CSSProperties; - textB2SemiBold?: React.CSSProperties; - textB3Regular?: React.CSSProperties; - textL1Bold?: React.CSSProperties; - textL2Regular?: React.CSSProperties; - textC1Regular?: React.CSSProperties; - textC2Regular?: React.CSSProperties; - } -} - -declare module '@mui/material/Typography' { - interface TypographyPropsVariantOverrides { - textH1Bold: true; - textH2Medium: true; - textH3Medium: true; - textB1Regular: true; - textB2SemiBold: true; - textB3Regular: true; - textL1Bold: true; - textL2Regular: true; - textC1Regular: true; - textC2Regular: true; - } -} - -const theme = createTheme(); - -export const typography = (mode: PaletteMode): TypographyOptions => { - return { - fontFamily: ['Qanelas Soft Regular', 'Roboto', 'Helvectica', 'Arial', 'sans-serif'].join(','), - textH1Bold: { - fontFamily: ['Qanelas Soft Regular'].join(','), - fontSize: '3.25rem', - lineHeight: '4rem', - fontWeight: 700, - display: 'block', - [theme.breakpoints.down('sm')]: { - fontSize: '2rem', - lineHeight: '2.5rem' - } - }, - textH2Medium: { - fontFamily: ['Qanelas Soft Regular'].join(','), - fontSize: '2rem', - lineHeight: '2.5rem', - fontWeight: 500, - display: 'block', - [theme.breakpoints.down('sm')]: { - fontSize: '1.5rem', - lineHeight: '2.25rem' - } - }, - textH3Medium: { - fontFamily: ['Qanelas Soft Regular'].join(','), - fontSize: '1.5rem', - lineHeight: '2.25rem', - fontWeight: 500, - display: 'block', - [theme.breakpoints.down('sm')]: { - fontSize: '1rem', - lineHeight: '1.75rem', - fontWeight: 700 - } - }, - textB1Regular: { - fontFamily: ['Qanelas Soft Regular', 'Open Sans', 'sans-serif'].join(','), - color: mode === 'light' ? common.black : common.white, - fontSize: '1rem', - fontWeight: 400, - lineHeight: '1.75rem', - [theme.breakpoints.down('sm')]: { - fontSize: '1rem', - lineHeight: '1.75rem' - } - }, - textB2SemiBold: { - fontFamily: ['Qanelas Soft Regular'].join(','), - color: mode === 'light' ? common.black : common.white, - fontSize: '1rem', - fontWeight: 600, - lineHeight: '1.75rem', - textTransform: 'capitalize', - [theme.breakpoints.down('sm')]: { - fontSize: '1rem', - lineHeight: '1.75rem' - } - }, - textB3Regular: { - fontFamily: ['"Open Sans"', 'sans-serif'].join(','), - fontSize: '0.875rem', - fontWeight: 400, - lineHeight: '1.5rem', - display: 'block' - }, - textL1Bold: { - fontFamily: ['Qanelas Soft Regular'].join(','), - fontSize: '0.75rem', - fontWeight: 700, - lineHeight: '1rem', - display: 'block' - }, - textL2Regular: { - fontFamily: ['"Open Sans"', 'sans-serif'].join(','), - fontSize: '0.75rem', - fontWeight: 400, - lineHeight: '1.5rem', - display: 'block' - }, - textC1Regular: { - fontFamily: ['Consolas', 'monospace'].join(','), - fontSize: '0.75rem', - fontWeight: 400, - lineHeight: '1.5rem', - display: 'block' - }, - textC2Regular: { - fontFamily: ['Consolas', 'monospace'].join(','), - fontSize: '1rem', - fontWeight: 400, - lineHeight: '1.75rem', - display: 'block' - }, - caption: {}, - overline: {} - }; -}; diff --git a/src/types/fonts.d.ts b/src/types/fonts.d.ts deleted file mode 100644 index f5dd39959..000000000 --- a/src/types/fonts.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '*.woff2' { - const content: string; - export default content; -} diff --git a/src/types/react-error-boundary.d.ts b/src/types/react-error-boundary.d.ts deleted file mode 100644 index 0a34ab66b..000000000 --- a/src/types/react-error-boundary.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* -import React from 'react'; -import { ErrorBoundaryPropsWithComponent, FallbackRender } from 'react-error-boundary'; - -// Define the custom error boundary component -declare module 'react-error-boundary' { - export interface ErrorBoundaryProps { - children: React.ReactNode; - FallbackComponent?: React.ComponentType<FallbackProps>; - onError?: (error: Error, info: React.ErrorInfo) => void; - } - - export interface FallbackProps { - error: Error; - resetErrorBoundary: () => void; - } - - export const ErrorBoundary: React.FC<ErrorBoundaryProps>; -} - -// Define the custom fallback component -declare module 'react-error-boundary/dist/react-error-boundary.production.min.js' { - export const Fallback: FallbackRender; -} - -// Define the withErrorBoundary HOC -declare module 'react-error-boundary' { - export function withErrorBoundary<T>( - Component: React.ComponentType<T>, - errorHandlingProps: ErrorBoundaryPropsWithComponent | null - ): React.FC<T>; -} - -// Define the withSuppressedErrorBoundary HOC -declare module 'react-error-boundary' { - export function withSuppressedErrorBoundary<T>(Component: React.ComponentType<T>): React.FC<T>; -} -*/ diff --git a/src/utils/components.ts b/src/utils/components.ts deleted file mode 100644 index 2d1e4afff..000000000 --- a/src/utils/components.ts +++ /dev/null @@ -1,14 +0,0 @@ -export const componentIcon = ({ - kind, - model, - color -}: { - kind: string; - model: string; - color: 'white' | 'color' | 'complete'; -}) => { - if (!kind || !model || !color) { - return null; - } - return `/ui/public/static/img/meshmodels/${model}/${color}/${kind.toLowerCase()}-${color}.svg`; -}; diff --git a/src/utils/index.ts b/src/utils/index.ts deleted file mode 100644 index ab6922e96..000000000 --- a/src/utils/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './components'; -export * from './time.utils'; diff --git a/src/utils/permissions.ts b/src/utils/permissions.ts deleted file mode 100644 index f1e2843b2..000000000 --- a/src/utils/permissions.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { VISIBILITY } from '../constants/constants'; - -export interface User { - id: string; - user_id: string; - first_name: string; - last_name: string; - email: string; - avatar_url?: string; - deleted_at?: { Valid: boolean }; - role_names?: string[]; -} - -export const canUpdateResource = ( - selectedResource: { visibility: string }, - currentUser: User, - resourceOwner: User -) => { - const isOwner = resourceOwner.user_id == currentUser.user_id; - const isAdmin = currentUser.role_names?.includes('admin'); - return isOwner || isAdmin; -}; - -export const canUpdateResourceVisibility = canUpdateResource; - -export const canShareResourceWithNewUsers = ( - selectedResource: { visibility: string }, - currentUser: User, - resourceOwner: User -) => { - if (selectedResource.visibility == VISIBILITY.PUBLIC) { - return true; - } - return canUpdateResource(selectedResource, currentUser, resourceOwner); -}; diff --git a/src/utils/routing.ts b/src/utils/routing.ts deleted file mode 100644 index b85d13481..000000000 --- a/src/utils/routing.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { KANVAS_MODE, RESOURCE_TYPE, ResourceType } from '../constants/constants'; - -type PathParams = { - id: string; - name: string; -}; - -export const viewPath = ({ id, name }: PathParams) => { - const currentRoute = new URL(window.location.href); - const currentURI = currentRoute.origin + currentRoute.pathname; - const newParams = new URLSearchParams({ - mode: KANVAS_MODE.OPERATOR, - type: RESOURCE_TYPE.VIEW, - ...(id ? { id } : {}), - ...(name ? { name } : {}) - }); - const newURI = currentURI + '?' + newParams.toString(); - return newURI; -}; - -export const catalogPath = ({ id, name }: PathParams) => { - const currentRoute = new URL(window.location.href); - const currentURI = currentRoute.origin + currentRoute.pathname; - const newParams = new URLSearchParams({ - mode: KANVAS_MODE.DESIGN, - type: RESOURCE_TYPE.CATALOG, - ...(id ? { id } : {}), - ...(name ? { name } : {}) - }); - const newURI = currentURI + '?' + newParams.toString(); - return newURI; -}; - -export const getRouteParams = () => { - const currentRoute = new URL(window.location.href); - const params = currentRoute.searchParams; - return params; -}; - -export const getDesignPath = (id?: string) => { - const currentRoute = new URL(window.location.href); - const currentURI = currentRoute.origin + currentRoute.pathname; - - const newParams = new URLSearchParams({ - mode: KANVAS_MODE.DESIGN, - ...(id ? { design: id } : {}) - }); - const newURI = currentURI + '?' + newParams.toString(); - return newURI; -}; - -export const getShareableResourceRoute = (type: ResourceType, id: string, name: string) => { - if (type === RESOURCE_TYPE.DESIGN) { - return getDesignPath(id); - } - - if (type === RESOURCE_TYPE.VIEW) { - return viewPath({ id, name }); - } - - if (type === RESOURCE_TYPE.CATALOG) { - return catalogPath({ id, name }); - } - - throw new Error(`Unknown resource type ${type}`); -}; - -export const emptyViewPath = () => { - return viewPath({ id: '', name: '' }); -}; - -export const getEmptyDesignPath = () => { - return getDesignPath(); -}; diff --git a/src/utils/time.utils.tsx b/src/utils/time.utils.tsx deleted file mode 100644 index f0f98aaf0..000000000 --- a/src/utils/time.utils.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import moment from 'moment'; -import { CustomTooltip } from '../custom'; - -/** - * Returns the relative time (e.g. "2 hours ago") from a given date string - * @param {string} date - ISO format date string - * @returns {string} Human-readable relative time - */ -export const getRelativeTime = (date: string): string => { - return moment(date).fromNow(); -}; - -/** - * Returns a fully formatted date and time string - * @param {string} date - ISO format date string - * @returns {string} Formatted date in "ddd, MMM D, YYYY h:mm A" format (e.g. "Mon, Jan 1, 2025 3:45 PM") - */ -export const getFullFormattedTime = (date: string): string => { - return moment(date).format('ddd, MMM D, YYYY h:mm A'); -}; - -/** - * Formats a date string into a short date format - * @param {string} date - ISO format date string - * @returns {string} Formatted date in "Month Day, Year" format (e.g. "Jan 1, 2025") - */ -export const getFormatDate = (date: string) => { - const options = { year: 'numeric' as const, month: 'short' as const, day: 'numeric' as const }; - const formattedDate = new Date(date).toLocaleDateString('en-US', options); - return formattedDate; -}; - -/** - * React component that displays relative time with a tooltip showing the full date and time - * @param {Object} props - Component props - * @param {string} props.date - ISO format date string - * @returns {JSX.Element} Formatted time component with tooltip - */ -export const FormattedTime = ({ date }: { date: string }) => { - return ( - <CustomTooltip title={getFullFormattedTime(date)} disableInteractive> - <div>{getRelativeTime(date)}</div> - </CustomTooltip> - ); -}; diff --git a/src/utils/typing.state.tsx b/src/utils/typing.state.tsx deleted file mode 100644 index 0f9156d99..000000000 --- a/src/utils/typing.state.tsx +++ /dev/null @@ -1,226 +0,0 @@ -export const Delimiter = { - FILTER: ' ', - FILTER_VALUE: ':' -}; - -export enum FilteringState { - IDLE = 'idle', - SELECTING_FILTER = 'selecting_filter', - SELECTING_VALUE = 'selecting_value' -} - -export enum FilteringEvents { - START = 'start', - // SELECT = "select_filter", - SELECT_FILTER = 'select_filter', - INPUT_CHANGE = 'input_change', - SELECT_FILTER_VALUE = 'select_filter_value', - CLEAR = 'clear', - EXIT = 'exit' -} - -export interface FilterStateType { - state: FilteringState; - context?: { - value?: string; - prevValue?: string[]; - }; -} - -export interface FilterActionType { - type: FilteringEvents; - payload?: { - value?: string; - }; -} - -/** - * Filter Schema Object - * - * The `filterSchema` object defines available filter options for the TypingFilter component. - * It provides information about different filter categories, their descriptions, and possible values. - */ -export type FilterSchema = Record< - string, - { - value?: string; - description?: string; - type?: string; - values?: string[]; - multiple?: boolean; - } ->; -/** - * @example - * // Example filter schema with multiple filter categories - * const filterSchema = { - * SEVERITY: { - * value: "severity", - * description: "Filter by severity", - * values: ["Low", "Medium", "High"], - * }, - * STATUS: { - * value: "status", - * description: "Filter by status", - * type: "string", - * values: ["Open", "Closed", "In Progress"], - * }, - * CUSTOM_FILTER: { - * value: "custom", - * description: "Custom filter description", - * type: "number", - * }, - * // Add more filter categories as needed - * }; - */ - -export function commonReducer( - stateMachine: FilterStateType, - action: FilterActionType -): FilterStateType { - const { context } = stateMachine; - - switch (action.type) { - case FilteringEvents.CLEAR: - return { - state: FilteringState.SELECTING_FILTER, - context: { - ...context, - value: '', - prevValue: [''] - } - }; - case FilteringEvents.EXIT: - return { - state: FilteringState.IDLE, - context: { - ...context, - value: '', - prevValue: [''] - } - }; - default: - return stateMachine; - } -} - -export function filterSelectionReducer( - stateMachine: FilterStateType, - action: FilterActionType, - nextState: FilteringState, - nextValue: (prevValue: string, selectedValue: string) => string -): FilterStateType { - const { state, context } = stateMachine; - - const nextDelimiter = - nextState === FilteringState.SELECTING_FILTER ? Delimiter.FILTER : Delimiter.FILTER_VALUE; - - const prevDelimiter = - nextDelimiter == Delimiter.FILTER_VALUE ? Delimiter.FILTER : Delimiter.FILTER_VALUE; - - // Same state because the prevState is the same as the nextState (as we have only two states) - const prevState = nextState; - - switch (action.type) { - // Select a filter and move to start entering its value - case FilteringEvents.SELECT_FILTER: { - // ":" is used to separate the filter and its value - const newValue = nextValue(context?.prevValue?.at(-1) ?? '', action.payload?.value ?? ''); - return { - state: nextState, - context: { - ...context, - value: newValue + nextDelimiter, - prevValue: [...(context?.prevValue ?? []), newValue] - } - }; - } - // " " is used to separate multiple filters - case FilteringEvents.INPUT_CHANGE: - // Prevent transition when the filter/value is empty - if ( - action.payload?.value?.endsWith(nextDelimiter) && - context?.value?.endsWith(prevDelimiter) - ) { - return stateMachine; - } - // Prevent adding delimiters together - if ( - action.payload?.value?.endsWith(prevDelimiter) && - context?.value?.endsWith(prevDelimiter) - ) { - return stateMachine; - } - - if (action.payload?.value === context?.prevValue?.at(1)) { - return { - state: prevState, - context: { - ...context, - prevValue: context?.prevValue?.slice(0, -1) ?? [], - value: action.payload?.value ?? '' - } - }; - } - - if (action.payload?.value?.endsWith(nextDelimiter)) { - const newValue = action.payload.value; - return { - state: nextState, - context: { - ...context, - value: action.payload.value, - prevValue: [...(context?.prevValue ?? []), newValue.slice(0, -1)] - } - }; - } - - return { - // Stay in the same state - state, - context: { - ...context, - value: action.payload?.value - } - }; - default: - return commonReducer(stateMachine, action); - } -} - -export function filterReducer(stateMachine: FilterStateType, action: FilterActionType) { - const { state } = stateMachine; - - switch (state) { - case FilteringState.IDLE: - switch (action.type) { - case FilteringEvents.START: - return { - ...stateMachine, - state: FilteringState.SELECTING_FILTER - }; - default: - return stateMachine; - } - - case FilteringState.SELECTING_FILTER: - return filterSelectionReducer( - stateMachine, - action, - FilteringState.SELECTING_VALUE, - (prevValue, value) => prevValue + Delimiter.FILTER + value - ); - - case FilteringState.SELECTING_VALUE: - return filterSelectionReducer( - stateMachine, - action, - FilteringState.SELECTING_FILTER, - (prevValue, value) => prevValue + Delimiter.FILTER_VALUE + value - ); - - // Run for all states - default: - return stateMachine; - } -} diff --git a/src/utils/typing.utils.ts b/src/utils/typing.utils.ts deleted file mode 100644 index 3e0ce6860..000000000 --- a/src/utils/typing.utils.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { Delimiter, FilterSchema, FilterStateType } from './typing.state'; - -export type Filters = Record<string, string[] | undefined>; - -/** - * Returns the filter object from the filterSchema - * - * @param value - * @param filterSchema - * @returns - */ -export const getFilterByValue = ( - value: string, - filterSchema: FilterSchema -): { value: string; multiple: boolean } | undefined => { - const matchingFilterKey = Object.keys(filterSchema).find( - (key) => filterSchema[key].value === value - ); - - if (matchingFilterKey) { - const matchingFilter = filterSchema[matchingFilterKey]; - return { - value: matchingFilter.value ?? '', - multiple: !!matchingFilter.multiple - }; - } - - return undefined; -}; - -/** - * Parses a filter string and returns a filter object - * - * @param filterString - The input filter string of the form "type:value type2:value2 type:value2" - * @param filterSchema - The filter object with types as keys and arrays of values as values - * @returns - */ -export const getFilters = (filterString: string, filterSchema: FilterSchema): Filters => { - const filters: Filters = {}; - - const filterValuePairs = filterString.split(Delimiter.FILTER); - - filterValuePairs.forEach((filterValuePair) => { - const [filter, value] = filterValuePair.split(Delimiter.FILTER_VALUE); - - const schemaEntry = filterSchema[filter]; - - if (schemaEntry && schemaEntry.multiple) { - filters[filter] = filters[filter] ?? []; - filters[filter]!.push(value); // Using non-null assertion - } else { - filters[filter] = [value]; // Treat as an array - } - }); - - return filters; -}; - -/** - * Returns a filter string of form "type:value type2:value2 type:value2" from - * a filter object of { type: { values }, type2: { values } } - * - * @param filters - * @returns - */ -export const getFilterString = (filters: FilterSchema) => { - return Object.entries(filters).reduce((filterString, [filter, values]) => { - const valuesArray = values?.values ?? []; - const filterValuesString = valuesArray - .map((value) => `${filter}${Delimiter.FILTER_VALUE}${value}`) - .join(' '); - - return filterString + filterValuesString; - }, ''); -}; - -/** - * - * @param filteringState - * @returns - */ -export const getCurrentFilterAndValue = (filteringState: FilterStateType) => { - const { context } = filteringState; - const currentFilterValue = context?.value?.split(Delimiter.FILTER).at(-1); - const currentFilter = currentFilterValue?.split(Delimiter.FILTER_VALUE)?.[0] ?? ''; - const currentValue = currentFilterValue?.split(Delimiter.FILTER_VALUE)?.[1] ?? ''; - return { - filter: currentFilter, - value: currentValue - }; -}; diff --git a/system/foundations/colors.md b/system/foundations/colors.md deleted file mode 100644 index 623788eb9..000000000 --- a/system/foundations/colors.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Color -description: - Color is a fundamental piece in the Sistent visual language. In this guide you will learn about the principles, - patterns, and abstractions that make Sistent color system. -category: foundations ---- - -# [Sistent](https://design.layer5.io) UX Design System > Foundations > Colors - -Layer5's UI offers a variety of different color modes. Every pattern in Sistent is built to work across all color modes out of the box. - -When designing product interfaces in Figma, we recommend using light mode. This is best because the Meshery Figma components are only available in light mode. -To preview your work in other modes, use the [Figma color mode plugin](https://www.figma.com/community/plugin/992128487074360945/Change-Color-Mode). - -## How to use color for product UI - -Sistent delivers colors in the form of [design variables](https://design.layer5.io/foundations/colors). Design variables are a layer of abstraction that allows better maintainability, consistency and easy theming. - -For example use `bg-default` for the background of the page and `fg-default` for the text color. If the user changes to dark mode, the underlying color that those variables reference change, but the variables names stay the same. - -<img - width="960" - alt="Same component shown in light mode and dark mode color palettes" - src="./stepper.png" -/> - -### Color design variables are grouped based on their purpose: - -- **Presentational:** To represent a color. For example, the color steps in the Sistent scale are named by color and lightness, such as `core.keppel.5`. These design tokens don't support color modes. -- **Functional:** To convey a meaning or a state. For example, from a functional perspective the color green is used to reinforce positive messaging. In a functional system, green design variables are named with the suffix `.success`. -- **Component:** To represent a specific use case. For example, `button.bg` references from the system to be used as the background of a button component. - -As the system grows, it will provide more APIs that fit different color needs. Check the [Sistent Foundations](https://github.com/layer5io/sistent/releases/) repository to follow along as we release new design variables and systems. - -_Note: This combined specification integrates the information from both provided design system specifications regarding empty state patterns under the [Sistent](https://design.layer5.io) UX Design System._ diff --git a/system/foundations/responsive.md b/system/foundations/responsive.md deleted file mode 100644 index 057a65393..000000000 --- a/system/foundations/responsive.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Responsive -description: Supporting responsive experiences is an essential part of developing for the Web. Every page and feature at GitHub needs to adapt to the userโs device and their preferences. -category: foundations ---- - -## Definition - -[Responsive web design](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design) is the practice of building a website suitable to work on every device and every screen size, no matter how large or small, mobile or desktop. Responsive web design is an accessibility requirement, focused around providing an intuitive and gratifying experience for everyone. - -At Layer5, being Responsive means our experiences are inherently adaptive. Interfaces should not only adjust layout and spacing when resizing a page, but work efficiently to provide an experience that is tailored to match the paradigms and affordances of the personโs device: - -- Responsive to the [form factor](<https://en.wikipedia.org/wiki/Form_factor_(design)>): adapt to viewport size, pointing device support, and to the device metaphors, power, and [affordances](https://www.interaction-design.org/literature/topics/affordances). -- Responsive to the user preferences: respect browserโs default font size, reduced motion, color scheme, contrast preferences, etc. - -## Responsive to the deviceโs form factor - -Designing for the web means that people can open your page from virtually any type of device. When designing for Layer5, picture our users using desktops, tablets, and smartphones, but also [custom-built tiny cyberdecks](https://www.reddit.com/r/cyberDeck/top/?t=year) and [VR headsets](https://en.wikipedia.org/wiki/Virtual_reality_headset). - -### Device power - -Layer5 cannot discriminate against devices and connection speeds. Experiences need to be fast and performant, even on low-powered devices and slow connections. [Itโs not fully shipped until itโs fast](/foundations/zen). - -### Viewport size - -To guarantee maximum compatibility, pages should adapt to the [browserโs viewport size](https://developer.mozilla.org/en-US/docs/Web/CSS/Viewport_concepts), without loss of information or functionality, starting at the following dimensions: - -Providing support at these smaller sizes enable people with low vision to use Layer5 with a browser zoom enabled, up to 400% on a 1280px wide screen. [Read more about this accessibility requirement](https://www.w3.org/WAI/WCAG21/Understanding/reflow.html). - -To understand how to break down a page to work on smaller viewports, check out [Responsive foundations](/foundations/layout) and [Responsive behavior](/foundations/layout) sections in the [Layout](/foundations/layout) page. - -TODO: Capture SVG requirements and practices from Meshery. - -- **Minimum viewport width**: 375px -- **Minimum viewport height**: 300px diff --git a/system/foundations/stepper.png b/system/foundations/stepper.png deleted file mode 100644 index 2a0608805..000000000 Binary files a/system/foundations/stepper.png and /dev/null differ diff --git a/system/patterns/empty-states.md b/system/patterns/empty-states.md deleted file mode 100644 index 94d46b7f0..000000000 --- a/system/patterns/empty-states.md +++ /dev/null @@ -1,120 +0,0 @@ -# [Sistent](https://design.layer5.io) UX Design System: Empty State Patterns - -## Overview - -Empty states are essential components used to occupy spaces when no content has been added yet, or when content is temporarily unavailable due to the nature of the feature. The [Sistent](https://design.layer5.io) design system provides comprehensive guidelines for creating effective empty states using the BlankSlate component. - -### BlankSlate Component - -The BlankSlate component comprises various elements that work together to inform the user about a feature and guide them on how to proceed. Here are the key elements of the BlankSlate component and how to customize them: - -1. **Graphic** - - - Graphics should be purposefully placed to convey the intention of the content, whether it's to bring delight, preview an interface element, or represent the feature's goal. - - Different graphics may hold different meanings and appeal to users, which is why the BlankSlate component offers multiple variations. - -2. **Primary Text** - - - Use primary text to explain the purpose of the empty state, making users comfortable to engage with the content or start a feature flow. It should be welcoming, human, and clearly convey the feature's intention. - -3. **Secondary Text** - - - This optional text provides more detailed information about the feature. It should be concise and non-redundant, allowing users to understand the general purpose and benefits of the feature. - -4. **Primary Action** - - - Encourage the use of one primary action button that leads to a feature or component creation flow. The button copy should be brief yet descriptive. Consider adding an Octicon for further specification if needed. - -5. **Secondary Action** - - - A secondary action is optional and usually represented by a text link below the primary action button. It guides users to additional content related to the feature, such as "Learn more about X" or "Check out the guide on X." - -6. **Border** - - The border is invisible by default but can be added when needed to define the structure of the BlankSlate component, particularly in layouts where it's not the sole content. - -### Variations - -Empty states come in various forms to suit different contexts: - -- **Layer5 Marketing Icons:** Utilize Layer5 marketing icons to represent the feature where the BlankSlate is placed. This helps establish a visual association. - -- **Code Block BlankSlate:** Use this variation when providing steps or instructions in a code format, especially for features like getting started with packages in Layer5. - -- **Code of Conduct Illustration BlankSlate:** This variation combines primary and secondary text to welcome users and inform them about community-building through a code of conduct. - -- **First Time User BlankSlate:** Engage first-time users with playful illustrations introducing the [Five](https://layer5.io/brand) as a symbol of Layer5. Use primary text to welcome and secondary text to educate in a simple, less-technical manner. - -## Empty States Goals - -The primary goals of an empty state region in the [Sistent](https://design.layer5.io) design system are to: - -1. Increase feature adoption. -2. Improve learnability and feature discovery. -3. Enhance usability. - -## Solutions - -When creating an empty state, consider unique features that can be incorporated to better achieve the above goals compared to using a fallback solution. Tailor each empty state to the specific context, ensuring it addresses the three main goals effectively. - -## Analytics & Testing - -All empty state solutions should include usage analytics for continuous improvement. Treat this as a solution development process and follow the solution validation process. - -## Use Cases - -### Blank Content Empty State - -- **Description:** Serves as a placeholder when no content exists on a page, providing a call to action for content creation. -- **Specifications:** - - Appears when no content exists within a configured feature. - - Contains a method for creating content. - - Hides unnecessary UI elements unless lazy loading populates content or there's hidden but accessible content on the page (e.g., archived content). -- **Content Examples:** - - "Monitor vulnerabilities in your project" - - "Get started with monitoring" - -### Configuration Required Empty State - -- **Description:** Placeholder for features requiring configuration before content creation is possible. -- **Specifications:** - - Contains a primary action for configuring the feature. - - Contains a secondary action to invite a member to configure the feature. -- **Content Examples:** - - "Configuration required: Monitor vulnerabilities in your project" - - "Configuration required: Get started with monitoring" - -### Higher Tier Feature Empty State - -- **Description:** Placeholder for a feature unavailable under the current tier. -- **Specifications:** Determined by the Maintainers in collaboration with the Product Manager. - -### Empty Search Results Empty State - -- **Description:** Placeholder when no search results are found after a search or filtering. -- **Specifications:** - - Appears when no results are found after a search or filter. - - Describes that a search or filter returned no results. - - Does not contain a call to action. -- **Content Examples:** - - Filter Component: - - Title: "No results found" - - Text: "Edit your search filter and try again" - - Search Component: - - Title: "No results found" - - Text: "Edit your search and try again" - -## Fallback Solution - -If unable to meet the three primary goals of an empty state, a fallback solution may be used. The fallback should still contribute to achieving one of the goals and should include a way to track conversion. - -**Example Fallback Solution:** - -- `regions-empty-state--default` - ---- - -**Note:** For Higher Tier empty state region specifications, consult the maintainer team. - ---- - -_Note: This combined specification integrates the information from both provided design system specifications regarding empty state patterns under the [Sistent](https://design.layer5.io) UX Design System._ diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index dd728e1c8..000000000 --- a/tsconfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "lib": [ - "DOM", - "ESNext" - ], - "declaration": true, - "sourceMap": true, - "moduleResolution": "Node", - "experimentalDecorators": true, - "skipLibCheck": true, - "strict": true, - "isolatedModules": true, - "noFallthroughCasesInSwitch": true, - "jsx": "react-jsx", - "esModuleInterop": true, - "resolveJsonModule": true, - "allowSyntheticDefaultImports": true, - "importHelpers": true, - }, - "include": [ - "." - ], - "exclude": [ - "**/node_modules", - "**/dist" - ] -} \ No newline at end of file diff --git a/tsup.config.ts b/tsup.config.ts deleted file mode 100644 index fa617796f..000000000 --- a/tsup.config.ts +++ /dev/null @@ -1,18 +0,0 @@ -import path from 'path'; -import { defineConfig } from 'tsup'; - -const env = process.env.NODE_ENV; - -export default defineConfig({ - outDir: 'dist', - entry: ['src/index.tsx'], - bundle: env === 'production', - clean: true, - dts: true, - format: ['cjs', 'esm'], - external: ['react', 'xstate', '@xstate/react', 'react-dom'], - minify: env === 'production', - watch: env === 'development', - sourcemap: env === 'development', - tsconfig: path.resolve(__dirname, './tsconfig.json') -});