diff --git a/package-lock.json b/package-lock.json index ddc2dca..6c1389e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "my-app", "version": "0.1.0", "dependencies": { + "@hookform/resolvers": "^2.9.10", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -15,15 +16,20 @@ "@types/node": "^16.18.11", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.10", + "@types/react-maskedinput": "^4.0.6", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-input-mask": "^3.0.0-alpha.2", "react-modal": "^3.16.1", "react-scripts": "5.0.1", + "regex": "^0.1.1", "typescript": "^4.9.4", "web-vitals": "^2.1.4" }, "devDependencies": { + "@types/react-input-mask": "^3.0.2", "@types/react-modal": "^3.13.1", + "@types/react-text-mask": "^5.4.11", "formik": "^2.2.9", "node-sass": "^8.0.0", "react-text-mask": "^5.5.0", @@ -2219,6 +2225,14 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "devOptional": true }, + "node_modules/@hookform/resolvers": { + "version": "2.9.10", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-2.9.10.tgz", + "integrity": "sha512-JIL1DgJIlH9yuxcNGtyhsWX/PgNltz+5Gr6+8SX9fhXc/hPbEIk6wPI82nhgvp3uUb6ZfAM5mqg/x7KR7NAb+A==", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", @@ -3932,6 +3946,23 @@ "@types/react": "*" } }, + "node_modules/@types/react-input-mask": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/react-input-mask/-/react-input-mask-3.0.2.tgz", + "integrity": "sha512-WTli3kUyvUqqaOLYG/so2pLqUvRb+n4qnx2He5klfqZDiQmRyD07jVIt/bco/1BrcErkPMtpOm+bHii4Oed6cQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-maskedinput": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/react-maskedinput/-/react-maskedinput-4.0.6.tgz", + "integrity": "sha512-rLm0t4CcCE0smsOVgZTzwT/amDDBh1sL46V+V22JIeyChibCM7Oe3TNSk66oJK0fHishDyzRg7pd+sH4sozGqg==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-modal": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/@types/react-modal/-/react-modal-3.13.1.tgz", @@ -3941,6 +3972,15 @@ "@types/react": "*" } }, + "node_modules/@types/react-text-mask": { + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/@types/react-text-mask/-/react-text-mask-5.4.11.tgz", + "integrity": "sha512-DIJ3/dS4jd7NK3lEgsOwcgpp+ZlVrNJEiUDRayZRE/PNMbV/nLWmOKGdL0BUS29hnx0CDgITgPudKx0BgbF5fA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -4852,6 +4892,12 @@ "node": ">= 4.0.0" } }, + "node_modules/augment": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/augment/-/augment-3.2.1.tgz", + "integrity": "sha512-g5E3vuN1RvCvCqNLKeNOyvTO4RbpOyasUjc/e8dnK9ecg9J9nrSv8N2PxDdnaBXYgmiTAErnen2harV2euPpEA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, "node_modules/autoprefixer": { "version": "10.4.13", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", @@ -5791,6 +5837,14 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, + "node_modules/colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha512-XjsuUwpDeY98+yz959OlUK6m7mLBM+1MEG5oaenfuQnNnrQk1WvtcvFgN3FNDP3f2NmZ211t0mNEfSEN1h0eIg==", + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -6815,6 +6869,11 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, + "node_modules/ebnf-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", + "integrity": "sha512-urvSxVQ6XJcoTpc+/x2pWhhuOX4aljCNQpwzw+ifZvV1andZkAmiJc3Rq1oGEAQmcjiLceyMXOy1l8ms8qs2fQ==" + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -9311,6 +9370,14 @@ "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -11769,6 +11836,80 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jison": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.4.tgz", + "integrity": "sha512-8KfKaIIngog2VR5UfEmPhcK1i/2XbBzL5KZbuG8M0qLsYWnodWqq7x28XLsee0RazE0Z2OQAaG9/VCk7gi4VOA==", + "dependencies": { + "ebnf-parser": "0.1.x", + "escodegen": "0.0.21", + "esprima": "1.0.x", + "jison-lex": "0.2.x", + "JSONSelect": "0.4.0", + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + }, + "bin": { + "jison": "lib/cli.js" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/jison-lex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", + "integrity": "sha512-WCNVPRxaTWdhwJAIrBsgkGT9n6H1yNR9Lfof5LUHaMul24ySrJ1SXbVPszZfs57jwXvASLWBpd0xpFEW2oIuVA==", + "dependencies": { + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + }, + "bin": { + "jison-lex": "cli.js" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/jison/node_modules/escodegen": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", + "integrity": "sha512-BQL5g+BqyrM5HRAKt4Q4YuH9CqiEcIHWSJ8fg2PRNkGkXn/LgzeDCZzDDSX4UiljSAHgXaHgOZREQ2xOigbLzA==", + "dependencies": { + "esprima": "~1.0.2", + "estraverse": "~0.0.4" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.4.0" + }, + "optionalDependencies": { + "source-map": ">= 0.1.2" + } + }, + "node_modules/jison/node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jison/node_modules/estraverse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", + "integrity": "sha512-21DfBCsFJGb3HZr0vEBH1Wk1tGSbbzA8I/xtSSoy/pRtupHv0OgBmObcNGXM3ec6/pOXTOOUYY9/5bfluzz0sw==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/js-base64": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", @@ -11907,6 +12048,14 @@ "node": ">=0.10.0" } }, + "node_modules/JSONSelect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", + "integrity": "sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==", + "engines": { + "node": ">=0.4.7" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -11976,6 +12125,17 @@ "node": ">= 0.8.0" } }, + "node_modules/lex": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/lex/-/lex-1.7.4.tgz", + "integrity": "sha512-9B1SLZjx8ZjYJx8AmlbVjeqYDllU7PCWwE/VYgq4DJ5gePjbzgdms+MC7tsj1tdyRp7O6BfXTTDHJnPiiPV0Pw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/lex-parser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", + "integrity": "sha512-DuAEISsr1H4LOpmFLkyMc8YStiRWZCO8hMsoXAXSbgyfvs2WQhSt0+/FBv3ZU/JBFZMGcE+FWzEBSzwUU7U27w==" + }, "node_modules/lilconfig": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", @@ -12961,6 +13121,19 @@ "node": ">=8" } }, + "node_modules/nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==", + "deprecated": "Package no longer supported. Contact support@npmjs.com for more info.", + "dependencies": { + "colors": "0.5.x", + "underscore": "1.1.x" + }, + "engines": { + "node": "*" + } + }, "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -15220,6 +15393,36 @@ "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", "dev": true }, + "node_modules/react-hook-form": { + "version": "7.42.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.42.1.tgz", + "integrity": "sha512-2UIGqwMZksd5HS55crTT1ATLTr0rAI4jS7yVuqTaoRVDhY2Qc4IyjskCmpnmdYqUNOYFy04vW253tb2JRVh+IQ==", + "peer": true, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-input-mask": { + "version": "3.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/react-input-mask/-/react-input-mask-3.0.0-alpha.2.tgz", + "integrity": "sha512-9U7qL+mvDMOJcbOFPdt6Vj+zzmCMNnBjhhjGDrL8BGQmymgvMVKhu/oOVfAkl+5VWOsLr+G3EhZOmae5fBcAkA==", + "dependencies": { + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -15553,6 +15756,18 @@ "@babel/runtime": "^7.8.4" } }, + "node_modules/regex": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-0.1.1.tgz", + "integrity": "sha512-aZ/uNt2gUw9aD0K18LFAHdOUKsHL2fSny9YLqcxDfLmZOTK8mZxueHsAikh3UjPGZlmr4J3sdCNMPTp1wPR5hA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "augment": "3.2.1", + "jison": "0.4.4", + "lex": "1.7.4", + "statemachines": "0.1.0" + } + }, "node_modules/regex-parser": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", @@ -16401,6 +16616,12 @@ "node": ">= 10" } }, + "node_modules/sorted-array": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/sorted-array/-/sorted-array-1.1.0.tgz", + "integrity": "sha512-jZgZDuFkeb3MJ9dE88/vlK7IB4C1Fip5oyCgabmxk8885dQP+zfZAq88RWzD+4KUskhHETVmDkMtERzRclI6fg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -16572,6 +16793,16 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, + "node_modules/statemachines": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/statemachines/-/statemachines-0.1.0.tgz", + "integrity": "sha512-RYZMSj20+WOobiIiBkCPUlZlJlnzPwzJ5DR6KA91RmxTBbe7EDB+ISNd2jU7QcI08BubqgL3bHFRhiL/KR3lYQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "augment": "3.2.1", + "sorted-array": "1.1.0" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -17410,6 +17641,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==", + "engines": { + "node": "*" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -20034,6 +20273,12 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "devOptional": true }, + "@hookform/resolvers": { + "version": "2.9.10", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-2.9.10.tgz", + "integrity": "sha512-JIL1DgJIlH9yuxcNGtyhsWX/PgNltz+5Gr6+8SX9fhXc/hPbEIk6wPI82nhgvp3uUb6ZfAM5mqg/x7KR7NAb+A==", + "requires": {} + }, "@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", @@ -21307,6 +21552,23 @@ "@types/react": "*" } }, + "@types/react-input-mask": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/react-input-mask/-/react-input-mask-3.0.2.tgz", + "integrity": "sha512-WTli3kUyvUqqaOLYG/so2pLqUvRb+n4qnx2He5klfqZDiQmRyD07jVIt/bco/1BrcErkPMtpOm+bHii4Oed6cQ==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-maskedinput": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/react-maskedinput/-/react-maskedinput-4.0.6.tgz", + "integrity": "sha512-rLm0t4CcCE0smsOVgZTzwT/amDDBh1sL46V+V22JIeyChibCM7Oe3TNSk66oJK0fHishDyzRg7pd+sH4sozGqg==", + "requires": { + "@types/react": "*" + } + }, "@types/react-modal": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/@types/react-modal/-/react-modal-3.13.1.tgz", @@ -21316,6 +21578,15 @@ "@types/react": "*" } }, + "@types/react-text-mask": { + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/@types/react-text-mask/-/react-text-mask-5.4.11.tgz", + "integrity": "sha512-DIJ3/dS4jd7NK3lEgsOwcgpp+ZlVrNJEiUDRayZRE/PNMbV/nLWmOKGdL0BUS29hnx0CDgITgPudKx0BgbF5fA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, "@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -22005,6 +22276,11 @@ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, + "augment": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/augment/-/augment-3.2.1.tgz", + "integrity": "sha512-g5E3vuN1RvCvCqNLKeNOyvTO4RbpOyasUjc/e8dnK9ecg9J9nrSv8N2PxDdnaBXYgmiTAErnen2harV2euPpEA==" + }, "autoprefixer": { "version": "10.4.13", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", @@ -22696,6 +22972,11 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha512-XjsuUwpDeY98+yz959OlUK6m7mLBM+1MEG5oaenfuQnNnrQk1WvtcvFgN3FNDP3f2NmZ211t0mNEfSEN1h0eIg==" + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -23439,6 +23720,11 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, + "ebnf-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", + "integrity": "sha512-urvSxVQ6XJcoTpc+/x2pWhhuOX4aljCNQpwzw+ifZvV1andZkAmiJc3Rq1oGEAQmcjiLceyMXOy1l8ms8qs2fQ==" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -25285,6 +25571,14 @@ "side-channel": "^1.0.4" } }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -27050,6 +27344,51 @@ } } }, + "jison": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.4.tgz", + "integrity": "sha512-8KfKaIIngog2VR5UfEmPhcK1i/2XbBzL5KZbuG8M0qLsYWnodWqq7x28XLsee0RazE0Z2OQAaG9/VCk7gi4VOA==", + "requires": { + "ebnf-parser": "0.1.x", + "escodegen": "0.0.21", + "esprima": "1.0.x", + "jison-lex": "0.2.x", + "JSONSelect": "0.4.0", + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + }, + "dependencies": { + "escodegen": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", + "integrity": "sha512-BQL5g+BqyrM5HRAKt4Q4YuH9CqiEcIHWSJ8fg2PRNkGkXn/LgzeDCZzDDSX4UiljSAHgXaHgOZREQ2xOigbLzA==", + "requires": { + "esprima": "~1.0.2", + "estraverse": "~0.0.4", + "source-map": ">= 0.1.2" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==" + }, + "estraverse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", + "integrity": "sha512-21DfBCsFJGb3HZr0vEBH1Wk1tGSbbzA8I/xtSSoy/pRtupHv0OgBmObcNGXM3ec6/pOXTOOUYY9/5bfluzz0sw==" + } + } + }, + "jison-lex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", + "integrity": "sha512-WCNVPRxaTWdhwJAIrBsgkGT9n6H1yNR9Lfof5LUHaMul24ySrJ1SXbVPszZfs57jwXvASLWBpd0xpFEW2oIuVA==", + "requires": { + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + } + }, "js-base64": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", @@ -27153,6 +27492,11 @@ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" }, + "JSONSelect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", + "integrity": "sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==" + }, "jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -27204,6 +27548,16 @@ "type-check": "~0.4.0" } }, + "lex": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/lex/-/lex-1.7.4.tgz", + "integrity": "sha512-9B1SLZjx8ZjYJx8AmlbVjeqYDllU7PCWwE/VYgq4DJ5gePjbzgdms+MC7tsj1tdyRp7O6BfXTTDHJnPiiPV0Pw==" + }, + "lex-parser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", + "integrity": "sha512-DuAEISsr1H4LOpmFLkyMc8YStiRWZCO8hMsoXAXSbgyfvs2WQhSt0+/FBv3ZU/JBFZMGcE+FWzEBSzwUU7U27w==" + }, "lilconfig": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", @@ -27973,6 +28327,15 @@ } } }, + "nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw==", + "requires": { + "colors": "0.5.x", + "underscore": "1.1.x" + } + }, "nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -29414,6 +29777,23 @@ "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", "dev": true }, + "react-hook-form": { + "version": "7.42.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.42.1.tgz", + "integrity": "sha512-2UIGqwMZksd5HS55crTT1ATLTr0rAI4jS7yVuqTaoRVDhY2Qc4IyjskCmpnmdYqUNOYFy04vW253tb2JRVh+IQ==", + "peer": true, + "requires": {} + }, + "react-input-mask": { + "version": "3.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/react-input-mask/-/react-input-mask-3.0.0-alpha.2.tgz", + "integrity": "sha512-9U7qL+mvDMOJcbOFPdt6Vj+zzmCMNnBjhhjGDrL8BGQmymgvMVKhu/oOVfAkl+5VWOsLr+G3EhZOmae5fBcAkA==", + "requires": { + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "warning": "^4.0.3" + } + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -29673,6 +30053,17 @@ "@babel/runtime": "^7.8.4" } }, + "regex": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-0.1.1.tgz", + "integrity": "sha512-aZ/uNt2gUw9aD0K18LFAHdOUKsHL2fSny9YLqcxDfLmZOTK8mZxueHsAikh3UjPGZlmr4J3sdCNMPTp1wPR5hA==", + "requires": { + "augment": "3.2.1", + "jison": "0.4.4", + "lex": "1.7.4", + "statemachines": "0.1.0" + } + }, "regex-parser": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", @@ -30286,6 +30677,11 @@ "socks": "^2.6.2" } }, + "sorted-array": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/sorted-array/-/sorted-array-1.1.0.tgz", + "integrity": "sha512-jZgZDuFkeb3MJ9dE88/vlK7IB4C1Fip5oyCgabmxk8885dQP+zfZAq88RWzD+4KUskhHETVmDkMtERzRclI6fg==" + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -30428,6 +30824,15 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, + "statemachines": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/statemachines/-/statemachines-0.1.0.tgz", + "integrity": "sha512-RYZMSj20+WOobiIiBkCPUlZlJlnzPwzJ5DR6KA91RmxTBbe7EDB+ISNd2jU7QcI08BubqgL3bHFRhiL/KR3lYQ==", + "requires": { + "augment": "3.2.1", + "sorted-array": "1.1.0" + } + }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -31068,6 +31473,11 @@ "which-boxed-primitive": "^1.0.2" } }, + "underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==" + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", diff --git a/package.json b/package.json index eff619f..95eb046 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@hookform/resolvers": "^2.9.10", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -10,10 +11,13 @@ "@types/node": "^16.18.11", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.10", + "@types/react-maskedinput": "^4.0.6", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-input-mask": "^3.0.0-alpha.2", "react-modal": "^3.16.1", "react-scripts": "5.0.1", + "regex": "^0.1.1", "typescript": "^4.9.4", "web-vitals": "^2.1.4" }, @@ -42,7 +46,9 @@ ] }, "devDependencies": { + "@types/react-input-mask": "^3.0.2", "@types/react-modal": "^3.13.1", + "@types/react-text-mask": "^5.4.11", "formik": "^2.2.9", "node-sass": "^8.0.0", "react-text-mask": "^5.5.0", diff --git a/src/assets/img/Ellipse 2.png b/src/assets/img/Ellipse 2.png new file mode 100644 index 0000000..846ba2d Binary files /dev/null and b/src/assets/img/Ellipse 2.png differ diff --git a/src/assets/img/arrow-up.png b/src/assets/img/arrow-up.png new file mode 100644 index 0000000..a9142b1 Binary files /dev/null and b/src/assets/img/arrow-up.png differ diff --git a/src/assets/img/whatsapp.png b/src/assets/img/whatsapp.png new file mode 100644 index 0000000..567e0be Binary files /dev/null and b/src/assets/img/whatsapp.png differ diff --git a/src/components/whats/Scroll.tsx b/src/components/whats/Scroll.tsx new file mode 100644 index 0000000..1a475ff --- /dev/null +++ b/src/components/whats/Scroll.tsx @@ -0,0 +1,22 @@ +import { useState } from "react" +import ArrowUp from '../../assets/img/arrow-up.png'; +import styles from '../../styles/Scroll.module.scss' + +export default function ScrollPage() { + + const [pageYPosition, setPageYPosition] = useState(0); + + function getPageYAfterScroll() { + setPageYPosition(window.scrollY); + } + + window.addEventListener('scroll', getPageYAfterScroll); + + return ( +
+ Abrir +
+ ) +} + + diff --git a/src/components/whats/Whats.tsx b/src/components/whats/Whats.tsx new file mode 100644 index 0000000..30390d9 --- /dev/null +++ b/src/components/whats/Whats.tsx @@ -0,0 +1,21 @@ +import styles from '../../styles/Whats.module.scss' +import Whatsapp from '../../assets/img/whatsapp.png' +import ScrollPage from './Scroll' + + + + + +const Whats = () => { + return ( +
+
+ WhatsApp +
+ +
+ ) +} + +export default Whats + diff --git a/src/index.tsx b/src/index.tsx index 608f505..b0717a0 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -6,6 +6,7 @@ import Header from './components/header/Header'; import Footer from './components/footer/Footer'; import Main from './components/main/Main'; import Menu from './components/header/Menu'; +import Whats from './components/whats/Whats'; const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement @@ -18,6 +19,7 @@ function App() {
setOpenModal(true)}/> setOpenModal(false)}/>
+