From a0dda83a4134e687fe10bded13ea4a095926e01f Mon Sep 17 00:00:00 2001 From: Daksh Singh Rathore Date: Tue, 19 Dec 2023 20:08:31 +0530 Subject: [PATCH] code: implemented react-i18next in forms --- .eslintrc.cjs | 9 +- package-lock.json | 839 ++++++++++++++++++++++---------- package.json | 19 +- src/i18n.js | 68 +++ src/main.jsx | 2 + src/stories/Components/Form.jsx | 211 ++++++-- 6 files changed, 832 insertions(+), 316 deletions(-) create mode 100644 src/i18n.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 4dcb439..bacc8a7 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -2,10 +2,11 @@ module.exports = { root: true, env: { browser: true, es2020: true }, extends: [ - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:react/jsx-runtime', - 'plugin:react-hooks/recommended', + "eslint:recommended", + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "plugin:react-hooks/recommended", + "plugin:storybook/recommended" ], ignorePatterns: ['dist', '.eslintrc.cjs'], parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, diff --git a/package-lock.json b/package-lock.json index 74df7e8..adf5ae6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,20 +13,22 @@ "@mui/icons-material": "^5.14.19", "@mui/material": "^5.14.20", "@mui/styled-engine-sc": "^6.0.0-alpha.7", + "i18next": "^23.7.11", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.49.2", + "react-i18next": "^13.5.0", "styled-components": "^6.1.1" }, "devDependencies": { - "@storybook/addon-essentials": "^7.6.4", - "@storybook/addon-interactions": "^7.6.4", - "@storybook/addon-links": "^7.6.4", + "@storybook/addon-essentials": "^7.6.5", + "@storybook/addon-interactions": "^7.6.5", + "@storybook/addon-links": "^7.6.5", "@storybook/addon-onboarding": "^1.0.10", - "@storybook/blocks": "^7.6.4", - "@storybook/react": "^7.6.4", - "@storybook/react-vite": "^7.6.4", - "@storybook/test": "^7.6.4", + "@storybook/blocks": "^7.6.5", + "@storybook/react": "^7.6.5", + "@storybook/react-vite": "^7.6.5", + "@storybook/test": "^7.6.5", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", "@vitejs/plugin-react-swc": "^3.5.0", @@ -36,9 +38,10 @@ "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.4", + "eslint-plugin-storybook": "^0.6.15", "postcss": "^8.4.32", "prop-types": "^15.8.1", - "storybook": "^7.6.4", + "storybook": "^7.6.5", "tailwindcss": "^3.3.6", "vite": "^5.0.0" } @@ -4373,12 +4376,12 @@ "dev": true }, "node_modules/@storybook/addon-actions": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.4.tgz", - "integrity": "sha512-91UD5KPDik74VKVioPMcbwwvDXN/non8p1wArYAHCHCmd/Pts5MJRiFueSdfomSpNjUtjtn6eSXtwpIL3XVOfQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.5.tgz", + "integrity": "sha512-lW/m9YcaNfBZk+TZLxyzHdd563mBWpsUIveOKYjcPdl/q0FblWWZrRsFHqwLK1ldZ4AZXs8J/47G8CBr6Ew2uQ==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.4", + "@storybook/core-events": "7.6.5", "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", "dequal": "^2.0.2", @@ -4391,9 +4394,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.4.tgz", - "integrity": "sha512-gNy3kIkHSr+Lg/jVDHwbZjIe1po5SDGZNVe39vrJwnqGz8T1clWes9WHCL6zk/uaCDA3yUna2Nt/KlOFAWDSoQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.5.tgz", + "integrity": "sha512-wZZOL19vg4TTRtOTl71XKqPe5hQx3XUh9Fle0wOi91FiFrBdqusrppnyS89wPS8RQG5lXEOFEUvYcMmdCcdZfw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4406,12 +4409,12 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.4.tgz", - "integrity": "sha512-k4AtZfazmD/nL3JAtLGAB7raPhkhUo0jWnaZWrahd9h1Fm13mBU/RW+JzTRhCw3Mp2HPERD7NI5Qcd2fUP6WDA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.5.tgz", + "integrity": "sha512-EdSZ2pYf74mOXZGGJ22lrDvdvL0YKc95iWv9FFEhUFOloMy/0OZPB2ybYmd2KVCy3SeIE4Zfeiw8pDXdCUniOQ==", "dev": true, "dependencies": { - "@storybook/blocks": "7.6.4", + "@storybook/blocks": "7.6.5", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -4421,26 +4424,26 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.4.tgz", - "integrity": "sha512-PbFMbvC9sK3sGdMhwmagXs9TqopTp9FySji+L8O7W9SHRC6wSmdwoWWPWybkOYxr/z/wXi7EM0azSAX7yQxLbw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.5.tgz", + "integrity": "sha512-D9tZyD41IujCHiPYdfS2bKtZRJPNwO4EydzyqODXppomluhFbY3uTEaf0H1UFnJLQxWNXZ7rr3aS0V3O6yu8pA==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.6.4", - "@storybook/client-logger": "7.6.4", - "@storybook/components": "7.6.4", - "@storybook/csf-plugin": "7.6.4", - "@storybook/csf-tools": "7.6.4", + "@storybook/blocks": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/components": "7.6.5", + "@storybook/csf-plugin": "7.6.5", + "@storybook/csf-tools": "7.6.5", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.6.4", - "@storybook/postinstall": "7.6.4", - "@storybook/preview-api": "7.6.4", - "@storybook/react-dom-shim": "7.6.4", - "@storybook/theming": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/node-logger": "7.6.5", + "@storybook/postinstall": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/react-dom-shim": "7.6.5", + "@storybook/theming": "7.6.5", + "@storybook/types": "7.6.5", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -4456,24 +4459,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.4.tgz", - "integrity": "sha512-J+zPmP4pbuuFxQ3pjLRYQRnxEtp7jF3xRXGFO8brVnEqtqoxwJ6j3euUrRLe0rpGAU3AD7dYfaaFjd3xkENgTw==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "7.6.4", - "@storybook/addon-backgrounds": "7.6.4", - "@storybook/addon-controls": "7.6.4", - "@storybook/addon-docs": "7.6.4", - "@storybook/addon-highlight": "7.6.4", - "@storybook/addon-measure": "7.6.4", - "@storybook/addon-outline": "7.6.4", - "@storybook/addon-toolbars": "7.6.4", - "@storybook/addon-viewport": "7.6.4", - "@storybook/core-common": "7.6.4", - "@storybook/manager-api": "7.6.4", - "@storybook/node-logger": "7.6.4", - "@storybook/preview-api": "7.6.4", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.5.tgz", + "integrity": "sha512-VCLj1JAEpGoqF5iFJOo1CZFFck/tg4m/98DLdQuNuXvxT6jqaF0NI9UUQuJLIGteDCR7NKRbTFc1hV3/Ev+Ziw==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "7.6.5", + "@storybook/addon-backgrounds": "7.6.5", + "@storybook/addon-controls": "7.6.5", + "@storybook/addon-docs": "7.6.5", + "@storybook/addon-highlight": "7.6.5", + "@storybook/addon-measure": "7.6.5", + "@storybook/addon-outline": "7.6.5", + "@storybook/addon-toolbars": "7.6.5", + "@storybook/addon-viewport": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/manager-api": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/preview-api": "7.6.5", "ts-dedent": "^2.0.0" }, "funding": { @@ -4486,9 +4489,9 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.4.tgz", - "integrity": "sha512-0kvjDzquoPwWWU61QYmEtcSGWXufnV7Z/bfBTYh132uxvV/X9YzDFcXXrxGL7sBJkK32gNUUBDuiTOxs5NxyOQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.5.tgz", + "integrity": "sha512-CxzmIb30F9nLPQwT0lCPYhOAwGlGF4IkgkO8hYA7VfGCGUkJZEyyN/YkP/ZCUSdCIRChDBouR3KiFFd4mDFKzg==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -4499,13 +4502,13 @@ } }, "node_modules/@storybook/addon-interactions": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-7.6.4.tgz", - "integrity": "sha512-LjK9uhkgnbGyDwwa7pQhLptDEHeTIFmy+KurfJs9T08DpvRFfuuzyW4mj/hA63R1W5yjFSAhRiZj26+D7kBIyw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-7.6.5.tgz", + "integrity": "sha512-8Hzt9u1DQzFvtGER/hCGIvGpCoVwzVoqpM98f2KAIVx/NMFmRW7UyKihXzw1j2t4q2ZaF2jZDYWCBqlP+iwILA==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.4", + "@storybook/types": "7.6.5", "jest-mock": "^27.0.6", "polished": "^4.2.2", "ts-dedent": "^2.2.0" @@ -4516,9 +4519,9 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.4.tgz", - "integrity": "sha512-TEhxYdMhJO28gD84ej1FCwLv9oLuCPt77bRXip9ndaNPRTdHYdWv6IP94dhbuDi8eHux7Z4A/mllciFuDFrnCw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.5.tgz", + "integrity": "sha512-Lx4Ng+iXt0YpIrKGr+nOZlpN9ypOoEDoP/7bZ6m7GXuVAkDm3JrRCBp7e2ZKSKcTxPdjPuO9HVKkIjtqjINlpw==", "dev": true, "dependencies": { "@storybook/csf": "^0.1.2", @@ -4539,9 +4542,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.4.tgz", - "integrity": "sha512-73wsJ8PALsgWniR3MA/cmxcFuU6cRruWdIyYzOMgM8ife2Jm3xSkV7cTTXAqXt2H9Uuki4PGnuMHWWFLpPeyVA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.5.tgz", + "integrity": "sha512-tlUudVQSrA+bwI4dhO8J7nYHtYdylcBZ86ybnqMmdTthsnyc7jnaFVQwbb6bbQJpPxvEvoNds5bVGUFocuvymQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4567,9 +4570,9 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.4.tgz", - "integrity": "sha512-CFxGASRse/qeFocetDKFNeWZ3Aa2wapVtRciDNa4Zx7k1wCnTjEsPIm54waOuCaNVcrvO+nJUAZG5WyiorQvcg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.5.tgz", + "integrity": "sha512-P7X4+Z9L/l/RZW9UvvM+iuK2SUHD22KPc+dbYOifRXDovUqhfmcKVh1CUqTDMyZrg2ZAbropehMz1eI9BlQfxg==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4581,9 +4584,9 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.4.tgz", - "integrity": "sha512-ENMQJgU4sRCLLDVXYfa+P3cQVV9PC0ZxwVAKeM3NPYPNH/ODoryGNtq+Q68LwHlM4ObCE2oc9MzaQqPxloFcCw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.5.tgz", + "integrity": "sha512-/zqWbVNE/SHc8I5Prnd2Q8U57RGEIYvHfeXjfkuLcE2Quc4Iss4x/9eU7SKu4jm+IOO2s0wlN6HcqI3XEf2XxA==", "dev": true, "funding": { "type": "opencollective", @@ -4591,9 +4594,9 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.4.tgz", - "integrity": "sha512-SoTcHIoqybhYD28v7QExF1EZnl7FfxuP74VDhtze5LyMd2CbqmVnUfwewLCz/3IvCNce0GqdNyg1m6QJ7Eq1uw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.5.tgz", + "integrity": "sha512-9ghKTaduIUvQ6oShmWLuwMeTjtMR4RgKeKHrTJ7THMqvE/ydDPCYeL7ugF65ocXZSEz/QmxdK7uL686ZMKsqNA==", "dev": true, "dependencies": { "memoizerific": "^1.11.3" @@ -4604,22 +4607,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.4.tgz", - "integrity": "sha512-iXinXXhTUBtReREP1Jifpu35DnGg7FidehjvCM8sM4E4aymfb8czdg9DdvG46T2UFUPUct36nnjIdMLWOya8Bw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.5.tgz", + "integrity": "sha512-/NjuYkPks5w9lKn47KLgVC5cBkwfc+ERAp0CY0Xe//BQJkP+bcI8lE8d9Qc9IXFbOTvYEULeQrFgCkesk5BmLg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.4", - "@storybook/client-logger": "7.6.4", - "@storybook/components": "7.6.4", - "@storybook/core-events": "7.6.4", + "@storybook/channels": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/components": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/csf": "^0.1.2", - "@storybook/docs-tools": "7.6.4", + "@storybook/docs-tools": "7.6.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.4", - "@storybook/preview-api": "7.6.4", - "@storybook/theming": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/manager-api": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/theming": "7.6.5", + "@storybook/types": "7.6.5", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -4643,15 +4646,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.4.tgz", - "integrity": "sha512-k5+D3fXw7LdMOWd5tF7cIq8L3irrdW6/vmcEHLaJj1EXZ+DvsNCH9xSsLS+6zfrUcxug4oSfRqvF87w6Oz3DtA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.5.tgz", + "integrity": "sha512-FQyI+tfzMam2XKXq7k921YVafIJs9Vqvos5qx8vyRnRffo55UU8tgunwjGn0PswtbMm6sThVqE0C0ZzVr7RG8A==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.6.4", - "@storybook/manager": "7.6.4", - "@storybook/node-logger": "7.6.4", + "@storybook/core-common": "7.6.5", + "@storybook/manager": "7.6.5", + "@storybook/node-logger": "7.6.5", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -5060,19 +5063,19 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.4.tgz", - "integrity": "sha512-eqb3mLUfuXd4a7+46cWevQ9qH81FvHy1lrAbZGwp4bQ/Tj0YF8Ej7lKBbg7zoIwiu2zDci+BbMiaDOY1kPtILw==", - "dev": true, - "dependencies": { - "@storybook/channels": "7.6.4", - "@storybook/client-logger": "7.6.4", - "@storybook/core-common": "7.6.4", - "@storybook/csf-plugin": "7.6.4", - "@storybook/node-logger": "7.6.4", - "@storybook/preview": "7.6.4", - "@storybook/preview-api": "7.6.4", - "@storybook/types": "7.6.4", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.5.tgz", + "integrity": "sha512-VbAYTGr92lgCWTwO2Z7NgSW3f5/K4Vr0Qxa2IlTgMCymWdDbWdIQiREcmCP0vjAGM2ftq1+vxngohVgx/r7pUw==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/csf-plugin": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/preview": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/types": "7.6.5", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -5121,13 +5124,13 @@ } }, "node_modules/@storybook/channels": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.4.tgz", - "integrity": "sha512-Z4PY09/Czl70ap4ObmZ4bgin+EQhPaA3HdrEDNwpnH7A9ttfEO5u5KThytIjMq6kApCCihmEPDaYltoVrfYJJA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.5.tgz", + "integrity": "sha512-FIlNkyfQy9uHoJfAFL2/wO3ASGJELFvBzURBE2rcEF/TS7GcUiqWnBfiDxAbwSEjSOm2F0eEq3UXhaZEjpJHDw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.4", - "@storybook/core-events": "7.6.4", + "@storybook/client-logger": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5139,23 +5142,23 @@ } }, "node_modules/@storybook/cli": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.4.tgz", - "integrity": "sha512-GqvaFdkkBMJOdnrVe82XY0V3b+qFMhRNyVoTv2nqB87iMUXZHqh4Pu4LqwaJBsBpuNregvCvVOPe9LGgoOzy4A==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.5.tgz", + "integrity": "sha512-w+Y8dx5oCLQVESOVmpsQuFksr/ewARKrnSKl9kwnVMN4sMgjOgoZ3zmV66J7SKexvwyuwlOjf840pmEglGdPPg==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.6.4", - "@storybook/core-common": "7.6.4", - "@storybook/core-events": "7.6.4", - "@storybook/core-server": "7.6.4", - "@storybook/csf-tools": "7.6.4", - "@storybook/node-logger": "7.6.4", - "@storybook/telemetry": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/codemod": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/core-events": "7.6.5", + "@storybook/core-server": "7.6.5", + "@storybook/csf-tools": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/telemetry": "7.6.5", + "@storybook/types": "7.6.5", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -5229,9 +5232,9 @@ "dev": true }, "node_modules/@storybook/client-logger": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.4.tgz", - "integrity": "sha512-vJwMShC98tcoFruRVQ4FphmFqvAZX1FqZqjFyk6IxtFumPKTVSnXJjlU1SnUIkSK2x97rgdUMqkdI+wAv/tugQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.5.tgz", + "integrity": "sha512-S5aROWgssqg7tcs9lgW5wmCAz4SxMAtioiyVj5oFecmPCbQtFVIAREYzeoxE4GfJL+plrfRkum4BzziANn8EhQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5242,18 +5245,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.4.tgz", - "integrity": "sha512-q4rZVOfozxzbDRH/LzuFDoIGBdXs+orAm18fi6iAx8PeMHe8J/MOXKccNV1zdkm/h7mTQowuRo45KwJHw8vX+g==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.5.tgz", + "integrity": "sha512-K5C9ltBClZ0aSyujGt3RJFtRicrUZy8nzhHrcADUj27rrQD26jH/p+Y05jWKj9JcI8SyMg978GN5X/1aw2Y31A==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.4", - "@storybook/node-logger": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/csf-tools": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/types": "7.6.5", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -5268,18 +5271,18 @@ } }, "node_modules/@storybook/components": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.4.tgz", - "integrity": "sha512-K5RvEObJAnX+SbGJbkM1qrZEk+VR2cUhRCSrFnlfMwsn8/60T3qoH7U8bCXf8krDgbquhMwqev5WzDB+T1VV8g==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.5.tgz", + "integrity": "sha512-w4ZucbBBZ+NKMWlJKVj2I/bMBBq7gzDp9lzc4+8QaQ3vUPXKqc1ilIPYo/7UR5oxwDVMZocmMSgl9L8lvf7+Mw==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.6.4", + "@storybook/client-logger": "7.6.5", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/theming": "7.6.5", + "@storybook/types": "7.6.5", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -5294,13 +5297,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.4.tgz", - "integrity": "sha512-0msqdGd+VYD1dRgAJ2StTu4d543Wveb7LVVujX3PwD/QCxmCaVUHuAoZrekM/H7jZLw546ZIbLZo0xWrADAUMw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.5.tgz", + "integrity": "sha512-6FtyJcz8MSl+JYwNJZ53FM6rkT27pFHWcJPdtw/9229Ec8as9RpkNeZ/NBZjRTeDkn9Ki0VOiVAefNie9tZ/8Q==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.4", - "@storybook/preview-api": "7.6.4" + "@storybook/client-logger": "7.6.5", + "@storybook/preview-api": "7.6.5" }, "funding": { "type": "opencollective", @@ -5308,14 +5311,14 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.4.tgz", - "integrity": "sha512-qes4+mXqINu0kCgSMFjk++GZokmYjb71esId0zyJsk0pcIPkAiEjnhbSEQkMhbUfcvO1lztoaQTBW2P7Rd1tag==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.5.tgz", + "integrity": "sha512-z4EgzZSIVbID6Ib0jhh3jimKeaDWU8OOhoZYfn3galFmgQWowWOv1oMgipWiXfRLWw9DaLFQiCHIdLANH+VO2g==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.4", - "@storybook/node-logger": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/core-events": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/types": "7.6.5", "@types/find-cache-dir": "^3.2.1", "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.4", @@ -5796,9 +5799,9 @@ } }, "node_modules/@storybook/core-events": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.4.tgz", - "integrity": "sha512-i3xzcJ19ILSy4oJL5Dz9y0IlyApynn5RsGhAMIsW+mcfri+hGfeakq1stNCo0o7jW4Y3A7oluFTtIoK8DOxQdQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.5.tgz", + "integrity": "sha512-zk2q/qicYXAzHA4oV3GDbIql+Kd4TOHUgDE8e4jPCOPp856z2ScqEKUAbiJizs6eEJOH4nW9Db1kuzgrBVEykQ==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5809,26 +5812,26 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.4.tgz", - "integrity": "sha512-mXxZMpCwOhjEPPRjqrTHdiCpFdkc47f46vlgTj02SX+9xKHxslmZ2D3JG/8O4Ab9tG+bBl6lBm3RIrIzaiCu9Q==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.5.tgz", + "integrity": "sha512-BfKzK/ObTjUcPvE5/r1pogCifM/4nLRhOUYJl7XekwHkOQwn19e6H3/ku1W3jDoYXBu642Dc9X7l/ERjKTqxFg==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.6.4", - "@storybook/channels": "7.6.4", - "@storybook/core-common": "7.6.4", - "@storybook/core-events": "7.6.4", + "@storybook/builder-manager": "7.6.5", + "@storybook/channels": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.4", + "@storybook/csf-tools": "7.6.5", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.6.4", - "@storybook/node-logger": "7.6.4", - "@storybook/preview-api": "7.6.4", - "@storybook/telemetry": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/manager": "7.6.5", + "@storybook/node-logger": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/telemetry": "7.6.5", + "@storybook/types": "7.6.5", "@types/detect-port": "^1.3.0", "@types/node": "^18.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -5913,12 +5916,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.4.tgz", - "integrity": "sha512-7g9p8s2ITX+Z9iThK5CehPhJOcusVN7JcUEEW+gVF5PlYT+uk/x+66gmQno+scQuNkV9+8UJD6RLFjP+zg2uCA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.5.tgz", + "integrity": "sha512-iQ8Y/Qq1IUhHRddjDVicWJA2sM7OZA1FR97OvWUT2240WjCuQSCfy32JD8TQlYjqXgEolJeLPv3zW4qH5om4LQ==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.6.4", + "@storybook/csf-tools": "7.6.5", "unplugin": "^1.3.1" }, "funding": { @@ -5927,9 +5930,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.4.tgz", - "integrity": "sha512-6sLayuhgReIK3/QauNj5BW4o4ZfEMJmKf+EWANPEM/xEOXXqrog6Un8sjtBuJS9N1DwyhHY6xfkEiPAwdttwqw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.5.tgz", + "integrity": "sha512-1iaCh7nt+WE7Q5UwRhLLc5flMNoAV/vBr0tvDSCKiHaO+D3dZzlZOe/U+S6wegdyN2QNcvT2xs179CcrX6Qp6w==", "dev": true, "dependencies": { "@babel/generator": "^7.23.0", @@ -5937,7 +5940,7 @@ "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/types": "7.6.4", + "@storybook/types": "7.6.5", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -5966,14 +5969,14 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.4.tgz", - "integrity": "sha512-2eGam43aD7O3cocA72Z63kRi7t/ziMSpst0qB218QwBWAeZjT4EYDh8V6j/Xhv6zVQL3msW7AglrQP5kCKPvPA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.5.tgz", + "integrity": "sha512-UyHkHu5Af6jMpYsR4lZ69D32GQGeA0pLAn7jaBbQndgAjBdK1ykZcifiUC7Wz1hG7+YpuYspEGuDEddOh+X8FQ==", "dev": true, "dependencies": { - "@storybook/core-common": "7.6.4", - "@storybook/preview-api": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/core-common": "7.6.5", + "@storybook/preview-api": "7.6.5", + "@storybook/types": "7.6.5", "@types/doctrine": "^0.0.3", "assert": "^2.1.0", "doctrine": "^3.0.0", @@ -5991,16 +5994,16 @@ "dev": true }, "node_modules/@storybook/instrumenter": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-7.6.4.tgz", - "integrity": "sha512-sfEXZbCy7orP2A7dYmSrCYGPnbwJcFAa55N+YBQEYhoyJkohGC//nd5LbuPjLj23uixgB9iOw4E0fGp5w8cf+w==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-7.6.5.tgz", + "integrity": "sha512-PvOqF4RIgh2intKPb298lIuhP2j6E3yBmvPWO/eTeuFCYjJX7Cz+89nPHfyGT0KVJExUlRN9QO6Aw7j/lNYeBg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.4", - "@storybook/client-logger": "7.6.4", - "@storybook/core-events": "7.6.4", + "@storybook/channels": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.6.4", + "@storybook/preview-api": "7.6.5", "@vitest/utils": "^0.34.6", "util": "^0.12.4" }, @@ -6010,9 +6013,9 @@ } }, "node_modules/@storybook/manager": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.4.tgz", - "integrity": "sha512-Ug2ejfKgKre8h/RJbkumukwAA44TbvTPEjDcJmyFdAI+kHYhOYdKPEC2UNmVYz8/4HjwMTJQ3M7t/esK8HHY4A==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.5.tgz", + "integrity": "sha512-y1KLH0O1PGPyMxGMvOhppzFSO7r4ibjTve5iqsI0JZwxUjNuBKRLYbrhXdAyC2iacvxYNrHgevae1k9XdD+FQw==", "dev": true, "funding": { "type": "opencollective", @@ -6020,19 +6023,19 @@ } }, "node_modules/@storybook/manager-api": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.4.tgz", - "integrity": "sha512-RFb/iaBJfXygSgXkINPRq8dXu7AxBicTGX7MxqKXbz5FU7ANwV7abH6ONBYURkSDOH9//TQhRlVkF5u8zWg3bw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.5.tgz", + "integrity": "sha512-tE3OShOcs6A3XtI3NJd6hYQOZLaP++Fn0dCtowBwYh/vS1EN/AyroVmL97tsxn1DZTyoRt0GidwbB6dvLMBOwA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.4", - "@storybook/client-logger": "7.6.4", - "@storybook/core-events": "7.6.4", + "@storybook/channels": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/router": "7.6.4", - "@storybook/theming": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/router": "7.6.5", + "@storybook/theming": "7.6.5", + "@storybook/types": "7.6.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6086,9 +6089,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.4.tgz", - "integrity": "sha512-GDkEnnDj4Op+PExs8ZY/P6ox3wg453CdEIaR8PR9TxF/H/T2fBL6puzma3hN2CMam6yzfAL8U+VeIIDLQ5BZdQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.5.tgz", + "integrity": "sha512-xKw6IH1wLkIssekdBv3bd13xYKUF1t8EwqDR8BYcN8AVjZlqJMTifssqG4bYV+G/B7J3tz4ugJ5nmtWg6RQ0Qw==", "dev": true, "funding": { "type": "opencollective", @@ -6096,9 +6099,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.4.tgz", - "integrity": "sha512-7uoB82hSzlFSdDMS3hKQD+AaeSvPit/fAMvXCBxn0/D0UGJUZcq4M9JcKBwEHkZJcbuDROgOTJ6TUeXi/FWO0w==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.5.tgz", + "integrity": "sha512-12WxfpqGKsk7GQ3KWiZSbamsYK8vtRmhOTkavZ9IQkcJ/zuVfmqK80/Mds+njJMudUPzuREuSFGWACczo17EDA==", "dev": true, "funding": { "type": "opencollective", @@ -6106,9 +6109,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.4.tgz", - "integrity": "sha512-p9xIvNkgXgTpSRphOMV9KpIiNdkymH61jBg3B0XyoF6IfM1S2/mQGvC89lCVz1dMGk2SrH4g87/WcOapkU5ArA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.5.tgz", + "integrity": "sha512-zmLa7C7yFGTYhgGZXoecdww9rx0Z5HpNi/GDBRWoNSK+FEdE8Jj2jF5NJ2ncldtYIyegz9ku29JFMKbhMj9K5Q==", "dev": true, "funding": { "type": "opencollective", @@ -6116,17 +6119,17 @@ } }, "node_modules/@storybook/preview-api": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.4.tgz", - "integrity": "sha512-KhisNdQX5NdfAln+spLU4B82d804GJQp/CnI5M1mm/taTnjvMgs/wTH9AmR89OPoq+tFZVW0vhy2zgPS3ar71A==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.5.tgz", + "integrity": "sha512-9XzuDXXgNuA6dDZ3DXsUwEG6ElxeTbzLuYuzcjtS1FusSICZ2iYmxfS0GfSud9MjPPYOJYoSOvMdIHjorjgByA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.4", - "@storybook/client-logger": "7.6.4", - "@storybook/core-events": "7.6.4", + "@storybook/channels": "7.6.5", + "@storybook/client-logger": "7.6.5", + "@storybook/core-events": "7.6.5", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.4", + "@storybook/types": "7.6.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6142,18 +6145,18 @@ } }, "node_modules/@storybook/react": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-7.6.4.tgz", - "integrity": "sha512-XYRP+eylH3JqkCuziwtQGY5vOCeDreOibRYJmj5na6k4QbURjGVB44WCIW04gWVlmBXM9SqLAmserUi3HP890Q==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-7.6.5.tgz", + "integrity": "sha512-z0l5T+gL//VekMXnHi+lW5qr7OQ8X7WoeIRMk38e62ppSpGUZRfoxRmmhU/9YcIFAlCgMaoLSYmhOceKGRZuVw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.4", - "@storybook/core-client": "7.6.4", - "@storybook/docs-tools": "7.6.4", + "@storybook/client-logger": "7.6.5", + "@storybook/core-client": "7.6.5", + "@storybook/docs-tools": "7.6.5", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.6.4", - "@storybook/react-dom-shim": "7.6.4", - "@storybook/types": "7.6.4", + "@storybook/preview-api": "7.6.5", + "@storybook/react-dom-shim": "7.6.5", + "@storybook/types": "7.6.5", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", "@types/node": "^18.0.0", @@ -6188,9 +6191,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.4.tgz", - "integrity": "sha512-wGJfomlDEBnowNmhmumWDu/AcUInxSoPqUUJPgk2f5oL0EW17fR9fDP/juG3XOEdieMDM0jDX48GML7lyvL2fg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.5.tgz", + "integrity": "sha512-Qp3N3zENdvx20ikHmz5yI03z+mAWF8bUAwUofqXarVtZUkBNtvfTfUwgAezOAF0eClClH+ktIziIKd976tLSPw==", "dev": true, "funding": { "type": "opencollective", @@ -6202,15 +6205,15 @@ } }, "node_modules/@storybook/react-vite": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-7.6.4.tgz", - "integrity": "sha512-1NYzCJRO6k/ZyoMzpu1FQiaUaiLNjAvTAB1x3HE7oY/tEIT8kGpzXGYH++LJVWvyP/5dSWlUnRSy2rJvySraiw==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-7.6.5.tgz", + "integrity": "sha512-fIoSBbou3rQdOo6qX/nD5givb3qIOSwXeZWjAqRB6560cqmeSQFlRGtKUJ0nzQYADwJ0/iNHz3nOvJOOSnPepA==", "dev": true, "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.0", "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "7.6.4", - "@storybook/react": "7.6.4", + "@storybook/builder-vite": "7.6.5", + "@storybook/react": "7.6.5", "@vitejs/plugin-react": "^3.0.1", "magic-string": "^0.30.0", "react-docgen": "^7.0.0" @@ -6293,12 +6296,12 @@ } }, "node_modules/@storybook/router": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.4.tgz", - "integrity": "sha512-5MQ7Z4D7XNPN2yhFgjey7hXOYd6s8CggUqeAwhzGTex90SMCkKHSz1hfkcXn1ZqBPaall2b53uK553OvPLp9KQ==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.5.tgz", + "integrity": "sha512-QiTC86gRuoepzzmS6HNJZTwfz/n27NcqtaVEIxJi1Yvsx2/kLa9NkRhylNkfTuZ1gEry9stAlKWanMsB2aKyjQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.4", + "@storybook/client-logger": "7.6.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6308,14 +6311,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.4.tgz", - "integrity": "sha512-Q4QpvcgloHUEqC9PGo7tgqkUH91/PjX+74/0Hi9orLo8QmLMgdYS5fweFwgSKoTwDGNg2PaHp/jqvhhw7UmnJA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.5.tgz", + "integrity": "sha512-FiLRh9k9LoGphqgBqPYySWdGqplihiZyDwqdo+Qs19RcQ/eiKg0W7fdA09nStcdcsHmDl/1cMfRhz9KUiMtwOw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.4", - "@storybook/core-common": "7.6.4", - "@storybook/csf-tools": "7.6.4", + "@storybook/client-logger": "7.6.5", + "@storybook/core-common": "7.6.5", + "@storybook/csf-tools": "7.6.5", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -6328,15 +6331,15 @@ } }, "node_modules/@storybook/test": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-7.6.4.tgz", - "integrity": "sha512-Ns9IpGsUcu1eQ6Dp6oprjRyis5NPgoHYQ4owR4hnxArtgW0djeKj2yb1fgdEIy0cVcU0F368zfL+ofX0ijy1Rg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-7.6.5.tgz", + "integrity": "sha512-ovW01Pq7Ho8EFow9go9kEpzUECvFftVNd3ZMDZZHqJKi4mXdg2yg28jzHKkRYmdpPuplIzB00TjpVHEB5Hjsng==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.4", - "@storybook/core-events": "7.6.4", - "@storybook/instrumenter": "7.6.4", - "@storybook/preview-api": "7.6.4", + "@storybook/client-logger": "7.6.5", + "@storybook/core-events": "7.6.5", + "@storybook/instrumenter": "7.6.5", + "@storybook/preview-api": "7.6.5", "@testing-library/dom": "^9.3.1", "@testing-library/jest-dom": "^6.1.3", "@testing-library/user-event": "14.3.0", @@ -6352,13 +6355,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.4.tgz", - "integrity": "sha512-Z/dcC5EpkIXelYCkt9ojnX6D7qGOng8YHxV/OWlVE9TrEGYVGPOEfwQryR0RhmGpDha1TYESLYrsDb4A8nJ1EA==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.5.tgz", + "integrity": "sha512-RpcWT0YEgiobO41McVPDfQQHHFnjyr1sJnNTPJIvOUgSfURdgSj17mQVxtD5xcXcPWUdle5UhIOrCixHbL/NNw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.6.4", + "@storybook/client-logger": "7.6.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6372,12 +6375,12 @@ } }, "node_modules/@storybook/types": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.4.tgz", - "integrity": "sha512-qyiiXPCvol5uVgfubcIMzJBA0awAyFPU+TyUP1mkPYyiTHnsHYel/mKlSdPjc8a97N3SlJXHOCx41Hde4IyJgg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.5.tgz", + "integrity": "sha512-Q757v+fYZZSaEpks/zDL5YgXRozxkgKakXFc+BoQHK5q5sVhJ+0jvpLJiAQAniIIaMIkqY/G24Kd6Uo6UdKBCg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.4", + "@storybook/channels": "7.6.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6862,6 +6865,12 @@ "@types/istanbul-lib-report": "*" } }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, "node_modules/@types/lodash": { "version": "4.14.202", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", @@ -7042,6 +7051,194 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -9335,6 +9532,33 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-storybook": { + "version": "0.6.15", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.15.tgz", + "integrity": "sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==", + "dev": true, + "dependencies": { + "@storybook/csf": "^0.0.1", + "@typescript-eslint/utils": "^5.45.0", + "requireindex": "^1.1.0", + "ts-dedent": "^2.2.0" + }, + "engines": { + "node": "12.x || 14.x || >= 16" + }, + "peerDependencies": { + "eslint": ">=6" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", + "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -9894,9 +10118,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.223.3", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.223.3.tgz", - "integrity": "sha512-9KxxDKSB22ovMpSULbOL/QAQGPN6M0YMS3PubQvB0jVc4W7QP6VhasIVic7MzKcJSh0BAVs4J6SZjoH0lDDNlg==", + "version": "0.224.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.224.0.tgz", + "integrity": "sha512-S1P78o0VLB1FZvkoGSIpaRiiTUQ3xDhm9I4Z1qc3lglmkjehfR2sjM0vhwKS7UC1G12VT4Leb/GGV/KlactqjA==", "dev": true, "engines": { "node": ">=0.4.0" @@ -10476,6 +10700,14 @@ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, + "node_modules/html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "dependencies": { + "void-elements": "3.1.0" + } + }, "node_modules/html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", @@ -10526,6 +10758,28 @@ "node": ">=10.17.0" } }, + "node_modules/i18next": { + "version": "23.7.11", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.7.11.tgz", + "integrity": "sha512-A/vOkw8vY99YHU9A1Td3I1dcTiYaPnwBWzrpVzfXUXSYgogK3cmBcmop/0cnXPc6QpUWIyqaugKNxRUEZVk9Nw==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -13220,6 +13474,27 @@ "react": "^16.8.0 || ^17 || ^18" } }, + "node_modules/react-i18next": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.5.0.tgz", + "integrity": "sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==", + "dependencies": { + "@babel/runtime": "^7.22.5", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 23.2.3", + "react": ">= 16.8.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -13645,6 +13920,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, "node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -14151,12 +14435,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.4.tgz", - "integrity": "sha512-nQhs9XkrroxjqMoBnnToyc6M8ndbmpkOb1qmULO4chtfMy4k0p9Un3K4TJvDaP8c3wPUFGd4ZaJ1hZNVmIl56Q==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.5.tgz", + "integrity": "sha512-uHPrL+g/0v6iIVtDA8J0uWd3jDZcdr51lCR/vPXTkrCY1uVaFjswzl8EMy5PR05I7jMpKUzkJWZtFbgbh9e1Bw==", "dev": true, "dependencies": { - "@storybook/cli": "7.6.4" + "@storybook/cli": "7.6.5" }, "bin": { "sb": "index.js", @@ -14819,6 +15103,27 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tween-functions": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz", @@ -15330,6 +15635,14 @@ } } }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -15606,9 +15919,9 @@ } }, "node_modules/ws": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.0.tgz", - "integrity": "sha512-H/Z3H55mrcrgjFwI+5jKavgXvwQLtfPCUEp6pi35VhoB0pfcHnSoyuTzkBEZpzq49g1193CUEwIvmsjcotenYw==", + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", + "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", "dev": true, "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index 656b6eb..b8de57c 100644 --- a/package.json +++ b/package.json @@ -18,20 +18,22 @@ "@mui/icons-material": "^5.14.19", "@mui/material": "^5.14.20", "@mui/styled-engine-sc": "^6.0.0-alpha.7", + "i18next": "^23.7.11", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.49.2", + "react-i18next": "^13.5.0", "styled-components": "^6.1.1" }, "devDependencies": { - "@storybook/addon-essentials": "^7.6.4", - "@storybook/addon-interactions": "^7.6.4", - "@storybook/addon-links": "^7.6.4", + "@storybook/addon-essentials": "^7.6.5", + "@storybook/addon-interactions": "^7.6.5", + "@storybook/addon-links": "^7.6.5", "@storybook/addon-onboarding": "^1.0.10", - "@storybook/blocks": "^7.6.4", - "@storybook/react": "^7.6.4", - "@storybook/react-vite": "^7.6.4", - "@storybook/test": "^7.6.4", + "@storybook/blocks": "^7.6.5", + "@storybook/react": "^7.6.5", + "@storybook/react-vite": "^7.6.5", + "@storybook/test": "^7.6.5", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", "@vitejs/plugin-react-swc": "^3.5.0", @@ -41,9 +43,10 @@ "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.4", + "eslint-plugin-storybook": "^0.6.15", "postcss": "^8.4.32", "prop-types": "^15.8.1", - "storybook": "^7.6.4", + "storybook": "^7.6.5", "tailwindcss": "^3.3.6", "vite": "^5.0.0" }, diff --git a/src/i18n.js b/src/i18n.js new file mode 100644 index 0000000..6795e0a --- /dev/null +++ b/src/i18n.js @@ -0,0 +1,68 @@ +import i18n from 'i18next'; +import { initReactI18next } from 'react-i18next'; + +i18n + .use(initReactI18next) + .init({ + resources: { + en: { + translation: { + "Enter your full legal name": "Enter your full legal name", + "Enter your primary email address": "Enter your primary email address", + "Enter your phone number": "Enter your phone number", + "Enter your date of birth": "Enter your date of birth", + "Enter your current city and country of residence": "Enter your current city and country of residence", + "Translate to Hindi": "Translate to Hindi", + "Translate to Telugu": "Translate to Telugu", + "Submit": "Submit", + "Name helper text": "Please provide your complete name as it appears on your identification document", + "Email helper text": "We will use this email address for all communications regarding your moderator role.", + "Phone helper text": "Enter a 10-digit phone number.", + "Date of Birth helper text": "Your date of birth helps us verify your eligibility for moderating our platform.", + "Location helper text": "Let us know where you are located to understand the diversity of our moderator team." + }, + }, + hi: { + translation: { + "Enter your full legal name": "पूरा नाम", + "Enter your primary email address": "ईमेल पता", + "Enter your phone number": "संपर्क नंबर", + "Enter your date of birth": "जन्म तिथि", + "Enter your current city and country of residence": "स्थान (शहर, देश)", + "Translate to Hindi": "अंग्रेज़ी पर स्विच करें", + "Translate to Telugu": "तेलुगु परिवर्तित करें", + "Submit": "जमा करें", + "Name helper text": "कृपया अपना पूरा नाम प्रदान करें जैसा कि यह आपके पहचान दस्तावेज़ पर दिखाई देता है।", + "Email helper text": " हम आपकी मॉडरेटर भूमिका के संबंध में सभी संचार के लिए इस ईमेल पते का उपयोग करेंगे।", + "Phone helper text": "एक पहुंच योग्य संपर्क नंबर प्रदान करें जहां जरूरत पड़ने पर हम आप तक पहुंच सकें।", + "Date of Birth helper text": "आपकी जन्मतिथि हमें हमारे प्लेटफ़ॉर्म को मॉडरेट करने के लिए आपकी पात्रता सत्यापित करने में मदद करती है।", + "Location helper text": "हमारी मॉडरेटर टीम की विविधता को समझने के लिए हमें बताएं कि आप कहां स्थित हैं।" + }, + }, + te: { + translation: { + "Enter your full legal name": "పూర్తి పేరు", + "Enter your primary email address": "ఇమెయిల్ చిరునామా", + "Enter your phone number": " సంప్రదింపు సంఖ్య", + "Enter your date of birth": "పుట్టిన తేదీ", + "Enter your current city and country of residence": "స్థానం (నగరం, దేశం)", + "Translate to Hindi": "తర్జుమాకు మార్చండి", + "Translate to Telugu": "తెలుగుకు మార్చండి", + "Submit": "సమర్పించండి", + "Name helper text": "దయచేసి మీ గుర్తింపు పత్రంలో కనిపించే విధంగా మీ పూర్తి పేరును అందించండి.", + "Email helper text": "మీ మోడరేటర్ పాత్రకు సంబంధించిన అన్ని కమ్యూనికేషన్‌ల కోసం మేము ఈ ఇమెయిల్ చిరునామాను ఉపయోగిస్తాము.", + "Phone helper text": "అందుబాటులో ఉన్న సంప్రదింపు నంబర్‌ను అందించండి, అవసరమైతే మేము మిమ్మల్ని సంప్రదించవచ్చు.", + "Date of Birth helper text": "మీ పుట్టిన తేదీ మా ప్లాట్‌ఫారమ్‌ని నియంత్రించడానికి మీ అర్హతను ధృవీకరించడంలో మాకు సహాయపడుతుంది..", + "Location helper text": "మా మోడరేటర్ బృందం యొక్క వైవిధ్యాన్ని అర్థం చేసుకోవడానికి మీరు ఎక్కడ ఉన్నారో మాకు తెలియజేయండి" + }, + }, + }, + lng: 'en', + fallbackLng: 'en', + debug: true, + interpolation: { + escapeValue: false, + }, + }); + +export default i18n; diff --git a/src/main.jsx b/src/main.jsx index 54b39dd..067ae32 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -1,8 +1,10 @@ import React from 'react' import ReactDOM from 'react-dom/client' import App from './App.jsx' +import './i18n.js' import './index.css' + ReactDOM.createRoot(document.getElementById('root')).render( diff --git a/src/stories/Components/Form.jsx b/src/stories/Components/Form.jsx index f71dd63..93338c5 100644 --- a/src/stories/Components/Form.jsx +++ b/src/stories/Components/Form.jsx @@ -1,14 +1,84 @@ -import React from "react"; -import PropTypes from 'prop-types'; +import React, { useState, useEffect } from "react"; +import PropTypes from "prop-types"; import "tailwindcss/tailwind.css"; import { useForm } from "react-hook-form"; +import { useTranslation } from "react-i18next"; +import i18n from "../../i18n"; -export default function Form({ onSubmitData, nameMaxLength, emailPattern, phoneMaxLength, dobRequired, locationRequired, nameHelperText, emailHelperText, phoneHelperText }) { +export default function Form({ + onSubmitData, + nameMaxLength, + emailPattern, + phoneMaxLength, + dobRequired, + locationRequired, + nameHelperText, + emailHelperText, + phoneHelperText, + dobHelperText, + locationHelperText, +}) { const { register, handleSubmit, formState: { errors }, } = useForm(); + const { t, i18n: i18nInstance } = useTranslation(); + const [isTranslated, setIsTranslated] = useState(false); // State to track translation status + const [translatedNameHelperText, setTranslatedNameHelperText] = useState(""); + const [translatedEmailHelperText, setTranslatedEmailHelperText] = + useState(""); + const [translatedPhoneHelperText, setTranslatedPhoneHelperText] = + useState(""); + const [translatedDobHelperText, setTranslatedDobHelperText] = useState(""); + const [translatedLocationHelperText, setTranslatedLocationHelperText] = + useState(""); + + useEffect(() => { + setTranslatedNameHelperText(t(nameHelperText)); + setTranslatedEmailHelperText(t(emailHelperText)); + setTranslatedPhoneHelperText(t(phoneHelperText)); + setTranslatedDobHelperText(t(dobHelperText)); + setTranslatedLocationHelperText(t(locationHelperText)); + + // Explicitly set translated values based on the current language + if (i18nInstance.language === "hi") { + setTranslatedNameHelperText(t("Name helper text")); + setTranslatedEmailHelperText(t("Email helper text")); + setTranslatedPhoneHelperText(t("Phone helper text")); + setTranslatedDobHelperText(t("Date of Birth helper text")); + setTranslatedLocationHelperText(t("Location helper text")); + } else if (i18nInstance.language === "te") { + setTranslatedNameHelperText(t("Name helper text")); + setTranslatedEmailHelperText(t("Email helper text")); + setTranslatedPhoneHelperText(t("Phone helper text")); + setTranslatedDobHelperText(t("Date of Birth helper text")); + setTranslatedLocationHelperText(t("Location helper text")); + } + }, [ + i18nInstance.language, + nameHelperText, + emailHelperText, + phoneHelperText, + dobHelperText, + locationHelperText, + ]); + + const changeLanguage = (language) => { + i18n.changeLanguage(language).then(() => { + setIsTranslated(language === "hi"); // Set translation status based on selected language + }); + }; + + const languageOptions = [ + { value: "en", label: t("Translate to English") }, + { value: "hi", label: t("हिंदी में अनुवाद करें") }, + { value: "te", label: t("తెలుగులోకి అనువదించండి") }, + ]; + + const currentLanguageOption = + languageOptions.find((option) => option.value === i18n.language) || + languageOptions[0]; const onSubmit = (data) => { onSubmitData(data); @@ -21,19 +91,24 @@ export default function Form({ onSubmitData, nameMaxLength, emailPattern, phoneM

- 🌟 Welcome to our Health and Wellness Resources Platform! 🌿 To better serve you, we kindly request that you complete the Moderator KYC Form provided adjacent. Your input helps us tailor our platform and ensures a safe and supportive community. Thank you for your cooperation! 🙏 + {t("🌟 Welcome to our")}{" "} + {t("Health and Wellness")}{" "} + {t( + "Resources Platform! 🌿 To better serve you, we kindly request that you complete the Moderator KYC Form provided adjacent. Your input helps us tailor our platform and ensures a safe and supportive community. Thank you for your cooperation! 🙏" + )}

{" "} - 9862255XX{" "} + {t("9862255XX")}{" "}
{" "} - Level 1, Phoenix Tech Tower Plot No : 14/46, Survey No.1, IDA - Uppal, Hyderabad, Telangana 500039 + {t( + "Level 1, Phoenix Tech Tower Plot No: 14/46, Survey No.1, IDA Uppal, Hyderabad, Telangana 500039" + )}
@@ -42,98 +117,144 @@ export default function Form({ onSubmitData, nameMaxLength, emailPattern, phoneM
- {errors.name &&

Name should not be more than 20 characters.

} -

{nameHelperText}

+ {errors.name && ( +

+ {t("Name should not be more than 20 characters.")} +

+ )} +

+ {translatedNameHelperText} +

- {errors.email &&

{errors.email.message}

} -

{emailHelperText}

+ {errors.email && ( +

+ {errors.email.message} +

+ )} +

+ {translatedEmailHelperText} +

- {errors.phone &&

{errors.phone.message}

} -

{phoneHelperText}

+ {errors.phone && ( +

+ {errors.phone.message} +

+ )} +

+ {translatedPhoneHelperText} +

- {errors.dob &&

{errors.dob.message}

} -

Your date of birth helps us verify your eligibility for moderating our platform.

+ {errors.dob && ( +

{errors.dob.message}

+ )} +

+ {translatedDobHelperText} +

-
- {errors.location &&

{errors.location.message}

} -

Let us know where you are located to understand the diversity of our moderator team.

+ {errors.location && ( +

+ {errors.location.message} +

+ )} +

+ {translatedLocationHelperText} +

+
+ +
+
@@ -155,6 +276,8 @@ Form.propTypes = { nameHelperText: PropTypes.string, emailHelperText: PropTypes.string, phoneHelperText: PropTypes.string, + dobHelperText: PropTypes.string, + locationHelperText: PropTypes.string, }; Form.defaultProps = { @@ -162,9 +285,15 @@ Form.defaultProps = { nameMaxLength: 20, emailPattern: /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$/, phoneMaxLength: 10, - dobRequired: 'Date of birth is required', - locationRequired: 'Location is required', - nameHelperText: ' Please provide your complete name as it appears on your identification document', - emailHelperText: 'We will use this email address for all communications regarding your moderator role.', - phoneHelperText: 'Enter a 10-digit phone number.', + dobRequired: "Date of birth is required", + locationRequired: "Location is required", + nameHelperText: + "Please provide your complete name as it appears on your identification document", + emailHelperText: + "We will use this email address for all communications regarding your moderator role.", + phoneHelperText: "Enter a 10-digit phone number.", + dobHelperText: + "Your date of birth helps us verify your eligibility for moderating our platform.", + locationHelperText: + "Let us know where you are located to understand the diversity of our moderator team.", };