diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..7c71314 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,37 @@ +// eslint-disable-next-line no-undef +module.exports = { + settings: { + react: { + version: "detect", + }, + }, + extends: ['eslint:recommended', 'plugin:react/recommended'], + parser: '@babel/eslint-parser', + parserOptions: { + requireConfigFile: false, + ecmaVersion: 2020, + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + babelOptions: { + presets: ["@babel/preset-react"] + }, + }, + plugins: ['react'], + env: { + es6: true, + browser: true, + }, + rules: { + 'no-console': 0, // Disable console error + 'no-undef': 0, // Disable no-undef error + 'react-hooks/exhaustive-deps': 0, + 'no-unused-vars': 0, + 'react/jsx-key':0, + 'no-useless-escape' :0, + 'react/prop-types':0, + 'react/no-unescaped-entities':0, + 'react/no-unknown-property':0, + } +} diff --git a/.github/workflows/greetings.yaml b/.github/workflows/greetings.yaml new file mode 100644 index 0000000..0f4162f --- /dev/null +++ b/.github/workflows/greetings.yaml @@ -0,0 +1,22 @@ +name: Greetings +on: [pull_request_target, issues] +jobs: + greeting: + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - uses: actions/first-interaction@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + issue-message: | + Hi there! + + Thanks for opening this issue. We appreciate your contribution to this open-source project. We aim to respond or assign your issue as soon as possible. + + Please note that this is the project owner, @MAVRICK-1. I won't be available for 3-4 days and will reply to every PR after May 18. Thank you for your cooperation. + pr-message: | + Welcome to our repository. 🎊 + + Thank you so much for taking the time to point this out. Please note that this is the project owner, @MAVRICK-1. I won't be available for 3-4 days and will reply to every PR after May 18. Thank you for your cooperation. diff --git a/.gitignore b/.gitignore index 6d3b306..b237629 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules/ .env build BOSS +.eslintcache diff --git a/README.md b/README.md index cb26a0e..7de5cef 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,132 @@ +
+ # Nest ONDC Project +
+ +
+
+ +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + + + + + + + + + + + + + + + + + + + + +
🌟 Stars🍴 Forks🐛 Issues🔔 Open PRs🔕 Close PRs
StarsForksIssuesOpen Pull RequestsClose Pull Requests
+
+ ## Project Description + Our project is an ONDC (Open Network for Digital Commerce) site integrated with OpenStreetMap. The aim is to provide a seamless digital commerce experience for businesses and consumers across Bharat. The platform leverages ONDC APIs for data exchange and integration with various digital commerce services. -- YouTuBe Video Link : [NestOndc](https://www.youtube.com/watch?v=-WzV5HD6KMo) +### Additional Resources: +- **YouTube Video Link:** [NestOndc](https://www.youtube.com/watch?v=-WzV5HD6KMo) +- **Deployment Link:** [Link](https://nestondc.vercel.app/) + -- Deployment Link : [Link](https://nestondc.vercel.app/) +
+ +## -> Key Features <- +
-## Features -- Integration with ONDC APIs -- OpenStreetMap integration for location-based services -- Full-stack development for seamless user experience -- Responsive frontend design for accessibility across devices -- Secure backend architecture for data management +- **Integration with ONDC APIs:** Seamless integration with ONDC APIs for enhanced functionality. +- **OpenStreetMap Integration:** Utilizes OpenStreetMap for accurate and reliable location-based services. +- **Full-stack Development:** Developed using a full-stack approach to ensure a seamless user experience from frontend to backend. +- **Responsive Frontend Design:** Designed with responsiveness in mind, ensuring accessibility across various devices and screen sizes. +- **Secure Backend Architecture:** Built with a secure backend architecture to ensure the safety and integrity of user data. -## Technologies Used -- Frontend: HTML, CSS, JavaScript, React.js, Redux -- Backend: Node.js, Express.js, Firebase Realtime Database -- Mapping: OpenStreetMap API -- Version Control: Git, GitHub + +
+ +## 💻 Tech Stacks + +![HTML](https://img.shields.io/badge/HTML-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) +![CSS](https://img.shields.io/badge/CSS-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) +![JavaScript](https://img.shields.io/badge/JavaScript-%23F7DF1E.svg?style=for-the-badge&logo=javascript&logoColor=black) +![React.js](https://img.shields.io/badge/React.js-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) +![Redux](https://img.shields.io/badge/Redux-%23764ABC.svg?style=for-the-badge&logo=redux&logoColor=white) +![Node.js](https://img.shields.io/badge/Node.js-%23339933.svg?style=for-the-badge&logo=node.js&logoColor=white) +![Express.js](https://img.shields.io/badge/Express.js-%23000000.svg?style=for-the-badge&logo=express&logoColor=white) +![Firebase Realtime Database](https://img.shields.io/badge/Firebase_Realtime_Database-%23FFA000.svg?style=for-the-badge&logo=firebase&logoColor=white) +![OpenStreetMap API](https://img.shields.io/badge/OpenStreetMap_API-%23767676.svg?style=for-the-badge&logo=openstreetmap&logoColor=white) +![Git](https://img.shields.io/badge/Git-%23F05032.svg?style=for-the-badge&logo=git&logoColor=white) ![GitHub](https://img.shields.io/badge/GitHub-%23121011.svg?style=for-the-badge&logo=github&logoColor=white) + +
## Installation -1. Clone the repository: git clone <[https://github.com/USER_NAME/e-commerce_website.git](https://github.com/MAVRICK-1/e-commerce_website.git)> -2. Navigate to the project directory: cd -3. Install dependencies: npm install -4. Run the development server: npm start +1. **Clone the repository:** + ```bash + git clone https://github.com/MAVRICK-1/e-commerce_website.git + ``` +2. **Navigate to the project directory:** + ```bash + cd e-commerce_website + ``` +3. **Install dependencies:** + ```bash + npm install + ``` +4. **Run the development server:** + ```bash + npm start + ``` ## Usage -- Access the ONDC platform through the provided URL. -- Explore the digital commerce services and features. -- Use the integrated OpenStreetMap for location-based services. -- Interact with the platform to experience seamless digital commerce. +- **Access the ONDC platform:** Use the provided URL to access the platform. +- **Explore digital commerce services:** Navigate through various features and services offered. +- **Utilize location-based services:** Take advantage of the integrated OpenStreetMap for location-based functionalities. +- **Interact with the platform:** Engage with the website to experience seamless digital commerce. ## Contributing -- Fork the repository. -- Create your feature branch: git checkout -b feature-name -- Commit your changes: git commit -am 'Add some feature' -- Push to the branch: git push origin feature-name -- Submit a pull request. -## 🤝 Our Contributors +Thank you for considering contributing to our project! To contribute, follow these steps: + +1. **Fork the repository:** Click on the "Fork" button on the top right corner of the repository page. +2. **Create your feature branch:** + ```bash + git checkout -b feature-name + ``` + Replace `feature-name` with a descriptive name for your feature. +3. **Commit your changes:** + ```bash + git commit -am 'Add some feature' + ``` +4. **Push to the branch:** + ```bash + git push origin feature-name + ``` +5. **Submit a pull request:** Once you have pushed your changes to your forked repository, go to the original repository and click on the "New pull request" button. Fill out the necessary information and submit your pull request. -
- Contributors -
- - - -
-
+#### We appreciate your contributions and will review your pull request as soon as possible. Thank you for helping to improve our project! -Thank you for your interest in contributing to our project! We appreciate any contributions, whether it's bug fixes, new features, or documentation improvements. -We value the time and effort you put into contributing, and we look forward to reviewing and merging your contributions. Join us on this exciting journey of creativity and collaboration, and let your projects shine on NestOndc! + +

🤝 Our Contributors

+
+![Contributors](https://contrib.rocks/image?repo=MAVRICK-1/e-commerce_website) + +

Thank you for contributing to our repository

+ +
+

This Project is the part of

GSSoC @@ -67,4 +139,4 @@ This project is licensed under the [MIT License](LICENSE). ## Acknowledgements We extend our heartfelt gratitude to the organizers of GSSOC for offering this invaluable platform to exhibit our talents and make meaningful contributions to the open-source community. Your efforts in fostering a collaborative environment for budding developers are commendable, and we are privileged to be a part of such an esteemed event. Thank you for providing us with the opportunity to showcase our skills and contribute to the advancement of open-source technology. -:star: Don't forget to give us a star! :star: +

Don't forget to give us a ⭐

diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..7b47abc --- /dev/null +++ b/contributing.md @@ -0,0 +1,78 @@ +# **Contributing Guidelines** +This documentation contains a set of guidelines to help you during the contribution process. +We are happy to welcome all the contributions from anyone willing to improve/add new scripts to this project. +Thank you for helping out and remember, **no contribution is too small.** +
+Please note we have a [code of conduct](CODE_OF_CONDUCT.md) please follow it in all your interactions with the project. + + + +
+ +## **Creating a new issue process** + +1. Go to the project's issues. +2. click on "new issue". +3. Give proper title and required description for the issue. +4. Don't spam to get the assignment of the issue. +5. Wait for till someone is looking into it. +6. Start working on issue only after you got assigned that issue. + + +## **Need some help regarding the basics?** + +You can refer to the following articles on basics of Git and Github and also contact the Project Mentors, +in case you are stuck: + +- [Forking a Repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) +- [Cloning a Repo](https://help.github.com/en/desktop/contributing-to-projects/creating-an-issue-or-pull-request) +- [How to create a Pull Request](https://opensource.com/article/19/7/create-pull-request-github) +- [Getting started with Git and GitHub](https://towardsdatascience.com/getting-started-with-git-and-github-6fcd0f2d4ac6) +- [Learn GitHub from Scratch](https://docs.github.com/en/get-started/start-your-journey/git-and-github-learning-resources) + +
+ +### Steps need to be followed to contribute: + +1. **Open GitHub Desktop:** + Launch GitHub Desktop and log in to your GitHub account if you haven't already. + +2. **Clone the Repository:** + - If you haven't cloned the ResourceHub repository yet, you can do so by clicking on the "File" menu and selecting "Clone Repository." + - Choose the ResourceHub repository from the list of repositories on GitHub and clone it to your local machine. + +3. **Switch to the Correct Branch:** + - Ensure you are on the branch that you want to submit a pull request for. + - If you need to switch branches, you can do so by clicking on the "Current Branch" dropdown menu and selecting the desired branch. + +4. **Make Changes:** + Make your changes to the code or files in the repository using your preferred code editor(like vs code). + +5. **Commit Changes:** + - In GitHub Desktop, you'll see a list of the files you've changed. Check the box next to each file you want to include in the commit. + - Enter a summary and description for your changes in the "Summary" and "Description" fields, respectively. Click the "Commit to " button to commit your changes to the local branch. + +6. **Push Changes to GitHub:** + After committing your changes, click the "Push origin" button in the top right corner of GitHub Desktop to push your changes to your forked repository on GitHub. + +7. **Create a Pull Request:** + - Go to the GitHub website and navigate to your fork of the ResourceHub repository. + - You should see a button to "Compare & pull request" between your fork and the original repository. Click on it. + +8. **Review and Submit:** + - On the pull request page, review your changes and add any additional information, such as a title and description, that you want to include with your pull request. + - Once you're satisfied, click the "Create pull request" button to submit your pull request. + +9. **Wait for Review:** + Your pull request will now be available for review by the project maintainers. They may provide feedback or ask for changes before merging your pull request into the main branch of the ResourceHub repository. + + +## **Pull Request Process** + +1. Ensure that you have self reviewed your code. +2. Make sure you have added the proper description for the functionality of the code +3. Submit your PR by giving the necesarry information in PR template and wait for PR to review it. + +
+ +Thank you for your interest in contributing to **e-commerce website.** diff --git a/package-lock.json b/package-lock.json index 3ae9fbb..3c3667b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,11 @@ "web-vitals": "^2.1.4" }, "devDependencies": { - "@babel/plugin-transform-private-property-in-object": "^7.24.5" + "@babel/eslint-parser": "^7.24.5", + "@babel/plugin-transform-private-property-in-object": "^7.24.5", + "@babel/preset-react": "^7.24.1", + "eslint-plugin-react": "^7.34.1", + "prettier": "3.0.1" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -101,12 +105,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -158,9 +162,9 @@ } }, "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==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz", + "integrity": "sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ==", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -171,7 +175,7 @@ }, "peerDependencies": { "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { @@ -191,13 +195,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -490,9 +494,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "engines": { "node": ">=6.9.0" } @@ -524,22 +528,23 @@ } }, "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==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -835,11 +840,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1566,11 +1571,11 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz", + "integrity": "sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1580,15 +1585,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz", - "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.15" + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" @@ -1612,12 +1617,12 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz", + "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1944,16 +1949,16 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.15.tgz", - "integrity": "sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz", + "integrity": "sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-transform-react-display-name": "^7.24.1", + "@babel/plugin-transform-react-jsx": "^7.23.4", "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + "@babel/plugin-transform-react-pure-annotations": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -2010,19 +2015,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", - "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -3249,9 +3254,9 @@ "integrity": "sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA==" }, "node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz", - "integrity": "sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.1.tgz", + "integrity": "sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==", "hasInstallScript": true, "peer": true, "engines": { @@ -3259,13 +3264,13 @@ } }, "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz", - "integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.1.tgz", + "integrity": "sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==", "hasInstallScript": true, "peer": true, "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" + "@fortawesome/fontawesome-common-types": "6.5.1" }, "engines": { "node": ">=6" @@ -4076,13 +4081,13 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "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.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -4097,9 +4102,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "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" } @@ -4119,9 +4124,9 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "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" @@ -5686,9 +5691,9 @@ "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==" }, "node_modules/@types/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz", - "integrity": "sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==", + "version": "18.3.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.2.tgz", + "integrity": "sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -6396,12 +6401,15 @@ } }, "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==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6438,6 +6446,25 @@ "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==", + "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.findlastindex": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", @@ -6508,29 +6535,41 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.tosorted": { + "node_modules/array.prototype.toreversed": { "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==", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "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" + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" } }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "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", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -6555,14 +6594,6 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, - "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", @@ -6613,9 +6644,12 @@ } }, "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==", + "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==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -7199,12 +7233,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "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" @@ -7271,9 +7311,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001541", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001541.tgz", - "integrity": "sha512-bLOsqxDgTqUBkzxbNlSBt8annkDpQB9NdzdTbO2ooJ+eC/IQcvDspDc058g84ejCelF7vHUx57KIOjEecOHXaw==", + "version": "1.0.30001617", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz", + "integrity": "sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==", "funding": [ { "type": "opencollective", @@ -8106,6 +8146,54 @@ "node": ">=10" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "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.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -8185,16 +8273,19 @@ } }, "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "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": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "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": { @@ -8582,49 +8673,56 @@ } }, "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "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", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -8638,6 +8736,25 @@ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" }, + "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-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -8658,24 +8775,27 @@ } }, "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==", + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "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", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", + "internal-slot": "^1.0.7", "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-module-lexer": { @@ -8683,25 +8803,36 @@ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==" }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "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": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -9028,26 +9159,28 @@ } }, "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", + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.0.17", "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", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.10" }, "engines": { "node": ">=4" @@ -9087,11 +9220,11 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "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.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -10165,23 +10298,13 @@ "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.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "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", @@ -10225,14 +10348,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10263,12 +10390,13 @@ } }, "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==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -10461,20 +10589,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "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": { - "get-intrinsic": "^1.1.1" + "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -10494,11 +10622,11 @@ } }, "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==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -10507,6 +10635,17 @@ "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==", + "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", @@ -10920,12 +11059,12 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -10964,13 +11103,15 @@ } }, "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==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11054,6 +11195,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "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", @@ -11156,9 +11311,9 @@ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" }, "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==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "engines": { "node": ">= 0.4" }, @@ -11260,11 +11415,14 @@ } }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11310,11 +11468,11 @@ } }, "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==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -14306,9 +14464,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "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" } @@ -14337,12 +14495,12 @@ } }, "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==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -14850,6 +15008,14 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -16120,6 +16286,21 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.1.tgz", + "integrity": "sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -16892,14 +17073,15 @@ } }, "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==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -16945,13 +17127,14 @@ "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" }, "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==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -17360,12 +17543,12 @@ } }, "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==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -17396,14 +17579,17 @@ ] }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -17703,6 +17889,22 @@ "node": ">= 0.8.0" } }, + "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", @@ -18032,13 +18234,14 @@ } }, "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==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -18048,26 +18251,29 @@ } }, "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==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "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==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "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" @@ -18701,27 +18907,28 @@ } }, "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==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "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==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -18731,15 +18938,16 @@ } }, "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==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -18749,13 +18957,19 @@ } }, "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==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -19481,15 +19695,15 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" diff --git a/package.json b/package.json index 345f228..506dbe7 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,11 @@ }, "scripts": { "start": "set PORT=3006 && react-scripts start", - "build": "react-scripts build", + "build": "DISABLE_ESLINT_PLUGIN=true react-scripts build", "test": "react-scripts test", - "eject": "react-scripts eject" + "eject": "react-scripts eject", + "lint": "eslint . --ext .js,.jsx", + "lint:fix": "eslint . --cache --quiet --fix --ext .js,.jsx" }, "eslintConfig": { "extends": [ @@ -63,7 +65,11 @@ ] }, "devDependencies": { - "@babel/plugin-transform-private-property-in-object": "^7.24.5" + "@babel/eslint-parser": "^7.24.5", + "@babel/plugin-transform-private-property-in-object": "^7.24.5", + "@babel/preset-react": "^7.24.1", + "eslint-plugin-react": "^7.34.1", + "prettier": "3.0.1" }, "description": "", "main": "index.js", diff --git a/src/App.css b/src/App.css index dcf04ec..c717171 100644 --- a/src/App.css +++ b/src/App.css @@ -1,242 +1,440 @@ -@import url('https://fonts.googleapis.com/css2?family=Italiana&family=Lato:wght@100;300;400;700;900&family=Roboto:wght@100;300;400;500;700;900&display=swap'); -@import url('https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css'); -@import url('https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css'); - - - -*{margin: 0px; padding: 0px; box-sizing: border-box;} -body{font-family: 'Lato', sans-serif; font-size: 22px;} -#root{zoom: 65%;} -.container-fluid{padding: 0px 45px;} - -.no-click{pointer-events: none !important;} - -.transition{transition: all 0.3s ease-in-out;} -.cursor{cursor: pointer;} -.btn{border-radius: 8px !important;} -.btn-border{border: 1px solid rgba(0,0,0,0.1) !important; padding: 10px 25px !important; border-radius: 5px !important; color: #000 !important;} -.btn-border svg{opacity: 0.5;} -.btn-border:hover{border: 1px solid #3bb77e !important; background: #3bb77e !important; color: #fff !important;} -.btn-border:hover svg{opacity: 1 !important;} -.btn-g a{color: #fff !important; text-decoration: none !important;} -.btn-g{background: #3bb77e !important; padding: 10px 25px !important; border-radius: 5px !important; color: #fff !important; text-transform: capitalize !important; font-size: 18px !important;} -.btn-g:hover{background: #FDC040 !important;} -.btn-lg{font-size: 24px !important; padding: 10px 25px !important;} -.bg-g,.bg-success{background: #3bb77e !important;} -.text-g{color: #3bb77e;} -.text-org{color: #FDC040 !important;} -.text-light{color: #8b8b8b !important;} -p{color: #7E7E7E;} - -.hd{font-size: 38px; font-weight: 600; margin-bottom: 25px;} +@import url("https://fonts.googleapis.com/css2?family=Italiana&family=Lato:wght@100;300;400;700;900&family=Roboto:wght@100;300;400;500;700;900&display=swap"); +@import url("https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css"); +@import url("https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css"); + +* { + margin: 0px; + padding: 0px; + box-sizing: border-box; +} +body { + font-family: "Lato", sans-serif; + font-size: 22px; +} +#root { + zoom: 65%; +} +.container-fluid { + padding: 0px 45px; +} + +.no-click { + pointer-events: none !important; +} + +.transition { + transition: all 0.3s ease-in-out; +} +.cursor { + cursor: pointer; +} +.btn { + border-radius: 8px !important; +} +.btn-border { + border: 1px solid rgba(0, 0, 0, 0.1) !important; + padding: 10px 25px !important; + border-radius: 5px !important; + color: #000 !important; +} + +.btn-borderWishlistAlreadyAdded { + padding: 10px 25px !important; + border-radius: 5px !important; + color: #fff !important; + border: 1px solid #3bb77e !important; + background: #3bb77e !important; +} + +.btn-border svg { + opacity: 0.5; +} +/* .btn-border:hover { + border: 1px solid #3bb77e !important; + background: #3bb77e !important; + color: #fff !important; +} */ +.btn-border:hover svg { + opacity: 1 !important; +} +.btn-g a { + color: #fff !important; + text-decoration: none !important; +} +.btn-g { + background: #3bb77e !important; + padding: 10px 25px !important; + border-radius: 5px !important; + color: #fff !important; + text-transform: capitalize !important; + font-size: 18px !important; +} +.btn-g:hover { + background: #fdc040 !important; +} +.btn-lg { + font-size: 24px !important; + padding: 10px 25px !important; +} +.bg-g, +.bg-success { + background: #3bb77e !important; +} +.text-g { + color: #3bb77e; +} +.text-org { + color: #fdc040 !important; +} +.text-light { + color: #8b8b8b !important; +} +p { + color: #7e7e7e; +} + +.hd { + font-size: 38px; + font-weight: 600; + margin-bottom: 25px; +} /* START TOOLTIP STYLES */ [tooltip] { - position: relative; /* opinion 1 */ - } - - /* Applies to all tooltips */ - [tooltip]::before, - [tooltip]::after { - text-transform: none; /* opinion 2 */ - font-size: 16px; /* opinion 3 */ - line-height: 1; - user-select: none; - pointer-events: none; - position: absolute; - display: none; - opacity: 0; - } - [tooltip]::before { - content: ''; - border: 5px solid transparent; /* opinion 4 */ - z-index: 1001; /* absurdity 1 */ - } - [tooltip]::after { - content: attr(tooltip); /* magic! */ - - /* most of the rest of this is opinion */ - font-family: Helvetica, sans-serif; - text-align: center; - - /* + position: relative; /* opinion 1 */ +} + +/* Applies to all tooltips */ +[tooltip]::before, +[tooltip]::after { + text-transform: none; /* opinion 2 */ + font-size: 16px; /* opinion 3 */ + line-height: 1; + user-select: none; + pointer-events: none; + position: absolute; + display: none; + opacity: 0; +} +[tooltip]::before { + content: ""; + border: 5px solid transparent; /* opinion 4 */ + z-index: 1001; /* absurdity 1 */ +} +[tooltip]::after { + content: attr(tooltip); /* magic! */ + + /* most of the rest of this is opinion */ + font-family: Helvetica, sans-serif; + text-align: center; + + /* Let the content set the size of the tooltips but this will also keep them from being obnoxious */ - min-width: 3em; - max-width: 21em; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - padding: 1ch 1.5ch; - border-radius: .3ch; - box-shadow: 0 1em 2em -.5em rgba(0, 0, 0, 0.35); - background: #3bb77e; - color: #fff; - z-index: 1000; /* absurdity 2 */ - } - - /* Make the tooltips respond to hover */ - [tooltip]:hover::before, - [tooltip]:hover::after { - display: block; - } - - /* don't show empty tooltips */ - [tooltip='']::before, - [tooltip='']::after { - display: none !important; - } - - /* FLOW: UP */ - [tooltip]:not([flow])::before, - [tooltip][flow^="up"]::before { - bottom: 100%; - border-bottom-width: 0; - border-top-color: #3bb77e; - } - [tooltip]:not([flow])::after, - [tooltip][flow^="up"]::after { - bottom: calc(100% + 5px); - } - [tooltip]:not([flow])::before, - [tooltip]:not([flow])::after, - [tooltip][flow^="up"]::before, - [tooltip][flow^="up"]::after { - left: 50%; - transform: translate(-50%, -.5em); - } - - /* FLOW: DOWN */ - [tooltip][flow^="down"]::before { - top: 100%; - border-top-width: 0; - border-bottom-color: #333; - } - [tooltip][flow^="down"]::after { - top: calc(100% + 5px); - } - [tooltip][flow^="down"]::before, - [tooltip][flow^="down"]::after { - left: 50%; - transform: translate(-50%, .5em); - } - - /* FLOW: LEFT */ - [tooltip][flow^="left"]::before { - top: 50%; - border-right-width: 0; - border-left-color: #333; - left: calc(0em - 5px); - transform: translate(-.5em, -50%); - } - [tooltip][flow^="left"]::after { - top: 50%; - right: calc(100% + 5px); - transform: translate(-.5em, -50%); - } - - /* FLOW: RIGHT */ - [tooltip][flow^="right"]::before { - top: 50%; - border-left-width: 0; - border-right-color: #3bb77e; - right: calc(0em - 5px); - transform: translate(.5em, -50%); - } - [tooltip][flow^="right"]::after { - top: 50%; - left: calc(100% + 5px); - transform: translate(.5em, -50%); - } - - /* KEYFRAMES */ - @keyframes tooltips-vert { - to { - opacity: .9; - transform: translate(-50%, 0); - } - } - - @keyframes tooltips-horz { - to { - opacity: .9; - transform: translate(0, -50%); - } - } - - /* FX All The Things */ - [tooltip]:not([flow]):hover::before, - [tooltip]:not([flow]):hover::after, - [tooltip][flow^="up"]:hover::before, - [tooltip][flow^="up"]:hover::after, - [tooltip][flow^="down"]:hover::before, - [tooltip][flow^="down"]:hover::after { - animation: tooltips-vert 300ms ease-out forwards; - } - - [tooltip][flow^="left"]:hover::before, - [tooltip][flow^="left"]:hover::after, - [tooltip][flow^="right"]:hover::before, - [tooltip][flow^="right"]:hover::after { - animation: tooltips-horz 300ms ease-out forwards; + min-width: 3em; + max-width: 21em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + padding: 1ch 1.5ch; + border-radius: 0.3ch; + box-shadow: 0 1em 2em -0.5em rgba(0, 0, 0, 0.35); + background: #3bb77e; + color: #fff; + z-index: 1000; /* absurdity 2 */ +} + +/* Make the tooltips respond to hover */ +[tooltip]:hover::before, +[tooltip]:hover::after { + display: block; +} + +/* don't show empty tooltips */ +[tooltip=""]::before, +[tooltip=""]::after { + display: none !important; +} + +/* FLOW: UP */ +[tooltip]:not([flow])::before, +[tooltip][flow^="up"]::before { + bottom: 100%; + border-bottom-width: 0; + border-top-color: #3bb77e; +} +[tooltip]:not([flow])::after, +[tooltip][flow^="up"]::after { + bottom: calc(100% + 5px); +} +[tooltip]:not([flow])::before, +[tooltip]:not([flow])::after, +[tooltip][flow^="up"]::before, +[tooltip][flow^="up"]::after { + left: 50%; + transform: translate(-50%, -0.5em); +} + +/* FLOW: DOWN */ +[tooltip][flow^="down"]::before { + top: 100%; + border-top-width: 0; + border-bottom-color: #333; +} +[tooltip][flow^="down"]::after { + top: calc(100% + 5px); +} +[tooltip][flow^="down"]::before, +[tooltip][flow^="down"]::after { + left: 50%; + transform: translate(-50%, 0.5em); +} + +/* FLOW: LEFT */ +[tooltip][flow^="left"]::before { + top: 50%; + border-right-width: 0; + border-left-color: #333; + left: calc(0em - 5px); + transform: translate(-0.5em, -50%); +} +[tooltip][flow^="left"]::after { + top: 50%; + right: calc(100% + 5px); + transform: translate(-0.5em, -50%); +} + +/* FLOW: RIGHT */ +[tooltip][flow^="right"]::before { + top: 50%; + border-left-width: 0; + border-right-color: #3bb77e; + right: calc(0em - 5px); + transform: translate(0.5em, -50%); +} +[tooltip][flow^="right"]::after { + top: 50%; + left: calc(100% + 5px); + transform: translate(0.5em, -50%); +} + +/* KEYFRAMES */ +@keyframes tooltips-vert { + to { + opacity: 0.9; + transform: translate(-50%, 0); } - +} -.price{font-size: 25px; margin-right: 20px;} -.oldPrice{font-size: 20px; opacity: 0.6; color: #000; text-decoration: line-through;} +@keyframes tooltips-horz { + to { + opacity: 0.9; + transform: translate(0, -50%); + } +} +/* FX All The Things */ +[tooltip]:not([flow]):hover::before, +[tooltip]:not([flow]):hover::after, +[tooltip][flow^="up"]:hover::before, +[tooltip][flow^="up"]:hover::after, +[tooltip][flow^="down"]:hover::before, +[tooltip][flow^="down"]:hover::after { + animation: tooltips-vert 300ms ease-out forwards; +} -.listingPage{width: 100%; height: auto; padding: 45px 0px;} +[tooltip][flow^="left"]:hover::before, +[tooltip][flow^="left"]:hover::after, +[tooltip][flow^="right"]:hover::before, +[tooltip][flow^="right"]:hover::after { + animation: tooltips-horz 300ms ease-out forwards; +} -.breadcrumb{width: 100%; height: auto; padding: 45px 45px; background: #d8f1e5; border-radius: 20px; margin-bottom: 30px;} -.breadcrumb h1{color: #000; opacity: 0.8; font-size: 50px; font-weight: bold;} -.breadcrumb ul li{margin-right: 20px !important;} -.breadcrumb ul li a{color: #000; text-decoration: none; font-size: 22px;} +.price { + font-size: 25px; + margin-right: 20px; +} +.oldPrice { + font-size: 20px; + opacity: 0.6; + color: #000; + text-decoration: line-through; +} +.listingPage { + width: 100%; + height: auto; + padding: 45px 0px; +} -.sidebarWrapper{max-width: 20%; flex: 0 0 20%;} -.rightContent{max-width: 80%; flex: 0 0 80%;} -.sidebarWrapper h3{font-size: 30px; font-weight: 600; position: relative; padding-bottom: 20px; margin-bottom: 30px;} -.sidebarWrapper h3:after{content: ''; width: 100%; height: 3px; background: #f0f0f0; position: absolute; bottom: 0px; -left: 0px;} +.breadcrumb { + width: 100%; + height: auto; + padding: 45px 45px; + background: #d8f1e5; + border-radius: 20px; + margin-bottom: 30px; +} +.breadcrumb h1 { + color: #000; + opacity: 0.8; + font-size: 50px; + font-weight: bold; +} +.breadcrumb ul li { + margin-right: 20px !important; +} +.breadcrumb ul li a { + color: #000; + text-decoration: none; + font-size: 22px; +} -.sidebarWrapper h3:before{content: ''; width: 20%; height: 3px; background: #b0e5c2; position: absolute; bottom: 0px; left: 0px; z-index: 10;} +.sidebarWrapper { + max-width: 20%; + flex: 0 0 20%; +} +.rightContent { + max-width: 80%; + flex: 0 0 80%; +} +.sidebarWrapper h3 { + font-size: 30px; + font-weight: 600; + position: relative; + padding-bottom: 20px; + margin-bottom: 30px; +} +.sidebarWrapper h3:after { + content: ""; + width: 100%; + height: 3px; + background: #f0f0f0; + position: absolute; + bottom: 0px; + left: 0px; +} -.sidebarWrapper .sidebar{position: sticky; top: 110px;} +.sidebarWrapper h3:before { + content: ""; + width: 20%; + height: 3px; + background: #b0e5c2; + position: absolute; + bottom: 0px; + left: 0px; + z-index: 10; +} -.sidebarWrapper .sidebar .card{padding: 25px; border-radius: 10px !important; margin-bottom: 40px;} +.sidebarWrapper .sidebar { + position: sticky; + top: 110px; +} -.sidebarWrapper .sidebar .card .catList a{text-decoration: none;} -.sidebarWrapper .sidebar .card .catList .catItem{ padding: 10px; border: 1px solid rgba(0,0,0,0.050); cursor: pointer; margin: 10px 0px; border-radius: 4px; transition:all 0.3s ease-in-out} -.sidebarWrapper .sidebar .card .catList .catItem h4{color: #000 !important; font-size: 18px; } -.sidebarWrapper .sidebar .card .catList .catItem .rounded-circle{background: #BCE3C9; width: 40px; height: 40px;} -.sidebarWrapper .sidebar .card .catList .catItem:hover{border: 1px solid rgba(0,0,0,0.2);} +.sidebarWrapper .sidebar .card { + padding: 25px; + border-radius: 10px !important; + margin-bottom: 40px; +} -.priceRange span{font-size: 20px;} +.sidebarWrapper .sidebar .card .catList a { + text-decoration: none; +} +.sidebarWrapper .sidebar .card .catList .catItem { + padding: 10px; + border: 1px solid rgba(0, 0, 0, 0.05); + cursor: pointer; + margin: 10px 0px; + border-radius: 4px; + transition: all 0.3s ease-in-out; +} +.sidebarWrapper .sidebar .card .catList .catItem h4 { + color: #000 !important; + font-size: 18px; +} +.sidebarWrapper .sidebar .card .catList .catItem .rounded-circle { + background: #bce3c9; + width: 40px; + height: 40px; +} +.sidebarWrapper .sidebar .card .catList .catItem:hover { + border: 1px solid rgba(0, 0, 0, 0.2); +} -.filters{padding: 25px 0px;} -.filters h5{font-weight: 600; margin-bottom: 10px;} -.filters ul{max-height: 200px; overflow-y: scroll; margin-left: -10px;} -.filters ul::-webkit-scrollbar{width: 10px !important;} -.filters ul::-webkit-scrollbar-thumb{ background: #ccc !important;} -.filters ul li{width: 100%; margin-bottom: 0px; list-style: none;} +.priceRange span { + font-size: 20px; +} -.filterWrapper{display: none !important;} -.sidebarWrapper .sidebar .btn{width: 100% !important;} +.filters { + padding: 25px 0px; +} +.filters h5 { + font-weight: 600; + margin-bottom: 10px; +} +.filters ul { + max-height: 200px; + overflow-y: scroll; + margin-left: -10px; +} +.filters ul::-webkit-scrollbar { + width: 10px !important; +} +.filters ul::-webkit-scrollbar-thumb { + background: #ccc !important; +} +.filters ul li { + width: 100%; + margin-bottom: 0px; + list-style: none; +} +.filterWrapper { + display: none !important; +} +.sidebarWrapper .sidebar .btn { + width: 100% !important; +} -.rightContent .topStrip{padding: 0px 25px;} -.rightContent .topStrip p{font-size: 20px;} +.rightContent .topStrip { + padding: 0px 25px; +} +.rightContent .topStrip p { + font-size: 20px; +} -.rightContent .topStrip .tab_{width: 200px;} -.rightContent .topStrip .tab_ .btn_{background: none !important; border: 1px solid rgba(0,0,0,0.1) !important; padding: 10px 20px !important; text-transform: capitalize !important; color: rgba(0,0,0,0.7) !important; border-radius: 10px !important; font-size: 16px !important; width: 100% !important; justify-content: flex-start !important;} -.rightContent .topStrip .tab_ .btn_ svg{opacity: 0.5;} -.rightContent .topStrip .tab_ .dropdownMenu{top: 100% !important;} +.rightContent .topStrip .tab_ { + width: 200px; +} +.rightContent .topStrip .tab_ .btn_ { + background: none !important; + border: 1px solid rgba(0, 0, 0, 0.1) !important; + padding: 10px 20px !important; + text-transform: capitalize !important; + color: rgba(0, 0, 0, 0.7) !important; + border-radius: 10px !important; + font-size: 16px !important; + width: 100% !important; + justify-content: flex-start !important; +} +.rightContent .topStrip .tab_ .btn_ svg { + opacity: 0.5; +} +.rightContent .topStrip .tab_ .dropdownMenu { + top: 100% !important; +} -.breadcrumbWrapper{width: 100%; height: auto; padding: 30px 0px; - border-bottom:1px solid rgba(0,0,0,0.1) !important ;} -.breadcrumb2{background: none !important; padding: 0px !important;} +.breadcrumbWrapper { + width: 100%; + height: auto; + padding: 30px 0px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important ; +} +.breadcrumb2 { + background: none !important; + padding: 0px !important; +} ul.breadcrumb { padding: 10px 16px; list-style: none; @@ -246,7 +444,7 @@ ul.breadcrumb li { display: inline; font-size: 18px; } -ul.breadcrumb li+li:before { +ul.breadcrumb li + li:before { padding: 8px; color: black; content: "/\00a0"; @@ -260,92 +458,246 @@ ul.breadcrumb li a:hover { text-decoration: underline; } +.detailsContainer { + max-width: 85%; + margin: auto; + padding: 30px 0px; +} +.detailsPage .productInfo { + padding-left: 80px; +} +.detailsPage .productInfo h1 { + font-size: 55px; + font-weight: bold; + opacity: 0.8; +} +.detailsPage .productInfo .priceSec .priceLarge { + font-size: 70px; + font-weight: bold; +} +.detailsPage .productInfo .priceSec .text-org { + font-size: 20px; + font-weight: 600; +} +.detailsPage .productInfo .priceSec .text-light.oldPrice { + font-size: 30px; + font-weight: 600; +} - -.detailsContainer{max-width: 85%; margin: auto; padding: 30px 0px;} - -.detailsPage .productInfo{padding-left: 80px;} -.detailsPage .productInfo h1{font-size: 55px; font-weight: bold; opacity: 0.8;} - .detailsPage .productInfo .priceSec .priceLarge{font-size: 70px; font-weight: bold;} - .detailsPage .productInfo .priceSec .text-org{font-size: 20px; font-weight: 600;} - .detailsPage .productInfo .priceSec .text-light.oldPrice{font-size: 30px; font-weight: 600;} - - .productZoom{ width: 100%; height: auto; border: 1px solid rgba(0,0,0,0.1); padding: 0px; overflow: hidden; border-radius: 15px;} - .zoomSliderBig{width: 100% !important;} - - - .zoomSlider{padding-top: 30px;} - .zoomSlider .slick-slide { padding-right: 20px !important;} - .zoomSlider *{outline: none !important;} - .zoomSlider .item{border: 2px solid transparent !important; overflow: hidden; border-radius: 15px; cursor: pointer;} - .zoomSlider .slick-current .item{border: 2px solid #3bb77e !important; } - .zoomSlider .slick-arrow{top: 55% !important; zoom: 80% !important;} - .zoomSlider .slick-arrow.slick-next{right: -2% !important;} - .zoomSlider .slick-arrow.slick-prev{left: -5% !important;} - +.productZoom { + width: 100%; + height: auto; + border: 1px solid rgba(0, 0, 0, 0.1); + padding: 0px; + overflow: hidden; + border-radius: 15px; +} +.zoomSliderBig { + width: 100% !important; +} - .productSize{width: 100%; height: auto; padding: 25px 0px;} - .productSize ul li{margin-right: 10px !important;} - .productSize ul li a{display: flex; align-items: center; justify-content: center; padding:10px 20px !important; border: 1px solid rgba(0,0,0,0.1); border-radius: 5px !important; cursor: pointer; text-decoration: none !important; color: #000; font-size: 16px !important; transition: all 0.1s ease-in-out;} - - .productSize ul li a.active{background: #3bb77e !important; color: #fff !important;} +.zoomSlider { + padding-top: 30px; +} +.zoomSlider .slick-slide { + padding-right: 20px !important; +} +.zoomSlider * { + outline: none !important; +} +.zoomSlider .item { + border: 2px solid transparent !important; + overflow: hidden; + border-radius: 15px; + cursor: pointer; +} +.zoomSlider .slick-current .item { + border: 2px solid #3bb77e !important; +} +.zoomSlider .slick-arrow { + top: 55% !important; + zoom: 80% !important; +} +.zoomSlider .slick-arrow.slick-next { + right: -2% !important; +} +.zoomSlider .slick-arrow.slick-prev { + left: -5% !important; +} - input::-webkit-outer-spin-button, - input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; - } - - /* Firefox */ - input[type=number] { - -moz-appearance: textfield; - } +.productSize { + width: 100%; + height: auto; + padding: 25px 0px; +} +.productSize ul li { + margin-right: 10px !important; +} +.productSize ul li a { + display: flex; + align-items: center; + justify-content: center; + padding: 10px 20px !important; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 5px !important; + cursor: pointer; + text-decoration: none !important; + color: #000; + font-size: 16px !important; + transition: all 0.1s ease-in-out; +} +.productSize ul li a.active { + background: #3bb77e !important; + color: #fff !important; +} - .addCartSection{width: 100%; height: auto;} - .addCartSection .counterSec{width: 100px; height: 60px; border-radius: 10px; border: 1px solid #3bb77e !important; overflow: hidden; padding: 10px;} - .addCartSection .counterSec input{width:60px; height: 40px; padding: 5px; border: 0px; outline: none !important; text-align: center; pointer-events: none;} +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} - .addCartSection .counterSec{position: relative;} - .addCartSection .counterSec .arrow{position: absolute; cursor: pointer; opacity: 0.6;} - .addCartSection .counterSec .arrow.plus{top: -5px; right: 10px;} - .addCartSection .counterSec .arrow.minus{bottom: -5px; right: 10px;} +/* Firefox */ +input[type="number"] { + -moz-appearance: textfield; +} - .addtocartbtn svg{font-size: 28px !important;} +.addCartSection { + width: 100%; + height: auto; +} +.addCartSection .counterSec { + width: 100px; + height: 60px; + border-radius: 10px; + border: 1px solid #3bb77e !important; + overflow: hidden; + padding: 10px; +} +.addCartSection .counterSec input { + width: 60px; + height: 40px; + padding: 5px; + border: 0px; + outline: none !important; + text-align: center; + pointer-events: none; +} - .addCartSection button{height: 60px; min-width: inherit !important;} - .addCartSection button svg{font-size: 30px !important;} - +.addCartSection .counterSec { + position: relative; +} +.addCartSection .counterSec .arrow { + position: absolute; + cursor: pointer; + opacity: 0.6; +} +.addCartSection .counterSec .arrow.plus { + top: -5px; + right: 10px; +} +.addCartSection .counterSec .arrow.minus { + bottom: -5px; + right: 10px; +} -.card{border-radius: 10px !important;} +.addtocartbtn svg { + font-size: 28px !important; +} - .detailsPageTabs{border-radius: 25px !important;} +.addCartSection button { + height: 60px; + min-width: inherit !important; +} +.addCartSection button svg { + font-size: 30px !important; +} - .customTabs ul li{margin-right: 30px !important;} - .customTabs ul li button{padding: 10px 25px !important; border: 1px solid rgba(0,0,0,0.2) !important; font-size: 20px !important; text-transform: capitalize !important; border-radius: 30px !important; color: #000 !important;} +.card { + border-radius: 10px !important; +} - .customTabs ul li button.active{color: #3bb77e !important;} +.detailsPageTabs { + border-radius: 25px !important; +} - .reviewsCard{margin-bottom: 25px !important;} +.customTabs ul li { + margin-right: 30px !important; +} +.customTabs ul li button { + padding: 10px 25px !important; + border: 1px solid rgba(0, 0, 0, 0.2) !important; + font-size: 20px !important; + text-transform: capitalize !important; + border-radius: 30px !important; + color: #000 !important; +} - .reviewsCard .image{width: 100px;} - .reviewsCard .rounded-circle{display: flex; align-items: center; justify-content: center; overflow: hidden; width: 100px; height:100px;} - .reviewsCard .rounded-circle img{width: 100%; height: 100%; object-fit: cover;} - .reviewsCard .info{width: 85%;} +.customTabs ul li button.active { + color: #3bb77e !important; +} +.reviewsCard { + margin-bottom: 25px !important; +} - .reviewForm .form-group{margin-bottom: 25px;} - .reviewForm .form-group .form-control{height: 80px; font-size: 20px; border-radius: 7px !important; padding-left: 20px;} - .reviewForm .form-group textarea.form-control{height: 200px; padding-top: 25px;} +.reviewsCard .image { + width: 100px; +} +.reviewsCard .rounded-circle { + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + width: 100px; + height: 100px; +} +.reviewsCard .rounded-circle img { + width: 100%; + height: 100%; + object-fit: cover; +} +.reviewsCard .info { + width: 85%; +} - .progressBarBox{margin-bottom: 10px;} - .progress-bar{font-size: 16px;} +.reviewForm .form-group { + margin-bottom: 25px; +} +.reviewForm .form-group .form-control { + height: 80px; + font-size: 20px; + border-radius: 7px !important; + padding-left: 20px; +} +.reviewForm .form-group textarea.form-control { + height: 200px; + padding-top: 25px; +} +.progressBarBox { + margin-bottom: 10px; +} +.progress-bar { + font-size: 16px; +} - .relatedProducts .item { - padding: 15px 5px; - padding-right: 25px !important; +.relatedProducts .item { + padding: 15px 5px; + padding-right: 25px !important; } -.loader{position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; z-index: 10000; background: #fff; display: flex; align-items: center; justify-content: center;} \ No newline at end of file +.loader { + position: fixed; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + z-index: 10000; + background: #fff; + display: flex; + align-items: center; + justify-content: center; +} diff --git a/src/App.js b/src/App.js index 57e0457..c410b48 100644 --- a/src/App.js +++ b/src/App.js @@ -1,44 +1,45 @@ -import React, { useEffect, useState, createContext } from "react"; import "bootstrap/dist/css/bootstrap.min.css"; -import "./App.css"; -import "./responsive.css"; -import { Routes, Route, HashRouter } from "react-router-dom"; import { getDatabase, - ref, onValue, - set, - push, - child, - remove, + ref } from "firebase/database"; -import Header from "./components/header/header"; +import React, { createContext, useEffect, useState } from "react"; +import { HashRouter, Route, Routes } from "react-router-dom"; +import "./App.css"; +import Loader from "./assets/images/loading.gif"; import Footer from "./components/footer/footer"; +import Header from "./components/header/header"; +import About from "./pages/About"; +import AddProductForm from "./pages/AddProd"; +import DetailsPage from "./pages/Details"; import Home from "./pages/Home/index"; -import About from "./pages/About/index"; import Listing from "./pages/Listing"; import NotFound from "./pages/NotFound"; -import DetailsPage from "./pages/Details"; -import axios from "axios"; -import Cart from "./pages/cart"; import SignIn from "./pages/SignIn"; import SignUp from "./pages/SignUp"; -import Loader from "./assets/images/loading.gif"; -import AddProductForm from "./pages/AddProd"; +import Cart from "./pages/cart"; +import Wishlist from "./pages/wishList"; +import "./responsive.css"; // import data from './data'; +import { collection, doc, getDocs } from "firebase/firestore"; import MapComponent from "./components/map/ITEMmap"; -import SellerForm from "./pages/SellerRegistration"; import { db } from "./firebase"; + import { collection, doc, getDocs } from "firebase/firestore"; import {Account} from "./components/AccountDetails/Account"; +import SellerForm from "./pages/SellerRegistration"; + + const MyContext = createContext(); function App() { const [productData, setProductData] = useState([]); const [cartItems, setCartItems] = useState([]); + const [wishlistItems, setWishlistItems] = useState([]); const [isLoading, setIsloading] = useState(true); @@ -51,17 +52,18 @@ function App() { const [isLogin, setIsLogin] = useState(); const [isOpenFilters, setIsopenFilters] = useState(false); const [data, setData] = useState([]); - const [cartCount,setCartCount] = useState(0) - + const [cartCount, setCartCount] = useState(0); + const [wishlistCount, setWishlistCount] = useState(0); - useEffect(()=>{ - fetchCartProducts() - },[isLogin]) + useEffect(() => { + fetchCartProducts(); + fetchWishlistProducts(); + }, [isLogin]); const fetchCartProducts = async () => { try { - const cartRef = doc(db, 'carts', localStorage.getItem("uid")); - const productsCollectionRef = collection(cartRef, 'products'); + const cartRef = doc(db, "carts", localStorage.getItem("uid")); + const productsCollectionRef = collection(cartRef, "products"); const querySnapshot = await getDocs(productsCollectionRef); const products = []; querySnapshot.forEach((doc) => { @@ -70,10 +72,28 @@ function App() { setCartItems(products); setCartCount(products.length); // Set the product count } catch (error) { - console.error('Error fetching cart products:', error); + console.error("Error fetching cart products:", error); } }; + const fetchWishlistProducts = async () => { + console.log("fetchWishlistProducts"); + try { + const wishlistRef = doc(db, "wishlists", localStorage.getItem("uid")); + const productsCollectionRef = collection(wishlistRef, "products"); + const querySnapshot = await getDocs(productsCollectionRef); + console.log(querySnapshot); + const products = []; + querySnapshot.forEach((doc) => { + products.push({ id: doc.id, ...doc.data() }); + }); + console.log(products); + setWishlistItems(products); + setWishlistCount(products.length); // Set the product count + } catch (error) { + console.error("Error fetching wishlist products:", error); + } + }; useEffect(() => { const fetchData = async () => { @@ -211,7 +231,10 @@ function App() { setIsopenNavigation, cartCount, setCartCount, - fetchCartProducts + wishlistCount, + setWishlistCount, + fetchCartProducts, + fetchWishlistProducts, }; return data && data.productData ? ( @@ -248,6 +271,7 @@ function App() { element={} /> } /> + } /> }/> @@ -281,3 +305,4 @@ function App() { export default App; export { MyContext }; + diff --git a/src/components/footer/footer.js b/src/components/footer/footer.js index 2d0fdaa..47277e5 100644 --- a/src/components/footer/footer.js +++ b/src/components/footer/footer.js @@ -127,7 +127,7 @@ const Footer = () => {

Company

-