From f3b7dcc82eaf23c1cd66b388ca370622bc99e75c Mon Sep 17 00:00:00 2001 From: Bohdan Kulinich Date: Wed, 7 Jun 2023 12:14:27 +0300 Subject: [PATCH] Revert "[WIP] feat: bump ts version and add new eslint config" --- .github/workflows/main.yml | 8 +- package-lock.json | 1363 ++++++++------------- package.json | 9 +- pages/tooltip.mdx | 28 +- src/.eslintrc.json | 60 +- src/Accordion/Accordion.tsx | 4 +- src/Accordion/AccordionCollapsible.tsx | 42 +- src/Accordion/AccordionTrigger.tsx | 8 +- src/Banner/Banner.tsx | 9 +- src/Breadcrumbs/Breadcrumbs.tsx | 3 +- src/Button/Button.tsx | 6 +- src/Clipboard/Clipboard.tsx | 31 +- src/DatePicker/DatePicker.tsx | 293 +++-- src/Dialog/Dialog.tsx | 20 +- src/DialogActions/DialogActions.tsx | 3 +- src/DialogContent/DialogContent.tsx | 3 +- src/DialogIcon/DialogIcon.tsx | 3 +- src/DialogIcon/DialogIconBackdrop.js | 7 +- src/Dropdown/Dropdown.tsx | 12 +- src/DropdownItem/DropdownItem.tsx | 18 +- src/ExternalLink/ExternalLink.tsx | 3 +- src/FormRow/FormRow.tsx | 8 +- src/Grid/Grid.tsx | 19 +- src/GridCell/GridCell.tsx | 4 +- src/GridRow/GridRow.tsx | 4 +- src/Hint/Hint.tsx | 8 +- src/Icons/jsx/AccountIcon.tsx | 24 +- src/Icons/jsx/BackIcon.tsx | 52 +- src/Icons/jsx/BlockIcon.tsx | 20 +- src/Icons/jsx/BusinessIcon.tsx | 26 +- src/Icons/jsx/CancelIcon.tsx | 42 +- src/Icons/jsx/CheckCircle.tsx | 22 +- src/Icons/jsx/CheckIcon.tsx | 38 +- src/Icons/jsx/CloseIcon.tsx | 42 +- src/Icons/jsx/CopyIcon.tsx | 24 +- src/Icons/jsx/DeviceActiveIcon.tsx | 20 +- src/Icons/jsx/DeviceIcon.tsx | 20 +- src/Icons/jsx/DownloadIcon.tsx | 18 +- src/Icons/jsx/DropdownIcon.tsx | 18 +- src/Icons/jsx/ErrorIcon.tsx | 52 +- src/Icons/jsx/ExternalIcon.tsx | 24 +- src/Icons/jsx/HelpIcon.tsx | 54 +- src/Icons/jsx/InfoIcon.tsx | 54 +- src/Icons/jsx/LanguageDe.tsx | 26 +- src/Icons/jsx/LanguageEn.tsx | 46 +- src/Icons/jsx/LanguageEs.tsx | 24 +- src/Icons/jsx/LanguageFr.tsx | 26 +- src/Icons/jsx/LanguageIt.tsx | 26 +- src/Icons/jsx/LanguageJa.tsx | 31 +- src/Icons/jsx/LanguageKo.tsx | 116 +- src/Icons/jsx/LanguageNl.tsx | 26 +- src/Icons/jsx/LanguagePl.tsx | 24 +- src/Icons/jsx/LanguagePt.tsx | 97 +- src/Icons/jsx/LanguageTr.tsx | 46 +- src/Icons/jsx/LanguageUk.tsx | 24 +- src/Icons/jsx/LanguageZh.tsx | 30 +- src/Icons/jsx/LightBulbIcon.tsx | 18 +- src/Icons/jsx/MacpawText.tsx | 46 +- src/Icons/jsx/MenuIcon.tsx | 52 +- src/Icons/jsx/MoreIcon.tsx | 20 +- src/Icons/jsx/NotificationIcon.tsx | 20 +- src/Icons/jsx/PauseIcon.tsx | 24 +- src/Icons/jsx/PawIcon.tsx | 21 +- src/Icons/jsx/PaymentAmex.tsx | 57 +- src/Icons/jsx/PaymentCard.tsx | 58 +- src/Icons/jsx/PaymentDinersClub.tsx | 107 +- src/Icons/jsx/PaymentDiscover.tsx | 168 ++- src/Icons/jsx/PaymentJcb.tsx | 233 ++-- src/Icons/jsx/PaymentMada.tsx | 78 +- src/Icons/jsx/PaymentMaestro.tsx | 109 +- src/Icons/jsx/PaymentMaster.tsx | 85 +- src/Icons/jsx/PaymentPaypal.tsx | 151 ++- src/Icons/jsx/PaymentUnionPay.tsx | 162 ++- src/Icons/jsx/PaymentVisa.tsx | 55 +- src/Icons/jsx/PlayIcon.tsx | 18 +- src/Icons/jsx/PlusIcon.tsx | 30 +- src/Icons/jsx/Refresh.tsx | 18 +- src/Icons/jsx/RefreshingIcon.tsx | 50 +- src/Icons/jsx/SearchIcon.tsx | 52 +- src/Icons/jsx/SettingsIcon.tsx | 54 +- src/Icons/jsx/StoreIcon.tsx | 52 +- src/Icons/jsx/UserIcon.tsx | 54 +- src/Icons/jsx/WarningIcon.tsx | 52 +- src/Input/Input.tsx | 59 +- src/Label/Label.tsx | 7 +- src/LanguageIcon/LanguageIcon.tsx | 55 +- src/LanguageSwitcher/LanguageSwitcher.tsx | 73 +- src/Loader/Loader.tsx | 3 +- src/MacPawLogo/MacPawLogo.tsx | 4 +- src/Multiselect/Multiselect.tsx | 44 +- src/Notification/Notification.tsx | 15 +- src/Pagination/NextComponent.tsx | 30 - src/Pagination/Pagination.tsx | 71 +- src/Pagination/PrevComponent.tsx | 30 - src/Panel/Panel.tsx | 14 +- src/Password/Password.tsx | 20 +- src/Payment/Payment.tsx | 53 +- src/Radio/Radio.tsx | 7 +- src/Select/Select.tsx | 25 +- src/Table/Table.tsx | 3 +- src/TableRow/TableRow.tsx | 3 +- src/Tabs/Tab.tsx | 4 +- src/Tabs/TabContext.tsx | 9 +- src/Tabs/TabList.tsx | 7 +- src/Tag/Tag.tsx | 1 + src/TagInput/TagInput.tsx | 58 +- src/TagList/TagList.tsx | 2 +- src/Tooltip/Tooltip.tsx | 24 +- src/Tooltip/useTooltip.hook.ts | 44 +- src/global.d.ts | 7 - src/helpers.ts | 22 +- 111 files changed, 2973 insertions(+), 2633 deletions(-) delete mode 100644 src/Pagination/NextComponent.tsx delete mode 100644 src/Pagination/PrevComponent.tsx delete mode 100644 src/global.d.ts diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b5effb2..4aa92e9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest continue-on-error: false steps: - - name: Checkout + - name: Checkout uses: actions/checkout@v2 - name: Setup node @@ -21,7 +21,7 @@ jobs: node-version: '16.x' registry-url: 'https://registry.npmjs.org' cache: 'npm' - + - name: Install dependencies run: npm i env: @@ -47,7 +47,7 @@ jobs: uses: actions/download-artifact@v2 with: name: ui-kit-artifact - + - name: Unpack artifact run: tar xf artifact.tar.gz @@ -67,7 +67,7 @@ jobs: - name: Unpack artifact run: tar xf artifact.tar.gz - + - name: Run typescript compile run: yarn tsc --noEmit diff --git a/package-lock.json b/package-lock.json index 7ffa6b2..5a41dd3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@macpaw/macpaw-ui", - "version": "4.11.0", + "version": "4.10.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@macpaw/macpaw-ui", - "version": "4.11.0", + "version": "4.10.3", "license": "MIT", "dependencies": { "@floating-ui/react": "^0.24.1", @@ -17,9 +17,8 @@ }, "devDependencies": { "@babel/runtime": "^7.18.3", - "@macpaw/eslint-config-prettier": "^1.1.0", - "@macpaw/eslint-config-react": "^3.1.0", - "@macpaw/eslint-config-typescript": "^3.1.0", + "@macpaw/eslint-config-react": "^2.0.1", + "@macpaw/eslint-config-typescript": "^2.0.1", "@mdx-js/loader": "^2.1.1", "@mdx-js/react": "^2.3.0", "@next/mdx": "^12.1.6", @@ -37,7 +36,7 @@ "react": "^18.1.0", "react-dom": "^18.1.0", "sass": "^1.52.1", - "typescript": "^5.0.4" + "typescript": "^4.7.2" }, "engines": { "node": ">= 16" @@ -445,42 +444,6 @@ "kuler": "^2.0.0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, "node_modules/@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -552,17 +515,17 @@ "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" }, "node_modules/@floating-ui/dom": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.9.tgz", - "integrity": "sha512-sosQxsqgxMNkV3C+3UqTS6LxP7isRLwX8WMepp843Rb3/b0Wz8+MdUkxJksByip3C2WwLugLHN1b4ibn//zKwQ==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.8.tgz", + "integrity": "sha512-XLwhYV90MxiHDq6S0rzFZj00fnDM+A1R9jhSioZoMsa7G0Q0i+Q4x40ajR8FHSdYDE1bgjG45mIWe6jtv9UPmg==", "dependencies": { "@floating-ui/core": "^1.2.6" } }, "node_modules/@floating-ui/react": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.24.2.tgz", - "integrity": "sha512-8sdLmcC85J6M2H0AL8yOQuiWD4T0gNMSLpuJjmXyEA6ndfmxXR0hwKFkczB4xRNFhKbwoQeuh8z561HE2vOdZw==", + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.24.1.tgz", + "integrity": "sha512-qjCKUZDEz/4bnJmu4gn66TqsoX912/re8JGEi3pXazsphmyh327l0UpTgpBAT3WkNbnzAH7Adt3wKlLMNtfupw==", "dependencies": { "@floating-ui/react-dom": "^2.0.0", "aria-hidden": "^1.1.3", @@ -665,9 +628,9 @@ } }, "node_modules/@macpaw/eslint-config-base": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-base/-/eslint-config-base-3.0.0.tgz", - "integrity": "sha512-N42UES8JUzzhSawkez8ihkxJHB/GwLC1vFB7hENVETvXE44eu9fXBu/26kMI7kdr6dNNKx39BDiFly0xaJwFWg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-base/-/eslint-config-base-2.0.1.tgz", + "integrity": "sha512-shMAciK8ocMiJChss1mL2D4rOxcCjzFOXiQeBjdmsO5hi0ads/uZNWuUS4TZh93mZEyR+rNc54g9HXPCGx9eEg==", "dev": true, "dependencies": { "eslint-plugin-import": "^2.26.0" @@ -676,28 +639,13 @@ "eslint": "^8.0.0" } }, - "node_modules/@macpaw/eslint-config-prettier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-prettier/-/eslint-config-prettier-1.1.0.tgz", - "integrity": "sha512-GIN0UX4QQ+q6BK0R3SyIrv7Kqq/DVsVp2yICfwLUXmkkiR+eYjn7KEBUxSG7lq8lsQl2yhGzXtmtDJ0a7DyHMg==", - "dev": true, - "dependencies": { - "@macpaw/eslint-config-base": "3.0.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-prettier": "^4.2.1" - }, - "peerDependencies": { - "eslint": "^8.0.0", - "prettier": "^2.7.1" - } - }, "node_modules/@macpaw/eslint-config-react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-react/-/eslint-config-react-3.1.0.tgz", - "integrity": "sha512-1LYfkU7opVZZSea+lM62Dc/3cFBxGAz5+2jydQsAcmMfwYjMMGkMjux4/ljiknDsTgM9mMsyca7b5ohU9J6xvA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-react/-/eslint-config-react-2.0.1.tgz", + "integrity": "sha512-mFeZVMC08cBZ60ahzaSGcwfC6BXVRw+AngqIPGor+ICgoLNdXv/xFmJrY8wJ1+d2AOLLdAtCaTcZYpM5Z/L+yA==", "dev": true, "dependencies": { - "@macpaw/eslint-config-base": "3.0.0", + "@macpaw/eslint-config-base": "2.0.1", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.30.0", "eslint-plugin-react-hooks": "^4.5.0" @@ -707,18 +655,18 @@ } }, "node_modules/@macpaw/eslint-config-typescript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-typescript/-/eslint-config-typescript-3.1.0.tgz", - "integrity": "sha512-9iM6Os58WJDANH1Eum3XKENh9xKMc6fZwGxqFugWnhHhMYlqFDrg6/M/t8/46XW6LEyMUXhqu60ItPiFZb2UiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-typescript/-/eslint-config-typescript-2.0.1.tgz", + "integrity": "sha512-36A7ZZLhJ0XuLAXFkRe45hkY339sGx7v8ciJkXELs14+eYsrgZs7/3wbhUtdW4/Y9nQUby+lmIV/G6GTfTEkLQ==", "dev": true, "dependencies": { - "@macpaw/eslint-config-base": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^5.59.7", - "@typescript-eslint/parser": "^5.59.7" + "@macpaw/eslint-config-base": "2.0.1", + "@typescript-eslint/eslint-plugin": "^5.26.0", + "@typescript-eslint/parser": "^5.26.0" }, "peerDependencies": { "eslint": "^8.0.0", - "typescript": "^4.0.0 || ^5.0.0" + "typescript": "^4.0.0" } }, "node_modules/@mdx-js/loader": { @@ -1535,12 +1483,6 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", "dev": true }, - "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true - }, "node_modules/@types/unist": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", @@ -1548,19 +1490,18 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz", - "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz", + "integrity": "sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/type-utils": "5.59.8", - "@typescript-eslint/utils": "5.59.8", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/type-utils": "5.26.0", + "@typescript-eslint/utils": "5.26.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", + "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, @@ -1582,9 +1523,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -1597,14 +1538,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz", - "integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz", + "integrity": "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", "debug": "^4.3.4" }, "engines": { @@ -1624,13 +1565,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", - "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", + "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8" + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1641,13 +1582,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz", - "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz", + "integrity": "sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.8", - "@typescript-eslint/utils": "5.59.8", + "@typescript-eslint/utils": "5.26.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -1668,9 +1608,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", - "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", + "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1681,13 +1621,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", - "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", + "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1708,9 +1648,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -1723,19 +1663,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz", - "integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", + "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", "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.59.8", - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "eslint-utils": "^3.0.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1748,28 +1686,13 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", - "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", + "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/types": "5.26.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -1781,15 +1704,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" } }, "node_modules/@webassemblyjs/ast": { @@ -2099,6 +2019,11 @@ "node": ">=10" } }, + "node_modules/aria-hidden/node_modules/tslib": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + }, "node_modules/aria-query": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", @@ -2112,29 +2037,16 @@ "node": ">=6.0" } }, - "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==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" }, "engines": { @@ -2154,14 +2066,14 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -2172,14 +2084,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -3028,45 +2940,34 @@ } }, "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", + "object.assign": "^4.1.2", "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3082,20 +2983,6 @@ "dev": true, "peer": true }, - "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==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "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", @@ -3192,27 +3079,14 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "resolve": "^1.20.0" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -3225,20 +3099,16 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, "dependencies": { - "debug": "^3.2.7" + "debug": "^3.2.7", + "find-up": "^2.1.0" }, "engines": { "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } } }, "node_modules/eslint-module-utils/node_modules/debug": { @@ -3251,25 +3121,23 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", + "object.values": "^1.1.5", + "resolve": "^1.22.0", "tsconfig-paths": "^3.14.1" }, "engines": { @@ -3280,12 +3148,12 @@ } }, "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "ms": "2.0.0" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { @@ -3300,6 +3168,29 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-import/node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", @@ -3326,27 +3217,6 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, "node_modules/eslint-plugin-react": { "version": "7.30.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", @@ -3729,12 +3599,6 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, "node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -3808,6 +3672,18 @@ "node": ">=8" } }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -3997,21 +3873,6 @@ "node": ">=4" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -4051,12 +3912,6 @@ "dev": true, "peer": true }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -4099,18 +3954,6 @@ "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -4243,12 +4086,12 @@ "dev": true }, "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.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.1.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -4296,20 +4139,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -4357,9 +4186,9 @@ } }, "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, "engines": { "node": ">= 0.4" @@ -4369,9 +4198,9 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -4777,6 +4606,19 @@ "node": ">=6.11.5" } }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -5713,13 +5555,10 @@ } }, "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, "node_modules/mri": { "version": "1.2.0", @@ -5754,12 +5593,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -5853,9 +5686,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.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5871,14 +5704,14 @@ } }, "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.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", "object-keys": "^1.1.1" }, "engines": { @@ -5933,14 +5766,14 @@ } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" }, "engines": { "node": ">= 0.4" @@ -5984,6 +5817,39 @@ "node": ">= 0.8.0" } }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -6034,6 +5900,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -6137,18 +6012,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/prism-react-renderer": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.3.tgz", @@ -6417,17 +6280,13 @@ } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6508,20 +6367,6 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "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==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/sass": { "version": "1.52.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz", @@ -6773,46 +6618,29 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6847,7 +6675,7 @@ "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true, "engines": { "node": ">=4" @@ -7089,13 +6917,13 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.2", + "json5": "^1.0.1", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } @@ -7113,9 +6941,10 @@ } }, "node_modules/tslib": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", - "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/tsutils": { "version": "3.21.0", @@ -7132,12 +6961,6 @@ "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/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -7150,31 +6973,17 @@ "node": ">= 0.8.0" } }, - "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==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=4.2.0" } }, "node_modules/unbox-primitive": { @@ -8129,29 +7938,6 @@ "kuler": "^2.0.0" } }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - } - } - }, - "@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "dev": true - }, "@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -8207,17 +7993,17 @@ "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" }, "@floating-ui/dom": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.9.tgz", - "integrity": "sha512-sosQxsqgxMNkV3C+3UqTS6LxP7isRLwX8WMepp843Rb3/b0Wz8+MdUkxJksByip3C2WwLugLHN1b4ibn//zKwQ==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.8.tgz", + "integrity": "sha512-XLwhYV90MxiHDq6S0rzFZj00fnDM+A1R9jhSioZoMsa7G0Q0i+Q4x40ajR8FHSdYDE1bgjG45mIWe6jtv9UPmg==", "requires": { "@floating-ui/core": "^1.2.6" } }, "@floating-ui/react": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.24.2.tgz", - "integrity": "sha512-8sdLmcC85J6M2H0AL8yOQuiWD4T0gNMSLpuJjmXyEA6ndfmxXR0hwKFkczB4xRNFhKbwoQeuh8z561HE2vOdZw==", + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.24.1.tgz", + "integrity": "sha512-qjCKUZDEz/4bnJmu4gn66TqsoX912/re8JGEi3pXazsphmyh327l0UpTgpBAT3WkNbnzAH7Adt3wKlLMNtfupw==", "requires": { "@floating-ui/react-dom": "^2.0.0", "aria-hidden": "^1.1.3", @@ -8300,46 +8086,35 @@ } }, "@macpaw/eslint-config-base": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-base/-/eslint-config-base-3.0.0.tgz", - "integrity": "sha512-N42UES8JUzzhSawkez8ihkxJHB/GwLC1vFB7hENVETvXE44eu9fXBu/26kMI7kdr6dNNKx39BDiFly0xaJwFWg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-base/-/eslint-config-base-2.0.1.tgz", + "integrity": "sha512-shMAciK8ocMiJChss1mL2D4rOxcCjzFOXiQeBjdmsO5hi0ads/uZNWuUS4TZh93mZEyR+rNc54g9HXPCGx9eEg==", "dev": true, "requires": { "eslint-plugin-import": "^2.26.0" } }, - "@macpaw/eslint-config-prettier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-prettier/-/eslint-config-prettier-1.1.0.tgz", - "integrity": "sha512-GIN0UX4QQ+q6BK0R3SyIrv7Kqq/DVsVp2yICfwLUXmkkiR+eYjn7KEBUxSG7lq8lsQl2yhGzXtmtDJ0a7DyHMg==", - "dev": true, - "requires": { - "@macpaw/eslint-config-base": "3.0.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-prettier": "^4.2.1" - } - }, "@macpaw/eslint-config-react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-react/-/eslint-config-react-3.1.0.tgz", - "integrity": "sha512-1LYfkU7opVZZSea+lM62Dc/3cFBxGAz5+2jydQsAcmMfwYjMMGkMjux4/ljiknDsTgM9mMsyca7b5ohU9J6xvA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-react/-/eslint-config-react-2.0.1.tgz", + "integrity": "sha512-mFeZVMC08cBZ60ahzaSGcwfC6BXVRw+AngqIPGor+ICgoLNdXv/xFmJrY8wJ1+d2AOLLdAtCaTcZYpM5Z/L+yA==", "dev": true, "requires": { - "@macpaw/eslint-config-base": "3.0.0", + "@macpaw/eslint-config-base": "2.0.1", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.30.0", "eslint-plugin-react-hooks": "^4.5.0" } }, "@macpaw/eslint-config-typescript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-typescript/-/eslint-config-typescript-3.1.0.tgz", - "integrity": "sha512-9iM6Os58WJDANH1Eum3XKENh9xKMc6fZwGxqFugWnhHhMYlqFDrg6/M/t8/46XW6LEyMUXhqu60ItPiFZb2UiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@macpaw/eslint-config-typescript/-/eslint-config-typescript-2.0.1.tgz", + "integrity": "sha512-36A7ZZLhJ0XuLAXFkRe45hkY339sGx7v8ciJkXELs14+eYsrgZs7/3wbhUtdW4/Y9nQUby+lmIV/G6GTfTEkLQ==", "dev": true, "requires": { - "@macpaw/eslint-config-base": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^5.59.7", - "@typescript-eslint/parser": "^5.59.7" + "@macpaw/eslint-config-base": "2.0.1", + "@typescript-eslint/eslint-plugin": "^5.26.0", + "@typescript-eslint/parser": "^5.26.0" } }, "@mdx-js/loader": { @@ -8871,12 +8646,6 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", "dev": true }, - "@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true - }, "@types/unist": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", @@ -8884,27 +8653,26 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz", - "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz", + "integrity": "sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==", "dev": true, "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/type-utils": "5.59.8", - "@typescript-eslint/utils": "5.59.8", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/type-utils": "5.26.0", + "@typescript-eslint/utils": "5.26.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", + "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, "dependencies": { "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -8913,53 +8681,52 @@ } }, "@typescript-eslint/parser": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz", - "integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz", + "integrity": "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", - "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", + "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8" + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0" } }, "@typescript-eslint/type-utils": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz", - "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz", + "integrity": "sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.59.8", - "@typescript-eslint/utils": "5.59.8", + "@typescript-eslint/utils": "5.26.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", - "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", + "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", - "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", + "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8968,9 +8735,9 @@ }, "dependencies": { "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -8979,46 +8746,33 @@ } }, "@typescript-eslint/utils": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz", - "integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", + "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", "dev": true, "requires": { - "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "dependencies": { - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", - "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", + "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/types": "5.26.0", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true } } @@ -9293,6 +9047,13 @@ "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", "requires": { "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + } } }, "aria-query": { @@ -9305,26 +9066,16 @@ "@babel/runtime-corejs3": "^7.10.2" } }, - "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==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" } }, @@ -9335,26 +9086,26 @@ "dev": true }, "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", "es-shim-unscopables": "^1.0.0" } }, @@ -9967,45 +9718,34 @@ } }, "es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", + "object.assign": "^4.1.2", "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-module-lexer": { @@ -10015,17 +9755,6 @@ "dev": true, "peer": true }, - "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==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, "es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", @@ -10170,22 +9899,14 @@ } } }, - "eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", - "dev": true, - "requires": {} - }, "eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "resolve": "^1.20.0" }, "dependencies": { "debug": { @@ -10200,12 +9921,13 @@ } }, "eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, "requires": { - "debug": "^3.2.7" + "debug": "^3.2.7", + "find-up": "^2.1.0" }, "dependencies": { "debug": { @@ -10220,35 +9942,33 @@ } }, "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", + "object.values": "^1.1.5", + "resolve": "^1.22.0", "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.0.0" } }, "doctrine": { @@ -10259,6 +9979,23 @@ "requires": { "esutils": "^2.0.2" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } } } }, @@ -10282,15 +10019,6 @@ "minimatch": "^3.0.4" } }, - "eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, "eslint-plugin-react": { "version": "7.30.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", @@ -10505,12 +10233,6 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -10575,6 +10297,15 @@ "to-regex-range": "^5.0.1" } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -10718,15 +10449,6 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -10757,12 +10479,6 @@ "dev": true, "peer": true }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -10793,12 +10509,6 @@ "get-intrinsic": "^1.1.1" } }, - "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==", - "dev": true - }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -10899,12 +10609,12 @@ "dev": true }, "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.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.1.0", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -10935,17 +10645,6 @@ "has-tostringtag": "^1.0.0" } }, - "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==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -10981,15 +10680,15 @@ } }, "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { "has": "^1.0.3" @@ -11275,6 +10974,16 @@ "dev": true, "peer": true }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -11879,9 +11588,9 @@ } }, "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "mri": { @@ -11908,12 +11617,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -11972,9 +11675,9 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "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.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, "object-keys": { @@ -11984,14 +11687,14 @@ "dev": true }, "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.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", "object-keys": "^1.1.1" } }, @@ -12028,14 +11731,14 @@ } }, "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "once": { @@ -12070,6 +11773,32 @@ "word-wrap": "^1.2.3" } }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + }, + "dependencies": { + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -12107,6 +11836,12 @@ "lines-and-columns": "^1.1.6" } }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -12176,15 +11911,6 @@ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, "prism-react-renderer": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.3.tgz", @@ -12374,14 +12100,13 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" } }, "resolve-from": { @@ -12429,17 +12154,6 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "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==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, "sass": { "version": "1.52.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz", @@ -12635,37 +12349,26 @@ "side-channel": "^1.0.4" } }, - "string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "es-abstract": "^1.19.5" } }, "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "es-abstract": "^1.19.5" } }, "stringify-entities": { @@ -12690,7 +12393,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-json-comments": { @@ -12855,13 +12558,13 @@ "dev": true }, "tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.2", + "json5": "^1.0.1", "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, @@ -12878,9 +12581,10 @@ } }, "tslib": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", - "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "tsutils": { "version": "3.21.0", @@ -12889,14 +12593,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "type-check": { @@ -12908,21 +12604,10 @@ "prelude-ls": "^1.2.1" } }, - "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==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, "typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", "dev": true }, "unbox-primitive": { diff --git a/package.json b/package.json index a45eb8a..1373a5d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@macpaw/macpaw-ui", - "version": "4.11.0", + "version": "4.10.6", "main": "lib/ui.js", "scripts": { "dev": "next -p 1234", @@ -35,9 +35,8 @@ }, "devDependencies": { "@babel/runtime": "^7.18.3", - "@macpaw/eslint-config-react": "^3.1.0", - "@macpaw/eslint-config-typescript": "^3.1.0", - "@macpaw/eslint-config-prettier": "^1.1.0", + "@macpaw/eslint-config-react": "^2.0.1", + "@macpaw/eslint-config-typescript": "^2.0.1", "@mdx-js/loader": "^2.1.1", "@mdx-js/react": "^2.3.0", "@next/mdx": "^12.1.6", @@ -55,7 +54,7 @@ "react": "^18.1.0", "react-dom": "^18.1.0", "sass": "^1.52.1", - "typescript": "^5.0.4" + "typescript": "^4.7.2" }, "files": [ "src", diff --git a/pages/tooltip.mdx b/pages/tooltip.mdx index f106727..787567e 100644 --- a/pages/tooltip.mdx +++ b/pages/tooltip.mdx @@ -77,7 +77,7 @@ import { Tooltip, Button, Grid, GridRow, GridCell } from '../src/ui'; ## Tooltip with max width - ``` - ``` - { - { - + ); }; @@ -162,7 +162,7 @@ const tooltipBehaviorTitle = isVisible ? 'always visible' : 'normal' - { const [isHidden, setIsHidden] = useState(false); @@ -188,7 +188,7 @@ export const HiddenTooltip = () => { - { - + ); }; @@ -212,7 +212,7 @@ const tooltipBehaviorTitle = isHidden ? 'always hidden' : 'normal'; - { - { - + ); }; @@ -263,7 +263,7 @@ const tooltipBehaviorTitle = isVisible ? 'always visible' : 'always hidden'; -> = (props) => { const onToggle = (key: string | null) => { setActiveKey(key); - if (onChange) onChange(key); + if (onChange) { + onChange(key); + } }; return {children}; diff --git a/src/Accordion/AccordionCollapsible.tsx b/src/Accordion/AccordionCollapsible.tsx index 1a4ada8..ae038b3 100644 --- a/src/Accordion/AccordionCollapsible.tsx +++ b/src/Accordion/AccordionCollapsible.tsx @@ -6,13 +6,11 @@ export interface AccordionCollapsible extends HTMLAttributes { sectionKey: string; } -const TIMEOUT = 20; - const AccordionCollapsible: React.FC> = (props) => { const timeout = 300; const { sectionKey, children, ...other } = props; const [isExpanded, setIsExpanded] = useState(false); - const nodeRef = useRef(null as unknown as HTMLDivElement); + const nodeRef = useRef(null); const { activeKey } = useContext(AccordionContext); useEffect(() => { @@ -27,40 +25,46 @@ const AccordionCollapsible: React.FC { + function onEnter() { if (nodeRef.current) { nodeRef.current.style.height = `${0}px`; nodeRef.current.style.visibility = 'visible'; } - }; + } - const onEntering = () => { - if (nodeRef.current) nodeRef.current.style.height = `${nodeRef.current.scrollHeight}px`; - }; + function onEntering() { + if (nodeRef.current) { + nodeRef.current.style.height = `${nodeRef.current.scrollHeight}px`; + } + } - const onEntered = () => { + function onEntered() { if (nodeRef.current) { nodeRef.current.style.height = 'auto'; nodeRef.current.style.overflow = 'visible'; } - }; + } - const onExit = () => { + function onExit() { if (nodeRef.current) { nodeRef.current.style.overflow = 'hidden'; nodeRef.current.style.height = `${nodeRef.current.clientHeight}px`; } - }; + } - const onExiting = () => { + function onExiting() { setTimeout(() => { - if (nodeRef.current) nodeRef.current.style.height = `${0}px`; - }, TIMEOUT); - }; + if (nodeRef.current) { + nodeRef.current.style.height = `${0}px`; + } + }, 20); + } - const onExited = () => { - if (nodeRef.current) nodeRef.current.style.visibility = 'hidden'; - }; + function onExited() { + if (nodeRef.current) { + nodeRef.current.style.visibility = 'hidden'; + } + } return ( > = (p const { activeKey, onToggle } = useContext(AccordionContext); const onTrigger = (event: React.SyntheticEvent) => { onToggle(sectionKey === activeKey ? null : sectionKey); - if (onClick) onClick(event); + if (onClick) { + onClick(event); + } }; return ( @@ -20,7 +22,9 @@ const AccordionTrigger: React.FC> = (p tabIndex={0} onClick={onTrigger} onKeyPress={(event: React.KeyboardEvent) => { - if (event.key === 'Enter') onTrigger(event); + if (event.which === 13) { + onTrigger(event); + } }} {...other} > diff --git a/src/Banner/Banner.tsx b/src/Banner/Banner.tsx index 2799476..c7ef596 100644 --- a/src/Banner/Banner.tsx +++ b/src/Banner/Banner.tsx @@ -8,7 +8,14 @@ export interface BannerProps extends HTMLAttributes { } const Banner: FC> = (props) => { - const { className, children, type, icon, action, ...other } = props; + const { + className, + children, + type, + icon, + action, + ...other + } = props; const classNames = cx('banner', className, { '-secondary': type === 'secondary', diff --git a/src/Breadcrumbs/Breadcrumbs.tsx b/src/Breadcrumbs/Breadcrumbs.tsx index 303bc8a..ef2cef0 100644 --- a/src/Breadcrumbs/Breadcrumbs.tsx +++ b/src/Breadcrumbs/Breadcrumbs.tsx @@ -1,7 +1,8 @@ import React, { FC, HTMLAttributes } from 'react'; import cx from 'clsx'; -export interface BreadcrumbsProps extends HTMLAttributes {} +export interface BreadcrumbsProps extends HTMLAttributes { +} const Breadcrumbs: FC> = (props) => { const { className, children, ...other } = props; diff --git a/src/Button/Button.tsx b/src/Button/Button.tsx index d1c9879..deff94b 100644 --- a/src/Button/Button.tsx +++ b/src/Button/Button.tsx @@ -48,11 +48,13 @@ const Button = forwardRef((props, ref) => { '-icon': icon, }); - const componentProps: ObjectLiteral = {}; + const componentProps: any = {}; let Component = component as ElementType; - if (Component === 'button' && other.href) Component = 'a'; + if (Component === 'button' && other.href) { + Component = 'a'; + } if (Component === 'button') { componentProps.type = type; diff --git a/src/Clipboard/Clipboard.tsx b/src/Clipboard/Clipboard.tsx index 358e113..2e1e9ae 100644 --- a/src/Clipboard/Clipboard.tsx +++ b/src/Clipboard/Clipboard.tsx @@ -9,44 +9,29 @@ interface ClipboardProps { onCopyEvent?: (value: InputValueType) => void; } -const TIMEOUT = 1600; - const Clipboard: React.FC = ({ copy, element, onCopyEvent }) => { const [canBeCopied, setCanBeCopied] = useState(true); const timerRef = useRef(); useEffect(() => { - if (!canBeCopied) timerRef.current = setTimeout(() => setCanBeCopied(true), TIMEOUT); + if (!canBeCopied) timerRef.current = setTimeout(() => setCanBeCopied(true), 1600); return () => clearTimeout(timerRef.current as NodeJS.Timeout); }, [canBeCopied]); const iconHandler = () => { if (element.current?.value) { - onCopyEvent?.(element.current?.value as string); - navigator.clipboard.writeText(element.current?.value as string); + onCopyEvent?.(element.current?.value); + navigator.clipboard.writeText(element.current?.value); setCanBeCopied(false); } }; - const CopyButton = () => ( - - ); - - const CopyIcon = () => - copy ? ( - - - - ) : ( - - ); - - return ( -
{canBeCopied ? : }
- ); + const CopyButton = () => ; + + const CopyIcon = () => (copy ? : ); + + return
{canBeCopied ? : }
; }; export default Clipboard; diff --git a/src/DatePicker/DatePicker.tsx b/src/DatePicker/DatePicker.tsx index d3da00c..0e58183 100644 --- a/src/DatePicker/DatePicker.tsx +++ b/src/DatePicker/DatePicker.tsx @@ -19,8 +19,6 @@ const BOTTOM_OFFSET = 320; export type PossibleDateType = Date | Date[] | DateRange | undefined; -export type DaySelectionMode = 'single' | 'multiple' | 'range' | 'default'; - interface NavigationSelectableProps { captionLayout: 'dropdown' | 'buttons'; } @@ -31,7 +29,7 @@ interface NavigationDisabledProps { export type NavigationProps = NavigationSelectableProps | NavigationDisabledProps; -export interface DatePickerCommonProps extends Omit, 'onChange' | 'value'> { +export interface DatePickerCommonProps extends Omit, 'onChange' | 'value'> { value?: PossibleDateType; error?: InputError; className?: string; @@ -64,175 +62,166 @@ export interface DatePickerRangeMultipleProps extends DatePickerCommonProps { } export interface DatePickerRangeRangeProps extends DatePickerCommonProps { - selectionMode: 'range'; + selectionMode: 'range'; onChange?: (date: DateRange | undefined) => void; formatter?: (date: DateRange[]) => string; } -export type DatePickerProps = DatePickerRangeSingleProps | DatePickerRangeMultipleProps | DatePickerRangeRangeProps; - -const DatePicker = forwardRef( - ( - { - label, - placeholder = '', - value: initialValue, - error: externalError, - disabled, - scale, - className, - calendarClassName, - closeOnSelect = true, - openSite = 'auto', - dateFormat = 'P', - formatter, - defaultMonth, - fromYear, - toYear, - fromDate, - toDate, - selectionMode = 'single', - navigation, - onChange, - ...restProps - }, - ref, - ) => { - const [value, setValue] = useState(initialValue); - const [isOpenOnTop, setIsOpenOnTop] = useState(openSite === 'top'); - const [isActive, setIsActive] = useState(false); - const [error, setError] = useState(''); - const wrapperRef = useRef(null as unknown as HTMLDivElement); - - const errorMessage = error || externalError; - - const wrapperClassNames = cx('date-picker', className); - const calendarClassNames = cx('calendar', calendarClassName, { - 'site-top': isOpenOnTop && openSite !== 'center', - 'site-bottom': !isOpenOnTop && openSite !== 'center', - 'site-center': openSite === 'center', - }); - - const navigationProps: NavigationProps | null = useMemo(() => { - switch (navigation) { - case 'disabled': - return { disableNavigation: true }; - case 'dropdown': - return { captionLayout: 'dropdown' }; - case 'pagination': - return { captionLayout: 'buttons' }; - default: - return null; +export type DatePickerProps = DatePickerRangeSingleProps | DatePickerRangeMultipleProps | DatePickerRangeRangeProps + +const DatePicker = forwardRef(({ + label, + placeholder = '', + value: initialValue, + error: externalError, + disabled, + scale, + className, + calendarClassName, + closeOnSelect = true, + openSite = 'auto', + dateFormat = 'P', + formatter, + defaultMonth, + fromYear, + toYear, + fromDate, + toDate, + selectionMode = 'single', + navigation, + onChange, + ...restProps +}, ref) => { + const [value, setValue] = useState(initialValue); + const [isOpenOnTop, setIsOpenOnTop] = useState(openSite === 'top'); + const [isActive, setIsActive] = useState(false); + const [error, setError] = useState(''); + const wrapperRef = useRef(null); + + const errorMessage = error || externalError; + + const wrapperClassNames = cx('date-picker', className); + const calendarClassNames = cx('calendar', calendarClassName, { + 'site-top': isOpenOnTop && openSite !== 'center', + 'site-bottom': !isOpenOnTop && openSite !== 'center', + 'site-center': openSite === 'center', + }); + + const navigationProps: NavigationProps | null = useMemo(() => { + switch (navigation) { + case 'disabled': + return { disableNavigation: true }; + case 'dropdown': + return { captionLayout: 'dropdown' }; + case 'pagination': + return { captionLayout: 'buttons' }; + default: + return null; + } + }, [navigation]); + + const formattedValue = useMemo(() => { + if (!value) return ''; + + if (formatter) return formatter(value as any); + + try { + if (value instanceof Date) return format(value, dateFormat); + if (Array.isArray(value)) return value.map((dateItem) => format(dateItem, dateFormat)); + if (typeof value === 'object') { + const formattedFrom = value.from ? format(value.from, dateFormat) : ''; + const formattedTo = value.to ? format(value.to, dateFormat) : ''; + + if (!formattedFrom && formattedTo) return ''; + + return `${formattedFrom} - ${formattedTo}`; } - }, [navigation]); - // eslint-disable-next-line complexity - const formattedValue = useMemo(() => { - if (!value) return ''; + return ''; + } catch (error) { + setError((error as Error)?.message ?? 'Formatting error.'); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - if (formatter) return formatter(value as any); + return ''; + } + }, [value, placeholder, formatter]); - try { - if (value instanceof Date) return format(value, dateFormat as string); - if (Array.isArray(value)) return value.map((dateItem) => format(dateItem, dateFormat as string)); - if (typeof value === 'object') { - const formattedFrom = value.from ? format(value.from, dateFormat as string) : ''; - const formattedTo = value.to ? format(value.to, dateFormat as string) : ''; + const calculateOpenSite = (e: ReactMouseEvent): void => { + if (openSite !== 'auto') return; - if (!formattedFrom && formattedTo) return ''; + setIsOpenOnTop(window.innerHeight - e.clientY <= BOTTOM_OFFSET); + }; - return `${formattedFrom} - ${formattedTo}`; - } + const handleInputClick = (e: ReactMouseEvent) => { + calculateOpenSite(e); + setIsActive((prevIsActive) => !prevIsActive); + }; - return ''; - } catch (currentError) { - setError((currentError as Error)?.message ?? 'Formatting error.'); + const handleClose = () => { + setIsActive(false); + }; - return ''; - } - }, [value, placeholder, formatter]); + const handleSelectDate = (date: PossibleDateType) => { + setValue(date); - const calculateOpenSite = (e: ReactMouseEvent): void => { - if (openSite !== 'auto') return; + onChange?.(date as any); - setIsOpenOnTop(window.innerHeight - e.clientY <= BOTTOM_OFFSET); - }; + if (closeOnSelect) handleClose(); + }; - const handleInputClick = (e: ReactMouseEvent) => { - calculateOpenSite(e); - setIsActive((prevIsActive) => !prevIsActive); - }; + useEffect(() => { + const { current: wrapper } = wrapperRef; - const handleClose = () => { - setIsActive(false); - }; + const listener = (event: MouseEvent | TouchEvent): void => { + if (!wrapper || wrapper.contains(event.target as Node)) return; - const handleSelectDate = (date: PossibleDateType) => { - setValue(date); + handleClose(); + }; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - onChange?.(date as any); + document.addEventListener('mousedown', listener); + document.addEventListener('touchstart', listener); - if (closeOnSelect) handleClose(); + return (): void => { + document.removeEventListener('mousedown', listener); + document.removeEventListener('touchstart', listener); }; - - useEffect(() => { - const { current: wrapper } = wrapperRef; - - const listener = (event: MouseEvent | TouchEvent): void => { - if (!wrapper || wrapper.contains(event.target as Node)) return; - - handleClose(); - }; - - document.addEventListener('mousedown', listener); - document.addEventListener('touchstart', listener); - - return (): void => { - document.removeEventListener('mousedown', listener); - document.removeEventListener('touchstart', listener); - }; - }, []); - - useEffect(() => { - setValue(initialValue); - }, [initialValue]); - - return ( -
- {}} - onClick={handleInputClick} - ref={ref} - {...restProps} + }, []); + + useEffect(() => { + setValue(initialValue); + }, [initialValue]); + + return ( +
+ {}} + onClick={handleInputClick} + ref={ref} + {...restProps} + /> + {isActive && ( + - {isActive && ( - - )} -
- ); - }, -); + )} +
+ ); +}); export default DatePicker; diff --git a/src/Dialog/Dialog.tsx b/src/Dialog/Dialog.tsx index 88c06d4..5f1ba0d 100644 --- a/src/Dialog/Dialog.tsx +++ b/src/Dialog/Dialog.tsx @@ -24,18 +24,24 @@ const Dialog: FC> = (props) => { const dialogClassName = cx('dialog', className); - const keyListener = (event: KeyboardEvent) => { - if (event.key === 'Escape') onRequestClose(); - }; + function keyListener(event: KeyboardEvent) { + if (event.keyCode === 27) { + onRequestClose(); + } + } - const overlayClickListener = () => { - if (!shouldCloseOnOverlayClick) return; + function overlayClickListener() { + if (!shouldCloseOnOverlayClick) { + return; + } onRequestClose(); - }; + } useEffect(() => { - if (shouldCloseOnEsc) document.addEventListener('keydown', keyListener); + if (shouldCloseOnEsc) { + document.addEventListener('keydown', keyListener); + } return () => { document.removeEventListener('keydown', keyListener); diff --git a/src/DialogActions/DialogActions.tsx b/src/DialogActions/DialogActions.tsx index b1ed2df..6eeae7f 100644 --- a/src/DialogActions/DialogActions.tsx +++ b/src/DialogActions/DialogActions.tsx @@ -1,7 +1,8 @@ import React, { FC, HTMLAttributes } from 'react'; import cx from 'clsx'; -export interface DialogActionsProps extends HTMLAttributes {} +export interface DialogActionsProps extends HTMLAttributes { +} const DialogActions: FC> = (props) => { const { className, children, ...other } = props; diff --git a/src/DialogContent/DialogContent.tsx b/src/DialogContent/DialogContent.tsx index b75e585..998ac8d 100644 --- a/src/DialogContent/DialogContent.tsx +++ b/src/DialogContent/DialogContent.tsx @@ -1,7 +1,8 @@ import React, { FC, HTMLAttributes } from 'react'; import cx from 'clsx'; -export interface DialogContentProps extends HTMLAttributes {} +export interface DialogContentProps extends HTMLAttributes { +} const DialogContent: FC> = (props) => { const { children, className, ...other } = props; diff --git a/src/DialogIcon/DialogIcon.tsx b/src/DialogIcon/DialogIcon.tsx index 4621764..961f62f 100644 --- a/src/DialogIcon/DialogIcon.tsx +++ b/src/DialogIcon/DialogIcon.tsx @@ -2,7 +2,8 @@ import React, { FC, HTMLAttributes } from 'react'; import cx from 'clsx'; import DialogIconBackdrop from './DialogIconBackdrop'; -export interface DialogIconProps extends HTMLAttributes {} +export interface DialogIconProps extends HTMLAttributes { +} const DialogIcon: FC> = (props) => { const { className, children, ...other } = props; diff --git a/src/DialogIcon/DialogIconBackdrop.js b/src/DialogIcon/DialogIconBackdrop.js index 1e99802..852c833 100644 --- a/src/DialogIcon/DialogIconBackdrop.js +++ b/src/DialogIcon/DialogIconBackdrop.js @@ -27,12 +27,7 @@ const DialogIconBackdrop = ({ className }) => ( - + > = (props) => { const { className, children, trigger, position, onOpen, onClose, ...other } = props; const [isOpen, setIsOpen] = useState(false); - const rootRef = useRef(null as unknown as HTMLDivElement); - const menuRef = useRef(null as unknown as HTMLDivElement); + const rootRef = useRef(null); + const menuRef = useRef(null); const triggerClone = React.cloneElement(trigger, { onClick: () => { setIsOpen(!isOpen); @@ -39,7 +39,6 @@ const DropDown: React.FC> = (props) => { const clickOnRoot = rootRef.current.contains(event.target as Node); const clickOnMenu = menuRef.current.contains(event.target as Node); // do not handle if click is on trigger - if (clickOnRoot && !clickOnMenu) return; if (clickOnRoot && clickOnMenu) { @@ -59,8 +58,11 @@ const DropDown: React.FC> = (props) => { }, []); useEffect(() => { - if (isOpen && onOpen) onOpen(); - else if (onClose) onClose(); + if (isOpen && onOpen) { + onOpen(); + } else if (onClose) { + onClose(); + } }, [isOpen, onClose, onOpen]); return ( diff --git a/src/DropdownItem/DropdownItem.tsx b/src/DropdownItem/DropdownItem.tsx index d1afa7c..6d3e28a 100644 --- a/src/DropdownItem/DropdownItem.tsx +++ b/src/DropdownItem/DropdownItem.tsx @@ -1,5 +1,5 @@ -import React, { ButtonHTMLAttributes, ElementType, ReactNode } from 'react'; import cx from 'clsx'; +import React, { ButtonHTMLAttributes, ElementType, ReactNode } from 'react'; export interface DropdownItem extends ButtonHTMLAttributes { component?: ReactNode; @@ -11,13 +11,23 @@ export interface DropdownItem extends ButtonHTMLAttributes { } const DropdownItem: React.FC> = (props) => { - const { children, component = 'button', className, attention, withoutAction, separator, ...other } = props; + const { + children, + component = 'button', + className, attention, + withoutAction, + separator, + ...other } = props; let Component = component as ElementType; - if (Component === 'button' && other?.href) Component = 'a'; + if (Component === 'button' && other?.href) { + Component = 'a'; + } - if (withoutAction || separator) Component = 'div'; + if (withoutAction || separator) { + Component = 'div'; + } const classNames = cx('dropdownItem', className, { '-attention': attention, diff --git a/src/ExternalLink/ExternalLink.tsx b/src/ExternalLink/ExternalLink.tsx index 239db1f..93fcc23 100644 --- a/src/ExternalLink/ExternalLink.tsx +++ b/src/ExternalLink/ExternalLink.tsx @@ -1,6 +1,7 @@ import React, { AnchorHTMLAttributes } from 'react'; -export interface ExternalLinkProps extends AnchorHTMLAttributes {} +export interface ExternalLinkProps extends AnchorHTMLAttributes { +} const ExternalLink: React.FC> = (props) => { const { children, ...other } = props; diff --git a/src/FormRow/FormRow.tsx b/src/FormRow/FormRow.tsx index 8cdceea..4941e4e 100644 --- a/src/FormRow/FormRow.tsx +++ b/src/FormRow/FormRow.tsx @@ -7,7 +7,13 @@ export interface FormRowProps extends HTMLAttributes { } const FormRow: FC> = (props) => { - const { children, asList, split, className, ...other } = props; + const { + children, + asList, + split, + className, + ...other + } = props; return (
diff --git a/src/Grid/Grid.tsx b/src/Grid/Grid.tsx index cbb3c4b..4742663 100644 --- a/src/Grid/Grid.tsx +++ b/src/Grid/Grid.tsx @@ -1,5 +1,5 @@ import React, { ElementType, ReactNode } from 'react'; -import Panel, { PanelProps } from '../Panel/Panel'; +import Panel, { PanelProps } from '../Panel/Panel'; interface Grid extends PanelProps { icon?: ReactNode; @@ -9,17 +9,26 @@ interface Grid extends PanelProps { } const Grid: React.FC> = (props) => { - const { icon, action, notification, children, className, component, ...other } = props; + const { + icon, + action, + notification, + children, + className, + component, + ...other + } = props; let gridClassNames = 'grid'; - if (className) gridClassNames += ` ${className}`; - const Component = component ? (component as ElementType) : Panel; + const Component = component ? component as ElementType : Panel; return (
{icon &&
{icon}
} -
{children}
+
+ {children} +
{action}
{notification &&
{notification}
} diff --git a/src/GridCell/GridCell.tsx b/src/GridCell/GridCell.tsx index b010d53..8bb0638 100644 --- a/src/GridCell/GridCell.tsx +++ b/src/GridCell/GridCell.tsx @@ -8,7 +8,9 @@ const GridCell: React.FC> = (props) => { const { type, ...other } = props; const Component = other.children ? 'div' : 'span'; // component type is important for zebra style - return ; + return ( + + ); }; export default GridCell; diff --git a/src/GridRow/GridRow.tsx b/src/GridRow/GridRow.tsx index a44b946..6f633aa 100644 --- a/src/GridRow/GridRow.tsx +++ b/src/GridRow/GridRow.tsx @@ -1,5 +1,7 @@ import React from 'react'; -const GridRow: React.FC> = (props) =>
; +const GridRow: React.FC> = (props) => ( +
+); export default GridRow; diff --git a/src/Hint/Hint.tsx b/src/Hint/Hint.tsx index 0b9225e..983f4c0 100644 --- a/src/Hint/Hint.tsx +++ b/src/Hint/Hint.tsx @@ -7,7 +7,13 @@ export interface HintProps extends HTMLAttributes { } const Hint: FC> = (props) => { - const { large, children, error, className, ...other } = props; + const { + large, + children, + error, + className, + ...other + } = props; const hintClassName = cx('hint', className, { '-large': large, diff --git a/src/Icons/jsx/AccountIcon.tsx b/src/Icons/jsx/AccountIcon.tsx index 00fec6b..d32e519 100644 --- a/src/Icons/jsx/AccountIcon.tsx +++ b/src/Icons/jsx/AccountIcon.tsx @@ -1,12 +1,20 @@ import * as React from 'react'; -const SvgAccountIcon = (props: React.SVGProps) => ( - - - -); +function SvgAccountIcon(props: React.SVGProps) { + return ( + + + + ); +} export default SvgAccountIcon; diff --git a/src/Icons/jsx/BackIcon.tsx b/src/Icons/jsx/BackIcon.tsx index d5ead75..e911ef5 100644 --- a/src/Icons/jsx/BackIcon.tsx +++ b/src/Icons/jsx/BackIcon.tsx @@ -1,30 +1,32 @@ import * as React from 'react'; -const SvgBackIcon = (props: React.SVGProps) => ( - - - - - - - - - - - +function SvgBackIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + - - -); + + ); +} export default SvgBackIcon; diff --git a/src/Icons/jsx/BlockIcon.tsx b/src/Icons/jsx/BlockIcon.tsx index b531791..53676a1 100644 --- a/src/Icons/jsx/BlockIcon.tsx +++ b/src/Icons/jsx/BlockIcon.tsx @@ -1,10 +1,18 @@ import * as React from 'react'; -const SvgBlockIcon = (props: React.SVGProps) => ( - - - - -); +function SvgBlockIcon(props: React.SVGProps) { + return ( + + + + + ); +} export default SvgBlockIcon; diff --git a/src/Icons/jsx/BusinessIcon.tsx b/src/Icons/jsx/BusinessIcon.tsx index 9a163a2..84441a0 100644 --- a/src/Icons/jsx/BusinessIcon.tsx +++ b/src/Icons/jsx/BusinessIcon.tsx @@ -1,13 +1,21 @@ import * as React from 'react'; -const SvgBusinessIcon = (props: React.SVGProps) => ( - - - -); +function SvgBusinessIcon(props: React.SVGProps) { + return ( + + + + ); +} export default SvgBusinessIcon; diff --git a/src/Icons/jsx/CancelIcon.tsx b/src/Icons/jsx/CancelIcon.tsx index ee2801a..f180671 100644 --- a/src/Icons/jsx/CancelIcon.tsx +++ b/src/Icons/jsx/CancelIcon.tsx @@ -1,13 +1,37 @@ import * as React from 'react'; -const SvgCancelIcon = (props: React.SVGProps) => ( - - - - - - - -); +function SvgCancelIcon(props: React.SVGProps) { + return ( + + + + + + + + ); +} export default SvgCancelIcon; diff --git a/src/Icons/jsx/CheckCircle.tsx b/src/Icons/jsx/CheckCircle.tsx index 7f851e4..209964b 100644 --- a/src/Icons/jsx/CheckCircle.tsx +++ b/src/Icons/jsx/CheckCircle.tsx @@ -1,13 +1,17 @@ import * as React from 'react'; -const SvgCheckCircle = (props: React.SVGProps) => ( - - - -); +function SvgCheckCircle(props: React.SVGProps) { + return ( + + + + ); +} export default SvgCheckCircle; diff --git a/src/Icons/jsx/CheckIcon.tsx b/src/Icons/jsx/CheckIcon.tsx index 9fbcb91..624c40e 100644 --- a/src/Icons/jsx/CheckIcon.tsx +++ b/src/Icons/jsx/CheckIcon.tsx @@ -1,12 +1,34 @@ import * as React from 'react'; -const SvgCheckIcon = (props: React.SVGProps) => ( - - - - - - -); +function SvgCheckIcon(props: React.SVGProps) { + return ( + + + + + + + ); +} export default SvgCheckIcon; diff --git a/src/Icons/jsx/CloseIcon.tsx b/src/Icons/jsx/CloseIcon.tsx index 71791e0..a4459e3 100644 --- a/src/Icons/jsx/CloseIcon.tsx +++ b/src/Icons/jsx/CloseIcon.tsx @@ -1,13 +1,37 @@ import * as React from 'react'; -const SvgCloseIcon = (props: React.SVGProps) => ( - - - - - - - -); +function SvgCloseIcon(props: React.SVGProps) { + return ( + + + + + + + + ); +} export default SvgCloseIcon; diff --git a/src/Icons/jsx/CopyIcon.tsx b/src/Icons/jsx/CopyIcon.tsx index b62debb..4bedfdc 100644 --- a/src/Icons/jsx/CopyIcon.tsx +++ b/src/Icons/jsx/CopyIcon.tsx @@ -1,12 +1,20 @@ import * as React from 'react'; -const SvgCopyIcon = (props: React.SVGProps) => ( - - - -); +function SvgCopyIcon(props: React.SVGProps) { + return ( + + + + ); +} export default SvgCopyIcon; diff --git a/src/Icons/jsx/DeviceActiveIcon.tsx b/src/Icons/jsx/DeviceActiveIcon.tsx index 11ae92f..d9b1934 100644 --- a/src/Icons/jsx/DeviceActiveIcon.tsx +++ b/src/Icons/jsx/DeviceActiveIcon.tsx @@ -1,10 +1,18 @@ import * as React from 'react'; -const SvgDeviceActiveIcon = (props: React.SVGProps) => ( - - - - -); +function SvgDeviceActiveIcon(props: React.SVGProps) { + return ( + + + + + ); +} export default SvgDeviceActiveIcon; diff --git a/src/Icons/jsx/DeviceIcon.tsx b/src/Icons/jsx/DeviceIcon.tsx index 66b88f6..56187c0 100644 --- a/src/Icons/jsx/DeviceIcon.tsx +++ b/src/Icons/jsx/DeviceIcon.tsx @@ -1,10 +1,18 @@ import * as React from 'react'; -const SvgDeviceIcon = (props: React.SVGProps) => ( - - - - -); +function SvgDeviceIcon(props: React.SVGProps) { + return ( + + + + + ); +} export default SvgDeviceIcon; diff --git a/src/Icons/jsx/DownloadIcon.tsx b/src/Icons/jsx/DownloadIcon.tsx index 7ff5589..c206a09 100644 --- a/src/Icons/jsx/DownloadIcon.tsx +++ b/src/Icons/jsx/DownloadIcon.tsx @@ -1,9 +1,17 @@ import * as React from 'react'; -const SvgDownloadIcon = (props: React.SVGProps) => ( - - - -); +function SvgDownloadIcon(props: React.SVGProps) { + return ( + + + + ); +} export default SvgDownloadIcon; diff --git a/src/Icons/jsx/DropdownIcon.tsx b/src/Icons/jsx/DropdownIcon.tsx index ae81893..85c0f52 100644 --- a/src/Icons/jsx/DropdownIcon.tsx +++ b/src/Icons/jsx/DropdownIcon.tsx @@ -1,9 +1,17 @@ import * as React from 'react'; -const SvgDropdownIcon = (props: React.SVGProps) => ( - - - -); +function SvgDropdownIcon(props: React.SVGProps) { + return ( + + + + ); +} export default SvgDropdownIcon; diff --git a/src/Icons/jsx/ErrorIcon.tsx b/src/Icons/jsx/ErrorIcon.tsx index 9b04a06..b284d52 100644 --- a/src/Icons/jsx/ErrorIcon.tsx +++ b/src/Icons/jsx/ErrorIcon.tsx @@ -1,30 +1,32 @@ import * as React from 'react'; -const SvgErrorIcon = (props: React.SVGProps) => ( - - - - - - - - - - - +function SvgErrorIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + - - -); + + ); +} export default SvgErrorIcon; diff --git a/src/Icons/jsx/ExternalIcon.tsx b/src/Icons/jsx/ExternalIcon.tsx index 96e2e94..7a3a52d 100644 --- a/src/Icons/jsx/ExternalIcon.tsx +++ b/src/Icons/jsx/ExternalIcon.tsx @@ -1,12 +1,20 @@ import * as React from 'react'; -const SvgExternalIcon = (props: React.SVGProps) => ( - - - -); +function SvgExternalIcon(props: React.SVGProps) { + return ( + + + + ); +} export default SvgExternalIcon; diff --git a/src/Icons/jsx/HelpIcon.tsx b/src/Icons/jsx/HelpIcon.tsx index 2129127..59944e9 100644 --- a/src/Icons/jsx/HelpIcon.tsx +++ b/src/Icons/jsx/HelpIcon.tsx @@ -1,32 +1,34 @@ import * as React from 'react'; -const SvgHelpIcon = (props: React.SVGProps) => ( - - - - - - - - - - - - +function SvgHelpIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + + - - -); + + ); +} export default SvgHelpIcon; diff --git a/src/Icons/jsx/InfoIcon.tsx b/src/Icons/jsx/InfoIcon.tsx index 9c7dbfd..0970385 100644 --- a/src/Icons/jsx/InfoIcon.tsx +++ b/src/Icons/jsx/InfoIcon.tsx @@ -1,32 +1,34 @@ import * as React from 'react'; -const SvgInfoIcon = (props: React.SVGProps) => ( - - - - - - - - - - - - +function SvgInfoIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + + - - -); + + ); +} export default SvgInfoIcon; diff --git a/src/Icons/jsx/LanguageDe.tsx b/src/Icons/jsx/LanguageDe.tsx index 2056f5f..48605e5 100644 --- a/src/Icons/jsx/LanguageDe.tsx +++ b/src/Icons/jsx/LanguageDe.tsx @@ -1,13 +1,21 @@ import * as React from 'react'; -const SvgLanguageDe = (props: React.SVGProps) => ( - - - - - - - -); +function SvgLanguageDe(props: React.SVGProps) { + return ( + + + + + + + + ); +} export default SvgLanguageDe; diff --git a/src/Icons/jsx/LanguageEn.tsx b/src/Icons/jsx/LanguageEn.tsx index 8b58e2a..cd950c9 100644 --- a/src/Icons/jsx/LanguageEn.tsx +++ b/src/Icons/jsx/LanguageEn.tsx @@ -1,23 +1,31 @@ import * as React from 'react'; -const SvgLanguageEn = (props: React.SVGProps) => ( - - - - - - - - -); +function SvgLanguageEn(props: React.SVGProps) { + return ( + + + + + + + + + ); +} export default SvgLanguageEn; diff --git a/src/Icons/jsx/LanguageEs.tsx b/src/Icons/jsx/LanguageEs.tsx index 919265a..38db5d3 100644 --- a/src/Icons/jsx/LanguageEs.tsx +++ b/src/Icons/jsx/LanguageEs.tsx @@ -1,12 +1,20 @@ import * as React from 'react'; -const SvgLanguageEs = (props: React.SVGProps) => ( - - - - - - -); +function SvgLanguageEs(props: React.SVGProps) { + return ( + + + + + + + ); +} export default SvgLanguageEs; diff --git a/src/Icons/jsx/LanguageFr.tsx b/src/Icons/jsx/LanguageFr.tsx index 1cfa647..f3c20a9 100644 --- a/src/Icons/jsx/LanguageFr.tsx +++ b/src/Icons/jsx/LanguageFr.tsx @@ -1,13 +1,21 @@ import * as React from 'react'; -const SvgLanguageFr = (props: React.SVGProps) => ( - - - - - - - -); +function SvgLanguageFr(props: React.SVGProps) { + return ( + + + + + + + + ); +} export default SvgLanguageFr; diff --git a/src/Icons/jsx/LanguageIt.tsx b/src/Icons/jsx/LanguageIt.tsx index 0cb5612..6f1dd96 100644 --- a/src/Icons/jsx/LanguageIt.tsx +++ b/src/Icons/jsx/LanguageIt.tsx @@ -1,13 +1,21 @@ import * as React from 'react'; -const SvgLanguageIt = (props: React.SVGProps) => ( - - - - - - - -); +function SvgLanguageIt(props: React.SVGProps) { + return ( + + + + + + + + ); +} export default SvgLanguageIt; diff --git a/src/Icons/jsx/LanguageJa.tsx b/src/Icons/jsx/LanguageJa.tsx index f49a3c3..9d1b8f7 100644 --- a/src/Icons/jsx/LanguageJa.tsx +++ b/src/Icons/jsx/LanguageJa.tsx @@ -1,12 +1,27 @@ import * as React from 'react'; -const SvgLanguageJa = (props: React.SVGProps) => ( - - - - - - -); +function SvgLanguageJa(props: React.SVGProps) { + return ( + + + + + + + ); +} export default SvgLanguageJa; diff --git a/src/Icons/jsx/LanguageKo.tsx b/src/Icons/jsx/LanguageKo.tsx index 826efb3..4c9c382 100644 --- a/src/Icons/jsx/LanguageKo.tsx +++ b/src/Icons/jsx/LanguageKo.tsx @@ -1,49 +1,75 @@ import * as React from 'react'; -const SvgLanguageKo = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - - - -); +function SvgLanguageKo(props: React.SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + + ); +} export default SvgLanguageKo; diff --git a/src/Icons/jsx/LanguageNl.tsx b/src/Icons/jsx/LanguageNl.tsx index 8338872..d03f006 100644 --- a/src/Icons/jsx/LanguageNl.tsx +++ b/src/Icons/jsx/LanguageNl.tsx @@ -1,13 +1,21 @@ import * as React from 'react'; -const SvgLanguageNl = (props: React.SVGProps) => ( - - - - - - - -); +function SvgLanguageNl(props: React.SVGProps) { + return ( + + + + + + + + ); +} export default SvgLanguageNl; diff --git a/src/Icons/jsx/LanguagePl.tsx b/src/Icons/jsx/LanguagePl.tsx index 1609b82..6a4c216 100644 --- a/src/Icons/jsx/LanguagePl.tsx +++ b/src/Icons/jsx/LanguagePl.tsx @@ -1,12 +1,20 @@ import * as React from 'react'; -const SvgLanguagePl = (props: React.SVGProps) => ( - - - - - - -); +function SvgLanguagePl(props: React.SVGProps) { + return ( + + + + + + + ); +} export default SvgLanguagePl; diff --git a/src/Icons/jsx/LanguagePt.tsx b/src/Icons/jsx/LanguagePt.tsx index a72a2f2..b9fbd9e 100644 --- a/src/Icons/jsx/LanguagePt.tsx +++ b/src/Icons/jsx/LanguagePt.tsx @@ -1,47 +1,58 @@ import * as React from 'react'; -const SvgLanguagePt = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); +function SvgLanguagePt(props: React.SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} export default SvgLanguagePt; diff --git a/src/Icons/jsx/LanguageTr.tsx b/src/Icons/jsx/LanguageTr.tsx index ba49edc..df7aef7 100644 --- a/src/Icons/jsx/LanguageTr.tsx +++ b/src/Icons/jsx/LanguageTr.tsx @@ -1,23 +1,31 @@ import * as React from 'react'; -const SvgLanguageTr = (props: React.SVGProps) => ( - - - - - - - - -); +function SvgLanguageTr(props: React.SVGProps) { + return ( + + + + + + + + + ); +} export default SvgLanguageTr; diff --git a/src/Icons/jsx/LanguageUk.tsx b/src/Icons/jsx/LanguageUk.tsx index 67f6a0c..ab2a16e 100644 --- a/src/Icons/jsx/LanguageUk.tsx +++ b/src/Icons/jsx/LanguageUk.tsx @@ -1,12 +1,20 @@ import * as React from 'react'; -const SvgLanguageUk = (props: React.SVGProps) => ( - - - - - - -); +function SvgLanguageUk(props: React.SVGProps) { + return ( + + + + + + + ); +} export default SvgLanguageUk; diff --git a/src/Icons/jsx/LanguageZh.tsx b/src/Icons/jsx/LanguageZh.tsx index a734c76..961b5a3 100644 --- a/src/Icons/jsx/LanguageZh.tsx +++ b/src/Icons/jsx/LanguageZh.tsx @@ -1,15 +1,23 @@ import * as React from 'react'; -const SvgLanguageZh = (props: React.SVGProps) => ( - - - - - - -); +function SvgLanguageZh(props: React.SVGProps) { + return ( + + + + + + + ); +} export default SvgLanguageZh; diff --git a/src/Icons/jsx/LightBulbIcon.tsx b/src/Icons/jsx/LightBulbIcon.tsx index 036f5fc..592b826 100644 --- a/src/Icons/jsx/LightBulbIcon.tsx +++ b/src/Icons/jsx/LightBulbIcon.tsx @@ -1,9 +1,17 @@ import * as React from 'react'; -const SvgLightBulbIcon = (props: React.SVGProps) => ( - - - -); +function SvgLightBulbIcon(props: React.SVGProps) { + return ( + + + + ); +} export default SvgLightBulbIcon; diff --git a/src/Icons/jsx/MacpawText.tsx b/src/Icons/jsx/MacpawText.tsx index b2b12db..579337b 100644 --- a/src/Icons/jsx/MacpawText.tsx +++ b/src/Icons/jsx/MacpawText.tsx @@ -1,32 +1,22 @@ import * as React from 'react'; -const SvgMacpawText = (props: React.SVGProps) => ( - - - - - - - - -); +function SvgMacpawText(props: React.SVGProps) { + return ( + + + + + + + + + ); +} export default SvgMacpawText; diff --git a/src/Icons/jsx/MenuIcon.tsx b/src/Icons/jsx/MenuIcon.tsx index 795bf9f..5d1af05 100644 --- a/src/Icons/jsx/MenuIcon.tsx +++ b/src/Icons/jsx/MenuIcon.tsx @@ -1,30 +1,32 @@ import * as React from 'react'; -const SvgMenuIcon = (props: React.SVGProps) => ( - - - - - - - - - - - +function SvgMenuIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + - - -); + + ); +} export default SvgMenuIcon; diff --git a/src/Icons/jsx/MoreIcon.tsx b/src/Icons/jsx/MoreIcon.tsx index 4ba1d14..9a42bed 100644 --- a/src/Icons/jsx/MoreIcon.tsx +++ b/src/Icons/jsx/MoreIcon.tsx @@ -1,10 +1,18 @@ import * as React from 'react'; -const SvgMoreIcon = (props: React.SVGProps) => ( - - - - -); +function SvgMoreIcon(props: React.SVGProps) { + return ( + + + + + ); +} export default SvgMoreIcon; diff --git a/src/Icons/jsx/NotificationIcon.tsx b/src/Icons/jsx/NotificationIcon.tsx index 2530b37..890f1f2 100644 --- a/src/Icons/jsx/NotificationIcon.tsx +++ b/src/Icons/jsx/NotificationIcon.tsx @@ -1,10 +1,18 @@ import * as React from 'react'; -const SvgNotificationIcon = (props: React.SVGProps) => ( - - - - -); +function SvgNotificationIcon(props: React.SVGProps) { + return ( + + + + + ); +} export default SvgNotificationIcon; diff --git a/src/Icons/jsx/PauseIcon.tsx b/src/Icons/jsx/PauseIcon.tsx index 1438d72..6422240 100644 --- a/src/Icons/jsx/PauseIcon.tsx +++ b/src/Icons/jsx/PauseIcon.tsx @@ -1,12 +1,20 @@ import * as React from 'react'; -const SvgPauseIcon = (props: React.SVGProps) => ( - - - - - - -); +function SvgPauseIcon(props: React.SVGProps) { + return ( + + + + + + + ); +} export default SvgPauseIcon; diff --git a/src/Icons/jsx/PawIcon.tsx b/src/Icons/jsx/PawIcon.tsx index 4c02428..5b6eb0b 100644 --- a/src/Icons/jsx/PawIcon.tsx +++ b/src/Icons/jsx/PawIcon.tsx @@ -1,12 +1,17 @@ import * as React from 'react'; -const SvgPawIcon = (props: React.SVGProps) => ( - - - -); +function SvgPawIcon(props: React.SVGProps) { + return ( + + + + ); +} export default SvgPawIcon; diff --git a/src/Icons/jsx/PaymentAmex.tsx b/src/Icons/jsx/PaymentAmex.tsx index 2673b45..1f846e8 100644 --- a/src/Icons/jsx/PaymentAmex.tsx +++ b/src/Icons/jsx/PaymentAmex.tsx @@ -1,22 +1,43 @@ import * as React from 'react'; -const SvgPaymentAmex = (props: React.SVGProps) => ( - - - - - - - - - - - - -); +function SvgPaymentAmex(props: React.SVGProps) { + return ( + + + + + + + + + + + + + ); +} export default SvgPaymentAmex; diff --git a/src/Icons/jsx/PaymentCard.tsx b/src/Icons/jsx/PaymentCard.tsx index 34c8aab..96615fc 100644 --- a/src/Icons/jsx/PaymentCard.tsx +++ b/src/Icons/jsx/PaymentCard.tsx @@ -1,23 +1,43 @@ import * as React from 'react'; -const SvgPaymentCard = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - -); +function SvgPaymentCard(props: React.SVGProps) { + return ( + + + + + + + + + + + + + + + + + + ); +} export default SvgPaymentCard; diff --git a/src/Icons/jsx/PaymentDinersClub.tsx b/src/Icons/jsx/PaymentDinersClub.tsx index d1009f3..447942d 100644 --- a/src/Icons/jsx/PaymentDinersClub.tsx +++ b/src/Icons/jsx/PaymentDinersClub.tsx @@ -1,46 +1,73 @@ import * as React from 'react'; -const SvgPaymentDinersClub = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - ) { + return ( + + + + + + + + + + + + + + + + + + + + + + - - -); + + ); +} export default SvgPaymentDinersClub; diff --git a/src/Icons/jsx/PaymentDiscover.tsx b/src/Icons/jsx/PaymentDiscover.tsx index a7dbaf2..8fc892c 100644 --- a/src/Icons/jsx/PaymentDiscover.tsx +++ b/src/Icons/jsx/PaymentDiscover.tsx @@ -1,66 +1,116 @@ import * as React from 'react'; -const SvgPaymentDiscover = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +function SvgPaymentDiscover(props: React.SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - -); + + ); +} export default SvgPaymentDiscover; diff --git a/src/Icons/jsx/PaymentJcb.tsx b/src/Icons/jsx/PaymentJcb.tsx index da12fc2..a3db90b 100644 --- a/src/Icons/jsx/PaymentJcb.tsx +++ b/src/Icons/jsx/PaymentJcb.tsx @@ -1,94 +1,151 @@ import * as React from 'react'; -const SvgPaymentJcb = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - -); + + ); +} export default SvgPaymentJcb; diff --git a/src/Icons/jsx/PaymentMada.tsx b/src/Icons/jsx/PaymentMada.tsx index 98d367e..df471d9 100644 --- a/src/Icons/jsx/PaymentMada.tsx +++ b/src/Icons/jsx/PaymentMada.tsx @@ -1,55 +1,31 @@ import * as React from 'react'; -const SvgPaymentMada = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - -); +function SvgPaymentMada(props: React.SVGProps) { + return ( + + + + + + + + + + + + + + + + + ); +} export default SvgPaymentMada; diff --git a/src/Icons/jsx/PaymentMaestro.tsx b/src/Icons/jsx/PaymentMaestro.tsx index c95362f..cecd119 100644 --- a/src/Icons/jsx/PaymentMaestro.tsx +++ b/src/Icons/jsx/PaymentMaestro.tsx @@ -1,47 +1,74 @@ import * as React from 'react'; -const SvgPaymentMaestro = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - ) { + return ( + + + + + + + + + + + + + + + + + + + + + + + - - -); + + ); +} export default SvgPaymentMaestro; diff --git a/src/Icons/jsx/PaymentMaster.tsx b/src/Icons/jsx/PaymentMaster.tsx index b77e018..fcb8552 100644 --- a/src/Icons/jsx/PaymentMaster.tsx +++ b/src/Icons/jsx/PaymentMaster.tsx @@ -1,36 +1,57 @@ import * as React from 'react'; -const SvgPaymentMaster = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - -); +function SvgPaymentMaster(props: React.SVGProps) { + return ( + + + + + + + + + + + + + + + + + ); +} export default SvgPaymentMaster; diff --git a/src/Icons/jsx/PaymentPaypal.tsx b/src/Icons/jsx/PaymentPaypal.tsx index db4526f..b9dbfe2 100644 --- a/src/Icons/jsx/PaymentPaypal.tsx +++ b/src/Icons/jsx/PaymentPaypal.tsx @@ -1,58 +1,101 @@ import * as React from 'react'; -const SvgPaymentPaypal = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); +function SvgPaymentPaypal(props: React.SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} export default SvgPaymentPaypal; diff --git a/src/Icons/jsx/PaymentUnionPay.tsx b/src/Icons/jsx/PaymentUnionPay.tsx index 9fb2b77..0428698 100644 --- a/src/Icons/jsx/PaymentUnionPay.tsx +++ b/src/Icons/jsx/PaymentUnionPay.tsx @@ -1,74 +1,110 @@ import * as React from 'react'; -const SvgPaymentUnionPay = (props: React.SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - +function SvgPaymentUnionPay(props: React.SVGProps) { + return ( + + + + + + + + + + + + + + + + + + - + + - - + + + + + + + + - - -); + + ); +} export default SvgPaymentUnionPay; diff --git a/src/Icons/jsx/PaymentVisa.tsx b/src/Icons/jsx/PaymentVisa.tsx index 0689cc1..5442a00 100644 --- a/src/Icons/jsx/PaymentVisa.tsx +++ b/src/Icons/jsx/PaymentVisa.tsx @@ -1,21 +1,42 @@ import * as React from 'react'; -const SvgPaymentVisa = (props: React.SVGProps) => ( - - - - - - - - - - - - -); +function SvgPaymentVisa(props: React.SVGProps) { + return ( + + + + + + + + + + + + + ); +} export default SvgPaymentVisa; diff --git a/src/Icons/jsx/PlayIcon.tsx b/src/Icons/jsx/PlayIcon.tsx index 9d13e92..1c3dfdb 100644 --- a/src/Icons/jsx/PlayIcon.tsx +++ b/src/Icons/jsx/PlayIcon.tsx @@ -1,9 +1,17 @@ import * as React from 'react'; -const SvgPlayIcon = (props: React.SVGProps) => ( - - - -); +function SvgPlayIcon(props: React.SVGProps) { + return ( + + + + ); +} export default SvgPlayIcon; diff --git a/src/Icons/jsx/PlusIcon.tsx b/src/Icons/jsx/PlusIcon.tsx index 109f979..58acc73 100644 --- a/src/Icons/jsx/PlusIcon.tsx +++ b/src/Icons/jsx/PlusIcon.tsx @@ -1,15 +1,23 @@ import * as React from 'react'; -const SvgPlusIcon = (props: React.SVGProps) => ( - - - - - - -); +function SvgPlusIcon(props: React.SVGProps) { + return ( + + + + + + + ); +} export default SvgPlusIcon; diff --git a/src/Icons/jsx/Refresh.tsx b/src/Icons/jsx/Refresh.tsx index 3a42a8f..f37be97 100644 --- a/src/Icons/jsx/Refresh.tsx +++ b/src/Icons/jsx/Refresh.tsx @@ -1,9 +1,17 @@ import * as React from 'react'; -const SvgRefresh = (props: React.SVGProps) => ( - - - -); +function SvgRefresh(props: React.SVGProps) { + return ( + + + + ); +} export default SvgRefresh; diff --git a/src/Icons/jsx/RefreshingIcon.tsx b/src/Icons/jsx/RefreshingIcon.tsx index b2fb316..cd1567b 100644 --- a/src/Icons/jsx/RefreshingIcon.tsx +++ b/src/Icons/jsx/RefreshingIcon.tsx @@ -1,25 +1,33 @@ import * as React from 'react'; -const SvgRefreshingIcon = (props: React.SVGProps) => ( - - - - - - - -); +function SvgRefreshingIcon(props: React.SVGProps) { + return ( + + + + + + + + ); +} export default SvgRefreshingIcon; diff --git a/src/Icons/jsx/SearchIcon.tsx b/src/Icons/jsx/SearchIcon.tsx index e4b2c71..dd179a5 100644 --- a/src/Icons/jsx/SearchIcon.tsx +++ b/src/Icons/jsx/SearchIcon.tsx @@ -1,30 +1,32 @@ import * as React from 'react'; -const SvgSearchIcon = (props: React.SVGProps) => ( - - - - - - - - - - - +function SvgSearchIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + - - -); + + ); +} export default SvgSearchIcon; diff --git a/src/Icons/jsx/SettingsIcon.tsx b/src/Icons/jsx/SettingsIcon.tsx index f44da87..25c01b6 100644 --- a/src/Icons/jsx/SettingsIcon.tsx +++ b/src/Icons/jsx/SettingsIcon.tsx @@ -1,32 +1,34 @@ import * as React from 'react'; -const SvgSettingsIcon = (props: React.SVGProps) => ( - - - - - - - - - - - - +function SvgSettingsIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + + - - -); + + ); +} export default SvgSettingsIcon; diff --git a/src/Icons/jsx/StoreIcon.tsx b/src/Icons/jsx/StoreIcon.tsx index 5d5e54d..4b90126 100644 --- a/src/Icons/jsx/StoreIcon.tsx +++ b/src/Icons/jsx/StoreIcon.tsx @@ -1,30 +1,32 @@ import * as React from 'react'; -const SvgStoreIcon = (props: React.SVGProps) => ( - - - - - - - - - - - +function SvgStoreIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + - - -); + + ); +} export default SvgStoreIcon; diff --git a/src/Icons/jsx/UserIcon.tsx b/src/Icons/jsx/UserIcon.tsx index e9cb423..f0f8680 100644 --- a/src/Icons/jsx/UserIcon.tsx +++ b/src/Icons/jsx/UserIcon.tsx @@ -1,32 +1,34 @@ import * as React from 'react'; -const SvgUserIcon = (props: React.SVGProps) => ( - - - - - - - - - - - - +function SvgUserIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + + - - -); + + ); +} export default SvgUserIcon; diff --git a/src/Icons/jsx/WarningIcon.tsx b/src/Icons/jsx/WarningIcon.tsx index 4221947..a73dd21 100644 --- a/src/Icons/jsx/WarningIcon.tsx +++ b/src/Icons/jsx/WarningIcon.tsx @@ -1,30 +1,32 @@ import * as React from 'react'; -const SvgWarningIcon = (props: React.SVGProps) => ( - - - - - - - - - - - +function SvgWarningIcon(props: React.SVGProps) { + return ( + + + + + + + + + + + + - - -); + + ); +} export default SvgWarningIcon; diff --git a/src/Input/Input.tsx b/src/Input/Input.tsx index d8930d8..0167e1d 100644 --- a/src/Input/Input.tsx +++ b/src/Input/Input.tsx @@ -9,10 +9,11 @@ import React, { KeyboardEvent, } from 'react'; import cx from 'clsx'; -import Clipboard from '../Clipboard/Clipboard'; -import { isAutofill } from '../helpers'; import Hint from '../Hint/Hint'; +import Clipboard from '../Clipboard/Clipboard'; import { Error as InputError, InputValueType } from '../types'; +import { isAutofill } from '../helpers'; + export interface InputProps extends Omit, 'onChange'> { scale?: 'medium' | 'small' | 'big'; @@ -25,15 +26,13 @@ export interface InputProps extends Omit, currency?: string; formatOnEvent?: 'blur' | 'input'; format?: (value: InputValueType) => InputValueType; - onChange?: (value: InputValueType, event?: React.ChangeEvent) => void; + onChange?: (value:InputValueType, event?: React.ChangeEvent) => void; onCopyEvent?: (value: InputValueType) => void; onAutofill?: () => void; clipboard?: boolean | string | React.ReactElement; } -const CURRENCY_MAX_LEAGTH = 3; -// eslint-disable-next-line complexity const Input = forwardRef((props, ref) => { const { type = 'text', @@ -66,9 +65,9 @@ const Input = forwardRef((props, ref) => { '-big': scale === 'big', }); - const Component = multiline ? 'textarea' : ('input' as ElementType); + const Component = multiline ? 'textarea' : 'input' as ElementType; const showHintError = error && typeof error !== 'boolean'; - const inputValue = !isDirtyRef.current ? format?.(value ?? '') ?? value : value; + const inputValue = !isDirtyRef.current ? (format?.(value ?? '') ?? value) : value; const inputClassNames = cx(className, { '-with-action': action, '-with-currency': currency, @@ -76,14 +75,18 @@ const Input = forwardRef((props, ref) => { '-with-clipboard': clipboard, }); - const componentProps: ObjectLiteral = { + const componentProps: any = { className: inputClassNames, ...(Component === 'input' && { type }), }; - if (currency && currency.length > CURRENCY_MAX_LEAGTH) throw Error('currency characters must not exceed 3'); + if (currency && currency.length > 3) { + throw Error('currency characters must not exceed 3'); + } - if (action && currency) throw Error('action and currency cannot be set at the same time'); + if (action && currency) { + throw Error('action and currency cannot be set at the same time'); + } const setRef = (element: HTMLInputElement) => { if (typeof ref === 'function') ref(element); @@ -95,15 +98,16 @@ const Input = forwardRef((props, ref) => { const handleChange = (event: React.ChangeEvent) => { if (!isDirtyRef.current) isDirtyRef.current = true; - const currentInputValue = (event.target as HTMLInputElement).value; - - onChange?.(currentInputValue, event); + const inputValue = (event.target as HTMLInputElement).value; + onChange?.(inputValue, event); }; const handleKeyUp = (event: KeyboardEvent) => { const isAutofillDetected = isAutofill(event); - if (isAutofillDetected) onAutofill?.(); + if (isAutofillDetected) { + onAutofill?.(); + } }; useEffect(() => { @@ -112,9 +116,8 @@ const Input = forwardRef((props, ref) => { if (!formatOnEvent || !input) return () => {}; const handleFormatOnEvent = (event: InputEvent | FocusEvent) => { - const currentInputValue = (event.target as HTMLInputElement).value; - - onChange?.(format?.(currentInputValue) ?? currentInputValue); + const inputValue = (event.target as HTMLInputElement).value; + onChange?.(format?.(inputValue) ?? inputValue); }; input.addEventListener(formatOnEvent, handleFormatOnEvent as EventListener); @@ -126,12 +129,7 @@ const Input = forwardRef((props, ref) => { return ( ); }); diff --git a/src/Label/Label.tsx b/src/Label/Label.tsx index aea7d92..b006fce 100644 --- a/src/Label/Label.tsx +++ b/src/Label/Label.tsx @@ -1,15 +1,14 @@ import React, { FC, HTMLAttributes } from 'react'; import cx from 'clsx'; -export interface LabelProps extends HTMLAttributes {} +export interface LabelProps extends HTMLAttributes { +} const Label: FC> = (props) => { const { className, children, ...other } = props; return ( -
- {children} -
+
{children}
); }; diff --git a/src/LanguageIcon/LanguageIcon.tsx b/src/LanguageIcon/LanguageIcon.tsx index c87320a..745260d 100644 --- a/src/LanguageIcon/LanguageIcon.tsx +++ b/src/LanguageIcon/LanguageIcon.tsx @@ -13,32 +13,45 @@ import LanguageTr from '../Icons/jsx/LanguageTr'; import LanguageUk from '../Icons/jsx/LanguageUk'; import LanguageZh from '../Icons/jsx/LanguageZh'; -const LanguageIcons = { - en: LanguageEn, - de: LanguageDe, - es: LanguageEs, - fr: LanguageFr, - it: LanguageIt, - ja: LanguageJa, - ko: LanguageKo, - nl: LanguageNl, - pl: LanguagePl, - pt: LanguagePt, - tr: LanguageTr, - uk: LanguageUk, - zh: LanguageZh, -}; - export interface LanguageIconProps extends HTMLAttributes { - language?: keyof typeof LanguageIcons; + language?: string; } -const LanguageIcon: FC> = (props) => { +const LanguageIcon: FC> = ( + props, +) => { const { language, ...other } = props; - const Component = language ? LanguageIcons[language] : LanguageEn; - - return ; + switch (language) { + case 'en': + return ; + case 'de': + return ; + case 'es': + return ; + case 'fr': + return ; + case 'it': + return ; + case 'ja': + return ; + case 'ko': + return ; + case 'nl': + return ; + case 'pl': + return ; + case 'pt': + return ; + case 'tr': + return ; + case 'uk': + return ; + case 'zh': + return ; + default: + return ; + } }; export default LanguageIcon; diff --git a/src/LanguageSwitcher/LanguageSwitcher.tsx b/src/LanguageSwitcher/LanguageSwitcher.tsx index 671956a..f90d2f1 100644 --- a/src/LanguageSwitcher/LanguageSwitcher.tsx +++ b/src/LanguageSwitcher/LanguageSwitcher.tsx @@ -1,42 +1,61 @@ import React, { FC, HTMLAttributes } from 'react'; import cx from 'clsx'; -import DropdownIcon from '../Icons/jsx/DropdownIcon'; import LanguageIcon from '../LanguageIcon/LanguageIcon'; +import DropdownIcon from '../Icons/jsx/DropdownIcon'; -const LocaleNames = { - en: 'English', - de: 'Deutsch', - es: 'Español', - fr: 'Français', - it: 'Italiano', - ja: '日本語', - ko: '한국어', - nl: 'Dutch', - pl: 'Polski', - pt: 'Português do Brasil', - tr: 'Turkish', - uk: 'Українська', - zh: '繁體中文', -}; - -export type SupportedLocale = keyof typeof LocaleNames; - -const getLocaleName = (locale: SupportedLocale) => { - return LocaleNames[locale] || ''; +const getLocaleName = (locale: string) => { + switch (locale) { + case 'en': + return 'English'; + case 'de': + return 'Deutsch'; + case 'es': + return 'Español'; + case 'fr': + return 'Français'; + case 'it': + return 'Italiano'; + case 'ja': + return '日本語'; + case 'ko': + return '한국어'; + case 'nl': + return 'Dutch'; + case 'pl': + return 'Polski'; + case 'pt': + return 'Português do Brasil'; + case 'tr': + return 'Turkish'; + case 'uk': + return 'Українська'; + case 'zh': + return '繁體中文'; + default: + return ''; + } }; -export interface LanguageSwitcherProps extends HTMLAttributes { - currentLanguage: SupportedLocale; - availableLanguages: SupportedLocale[]; +export interface LanguageSwitcherProps + extends HTMLAttributes { + currentLanguage: string; + availableLanguages: string[]; } -const LanguageSwitcher: FC> = (props) => { +const LanguageSwitcher: FC> = ( + props, +) => { const { currentLanguage, availableLanguages, className, ...other } = props; return (
- -
{getLocaleName(currentLanguage)}
+ +
+ {getLocaleName(currentLanguage)} +
- {showHintError && ( - - {error} - - )} + {showHintError && {error}} ); }; diff --git a/src/Notification/Notification.tsx b/src/Notification/Notification.tsx index b4b3519..6468dd6 100644 --- a/src/Notification/Notification.tsx +++ b/src/Notification/Notification.tsx @@ -1,9 +1,9 @@ import React, { FC } from 'react'; import { ToastContainer, toast, cssTransition } from 'react-toastify'; import Button from '../Button/Button'; -import BlockIcon from '../Icons/jsx/BlockIcon'; -import CheckIcon from '../Icons/jsx/CheckIcon'; import CloseIcon from '../Icons/jsx/CloseIcon'; +import CheckIcon from '../Icons/jsx/CheckIcon'; +import BlockIcon from '../Icons/jsx/BlockIcon'; type NotificationType = 'success' | 'error'; @@ -34,12 +34,17 @@ const Notification: FC> = ({ type, childre ); const NotificationsContainer: FC> = () => ( - + ); export default NotificationsContainer; -export const notify = (text: string | React.ReactNode, type: NotificationType) => { +export function notify(text: string | React.ReactNode, type: NotificationType) { toast({text}, { draggable: true, draggablePercent: 60, @@ -49,4 +54,4 @@ export const notify = (text: string | React.ReactNode, type: NotificationType) = }); return null; -}; +} diff --git a/src/Pagination/NextComponent.tsx b/src/Pagination/NextComponent.tsx deleted file mode 100644 index 7064c11..0000000 --- a/src/Pagination/NextComponent.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import React, { DetailedReactHTMLElement, FC } from 'react'; -import cx from 'clsx'; -import BackIcon from '../Icons/jsx/BackIcon'; - -export interface NextComponentProps { - currentPage: number; - maxPage: number; - renderItem: (n: number) => DetailedReactHTMLElement<{ children: JSX.Element; className: string }, HTMLElement>; - nextLabel: string; -} - -const NextComponent: FC = ({ currentPage, maxPage, renderItem, nextLabel }) => { - const isEnabled = currentPage < maxPage; - const element = isEnabled ? renderItem(currentPage + 1) : React.createElement('div'); - - return React.cloneElement( - element as DetailedReactHTMLElement<{ children: JSX.Element; className: string }, HTMLElement>, - { - className: cx('pagination-nav', '-next', !isEnabled && '-disabled'), - children: ( - <> - {nextLabel} - - - ), - }, - ); -}; - -export default NextComponent; diff --git a/src/Pagination/Pagination.tsx b/src/Pagination/Pagination.tsx index 12302ab..f1d6d33 100644 --- a/src/Pagination/Pagination.tsx +++ b/src/Pagination/Pagination.tsx @@ -1,29 +1,30 @@ -import React, { DetailedReactHTMLElement, FC, HTMLAttributes } from 'react'; +import React, { FC, HTMLAttributes, ReactElement } from 'react'; import cx from 'clsx'; -import NextComponent from './NextComponent'; -import PrevComponent from './PrevComponent'; +import BackIcon from '../Icons/jsx/BackIcon'; export interface PaginationProps extends HTMLAttributes { - renderItem: (n: number) => DetailedReactHTMLElement<{ children: JSX.Element; className: string }, HTMLElement>; + renderItem: (n: number) => JSX.Element; maxPage: number; currentPage: number; nextLabel?: string; prevLabel?: string; } -const getPageNumbersCapacity = (maxPage: number) => { - // eslint-disable-next-line @typescript-eslint/no-magic-numbers - return maxPage < 7 ? maxPage : 7; -}; - const Pagination: FC> = (props) => { - const { className, currentPage, maxPage, renderItem, prevLabel = 'Previous', nextLabel = 'Next', ...other } = props; + const { + className, + currentPage, + maxPage, + renderItem, + prevLabel = 'Previous', + nextLabel = 'Next', + ...other + } = props; const minPage = 1; const rangeValue = -1; - const pageNumbersCapacity = getPageNumbersCapacity(maxPage); + const pageNumbersCapacity = maxPage < 7 ? maxPage : 7; const pageNumbers = [currentPage]; - // eslint-disable-next-line @typescript-eslint/no-magic-numbers if (maxPage < 2) return null; if (maxPage < currentPage) { @@ -49,29 +50,55 @@ const Pagination: FC> = (props) => { /* insert right range */ if (pageNumbers[pageNumbersCapacity - 1] !== maxPage) { pageNumbers[pageNumbersCapacity - 1] = maxPage; - // eslint-disable-next-line @typescript-eslint/no-magic-numbers pageNumbers[pageNumbersCapacity - 2] = rangeValue; } + function PrevComponent() { + const isEnabled = currentPage > minPage; + const element = isEnabled ? renderItem(currentPage - 1) : React.createElement('div'); + + return React.cloneElement(element as ReactElement, { + className: cx('pagination-nav', '-prev', !isEnabled && '-disabled'), + children: ( + <> + + {prevLabel} + + ), + }); + } + + function NextComponent() { + const isEnabled = currentPage < maxPage; + const element = isEnabled ? renderItem(currentPage + 1) : React.createElement('div'); + + return React.cloneElement(element as ReactElement, { + className: cx('pagination-nav', '-next', !isEnabled && '-disabled'), + children: ( + <> + {nextLabel} + + + ), + }); + } + return (
- + {pageNumbers.map((n, index) => { const key = `${n}-${index}`; - if (n === rangeValue) - return ( -
- ... -
- ); + if (n === rangeValue) { + return
...
; + } return React.cloneElement(renderItem(n), { key, - className: cx('pagination-page', currentPage === n && '-active'), + className: cx('pagination-page', (currentPage === n) && '-active'), }); })} - +
); }; diff --git a/src/Pagination/PrevComponent.tsx b/src/Pagination/PrevComponent.tsx deleted file mode 100644 index 9230a31..0000000 --- a/src/Pagination/PrevComponent.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import React, { DetailedReactHTMLElement, FC } from 'react'; -import cx from 'clsx'; -import BackIcon from '../Icons/jsx/BackIcon'; - -export interface PrevComponentProps { - currentPage: number; - minPage: number; - renderItem: (n: number) => DetailedReactHTMLElement<{ children: JSX.Element; className: string }, HTMLElement>; - prevLabel: string; -} - -const PrevComponent: FC = ({ currentPage, minPage, renderItem, prevLabel }) => { - const isEnabled = currentPage > minPage; - const element = isEnabled ? renderItem(currentPage - 1) : React.createElement('div'); - - return React.cloneElement( - element as DetailedReactHTMLElement<{ children: JSX.Element; className: string }, HTMLElement>, - { - className: cx('pagination-nav', '-prev', !isEnabled && '-disabled'), - children: ( - <> - - {prevLabel} - - ), - }, - ); -}; - -export default PrevComponent; diff --git a/src/Panel/Panel.tsx b/src/Panel/Panel.tsx index 8db5dfd..026408f 100644 --- a/src/Panel/Panel.tsx +++ b/src/Panel/Panel.tsx @@ -9,14 +9,18 @@ export interface PanelProps extends HTMLAttributes> = (props) => { - const { className, outline, children, component = 'div', ...other } = props; + const { + className, + outline, + children, + component = 'div', + ...other + } = props; - const Component = other.href ? 'a' : (component as ElementType); + const Component = other.href ? 'a' : component as ElementType; return ( - - {children} - + {children} ); }; diff --git a/src/Password/Password.tsx b/src/Password/Password.tsx index 120c9a2..f4bf4c3 100644 --- a/src/Password/Password.tsx +++ b/src/Password/Password.tsx @@ -1,6 +1,6 @@ import React, { FC, InputHTMLAttributes, ReactNode, useState } from 'react'; -import Button from '../Button/Button'; import Input from '../Input/Input'; +import Button from '../Button/Button'; import { Error, InputValueType } from '../types'; export interface PasswordProps extends Omit, 'onChange'> { @@ -10,10 +10,12 @@ export interface PasswordProps extends Omit string; onToggle?: () => void; - onChange?: (value: InputValueType, event?: React.ChangeEvent) => void; + onChange?:(value: InputValueType, event?: React.ChangeEvent) => void; } -const i18nToggleDefault = (isPasswordVisible: boolean) => (isPasswordVisible ? 'Hide' : 'Show'); +function i18nToggleDefault(isPasswordVisible: boolean) { + return isPasswordVisible ? 'Hide' : 'Show'; +} const Password: FC> = (props) => { const { withToggle, i18nToggle = i18nToggleDefault, onToggle, ...other } = props; @@ -28,13 +30,11 @@ const Password: FC> = (props) => { - {i18nToggle(passwordVisible)} - - ) - } + action={withToggle && ( + + )} /> ); }; diff --git a/src/Payment/Payment.tsx b/src/Payment/Payment.tsx index 816e6dc..d68fddf 100644 --- a/src/Payment/Payment.tsx +++ b/src/Payment/Payment.tsx @@ -4,9 +4,9 @@ import Card from '../Icons/jsx/PaymentCard'; import DinersClub from '../Icons/jsx/PaymentDinersClub'; import Discover from '../Icons/jsx/PaymentDiscover'; import JCB from '../Icons/jsx/PaymentJcb'; -import Mada from '../Icons/jsx/PaymentMada'; import Maestro from '../Icons/jsx/PaymentMaestro'; import Master from '../Icons/jsx/PaymentMaster'; +import Mada from '../Icons/jsx/PaymentMada'; import PayPal from '../Icons/jsx/PaymentPaypal'; import UnionPay from '../Icons/jsx/PaymentUnionPay'; import Visa from '../Icons/jsx/PaymentVisa'; @@ -22,36 +22,43 @@ const CardType = { Mada: 'mada', DinersClub: 'diners_club', UnionPay: 'unionpay', - // eslint-disable-next-line camelcase - Union_Pay: 'union_pay', + 'Union_Pay': 'union_pay', Paypal: 'paypal', }; -const PaymentComponents = { - [CardType.Master]: Master, - [CardType.Mastercard]: Master, - [CardType.Paypal]: PayPal, - [CardType.Amex]: Amex, - [CardType.DinersClub]: DinersClub, - [CardType.Discover]: Discover, - [CardType.JCB]: JCB, - [CardType.Maestro]: Maestro, - [CardType.UnionPay]: UnionPay, - [CardType.Union_Pay]: UnionPay, - [CardType.Visa]: Visa, - [CardType.Mada]: Mada, -}; - export interface PaymentProps extends HTMLAttributes { type?: typeof CardType[keyof typeof CardType]; } -const Payment: FC> = ({ type, ...other }) => { - const Component = type ? PaymentComponents[type] : null; - - if (Component) return ; +const Payment: FC> = (props) => { + const { type, ...other } = props; - return ; + switch (type) { + case CardType.Paypal: + return ; + case CardType.Amex: + return ; + case CardType.DinersClub: + return ; + case CardType.Discover: + return ; + case CardType.JCB: + return ; + case CardType.Maestro: + return ; + case CardType.UnionPay: + case CardType.Union_Pay: + return ; + case CardType.Visa: + return ; + case CardType.Master: + case CardType.Mastercard: + return ; + case CardType.Mada: + return ; + default: + return ; + } }; export default Payment; diff --git a/src/Radio/Radio.tsx b/src/Radio/Radio.tsx index 6c6a3ae..c2fda05 100644 --- a/src/Radio/Radio.tsx +++ b/src/Radio/Radio.tsx @@ -6,7 +6,12 @@ export interface RadioProps extends InputHTMLAttributes { } const Radio: FC> = (props) => { - const { className, error, children, ...other } = props; + const { + className, + error, + children, + ...other + } = props; return (
); }; - export default TabList; + diff --git a/src/Tag/Tag.tsx b/src/Tag/Tag.tsx index 433950c..f589045 100644 --- a/src/Tag/Tag.tsx +++ b/src/Tag/Tag.tsx @@ -35,4 +35,5 @@ const Tag: FC> = ({ ); }; + export default Tag; diff --git a/src/TagInput/TagInput.tsx b/src/TagInput/TagInput.tsx index 258eea2..16319f5 100644 --- a/src/TagInput/TagInput.tsx +++ b/src/TagInput/TagInput.tsx @@ -1,11 +1,17 @@ /* eslint-disable react-hooks/exhaustive-deps */ -import React, { ReactNode, ChangeEvent, KeyboardEvent, ClipboardEvent, useEffect } from 'react'; +import React, { + ReactNode, + ChangeEvent, + KeyboardEvent, + ClipboardEvent, + useEffect, +} from 'react'; import cx from 'clsx'; -import { uniqId, isAutofill } from '../helpers'; import Hint from '../Hint/Hint'; import Tag, { TagProps } from '../Tag/Tag'; import TagList from '../TagList/TagList'; import { Error } from '../types'; +import { uniqId, isAutofill } from '../helpers'; export interface TagInputListItem { id: string; @@ -89,7 +95,7 @@ const TagInput: React.FC> = ({ }; const handleRemoveTag = (tagId: string) => { - onChange(tags.filter(({ id: currentId }) => tagId !== currentId)); + onChange(tags.filter(({ id }) => tagId !== id)); }; const handleAddTag = async () => { @@ -102,18 +108,15 @@ const TagInput: React.FC> = ({ if (!isUniqueTag) return; - onChange([ - ...tags, - { - id: uniqId(), - value, - }, - ]); + onChange([...tags, { + id: uniqId(), + value, + }]); }; const handleKeyDown = async (event: KeyboardEvent) => { - const isAddEvent = addKeyCodes?.includes(event.code); - const isRemoveEvent = removeKeyCodes?.includes(event.code) && !value && tags.length; + const isAddEvent = addKeyCodes.includes(event.code); + const isRemoveEvent = removeKeyCodes.includes(event.code) && !value && tags.length; if (isAddEvent) { event.preventDefault(); @@ -135,11 +138,15 @@ const TagInput: React.FC> = ({ await handleAddTag(); } - if (isAutofillDetected) onAutofill?.(); + if (isAutofillDetected) { + onAutofill?.(); + } }; const handleBlur = async () => { - if (value && isHandleOnBlur) await handleAddTag(); + if (value && isHandleOnBlur) { + await handleAddTag(); + } onBlur?.(); }; @@ -149,8 +156,8 @@ const TagInput: React.FC> = ({ const clipboardItems = event.clipboardData .getData('text') - .split(clipboardSeparator as RegExp | string) - .map((currentValue: string) => currentValue.trim()) + .split(clipboardSeparator) + .map((value: string) => value.trim()) .filter(Boolean); if (clipboardItems.length === 1) return; @@ -190,20 +197,17 @@ const TagInput: React.FC> = ({ ); }; diff --git a/src/TagList/TagList.tsx b/src/TagList/TagList.tsx index 05488bd..69a4b28 100644 --- a/src/TagList/TagList.tsx +++ b/src/TagList/TagList.tsx @@ -5,7 +5,7 @@ export interface TagListProps extends HTMLAttributes> = ({ className, children, as: Element = 'div', ...other }) => ( +const TagList: FC> = ({ className, children, as: Element = 'div', ...other }) => ( {children} diff --git a/src/Tooltip/Tooltip.tsx b/src/Tooltip/Tooltip.tsx index 3e82bd9..d11521e 100644 --- a/src/Tooltip/Tooltip.tsx +++ b/src/Tooltip/Tooltip.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useRef, useState } from 'react'; -import { FloatingArrow, Placement } from '@floating-ui/react'; import cx from 'clsx'; +import { FloatingArrow, Placement } from '@floating-ui/react'; import useTooltip from './useTooltip.hook'; interface Tooltip { @@ -21,21 +21,35 @@ const Tooltip: React.FC> = ({ forceHide, openOnClick = false, }) => { - const messageStyles = maxWidth ? ({ width: maxWidth } as React.CSSProperties) : {}; + const messageStyles = maxWidth + ? ({ width: maxWidth } as React.CSSProperties) + : {}; const arrowRef = useRef(null); const [isOpen, setIsOpen] = useState(false); - const { setReference, setFloating, getReferenceProps, getFloatingProps, getArrowPosition, floatingStyles, context } = - useTooltip({ isForce: Boolean(forceShow || forceHide), arrowRef, openOnClick, position, isOpen, setIsOpen }); + const { + setReference, + setFloating, + getReferenceProps, + getFloatingProps, + getArrowPosition, + floatingStyles, + context, + } = useTooltip({ isForce: Boolean(forceShow || forceHide), arrowRef, openOnClick, position, isOpen, setIsOpen }); useEffect(() => { setIsOpen(Boolean(forceShow && !forceHide)); }, [forceShow, forceHide]); + return ( <> -
+
{children}
{isOpen && ( diff --git a/src/Tooltip/useTooltip.hook.ts b/src/Tooltip/useTooltip.hook.ts index 7ae6079..7a0f0d1 100644 --- a/src/Tooltip/useTooltip.hook.ts +++ b/src/Tooltip/useTooltip.hook.ts @@ -28,7 +28,7 @@ interface useTooltipProps { setIsOpen: React.Dispatch>; } -interface useTooltip extends Partial { +interface useTooltip extends Partial { setReference: (node: ReferenceType | null) => void; setFloating: (node: HTMLElement | null) => void; getReferenceProps: (userProps?: HTMLProps | undefined) => Record; @@ -38,19 +38,13 @@ interface useTooltip extends Partial { } const useTooltip = ({ isForce, arrowRef, openOnClick, position, isOpen, setIsOpen }: useTooltipProps): useTooltip => { - const { - middlewareData, - refs: { setReference, setFloating }, - floatingStyles, - context, - } = useFloating({ + + const { middlewareData, refs: { setReference, setFloating }, floatingStyles, context } = useFloating({ open: isOpen, - // eslint-disable-next-line no-undefined onOpenChange: isForce ? undefined : setIsOpen, placement: position, whileElementsMounted: autoUpdate, middleware: [ - // eslint-disable-next-line @typescript-eslint/no-magic-numbers offset(8), arrow({ element: arrowRef, @@ -75,30 +69,34 @@ const useTooltip = ({ isForce, arrowRef, openOnClick, position, isOpen, setIsOpe }), }); - // eslint-disable-next-line no-undefined - const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, openOnClick ? click : undefined]); + const { getReferenceProps, getFloatingProps } = useInteractions([ + hover, + focus, + openOnClick ? click : undefined, + ]); const getArrowPosition = useMemo(() => { - const shiftPosition = middlewareData?.shift?.y || middlewareData?.shift?.x || 0; - const arrowPosition = middlewareData?.arrow?.y || middlewareData?.arrow?.x || 0; + const shiftPosition + = middlewareData?.shift?.y || middlewareData?.shift?.x || 0; + const arrowPosition + = middlewareData?.arrow?.y || middlewareData?.arrow?.x || 0; const coordinates = arrowPosition - shiftPosition; - // eslint-disable-next-line @typescript-eslint/no-magic-numbers const overflowSize = (arrowPosition * 2) / shiftPosition; const positionOnOverflow = `${middlewareData?.shift?.x ? '85' : '59'}%`; - // eslint-disable-next-line no-nested-ternary,@typescript-eslint/no-magic-numbers return coordinates < 10 - ? // eslint-disable-next-line @typescript-eslint/no-magic-numbers - 10 - : // eslint-disable-next-line @typescript-eslint/no-magic-numbers - middlewareData?.flip?.overflows?.[0] && overflowSize > -3 && shiftPosition < 0 - ? positionOnOverflow - : coordinates; + ? 10 + : middlewareData?.flip?.overflows?.[0] + && overflowSize > -3 + && shiftPosition < 0 + ? positionOnOverflow + : coordinates; }, [middlewareData.shift, middlewareData.arrow, middlewareData.flip]); - return { + + return ({ setReference, setFloating, getReferenceProps, @@ -106,7 +104,7 @@ const useTooltip = ({ isForce, arrowRef, openOnClick, position, isOpen, setIsOpe getArrowPosition, floatingStyles: { ...floatingStyles, ...styles }, context, - }; + }); }; export default useTooltip; diff --git a/src/global.d.ts b/src/global.d.ts deleted file mode 100644 index 8a5e169..0000000 --- a/src/global.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare global { - interface ObjectLiteral { - [key: string]: unknown; - } -} - -export {}; diff --git a/src/helpers.ts b/src/helpers.ts index b40bdaf..1141864 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -1,27 +1,17 @@ import { KeyboardEvent } from 'react'; +// eslint-disable-next-line import/prefer-default-export export const uniqId = () => { - // eslint-disable-next-line @typescript-eslint/no-magic-numbers const array = new Uint32Array(10); window.crypto.getRandomValues(array); return ( - ( - Date.now() - // eslint-disable-next-line @typescript-eslint/no-magic-numbers - .toString(36) + - Array.from(array) - .map((number) => - number - // eslint-disable-next-line @typescript-eslint/no-magic-numbers - .toString(36), - ) + Date.now().toString(36) + + Array.from(array) + .map((number) => number.toString(36)) .join('') - ).replace(/\./g, '') - ); + ).replace(/\./g, ''); }; -export const isAutofill = (e: KeyboardEvent) => - // eslint-disable-next-line no-undefined - e.key === 'Unidentified' && e.code === undefined && e.view === undefined; +export const isAutofill = (e: KeyboardEvent) => e.key === 'Unidentified' && e.code === undefined && e.view === undefined;