diff --git a/front/.eslintrc.cjs b/front/.eslintrc.cjs
index 33b1a19..f8b02b7 100644
--- a/front/.eslintrc.cjs
+++ b/front/.eslintrc.cjs
@@ -45,6 +45,7 @@ module.exports = {
},
],
+ '@typescript-eslint/naming-convention': ' off',
'@typescript-eslint/no-floating-promises': 'off',
// 유효한 aria-* 속성만 사용
'jsx-a11y/aria-props': 'warn',
diff --git a/front/package.json b/front/package.json
index 0aaeff9..c5a9f1a 100644
--- a/front/package.json
+++ b/front/package.json
@@ -14,45 +14,47 @@
"dependencies": {
"@emotion/react": "^11.11.4",
"@emotion/styled": "^11.11.5",
- "@tanstack/react-query": "^5.37.1",
+ "@hookform/error-message": "^2.0.1",
+ "@hookform/resolvers": "^3.4.2",
+ "@tanstack/react-query": "^5.40.0",
"axios": "^1.7.2",
"dayjs": "^1.11.11",
- "react": "^18.2.0",
+ "react": "^18.3.1",
"react-calendar": "^5.0.0",
- "react-dom": "^18.2.0",
+ "react-dom": "^18.3.1",
+ "react-hook-form": "^7.51.5",
"react-hot-toast": "^2.4.1",
"react-icons": "^5.2.1",
"react-router-dom": "^6.23.1",
- "styled-components": "^6.1.11",
+ "zod": "^3.23.8",
"zustand": "^4.5.2"
},
"devDependencies": {
- "@rushstack/eslint-config": "^3.6.10",
+ "@rushstack/eslint-config": "^3.7.0",
"@rushstack/eslint-patch": "^1.10.3",
"@tanstack/eslint-plugin-query": "^5.35.6",
- "@tanstack/react-query-devtools": "^5.37.1",
+ "@tanstack/react-query-devtools": "^5.40.0",
"@testing-library/jest-dom": "^6.4.5",
"@testing-library/react": "^15.0.7",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
- "@types/react": "^18.2.66",
- "@types/react-dom": "^18.2.22",
- "@types/styled-components": "^5.1.34",
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
"@typescript-eslint/eslint-plugin": "6.19.1",
- "@typescript-eslint/parser": "^7.2.0",
- "@vitejs/plugin-react": "^4.2.1",
- "@vitejs/plugin-react-swc": "^3.5.0",
+ "@typescript-eslint/parser": "^7.11.0",
+ "@vitejs/plugin-react": "^4.3.0",
+ "@vitejs/plugin-react-swc": "^3.7.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-no-relative-import-paths": "^1.5.4",
"eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-react-hooks": "^4.6.0",
- "eslint-plugin-react-refresh": "^0.4.6",
- "jsdom": "^24.0.0",
+ "eslint-plugin-react-hooks": "^4.6.2",
+ "eslint-plugin-react-refresh": "^0.4.7",
+ "jsdom": "^24.1.0",
"msw": "^2.3.0",
"prettier": "^3.2.5",
- "typescript": "^5.2.2",
- "vite": "^5.2.0",
+ "typescript": "^5.4.5",
+ "vite": "^5.2.12",
"vitest": "^1.6.0"
},
"msw": {
@@ -60,4 +62,4 @@
"public"
]
}
-}
\ No newline at end of file
+}
diff --git a/front/pnpm-lock.yaml b/front/pnpm-lock.yaml
index 7ac7fab..f7214ca 100644
--- a/front/pnpm-lock.yaml
+++ b/front/pnpm-lock.yaml
@@ -7,13 +7,19 @@ settings:
dependencies:
'@emotion/react':
specifier: ^11.11.4
- version: 11.11.4(@types/react@18.3.2)(react@18.3.1)
+ version: 11.11.4(@types/react@18.3.3)(react@18.3.1)
'@emotion/styled':
specifier: ^11.11.5
- version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.2)(react@18.3.1)
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)
+ '@hookform/error-message':
+ specifier: ^2.0.1
+ version: 2.0.1(react-dom@18.3.1)(react-hook-form@7.51.5)(react@18.3.1)
+ '@hookform/resolvers':
+ specifier: ^3.4.2
+ version: 3.4.2(react-hook-form@7.51.5)
'@tanstack/react-query':
- specifier: ^5.37.1
- version: 5.37.1(react@18.3.1)
+ specifier: ^5.40.0
+ version: 5.40.0(react@18.3.1)
axios:
specifier: ^1.7.2
version: 1.7.2
@@ -21,14 +27,17 @@ dependencies:
specifier: ^1.11.11
version: 1.11.11
react:
- specifier: ^18.2.0
+ specifier: ^18.3.1
version: 18.3.1
react-calendar:
specifier: ^5.0.0
- version: 5.0.0(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)
+ version: 5.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
react-dom:
- specifier: ^18.2.0
+ specifier: ^18.3.1
version: 18.3.1(react@18.3.1)
+ react-hook-form:
+ specifier: ^7.51.5
+ version: 7.51.5(react@18.3.1)
react-hot-toast:
specifier: ^2.4.1
version: 2.4.1(csstype@3.1.3)(react-dom@18.3.1)(react@18.3.1)
@@ -38,17 +47,17 @@ dependencies:
react-router-dom:
specifier: ^6.23.1
version: 6.23.1(react-dom@18.3.1)(react@18.3.1)
- styled-components:
- specifier: ^6.1.11
- version: 6.1.11(react-dom@18.3.1)(react@18.3.1)
+ zod:
+ specifier: ^3.23.8
+ version: 3.23.8
zustand:
specifier: ^4.5.2
- version: 4.5.2(@types/react@18.3.2)(react@18.3.1)
+ version: 4.5.2(@types/react@18.3.3)(react@18.3.1)
devDependencies:
'@rushstack/eslint-config':
- specifier: ^3.6.10
- version: 3.6.10(eslint@8.57.0)(typescript@5.4.5)
+ specifier: ^3.7.0
+ version: 3.7.0(eslint@8.57.0)(typescript@5.4.5)
'@rushstack/eslint-patch':
specifier: ^1.10.3
version: 1.10.3
@@ -56,38 +65,35 @@ devDependencies:
specifier: ^5.35.6
version: 5.35.6(eslint@8.57.0)(typescript@5.4.5)
'@tanstack/react-query-devtools':
- specifier: ^5.37.1
- version: 5.37.1(@tanstack/react-query@5.37.1)(react@18.3.1)
+ specifier: ^5.40.0
+ version: 5.40.0(@tanstack/react-query@5.40.0)(react@18.3.1)
'@testing-library/jest-dom':
specifier: ^6.4.5
version: 6.4.5(vitest@1.6.0)
'@testing-library/react':
specifier: ^15.0.7
- version: 15.0.7(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)
+ version: 15.0.7(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
'@trivago/prettier-plugin-sort-imports':
specifier: ^4.3.0
version: 4.3.0(prettier@3.2.5)
'@types/react':
- specifier: ^18.2.66
- version: 18.3.2
+ specifier: ^18.3.3
+ version: 18.3.3
'@types/react-dom':
- specifier: ^18.2.22
+ specifier: ^18.3.0
version: 18.3.0
- '@types/styled-components':
- specifier: ^5.1.34
- version: 5.1.34
'@typescript-eslint/eslint-plugin':
specifier: 6.19.1
- version: 6.19.1(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.4.5)
+ version: 6.19.1(@typescript-eslint/parser@7.11.0)(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/parser':
- specifier: ^7.2.0
- version: 7.9.0(eslint@8.57.0)(typescript@5.4.5)
+ specifier: ^7.11.0
+ version: 7.11.0(eslint@8.57.0)(typescript@5.4.5)
'@vitejs/plugin-react':
- specifier: ^4.2.1
- version: 4.2.1(vite@5.2.11)
+ specifier: ^4.3.0
+ version: 4.3.0(vite@5.2.12)
'@vitejs/plugin-react-swc':
- specifier: ^3.5.0
- version: 3.6.0(vite@5.2.11)
+ specifier: ^3.7.0
+ version: 3.7.0(vite@5.2.12)
eslint:
specifier: ^8.57.0
version: 8.57.0
@@ -104,14 +110,14 @@ devDependencies:
specifier: ^5.1.3
version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5)
eslint-plugin-react-hooks:
- specifier: ^4.6.0
+ specifier: ^4.6.2
version: 4.6.2(eslint@8.57.0)
eslint-plugin-react-refresh:
- specifier: ^0.4.6
+ specifier: ^0.4.7
version: 0.4.7(eslint@8.57.0)
jsdom:
- specifier: ^24.0.0
- version: 24.0.0
+ specifier: ^24.1.0
+ version: 24.1.0
msw:
specifier: ^2.3.0
version: 2.3.0(typescript@5.4.5)
@@ -119,14 +125,14 @@ devDependencies:
specifier: ^3.2.5
version: 3.2.5
typescript:
- specifier: ^5.2.2
+ specifier: ^5.4.5
version: 5.4.5
vite:
- specifier: ^5.2.0
- version: 5.2.11
+ specifier: ^5.2.12
+ version: 5.2.12
vitest:
specifier: ^1.6.0
- version: 1.6.0(jsdom@24.0.0)
+ version: 1.6.0(jsdom@24.1.0)
packages:
@@ -142,32 +148,32 @@ packages:
'@jridgewell/trace-mapping': 0.3.25
dev: true
- /@babel/code-frame@7.24.2:
- resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
+ /@babel/code-frame@7.24.6:
+ resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/highlight': 7.24.5
+ '@babel/highlight': 7.24.6
picocolors: 1.0.1
- /@babel/compat-data@7.24.4:
- resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==}
+ /@babel/compat-data@7.24.6:
+ resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/core@7.24.5:
- resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==}
+ /@babel/core@7.24.6:
+ resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.24.2
- '@babel/generator': 7.24.5
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
- '@babel/helpers': 7.24.5
- '@babel/parser': 7.24.5
- '@babel/template': 7.24.0
- '@babel/traverse': 7.24.5
- '@babel/types': 7.24.5
+ '@babel/code-frame': 7.24.6
+ '@babel/generator': 7.24.6
+ '@babel/helper-compilation-targets': 7.24.6
+ '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6)
+ '@babel/helpers': 7.24.6
+ '@babel/parser': 7.24.6
+ '@babel/template': 7.24.6
+ '@babel/traverse': 7.24.6
+ '@babel/types': 7.24.6
convert-source-map: 2.0.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@@ -186,192 +192,189 @@ packages:
source-map: 0.5.7
dev: true
- /@babel/generator@7.24.5:
- resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==}
+ /@babel/generator@7.24.6:
+ resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.24.6
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
jsesc: 2.5.2
dev: true
- /@babel/helper-compilation-targets@7.23.6:
- resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
+ /@babel/helper-compilation-targets@7.24.6:
+ resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/compat-data': 7.24.4
- '@babel/helper-validator-option': 7.23.5
+ '@babel/compat-data': 7.24.6
+ '@babel/helper-validator-option': 7.24.6
browserslist: 4.23.0
lru-cache: 5.1.1
semver: 6.3.1
dev: true
- /@babel/helper-environment-visitor@7.22.20:
- resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
+ /@babel/helper-environment-visitor@7.24.6:
+ resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-function-name@7.23.0:
- resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
+ /@babel/helper-function-name@7.24.6:
+ resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.24.0
- '@babel/types': 7.24.5
+ '@babel/template': 7.24.6
+ '@babel/types': 7.24.6
dev: true
- /@babel/helper-hoist-variables@7.22.5:
- resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
+ /@babel/helper-hoist-variables@7.24.6:
+ resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.24.6
dev: true
- /@babel/helper-module-imports@7.24.3:
- resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
+ /@babel/helper-module-imports@7.24.6:
+ resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.24.6
- /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5):
- resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==}
+ /@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6):
+ resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.24.5
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-module-imports': 7.24.3
- '@babel/helper-simple-access': 7.24.5
- '@babel/helper-split-export-declaration': 7.24.5
- '@babel/helper-validator-identifier': 7.24.5
+ '@babel/core': 7.24.6
+ '@babel/helper-environment-visitor': 7.24.6
+ '@babel/helper-module-imports': 7.24.6
+ '@babel/helper-simple-access': 7.24.6
+ '@babel/helper-split-export-declaration': 7.24.6
+ '@babel/helper-validator-identifier': 7.24.6
dev: true
- /@babel/helper-plugin-utils@7.24.5:
- resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==}
+ /@babel/helper-plugin-utils@7.24.6:
+ resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-simple-access@7.24.5:
- resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==}
+ /@babel/helper-simple-access@7.24.6:
+ resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.24.6
dev: true
- /@babel/helper-split-export-declaration@7.24.5:
- resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==}
+ /@babel/helper-split-export-declaration@7.24.6:
+ resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.24.6
dev: true
- /@babel/helper-string-parser@7.24.1:
- resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
+ /@babel/helper-string-parser@7.24.6:
+ resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==}
engines: {node: '>=6.9.0'}
- /@babel/helper-validator-identifier@7.24.5:
- resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==}
+ /@babel/helper-validator-identifier@7.24.6:
+ resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==}
engines: {node: '>=6.9.0'}
- /@babel/helper-validator-option@7.23.5:
- resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
+ /@babel/helper-validator-option@7.24.6:
+ resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helpers@7.24.5:
- resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==}
+ /@babel/helpers@7.24.6:
+ resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.24.0
- '@babel/traverse': 7.24.5
- '@babel/types': 7.24.5
- transitivePeerDependencies:
- - supports-color
+ '@babel/template': 7.24.6
+ '@babel/types': 7.24.6
dev: true
- /@babel/highlight@7.24.5:
- resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==}
+ /@babel/highlight@7.24.6:
+ resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-validator-identifier': 7.24.5
+ '@babel/helper-validator-identifier': 7.24.6
chalk: 2.4.2
js-tokens: 4.0.0
picocolors: 1.0.1
- /@babel/parser@7.24.5:
- resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==}
+ /@babel/parser@7.24.6:
+ resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.17.0
dev: true
- /@babel/plugin-transform-react-jsx-self@7.24.5(@babel/core@7.24.5):
- resolution: {integrity: sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==}
+ /@babel/plugin-transform-react-jsx-self@7.24.6(@babel/core@7.24.6):
+ resolution: {integrity: sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.24.5
- '@babel/helper-plugin-utils': 7.24.5
+ '@babel/core': 7.24.6
+ '@babel/helper-plugin-utils': 7.24.6
dev: true
- /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.5):
- resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==}
+ /@babel/plugin-transform-react-jsx-source@7.24.6(@babel/core@7.24.6):
+ resolution: {integrity: sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.24.5
- '@babel/helper-plugin-utils': 7.24.5
+ '@babel/core': 7.24.6
+ '@babel/helper-plugin-utils': 7.24.6
dev: true
- /@babel/runtime@7.24.5:
- resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==}
+ /@babel/runtime@7.24.6:
+ resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.1
- /@babel/template@7.24.0:
- resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
+ /@babel/template@7.24.6:
+ resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.24.2
- '@babel/parser': 7.24.5
- '@babel/types': 7.24.5
+ '@babel/code-frame': 7.24.6
+ '@babel/parser': 7.24.6
+ '@babel/types': 7.24.6
dev: true
/@babel/traverse@7.23.2:
resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.24.2
- '@babel/generator': 7.24.5
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-split-export-declaration': 7.24.5
- '@babel/parser': 7.24.5
- '@babel/types': 7.24.5
+ '@babel/code-frame': 7.24.6
+ '@babel/generator': 7.24.6
+ '@babel/helper-environment-visitor': 7.24.6
+ '@babel/helper-function-name': 7.24.6
+ '@babel/helper-hoist-variables': 7.24.6
+ '@babel/helper-split-export-declaration': 7.24.6
+ '@babel/parser': 7.24.6
+ '@babel/types': 7.24.6
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/traverse@7.24.5:
- resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==}
+ /@babel/traverse@7.24.6:
+ resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.24.2
- '@babel/generator': 7.24.5
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-split-export-declaration': 7.24.5
- '@babel/parser': 7.24.5
- '@babel/types': 7.24.5
+ '@babel/code-frame': 7.24.6
+ '@babel/generator': 7.24.6
+ '@babel/helper-environment-visitor': 7.24.6
+ '@babel/helper-function-name': 7.24.6
+ '@babel/helper-hoist-variables': 7.24.6
+ '@babel/helper-split-export-declaration': 7.24.6
+ '@babel/parser': 7.24.6
+ '@babel/types': 7.24.6
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
@@ -382,16 +385,16 @@ packages:
resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-validator-identifier': 7.24.5
+ '@babel/helper-validator-identifier': 7.24.6
to-fast-properties: 2.0.0
dev: true
- /@babel/types@7.24.5:
- resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==}
+ /@babel/types@7.24.6:
+ resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-string-parser': 7.24.1
- '@babel/helper-validator-identifier': 7.24.5
+ '@babel/helper-string-parser': 7.24.6
+ '@babel/helper-validator-identifier': 7.24.6
to-fast-properties: 2.0.0
/@bundled-es-modules/cookie@2.0.0:
@@ -409,8 +412,8 @@ packages:
/@emotion/babel-plugin@11.11.0:
resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==}
dependencies:
- '@babel/helper-module-imports': 7.24.3
- '@babel/runtime': 7.24.5
+ '@babel/helper-module-imports': 7.24.6
+ '@babel/runtime': 7.24.6
'@emotion/hash': 0.9.1
'@emotion/memoize': 0.8.1
'@emotion/serialize': 1.1.4
@@ -446,7 +449,7 @@ packages:
resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==}
dev: false
- /@emotion/react@11.11.4(@types/react@18.3.2)(react@18.3.1):
+ /@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1):
resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==}
peerDependencies:
'@types/react': '*'
@@ -455,14 +458,14 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.5
+ '@babel/runtime': 7.24.6
'@emotion/babel-plugin': 11.11.0
'@emotion/cache': 11.11.0
'@emotion/serialize': 1.1.4
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
'@emotion/utils': 1.2.1
'@emotion/weak-memoize': 0.3.1
- '@types/react': 18.3.2
+ '@types/react': 18.3.3
hoist-non-react-statics: 3.3.2
react: 18.3.1
dev: false
@@ -481,7 +484,7 @@ packages:
resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==}
dev: false
- /@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.3.2)(react@18.3.1):
+ /@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1):
resolution: {integrity: sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==}
peerDependencies:
'@emotion/react': ^11.0.0-rc.0
@@ -491,14 +494,14 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.5
+ '@babel/runtime': 7.24.6
'@emotion/babel-plugin': 11.11.0
'@emotion/is-prop-valid': 1.2.2
- '@emotion/react': 11.11.4(@types/react@18.3.2)(react@18.3.1)
+ '@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
'@emotion/serialize': 1.1.4
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
'@emotion/utils': 1.2.1
- '@types/react': 18.3.2
+ '@types/react': 18.3.3
react: 18.3.1
dev: false
@@ -766,6 +769,26 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
+ /@hookform/error-message@2.0.1(react-dom@18.3.1)(react-hook-form@7.51.5)(react@18.3.1):
+ resolution: {integrity: sha512-U410sAr92xgxT1idlu9WWOVjndxLdgPUHEB8Schr27C9eh7/xUnITWpCMF93s+lGiG++D4JnbSnrb5A21AdSNg==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+ react-hook-form: ^7.0.0
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-hook-form: 7.51.5(react@18.3.1)
+ dev: false
+
+ /@hookform/resolvers@3.4.2(react-hook-form@7.51.5):
+ resolution: {integrity: sha512-1m9uAVIO8wVf7VCDAGsuGA0t6Z3m6jVGAN50HkV9vYLl0yixKK/Z1lr01vaRvYCkIKGoy1noVRxMzQYb4y/j1Q==}
+ peerDependencies:
+ react-hook-form: ^7.0.0
+ dependencies:
+ react-hook-form: 7.51.5(react@18.3.1)
+ dev: false
+
/@humanwhocodes/config-array@0.11.14:
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
engines: {node: '>=10.10.0'}
@@ -860,17 +883,17 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.15
dev: true
- /@microsoft/tsdoc-config@0.16.2:
- resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==}
+ /@microsoft/tsdoc-config@0.17.0:
+ resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==}
dependencies:
- '@microsoft/tsdoc': 0.14.2
- ajv: 6.12.6
+ '@microsoft/tsdoc': 0.15.0
+ ajv: 8.12.0
jju: 1.4.0
- resolve: 1.19.0
+ resolve: 1.22.8
dev: true
- /@microsoft/tsdoc@0.14.2:
- resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==}
+ /@microsoft/tsdoc@0.15.0:
+ resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==}
dev: true
/@mswjs/cookies@1.1.0:
@@ -936,136 +959,136 @@ packages:
engines: {node: '>=14.0.0'}
dev: false
- /@rollup/rollup-android-arm-eabi@4.17.2:
- resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==}
+ /@rollup/rollup-android-arm-eabi@4.18.0:
+ resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-android-arm64@4.17.2:
- resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==}
+ /@rollup/rollup-android-arm64@4.18.0:
+ resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-darwin-arm64@4.17.2:
- resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==}
+ /@rollup/rollup-darwin-arm64@4.18.0:
+ resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-darwin-x64@4.17.2:
- resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==}
+ /@rollup/rollup-darwin-x64@4.18.0:
+ resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm-gnueabihf@4.17.2:
- resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==}
+ /@rollup/rollup-linux-arm-gnueabihf@4.18.0:
+ resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm-musleabihf@4.17.2:
- resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==}
+ /@rollup/rollup-linux-arm-musleabihf@4.18.0:
+ resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm64-gnu@4.17.2:
- resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==}
+ /@rollup/rollup-linux-arm64-gnu@4.18.0:
+ resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm64-musl@4.17.2:
- resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==}
+ /@rollup/rollup-linux-arm64-musl@4.18.0:
+ resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-powerpc64le-gnu@4.17.2:
- resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==}
+ /@rollup/rollup-linux-powerpc64le-gnu@4.18.0:
+ resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-riscv64-gnu@4.17.2:
- resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==}
+ /@rollup/rollup-linux-riscv64-gnu@4.18.0:
+ resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-s390x-gnu@4.17.2:
- resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==}
+ /@rollup/rollup-linux-s390x-gnu@4.18.0:
+ resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-x64-gnu@4.17.2:
- resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==}
+ /@rollup/rollup-linux-x64-gnu@4.18.0:
+ resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-x64-musl@4.17.2:
- resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==}
+ /@rollup/rollup-linux-x64-musl@4.18.0:
+ resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-arm64-msvc@4.17.2:
- resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==}
+ /@rollup/rollup-win32-arm64-msvc@4.18.0:
+ resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-ia32-msvc@4.17.2:
- resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==}
+ /@rollup/rollup-win32-ia32-msvc@4.18.0:
+ resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-x64-msvc@4.17.2:
- resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==}
+ /@rollup/rollup-win32-x64-msvc@4.18.0:
+ resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@rushstack/eslint-config@3.6.10(eslint@8.57.0)(typescript@5.4.5):
- resolution: {integrity: sha512-Q0g5j0RuvLghsfRxczyyZXROMCZ4Gn994GGZoDeBJD/+MR2SACakmj3fw8WkG4gXUSrFPZoLlLPakRW4sYKHLg==}
+ /@rushstack/eslint-config@3.7.0(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-9AWc0eIElbrTm9VTfdjaXeqrS7gGoZJ7oMmUdUX0dtPzYrWBHLCuR4eOgLo3pQIC+HyLFt/AzX1ontQTJlWjtQ==}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
typescript: '>=4.7.0'
@@ -1081,7 +1104,7 @@ packages:
eslint: 8.57.0
eslint-plugin-promise: 6.1.1(eslint@8.57.0)
eslint-plugin-react: 7.33.2(eslint@8.57.0)
- eslint-plugin-tsdoc: 0.2.17
+ eslint-plugin-tsdoc: 0.3.0
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
@@ -1275,38 +1298,38 @@ packages:
- typescript
dev: true
- /@tanstack/query-core@5.36.1:
- resolution: {integrity: sha512-BteWYEPUcucEu3NBcDAgKuI4U25R9aPrHSP6YSf2NvaD2pSlIQTdqOfLRsxH9WdRYg7k0Uom35Uacb6nvbIMJg==}
+ /@tanstack/query-core@5.40.0:
+ resolution: {integrity: sha512-eD8K8jsOIq0Z5u/QbvOmfvKKE/XC39jA7yv4hgpl/1SRiU+J8QCIwgM/mEHuunQsL87dcvnHqSVLmf9pD4CiaA==}
/@tanstack/query-devtools@5.37.1:
resolution: {integrity: sha512-XcG4IIHIv0YQKrexTqo2zogQWR1Sz672tX2KsfE9kzB+9zhx44vRKH5si4WDILE1PIWQpStFs/NnrDQrBAUQpg==}
dev: true
- /@tanstack/react-query-devtools@5.37.1(@tanstack/react-query@5.37.1)(react@18.3.1):
- resolution: {integrity: sha512-fWL3rV/avL9HsHt3RVYxuLCqSHghBwSGPIUMDZ9hfg9PDjQaeI9d8kJj6yLoCBWUhTue5/rQbISvFtr+yxyYyA==}
+ /@tanstack/react-query-devtools@5.40.0(@tanstack/react-query@5.40.0)(react@18.3.1):
+ resolution: {integrity: sha512-JoQOQj/LKaHoHVMAh73R0pc4lIAHiZMV8L4DGHsTSvHcKi22LZmSC9aYBY9oMkqGpFtKmbspwrUIn55+czNSbA==}
peerDependencies:
- '@tanstack/react-query': ^5.37.1
- react: ^18.0.0
+ '@tanstack/react-query': ^5.40.0
+ react: ^18 || ^19
dependencies:
'@tanstack/query-devtools': 5.37.1
- '@tanstack/react-query': 5.37.1(react@18.3.1)
+ '@tanstack/react-query': 5.40.0(react@18.3.1)
react: 18.3.1
dev: true
- /@tanstack/react-query@5.37.1(react@18.3.1):
- resolution: {integrity: sha512-EhtBNA8GL3XFeSx6VYUjXQ96n44xe3JGKZCzBINrCYlxbZP6UwBafv7ti4eSRWc2Fy+fybQre0w17gR6lMzULA==}
+ /@tanstack/react-query@5.40.0(react@18.3.1):
+ resolution: {integrity: sha512-iv/W0Axc4aXhFzkrByToE1JQqayxTPNotCoSCnarR/A1vDIHaoKpg7FTIfP3Ev2mbKn1yrxq0ZKYUdLEJxs6Tg==}
peerDependencies:
react: ^18.0.0
dependencies:
- '@tanstack/query-core': 5.36.1
+ '@tanstack/query-core': 5.40.0
react: 18.3.1
/@testing-library/dom@10.1.0:
resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==}
engines: {node: '>=18'}
dependencies:
- '@babel/code-frame': 7.24.2
- '@babel/runtime': 7.24.5
+ '@babel/code-frame': 7.24.6
+ '@babel/runtime': 7.24.6
'@types/aria-query': 5.0.4
aria-query: 5.3.0
chalk: 4.1.2
@@ -1337,17 +1360,17 @@ packages:
optional: true
dependencies:
'@adobe/css-tools': 4.3.3
- '@babel/runtime': 7.24.5
+ '@babel/runtime': 7.24.6
aria-query: 5.3.0
chalk: 3.0.0
css.escape: 1.5.1
dom-accessibility-api: 0.6.3
lodash: 4.17.21
redent: 3.0.0
- vitest: 1.6.0(jsdom@24.0.0)
+ vitest: 1.6.0(jsdom@24.1.0)
dev: true
- /@testing-library/react@15.0.7(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1):
+ /@testing-library/react@15.0.7(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
resolution: {integrity: sha512-cg0RvEdD1TIhhkm1IeYMQxrzy0MtUNfa3minv4MjbgcYzJAZ7yD0i0lwoPOTPr+INtiXFezt2o8xMSnyHhEn2Q==}
engines: {node: '>=18'}
peerDependencies:
@@ -1358,9 +1381,9 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.5
+ '@babel/runtime': 7.24.6
'@testing-library/dom': 10.1.0
- '@types/react': 18.3.2
+ '@types/react': 18.3.3
'@types/react-dom': 18.3.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -1376,7 +1399,7 @@ packages:
optional: true
dependencies:
'@babel/generator': 7.17.7
- '@babel/parser': 7.24.5
+ '@babel/parser': 7.24.6
'@babel/traverse': 7.23.2
'@babel/types': 7.17.0
javascript-natural-sort: 0.7.1
@@ -1393,30 +1416,30 @@ packages:
/@types/babel__core@7.20.5:
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
dependencies:
- '@babel/parser': 7.24.5
- '@babel/types': 7.24.5
+ '@babel/parser': 7.24.6
+ '@babel/types': 7.24.6
'@types/babel__generator': 7.6.8
'@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.20.5
+ '@types/babel__traverse': 7.20.6
dev: true
/@types/babel__generator@7.6.8:
resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.24.6
dev: true
/@types/babel__template@7.4.4:
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
dependencies:
- '@babel/parser': 7.24.5
- '@babel/types': 7.24.5
+ '@babel/parser': 7.24.6
+ '@babel/types': 7.24.6
dev: true
- /@types/babel__traverse@7.20.5:
- resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
+ /@types/babel__traverse@7.20.6:
+ resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.24.6
dev: true
/@types/cookie@0.6.0:
@@ -1427,13 +1450,6 @@ packages:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: true
- /@types/hoist-non-react-statics@3.3.5:
- resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==}
- dependencies:
- '@types/react': 18.3.2
- hoist-non-react-statics: 3.3.2
- dev: true
-
/@types/json-schema@7.0.15:
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
dev: true
@@ -1460,11 +1476,11 @@ packages:
/@types/react-dom@18.3.0:
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
dependencies:
- '@types/react': 18.3.2
+ '@types/react': 18.3.3
dev: true
- /@types/react@18.3.2:
- resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==}
+ /@types/react@18.3.3:
+ resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==}
dependencies:
'@types/prop-types': 15.7.12
csstype: 3.1.3
@@ -1477,18 +1493,6 @@ packages:
resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==}
dev: true
- /@types/styled-components@5.1.34:
- resolution: {integrity: sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA==}
- dependencies:
- '@types/hoist-non-react-statics': 3.3.5
- '@types/react': 18.3.2
- csstype: 3.1.3
- dev: true
-
- /@types/stylis@4.2.5:
- resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==}
- dev: false
-
/@types/wrap-ansi@3.0.0:
resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==}
dev: true
@@ -1522,7 +1526,7 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.4.5):
+ /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@7.11.0)(eslint@8.57.0)(typescript@5.4.5):
resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
@@ -1534,7 +1538,7 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/parser': 7.11.0(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/scope-manager': 6.19.1
'@typescript-eslint/type-utils': 6.19.1(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/utils': 6.19.1(eslint@8.57.0)(typescript@5.4.5)
@@ -1572,8 +1576,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5):
- resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==}
+ /@typescript-eslint/parser@7.11.0(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-yimw99teuaXVWsBcPO1Ais02kwJ1jmNA1KxE7ng0aT7ndr1pT1wqj0OJnsYVGKKlc4QJai86l/025L6z8CljOg==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -1582,10 +1586,10 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 7.9.0
- '@typescript-eslint/types': 7.9.0
- '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
- '@typescript-eslint/visitor-keys': 7.9.0
+ '@typescript-eslint/scope-manager': 7.11.0
+ '@typescript-eslint/types': 7.11.0
+ '@typescript-eslint/typescript-estree': 7.11.0(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 7.11.0
debug: 4.3.4
eslint: 8.57.0
typescript: 5.4.5
@@ -1609,12 +1613,12 @@ packages:
'@typescript-eslint/visitor-keys': 6.21.0
dev: true
- /@typescript-eslint/scope-manager@7.9.0:
- resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==}
+ /@typescript-eslint/scope-manager@7.11.0:
+ resolution: {integrity: sha512-27tGdVEiutD4POirLZX4YzT180vevUURJl4wJGmm6TrQoiYwuxTIY98PBp6L2oN+JQxzE0URvYlzJaBHIekXAw==}
engines: {node: ^18.18.0 || >=20.0.0}
dependencies:
- '@typescript-eslint/types': 7.9.0
- '@typescript-eslint/visitor-keys': 7.9.0
+ '@typescript-eslint/types': 7.11.0
+ '@typescript-eslint/visitor-keys': 7.11.0
dev: true
/@typescript-eslint/type-utils@6.19.1(eslint@8.57.0)(typescript@5.4.5):
@@ -1647,8 +1651,8 @@ packages:
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
- /@typescript-eslint/types@7.9.0:
- resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==}
+ /@typescript-eslint/types@7.11.0:
+ resolution: {integrity: sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w==}
engines: {node: ^18.18.0 || >=20.0.0}
dev: true
@@ -1696,8 +1700,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5):
- resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==}
+ /@typescript-eslint/typescript-estree@7.11.0(typescript@5.4.5):
+ resolution: {integrity: sha512-cxkhZ2C/iyi3/6U9EPc5y+a6csqHItndvN/CzbNXTNrsC3/ASoYQZEt9uMaEp+xFNjasqQyszp5TumAVKKvJeQ==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
typescript: '*'
@@ -1705,8 +1709,8 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 7.9.0
- '@typescript-eslint/visitor-keys': 7.9.0
+ '@typescript-eslint/types': 7.11.0
+ '@typescript-eslint/visitor-keys': 7.11.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
@@ -1772,11 +1776,11 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
- /@typescript-eslint/visitor-keys@7.9.0:
- resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==}
+ /@typescript-eslint/visitor-keys@7.11.0:
+ resolution: {integrity: sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ==}
engines: {node: ^18.18.0 || >=20.0.0}
dependencies:
- '@typescript-eslint/types': 7.9.0
+ '@typescript-eslint/types': 7.11.0
eslint-visitor-keys: 3.4.3
dev: true
@@ -1784,29 +1788,29 @@ packages:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
- /@vitejs/plugin-react-swc@3.6.0(vite@5.2.11):
- resolution: {integrity: sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==}
+ /@vitejs/plugin-react-swc@3.7.0(vite@5.2.12):
+ resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==}
peerDependencies:
vite: ^4 || ^5
dependencies:
'@swc/core': 1.5.7
- vite: 5.2.11
+ vite: 5.2.12
transitivePeerDependencies:
- '@swc/helpers'
dev: true
- /@vitejs/plugin-react@4.2.1(vite@5.2.11):
- resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==}
+ /@vitejs/plugin-react@4.3.0(vite@5.2.12):
+ resolution: {integrity: sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.2.0 || ^5.0.0
dependencies:
- '@babel/core': 7.24.5
- '@babel/plugin-transform-react-jsx-self': 7.24.5(@babel/core@7.24.5)
- '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.5)
+ '@babel/core': 7.24.6
+ '@babel/plugin-transform-react-jsx-self': 7.24.6(@babel/core@7.24.6)
+ '@babel/plugin-transform-react-jsx-source': 7.24.6(@babel/core@7.24.6)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
- vite: 5.2.11
+ vite: 5.2.12
transitivePeerDependencies:
- supports-color
dev: true
@@ -1891,6 +1895,15 @@ packages:
uri-js: 4.4.1
dev: true
+ /ajv@8.12.0:
+ resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+ dev: true
+
/ansi-escapes@4.3.2:
resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
engines: {node: '>=8'}
@@ -2043,9 +2056,9 @@ packages:
resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
engines: {node: '>=10', npm: '>=6'}
dependencies:
- '@babel/runtime': 7.24.5
+ '@babel/runtime': 7.24.6
cosmiconfig: 7.1.0
- resolve: 1.19.0
+ resolve: 1.22.8
dev: false
/balanced-match@1.0.2:
@@ -2065,11 +2078,11 @@ packages:
balanced-match: 1.0.2
dev: true
- /braces@3.0.2:
- resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ /braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
dependencies:
- fill-range: 7.0.1
+ fill-range: 7.1.1
dev: true
/browserslist@4.23.0:
@@ -2077,8 +2090,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001620
- electron-to-chromium: 1.4.774
+ caniuse-lite: 1.0.30001625
+ electron-to-chromium: 1.4.783
node-releases: 2.0.14
update-browserslist-db: 1.0.16(browserslist@4.23.0)
dev: true
@@ -2103,12 +2116,8 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- /camelize@1.0.1:
- resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==}
- dev: false
-
- /caniuse-lite@1.0.30001620:
- resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==}
+ /caniuse-lite@1.0.30001625:
+ resolution: {integrity: sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==}
dev: true
/chai@4.4.1:
@@ -2244,19 +2253,6 @@ packages:
which: 2.0.2
dev: true
- /css-color-keywords@1.0.0:
- resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==}
- engines: {node: '>=4'}
- dev: false
-
- /css-to-react-native@3.2.0:
- resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==}
- dependencies:
- camelize: 1.0.1
- css-color-keywords: 1.0.0
- postcss-value-parser: 4.2.0
- dev: false
-
/css.escape@1.5.1:
resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==}
dev: true
@@ -2402,8 +2398,8 @@ packages:
resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==}
dev: true
- /electron-to-chromium@1.4.774:
- resolution: {integrity: sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==}
+ /electron-to-chromium@1.4.783:
+ resolution: {integrity: sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==}
dev: true
/emoji-regex@8.0.0:
@@ -2599,7 +2595,7 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
dependencies:
- '@babel/runtime': 7.24.5
+ '@babel/runtime': 7.24.6
aria-query: 5.3.0
array-includes: 3.1.8
array.prototype.flatmap: 1.3.2
@@ -2694,11 +2690,11 @@ packages:
string.prototype.matchall: 4.0.11
dev: true
- /eslint-plugin-tsdoc@0.2.17:
- resolution: {integrity: sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==}
+ /eslint-plugin-tsdoc@0.3.0:
+ resolution: {integrity: sha512-0MuFdBrrJVBjT/gyhkP2BqpD0np1NxNLfQ38xXDlSs/KVVpKI2A6vN7jx2Rve/CyUsvOsMGwp9KKrinv7q9g3A==}
dependencies:
- '@microsoft/tsdoc': 0.14.2
- '@microsoft/tsdoc-config': 0.16.2
+ '@microsoft/tsdoc': 0.15.0
+ '@microsoft/tsdoc-config': 0.17.0
dev: true
/eslint-scope@7.2.2:
@@ -2831,7 +2827,7 @@ packages:
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
- micromatch: 4.0.5
+ micromatch: 4.0.7
dev: true
/fast-json-stable-stringify@2.1.0:
@@ -2855,8 +2851,8 @@ packages:
flat-cache: 3.2.0
dev: true
- /fill-range@7.0.1:
- resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ /fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
@@ -3001,6 +2997,7 @@ packages:
/glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Glob versions prior to v9 are no longer supported
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
@@ -3115,6 +3112,7 @@ packages:
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
dependencies:
react-is: 16.13.1
+ dev: false
/html-encoding-sniffer@4.0.0:
resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
@@ -3179,6 +3177,7 @@ packages:
/inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
dependencies:
once: 1.4.0
wrappy: 1.0.2
@@ -3424,8 +3423,8 @@ packages:
argparse: 2.0.1
dev: true
- /jsdom@24.0.0:
- resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==}
+ /jsdom@24.1.0:
+ resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==}
engines: {node: '>=18'}
peerDependencies:
canvas: ^2.11.2
@@ -3443,7 +3442,7 @@ packages:
is-potential-custom-element-name: 1.0.1
nwsapi: 2.2.10
parse5: 7.1.2
- rrweb-cssom: 0.6.0
+ rrweb-cssom: 0.7.0
saxes: 6.0.0
symbol-tree: 3.2.4
tough-cookie: 4.1.4
@@ -3478,6 +3477,10 @@ packages:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
dev: true
+ /json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ dev: true
+
/json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
dev: true
@@ -3504,15 +3507,15 @@ packages:
json-buffer: 3.0.1
dev: true
- /language-subtag-registry@0.3.22:
- resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
+ /language-subtag-registry@0.3.23:
+ resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
dev: true
/language-tags@1.0.9:
resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
engines: {node: '>=0.10'}
dependencies:
- language-subtag-registry: 0.3.22
+ language-subtag-registry: 0.3.23
dev: true
/levn@0.4.1:
@@ -3603,11 +3606,11 @@ packages:
engines: {node: '>= 8'}
dev: true
- /micromatch@4.0.5:
- resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ /micromatch@4.0.7:
+ resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==}
engines: {node: '>=8.6'}
dependencies:
- braces: 3.0.2
+ braces: 3.0.3
picomatch: 2.3.1
dev: true
@@ -3695,7 +3698,7 @@ packages:
outvariant: 1.4.2
path-to-regexp: 6.2.2
strict-event-emitter: 0.5.1
- type-fest: 4.18.2
+ type-fest: 4.18.3
typescript: 5.4.5
yargs: 17.7.2
dev: true
@@ -3709,6 +3712,7 @@ packages:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ dev: true
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@@ -3855,7 +3859,7 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
dependencies:
- '@babel/code-frame': 7.24.2
+ '@babel/code-frame': 7.24.6
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
@@ -3927,10 +3931,6 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /postcss-value-parser@4.2.0:
- resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
- dev: false
-
/postcss@8.4.38:
resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
engines: {node: ^10 || ^12 || >=14}
@@ -3938,6 +3938,7 @@ packages:
nanoid: 3.3.7
picocolors: 1.0.1
source-map-js: 1.2.0
+ dev: true
/prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
@@ -4004,7 +4005,7 @@ packages:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true
- /react-calendar@5.0.0(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1):
+ /react-calendar@5.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
resolution: {integrity: sha512-bHcE5e5f+VUKLd4R19BGkcSQLpuwjKBVG0fKz74cwPW5xDfNsReHdDbfd4z3mdjuUuZzVtw4Q920mkwK5/ZOEg==}
peerDependencies:
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -4014,7 +4015,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.3.2
+ '@types/react': 18.3.3
'@wojtekmaj/date-utils': 1.5.1
clsx: 2.1.1
get-user-locale: 2.3.2
@@ -4032,6 +4033,15 @@ packages:
react: 18.3.1
scheduler: 0.23.2
+ /react-hook-form@7.51.5(react@18.3.1):
+ resolution: {integrity: sha512-J2ILT5gWx1XUIJRETiA7M19iXHlG74+6O3KApzvqB/w8S5NQR7AbU8HVZrMALdmDgWpRPYiZJl0zx8Z4L2mP6Q==}
+ engines: {node: '>=12.22.0'}
+ peerDependencies:
+ react: ^16.8.0 || ^17 || ^18
+ dependencies:
+ react: 18.3.1
+ dev: false
+
/react-hot-toast@2.4.1(csstype@3.1.3)(react-dom@18.3.1)(react@18.3.1):
resolution: {integrity: sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==}
engines: {node: '>=10'}
@@ -4138,6 +4148,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
+ /require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/requires-port@1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
dev: true
@@ -4146,11 +4161,13 @@ packages:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
- /resolve@1.19.0:
- resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==}
+ /resolve@1.22.8:
+ resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+ hasBin: true
dependencies:
is-core-module: 2.13.1
path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
/resolve@2.0.0-next.5:
resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
@@ -4168,34 +4185,35 @@ packages:
/rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
dependencies:
glob: 7.2.3
dev: true
- /rollup@4.17.2:
- resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==}
+ /rollup@4.18.0:
+ resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.17.2
- '@rollup/rollup-android-arm64': 4.17.2
- '@rollup/rollup-darwin-arm64': 4.17.2
- '@rollup/rollup-darwin-x64': 4.17.2
- '@rollup/rollup-linux-arm-gnueabihf': 4.17.2
- '@rollup/rollup-linux-arm-musleabihf': 4.17.2
- '@rollup/rollup-linux-arm64-gnu': 4.17.2
- '@rollup/rollup-linux-arm64-musl': 4.17.2
- '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2
- '@rollup/rollup-linux-riscv64-gnu': 4.17.2
- '@rollup/rollup-linux-s390x-gnu': 4.17.2
- '@rollup/rollup-linux-x64-gnu': 4.17.2
- '@rollup/rollup-linux-x64-musl': 4.17.2
- '@rollup/rollup-win32-arm64-msvc': 4.17.2
- '@rollup/rollup-win32-ia32-msvc': 4.17.2
- '@rollup/rollup-win32-x64-msvc': 4.17.2
+ '@rollup/rollup-android-arm-eabi': 4.18.0
+ '@rollup/rollup-android-arm64': 4.18.0
+ '@rollup/rollup-darwin-arm64': 4.18.0
+ '@rollup/rollup-darwin-x64': 4.18.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.18.0
+ '@rollup/rollup-linux-arm64-gnu': 4.18.0
+ '@rollup/rollup-linux-arm64-musl': 4.18.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.18.0
+ '@rollup/rollup-linux-s390x-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-musl': 4.18.0
+ '@rollup/rollup-win32-arm64-msvc': 4.18.0
+ '@rollup/rollup-win32-ia32-msvc': 4.18.0
+ '@rollup/rollup-win32-x64-msvc': 4.18.0
fsevents: 2.3.3
dev: true
@@ -4203,6 +4221,10 @@ packages:
resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
dev: true
+ /rrweb-cssom@0.7.0:
+ resolution: {integrity: sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g==}
+ dev: true
+
/run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
@@ -4277,10 +4299,6 @@ packages:
has-property-descriptors: 1.0.2
dev: true
- /shallowequal@1.1.0:
- resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
- dev: false
-
/shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -4320,6 +4338,7 @@ packages:
/source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
+ dev: true
/source-map@0.5.7:
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
@@ -4426,34 +4445,10 @@ packages:
js-tokens: 9.0.0
dev: true
- /styled-components@6.1.11(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==}
- engines: {node: '>= 16'}
- peerDependencies:
- react: '>= 16.8.0'
- react-dom: '>= 16.8.0'
- dependencies:
- '@emotion/is-prop-valid': 1.2.2
- '@emotion/unitless': 0.8.1
- '@types/stylis': 4.2.5
- css-to-react-native: 3.2.0
- csstype: 3.1.3
- postcss: 8.4.38
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- shallowequal: 1.1.0
- stylis: 4.3.2
- tslib: 2.6.2
- dev: false
-
/stylis@4.2.0:
resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
dev: false
- /stylis@4.3.2:
- resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==}
- dev: false
-
/supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
@@ -4470,7 +4465,6 @@ packages:
/supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- dev: true
/symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
@@ -4541,6 +4535,7 @@ packages:
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ dev: true
/type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
@@ -4564,8 +4559,8 @@ packages:
engines: {node: '>=10'}
dev: true
- /type-fest@4.18.2:
- resolution: {integrity: sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==}
+ /type-fest@4.18.3:
+ resolution: {integrity: sha512-Q08/0IrpvM+NMY9PA2rti9Jb+JejTddwmwmVQGskAlhtcrw1wsRzoR6ode6mR+OAabNa75w/dxedSUY2mlphaQ==}
engines: {node: '>=16'}
dev: true
@@ -4682,7 +4677,7 @@ packages:
debug: 4.3.4
pathe: 1.1.2
picocolors: 1.0.1
- vite: 5.2.11
+ vite: 5.2.12
transitivePeerDependencies:
- '@types/node'
- less
@@ -4694,8 +4689,8 @@ packages:
- terser
dev: true
- /vite@5.2.11:
- resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==}
+ /vite@5.2.12:
+ resolution: {integrity: sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -4724,12 +4719,12 @@ packages:
dependencies:
esbuild: 0.20.2
postcss: 8.4.38
- rollup: 4.17.2
+ rollup: 4.18.0
optionalDependencies:
fsevents: 2.3.3
dev: true
- /vitest@1.6.0(jsdom@24.0.0):
+ /vitest@1.6.0(jsdom@24.1.0):
resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -4763,7 +4758,7 @@ packages:
chai: 4.4.1
debug: 4.3.4
execa: 8.0.1
- jsdom: 24.0.0
+ jsdom: 24.1.0
local-pkg: 0.5.0
magic-string: 0.30.10
pathe: 1.1.2
@@ -4772,7 +4767,7 @@ packages:
strip-literal: 2.1.0
tinybench: 2.8.0
tinypool: 0.8.4
- vite: 5.2.11
+ vite: 5.2.12
vite-node: 1.6.0
why-is-node-running: 2.2.2
transitivePeerDependencies:
@@ -4980,7 +4975,11 @@ packages:
engines: {node: '>=12.20'}
dev: true
- /zustand@4.5.2(@types/react@18.3.2)(react@18.3.1):
+ /zod@3.23.8:
+ resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
+ dev: false
+
+ /zustand@4.5.2(@types/react@18.3.3)(react@18.3.1):
resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==}
engines: {node: '>=12.7.0'}
peerDependencies:
@@ -4995,7 +4994,7 @@ packages:
react:
optional: true
dependencies:
- '@types/react': 18.3.2
+ '@types/react': 18.3.3
react: 18.3.1
use-sync-external-store: 1.2.0(react@18.3.1)
dev: false
diff --git a/front/src/hooks/queries/group/getMyGroupQuery.ts b/front/src/hooks/queries/group/getMyGroupQuery.ts
new file mode 100644
index 0000000..84cddf8
--- /dev/null
+++ b/front/src/hooks/queries/group/getMyGroupQuery.ts
@@ -0,0 +1,14 @@
+import { getMyGroup } from '@services/group/getMyGroups';
+
+import { useQuery } from '@tanstack/react-query';
+
+export const useMyGroupData = () => {
+ const { data, isPending, isError, error, refetch } = useQuery({
+ queryKey: ['users-group'],
+ queryFn: getMyGroup,
+ refetchOnMount: false,
+ refetchOnWindowFocus: true,
+ });
+
+ return { data, isPending, isError, error, refetch };
+};
diff --git a/front/src/hooks/queries/group/postCreateGroupQuery.ts b/front/src/hooks/queries/group/postCreateGroupQuery.ts
new file mode 100644
index 0000000..dbc96ed
--- /dev/null
+++ b/front/src/hooks/queries/group/postCreateGroupQuery.ts
@@ -0,0 +1,17 @@
+import { queryClient } from '@hooks/queries/Http';
+
+import { postCreateGroup } from '@services/group/postCreateGroup';
+
+import { useMutation } from '@tanstack/react-query';
+
+export const useCreateGroup = () => {
+ const { mutate, isPending, isError, error } = useMutation({
+ mutationFn: postCreateGroup,
+ onSuccess: () => {
+ console.log('Query invalidated');
+ queryClient.invalidateQueries({ queryKey: ['users-group'] });
+ },
+ });
+
+ return { mutate, isPending, isError, error };
+};
diff --git a/front/src/hooks/queries/group/postLeaveMyGroup.ts b/front/src/hooks/queries/group/postLeaveMyGroup.ts
new file mode 100644
index 0000000..12bd554
--- /dev/null
+++ b/front/src/hooks/queries/group/postLeaveMyGroup.ts
@@ -0,0 +1,16 @@
+import { queryClient } from '@hooks/queries/Http';
+
+import { postLeaveMyGroup } from '@services/group/postLeaveGroup';
+
+import { useMutation } from '@tanstack/react-query';
+
+export const postLeaveMyGroupQuery = () => {
+ const { mutate, isPending, isError, error } = useMutation({
+ mutationFn: postLeaveMyGroup,
+ onSuccess: () => {
+ queryClient.invalidateQueries({ queryKey: ['leave-group'] });
+ },
+ });
+
+ return { mutate, isPending, isError, error };
+};
diff --git a/front/src/hooks/queries/search/getGroupsQuery.ts b/front/src/hooks/queries/search/getGroupsQuery.ts
index 9548040..7022531 100644
--- a/front/src/hooks/queries/search/getGroupsQuery.ts
+++ b/front/src/hooks/queries/search/getGroupsQuery.ts
@@ -3,11 +3,11 @@ import { getGroups } from '@services/search/getGroups';
import { useQuery } from '@tanstack/react-query';
export const useGroups = () => {
- const { data, isPending, isError, error } = useQuery({
- queryKey: ['groups'],
+ const { data, isPending, isError, error, refetch } = useQuery({
+ queryKey: ['users-groups'],
queryFn: getGroups,
refetchOnMount: false,
});
- return { data, isPending, isError, error };
+ return { data, isPending, isError, error, refetch };
};
diff --git a/front/src/interfaces/GroupInterface.ts b/front/src/interfaces/GroupInterface.ts
index dbd0837..54c8d32 100644
--- a/front/src/interfaces/GroupInterface.ts
+++ b/front/src/interfaces/GroupInterface.ts
@@ -3,3 +3,11 @@ export interface IGroupProps {
name: string;
isPrivate: boolean;
}
+
+export interface ICreateGroupModalProps {
+ name: string;
+ isPrivate: boolean;
+ password: string;
+ goalSolveCount: number;
+ fine: number;
+}
diff --git a/front/src/pages/group/GroupPage.tsx b/front/src/pages/group/GroupPage.tsx
index 3cd4686..aa2b390 100644
--- a/front/src/pages/group/GroupPage.tsx
+++ b/front/src/pages/group/GroupPage.tsx
@@ -1,5 +1,11 @@
+import { Layout, DisplayLayout } from '@styles/Layout';
+
const GroupPage = () => {
- return <>GroupPage>;
+ return (
+
+ GroupPage
+
+ );
};
export default GroupPage;
diff --git a/front/src/pages/group/GroupSelectionPage.tsx b/front/src/pages/group/GroupSelectionPage.tsx
index ab15f9a..dd6f8dc 100644
--- a/front/src/pages/group/GroupSelectionPage.tsx
+++ b/front/src/pages/group/GroupSelectionPage.tsx
@@ -1,5 +1,96 @@
+import { BiAddToQueue } from 'react-icons/bi';
+
+import Text from '@components/typography/Text';
+
+import CreateModal from '@pages/group/components/CreateModal';
+import GroupLists from '@pages/group/components/GroupLists';
+
+import { useTokenStore } from '@stores/useTokenStore';
+
+import { Layout, DisplayLayout, LoginLayout } from '@styles/Layout';
+
+import { useCreateGroupModalStore } from '@/stores/useCreateGroupModal';
+import styled from '@emotion/styled';
+
+const SLayout = styled(DisplayLayout)`
+ height: calc(100vh - 45px);
+ display: flex;
+ flex-direction: column;
+ position: relative;
+`;
+
+const SelectionTitleLayout = styled.div`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-top: 45px;
+ width: 100%;
+ height: 40px;
+`;
+
+const TeamLayout = styled.div`
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+`;
+
+const ButtonLayout = styled.div`
+ position: absolute;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 60px;
+ height: 60px;
+ bottom: 0;
+ right: 0;
+ margin-bottom: 60px;
+ margin-right: 60px;
+ border-radius: 50%;
+ background-color: var(--color-red);
+ cursor: pointer;
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
+`;
+
const GroupSelectionPage = () => {
- return <>GroupSelectionPage>;
+ const { isAccessToken } = useTokenStore();
+ const { isModalOpen, toggleModal } = useCreateGroupModalStore();
+
+ const changeStateModal = () => {
+ toggleModal();
+ };
+
+ return (
+
+ {isAccessToken ? (
+
+
+
+ 현재 참여하고 있는 팀
+
+
+
+
+
+
+
+
+ {isModalOpen && }
+
+ ) : (
+
+
+ 로그인후 사용해주세요
+
+
+ )}
+
+ );
};
export default GroupSelectionPage;
diff --git a/front/src/pages/group/components/CreateModal.tsx b/front/src/pages/group/components/CreateModal.tsx
new file mode 100644
index 0000000..0305d59
--- /dev/null
+++ b/front/src/pages/group/components/CreateModal.tsx
@@ -0,0 +1,186 @@
+import { useForm } from 'react-hook-form';
+
+import { useMyGroupData } from '@hooks/queries/group/getMyGroupQuery';
+import { useCreateGroup } from '@hooks/queries/group/postCreateGroupQuery';
+import { useGroups } from '@hooks/queries/search/getGroupsQuery';
+
+import {
+ CreateGroupSchema,
+ CreateGroupSchemaType,
+} from '@utils/CreateGroupSchema';
+
+import { ICreateGroupModalProps } from '@interfaces/GroupInterface';
+
+import styled from '@emotion/styled';
+import { ErrorMessage } from '@hookform/error-message';
+import { zodResolver } from '@hookform/resolvers/zod';
+
+const ModalContainer = styled.div`
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ background-color: #fff;
+ border-radius: 8px;
+ padding: 20px;
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
+ width: 400px;
+`;
+
+const ModalTitle = styled.h2`
+ font-size: var(--size-md);
+ margin-bottom: 20px;
+`;
+
+const Error = styled.small`
+ color: var(--color-red);
+ font-size: var(--size-xs);
+ margin: 0px 0px 12px 6px;
+`;
+
+const FormGroup = styled.div`
+ margin-bottom: 20px;
+`;
+
+const InputLabel = styled.label`
+ display: block;
+ margin-bottom: 5px;
+ font-weight: bold;
+ font-size: var(--size-xs);
+`;
+
+const InputField = styled.input`
+ width: calc(100% - 16px);
+ padding: 8px;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ margin-top: 5px;
+`;
+
+const CheckboxLabel = styled.label`
+ display: flex;
+ align-items: center;
+ margin-top: 5px;
+ font-size: var(--size-sm);
+`;
+
+const CheckboxInput = styled.input`
+ margin-right: 5px;
+`;
+
+const Button = styled.button`
+ padding: 8px 16px;
+ border: none;
+ border-radius: 4px;
+ background-color: var(--color-blue);
+ color: white;
+ cursor: pointer;
+`;
+
+const CloseButton = styled.button`
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ padding: 5px;
+ border: none;
+ border-radius: 50%;
+ background-color: transparent;
+ cursor: pointer;
+`;
+
+const CreateModal = ({ closeModal }: { closeModal: () => void }) => {
+ const {
+ register,
+ formState: { errors },
+ handleSubmit,
+ } = useForm({
+ resolver: zodResolver(CreateGroupSchema),
+ });
+ const { mutate: createGroup } = useCreateGroup();
+ const { refetch: refreshGroupData } = useMyGroupData();
+ const { refetch: refreshGroupsData } = useGroups();
+
+ const onSubmit = (data: ICreateGroupModalProps) => {
+ const isConfirmed = window.confirm('회원가입을 완료하시겠습니까?');
+ if (isConfirmed) {
+ createGroup(data, {
+ onSuccess: () => {
+ closeModal();
+ refreshGroupData();
+ refreshGroupsData();
+ },
+ });
+ }
+ };
+
+ return (
+
+ Create Group
+ X
+
+
+ );
+};
+
+export default CreateModal;
diff --git a/front/src/pages/group/components/GroupLists.tsx b/front/src/pages/group/components/GroupLists.tsx
new file mode 100644
index 0000000..52d3dd1
--- /dev/null
+++ b/front/src/pages/group/components/GroupLists.tsx
@@ -0,0 +1,133 @@
+import { useNavigate } from 'react-router-dom';
+
+import { DefaultButton } from '@components/button/DefaultButton';
+
+import { useMyGroupData } from '@hooks/queries/group/getMyGroupQuery';
+import { postLeaveMyGroupQuery } from '@hooks/queries/group/postLeaveMyGroup';
+
+import { IGroupProps } from '@interfaces/GroupInterface';
+
+import styled from '@emotion/styled';
+
+const MyGroupLists = [
+ {
+ id: 1,
+ name: '해달 파이팅',
+ isPrivate: false,
+ },
+ {
+ id: 2,
+ name: '해달 고고',
+ isPrivate: false,
+ },
+];
+
+const GroupContainer = styled.div`
+ padding: 20px;
+ background-color: #f8f9fa;
+ border-radius: 8px;
+ height: 80px;
+ width: 100%;
+ margin-bottom: 10px;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+`;
+
+const GroupTypeLayout = styled.div`
+ display: flex;
+ flex-direction: column;
+`;
+
+const GroupButtonLayout = styled.div`
+ display: flex;
+ flex-direction: row;
+`;
+
+const GroupName = styled.h3`
+ margin: 0;
+ font-size: 18px;
+ color: #333;
+ font-size: var(--size-sm);
+`;
+
+const GroupType = styled.p`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ margin: 5px 0 0;
+ font-size: 14px;
+ color: var(--color-white);
+ width: 60px;
+ height: 20px;
+ border-radius: 12px;
+ background-color: var(--color-red);
+ font-size: var(--size-xs);
+`;
+
+const GoButton = styled(DefaultButton)`
+ width: 90px;
+ height: 30px;
+ background-color: var(--color-red);
+ color: var(--color-white);
+ font-size: var(--size-sm);
+ border-radius: 20px;
+ padding: 0;
+ margin-right: 10px;
+ &:hover {
+ color: var(--color-black);
+ background-color: var(--color-byellow);
+ }
+ &:focus {
+ background-color: var(--color-red);
+ color: var(--color-white);
+ }
+`;
+
+const GroupLists = () => {
+ const navigate = useNavigate();
+ const { data: MyGroupLists, isPending, isError, error } = useMyGroupData();
+ const { mutate: postLeaveMyGroup } = postLeaveMyGroupQuery();
+
+ return (
+ <>
+ {isPending ? (
+ Loading...
+ ) : isError ? (
+ Error: {error?.message}
+ ) : (
+ MyGroupLists.map((group: IGroupProps) => (
+
+
+ {group.name}
+ {group.isPrivate ? 'Private' : 'Public'}
+
+
+ {
+ navigate(`/group/${group.id}`);
+ }}
+ >
+ 이동하기
+
+ {
+ const isConfirmed = window.confirm('정말로 나가시겠습니까?');
+ if (isConfirmed) {
+ postLeaveMyGroup(group.id);
+ }
+ }}
+ >
+ 나가기
+
+
+
+ ))
+ )}
+ >
+ );
+};
+
+export default GroupLists;
diff --git a/front/src/pages/login/LoginRedirectPage.tsx b/front/src/pages/login/LoginRedirectPage.tsx
index 7932efc..79ceb60 100644
--- a/front/src/pages/login/LoginRedirectPage.tsx
+++ b/front/src/pages/login/LoginRedirectPage.tsx
@@ -23,7 +23,7 @@ const LoginRedirectPage = () => {
setIsAccessToken(localStorage.getItem('aId') !== null);
navigate('/');
- toast.success('환영합니다! 김규회님!');
+ toast.success('환영합니다! 좋은 하루되세요!');
}, [searchParams, navigate, setIsAccessToken]);
return <>>;
diff --git a/front/src/pages/search/components/SearchResult.tsx b/front/src/pages/search/components/SearchResult.tsx
index 8b8b0b6..b7dc7d7 100644
--- a/front/src/pages/search/components/SearchResult.tsx
+++ b/front/src/pages/search/components/SearchResult.tsx
@@ -9,7 +9,7 @@ import styled from '@emotion/styled';
const SearchResultLayout = styled.div`
width: 100%;
- height: 40px;
+ height: 70px;
display: flex;
align-items: center;
justify-content: space-between;
diff --git a/front/src/services/group/getMyGroups.ts b/front/src/services/group/getMyGroups.ts
new file mode 100644
index 0000000..2377440
--- /dev/null
+++ b/front/src/services/group/getMyGroups.ts
@@ -0,0 +1,13 @@
+import { BASE_URI } from '@constants/URI';
+
+import { instance } from '@services/API_JWT';
+
+export const getMyGroup = async () => {
+ try {
+ const response = await instance.get(`${BASE_URI}/users/my/groups`);
+ return response.data;
+ } catch (error) {
+ console.error('Error fetching UserData:', error);
+ throw error;
+ }
+};
diff --git a/front/src/services/group/postCreateGroup.ts b/front/src/services/group/postCreateGroup.ts
new file mode 100644
index 0000000..c6effda
--- /dev/null
+++ b/front/src/services/group/postCreateGroup.ts
@@ -0,0 +1,15 @@
+import { BASE_URI } from '@constants/URI';
+
+import { instance } from '@services/API_JWT';
+
+import { ICreateGroupModalProps } from '@/interfaces/GroupInterface';
+
+export const postCreateGroup = async (data: ICreateGroupModalProps) => {
+ try {
+ const response = await instance.post(`${BASE_URI}/groups`, data);
+ return response.data;
+ } catch (error) {
+ console.error('Error fetching UserData:', error);
+ throw error;
+ }
+};
diff --git a/front/src/services/group/postLeaveGroup.ts b/front/src/services/group/postLeaveGroup.ts
new file mode 100644
index 0000000..3984bd5
--- /dev/null
+++ b/front/src/services/group/postLeaveGroup.ts
@@ -0,0 +1,13 @@
+import { BASE_URI } from '@constants/URI';
+
+import { instance } from '@services/API_JWT';
+
+export const postLeaveMyGroup = async (groupId: number) => {
+ try {
+ const response = await instance.post(`${BASE_URI}/groups/${groupId}/leave`);
+ return response.data;
+ } catch (error) {
+ console.error('Error fetching UserData:', error);
+ throw error;
+ }
+};
diff --git a/front/src/stores/useCreateGroupModal.ts b/front/src/stores/useCreateGroupModal.ts
new file mode 100644
index 0000000..941c75b
--- /dev/null
+++ b/front/src/stores/useCreateGroupModal.ts
@@ -0,0 +1,16 @@
+import { create } from 'zustand';
+
+export interface ICreateGroupStore {
+ isModalOpen: boolean;
+}
+
+export interface ICreateGroupStoreActions extends ICreateGroupStore {
+ toggleModal: () => void;
+}
+
+export const useCreateGroupModalStore = create(
+ (set) => ({
+ isModalOpen: false,
+ toggleModal: () => set((state) => ({ isModalOpen: !state.isModalOpen })),
+ })
+);
diff --git a/front/src/styles/GlobalStyles.ts b/front/src/styles/GlobalStyles.ts
index edd82a1..9fcc416 100644
--- a/front/src/styles/GlobalStyles.ts
+++ b/front/src/styles/GlobalStyles.ts
@@ -8,6 +8,7 @@ const sizeLg = '1.25rem'; // 20px
const sizeMd = '1rem'; // 16px
const sizeSm = '0.875rem'; // 14px
const sizeXs = '0.75rem'; // 12px
+const sizeXxs = '0.625rem'; // 10px
//color 정의
const colorWhite = '#FFFFFF';
@@ -33,6 +34,7 @@ export const GlobalStyle = css`
--size-md: ${sizeMd};
--size-sm: ${sizeSm};
--size-xs: ${sizeXs};
+ --size-xxs: ${sizeXxs};
--color-white: ${colorWhite};
--color-black: ${colorBlack};
@@ -49,6 +51,9 @@ export const GlobalStyle = css`
* {
box-sizing: border-box;
+ transition: all 0.3s ease-out;
+ animation: name duration timing-function delay iteration-count direction
+ fill-mode;
}
body {
diff --git a/front/src/utils/.keep b/front/src/utils/.keep
deleted file mode 100644
index e69de29..0000000
diff --git a/front/src/utils/CreateGroupSchema.ts b/front/src/utils/CreateGroupSchema.ts
new file mode 100644
index 0000000..ab0d557
--- /dev/null
+++ b/front/src/utils/CreateGroupSchema.ts
@@ -0,0 +1,15 @@
+import { z } from 'zod';
+
+export const CreateGroupSchema = z.object({
+ name: z.string().min(1, { message: '이름은 필수로 입력해주셔야 합니다.' }),
+ isPrivate: z.boolean(),
+ password: z.string(),
+ goalSolveCount: z.number({
+ invalid_type_error: '숫자만 입력가능합니다.',
+ }),
+ fine: z.number({
+ invalid_type_error: '숫자만 입력가능합니다.',
+ }),
+});
+
+export type CreateGroupSchemaType = z.infer;