├── .gitignore ├── index.html ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── src ├── App.tsx ├── components │ └── Form │ │ ├── ErrorMessage.tsx │ │ ├── Field.tsx │ │ ├── Input.tsx │ │ ├── Label.tsx │ │ └── index.tsx ├── lib │ └── supabase.ts ├── main.tsx ├── styles │ └── global.css └── vite-env.d.ts ├── tailwind.config.js ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Forms React 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "forms-react", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@hookform/resolvers": "3.0.1", 13 | "@supabase/supabase-js": "2.14.0", 14 | "lucide-react": "0.130.1", 15 | "react": "^18.2.0", 16 | "react-dom": "^18.2.0", 17 | "react-hook-form": "7.43.9", 18 | "zod": "3.21.4" 19 | }, 20 | "devDependencies": { 21 | "@types/react": "^18.0.28", 22 | "@types/react-dom": "^18.0.11", 23 | "@vitejs/plugin-react": "^3.1.0", 24 | "autoprefixer": "10.4.14", 25 | "postcss": "8.4.21", 26 | "tailwindcss": "3.3.1", 27 | "typescript": "^4.9.3", 28 | "vite": "^4.2.0" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | dependencies: 4 | '@hookform/resolvers': 5 | specifier: 3.0.1 6 | version: 3.0.1(react-hook-form@7.43.9) 7 | '@supabase/supabase-js': 8 | specifier: 2.14.0 9 | version: 2.14.0 10 | lucide-react: 11 | specifier: 0.130.1 12 | version: 0.130.1(react@18.2.0) 13 | react: 14 | specifier: ^18.2.0 15 | version: 18.2.0 16 | react-dom: 17 | specifier: ^18.2.0 18 | version: 18.2.0(react@18.2.0) 19 | react-hook-form: 20 | specifier: 7.43.9 21 | version: 7.43.9(react@18.2.0) 22 | zod: 23 | specifier: 3.21.4 24 | version: 3.21.4 25 | 26 | devDependencies: 27 | '@types/react': 28 | specifier: ^18.0.28 29 | version: 18.0.28 30 | '@types/react-dom': 31 | specifier: ^18.0.11 32 | version: 18.0.11 33 | '@vitejs/plugin-react': 34 | specifier: ^3.1.0 35 | version: 3.1.0(vite@4.2.0) 36 | autoprefixer: 37 | specifier: 10.4.14 38 | version: 10.4.14(postcss@8.4.21) 39 | postcss: 40 | specifier: 8.4.21 41 | version: 8.4.21 42 | tailwindcss: 43 | specifier: 3.3.1 44 | version: 3.3.1(postcss@8.4.21) 45 | typescript: 46 | specifier: ^4.9.3 47 | version: 4.9.3 48 | vite: 49 | specifier: ^4.2.0 50 | version: 4.2.0 51 | 52 | packages: 53 | 54 | /@ampproject/remapping@2.2.0: 55 | resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} 56 | engines: {node: '>=6.0.0'} 57 | dependencies: 58 | '@jridgewell/gen-mapping': 0.1.1 59 | '@jridgewell/trace-mapping': 0.3.17 60 | dev: true 61 | 62 | /@babel/code-frame@7.21.4: 63 | resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} 64 | engines: {node: '>=6.9.0'} 65 | dependencies: 66 | '@babel/highlight': 7.18.6 67 | dev: true 68 | 69 | /@babel/compat-data@7.21.4: 70 | resolution: {integrity: sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==} 71 | engines: {node: '>=6.9.0'} 72 | dev: true 73 | 74 | /@babel/core@7.21.4: 75 | resolution: {integrity: sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==} 76 | engines: {node: '>=6.9.0'} 77 | dependencies: 78 | '@ampproject/remapping': 2.2.0 79 | '@babel/code-frame': 7.21.4 80 | '@babel/generator': 7.21.4 81 | '@babel/helper-compilation-targets': 7.21.4(@babel/core@7.21.4) 82 | '@babel/helper-module-transforms': 7.21.2 83 | '@babel/helpers': 7.21.0 84 | '@babel/parser': 7.21.4 85 | '@babel/template': 7.20.7 86 | '@babel/traverse': 7.21.4 87 | '@babel/types': 7.21.4 88 | convert-source-map: 1.9.0 89 | debug: 4.3.4 90 | gensync: 1.0.0-beta.2 91 | json5: 2.2.3 92 | semver: 6.3.0 93 | transitivePeerDependencies: 94 | - supports-color 95 | dev: true 96 | 97 | /@babel/generator@7.21.4: 98 | resolution: {integrity: sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==} 99 | engines: {node: '>=6.9.0'} 100 | dependencies: 101 | '@babel/types': 7.21.4 102 | '@jridgewell/gen-mapping': 0.3.2 103 | '@jridgewell/trace-mapping': 0.3.17 104 | jsesc: 2.5.2 105 | dev: true 106 | 107 | /@babel/helper-compilation-targets@7.21.4(@babel/core@7.21.4): 108 | resolution: {integrity: sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==} 109 | engines: {node: '>=6.9.0'} 110 | peerDependencies: 111 | '@babel/core': ^7.0.0 112 | dependencies: 113 | '@babel/compat-data': 7.21.4 114 | '@babel/core': 7.21.4 115 | '@babel/helper-validator-option': 7.21.0 116 | browserslist: 4.21.5 117 | lru-cache: 5.1.1 118 | semver: 6.3.0 119 | dev: true 120 | 121 | /@babel/helper-environment-visitor@7.18.9: 122 | resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} 123 | engines: {node: '>=6.9.0'} 124 | dev: true 125 | 126 | /@babel/helper-function-name@7.21.0: 127 | resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} 128 | engines: {node: '>=6.9.0'} 129 | dependencies: 130 | '@babel/template': 7.20.7 131 | '@babel/types': 7.21.4 132 | dev: true 133 | 134 | /@babel/helper-hoist-variables@7.18.6: 135 | resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} 136 | engines: {node: '>=6.9.0'} 137 | dependencies: 138 | '@babel/types': 7.21.4 139 | dev: true 140 | 141 | /@babel/helper-module-imports@7.21.4: 142 | resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} 143 | engines: {node: '>=6.9.0'} 144 | dependencies: 145 | '@babel/types': 7.21.4 146 | dev: true 147 | 148 | /@babel/helper-module-transforms@7.21.2: 149 | resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} 150 | engines: {node: '>=6.9.0'} 151 | dependencies: 152 | '@babel/helper-environment-visitor': 7.18.9 153 | '@babel/helper-module-imports': 7.21.4 154 | '@babel/helper-simple-access': 7.20.2 155 | '@babel/helper-split-export-declaration': 7.18.6 156 | '@babel/helper-validator-identifier': 7.19.1 157 | '@babel/template': 7.20.7 158 | '@babel/traverse': 7.21.4 159 | '@babel/types': 7.21.4 160 | transitivePeerDependencies: 161 | - supports-color 162 | dev: true 163 | 164 | /@babel/helper-plugin-utils@7.20.2: 165 | resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} 166 | engines: {node: '>=6.9.0'} 167 | dev: true 168 | 169 | /@babel/helper-simple-access@7.20.2: 170 | resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} 171 | engines: {node: '>=6.9.0'} 172 | dependencies: 173 | '@babel/types': 7.21.4 174 | dev: true 175 | 176 | /@babel/helper-split-export-declaration@7.18.6: 177 | resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} 178 | engines: {node: '>=6.9.0'} 179 | dependencies: 180 | '@babel/types': 7.21.4 181 | dev: true 182 | 183 | /@babel/helper-string-parser@7.19.4: 184 | resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} 185 | engines: {node: '>=6.9.0'} 186 | dev: true 187 | 188 | /@babel/helper-validator-identifier@7.19.1: 189 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 190 | engines: {node: '>=6.9.0'} 191 | dev: true 192 | 193 | /@babel/helper-validator-option@7.21.0: 194 | resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} 195 | engines: {node: '>=6.9.0'} 196 | dev: true 197 | 198 | /@babel/helpers@7.21.0: 199 | resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} 200 | engines: {node: '>=6.9.0'} 201 | dependencies: 202 | '@babel/template': 7.20.7 203 | '@babel/traverse': 7.21.4 204 | '@babel/types': 7.21.4 205 | transitivePeerDependencies: 206 | - supports-color 207 | dev: true 208 | 209 | /@babel/highlight@7.18.6: 210 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 211 | engines: {node: '>=6.9.0'} 212 | dependencies: 213 | '@babel/helper-validator-identifier': 7.19.1 214 | chalk: 2.4.2 215 | js-tokens: 4.0.0 216 | dev: true 217 | 218 | /@babel/parser@7.21.4: 219 | resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} 220 | engines: {node: '>=6.0.0'} 221 | hasBin: true 222 | dependencies: 223 | '@babel/types': 7.21.4 224 | dev: true 225 | 226 | /@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.21.4): 227 | resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} 228 | engines: {node: '>=6.9.0'} 229 | peerDependencies: 230 | '@babel/core': ^7.0.0-0 231 | dependencies: 232 | '@babel/core': 7.21.4 233 | '@babel/helper-plugin-utils': 7.20.2 234 | dev: true 235 | 236 | /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.21.4): 237 | resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} 238 | engines: {node: '>=6.9.0'} 239 | peerDependencies: 240 | '@babel/core': ^7.0.0-0 241 | dependencies: 242 | '@babel/core': 7.21.4 243 | '@babel/helper-plugin-utils': 7.20.2 244 | dev: true 245 | 246 | /@babel/template@7.20.7: 247 | resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} 248 | engines: {node: '>=6.9.0'} 249 | dependencies: 250 | '@babel/code-frame': 7.21.4 251 | '@babel/parser': 7.21.4 252 | '@babel/types': 7.21.4 253 | dev: true 254 | 255 | /@babel/traverse@7.21.4: 256 | resolution: {integrity: sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==} 257 | engines: {node: '>=6.9.0'} 258 | dependencies: 259 | '@babel/code-frame': 7.21.4 260 | '@babel/generator': 7.21.4 261 | '@babel/helper-environment-visitor': 7.18.9 262 | '@babel/helper-function-name': 7.21.0 263 | '@babel/helper-hoist-variables': 7.18.6 264 | '@babel/helper-split-export-declaration': 7.18.6 265 | '@babel/parser': 7.21.4 266 | '@babel/types': 7.21.4 267 | debug: 4.3.4 268 | globals: 11.12.0 269 | transitivePeerDependencies: 270 | - supports-color 271 | dev: true 272 | 273 | /@babel/types@7.21.4: 274 | resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==} 275 | engines: {node: '>=6.9.0'} 276 | dependencies: 277 | '@babel/helper-string-parser': 7.19.4 278 | '@babel/helper-validator-identifier': 7.19.1 279 | to-fast-properties: 2.0.0 280 | dev: true 281 | 282 | /@esbuild/android-arm64@0.17.15: 283 | resolution: {integrity: sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==} 284 | engines: {node: '>=12'} 285 | cpu: [arm64] 286 | os: [android] 287 | requiresBuild: true 288 | dev: true 289 | optional: true 290 | 291 | /@esbuild/android-arm@0.17.15: 292 | resolution: {integrity: sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg==} 293 | engines: {node: '>=12'} 294 | cpu: [arm] 295 | os: [android] 296 | requiresBuild: true 297 | dev: true 298 | optional: true 299 | 300 | /@esbuild/android-x64@0.17.15: 301 | resolution: {integrity: sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==} 302 | engines: {node: '>=12'} 303 | cpu: [x64] 304 | os: [android] 305 | requiresBuild: true 306 | dev: true 307 | optional: true 308 | 309 | /@esbuild/darwin-arm64@0.17.15: 310 | resolution: {integrity: sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==} 311 | engines: {node: '>=12'} 312 | cpu: [arm64] 313 | os: [darwin] 314 | requiresBuild: true 315 | dev: true 316 | optional: true 317 | 318 | /@esbuild/darwin-x64@0.17.15: 319 | resolution: {integrity: sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==} 320 | engines: {node: '>=12'} 321 | cpu: [x64] 322 | os: [darwin] 323 | requiresBuild: true 324 | dev: true 325 | optional: true 326 | 327 | /@esbuild/freebsd-arm64@0.17.15: 328 | resolution: {integrity: sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==} 329 | engines: {node: '>=12'} 330 | cpu: [arm64] 331 | os: [freebsd] 332 | requiresBuild: true 333 | dev: true 334 | optional: true 335 | 336 | /@esbuild/freebsd-x64@0.17.15: 337 | resolution: {integrity: sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==} 338 | engines: {node: '>=12'} 339 | cpu: [x64] 340 | os: [freebsd] 341 | requiresBuild: true 342 | dev: true 343 | optional: true 344 | 345 | /@esbuild/linux-arm64@0.17.15: 346 | resolution: {integrity: sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==} 347 | engines: {node: '>=12'} 348 | cpu: [arm64] 349 | os: [linux] 350 | requiresBuild: true 351 | dev: true 352 | optional: true 353 | 354 | /@esbuild/linux-arm@0.17.15: 355 | resolution: {integrity: sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==} 356 | engines: {node: '>=12'} 357 | cpu: [arm] 358 | os: [linux] 359 | requiresBuild: true 360 | dev: true 361 | optional: true 362 | 363 | /@esbuild/linux-ia32@0.17.15: 364 | resolution: {integrity: sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==} 365 | engines: {node: '>=12'} 366 | cpu: [ia32] 367 | os: [linux] 368 | requiresBuild: true 369 | dev: true 370 | optional: true 371 | 372 | /@esbuild/linux-loong64@0.17.15: 373 | resolution: {integrity: sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==} 374 | engines: {node: '>=12'} 375 | cpu: [loong64] 376 | os: [linux] 377 | requiresBuild: true 378 | dev: true 379 | optional: true 380 | 381 | /@esbuild/linux-mips64el@0.17.15: 382 | resolution: {integrity: sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==} 383 | engines: {node: '>=12'} 384 | cpu: [mips64el] 385 | os: [linux] 386 | requiresBuild: true 387 | dev: true 388 | optional: true 389 | 390 | /@esbuild/linux-ppc64@0.17.15: 391 | resolution: {integrity: sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==} 392 | engines: {node: '>=12'} 393 | cpu: [ppc64] 394 | os: [linux] 395 | requiresBuild: true 396 | dev: true 397 | optional: true 398 | 399 | /@esbuild/linux-riscv64@0.17.15: 400 | resolution: {integrity: sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==} 401 | engines: {node: '>=12'} 402 | cpu: [riscv64] 403 | os: [linux] 404 | requiresBuild: true 405 | dev: true 406 | optional: true 407 | 408 | /@esbuild/linux-s390x@0.17.15: 409 | resolution: {integrity: sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==} 410 | engines: {node: '>=12'} 411 | cpu: [s390x] 412 | os: [linux] 413 | requiresBuild: true 414 | dev: true 415 | optional: true 416 | 417 | /@esbuild/linux-x64@0.17.15: 418 | resolution: {integrity: sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==} 419 | engines: {node: '>=12'} 420 | cpu: [x64] 421 | os: [linux] 422 | requiresBuild: true 423 | dev: true 424 | optional: true 425 | 426 | /@esbuild/netbsd-x64@0.17.15: 427 | resolution: {integrity: sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==} 428 | engines: {node: '>=12'} 429 | cpu: [x64] 430 | os: [netbsd] 431 | requiresBuild: true 432 | dev: true 433 | optional: true 434 | 435 | /@esbuild/openbsd-x64@0.17.15: 436 | resolution: {integrity: sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==} 437 | engines: {node: '>=12'} 438 | cpu: [x64] 439 | os: [openbsd] 440 | requiresBuild: true 441 | dev: true 442 | optional: true 443 | 444 | /@esbuild/sunos-x64@0.17.15: 445 | resolution: {integrity: sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==} 446 | engines: {node: '>=12'} 447 | cpu: [x64] 448 | os: [sunos] 449 | requiresBuild: true 450 | dev: true 451 | optional: true 452 | 453 | /@esbuild/win32-arm64@0.17.15: 454 | resolution: {integrity: sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==} 455 | engines: {node: '>=12'} 456 | cpu: [arm64] 457 | os: [win32] 458 | requiresBuild: true 459 | dev: true 460 | optional: true 461 | 462 | /@esbuild/win32-ia32@0.17.15: 463 | resolution: {integrity: sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==} 464 | engines: {node: '>=12'} 465 | cpu: [ia32] 466 | os: [win32] 467 | requiresBuild: true 468 | dev: true 469 | optional: true 470 | 471 | /@esbuild/win32-x64@0.17.15: 472 | resolution: {integrity: sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==} 473 | engines: {node: '>=12'} 474 | cpu: [x64] 475 | os: [win32] 476 | requiresBuild: true 477 | dev: true 478 | optional: true 479 | 480 | /@hookform/resolvers@3.0.1(react-hook-form@7.43.9): 481 | resolution: {integrity: sha512-n5oOt0cLw9mQNW3/k9zWaPsNWQcc0k6Jpc7XUrg2Q/AqqsHp3IVa1juqHCxczXI6uXHBa69ILc4pdtsRGyuzsw==} 482 | peerDependencies: 483 | react-hook-form: ^7.0.0 484 | dependencies: 485 | react-hook-form: 7.43.9(react@18.2.0) 486 | dev: false 487 | 488 | /@jridgewell/gen-mapping@0.1.1: 489 | resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} 490 | engines: {node: '>=6.0.0'} 491 | dependencies: 492 | '@jridgewell/set-array': 1.1.2 493 | '@jridgewell/sourcemap-codec': 1.4.14 494 | dev: true 495 | 496 | /@jridgewell/gen-mapping@0.3.2: 497 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} 498 | engines: {node: '>=6.0.0'} 499 | dependencies: 500 | '@jridgewell/set-array': 1.1.2 501 | '@jridgewell/sourcemap-codec': 1.4.14 502 | '@jridgewell/trace-mapping': 0.3.17 503 | dev: true 504 | 505 | /@jridgewell/resolve-uri@3.1.0: 506 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 507 | engines: {node: '>=6.0.0'} 508 | dev: true 509 | 510 | /@jridgewell/set-array@1.1.2: 511 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 512 | engines: {node: '>=6.0.0'} 513 | dev: true 514 | 515 | /@jridgewell/sourcemap-codec@1.4.14: 516 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 517 | dev: true 518 | 519 | /@jridgewell/trace-mapping@0.3.17: 520 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} 521 | dependencies: 522 | '@jridgewell/resolve-uri': 3.1.0 523 | '@jridgewell/sourcemap-codec': 1.4.14 524 | dev: true 525 | 526 | /@nodelib/fs.scandir@2.1.5: 527 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 528 | engines: {node: '>= 8'} 529 | dependencies: 530 | '@nodelib/fs.stat': 2.0.5 531 | run-parallel: 1.2.0 532 | dev: true 533 | 534 | /@nodelib/fs.stat@2.0.5: 535 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 536 | engines: {node: '>= 8'} 537 | dev: true 538 | 539 | /@nodelib/fs.walk@1.2.8: 540 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 541 | engines: {node: '>= 8'} 542 | dependencies: 543 | '@nodelib/fs.scandir': 2.1.5 544 | fastq: 1.15.0 545 | dev: true 546 | 547 | /@supabase/functions-js@2.1.0: 548 | resolution: {integrity: sha512-vRziB+AqRXRaGHjEFHwBo0kuNDTuAxI7VUeqU24Fe86ISoD8YEQm0dGdpleJEcqgDGWaO6pxT1tfj1BRY5PwMg==} 549 | dependencies: 550 | cross-fetch: 3.1.5 551 | transitivePeerDependencies: 552 | - encoding 553 | dev: false 554 | 555 | /@supabase/gotrue-js@2.20.0: 556 | resolution: {integrity: sha512-dbbEXrzb6OdWeYJQ8VYnJj2sMiZYw8XGj1B5rZlbcjDxkW0Za04x+wWn6g6T5/6RwNm2kReqgAR5ufYeCPuCDA==} 557 | dependencies: 558 | cross-fetch: 3.1.5 559 | transitivePeerDependencies: 560 | - encoding 561 | dev: false 562 | 563 | /@supabase/postgrest-js@1.5.0: 564 | resolution: {integrity: sha512-YaU1HBE43Ba+FGmnXuvK+xYeHylkDKd04PYeKDUCoE2bUHoxSDqnjHbOwmLjnusGZi3X1MrFeUH1Wwb4bHYyIg==} 565 | dependencies: 566 | cross-fetch: 3.1.5 567 | transitivePeerDependencies: 568 | - encoding 569 | dev: false 570 | 571 | /@supabase/realtime-js@2.7.1: 572 | resolution: {integrity: sha512-WC0yPArBF/wPXwxKWTrRSMWWnFQCbhhUsX0u42x4OqUdDJtow6rzvDIZHWFZLh85UUBYIQ2++AabSNgzd3ubQg==} 573 | dependencies: 574 | '@types/phoenix': 1.5.5 575 | '@types/websocket': 1.0.5 576 | websocket: 1.0.34 577 | transitivePeerDependencies: 578 | - supports-color 579 | dev: false 580 | 581 | /@supabase/storage-js@2.3.1: 582 | resolution: {integrity: sha512-BaPIvyvjuZW1V0CnfGKUZyzpBUXnsh0XD8eqTOYd+MdiGPmIPI0vtwnT4fAoK8mipp1vpcN62EVQaqeUnWXPtQ==} 583 | dependencies: 584 | cross-fetch: 3.1.5 585 | transitivePeerDependencies: 586 | - encoding 587 | dev: false 588 | 589 | /@supabase/supabase-js@2.14.0: 590 | resolution: {integrity: sha512-pdcYDaxTUqv5A8NqDnLn731rTP0Wm469H+0ag6Jb8YpWR95rmusfpGY7vrykWXvdnvCMxoG6eEwSF9vQtxVrow==} 591 | dependencies: 592 | '@supabase/functions-js': 2.1.0 593 | '@supabase/gotrue-js': 2.20.0 594 | '@supabase/postgrest-js': 1.5.0 595 | '@supabase/realtime-js': 2.7.1 596 | '@supabase/storage-js': 2.3.1 597 | cross-fetch: 3.1.5 598 | transitivePeerDependencies: 599 | - encoding 600 | - supports-color 601 | dev: false 602 | 603 | /@types/node@18.15.11: 604 | resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} 605 | dev: false 606 | 607 | /@types/phoenix@1.5.5: 608 | resolution: {integrity: sha512-1eWWT19k0L4ZiTvdXjAvJ9KvW0B8SdiVftQmFPJGTEx78Q4PCSIQDpz+EfkFVR1N4U9gREjlW4JXL8YCIlY0bw==} 609 | dev: false 610 | 611 | /@types/prop-types@15.7.5: 612 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 613 | dev: true 614 | 615 | /@types/react-dom@18.0.11: 616 | resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} 617 | dependencies: 618 | '@types/react': 18.0.28 619 | dev: true 620 | 621 | /@types/react@18.0.28: 622 | resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} 623 | dependencies: 624 | '@types/prop-types': 15.7.5 625 | '@types/scheduler': 0.16.3 626 | csstype: 3.1.2 627 | dev: true 628 | 629 | /@types/scheduler@0.16.3: 630 | resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} 631 | dev: true 632 | 633 | /@types/websocket@1.0.5: 634 | resolution: {integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==} 635 | dependencies: 636 | '@types/node': 18.15.11 637 | dev: false 638 | 639 | /@vitejs/plugin-react@3.1.0(vite@4.2.0): 640 | resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} 641 | engines: {node: ^14.18.0 || >=16.0.0} 642 | peerDependencies: 643 | vite: ^4.1.0-beta.0 644 | dependencies: 645 | '@babel/core': 7.21.4 646 | '@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.21.4) 647 | '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.21.4) 648 | magic-string: 0.27.0 649 | react-refresh: 0.14.0 650 | vite: 4.2.0 651 | transitivePeerDependencies: 652 | - supports-color 653 | dev: true 654 | 655 | /ansi-styles@3.2.1: 656 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 657 | engines: {node: '>=4'} 658 | dependencies: 659 | color-convert: 1.9.3 660 | dev: true 661 | 662 | /any-promise@1.3.0: 663 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 664 | dev: true 665 | 666 | /anymatch@3.1.3: 667 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 668 | engines: {node: '>= 8'} 669 | dependencies: 670 | normalize-path: 3.0.0 671 | picomatch: 2.3.1 672 | dev: true 673 | 674 | /arg@5.0.2: 675 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 676 | dev: true 677 | 678 | /autoprefixer@10.4.14(postcss@8.4.21): 679 | resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} 680 | engines: {node: ^10 || ^12 || >=14} 681 | hasBin: true 682 | peerDependencies: 683 | postcss: ^8.1.0 684 | dependencies: 685 | browserslist: 4.21.5 686 | caniuse-lite: 1.0.30001474 687 | fraction.js: 4.2.0 688 | normalize-range: 0.1.2 689 | picocolors: 1.0.0 690 | postcss: 8.4.21 691 | postcss-value-parser: 4.2.0 692 | dev: true 693 | 694 | /balanced-match@1.0.2: 695 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 696 | dev: true 697 | 698 | /binary-extensions@2.2.0: 699 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 700 | engines: {node: '>=8'} 701 | dev: true 702 | 703 | /brace-expansion@1.1.11: 704 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 705 | dependencies: 706 | balanced-match: 1.0.2 707 | concat-map: 0.0.1 708 | dev: true 709 | 710 | /braces@3.0.2: 711 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 712 | engines: {node: '>=8'} 713 | dependencies: 714 | fill-range: 7.0.1 715 | dev: true 716 | 717 | /browserslist@4.21.5: 718 | resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} 719 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 720 | hasBin: true 721 | dependencies: 722 | caniuse-lite: 1.0.30001474 723 | electron-to-chromium: 1.4.352 724 | node-releases: 2.0.10 725 | update-browserslist-db: 1.0.10(browserslist@4.21.5) 726 | dev: true 727 | 728 | /bufferutil@4.0.7: 729 | resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==} 730 | engines: {node: '>=6.14.2'} 731 | requiresBuild: true 732 | dependencies: 733 | node-gyp-build: 4.6.0 734 | dev: false 735 | 736 | /camelcase-css@2.0.1: 737 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 738 | engines: {node: '>= 6'} 739 | dev: true 740 | 741 | /caniuse-lite@1.0.30001474: 742 | resolution: {integrity: sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q==} 743 | dev: true 744 | 745 | /chalk@2.4.2: 746 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 747 | engines: {node: '>=4'} 748 | dependencies: 749 | ansi-styles: 3.2.1 750 | escape-string-regexp: 1.0.5 751 | supports-color: 5.5.0 752 | dev: true 753 | 754 | /chokidar@3.5.3: 755 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 756 | engines: {node: '>= 8.10.0'} 757 | dependencies: 758 | anymatch: 3.1.3 759 | braces: 3.0.2 760 | glob-parent: 5.1.2 761 | is-binary-path: 2.1.0 762 | is-glob: 4.0.3 763 | normalize-path: 3.0.0 764 | readdirp: 3.6.0 765 | optionalDependencies: 766 | fsevents: 2.3.2 767 | dev: true 768 | 769 | /color-convert@1.9.3: 770 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 771 | dependencies: 772 | color-name: 1.1.3 773 | dev: true 774 | 775 | /color-name@1.1.3: 776 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 777 | dev: true 778 | 779 | /color-name@1.1.4: 780 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 781 | dev: true 782 | 783 | /commander@4.1.1: 784 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 785 | engines: {node: '>= 6'} 786 | dev: true 787 | 788 | /concat-map@0.0.1: 789 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 790 | dev: true 791 | 792 | /convert-source-map@1.9.0: 793 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 794 | dev: true 795 | 796 | /cross-fetch@3.1.5: 797 | resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} 798 | dependencies: 799 | node-fetch: 2.6.7 800 | transitivePeerDependencies: 801 | - encoding 802 | dev: false 803 | 804 | /cssesc@3.0.0: 805 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 806 | engines: {node: '>=4'} 807 | hasBin: true 808 | dev: true 809 | 810 | /csstype@3.1.2: 811 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} 812 | dev: true 813 | 814 | /d@1.0.1: 815 | resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} 816 | dependencies: 817 | es5-ext: 0.10.62 818 | type: 1.2.0 819 | dev: false 820 | 821 | /debug@2.6.9: 822 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 823 | peerDependencies: 824 | supports-color: '*' 825 | peerDependenciesMeta: 826 | supports-color: 827 | optional: true 828 | dependencies: 829 | ms: 2.0.0 830 | dev: false 831 | 832 | /debug@4.3.4: 833 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 834 | engines: {node: '>=6.0'} 835 | peerDependencies: 836 | supports-color: '*' 837 | peerDependenciesMeta: 838 | supports-color: 839 | optional: true 840 | dependencies: 841 | ms: 2.1.2 842 | dev: true 843 | 844 | /didyoumean@1.2.2: 845 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 846 | dev: true 847 | 848 | /dlv@1.1.3: 849 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 850 | dev: true 851 | 852 | /electron-to-chromium@1.4.352: 853 | resolution: {integrity: sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q==} 854 | dev: true 855 | 856 | /es5-ext@0.10.62: 857 | resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} 858 | engines: {node: '>=0.10'} 859 | requiresBuild: true 860 | dependencies: 861 | es6-iterator: 2.0.3 862 | es6-symbol: 3.1.3 863 | next-tick: 1.1.0 864 | dev: false 865 | 866 | /es6-iterator@2.0.3: 867 | resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} 868 | dependencies: 869 | d: 1.0.1 870 | es5-ext: 0.10.62 871 | es6-symbol: 3.1.3 872 | dev: false 873 | 874 | /es6-symbol@3.1.3: 875 | resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} 876 | dependencies: 877 | d: 1.0.1 878 | ext: 1.7.0 879 | dev: false 880 | 881 | /esbuild@0.17.15: 882 | resolution: {integrity: sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==} 883 | engines: {node: '>=12'} 884 | hasBin: true 885 | requiresBuild: true 886 | optionalDependencies: 887 | '@esbuild/android-arm': 0.17.15 888 | '@esbuild/android-arm64': 0.17.15 889 | '@esbuild/android-x64': 0.17.15 890 | '@esbuild/darwin-arm64': 0.17.15 891 | '@esbuild/darwin-x64': 0.17.15 892 | '@esbuild/freebsd-arm64': 0.17.15 893 | '@esbuild/freebsd-x64': 0.17.15 894 | '@esbuild/linux-arm': 0.17.15 895 | '@esbuild/linux-arm64': 0.17.15 896 | '@esbuild/linux-ia32': 0.17.15 897 | '@esbuild/linux-loong64': 0.17.15 898 | '@esbuild/linux-mips64el': 0.17.15 899 | '@esbuild/linux-ppc64': 0.17.15 900 | '@esbuild/linux-riscv64': 0.17.15 901 | '@esbuild/linux-s390x': 0.17.15 902 | '@esbuild/linux-x64': 0.17.15 903 | '@esbuild/netbsd-x64': 0.17.15 904 | '@esbuild/openbsd-x64': 0.17.15 905 | '@esbuild/sunos-x64': 0.17.15 906 | '@esbuild/win32-arm64': 0.17.15 907 | '@esbuild/win32-ia32': 0.17.15 908 | '@esbuild/win32-x64': 0.17.15 909 | dev: true 910 | 911 | /escalade@3.1.1: 912 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 913 | engines: {node: '>=6'} 914 | dev: true 915 | 916 | /escape-string-regexp@1.0.5: 917 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 918 | engines: {node: '>=0.8.0'} 919 | dev: true 920 | 921 | /ext@1.7.0: 922 | resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} 923 | dependencies: 924 | type: 2.7.2 925 | dev: false 926 | 927 | /fast-glob@3.2.12: 928 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 929 | engines: {node: '>=8.6.0'} 930 | dependencies: 931 | '@nodelib/fs.stat': 2.0.5 932 | '@nodelib/fs.walk': 1.2.8 933 | glob-parent: 5.1.2 934 | merge2: 1.4.1 935 | micromatch: 4.0.5 936 | dev: true 937 | 938 | /fastq@1.15.0: 939 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 940 | dependencies: 941 | reusify: 1.0.4 942 | dev: true 943 | 944 | /fill-range@7.0.1: 945 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 946 | engines: {node: '>=8'} 947 | dependencies: 948 | to-regex-range: 5.0.1 949 | dev: true 950 | 951 | /fraction.js@4.2.0: 952 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 953 | dev: true 954 | 955 | /fs.realpath@1.0.0: 956 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 957 | dev: true 958 | 959 | /fsevents@2.3.2: 960 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 961 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 962 | os: [darwin] 963 | requiresBuild: true 964 | dev: true 965 | optional: true 966 | 967 | /function-bind@1.1.1: 968 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 969 | dev: true 970 | 971 | /gensync@1.0.0-beta.2: 972 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 973 | engines: {node: '>=6.9.0'} 974 | dev: true 975 | 976 | /glob-parent@5.1.2: 977 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 978 | engines: {node: '>= 6'} 979 | dependencies: 980 | is-glob: 4.0.3 981 | dev: true 982 | 983 | /glob-parent@6.0.2: 984 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 985 | engines: {node: '>=10.13.0'} 986 | dependencies: 987 | is-glob: 4.0.3 988 | dev: true 989 | 990 | /glob@7.1.6: 991 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 992 | dependencies: 993 | fs.realpath: 1.0.0 994 | inflight: 1.0.6 995 | inherits: 2.0.4 996 | minimatch: 3.1.2 997 | once: 1.4.0 998 | path-is-absolute: 1.0.1 999 | dev: true 1000 | 1001 | /globals@11.12.0: 1002 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1003 | engines: {node: '>=4'} 1004 | dev: true 1005 | 1006 | /has-flag@3.0.0: 1007 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1008 | engines: {node: '>=4'} 1009 | dev: true 1010 | 1011 | /has@1.0.3: 1012 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1013 | engines: {node: '>= 0.4.0'} 1014 | dependencies: 1015 | function-bind: 1.1.1 1016 | dev: true 1017 | 1018 | /inflight@1.0.6: 1019 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1020 | dependencies: 1021 | once: 1.4.0 1022 | wrappy: 1.0.2 1023 | dev: true 1024 | 1025 | /inherits@2.0.4: 1026 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1027 | dev: true 1028 | 1029 | /is-binary-path@2.1.0: 1030 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1031 | engines: {node: '>=8'} 1032 | dependencies: 1033 | binary-extensions: 2.2.0 1034 | dev: true 1035 | 1036 | /is-core-module@2.11.0: 1037 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 1038 | dependencies: 1039 | has: 1.0.3 1040 | dev: true 1041 | 1042 | /is-extglob@2.1.1: 1043 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1044 | engines: {node: '>=0.10.0'} 1045 | dev: true 1046 | 1047 | /is-glob@4.0.3: 1048 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1049 | engines: {node: '>=0.10.0'} 1050 | dependencies: 1051 | is-extglob: 2.1.1 1052 | dev: true 1053 | 1054 | /is-number@7.0.0: 1055 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1056 | engines: {node: '>=0.12.0'} 1057 | dev: true 1058 | 1059 | /is-typedarray@1.0.0: 1060 | resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} 1061 | dev: false 1062 | 1063 | /jiti@1.18.2: 1064 | resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} 1065 | hasBin: true 1066 | dev: true 1067 | 1068 | /js-tokens@4.0.0: 1069 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1070 | 1071 | /jsesc@2.5.2: 1072 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1073 | engines: {node: '>=4'} 1074 | hasBin: true 1075 | dev: true 1076 | 1077 | /json5@2.2.3: 1078 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1079 | engines: {node: '>=6'} 1080 | hasBin: true 1081 | dev: true 1082 | 1083 | /lilconfig@2.1.0: 1084 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1085 | engines: {node: '>=10'} 1086 | dev: true 1087 | 1088 | /lines-and-columns@1.2.4: 1089 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1090 | dev: true 1091 | 1092 | /loose-envify@1.4.0: 1093 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1094 | hasBin: true 1095 | dependencies: 1096 | js-tokens: 4.0.0 1097 | dev: false 1098 | 1099 | /lru-cache@5.1.1: 1100 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1101 | dependencies: 1102 | yallist: 3.1.1 1103 | dev: true 1104 | 1105 | /lucide-react@0.130.1(react@18.2.0): 1106 | resolution: {integrity: sha512-Fyyyd+ZGlZj/N8d/u9uoqFbRATI18WhynzVTjaeEqfVvsea8pYTSwBMfCg264TB2c5z9aiNAeNy67x8BiFyqXQ==} 1107 | peerDependencies: 1108 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 1109 | dependencies: 1110 | react: 18.2.0 1111 | dev: false 1112 | 1113 | /magic-string@0.27.0: 1114 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} 1115 | engines: {node: '>=12'} 1116 | dependencies: 1117 | '@jridgewell/sourcemap-codec': 1.4.14 1118 | dev: true 1119 | 1120 | /merge2@1.4.1: 1121 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1122 | engines: {node: '>= 8'} 1123 | dev: true 1124 | 1125 | /micromatch@4.0.5: 1126 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1127 | engines: {node: '>=8.6'} 1128 | dependencies: 1129 | braces: 3.0.2 1130 | picomatch: 2.3.1 1131 | dev: true 1132 | 1133 | /minimatch@3.1.2: 1134 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1135 | dependencies: 1136 | brace-expansion: 1.1.11 1137 | dev: true 1138 | 1139 | /ms@2.0.0: 1140 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1141 | dev: false 1142 | 1143 | /ms@2.1.2: 1144 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1145 | dev: true 1146 | 1147 | /mz@2.7.0: 1148 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1149 | dependencies: 1150 | any-promise: 1.3.0 1151 | object-assign: 4.1.1 1152 | thenify-all: 1.6.0 1153 | dev: true 1154 | 1155 | /nanoid@3.3.6: 1156 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 1157 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1158 | hasBin: true 1159 | dev: true 1160 | 1161 | /next-tick@1.1.0: 1162 | resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} 1163 | dev: false 1164 | 1165 | /node-fetch@2.6.7: 1166 | resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} 1167 | engines: {node: 4.x || >=6.0.0} 1168 | peerDependencies: 1169 | encoding: ^0.1.0 1170 | peerDependenciesMeta: 1171 | encoding: 1172 | optional: true 1173 | dependencies: 1174 | whatwg-url: 5.0.0 1175 | dev: false 1176 | 1177 | /node-gyp-build@4.6.0: 1178 | resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} 1179 | hasBin: true 1180 | dev: false 1181 | 1182 | /node-releases@2.0.10: 1183 | resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} 1184 | dev: true 1185 | 1186 | /normalize-path@3.0.0: 1187 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1188 | engines: {node: '>=0.10.0'} 1189 | dev: true 1190 | 1191 | /normalize-range@0.1.2: 1192 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1193 | engines: {node: '>=0.10.0'} 1194 | dev: true 1195 | 1196 | /object-assign@4.1.1: 1197 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1198 | engines: {node: '>=0.10.0'} 1199 | dev: true 1200 | 1201 | /object-hash@3.0.0: 1202 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1203 | engines: {node: '>= 6'} 1204 | dev: true 1205 | 1206 | /once@1.4.0: 1207 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1208 | dependencies: 1209 | wrappy: 1.0.2 1210 | dev: true 1211 | 1212 | /path-is-absolute@1.0.1: 1213 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1214 | engines: {node: '>=0.10.0'} 1215 | dev: true 1216 | 1217 | /path-parse@1.0.7: 1218 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1219 | dev: true 1220 | 1221 | /picocolors@1.0.0: 1222 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1223 | dev: true 1224 | 1225 | /picomatch@2.3.1: 1226 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1227 | engines: {node: '>=8.6'} 1228 | dev: true 1229 | 1230 | /pify@2.3.0: 1231 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1232 | engines: {node: '>=0.10.0'} 1233 | dev: true 1234 | 1235 | /pirates@4.0.5: 1236 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} 1237 | engines: {node: '>= 6'} 1238 | dev: true 1239 | 1240 | /postcss-import@14.1.0(postcss@8.4.21): 1241 | resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} 1242 | engines: {node: '>=10.0.0'} 1243 | peerDependencies: 1244 | postcss: ^8.0.0 1245 | dependencies: 1246 | postcss: 8.4.21 1247 | postcss-value-parser: 4.2.0 1248 | read-cache: 1.0.0 1249 | resolve: 1.22.1 1250 | dev: true 1251 | 1252 | /postcss-js@4.0.1(postcss@8.4.21): 1253 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1254 | engines: {node: ^12 || ^14 || >= 16} 1255 | peerDependencies: 1256 | postcss: ^8.4.21 1257 | dependencies: 1258 | camelcase-css: 2.0.1 1259 | postcss: 8.4.21 1260 | dev: true 1261 | 1262 | /postcss-load-config@3.1.4(postcss@8.4.21): 1263 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 1264 | engines: {node: '>= 10'} 1265 | peerDependencies: 1266 | postcss: '>=8.0.9' 1267 | ts-node: '>=9.0.0' 1268 | peerDependenciesMeta: 1269 | postcss: 1270 | optional: true 1271 | ts-node: 1272 | optional: true 1273 | dependencies: 1274 | lilconfig: 2.1.0 1275 | postcss: 8.4.21 1276 | yaml: 1.10.2 1277 | dev: true 1278 | 1279 | /postcss-nested@6.0.0(postcss@8.4.21): 1280 | resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} 1281 | engines: {node: '>=12.0'} 1282 | peerDependencies: 1283 | postcss: ^8.2.14 1284 | dependencies: 1285 | postcss: 8.4.21 1286 | postcss-selector-parser: 6.0.11 1287 | dev: true 1288 | 1289 | /postcss-selector-parser@6.0.11: 1290 | resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} 1291 | engines: {node: '>=4'} 1292 | dependencies: 1293 | cssesc: 3.0.0 1294 | util-deprecate: 1.0.2 1295 | dev: true 1296 | 1297 | /postcss-value-parser@4.2.0: 1298 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1299 | dev: true 1300 | 1301 | /postcss@8.4.21: 1302 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 1303 | engines: {node: ^10 || ^12 || >=14} 1304 | dependencies: 1305 | nanoid: 3.3.6 1306 | picocolors: 1.0.0 1307 | source-map-js: 1.0.2 1308 | dev: true 1309 | 1310 | /queue-microtask@1.2.3: 1311 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1312 | dev: true 1313 | 1314 | /quick-lru@5.1.1: 1315 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 1316 | engines: {node: '>=10'} 1317 | dev: true 1318 | 1319 | /react-dom@18.2.0(react@18.2.0): 1320 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 1321 | peerDependencies: 1322 | react: ^18.2.0 1323 | dependencies: 1324 | loose-envify: 1.4.0 1325 | react: 18.2.0 1326 | scheduler: 0.23.0 1327 | dev: false 1328 | 1329 | /react-hook-form@7.43.9(react@18.2.0): 1330 | resolution: {integrity: sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ==} 1331 | engines: {node: '>=12.22.0'} 1332 | peerDependencies: 1333 | react: ^16.8.0 || ^17 || ^18 1334 | dependencies: 1335 | react: 18.2.0 1336 | dev: false 1337 | 1338 | /react-refresh@0.14.0: 1339 | resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} 1340 | engines: {node: '>=0.10.0'} 1341 | dev: true 1342 | 1343 | /react@18.2.0: 1344 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 1345 | engines: {node: '>=0.10.0'} 1346 | dependencies: 1347 | loose-envify: 1.4.0 1348 | dev: false 1349 | 1350 | /read-cache@1.0.0: 1351 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1352 | dependencies: 1353 | pify: 2.3.0 1354 | dev: true 1355 | 1356 | /readdirp@3.6.0: 1357 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1358 | engines: {node: '>=8.10.0'} 1359 | dependencies: 1360 | picomatch: 2.3.1 1361 | dev: true 1362 | 1363 | /resolve@1.22.1: 1364 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 1365 | hasBin: true 1366 | dependencies: 1367 | is-core-module: 2.11.0 1368 | path-parse: 1.0.7 1369 | supports-preserve-symlinks-flag: 1.0.0 1370 | dev: true 1371 | 1372 | /reusify@1.0.4: 1373 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1374 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1375 | dev: true 1376 | 1377 | /rollup@3.20.2: 1378 | resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==} 1379 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1380 | hasBin: true 1381 | optionalDependencies: 1382 | fsevents: 2.3.2 1383 | dev: true 1384 | 1385 | /run-parallel@1.2.0: 1386 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1387 | dependencies: 1388 | queue-microtask: 1.2.3 1389 | dev: true 1390 | 1391 | /scheduler@0.23.0: 1392 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 1393 | dependencies: 1394 | loose-envify: 1.4.0 1395 | dev: false 1396 | 1397 | /semver@6.3.0: 1398 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 1399 | hasBin: true 1400 | dev: true 1401 | 1402 | /source-map-js@1.0.2: 1403 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1404 | engines: {node: '>=0.10.0'} 1405 | dev: true 1406 | 1407 | /sucrase@3.31.0: 1408 | resolution: {integrity: sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ==} 1409 | engines: {node: '>=8'} 1410 | hasBin: true 1411 | dependencies: 1412 | commander: 4.1.1 1413 | glob: 7.1.6 1414 | lines-and-columns: 1.2.4 1415 | mz: 2.7.0 1416 | pirates: 4.0.5 1417 | ts-interface-checker: 0.1.13 1418 | dev: true 1419 | 1420 | /supports-color@5.5.0: 1421 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1422 | engines: {node: '>=4'} 1423 | dependencies: 1424 | has-flag: 3.0.0 1425 | dev: true 1426 | 1427 | /supports-preserve-symlinks-flag@1.0.0: 1428 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1429 | engines: {node: '>= 0.4'} 1430 | dev: true 1431 | 1432 | /tailwindcss@3.3.1(postcss@8.4.21): 1433 | resolution: {integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==} 1434 | engines: {node: '>=12.13.0'} 1435 | hasBin: true 1436 | peerDependencies: 1437 | postcss: ^8.0.9 1438 | dependencies: 1439 | arg: 5.0.2 1440 | chokidar: 3.5.3 1441 | color-name: 1.1.4 1442 | didyoumean: 1.2.2 1443 | dlv: 1.1.3 1444 | fast-glob: 3.2.12 1445 | glob-parent: 6.0.2 1446 | is-glob: 4.0.3 1447 | jiti: 1.18.2 1448 | lilconfig: 2.1.0 1449 | micromatch: 4.0.5 1450 | normalize-path: 3.0.0 1451 | object-hash: 3.0.0 1452 | picocolors: 1.0.0 1453 | postcss: 8.4.21 1454 | postcss-import: 14.1.0(postcss@8.4.21) 1455 | postcss-js: 4.0.1(postcss@8.4.21) 1456 | postcss-load-config: 3.1.4(postcss@8.4.21) 1457 | postcss-nested: 6.0.0(postcss@8.4.21) 1458 | postcss-selector-parser: 6.0.11 1459 | postcss-value-parser: 4.2.0 1460 | quick-lru: 5.1.1 1461 | resolve: 1.22.1 1462 | sucrase: 3.31.0 1463 | transitivePeerDependencies: 1464 | - ts-node 1465 | dev: true 1466 | 1467 | /thenify-all@1.6.0: 1468 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1469 | engines: {node: '>=0.8'} 1470 | dependencies: 1471 | thenify: 3.3.1 1472 | dev: true 1473 | 1474 | /thenify@3.3.1: 1475 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1476 | dependencies: 1477 | any-promise: 1.3.0 1478 | dev: true 1479 | 1480 | /to-fast-properties@2.0.0: 1481 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1482 | engines: {node: '>=4'} 1483 | dev: true 1484 | 1485 | /to-regex-range@5.0.1: 1486 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1487 | engines: {node: '>=8.0'} 1488 | dependencies: 1489 | is-number: 7.0.0 1490 | dev: true 1491 | 1492 | /tr46@0.0.3: 1493 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 1494 | dev: false 1495 | 1496 | /ts-interface-checker@0.1.13: 1497 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1498 | dev: true 1499 | 1500 | /type@1.2.0: 1501 | resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} 1502 | dev: false 1503 | 1504 | /type@2.7.2: 1505 | resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} 1506 | dev: false 1507 | 1508 | /typedarray-to-buffer@3.1.5: 1509 | resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} 1510 | dependencies: 1511 | is-typedarray: 1.0.0 1512 | dev: false 1513 | 1514 | /typescript@4.9.3: 1515 | resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} 1516 | engines: {node: '>=4.2.0'} 1517 | hasBin: true 1518 | dev: true 1519 | 1520 | /update-browserslist-db@1.0.10(browserslist@4.21.5): 1521 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 1522 | hasBin: true 1523 | peerDependencies: 1524 | browserslist: '>= 4.21.0' 1525 | dependencies: 1526 | browserslist: 4.21.5 1527 | escalade: 3.1.1 1528 | picocolors: 1.0.0 1529 | dev: true 1530 | 1531 | /utf-8-validate@5.0.10: 1532 | resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} 1533 | engines: {node: '>=6.14.2'} 1534 | requiresBuild: true 1535 | dependencies: 1536 | node-gyp-build: 4.6.0 1537 | dev: false 1538 | 1539 | /util-deprecate@1.0.2: 1540 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1541 | dev: true 1542 | 1543 | /vite@4.2.0: 1544 | resolution: {integrity: sha512-AbDTyzzwuKoRtMIRLGNxhLRuv1FpRgdIw+1y6AQG73Q5+vtecmvzKo/yk8X/vrHDpETRTx01ABijqUHIzBXi0g==} 1545 | engines: {node: ^14.18.0 || >=16.0.0} 1546 | hasBin: true 1547 | peerDependencies: 1548 | '@types/node': '>= 14' 1549 | less: '*' 1550 | sass: '*' 1551 | stylus: '*' 1552 | sugarss: '*' 1553 | terser: ^5.4.0 1554 | peerDependenciesMeta: 1555 | '@types/node': 1556 | optional: true 1557 | less: 1558 | optional: true 1559 | sass: 1560 | optional: true 1561 | stylus: 1562 | optional: true 1563 | sugarss: 1564 | optional: true 1565 | terser: 1566 | optional: true 1567 | dependencies: 1568 | esbuild: 0.17.15 1569 | postcss: 8.4.21 1570 | resolve: 1.22.1 1571 | rollup: 3.20.2 1572 | optionalDependencies: 1573 | fsevents: 2.3.2 1574 | dev: true 1575 | 1576 | /webidl-conversions@3.0.1: 1577 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 1578 | dev: false 1579 | 1580 | /websocket@1.0.34: 1581 | resolution: {integrity: sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==} 1582 | engines: {node: '>=4.0.0'} 1583 | dependencies: 1584 | bufferutil: 4.0.7 1585 | debug: 2.6.9 1586 | es5-ext: 0.10.62 1587 | typedarray-to-buffer: 3.1.5 1588 | utf-8-validate: 5.0.10 1589 | yaeti: 0.0.6 1590 | transitivePeerDependencies: 1591 | - supports-color 1592 | dev: false 1593 | 1594 | /whatwg-url@5.0.0: 1595 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 1596 | dependencies: 1597 | tr46: 0.0.3 1598 | webidl-conversions: 3.0.1 1599 | dev: false 1600 | 1601 | /wrappy@1.0.2: 1602 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1603 | dev: true 1604 | 1605 | /yaeti@0.0.6: 1606 | resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} 1607 | engines: {node: '>=0.10.32'} 1608 | dev: false 1609 | 1610 | /yallist@3.1.1: 1611 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1612 | dev: true 1613 | 1614 | /yaml@1.10.2: 1615 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1616 | engines: {node: '>= 6'} 1617 | dev: true 1618 | 1619 | /zod@3.21.4: 1620 | resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} 1621 | dev: false 1622 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from 'react' 2 | import { useForm, FormProvider, useFieldArray } from 'react-hook-form' 3 | import { PlusCircle, XCircle } from 'lucide-react' 4 | import { z } from 'zod' 5 | import { zodResolver } from '@hookform/resolvers/zod' 6 | import { Form } from './components/Form' 7 | import { supabase } from './lib/supabase' 8 | 9 | const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5mb 10 | const ACCEPTED_IMAGE_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp"]; 11 | 12 | const createUserSchema = z.object({ 13 | name: z.string().nonempty({ 14 | message: 'O nome é obrigatório', 15 | }).transform(name => { 16 | return name 17 | .trim() 18 | .split(' ') 19 | .map(word => word[0].toLocaleUpperCase().concat(word.substring(1))) 20 | .join(' ') 21 | }), 22 | email: z.string().nonempty({ 23 | message: 'O e-mail é obrigatório', 24 | }).email({ 25 | message: 'Formato de e-mail inválido', 26 | }).toLowerCase(), 27 | password: z.string().nonempty({ 28 | message: 'A senha é obrigatória', 29 | }).min(6, { 30 | message: 'A senha precisa ter no mínimo 6 caracteres', 31 | }), 32 | techs: z.array(z.object({ 33 | title: z.string().nonempty({ message: 'O nome da tecnologia é obrigatório' }) 34 | })).min(3, { 35 | message: 'Pelo menos 3 tecnologias devem ser informadas.' 36 | }), 37 | avatar: z.instanceof(FileList) 38 | .refine((files) => !!files.item(0), "A imagem de perfil é obrigatória") 39 | .refine((files) => files.item(0)!.size <= MAX_FILE_SIZE, `Tamanho máximo de 5MB`) 40 | .refine( 41 | (files) => ACCEPTED_IMAGE_TYPES.includes(files.item(0)!.type), 42 | "Formato de imagem inválido" 43 | ).transform(files => { 44 | return files.item(0)! 45 | }), 46 | }) 47 | 48 | type CreateUserData = z.infer 49 | 50 | export function App() { 51 | const [output, setOutput] = useState('') 52 | 53 | const createUserForm = useForm({ 54 | resolver: zodResolver(createUserSchema), 55 | }) 56 | 57 | async function createUser(data: CreateUserData) { 58 | const { data: uploadData, error } = await supabase 59 | .storage 60 | .from('forms-react') 61 | .upload(`avatars/${data.avatar?.name}`, data.avatar, { 62 | cacheControl: '3600', 63 | upsert: false 64 | }) 65 | 66 | console.log(uploadData) 67 | 68 | setOutput(JSON.stringify(data, null, 2)) 69 | } 70 | 71 | const { 72 | handleSubmit, 73 | formState: { isSubmitting }, 74 | watch, 75 | control, 76 | } = createUserForm; 77 | 78 | const userPassword = watch('password') 79 | const isPasswordStrong = new RegExp('(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])(?=.{8,})').test(userPassword) 80 | 81 | const { fields, append, remove } = useFieldArray({ 82 | control, 83 | name: 'techs', 84 | }) 85 | 86 | function addNewTech() { 87 | append({ title: '' }) 88 | } 89 | 90 | return ( 91 |
92 | 93 |
97 | 98 | 99 | Avatar 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | Nome 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | E-mail 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | Senha 125 | 126 | {isPasswordStrong 127 | ? Senha forte 128 | : Senha fraca} 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | Tecnologias 137 | 138 | 146 | 147 | 148 | 149 | {fields.map((field, index) => { 150 | const fieldName = `techs.${index}.title` 151 | 152 | return ( 153 | 154 |
155 | 156 | 163 |
164 | 165 |
166 | ) 167 | })} 168 |
169 | 170 | 171 | 178 |
179 |
180 | 181 | {output && ( 182 |
183 |           {output}
184 |         
185 | )} 186 |
187 | ) 188 | } 189 | 190 | -------------------------------------------------------------------------------- /src/components/Form/ErrorMessage.tsx: -------------------------------------------------------------------------------- 1 | import { useFormContext } from 'react-hook-form' 2 | 3 | interface ErrorMessageProps { 4 | field: string 5 | } 6 | 7 | function get(obj: Record, path: string) { 8 | const travel = (regexp: RegExp) => 9 | String.prototype.split 10 | .call(path, regexp) 11 | .filter(Boolean) 12 | .reduce((res, key) => (res !== null && res !== undefined ? res[key] : res), obj); 13 | 14 | const result = travel(/[,[\]]+?/) || travel(/[,[\].]+?/); 15 | 16 | return result 17 | }; 18 | 19 | export function ErrorMessage({ field }: ErrorMessageProps) { 20 | const { formState: { errors } } = useFormContext() 21 | 22 | const fieldError = get(errors, field) 23 | 24 | if (!fieldError) { 25 | return null 26 | } 27 | 28 | return ( 29 | {fieldError.message?.toString()} 30 | ) 31 | } -------------------------------------------------------------------------------- /src/components/Form/Field.tsx: -------------------------------------------------------------------------------- 1 | import { HTMLAttributes } from "react"; 2 | 3 | interface FieldProps extends HTMLAttributes {} 4 | 5 | export function Field(props: FieldProps) { 6 | return ( 7 |
8 | ) 9 | } -------------------------------------------------------------------------------- /src/components/Form/Input.tsx: -------------------------------------------------------------------------------- 1 | import { InputHTMLAttributes } from "react"; 2 | import { useFormContext } from 'react-hook-form' 3 | 4 | interface InputProps extends InputHTMLAttributes { 5 | name: string 6 | } 7 | 8 | export function Input(props: InputProps) { 9 | const { register } = useFormContext() 10 | 11 | return ( 12 | 18 | ) 19 | } -------------------------------------------------------------------------------- /src/components/Form/Label.tsx: -------------------------------------------------------------------------------- 1 | import { LabelHTMLAttributes } from "react"; 2 | 3 | export function Label(props: LabelHTMLAttributes) { 4 | return ( 5 |