diff --git a/package-lock.json b/package-lock.json index 579f81a76..37684ad31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,8 @@ ], "dependencies": { "@typescript-eslint/utils": "^8.15.0", - "react": "^18.3.1", - "react-dom": "^18.3.1" + "react": "^19.1.1", + "react-dom": "^19.1.1" }, "devDependencies": { "@aabenoja/conventional-changelog-eslint-lerna": "^1.0.2", @@ -32,8 +32,8 @@ "@types/js-beautify": "^1.14.3", "@types/node": "^18.11.17", "@types/prop-types": "^15.7.14", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", + "@types/react": "^19.1.12", + "@types/react-dom": "^19.1.9", "babel-plugin-lodash": "^3.3.4", "commander": "^12.1.0", "commitlint": "^17.3.0", @@ -91,7 +91,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -202,7 +201,6 @@ "version": "7.26.8", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -212,7 +210,6 @@ "version": "7.26.10", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", - "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -259,6 +256,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.25.9" @@ -271,7 +269,6 @@ "version": "7.27.0", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.26.8", @@ -341,6 +338,15 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", @@ -372,7 +378,6 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", @@ -403,6 +408,7 @@ "version": "7.26.5", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -771,6 +777,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" @@ -1574,71 +1581,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.27.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.0.tgz", @@ -1977,26 +1919,6 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/preset-react": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", - "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/preset-typescript": { "version": "7.27.0", "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.0.tgz", @@ -3009,18 +2931,6 @@ "node": ">=6.9.0" } }, - "node_modules/@im-open/react-text-mask": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/@im-open/react-text-mask/-/react-text-mask-5.4.4.tgz", - "integrity": "sha512-yo68xr0gOZOunmduQsYOQrHpZnjpgQcuR8GrP002xIOMBmIZRYjQ8A7ZNhfSex1NN/BNHvN3M5Z1iKa10jNmGw==", - "license": "Unlicense", - "dependencies": { - "prop-types": "^15.5.6" - }, - "peerDependencies": { - "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -6440,72 +6350,22 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.20.tgz", - "integrity": "sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==", + "version": "19.1.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.12.tgz", + "integrity": "sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w==", "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, - "node_modules/@types/react-datepicker": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@types/react-datepicker/-/react-datepicker-6.2.0.tgz", - "integrity": "sha512-+JtO4Fm97WLkJTH8j8/v3Ldh7JCNRwjMYjRaKh4KHH0M3jJoXtwiD3JBCsdlg3tsFIw9eQSqyAPeVDN2H2oM9Q==", - "license": "MIT", - "dependencies": { - "@floating-ui/react": "^0.26.2", - "@types/react": "*", - "date-fns": "^3.3.1" - } - }, - "node_modules/@types/react-datepicker/node_modules/@floating-ui/react": { - "version": "0.26.28", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", - "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", - "license": "MIT", - "dependencies": { - "@floating-ui/react-dom": "^2.1.2", - "@floating-ui/utils": "^0.2.8", - "tabbable": "^6.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@types/react-datepicker/node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@types/react-datepicker/node_modules/date-fns": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, "node_modules/@types/react-dom": { - "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", - "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "version": "19.1.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.9.tgz", + "integrity": "sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==", "dev": true, "license": "MIT", "peerDependencies": { - "@types/react": "^18.0.0" + "@types/react": "^19.0.0" } }, "node_modules/@types/react-modal": { @@ -6537,6 +6397,17 @@ "@types/react": "^18" } }, + "node_modules/@types/react-test-renderer/node_modules/@types/react": { + "version": "18.3.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.24.tgz", + "integrity": "sha512-0dLEBsA1kI3OezMBF8nSsb7Nk19ZnsyE1LLhB8r27KbgU5H4pvuqZLdtE+aUkJVoXgTVuA+iLIwmZ0TuK4tx6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, "node_modules/@types/react-text-mask": { "version": "5.4.14", "resolved": "https://registry.npmjs.org/@types/react-text-mask/-/react-text-mask-5.4.14.tgz", @@ -8805,7 +8676,6 @@ "version": "4.24.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "dev": true, "funding": [ { "type": "opencollective", @@ -9442,7 +9312,6 @@ "version": "1.0.30001707", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz", "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==", - "dev": true, "funding": [ { "type": "opencollective", @@ -10597,7 +10466,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, "license": "MIT" }, "node_modules/cookie": { @@ -11931,7 +11799,6 @@ "version": "1.5.127", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.127.tgz", "integrity": "sha512-Ke5OggqOtEqzCzcUyV+9jgO6L6sv1gQVKGtSExXHjD/FK0p4qzPZbrDsrCdy0DptcQprD0V80RCBYSWLMhTTgQ==", - "dev": true, "license": "ISC" }, "node_modules/emittery": { @@ -12322,7 +12189,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -14146,7 +14012,6 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -18352,7 +18217,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -20342,7 +20206,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^3.0.2" @@ -21687,7 +21550,6 @@ "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, "license": "MIT" }, "node_modules/nopt": { @@ -23640,13 +23502,10 @@ } }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -23674,61 +23533,6 @@ "react": ">=16.3.2" } }, - "node_modules/react-datepicker": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-6.9.0.tgz", - "integrity": "sha512-QTxuzeem7BUfVFWv+g5WuvzT0c5BPo+XTCNbMTZKSZQLU+cMMwSUHwspaxuIcDlwNcOH0tiJ+bh1fJ2yxOGYWA==", - "license": "MIT", - "dependencies": { - "@floating-ui/react": "^0.26.2", - "clsx": "^2.1.0", - "date-fns": "^3.3.1", - "prop-types": "^15.7.2", - "react-onclickoutside": "^6.13.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17 || ^18", - "react-dom": "^16.9.0 || ^17 || ^18" - } - }, - "node_modules/react-datepicker/node_modules/@floating-ui/react": { - "version": "0.26.28", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", - "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", - "license": "MIT", - "dependencies": { - "@floating-ui/react-dom": "^2.1.2", - "@floating-ui/utils": "^0.2.8", - "tabbable": "^6.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/react-datepicker/node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/react-datepicker/node_modules/date-fns": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, "node_modules/react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -23837,16 +23641,15 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.26.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.1.1" } }, "node_modules/react-error-overlay": { @@ -23919,20 +23722,6 @@ "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19" } }, - "node_modules/react-onclickoutside": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.1.tgz", - "integrity": "sha512-LdrrxK/Yh9zbBQdFbMTXPp3dTSN9B+9YJQucdDu3JNKRrbdU+H+/TVONJoWtOwy4II8Sqf1y/DTI6w/vGPYW0w==", - "license": "MIT", - "funding": { - "type": "individual", - "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" - }, - "peerDependencies": { - "react": "^15.5.x || ^16.x || ^17.x || ^18.x", - "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" - } - }, "node_modules/react-overlays": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", @@ -23968,20 +23757,6 @@ "react-dom": "^16.8.0 || ^17 || ^18" } }, - "node_modules/react-shallow-renderer": { - "version": "16.15.0", - "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", - "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-simple-code-editor": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/react-simple-code-editor/-/react-simple-code-editor-0.13.1.tgz", @@ -24298,21 +24073,6 @@ "react": ">= 0.14.0" } }, - "node_modules/react-test-renderer": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.3.1.tgz", - "integrity": "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "react-is": "^18.3.1", - "react-shallow-renderer": "^16.15.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", @@ -25567,13 +25327,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" }, "node_modules/schema-utils": { "version": "4.3.0", @@ -25620,7 +25377,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -27850,7 +27606,6 @@ "version": "5.8.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -28217,7 +27972,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dev": true, "funding": [ { "type": "opencollective", @@ -29241,7 +28995,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, "license": "ISC" }, "node_modules/yaml": { @@ -29335,17 +29088,16 @@ "license": "MIT", "dependencies": { "@babel/helpers": "^7.20.7", - "@babel/preset-react": "^7.22.5", + "@babel/preset-react": "^7.27.1", "@babel/runtime": "^7.20.7", "@babel/runtime-corejs3": "^7.20.7", "@floating-ui/dom": "^1.6.3", "@floating-ui/react": "^0.14.0", "@floating-ui/utils": "^0.2.1", - "@im-open/react-text-mask": "^5.4.4", + "@im-open/react-text-mask": "^5.5.0", "@popperjs/core": "^2.11.6", "@types/lodash": "^4.14.194", "@types/prop-types": "^15.7.14", - "@types/react-datepicker": "^6.0.0", "@types/react-modal": "^3.16.0", "@types/react-text-mask": "^5.4.11", "@types/react-transition-group": "^4.4.5", @@ -29358,7 +29110,7 @@ "get-root-node-polyfill": "^1.0.0", "prop-types": "^15.8.1", "react-animate-height": "^3.2.3", - "react-datepicker": "^6.1.0", + "react-datepicker": "^7.6.0", "react-is": "^18.2.0", "react-modal": "^3.16.1", "react-overlays": "^5.2.1", @@ -29399,8 +29151,8 @@ "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.2", "@types/node": "^18.11.17", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", + "@types/react": "^19.1.12", + "@types/react-dom": "^19.1.9", "@types/react-syntax-highlighter": "^15.5.11", "@types/rewire": "^2.5.28", "ast-types": "^0.14.2", @@ -29433,12 +29185,12 @@ "mochawesome-report-generator": "^6.2.0", "node-fetch": "^3.3.0", "node-forge": "^1.3.1", - "react": "^18.3.1", + "react": "^19.1.1", "react-context-toolbox": "^2.0.2", - "react-dom": "^18.3.1", + "react-dom": "^19.1.1", "react-styleguidist": "^13.1.4", "react-syntax-highlighter": "^15.5.0", - "react-test-renderer": "^18.2.0", + "react-test-renderer": "^19.1.1", "rollup": "^3.8.0", "rollup-plugin-copy": "^3.4.0", "rollup-plugin-generate-html-template": "^1.7.0", @@ -29481,6 +29233,327 @@ "typescript": "^5.7.3" } }, + "packages/es-components/node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/parser": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "packages/es-components/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "packages/es-components/node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "packages/es-components/node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "packages/es-components/node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "packages/es-components/node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "packages/es-components/node_modules/@babel/preset-react": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "packages/es-components/node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/traverse": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@babel/types": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "packages/es-components/node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "packages/es-components/node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "packages/es-components/node_modules/@floating-ui/react-dom": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.4" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "packages/es-components/node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "packages/es-components/node_modules/@im-open/react-text-mask": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@im-open/react-text-mask/-/react-text-mask-5.5.0.tgz", + "integrity": "sha512-ctTCDoTrkjOGC861EaP3eYiMoy/XrGIdtoq8fkmKzIBl9Ellv+TWfhg8erVIgrow8nXovgo0Bh2UvNZQUX6t6Q==", + "license": "Unlicense", + "dependencies": { + "prop-types": "^15.5.6" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "packages/es-components/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "packages/es-components/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "packages/es-components/node_modules/chalk": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", @@ -29494,6 +29567,67 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "packages/es-components/node_modules/react-datepicker": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-7.6.0.tgz", + "integrity": "sha512-9cQH6Z/qa4LrGhzdc3XoHbhrxNcMi9MKjZmYgF/1MNNaJwvdSjv3Xd+jjvrEEbKEf71ZgCA3n7fQbdwd70qCRw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.27.0", + "clsx": "^2.1.1", + "date-fns": "^3.6.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } + }, + "packages/es-components/node_modules/react-datepicker/node_modules/@floating-ui/react": { + "version": "0.27.16", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.16.tgz", + "integrity": "sha512-9O8N4SeG2z++TSM8QA/KTeKFBVCNEz/AGS7gWPJf6KFRzmRWixFRnCnkPHRDwSVZW6QPDO6uT0P2SpWNKCc9/g==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.6", + "@floating-ui/utils": "^0.2.10", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "packages/es-components/node_modules/react-datepicker/node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "packages/es-components/node_modules/react-test-renderer": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-19.1.1.tgz", + "integrity": "sha512-aGRXI+zcBTtg0diHofc7+Vy97nomBs9WHHFY1Csl3iV0x6xucjNYZZAkiVKGiNYUv23ecOex5jE67t8ZzqYObA==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-is": "^19.1.1", + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.1" + } + }, + "packages/es-components/node_modules/react-test-renderer/node_modules/react-is": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.1.tgz", + "integrity": "sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==", + "dev": true, + "license": "MIT" + }, "shared/types": { "name": "es-components-shared-types", "version": "21.7.0-pre-prod.0", diff --git a/package.json b/package.json index 015178f30..46621ec1b 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,8 @@ }, "dependencies": { "@typescript-eslint/utils": "^8.15.0", - "react": "^18.3.1", - "react-dom": "^18.3.1" + "react": "^19.1.1", + "react-dom": "^19.1.1" }, "devDependencies": { "@aabenoja/conventional-changelog-eslint-lerna": "^1.0.2", @@ -52,8 +52,8 @@ "@types/js-beautify": "^1.14.3", "@types/node": "^18.11.17", "@types/prop-types": "^15.7.14", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", + "@types/react": "^19.1.12", + "@types/react-dom": "^19.1.9", "babel-plugin-lodash": "^3.3.4", "commander": "^12.1.0", "commitlint": "^17.3.0", diff --git a/packages/es-components/package.json b/packages/es-components/package.json index 25e20b358..aaa330107 100644 --- a/packages/es-components/package.json +++ b/packages/es-components/package.json @@ -70,8 +70,8 @@ "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.2", "@types/node": "^18.11.17", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", + "@types/react": "^19.1.12", + "@types/react-dom": "^19.1.9", "@types/react-syntax-highlighter": "^15.5.11", "@types/rewire": "^2.5.28", "ast-types": "^0.14.2", @@ -104,12 +104,12 @@ "mochawesome-report-generator": "^6.2.0", "node-fetch": "^3.3.0", "node-forge": "^1.3.1", - "react": "^18.3.1", + "react": "^19.1.1", "react-context-toolbox": "^2.0.2", - "react-dom": "^18.3.1", + "react-dom": "^19.1.1", "react-styleguidist": "^13.1.4", "react-syntax-highlighter": "^15.5.0", - "react-test-renderer": "^18.2.0", + "react-test-renderer": "^19.1.1", "rollup": "^3.8.0", "rollup-plugin-copy": "^3.4.0", "rollup-plugin-generate-html-template": "^1.7.0", @@ -127,17 +127,16 @@ }, "dependencies": { "@babel/helpers": "^7.20.7", - "@babel/preset-react": "^7.22.5", + "@babel/preset-react": "^7.27.1", "@babel/runtime": "^7.20.7", "@babel/runtime-corejs3": "^7.20.7", "@floating-ui/dom": "^1.6.3", "@floating-ui/react": "^0.14.0", "@floating-ui/utils": "^0.2.1", - "@im-open/react-text-mask": "^5.4.4", + "@im-open/react-text-mask": "^5.5.0", "@popperjs/core": "^2.11.6", "@types/lodash": "^4.14.194", "@types/prop-types": "^15.7.14", - "@types/react-datepicker": "^6.0.0", "@types/react-modal": "^3.16.0", "@types/react-text-mask": "^5.4.11", "@types/react-transition-group": "^4.4.5", @@ -150,7 +149,7 @@ "get-root-node-polyfill": "^1.0.0", "prop-types": "^15.8.1", "react-animate-height": "^3.2.3", - "react-datepicker": "^6.1.0", + "react-datepicker": "^7.6.0", "react-is": "^18.2.0", "react-modal": "^3.16.1", "react-overlays": "^5.2.1", diff --git a/packages/es-components/src/components/base/icons/FullColorIcon.tsx b/packages/es-components/src/components/base/icons/FullColorIcon.tsx index 51823985c..3d72949ed 100644 --- a/packages/es-components/src/components/base/icons/FullColorIcon.tsx +++ b/packages/es-components/src/components/base/icons/FullColorIcon.tsx @@ -53,8 +53,4 @@ FullColorIcon.propTypes = { size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) }; -FullColorIcon.defaultProps = { - size: undefined -}; - export default FullColorIcon; diff --git a/packages/es-components/src/components/base/spinner/Spinner.tsx b/packages/es-components/src/components/base/spinner/Spinner.tsx index adb31f319..740bb2f9f 100755 --- a/packages/es-components/src/components/base/spinner/Spinner.tsx +++ b/packages/es-components/src/components/base/spinner/Spinner.tsx @@ -99,7 +99,7 @@ export type SpinnerProps = RequireAtLeastOne< JSXElementProps<'svg'>; const Spinner = React.forwardRef( - function ForwardedSpinner({ title, description, ...other }, ref) { + function ForwardedSpinner({ title = '', description = '', ...other }, ref) { const propId = other.id || ''; const generatedId = `${useUniqueId(propId)}-title`; const generatedDesc = `${useUniqueId(propId)}-desc`; @@ -152,9 +152,4 @@ Spinner.propTypes = { description: descriptionTitleProp }; -Spinner.defaultProps = { - title: '', - description: '' -}; - export default Spinner; diff --git a/packages/es-components/src/components/containers/drawer/Drawer.tsx b/packages/es-components/src/components/containers/drawer/Drawer.tsx index ce2575512..44cc3c402 100755 --- a/packages/es-components/src/components/containers/drawer/Drawer.tsx +++ b/packages/es-components/src/components/containers/drawer/Drawer.tsx @@ -224,18 +224,6 @@ Drawer.propTypes = { useDefaultStyles: PropTypes.bool }; -Drawer.defaultProps = { - activeKeys: undefined, - isAccordion: false, - closedIconName: 'add', - openedIconName: 'minus', - children: undefined, - useDefaultStyles: true, - onActiveKeysChanged: () => { - // noop - } -}; - type DrawerComponent = DrawerComponentType & { Panel: typeof DrawerPanel; Item: typeof DrawerItem; diff --git a/packages/es-components/src/components/containers/drawer/DrawerPanel.tsx b/packages/es-components/src/components/containers/drawer/DrawerPanel.tsx index d34ef4d25..f7158105e 100755 --- a/packages/es-components/src/components/containers/drawer/DrawerPanel.tsx +++ b/packages/es-components/src/components/containers/drawer/DrawerPanel.tsx @@ -106,7 +106,7 @@ const DrawerPanel = React.forwardRef( }, ref ) { - const buttonRef = useRef() as React.MutableRefObject; + const buttonRef = useRef(null); useImperativeHandle(ref, () => ({ focusHeaderButton: () => buttonRef.current?.focus() })); @@ -145,39 +145,4 @@ const DrawerPanel = React.forwardRef( } ); -export const propTypes = { - ...(PanelWrapper.propTypes || {}), - children: PropTypes.node.isRequired, - /** Title text displayed next to the open/close icon */ - title: PropTypes.node.isRequired, - /** Aside text/content displayed on the right side of the panel title */ - titleAside: PropTypes.node, - /** Removes the default padding from the panel body */ - noPadding: PropTypes.bool, - /** Set desired aria-level for heading */ - - headingLevel: Heading.propTypes!.level, - open: PropTypes.bool, - - // INTERNAL PROPS - /** @ignore */ - closedIconName: PropTypes.oneOf([...iconNames]), - /** @ignore */ - openedIconName: PropTypes.oneOf([...iconNames]), - /** @ignore */ - panelKey: PropTypes.string -}; - -DrawerPanel.propTypes = propTypes; -DrawerPanel.defaultProps = { - ...(PanelWrapper.defaultProps || {}), - noPadding: false, - titleAside: undefined, - headingLevel: 2, - panelKey: undefined, - open: undefined, - closedIconName: 'add', - openedIconName: 'minus' -}; - export default DrawerPanel; diff --git a/packages/es-components/src/components/containers/fieldset/Fieldset.tsx b/packages/es-components/src/components/containers/fieldset/Fieldset.tsx index 7d2ad399b..464c96170 100755 --- a/packages/es-components/src/components/containers/fieldset/Fieldset.tsx +++ b/packages/es-components/src/components/containers/fieldset/Fieldset.tsx @@ -8,7 +8,7 @@ import OrientationContext, { } from '../../controls/OrientationContext'; import isBool from '../../util/isBool'; -type FieldsetProps = Omit & { +type FieldsetProps = Omit & { legendContent?: React.ReactNode | undefined; orientation?: Orientation | undefined; flat?: boolean | undefined; @@ -54,7 +54,13 @@ const Legend = styled.legend` const Fieldset = React.forwardRef( function ForwardedFieldset( - { legendContent, children, orientation: orientationProp, flat, ...other }, + { + legendContent = null, + children, + orientation: orientationProp, + flat, + ...other + }, ref ) { const orientation = useContext(OrientationContext); @@ -87,13 +93,6 @@ Fieldset.propTypes = { children: PropTypes.node }; -Fieldset.defaultProps = { - orientation: undefined, - legendContent: null, - flat: undefined, - children: undefined -}; - (Fieldset as FieldsetComponent).Legend = Legend; export default Fieldset as FieldsetComponent; diff --git a/packages/es-components/src/components/containers/form/Form.tsx b/packages/es-components/src/components/containers/form/Form.tsx index dded0f0f9..8ddd7cf0b 100644 --- a/packages/es-components/src/components/containers/form/Form.tsx +++ b/packages/es-components/src/components/containers/form/Form.tsx @@ -59,7 +59,3 @@ Form.propTypes = { /** Apply the Flat Style to all children */ flat: PropTypes.bool }; - -Form.defaultProps = { - flat: undefined -}; diff --git a/packages/es-components/src/components/containers/horizontalScrollWrapper/HorizontalScrollWrapper.tsx b/packages/es-components/src/components/containers/horizontalScrollWrapper/HorizontalScrollWrapper.tsx index dfd977914..a9f1d2aa1 100755 --- a/packages/es-components/src/components/containers/horizontalScrollWrapper/HorizontalScrollWrapper.tsx +++ b/packages/es-components/src/components/containers/horizontalScrollWrapper/HorizontalScrollWrapper.tsx @@ -317,10 +317,6 @@ HorizontalScrollWrapper.propTypes = { slideAmount: PropTypes.number }; -HorizontalScrollWrapper.defaultProps = { - slideAmount: 300 -}; - export default withWindowSize( HorizontalScrollWrapper ); diff --git a/packages/es-components/src/components/containers/loading-skeleton/LoadingSkeleton.tsx b/packages/es-components/src/components/containers/loading-skeleton/LoadingSkeleton.tsx index 56e6d2447..600a7aba4 100755 --- a/packages/es-components/src/components/containers/loading-skeleton/LoadingSkeleton.tsx +++ b/packages/es-components/src/components/containers/loading-skeleton/LoadingSkeleton.tsx @@ -77,7 +77,7 @@ export type LoadingSkeletonProps = JSXElementProps<'div'> & { const LoadingSkeleton = React.forwardRef( function ForwardedLoadingSkeleton( - { shapeColor, shimmerColor, ...props }, + { shapeColor = '', shimmerColor = '', ...props }, ref ) { const theme = useTheme() as SkeletonTheme; @@ -98,11 +98,6 @@ LoadingSkeleton.propTypes = { shimmerColor: PropTypes.string }; -LoadingSkeleton.defaultProps = { - shapeColor: '', - shimmerColor: '' -}; - type LoadingSkeletonComponent = typeof LoadingSkeleton & { Shape: typeof SkeletonShape; }; diff --git a/packages/es-components/src/components/containers/menu/MenuPanel.tsx b/packages/es-components/src/components/containers/menu/MenuPanel.tsx index 1d03c287e..1755f7391 100644 --- a/packages/es-components/src/components/containers/menu/MenuPanel.tsx +++ b/packages/es-components/src/components/containers/menu/MenuPanel.tsx @@ -55,7 +55,7 @@ type MenuPanelProps = JSXElementProps<'div'> & { const MenuPanel = React.forwardRef( function ForwardedMenuPanel( - { children, headerContent, isOpen, onClose, ...other }, + { children, headerContent = null, isOpen = false, onClose, ...other }, ref ) { const getTopIndex = useTopZIndex(); @@ -111,9 +111,4 @@ MenuPanel.propTypes = { onClose: PropTypes.func.isRequired }; -MenuPanel.defaultProps = { - headerContent: null, - isOpen: false -}; - export default MenuPanel; diff --git a/packages/es-components/src/components/containers/menu/MenuSection.tsx b/packages/es-components/src/components/containers/menu/MenuSection.tsx index b20ced7dd..3c77d5ecd 100644 --- a/packages/es-components/src/components/containers/menu/MenuSection.tsx +++ b/packages/es-components/src/components/containers/menu/MenuSection.tsx @@ -38,7 +38,14 @@ const StyledChildrenContainer = styled.section` const MenuSection = React.forwardRef( function MenuSection(props, ref) { - const { title, children, isLast, isFirst, isOnlySection, ...other } = props; + const { + title, + children, + isLast = false, + isFirst = false, + isOnlySection = false, + ...other + } = props; const inline = useContext(InlineContext); return ( @@ -67,12 +74,4 @@ MenuSection.propTypes = { isOnlySection: PropTypes.bool }; -MenuSection.defaultProps = { - title: undefined, - children: undefined, - isLast: false, - isFirst: false, - isOnlySection: false -}; - export default MenuSection; diff --git a/packages/es-components/src/components/containers/modal/ModalHeader.tsx b/packages/es-components/src/components/containers/modal/ModalHeader.tsx index 9c67b4252..454564e39 100644 --- a/packages/es-components/src/components/containers/modal/ModalHeader.tsx +++ b/packages/es-components/src/components/containers/modal/ModalHeader.tsx @@ -8,7 +8,7 @@ import Heading from '../heading/Heading'; import { HeadingLevel, headingLevel } from 'es-components-shared-types'; const DismissButton = OrigDismissButton as React.ForwardRefExoticComponent< - JSX.IntrinsicElements['button'] + React.JSX.IntrinsicElements['button'] >; // Note: ModalHeader relies on a parent (Modal) with ThemeProvider wrapping it diff --git a/packages/es-components/src/components/containers/notification/LightNotification.tsx b/packages/es-components/src/components/containers/notification/LightNotification.tsx index 6c746c73f..a7bad2df5 100644 --- a/packages/es-components/src/components/containers/notification/LightNotification.tsx +++ b/packages/es-components/src/components/containers/notification/LightNotification.tsx @@ -8,8 +8,15 @@ import { BaseNotification, BaseNotificationProps } from './BaseNotification'; const LightNotification = React.forwardRef< HTMLDivElement, BaseNotificationProps ->(function LightNotification(props, ref) { - return ; +>(function LightNotification({ onDismiss = noop, ...props }, ref) { + return ( + + ); }); LightNotification.propTypes = { @@ -25,11 +32,4 @@ LightNotification.propTypes = { alwaysShowIcon: PropTypes.bool }; -LightNotification.defaultProps = { - includeIcon: false, - isDismissable: false, - onDismiss: noop, - alwaysShowIcon: false -}; - export default LightNotification; diff --git a/packages/es-components/src/components/containers/notification/Message.tsx b/packages/es-components/src/components/containers/notification/Message.tsx index 2269a2678..4d1a0a68f 100644 --- a/packages/es-components/src/components/containers/notification/Message.tsx +++ b/packages/es-components/src/components/containers/notification/Message.tsx @@ -12,10 +12,6 @@ const propTypes = { text: PropTypes.node.isRequired }; -const defaultProps = { - emphasizedText: undefined -}; - export const InlineMessage = React.forwardRef( function ForwardedInlineMessage(props, ref) { return ; @@ -23,7 +19,6 @@ export const InlineMessage = React.forwardRef( ); InlineMessage.propTypes = propTypes; -InlineMessage.defaultProps = defaultProps; export const Message = React.forwardRef( function Message({ emphasizedText, text, isInline, ...rest }, ref) { @@ -44,4 +39,3 @@ export const Message = React.forwardRef( ); Message.propTypes = propTypes; -Message.defaultProps = defaultProps; diff --git a/packages/es-components/src/components/containers/notification/MessageNotification.tsx b/packages/es-components/src/components/containers/notification/MessageNotification.tsx index 7db63ac09..948fe2188 100644 --- a/packages/es-components/src/components/containers/notification/MessageNotification.tsx +++ b/packages/es-components/src/components/containers/notification/MessageNotification.tsx @@ -8,8 +8,15 @@ import { validationStyleTypes } from 'es-components-shared-types'; const MessageNotification = React.forwardRef< HTMLDivElement, BaseNotificationProps ->(function ForwardedMessageNotification(props, ref) { - return ; +>(function ForwardedMessageNotification({ onDismiss = noop, ...props }, ref) { + return ( + + ); }); MessageNotification.propTypes = { @@ -25,11 +32,4 @@ MessageNotification.propTypes = { alwaysShowIcon: PropTypes.bool }; -MessageNotification.defaultProps = { - includeIcon: false, - isDismissable: false, - onDismiss: noop, - alwaysShowIcon: false -}; - export default MessageNotification; diff --git a/packages/es-components/src/components/containers/popover/Popover.tsx b/packages/es-components/src/components/containers/popover/Popover.tsx index f015a525a..5ee76e101 100644 --- a/packages/es-components/src/components/containers/popover/Popover.tsx +++ b/packages/es-components/src/components/containers/popover/Popover.tsx @@ -10,7 +10,7 @@ import { Placement } from '@floating-ui/react'; const Button = OriginalButton as ReturnType< typeof React.forwardRef< HTMLElement | undefined, - JSX.IntrinsicElements['button'] + React.JSX.IntrinsicElements['button'] > >; diff --git a/packages/es-components/src/components/containers/tabPanels/Tab.tsx b/packages/es-components/src/components/containers/tabPanels/Tab.tsx index 834917b9d..76590494b 100755 --- a/packages/es-components/src/components/containers/tabPanels/Tab.tsx +++ b/packages/es-components/src/components/containers/tabPanels/Tab.tsx @@ -71,7 +71,7 @@ export type TabProps = Override< const Tab = React.forwardRef(function ForwardedTab( { name, - selected, + selected = false, action = noop, children, simpleName = '', @@ -136,12 +136,4 @@ Tab.propTypes = { announcerText: PropTypes.string }; -Tab.defaultProps = { - selected: false, - action: noop, - children: undefined, - simpleName: '', - announcerText: '' -}; - export default Tab; diff --git a/packages/es-components/src/components/containers/tabPanels/TabPanel.tsx b/packages/es-components/src/components/containers/tabPanels/TabPanel.tsx index 49a60f957..965cfb762 100644 --- a/packages/es-components/src/components/containers/tabPanels/TabPanel.tsx +++ b/packages/es-components/src/components/containers/tabPanels/TabPanel.tsx @@ -34,7 +34,10 @@ type TabPanelChildProps = Override< } >; -const TabPanelTabRenderer = ({ child, ...tabChildProps }: TabPanelChildProps) => +const TabPanelTabRenderer = ({ + child, + ...tabChildProps +}: TabPanelChildProps) => React.isValidElement(child) ? React.cloneElement(child, tabChildProps) : child; @@ -70,7 +73,7 @@ const TabPanel = React.forwardRef( function ForwardedTabPanel( { children, - selectedKey, + selectedKey = '', tabChanged = noop, canTabChange = tabCanChangeFunc, ...props @@ -173,13 +176,6 @@ TabPanel.propTypes = { className: PropTypes.string }; -TabPanel.defaultProps = { - children: undefined, - selectedKey: '', - tabChanged: noop, - canTabChange: tabCanChangeFunc -}; - type TabPanelComponent = typeof TabPanel & { Tab: typeof Tab; }; diff --git a/packages/es-components/src/components/containers/table/Table.tsx b/packages/es-components/src/components/containers/table/Table.tsx index 2f5748320..bcfcda91e 100644 --- a/packages/es-components/src/components/containers/table/Table.tsx +++ b/packages/es-components/src/components/containers/table/Table.tsx @@ -45,8 +45,8 @@ const TableBase = styled.table` } th { - font-family: 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, - sans-serif; + font-family: + 'Source Sans Pro', 'Segoe UI', Segoe, Calibri, Tahoma, sans-serif; font-weight: bold; line-height: ${props => props.theme.font.baseLineHeight}; padding: ${props => props.cellPadding}; @@ -122,11 +122,4 @@ Table.propTypes = { isRoomy: PropTypes.bool }; -Table.defaultProps = { - hasStripes: false, - hasHover: false, - isCondensed: false, - isRoomy: false -}; - export default Table as TableComponent; diff --git a/packages/es-components/src/components/containers/tooltip/Tooltip.tsx b/packages/es-components/src/components/containers/tooltip/Tooltip.tsx index 90c759653..fad34d783 100755 --- a/packages/es-components/src/components/containers/tooltip/Tooltip.tsx +++ b/packages/es-components/src/components/containers/tooltip/Tooltip.tsx @@ -100,7 +100,7 @@ const TooltipArrowLeft = styled(TooltipArrowBase)` const ScreenReaderContent = screenReaderOnly('div'); -type DivPropsWithRef = React.PropsWithRef; +type DivPropsWithRef = React.PropsWithRef; type Tooltips = [ IStyledComponent<'web', DivPropsWithRef & TooltipStyleProps>, IStyledComponent<'web', DivPropsWithRef> @@ -146,20 +146,18 @@ type TooltipProps = Override< >; const Tooltip = React.forwardRef( - function ForwardedTooltip(props, ref) { + function ForwardedTooltip( + { + position = 'top', + disableHover = false, + disableFocus = false, + linkProps = {}, + ...props + }, + ref + ) { const [show, setShow] = useState(false); - const { - name, - disableHover, - disableFocus, - position, - content, - styleType, - children, - linkProps, - id: idProp, - ...other - } = props; + const { name, content, styleType, children, id: idProp, ...other } = props; const getTopIndex = useTopZIndex(); const tooltipId = name ? `es-tooltip__${name}` : undefined; @@ -316,12 +314,4 @@ Tooltip.propTypes = { ) as Validator }; -Tooltip.defaultProps = { - position: 'top', - disableHover: false, - disableFocus: false, - styleType: undefined, - linkProps: {} -}; - export default Tooltip; diff --git a/packages/es-components/src/components/controls/AdditionalHelp.tsx b/packages/es-components/src/components/controls/AdditionalHelp.tsx index c3bf5b10a..d8d32c36b 100644 --- a/packages/es-components/src/components/controls/AdditionalHelp.tsx +++ b/packages/es-components/src/components/controls/AdditionalHelp.tsx @@ -28,7 +28,10 @@ const HelpText = styled.div` `; const AdditionalHelp = React.forwardRef( - function AdditionalHelp({ children, hasValidationIcon, ...props }, ref) { + function AdditionalHelp( + { children, hasValidationIcon = true, ...props }, + ref + ) { const theme = useTheme(); const validationState = React.useContext(ValidationContext); @@ -46,16 +49,4 @@ const AdditionalHelp = React.forwardRef( } ); -AdditionalHelp.propTypes = { - ...HelpText.propTypes, - children: PropTypes.any, - /** use to show or hide an associated validation icon */ - hasValidationIcon: PropTypes.bool -}; - -AdditionalHelp.defaultProps = { - children: undefined, - hasValidationIcon: true -}; - export default AdditionalHelp; diff --git a/packages/es-components/src/components/controls/dropdown/Dropdown.tsx b/packages/es-components/src/components/controls/dropdown/Dropdown.tsx index 3d3e3be94..e2a30c126 100755 --- a/packages/es-components/src/components/controls/dropdown/Dropdown.tsx +++ b/packages/es-components/src/components/controls/dropdown/Dropdown.tsx @@ -115,20 +115,4 @@ const Dropdown = React.forwardRef( } ); -const UnstyledSelectInput = styled('select')``; - -export const propTypes = { - ...UnstyledSelectInput.propTypes, - /** Whether the input should be rendered as a flat-style input */ - flat: PropTypes.bool -}; - -export const defaultProps = { - ...UnstyledSelectInput.defaultProps, - flat: InputBase.defaultProps?.flat -}; - -Dropdown.propTypes = propTypes; -Dropdown.defaultProps = defaultProps; - export default Dropdown; diff --git a/packages/es-components/src/components/controls/textbox/InputBase.tsx b/packages/es-components/src/components/controls/textbox/InputBase.tsx index c237d5210..350cbfb07 100644 --- a/packages/es-components/src/components/controls/textbox/InputBase.tsx +++ b/packages/es-components/src/components/controls/textbox/InputBase.tsx @@ -274,12 +274,7 @@ export const propTypes = { ...htmlInputPropTypes }; -export const defaultProps = { - ...htmlInputDefaultProps -}; - InputBase.propTypes = propTypes; -InputBase.defaultProps = defaultProps; export default InputBase; @@ -324,13 +319,7 @@ export const basicTextboxPropTypes = { flat: PropTypes.bool }; -export const basicTextboxDefaultProps = { - ...htmlInputDefaultProps, - flat: false -}; - BasicTextbox.propTypes = basicTextboxPropTypes; -BasicTextbox.defaultProps = basicTextboxDefaultProps; export function useValidationStyleProps( props: FlatInputProps diff --git a/packages/es-components/src/components/controls/textbox/Textbox.tsx b/packages/es-components/src/components/controls/textbox/Textbox.tsx index 159f3d65e..efcb66dc0 100644 --- a/packages/es-components/src/components/controls/textbox/Textbox.tsx +++ b/packages/es-components/src/components/controls/textbox/Textbox.tsx @@ -12,7 +12,6 @@ import InputBase, { noInset, basicTextboxStyles, propTypes as basePropTypes, - defaultProps as baseDefaultProps, ValidationStyleProps } from './InputBase'; import { callRefs } from '../../util/callRef'; @@ -246,15 +245,6 @@ export const propTypes = { flat: PropTypes.bool }; -export const defaultProps = { - ...baseDefaultProps, - prependIconName: undefined, - appendIconName: undefined, - type: 'text', - flat: undefined -}; - Textbox.propTypes = propTypes; -Textbox.defaultProps = defaultProps; export default Textbox; diff --git a/packages/es-components/src/components/navigation/Navigation.tsx b/packages/es-components/src/components/navigation/Navigation.tsx index 37bc5bfdb..e3a4b47a8 100644 --- a/packages/es-components/src/components/navigation/Navigation.tsx +++ b/packages/es-components/src/components/navigation/Navigation.tsx @@ -37,7 +37,13 @@ export type NavigationProps = Override< export const Navigation = React.forwardRef( function ForwardedNavigation( - { navOrientation, children, useAltStyle, selected: selectedProp, ...props }, + { + navOrientation, + children, + useAltStyle = false, + selected: selectedProp, + ...props + }, ref ) { const OrientedNavigation = @@ -83,8 +89,3 @@ Navigation.propTypes = { /** Set the selected nav item by id, controlled mode */ selected: PropTypes.string }; - -Navigation.defaultProps = { - useAltStyle: false, - selected: undefined -}; diff --git a/packages/es-components/src/components/navigation/NavigationItem.tsx b/packages/es-components/src/components/navigation/NavigationItem.tsx index 054aacdd0..4ddd21d3a 100644 --- a/packages/es-components/src/components/navigation/NavigationItem.tsx +++ b/packages/es-components/src/components/navigation/NavigationItem.tsx @@ -164,8 +164,8 @@ export const NavigationItem = React.forwardRef< { highlightedId, id, - isDisabled, - useAltStyle, + isDisabled = false, + useAltStyle = false, children, navOrientation, ...props @@ -237,10 +237,3 @@ NavigationItem.propTypes = { /** Disable the nav item to render it un-clickable */ isDisabled: PropTypes.bool }; - -NavigationItem.defaultProps = { - useAltStyle: false, - isDisabled: false, - children: undefined, - highlightedId: undefined -}; diff --git a/packages/es-components/src/components/patterns/callToAction/LightCallToAction.tsx b/packages/es-components/src/components/patterns/callToAction/LightCallToAction.tsx index 5a47d566a..2feee3b4c 100644 --- a/packages/es-components/src/components/patterns/callToAction/LightCallToAction.tsx +++ b/packages/es-components/src/components/patterns/callToAction/LightCallToAction.tsx @@ -7,12 +7,4 @@ const LightCallToAction = React.forwardRef( } ); -LightCallToAction.propTypes = { - ...(CallToAction.propTypes || {}) -}; - -LightCallToAction.defaultProps = { - ...(CallToAction.defaultProps || {}) -}; - export default LightCallToAction; diff --git a/packages/es-components/src/components/patterns/dateInput/DateInput.tsx b/packages/es-components/src/components/patterns/dateInput/DateInput.tsx index a8da2d9d2..ffb286d92 100755 --- a/packages/es-components/src/components/patterns/dateInput/DateInput.tsx +++ b/packages/es-components/src/components/patterns/dateInput/DateInput.tsx @@ -189,7 +189,7 @@ const DateInput = React.forwardRef( maxDate, minDate, onChange: onChangeProp, - onBlur, + onBlur = noop, ...props }, ref @@ -333,15 +333,6 @@ DateInput.propTypes = { defaultDay: PropTypes.string }; -DateInput.defaultProps = { - id: undefined, - maxDate: undefined, - minDate: undefined, - defaultValue: undefined, - defaultDay: '', - onBlur: noop -}; - const setParts = (Input: DateInputType) => { Input.Day = Day; Input.Month = Month; diff --git a/packages/es-components/src/components/patterns/datepicker/DatePicker.tsx b/packages/es-components/src/components/patterns/datepicker/DatePicker.tsx index f71356c3e..6a69a7aae 100755 --- a/packages/es-components/src/components/patterns/datepicker/DatePicker.tsx +++ b/packages/es-components/src/components/patterns/datepicker/DatePicker.tsx @@ -3,16 +3,15 @@ import styled, { css, useTheme } from 'styled-components'; import PropTypes from 'prop-types'; import { format, parse, isValid as dateIsValid } from 'date-fns'; import ReactDatePicker from 'react-datepicker'; -import type { ReactDatePickerProps } from 'react-datepicker'; +import type { DatePickerProps } from 'react-datepicker'; import Textbox, { TextboxProps } from '../../controls/textbox/Textbox'; import MaskedTextbox from '../../controls/textbox/MaskedTextbox'; import { useWindowWidth } from '../../util/useWindowWidth'; import { DatepickerStyles } from './datePickerStyles'; import { - OurReactDatePickerProps, - reactDatepickerPropKeys, - reactDatePickerPropTypes + OurDatePickerProps, + reactDatepickerPropKeys } from './ReactDatePickerPropTypes'; import { calendarArrowStyles } from './datepickerAssets'; @@ -61,17 +60,24 @@ function omit( } type WithRange = boolean | undefined; -type DatePickerOnChange = - ReactDatePickerProps['onChange']; -type OnChangeDate = Parameters>[0]; +type DatePickerOnChange = ( + date: Date | [Date | null, Date | null] | Date[] | null, + event?: + | React.KeyboardEvent + | React.MouseEvent + + | React.ChangeEvent + +) => void | undefined; // DatePickerProps['onChange']; +type OnChangeDate = Parameters>[0]; type SelectedDate = NonNullable< - T extends true ? OnChangeDate : OnChangeDate | string + T extends true ? OnChangeDate : OnChangeDate | string >; function normalizeDateString(date: string, stringFormat?: string): string; function normalizeDateString(date: Date, stringFormat?: string): string; function normalizeDateString( - date: OnChangeDate, + date: OnChangeDate, stringFormat?: string ): string; function normalizeDateString( @@ -89,29 +95,25 @@ function normalizeDateString( return isValid(date) ? format(date, stringFormat) : ''; } +function normalizeDate(date: string): OnChangeDate; +function normalizeDate(date: Date): OnChangeDate; function normalizeDate( - date: string -): OnChangeDate; -function normalizeDate( - date: Date -): OnChangeDate; -function normalizeDate( - date: OnChangeDate -): OnChangeDate; + date: OnChangeDate +): OnChangeDate; function normalizeDate( date: Maybe> -): OnChangeDate; +): OnChangeDate; function normalizeDate( date: Maybe> -): OnChangeDate { +): OnChangeDate { if (typeof date === 'string') { const parsedDate = parse(date, STRING_FORMAT, new Date()); - return (isValid(parsedDate) ? parsedDate : null) as OnChangeDate; + return (isValid(parsedDate) ? parsedDate : null) as OnChangeDate; } if (Array.isArray(date)) { - return date.map(d => (isValid(d) ? d : null)) as OnChangeDate; + return date.map(d => (isValid(d) ? d : null)) as OnChangeDate; } - return (isValid(date) ? date : null) as OnChangeDate; + return (isValid(date) ? date : null) as OnChangeDate; } type NativeWithRange< @@ -119,16 +121,17 @@ type NativeWithRange< ST extends WithRange > = NT extends true ? false : ST extends true ? false : WithRange; -export type DatePickerProps< +export type DatePickerPropsWithRange< NT extends WithRange, ST extends WithRange, T extends NativeWithRange > = Override< TextboxProps, Override< - OurReactDatePickerProps, + OurDatePickerProps, { - onChange?: DatePickerOnChange; + onChange?: DatePickerOnChange; + onSelect?: DatePickerOnChange; suppressDatepicker?: ST; allowNativeDatepickerOnMobile?: NT; selectedDate?: Maybe>; @@ -163,7 +166,11 @@ const CalendarContainer = styled.div.withConfig({ `} `; -type GenericDatePickerProps = DatePickerProps; +type GenericDatePickerProps = DatePickerPropsWithRange< + WithRange, + WithRange, + WithRange +>; const NativeDatePicker = React.forwardRef< HTMLInputElement, @@ -178,7 +185,7 @@ const NativeDatePicker = React.forwardRef< onChange: onChangeProp, onSelect: onSelectProp, ...props - }: DatePickerProps, + }: DatePickerPropsWithRange, ref: React.ForwardedRef ) { const textboxProps = pick(props, textboxKeys); @@ -202,7 +209,7 @@ const NativeDatePicker = React.forwardRef< const [e, ...rest] = args; // date is guaranteed to be valid on select - currentOnSelect?.(normalizeDate(e.target.value)!, e, ...rest); + currentOnSelect?.(normalizeDate(e.target.value), e, ...rest); }, onSelectProp ); @@ -210,10 +217,10 @@ const NativeDatePicker = React.forwardRef< return ( (selectedDate)} - {...textboxProps} onChange={onChange} onSelect={onSelect} /> @@ -226,7 +233,7 @@ const DateTextbox = React.forwardRef( ST extends WithRange, T extends NativeWithRange >( - props: DatePickerProps, + props: DatePickerPropsWithRange, ref: React.ForwardedRef ) { const { suppressDatepicker = false, onChange: onChangeProp } = props; @@ -242,15 +249,22 @@ const DateTextbox = React.forwardRef( onChangeProp ); - const datepickerProps: ReactDatePickerProps = { + /* eslint-disable @typescript-eslint/no-explicit-any */ + /* eslint-disable @typescript-eslint/no-unsafe-assignment */ + const datepickerProps = { ...pick(props, reactDatepickerPropKeys), onChange, ...(props.selectsRange ? {} : { selected: normalizeDate(props.selectedDate) as Date - }) + }), + selectsRange: props.selectsRange as any, // Ignore incompatibility with react-datepicker types by casting to any + selectsMultiple: props.selectsMultiple as any, // Ignore incompatibility with react-datepicker types by casting to any + showMonthYearDropdown: props.showMonthYearDropdown as any // Ignore incompatibility with react-datepicker types by casting to any }; + /* eslint-enable @typescript-eslint/no-explicit-any */ + /* eslint-enable @typescript-eslint/no-unsafe-assignment */ const textboxProps = pick( omit(props, reactDatepickerPropKeys), textboxKeys @@ -311,7 +325,7 @@ const DatePicker = React.forwardRef( onChange, allowNativeDatepickerOnMobile = true, ...props - }: DatePickerProps, + }: DatePickerPropsWithRange, ref: React.ForwardedRef ) { const hasSelectedDate = !props.selectsRange && selectedDateProp; @@ -319,24 +333,24 @@ const DatePicker = React.forwardRef( hasSelectedDate ? normalizeDate(selectedDateProp as SelectedDate) : props.selectsRange - ? ([null, null] as OnChangeDate) - : (null as OnChangeDate) - ) as OnChangeDate; - const [selectedDate, setSelectedDate] = useState>( + ? ([null, null] as OnChangeDate) + : (null as OnChangeDate) + ); + const [selectedDate, setSelectedDate] = useState( normalizedDateFromProps ); - const dateSelected = useCallback>( - date => { + const dateSelected = useCallback( + (date: SelectedDate) => { if (date) { - setSelectedDate(normalizeDate(date as SelectedDate)); + setSelectedDate(normalizeDate(date)); } else if (hasSelectedDate) { setSelectedDate(normalizeDate(selectedDateProp)); } else { setSelectedDate( (props.selectsRange ? [null, null] - : null) as SelectedDate as OnChangeDate + : null) as SelectedDate as OnChangeDate ); } }, @@ -383,22 +397,10 @@ const DatePicker = React.forwardRef( onChange: dateSelected, popperClassName, popperPlacement - } as DatePickerProps)} + } as DatePickerPropsWithRange)} /> ); } ); -export const propTypes: React.WeakValidationMap = { - ...reactDatePickerPropTypes, - suppressDatepicker: PropTypes.bool, - allowNativeDatepickerOnMobile: PropTypes.bool, - selectedDate: PropTypes.oneOfType([ - PropTypes.instanceOf(Date), - PropTypes.string - ]) -}; - -DatePicker.propTypes = propTypes; - export default DatePicker; diff --git a/packages/es-components/src/components/patterns/datepicker/ReactDatePickerPropTypes.ts b/packages/es-components/src/components/patterns/datepicker/ReactDatePickerPropTypes.ts index 6c499e8e5..0560aa2b9 100755 --- a/packages/es-components/src/components/patterns/datepicker/ReactDatePickerPropTypes.ts +++ b/packages/es-components/src/components/patterns/datepicker/ReactDatePickerPropTypes.ts @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import type { ReactDatePickerProps } from 'react-datepicker'; +import type { DatePickerProps } from 'react-datepicker'; import { Placement, placements } from '@floating-ui/utils'; import type { Middleware } from '@floating-ui/dom'; @@ -8,36 +8,36 @@ export interface HighlightDates { [className: string]: Date[]; } -declare module 'react-datepicker' { - export interface ReactDatePickerProps { - form?: JSXElementProps<'input'>['form']; - selectsDisabledDaysInRange?: boolean; - renderMonthContent?: ( - month: number, - shortMonth: string, - longMonth: string - ) => React.ReactNode; - renderQuarterContent?: ( - quarter: number, - shortQuarter: string - ) => React.ReactNode; - renderYearContent?: (year: number) => React.ReactNode; - onYearMouseEnter?: ( - ev: React.MouseEvent, - year: number - ) => void; - onYearMouseLeave?: ( - ev: React.MouseEvent, - year: number - ) => void; - } -} +// declare module 'react-datepicker' { +// export interface DatePickerProps { +// form?: JSXElementProps<'input'>['form']; +// selectsDisabledDaysInRange?: boolean; +// renderMonthContent?: ( +// month: number, +// shortMonth: string, +// longMonth: string +// ) => React.ReactNode; +// renderQuarterContent?: ( +// quarter: number, +// shortQuarter: string +// ) => React.ReactNode; +// renderYearContent?: (year: number) => React.ReactNode; +// onYearMouseEnter?: ( +// ev: React.MouseEvent, +// year: number +// ) => void; +// onYearMouseLeave?: ( +// ev: React.MouseEvent, +// year: number +// ) => void; +// } +// } export type PopperPlacement = Placement; -export type OurReactDatePickerProps = +export type OurDatePickerProps = Override< - ReactDatePickerProps, + DatePickerProps, { highlightDates?: (HighlightDates | Date)[] | undefined; } @@ -46,9 +46,9 @@ export type OurReactDatePickerProps = export type ReactDatePickerPropTypes< T extends boolean | undefined = undefined > = { - [key in keyof OurReactDatePickerProps]: - | PropTypes.Requireable[key]> - | PropTypes.Validator[key]>; + [key in keyof OurDatePickerProps]: + | PropTypes.Requireable[key]> + | PropTypes.Validator[key]>; }; type DateInterval = { @@ -57,193 +57,191 @@ type DateInterval = { }; export type InnerHighlightDates = - ReactDatePickerProps['highlightDates']; + DatePickerProps['highlightDates']; // copied from react-datepicker@v4.15.0 - https://github.com/Hacker0x01/react-datepicker/blob/v4.15.0/src/index.jsx -export const reactDatePickerPropTypes: ReactDatePickerPropTypes< - boolean | undefined -> = { - adjustDateOnChange: PropTypes.bool, - allowSameDay: PropTypes.bool, - ariaDescribedBy: PropTypes.string, - ariaInvalid: PropTypes.string, - ariaLabelClose: PropTypes.string, - ariaLabelledBy: PropTypes.string, - ariaRequired: PropTypes.string, - autoComplete: PropTypes.string, - autoFocus: PropTypes.bool, - calendarClassName: PropTypes.string, - calendarContainer: PropTypes.func, - children: PropTypes.node, - chooseDayAriaLabelPrefix: PropTypes.string, - closeOnScroll: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]), - className: PropTypes.string, - customInput: PropTypes.element, - customInputRef: PropTypes.string, - calendarStartDay: PropTypes.number, +const reactDatePickerPropTypes: ReactDatePickerPropTypes = + { + adjustDateOnChange: PropTypes.bool, + allowSameDay: PropTypes.bool, + ariaDescribedBy: PropTypes.string, + ariaInvalid: PropTypes.string, + ariaLabelClose: PropTypes.string, + ariaLabelledBy: PropTypes.string, + ariaRequired: PropTypes.string, + autoComplete: PropTypes.string, + autoFocus: PropTypes.bool, + calendarClassName: PropTypes.string, + calendarContainer: PropTypes.func, + children: PropTypes.node, + chooseDayAriaLabelPrefix: PropTypes.string, + closeOnScroll: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]), + className: PropTypes.string, + customInput: PropTypes.element, + customInputRef: PropTypes.string, + calendarStartDay: PropTypes.any, - dateFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), - dateFormatCalendar: PropTypes.string, - dayClassName: PropTypes.func, - weekDayClassName: PropTypes.func, - disabledDayAriaLabelPrefix: PropTypes.string, - monthClassName: PropTypes.func, - timeClassName: PropTypes.func, - disabled: PropTypes.bool, - disabledKeyboardNavigation: PropTypes.bool, - dropdownMode: PropTypes.oneOf(['scroll', 'select'] as const), - endDate: PropTypes.instanceOf(Date), - excludeDates: PropTypes.array, - excludeDateIntervals: PropTypes.arrayOf( - PropTypes.shape({ - start: PropTypes.instanceOf(Date).isRequired, - end: PropTypes.instanceOf(Date).isRequired - }).isRequired - ), - filterDate: PropTypes.func, - fixedHeight: PropTypes.bool, - form: PropTypes.string, - formatWeekNumber: PropTypes.func, - highlightDates: PropTypes.arrayOf( - PropTypes.oneOfType([ - PropTypes.instanceOf(Date).isRequired, - PropTypes.objectOf( - PropTypes.arrayOf(PropTypes.instanceOf(Date).isRequired).isRequired - ).isRequired - ]).isRequired - ), - id: PropTypes.string, - includeDates: PropTypes.array, - includeDateIntervals: PropTypes.array, - includeTimes: PropTypes.array, - injectTimes: PropTypes.array, - inline: PropTypes.bool, - isClearable: PropTypes.bool, - showIcon: PropTypes.bool, - locale: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), - maxDate: PropTypes.instanceOf(Date), - minDate: PropTypes.instanceOf(Date), - monthsShown: PropTypes.number, - name: PropTypes.string, - onBlur: PropTypes.func, - onChange: PropTypes.func.isRequired, - onSelect: PropTypes.func, - onWeekSelect: PropTypes.func, - onClickOutside: PropTypes.func, - onChangeRaw: PropTypes.func, - onFocus: PropTypes.func, - onInputClick: PropTypes.func, - onKeyDown: PropTypes.func, - onMonthChange: PropTypes.func, - onYearChange: PropTypes.func, - onInputError: PropTypes.func, - open: PropTypes.bool, - onCalendarOpen: PropTypes.func, - onCalendarClose: PropTypes.func, - openToDate: PropTypes.instanceOf(Date), - peekNextMonth: PropTypes.bool, - placeholderText: PropTypes.string, - popperContainer: PropTypes.func, - popperClassName: PropTypes.string, // props - popperModifiers: PropTypes.arrayOf( - PropTypes.shape({ - name: PropTypes.string.isRequired, - options: PropTypes.object, - fn: PropTypes.func.isRequired - }).isRequired - ), // props - popperPlacement: PropTypes.oneOf(placements), // props - popperProps: PropTypes.object, - preventOpenOnFocus: PropTypes.bool, - readOnly: PropTypes.bool, - required: PropTypes.bool, - scrollableYearDropdown: PropTypes.bool, - scrollableMonthYearDropdown: PropTypes.bool, - selected: PropTypes.instanceOf(Date), - selectsEnd: PropTypes.bool, - selectsStart: PropTypes.bool, - selectsRange: PropTypes.oneOfType([ - PropTypes.oneOf([undefined, true, false]).isRequired - ]), - selectsDisabledDaysInRange: PropTypes.bool, - showMonthDropdown: PropTypes.bool, - showPreviousMonths: PropTypes.bool, - showMonthYearDropdown: PropTypes.bool, - showWeekNumbers: PropTypes.bool, - showYearDropdown: PropTypes.bool, - strictParsing: PropTypes.bool, - forceShowMonthNavigation: PropTypes.bool, - showDisabledMonthNavigation: PropTypes.bool, - startDate: PropTypes.instanceOf(Date), - startOpen: PropTypes.bool, - tabIndex: PropTypes.number, - timeCaption: PropTypes.string, - title: PropTypes.string, - todayButton: PropTypes.node, - useWeekdaysShort: PropTypes.bool, - formatWeekDay: PropTypes.func, - value: PropTypes.string, - weekLabel: PropTypes.string, - withPortal: PropTypes.bool, - portalId: PropTypes.string, - portalHost: PropTypes.instanceOf(ShadowRoot), - yearItemNumber: PropTypes.number, - yearDropdownItemNumber: PropTypes.number, - shouldCloseOnSelect: PropTypes.bool, - showTimeInput: PropTypes.bool, - showMonthYearPicker: PropTypes.bool, - showFullMonthYearPicker: PropTypes.bool, - showTwoColumnMonthYearPicker: PropTypes.bool, - showFourColumnMonthYearPicker: PropTypes.bool, - showYearPicker: PropTypes.bool, - showQuarterYearPicker: PropTypes.bool, - showTimeSelect: PropTypes.bool, - showTimeSelectOnly: PropTypes.bool, - timeFormat: PropTypes.string, - timeIntervals: PropTypes.number, - minTime: PropTypes.instanceOf(Date), - maxTime: PropTypes.instanceOf(Date), - excludeTimes: PropTypes.array, - filterTime: PropTypes.func, - useShortMonthInDropdown: PropTypes.bool, - clearButtonTitle: PropTypes.string, - clearButtonClassName: PropTypes.string, - previousMonthAriaLabel: PropTypes.string, - previousMonthButtonLabel: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.node - ]), - nextMonthAriaLabel: PropTypes.string, - nextMonthButtonLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), - previousYearAriaLabel: PropTypes.string, - previousYearButtonLabel: PropTypes.string, - nextYearAriaLabel: PropTypes.string, - nextYearButtonLabel: PropTypes.string, - timeInputLabel: PropTypes.string, - renderCustomHeader: PropTypes.func, - renderDayContents: PropTypes.func, - renderMonthContent: PropTypes.func, - renderQuarterContent: PropTypes.func, - renderYearContent: PropTypes.func, - wrapperClassName: PropTypes.string, - focusSelectedMonth: PropTypes.bool, - onDayMouseEnter: PropTypes.func, - onMonthMouseLeave: PropTypes.func, - onYearMouseEnter: PropTypes.func, - onYearMouseLeave: PropTypes.func, - showPopperArrow: PropTypes.bool, - excludeScrollbar: PropTypes.bool, - enableTabLoop: PropTypes.bool, - customTimeInput: PropTypes.element, - weekAriaLabelPrefix: PropTypes.string, - monthAriaLabelPrefix: PropTypes.string -}; + dateFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), + dateFormatCalendar: PropTypes.string, + dayClassName: PropTypes.func, + weekDayClassName: PropTypes.func, + disabledDayAriaLabelPrefix: PropTypes.string, + monthClassName: PropTypes.func, + timeClassName: PropTypes.func, + disabled: PropTypes.bool, + disabledKeyboardNavigation: PropTypes.bool, + dropdownMode: PropTypes.oneOf(['scroll', 'select'] as const), + endDate: PropTypes.instanceOf(Date), + excludeDates: PropTypes.array, + excludeDateIntervals: PropTypes.arrayOf( + PropTypes.shape({ + start: PropTypes.instanceOf(Date).isRequired, + end: PropTypes.instanceOf(Date).isRequired + }).isRequired + ), + filterDate: PropTypes.func, + fixedHeight: PropTypes.bool, + form: PropTypes.string, + formatWeekNumber: PropTypes.func, + highlightDates: PropTypes.arrayOf( + PropTypes.oneOfType([ + PropTypes.instanceOf(Date).isRequired, + PropTypes.objectOf( + PropTypes.arrayOf(PropTypes.instanceOf(Date).isRequired).isRequired + ).isRequired + ]).isRequired + ), + id: PropTypes.string, + includeDates: PropTypes.array, + includeDateIntervals: PropTypes.array, + includeTimes: PropTypes.array, + injectTimes: PropTypes.array, + inline: PropTypes.bool, + isClearable: PropTypes.bool, + showIcon: PropTypes.bool, + locale: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), + maxDate: PropTypes.instanceOf(Date), + minDate: PropTypes.instanceOf(Date), + monthsShown: PropTypes.number, + name: PropTypes.string, + onBlur: PropTypes.func, + onChange: PropTypes.func.isRequired, + onSelect: PropTypes.func, + onWeekSelect: PropTypes.func, + onClickOutside: PropTypes.func, + onChangeRaw: PropTypes.func, + onFocus: PropTypes.func, + onInputClick: PropTypes.func, + onKeyDown: PropTypes.func, + onMonthChange: PropTypes.func, + onYearChange: PropTypes.func, + onInputError: PropTypes.func, + open: PropTypes.bool, + onCalendarOpen: PropTypes.func, + onCalendarClose: PropTypes.func, + openToDate: PropTypes.instanceOf(Date), + peekNextMonth: PropTypes.bool, + placeholderText: PropTypes.string, + popperContainer: PropTypes.func, + popperClassName: PropTypes.string, // props + popperModifiers: PropTypes.arrayOf( + PropTypes.shape({ + name: PropTypes.string.isRequired, + options: PropTypes.object, + fn: PropTypes.func.isRequired + }).isRequired + ), // props + popperPlacement: PropTypes.oneOf(placements), // props + popperProps: PropTypes.object, + preventOpenOnFocus: PropTypes.bool, + readOnly: PropTypes.bool, + required: PropTypes.bool, + scrollableYearDropdown: PropTypes.bool, + scrollableMonthYearDropdown: PropTypes.bool, + selected: PropTypes.instanceOf(Date), + selectsEnd: PropTypes.bool, + selectsStart: PropTypes.bool, + selectsRange: PropTypes.oneOf([true, undefined]), + selectsDisabledDaysInRange: PropTypes.bool, + showMonthDropdown: PropTypes.bool, + showPreviousMonths: PropTypes.bool, + showWeekNumbers: PropTypes.bool, + showYearDropdown: PropTypes.bool, + strictParsing: PropTypes.bool, + forceShowMonthNavigation: PropTypes.bool, + showDisabledMonthNavigation: PropTypes.bool, + startDate: PropTypes.instanceOf(Date), + startOpen: PropTypes.bool, + tabIndex: PropTypes.number, + timeCaption: PropTypes.string, + title: PropTypes.string, + todayButton: PropTypes.node, + useWeekdaysShort: PropTypes.bool, + formatWeekDay: PropTypes.func, + value: PropTypes.string, + weekLabel: PropTypes.string, + withPortal: PropTypes.bool, + portalId: PropTypes.string, + portalHost: PropTypes.instanceOf(ShadowRoot), + yearItemNumber: PropTypes.number, + yearDropdownItemNumber: PropTypes.number, + shouldCloseOnSelect: PropTypes.bool, + showTimeInput: PropTypes.bool, + showMonthYearPicker: PropTypes.bool, + showFullMonthYearPicker: PropTypes.bool, + showTwoColumnMonthYearPicker: PropTypes.bool, + showFourColumnMonthYearPicker: PropTypes.bool, + showYearPicker: PropTypes.bool, + showQuarterYearPicker: PropTypes.bool, + showTimeSelect: PropTypes.bool, + showTimeSelectOnly: PropTypes.bool, + timeFormat: PropTypes.string, + timeIntervals: PropTypes.number, + minTime: PropTypes.instanceOf(Date), + maxTime: PropTypes.instanceOf(Date), + excludeTimes: PropTypes.array, + filterTime: PropTypes.func, + useShortMonthInDropdown: PropTypes.bool, + clearButtonTitle: PropTypes.string, + clearButtonClassName: PropTypes.string, + previousMonthAriaLabel: PropTypes.string, + previousMonthButtonLabel: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.node + ]), + nextMonthAriaLabel: PropTypes.string, + nextMonthButtonLabel: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.node + ]), + previousYearAriaLabel: PropTypes.string, + previousYearButtonLabel: PropTypes.string, + nextYearAriaLabel: PropTypes.string, + nextYearButtonLabel: PropTypes.string, + timeInputLabel: PropTypes.string, + renderCustomHeader: PropTypes.func, + renderDayContents: PropTypes.func, + renderMonthContent: PropTypes.func, + renderQuarterContent: PropTypes.func, + renderYearContent: PropTypes.func, + wrapperClassName: PropTypes.string, + focusSelectedMonth: PropTypes.bool, + onDayMouseEnter: PropTypes.func, + onMonthMouseLeave: PropTypes.func, + onYearMouseEnter: PropTypes.func, + onYearMouseLeave: PropTypes.func, + showPopperArrow: PropTypes.bool, + enableTabLoop: PropTypes.bool, + customTimeInput: PropTypes.element, + weekAriaLabelPrefix: PropTypes.string, + monthAriaLabelPrefix: PropTypes.string + }; export type ReactDatePickerPropName = - Extract, string>; + Extract, string>; export const reactDatepickerPropKeys: ReactDatePickerPropName[] = Object.keys( reactDatePickerPropTypes ).map(key => key as ReactDatePickerPropName); -export default reactDatePickerPropTypes; +// export default reactDatePickerPropTypes; diff --git a/packages/es-components/src/components/patterns/incrementer/Incrementer.tsx b/packages/es-components/src/components/patterns/incrementer/Incrementer.tsx index 3bd803c96..d6b157308 100644 --- a/packages/es-components/src/components/patterns/incrementer/Incrementer.tsx +++ b/packages/es-components/src/components/patterns/incrementer/Incrementer.tsx @@ -8,8 +8,7 @@ import OutlineButton from '../../controls/buttons/OutlineButton'; import { BasicTextbox, BasicTextboxProps, - basicTextboxPropTypes, - basicTextboxDefaultProps + basicTextboxPropTypes } from '../../controls/textbox/InputBase'; import screenReaderOnly from '../screenReaderOnly/screenReaderOnly'; import noop from '../../util/noop'; @@ -98,13 +97,13 @@ export type IncrementerProps = BasicTextboxProps & { const Incrementer = React.forwardRef( function ForwardedIncrementer( { - startingValue, + startingValue = 0, incrementAmount = 1, decrementAmount = 1, upperThreshold = null, lowerThreshold = null, - useOutlineButton, - onValueUpdated, + useOutlineButton = false, + onValueUpdated = noop, ...other }, ref @@ -281,15 +280,4 @@ Incrementer.propTypes = { onValueUpdated: PropTypes.func }; -Incrementer.defaultProps = { - ...basicTextboxDefaultProps, - startingValue: 0, - incrementAmount: 1, - decrementAmount: 1, - onValueUpdated: noop, - upperThreshold: null, - lowerThreshold: null, - useOutlineButton: false -}; - export default Incrementer; diff --git a/packages/es-components/src/components/util/callRef.ts b/packages/es-components/src/components/util/callRef.ts index a7decfa08..e8466662d 100644 --- a/packages/es-components/src/components/util/callRef.ts +++ b/packages/es-components/src/components/util/callRef.ts @@ -1,6 +1,9 @@ import React, { useCallback } from 'react'; -const callRef = >(ref: Maybe, value: T) => +const callRef = >( + ref: Maybe, + value: T +) => typeof ref === 'function' ? ref(value) : ref && Object.hasOwn(ref, 'current') && (ref.current = value); @@ -14,7 +17,9 @@ export function callRefs>>( refs.forEach(r => callRef(r, value)); } -export function useMergedRefs(...refs: React.Ref[]) { +export function useMergedRefs( + ...refs: React.Ref[] +): React.RefCallback { const mergedRefs = useCallback>( el => { callRefs(el, ...refs); diff --git a/packages/es-components/src/components/util/htmlProps/dom.ts b/packages/es-components/src/components/util/htmlProps/dom.ts index 6222b138c..e16bc915b 100644 --- a/packages/es-components/src/components/util/htmlProps/dom.ts +++ b/packages/es-components/src/components/util/htmlProps/dom.ts @@ -100,8 +100,6 @@ export const domProps: DOMPropTypes = { onProgressCapture: PropTypes.func, onRateChange: PropTypes.func, onRateChangeCapture: PropTypes.func, - onResize: PropTypes.func, - onResizeCapture: PropTypes.func, onSeeked: PropTypes.func, onSeekedCapture: PropTypes.func, onSeeking: PropTypes.func, @@ -192,6 +190,8 @@ export const domProps: DOMPropTypes = { // UI Events onScroll: PropTypes.func, onScrollCapture: PropTypes.func, + onScrollEnd: PropTypes.func, + onScrollEndCapture: PropTypes.func, // Wheel Events onWheel: PropTypes.func, @@ -207,7 +207,17 @@ export const domProps: DOMPropTypes = { // Transition Events onTransitionEnd: PropTypes.func, - onTransitionEndCapture: PropTypes.func + onTransitionEndCapture: PropTypes.func, + onTransitionCancel: PropTypes.func, + onTransitionCancelCapture: PropTypes.func, + onTransitionRun: PropTypes.func, + onTransitionRunCapture: PropTypes.func, + onTransitionStart: PropTypes.func, + onTransitionStartCapture: PropTypes.func, + + // Toggle Events + onToggle: PropTypes.func, + onBeforeToggle: PropTypes.func }; export const domDefaultProps: DOMDefaultProps = {}; diff --git a/packages/es-components/src/components/util/htmlProps/html.ts b/packages/es-components/src/components/util/htmlProps/html.ts index 8c3209d7c..11c7e1de5 100755 --- a/packages/es-components/src/components/util/htmlProps/html.ts +++ b/packages/es-components/src/components/util/htmlProps/html.ts @@ -86,6 +86,18 @@ export const htmlProps: HTMLPropTypes = { tabIndex: PropTypes.number, title: PropTypes.string, translate: PropTypes.oneOf<'yes' | 'no'>(['yes', 'no']), + popover: PropTypes.oneOf<'' | 'auto' | 'manual' | undefined>([ + '', + 'auto', + 'manual' + ]), + popoverTargetAction: PropTypes.oneOf<'toggle' | 'show' | 'hide' | undefined>([ + 'toggle', + 'show', + 'hide' + ]), + popoverTarget: PropTypes.string, + inert: PropTypes.bool, // Unknown radioGroup: PropTypes.string, // , diff --git a/packages/es-components/src/components/util/useRootNode.tsx b/packages/es-components/src/components/util/useRootNode.tsx index ffd87a551..c6d3335c5 100644 --- a/packages/es-components/src/components/util/useRootNode.tsx +++ b/packages/es-components/src/components/util/useRootNode.tsx @@ -5,7 +5,7 @@ export type RootNode = HTMLElement | ShadowRoot | undefined; export default function useRootNode( initialRoot?: T -) { +): [T, React.RefCallback>] { const [rootNode, setRootNode] = useState(initialRoot as T); const nodeRef = useCallback>>( (node: Maybe) => { diff --git a/packages/es-components/src/global.tsx b/packages/es-components/src/global.tsx index 1eb1164db..2d5108452 100755 --- a/packages/es-components/src/global.tsx +++ b/packages/es-components/src/global.tsx @@ -8,6 +8,15 @@ declare module 'styled-components' { export interface DefaultTheme extends ESTheme {} } +declare module 'react' { + // eslint-disable-next-line @typescript-eslint/no-namespace + namespace JSX { + interface IntrinsicElements { + basicHTMLElement: HTMLElementProps; + } + } +} + declare global { type Maybe = T | null | undefined; type IsNullable = null | undefined extends T ? K : never; @@ -31,12 +40,12 @@ declare global { type ReactFCWithChildren = React.FC>; - type JSXElementProps = - T extends keyof JSX.IntrinsicElements + type JSXElementProps = + T extends keyof React.JSX.IntrinsicElements ? React.PropsWithoutRef< - 'key' extends keyof JSX.IntrinsicElements[T] - ? Omit - : JSX.IntrinsicElements[T] + 'key' extends keyof React.JSX.IntrinsicElements[T] + ? Omit + : React.JSX.IntrinsicElements[T] > : never; @@ -48,11 +57,12 @@ declare global { >; /* eslint-disable @typescript-eslint/no-explicit-any */ - type StyledComponentElementProps = - JSXElementProps & { - as?: keyof JSX.IntrinsicElements | React.ComponentType; - forwardedAs?: keyof JSX.IntrinsicElements | React.ComponentType; - }; + type StyledComponentElementProps< + T extends keyof React.JSX.IntrinsicElements + > = JSXElementProps & { + as?: keyof React.JSX.IntrinsicElements | React.ComponentType; + forwardedAs?: keyof React.JSX.IntrinsicElements | React.ComponentType; + }; /* eslint-enable @typescript-eslint/no-explicit-any */ interface OptionalThemeProps { @@ -70,11 +80,4 @@ declare global { const ASSETS_PATH: string; type ReactElementPropType = PropTypes.Requireable>; - - // eslint-disable-next-line @typescript-eslint/no-namespace - namespace JSX { - interface IntrinsicElements { - basicHTMLElement: HTMLElementProps; - } - } } diff --git a/packages/es-components/styleguide.config.js b/packages/es-components/styleguide.config.js index ab6c851b6..48f91dcd5 100644 --- a/packages/es-components/styleguide.config.js +++ b/packages/es-components/styleguide.config.js @@ -73,8 +73,8 @@ module.exports = {